ubuntu one does not notice when hamster.db changes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Project Hamster |
Invalid
|
Undecided
|
|||
hamster (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
hamster-indicator (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
ubuntuone-client (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
I'm not sure where to report this bug, with Ubuntu One or with the hamster package. It concerns both.
I tried to synchronize the database of the popular hamster time tracker between computers using Ubuntu One. This technique is widely recommended on the internet, and I was surprised it does *not* work.
I added ~/.local/
What happens:
-------
hamster.db is synchronized when logging into Ubuntu. However, it is not synchronized while using the time tracker (e.g., adding new activities to the list of tracked activities). Although "ls -l" indicates that the last change time of the file has changed, Ubuntu One does not synchronize it to the cloud. This is true *even after closing the hamster application or hamster-indicator*.
Probable reason
-------
As far as I can tell the reason is that there is a background process named "hamster-service" keeping the file hamster.db open for writing, even after the hamster application or hamster-indicator is closed. This process runs while the user is logged into the gnome session, and that's the reason why hamster.db is only synced at login. If I manually kill the "hamster-service" process, Ubuntu One immediately syncs my hamster.db to the cloud.
How to reproduce
-------
1. Open "hamster" or "hamster-
2. Open Ubuntu One control panel and add "~/.local/
3. Log out of your GNOME session.
4. Log in again.
5. Observe that Ubuntu One syncs "hamster.db".
6. Open "hamster" or "hamster-
7. Close "hamster" or "hamster-
8. Observe that Ubuntu One does *not* sync "hamster.db".
9. Type "killall hamster-service" in a terminal.
10. Observe that Ubuntu One immediately syncs "hamster.db".
I'm not sure who's responsible here, the hamster people, the Ubuntu One people, or the people implementing the file monitoring service, but I feel that this should work.
One step to a solution may be syncing the file whenever the last change date indicates it has changed, no matter if it is still opened by any process.
ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: ubuntuone-client 4.0.0-0ubuntu1
ProcVersionSign
Uname: Linux 3.5.0-22-generic i686
ApportVersion: 2.6.1-0ubuntu9
Architecture: i386
Date: Tue Jan 22 22:30:16 2013
InstallationDate: Installed on 2010-11-28 (786 days ago)
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release i386 (20101007)
MarkForUpload: True
PackageArchitec
SourcePackage: ubuntuone-client
UpgradeStatus: Upgraded to quantal on 2012-10-20 (93 days ago)
description: | updated |
Changed in hamster-indicator (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in hamster (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in hamster-applet: | |
status: | New → Invalid |
That's the output of "gvfs-monitor-dir .local/ share/hamster- applet/ ", when adding a new activity while hamster-indicator is running. Obviously, the monitoring service reports the change:
ruediger@enzo:~$ gvfs-monitor-dir .local/ share/hamster- applet/ .local/ share/hamster- applet/ hamster. db-journal .local/ share/hamster- applet/ hamster. db-journal .local/ share/hamster- applet/ hamster. db .local/ share/hamster- applet/ hamster. db-journal .local/ share/hamster- applet/ hamster. db-journal .local/ share/hamster- applet/ hamster. db-journal .local/ share/hamster- applet/ hamster. db
Directory Monitor Event:
Child = /home/ruediger/
Event = CREATED
Directory Monitor Event:
Child = /home/ruediger/
Event = CHANGED
Directory Monitor Event:
Child = /home/ruediger/
Event = CHANGED
Directory Monitor Event:
Child = /home/ruediger/
Event = CHANGED
Directory Monitor Event:
Child = /home/ruediger/
Event = CHANGES_DONE_HINT
Directory Monitor Event:
Child = /home/ruediger/
Event = DELETED
Directory Monitor Event:
Child = /home/ruediger/
Event = CHANGES_DONE_HINT