server-side tree deletion results in .u1conflict folders on clients.

Bug #462003 reported by Rick McBride on 2009-10-27
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Natalia Bidart
Ubuntu One Servers
ubuntuone-client (Ubuntu)

Bug Description

Testing tree deletion on edge, I removed my U1Test folder via the Web UI.

Tree deletion took place on the server, but after a lengthy period of time, on the clients the U1Test folder is eventually replaced by U1Test.u1conflict.

Related branches

Rick McBride (rmcbride) wrote :

I dont' know precisely what part of the system is dropping the ball here, so I'm putting this bug report in client as well.

Changed in ubuntuone-servers:
status: New → Confirmed
importance: Undecided → High
Changed in ubuntuone-client:
status: New → Confirmed
importance: Undecided → High
Guillermo Gonzalez (verterok) wrote :

I just reproduced this with syncdaemon in debug mode.

Changed in ubuntuone-servers:
status: Confirmed → Invalid
Changed in ubuntuone-client:
status: Confirmed → Triaged
Changed in ubuntuone-client:
assignee: nobody → Facundo Batista (facundo)
Facundo Batista (facundo) wrote :

When a SV_FILE_DELETE arrives, and the directory is *not* empty, we move it to conflict.

We will do the following: in this case, we'll check all the nodes of the tree that starts from that dir, and see if there's any file in LOCAL (a change that still not in the server). If we found any, we signal a conflict like now, if not, we remove everything.

During the time that takes us to review all the nodes (that is very small, but not zero), the user can execute any action in the filesystem... if that's a FS_FILE/DIR_CREATE, FS_FILE_CLOSE_WRITE, or FS_FILE/DIR_MOVE, we consider the trees as "dirty" and go to conflict.

tags: added: lucid-foundations
tags: added: facundo-lucid
tags: added: chicharra-lucid-problems
removed: facundo-lucid
Changed in ubuntuone-client:
assignee: Facundo Batista (facundo) → Naty Bidart (nataliabidart)
Changed in ubuntuone-client:
status: Triaged → Fix Committed
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
dobey (dobey) on 2009-12-11
Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Rodney Dawes (dobey)
importance: Undecided → High
status: New → In Progress
tags: added: ubuntuone-sru
dobey (dobey) on 2009-12-21
visibility: private → public
Roman Yepishev (rye) wrote :

Log file:

1. Start ubuntuone-client-applet, connect to ubuntuone, make sure syncdaemon is connected
2. Put a directory to Ubuntu One
3. Disconnect syncdaemon
4. Add local file to created directory, make sure that it got local hash
5. Go to web interface
6. Delete directory tree from web interface
7. Connect syncdaemon to ubuntuone
8. Observe that both local file and directory is removed, NOT moved to conflicts.

Confirmed on ubuntuone-client: Installed: 1.0.3-0ubuntu1

Changed in ubuntuone-client:
status: Fix Released → Confirmed
importance: High → Critical
status: Confirmed → New
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntuone-client - 1.0.3-0ubuntu1

ubuntuone-client (1.0.3-0ubuntu1) karmic-proposed; urgency=high

  * New upstream release
    - Remove patch files now in upstream for #462828
    - Require python-ubuntuone-storageprotocol >= 1.0.1
    - BadTransition: SYS_CONNECTION_MADE (LP: #457147)
    - ValueError: invalid literal for int() with base 10: 'None' (LP: #476777)
    - Protocol version error with bw throttling enabled (LP: #455544)
    - Folder deletion from other machines results in conflicts (LP: #462003)
    - Syncdaemon doesn't disable throttling (LP: #483592)
    - Syncdaemon crashes with NoAccessToken (LP: #488413)
    - Error creating share from Nautilus: callback() (LP: #492100)
    - Work without NetworkManager installed (LP: #357395)
    - Create a POT during the build (LP: #455527)
    - Bring back timestamps in oauth-login.log (LP: #459175)
    - Applet starts syncdaemon without a token (LP: #491573)
    - Prefs changes don't take immediate affect (LP: #457564)
    - BW limit settings don't appear to be saved (LP: #465030)
    - Distinguish auth errors from other errors (LP: #450633)
    - Fix for running on python < 2.6.3 (LP: #451670)
 -- Rodney Dawes <email address hidden> Fri, 11 Dec 2009 15:45:52 -0500

Changed in ubuntuone-client (Ubuntu):
status: In Progress → Fix Released
Changed in ubuntuone-client:
importance: Critical → High
Roman Yepishev (rye) wrote :

Confirming file removal on trunk. Syncdaemon logs are attached,

Roman Yepishev (rye) on 2010-02-12
Changed in ubuntuone-client:
status: New → Confirmed
Natalia Bidart (nataliabidart) wrote :

Facundo suggested this possible fix:
We need to build proper test cases.

tags: added: u1-lucid
tags: added: chicharra

On Tue, 2010-02-16 at 16:16 +0000, Naty Bidart wrote:
> Facundo suggested this possible fix:
> We need to build proper test cases.
+ for (dirpath, dirnames, filenames) in os.walk(path):
+ for fname in filenames:
+ if fname.endswith(self.CONFLICT_SUFFIX):
+ logger("Conflicting dir remove because previous "
+ "conflict: %r", os.path.join(dirpath, fname))
+ return False

I'd suggest that it should also check dirnames for conflict suffix,
since it is possible to have the whole directory to be marked as a
conflict. Just to be on a safe side.

Changed in ubuntuone-client (Ubuntu):
importance: High → Medium
Changed in ubuntuone-client:
importance: High → Medium
Changed in ubuntuone-servers:
importance: High → Medium
Changed in ubuntuone-client:
status: Confirmed → In Progress
Changed in ubuntuone-client:
status: In Progress → Fix Committed
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
Adolfo Jayme (fitojb) on 2014-02-28
Changed in ubuntuone-client (Ubuntu Karmic):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers