Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

File moves are not correctly replicated #39

Open
dpp-gerrit opened this issue Mar 9, 2013 · 1 comment
Open

File moves are not correctly replicated #39

dpp-gerrit opened this issue Mar 9, 2013 · 1 comment
Labels
Area: Core Issue affecting the Saros Core Aspect: Consistency Issue with Saros' consistency handling

Comments

@dpp-gerrit
Copy link

According to the following log files:

Alice renames a file

TRACE 06:14:18,668 [ModalContext] (SharedResourcesManager.java:228) handlePostChange
C(0) /
C(0) /Foo1_Saros
C(0) /Foo1_Saros/src
C(0) /Foo1_Saros/src/my
C(0) /Foo1_Saros/src/my/pkg
R /Foo1_Saros/src/my/pkg/MyClass.java
A /Foo1_Saros/src/my/pkg/MyClass2.java

TRACE 06:14:18,669 [ModalContext] (SharedResourcesManager.java:281) Adding new activities [FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:18,673 [ModalContext] (SharedResourcesManager.java:287) sharedProject.resourceMap: 
/Foo1_Saros/ -> R[null@null]
/Foo1_Saros/.classpath -> R[null@null]
/Foo1_Saros/.project -> R[null@null]
/Foo1_Saros/src -> R[null@null]
/Foo1_Saros/src/my -> R[null@null]
/Foo1_Saros/src/my/pkg -> R[null@null]
/Foo1_Saros/src/my/pkg/MyClass2.java -> R[null@null]
TRACE 06:14:18,673 [ModalContext] (SharedResourcesManager.java:378) Sending activities [FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:18,687 [Activity-Sender] (ActivitySequencer.java:646) Sending 1 activities to [email protected]/Saros: [[6:FileActivityDataObject(type: Moved, old path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass.java, projectID=333243604], new path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
DEBUG 06:14:18,687 [Activity-Sender] (ActivitySequencer.java:980) Sent (001) [[email protected]/Saros] [[6:FileActivityDataObject(type: Moved, old path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass.java, projectID=333243604], new path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
TRACE 06:14:18,688 [Activity-Sender] (DataTransferManager.java:256) sending data ... from [email protected]/Saros to [email protected]/Saros
TRACE 06:14:18,688 [Activity-Sender] (DataTransferManager.java:360) Reuse bytestream connection SOCKS5 (direct)
TRACE 06:14:18,688 [Activity-Sender] (NetworkManipulatorImpl.java:129) intercepting outgoing packet to: [email protected]/Saros
TRACE 06:14:18,688 [Activity-Sender] (ActivitySequencer.java:646) Sending 1 activities to [email protected]/Saros: [[6:FileActivityDataObject(type: Moved, old path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass.java, projectID=333243604], new path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
DEBUG 06:14:18,689 [Activity-Sender] (ActivitySequencer.java:980) Sent (001) [[email protected]/Saros] [[6:FileActivityDataObject(type: Moved, old path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass.java, projectID=333243604], new path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]

Now the error happens on Carls side:

TRACE 06:14:18,699 [Activity-Dispatcher] (ActivityHandler.java:280) dispatching 1 activities [mode = 0] : [FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:18,700 [main] (SharedResourcesManager.java:444) execing FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros]) in main
TRACE 06:14:18,701 [main] (FileUtils.java:417) .move(/Foo1_Saros/src/my/pkg/MyClass2.java , MyClass.java)
TRACE 06:14:18,713 [main] (ChecksumCacheImpl.java:74) invalidating checksum for existing file: /Foo1_Saros/src/my/pkg/MyClass.java [0xE8F46E04749CD216AFDA9F8D988BDBF6]
TRACE 06:14:18,718 [main] (ChecksumCacheImpl.java:80) invalidating checksum for new file: /Foo1_Saros/src/my/pkg/MyClass2.java [0x15253EE038DCB9DDA790470852F060F2]
TRACE 06:14:18,882 [main] (SharedResourcesManager.java:459) done execing FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])
TRACE 06:14:18,883 [Worker-7] (ChecksumCacheImpl.java:74) invalidating checksum for existing file: /Foo1_Saros/src/my/pkg/MyClass2.java [0x15253EE038DCB9DDA790470852F060F2]
TRACE 06:14:18,914 [Worker-7] (SharedResourcesManager.java:200) currentJob='TeamPrivateOperation'

Here occurs the error, the SharedResourceManager is called again from another thread
and states an update of the file

TRACE 06:14:18,914 [Worker-7] (SharedResourcesManager.java:220) .resourceChanged() - Delta will be processed
TRACE 06:14:18,914 [Worker-7] (SharedResourcesManager.java:228) handlePostChange
C(0) /
C(0) /Foo1_Saros
C(0) /Foo1_Saros/src
C(0) /Foo1_Saros/src/my
C(0) /Foo1_Saros/src/my/pkg
C(C) /Foo1_Saros/src/my/pkg/MyClass2.java

TRACE 06:14:18,915 [Worker-7] (EditorPool.java:261) .getEditors(SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros]) invoked
DEBUG 06:14:18,915 [Worker-7] (ProjectDeltaVisitor.java:262) Resource MyClass2.java changed
TRACE 06:14:18,916 [Worker-7] (SharedResourcesManager.java:281) Adding new activities [FileActivity(type: Created, path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:18,916 [Worker-7] (SharedResourcesManager.java:287) sharedProject.resourceMap: 
/Foo1_Saros/ -> R[null@null]
/Foo1_Saros/.project -> R[null@null]
TRACE 06:14:18,916 [Worker-7] (SharedResourcesManager.java:378) Sending activities [FileActivity(type: Created, path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:18,917 [Activity-Sender] (ActivitySequencer.java:646) Sending 1 activities to [email protected]/Saros: [[2:FileActivityDataObject(type: Created, path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
DEBUG 06:14:18,917 [Activity-Sender] (ActivitySequencer.java:980) Sent (001) [[email protected]/Saros] [[2:FileActivityDataObject(type: Created, path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
TRACE 06:14:18,918 [Activity-Sender] (DataTransferManager.java:256) sending data ... from [email protected]/Saros to [email protected]/Saros
TRACE 06:14:18,918 [Activity-Sender] (DataTransferManager.java:360) Reuse bytestream connection SOCKS5 (direct)
TRACE 06:14:18,918 [Activity-Sender] (NetworkManipulatorImpl.java:129) intercepting outgoing packet to: [email protected]/Saros
TRACE 06:14:18,918 [Activity-Sender] (ActivitySequencer.java:646) Sending 1 activities to [email protected]/Saros: [[5:FileActivityDataObject(type: Created, path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]

And now Bob gets (Activity from Alice arrives after Carls activity)

TRACE 06:14:19,025 [Thread-888] (BinaryChannel.java:125) processing opcode: FA
TRACE 06:14:19,025 [Thread-888] (NetworkManipulatorImpl.java:96) intercepting incoming packet from: [email protected]/Saros
TRACE 06:14:19,026 [Thread-888] (BinaryChannel.java:125) processing opcode: FB
TRACE 06:14:19,026 [Bytestream-Extension-receiver-4] (DataTransferManager.java:179) [SOCKS5 (direct)] Starting incoming data transfer: Bytestream transfer. type=activityDataObjects namespace=de.fu_berlin.inf.dpp [SID=1939711783]
TRACE 06:14:19,026 [Bytestream-Extension-receiver-4] (DataTransferManager.java:188) [SOCKS5 (direct)] Finished incoming data transfer: Bytestream transfer. type=activityDataObjects namespace=de.fu_berlin.inf.dpp [SID=1939711783], Throughput: (373 B in < 1 ms)
TRACE 06:14:19,025 [Thread-887] (BinaryChannel.java:125) processing opcode: FA
TRACE 06:14:19,029 [Thread-887] (NetworkManipulatorImpl.java:96) intercepting incoming packet from: [email protected]/Saros
TRACE 06:14:19,029 [Thread-887] (BinaryChannel.java:125) processing opcode: FB
DEBUG 06:14:19,030 [XMPPTransmitter-Dispatch-0] (ActivitiesHandler.java:111) Rcvd (001) [[email protected]/Saros] : [[2:FileActivityDataObject(type: Created, path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
TRACE 06:14:19,031 [Activity-Dispatcher] (ActivityHandler.java:280) dispatching 1 activities [mode = 0] : [FileActivity(type: Created, path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:19,031 [Bytestream-Extension-receiver-6] (DataTransferManager.java:179) [SOCKS5 (direct)] Starting incoming data transfer: Bytestream transfer. type=activityDataObjects namespace=de.fu_berlin.inf.dpp [SID=1939711783]
TRACE 06:14:19,031 [Bytestream-Extension-receiver-6] (DataTransferManager.java:188) [SOCKS5 (direct)] Finished incoming data transfer: Bytestream transfer. type=activityDataObjects namespace=de.fu_berlin.inf.dpp [SID=1939711783], Throughput: (361 B in < 1 ms)
TRACE 06:14:19,032 [main] (SharedResourcesManager.java:444) execing FileActivity(type: Created, path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros]) in main
TRACE 06:14:19,033 [main] (ChecksumCacheImpl.java:80) invalidating checksum for new file: /Foo1_Saros/src/my/pkg/MyClass2.java [0x15253EE038DCB9DDA790470852F060F2]
DEBUG 06:14:19,035 [XMPPTransmitter-Dispatch-0] (ActivitiesHandler.java:111) Rcvd (001) [[email protected]/Saros] : [[6:FileActivityDataObject(type: Moved, old path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass.java, projectID=333243604], new path: SPathDataObject [editorType=txt, path=src/my/pkg/MyClass2.java, projectID=333243604])]]
TRACE 06:14:19,035 [RMI TCP Connection(4)-192.168.66.131] (RemoteWorkbenchBot.java:75) opening view with id: org.eclipse.jdt.ui.PackageExplorer
TRACE 06:14:19,036 [main] (SharedResourcesManager.java:459) done execing FileActivity(type: Created, path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])
TRACE 06:14:19,037 [Activity-Dispatcher] (ActivityHandler.java:280) dispatching 1 activities [mode = 0] : [FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])]
TRACE 06:14:19,047 [main] (SharedResourcesManager.java:444) execing FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros]) in main
TRACE 06:14:19,048 [main] (FileUtils.java:417) .move(/Foo1_Saros/src/my/pkg/MyClass2.java , MyClass.java)
ERROR 06:14:19,049 [main] (SharedResourcesManager.java:456) Failed to execute resource activity.
org.eclipse.core.internal.resources.ResourceException: Resource '/Foo1_Saros/src/my/pkg/MyClass2.java' already exists.
    at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:305)
    at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:292)
    at org.eclipse.core.internal.resources.Resource.checkMoveRequirements(Resource.java:381)
    at org.eclipse.core.internal.resources.Resource.assertMoveRequirements(Resource.java:191)
    at org.eclipse.core.internal.resources.Resource.move(Resource.java:1585)
    at org.eclipse.core.internal.resources.Resource.move(Resource.java:1565)
    at de.fu_berlin.inf.dpp.util.FileUtils$6.run(FileUtils.java:431)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
    at de.fu_berlin.inf.dpp.util.FileUtils.move(FileUtils.java:440)
    at de.fu_berlin.inf.dpp.project.SharedResourcesManager.exec(SharedResourcesManager.java:566)
    at de.fu_berlin.inf.dpp.project.SharedResourcesManager.exec(SharedResourcesManager.java:448)
    at de.fu_berlin.inf.dpp.project.internal.SarosSession$2.execute(SarosSession.java:224)
    at de.fu_berlin.inf.dpp.project.internal.ActivityHandler$3.run(ActivityHandler.java:275)
    at de.fu_berlin.inf.dpp.util.Utils$6.run(Utils.java:323)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
    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:369)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
TRACE 06:14:19,050 [main] (SharedResourcesManager.java:459) done execing FileActivity(type: Moved, old path: SPath [editorType=txt, path=src/my/pkg/MyClass.java, project=Foo1_Saros], new path: SPath [editorType=txt, path=src/my/pkg/MyClass2.java, project=Foo1_Saros])
TRACE 06:14:19,053 [RMI TCP Connection(4)-192.168.66.131] (RemoteWorkbenchBot.java:75) opening view with id: org.eclipse.jdt.ui.PackageExplorer
TRACE 06:14:19,256 [Worker-8] (ChecksumCacheImpl.java:80) invalidating checksum for new file: /Foo1_Saros/bin/my/pkg/MyClass2.class [0xBE372997A30739505F13D7E19EC86D2A]
TRACE 06:14:19,257 [Worker-8] (SharedResourcesManager.java:200) currentJob='Building workspace'
TRACE 06:14:19,257 [Worker-8] (SharedResourcesManager.java:220) .resourceChanged() - Delta will be processed
TRACE 06:14:19,257 [Worker-8] (SharedResourcesManager.java:228) handlePostChange
C(0) /
C(0) /Foo1_Saros
C(0) * /Foo1_Saros/bin
C(0) * /Foo1_Saros/bin/my
C(0) * /Foo1_Saros/bin/my/pkg
A * /Foo1_Saros/bin/my/pkg/MyClass2.class

TRACE 06:14:19,257 [Worker-8] (SharedResourcesManager.java:281) Adding new activities []
TRACE 06:14:19,257 [Worker-8] (SharedResourcesManager.java:287) sharedProject.resourceMap: 
/Foo1_Saros/ -> R[null@null]
/Foo1_Saros/.project -> R[null@null]

Reported by: kargor

Original Ticket: dpp/bugs/792

@dpp-gerrit dpp-gerrit self-assigned this Mar 27, 2018
@dpp-gerrit dpp-gerrit removed their assignment Mar 27, 2018
@srossbach srossbach added Area: Core Issue affecting the Saros Core Aspect: Consistency Issue with Saros' consistency handling labels May 30, 2019
@srossbach
Copy link
Contributor

This bug had its origin in the former P2P structure. Likely that this issue no longer happens or now performs differently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Core Issue affecting the Saros Core Aspect: Consistency Issue with Saros' consistency handling
Projects
None yet
Development

No branches or pull requests

3 participants