Conflict when file is changed with gedit in other machine
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu One Client |
Fix Released
|
Critical
|
Facundo Batista | ||
ubuntuone-client (Ubuntu) |
Fix Released
|
Critical
|
dobey | ||
Bug Description
I have a text file synced with U1, originally created in mi laptop, and synchronized in mi desktop:
~/Ubuntu One/u1-
I edited the file in the desktop with gedit, and saved it. When the file got synced again in the laptop, I got a conflict. The original file, u1-test.txt, was lost. A new file appeared:
~/Ubuntu One/u1-
That file didn't include the last edition on the PC, so my last changes get lost.
I'm attaching my laptop's syncdaemon.log where the conflict arises: syncdaemon.
ProblemType: Bug
.home.mariano.
Architecture: i386
CrashDB: ubuntuone
DistroRelease: Ubuntu 9.04
Package: ubuntuone-client 0.96.0+
PackageArchitec
ProcEnviron:
LANG=es_AR.UTF-8
SHELL=/bin/bash
SourcePackage: ubuntuone-client
ThirdParty: True
Uname: Linux 2.6.28-15-generic i686
UnreportableReason: Este no es un paquete Ubuntu genuino
Related branches
- Guillermo Gonzalez: Approve
- John Lenton (community): Approve
- Ubuntu One hackers: Pending requested
-
Diff: 689 lines9 files modifiedcontrib/testing/testcase.py (+1/-0)
tests/syncdaemon/test_eq_inotify.py (+179/-0)
tests/syncdaemon/test_eventqueue.py (+66/-0)
tests/syncdaemon/test_fsm.py (+15/-6)
tests/syncdaemon/test_localrescan.py (+4/-2)
tests/syncdaemon/test_sync.py (+4/-0)
ubuntuone/syncdaemon/event_queue.py (+69/-13)
ubuntuone/syncdaemon/filesystem_manager.py (+26/-2)
ubuntuone/syncdaemon/main.py (+1/-0)
tags: | added: ubuntuone-karmic |
Changed in ubuntuone-client: | |
importance: | High → Critical |
Changed in ubuntuone-client: | |
status: | Triaged → In Progress |
Changed in ubuntuone-client (Ubuntu): | |
importance: | Undecided → Critical |
assignee: | nobody → Rodney Dawes (dobey) |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client (Ubuntu): | |
status: | New → In Progress |
Changed in ubuntuone-client: | |
status: | Fix Committed → Fix Released |
The problem is here: merge_directory generates this two events:
2009-10-12 00:47:49,726 - ubuntuone. SyncDaemon. EQ - DEBUG - push_event: SV_MOVED, args:(), kw:{'new_name': 'u1-test.txt~', 'new_share_id': '', 'share_id': '', 'new_parent_id': 'd3b01d84- 82df-41db- 9353-c5cf047e09 b5', 'node_id': 'e70f7a96- 861f-43d7- b504-180e66791d 50'}
2009-10-12 00:47:49,733 - ubuntuone. SyncDaemon. EQ - DEBUG - push_event: SV_FILE_NEW, args:(), kw:{'parent_id': 'd3b01d84- 82df-41db- 9353-c5cf047e09 b5', 'node_id': '2fb41532- 2866-4aac- a252-d4a820cd71 52', 'share_id': '', 'name': 'u1-test.txt'}
Which are ok, btw, because that's what really happened.
But then, the file is moved in the disk ('u1-test.txt' to 'u1-test.txt~'), and a new 'u1-test.txt' file is created, and then a FS_FILE_MOVE arrives (because of first change), and Sync confuses the origin of the movement as being the newly created node.