Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EMFStore] Mixed environment problem
[EMFStore] Mixed environment problem [message #1282995] Thu, 03 April 2014 01:05 Go to next message
Scott Dybiec is currently offline Scott DybiecFriend
Messages: 148
Registered: July 2009
Senior Member
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 09:29 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar MuellerFriend
Messages: 89
Registered: March 2011
Member
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 14:20 Go to previous message
Scott Dybiec is currently offline Scott DybiecFriend
Messages: 148
Registered: July 2009
Senior Member
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: Thu Apr 18 05:49:22 GMT 2024

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

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

Back to the top