Skip to main content



      Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EMFStore] Mixed environment problem
[EMFStore] Mixed environment problem [message #1282995] Wed, 02 April 2014 21:05 Go to next message
Eclipse UserFriend
Having trouble running a Windows EMFStore client against a Linux-based
EMFStore server.

If I run my application's client and the EMFStore server both on
Windows, no problems. But if I then point the exact same client running
on Windows at a Linux-based EMFStore server, it returns a checksum
error. I built the servers at the same time using the emfstore.product
targeting Windows and Linux and both start normally.

I compared the workspace files to see if the Windows client workspace
differed from the Linux server workspace. Diff -ab (ignoring whitespace
differences, using the -ab option) shows no differences between these
files (except for whitespace):

operations.eoc = changepackage-1.ucp
project.ecp = projectstate-1.ups

I am able to replicate the problem using the EMFStore example helloworld
application, so it seems unrelated to my application code. The example
code runs fine in a Windows client / Windows server configuration, but
fails with a checksum error with Windows client / Linux server. Are you
able to replicate this problem as well?

BTW, I'm running a very recent drop of the 1.2.0 code --- pulled from
Git a week or so ago.

$cott

Here's the stack trace:

Commiting changes:........Connection to Server failed!
org.eclipse.emf.emfstore.server.exceptions.ESException: Commit cancelled
by checksum error handler due to invalid checksum.
at
org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.handleChecksumProcessing(CommitController.java:215)
at
org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.commit(CommitController.java:181)
at
org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:102)
at
org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:1)
at
org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.run(ServerCall.java:249)
at
org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.executeCall(SessionManager.java:126)
at
org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.execute(SessionManager.java:65)
at
org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.execute(ServerCall.java:269)
at
org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase.commit(ProjectSpaceBase.java:347)
at
org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:383)
at
org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:1)
at
org.eclipse.emf.emfstore.client.util.RunESCommand$WithException$1.doRun(RunESCommand.java:60)
at
org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.commandBody(EMFStoreCommandWithResult.java:31)
at
org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
at
org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
at
org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
at
org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
at
org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.run(EMFStoreCommandWithResult.java:59)
at
org.eclipse.emf.emfstore.client.util.RunESCommand$WithException.runWithResult(RunESCommand.java:77)
at
org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl.commit(ESLocalProjectImpl.java:378)
at
org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.runClient(TestCaseApplication2.java:177)
at
org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.start(TestCaseApplication2.java:70)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Re: [EMFStore] Mixed environment problem [message #1284267 is a reply to message #1282995] Fri, 04 April 2014 05:29 Go to previous messageGo to next message
Eclipse UserFriend
Hi Scott,

actually we were aware of this problem when writing the checksum
computation and successfully tested it, but for some reason, which we
need to inspect further, whitespace differences nevertheless lead to
different results as you pointed out.
Yet, I think we found a fix for this issue, which will make into the 1.2
release today, so I hope that this will solve your problem.

Cheers
Edgar

Am 03.04.2014 03:05, schrieb scott@xxxxxxxx:
> Having trouble running a Windows EMFStore client against a Linux-based
> EMFStore server.
>
> If I run my application's client and the EMFStore server both on
> Windows, no problems. But if I then point the exact same client running
> on Windows at a Linux-based EMFStore server, it returns a checksum
> error. I built the servers at the same time using the emfstore.product
> targeting Windows and Linux and both start normally.
>
> I compared the workspace files to see if the Windows client workspace
> differed from the Linux server workspace. Diff -ab (ignoring whitespace
> differences, using the -ab option) shows no differences between these
> files (except for whitespace):
>
> operations.eoc = changepackage-1.ucp
> project.ecp = projectstate-1.ups
>
> I am able to replicate the problem using the EMFStore example helloworld
> application, so it seems unrelated to my application code. The example
> code runs fine in a Windows client / Windows server configuration, but
> fails with a checksum error with Windows client / Linux server. Are you
> able to replicate this problem as well?
>
> BTW, I'm running a very recent drop of the 1.2.0 code --- pulled from
> Git a week or so ago.
>
> $cott
>
> Here's the stack trace:
>
> Commiting changes:........Connection to Server failed!
> org.eclipse.emf.emfstore.server.exceptions.ESException: Commit cancelled
> by checksum error handler due to invalid checksum.
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.handleChecksumProcessing(CommitController.java:215)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.commit(CommitController.java:181)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:102)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:1)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.run(ServerCall.java:249)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.executeCall(SessionManager.java:126)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.execute(SessionManager.java:65)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.execute(ServerCall.java:269)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase.commit(ProjectSpaceBase.java:347)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:383)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:1)
>
> at
> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException$1.doRun(RunESCommand.java:60)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.commandBody(EMFStoreCommandWithResult.java:31)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
>
> at
> org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.run(EMFStoreCommandWithResult.java:59)
>
> at
> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException.runWithResult(RunESCommand.java:77)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl.commit(ESLocalProjectImpl.java:378)
>
> at
> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.runClient(TestCaseApplication2.java:177)
>
> at
> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.start(TestCaseApplication2.java:70)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1426)


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMFStore] Mixed environment problem [message #1284475 is a reply to message #1284267] Fri, 04 April 2014 10:20 Go to previous message
Eclipse UserFriend
I noticed that your ModelUtil.copiedEObjectToString(EObject copy,
XMIResource resource) tries to deal with whitespace serialization
differences between platforms, such as line separators and encodings.

Would passing in this EMF serialization option to Resource.save()
eliminate whitespace altogether?

getResourceSaveOptions().put(XMLResource.OPTION_FORMATTED, Boolean.FALSE);

EMF's binary format might be an option, too.

I look forward to the patch. Once the fix is in, could you let me know
what code changed so I can patch it on my side?

$cott


On 4/4/2014 5:29 AM, Edgar Mueller wrote:
> Hi Scott,
>
> actually we were aware of this problem when writing the checksum
> computation and successfully tested it, but for some reason, which we
> need to inspect further, whitespace differences nevertheless lead to
> different results as you pointed out.
> Yet, I think we found a fix for this issue, which will make into the 1.2
> release today, so I hope that this will solve your problem.
>
> Cheers
> Edgar
>
> Am 03.04.2014 03:05, schrieb scott@xxxxxxxx:
>> Having trouble running a Windows EMFStore client against a Linux-based
>> EMFStore server.
>>
>> If I run my application's client and the EMFStore server both on
>> Windows, no problems. But if I then point the exact same client running
>> on Windows at a Linux-based EMFStore server, it returns a checksum
>> error. I built the servers at the same time using the emfstore.product
>> targeting Windows and Linux and both start normally.
>>
>> I compared the workspace files to see if the Windows client workspace
>> differed from the Linux server workspace. Diff -ab (ignoring whitespace
>> differences, using the -ab option) shows no differences between these
>> files (except for whitespace):
>>
>> operations.eoc = changepackage-1.ucp
>> project.ecp = projectstate-1.ups
>>
>> I am able to replicate the problem using the EMFStore example helloworld
>> application, so it seems unrelated to my application code. The example
>> code runs fine in a Windows client / Windows server configuration, but
>> fails with a checksum error with Windows client / Linux server. Are you
>> able to replicate this problem as well?
>>
>> BTW, I'm running a very recent drop of the 1.2.0 code --- pulled from
>> Git a week or so ago.
>>
>> $cott
>>
>> Here's the stack trace:
>>
>> Commiting changes:........Connection to Server failed!
>> org.eclipse.emf.emfstore.server.exceptions.ESException: Commit cancelled
>> by checksum error handler due to invalid checksum.
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.handleChecksumProcessing(CommitController.java:215)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.commit(CommitController.java:181)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:102)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.controller.CommitController.run(CommitController.java:1)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.run(ServerCall.java:249)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.executeCall(SessionManager.java:126)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.SessionManager.execute(SessionManager.java:65)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.connectionmanager.ServerCall.execute(ServerCall.java:269)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceBase.commit(ProjectSpaceBase.java:347)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:383)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl$11.call(ESLocalProjectImpl.java:1)
>>
>> at
>> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException$1.doRun(RunESCommand.java:60)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.commandBody(EMFStoreCommandWithResult.java:31)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
>>
>> at
>> org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommandWithResult.run(EMFStoreCommandWithResult.java:59)
>>
>> at
>> org.eclipse.emf.emfstore.client.util.RunESCommand$WithException.runWithResult(RunESCommand.java:77)
>>
>> at
>> org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl.commit(ESLocalProjectImpl.java:378)
>>
>> at
>> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.runClient(TestCaseApplication2.java:177)
>>
>> at
>> org.eclipse.emf.emfstore.example.helloworld.TestCaseApplication2.start(TestCaseApplication2.java:70)
>>
>> at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>>
>> at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>>
>> at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
>
>
Previous Topic:[Texo] Lazy Loading with Texo
Next Topic:[EMF Store] Re-connection to server
Goto Forum:
  


Current Time: Fri Jul 04 15:05:56 EDT 2025

Powered by FUDForum. Page generated in 0.05071 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top