ubuntuone-syncdaemon maxes out system resources when trying to hash a file with root permissions

Bug #407762 reported by Cary Haynie on 2009-08-01
98
This bug affects 32 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Medium
Guillermo Gonzalez
ubuntuone-client (Ubuntu)
Medium
Unassigned

Bug Description

Binary package hint: ubuntuone-client

Running Karmic on x86-64.

At least one of the files was copied over to ~/Ubuntu One as root. When syncdaemon tries to hash (prepping for a sync) this file it gets a permission denied error and then continues in a viscous loop trying to hash this same file over and over again (see log in comment #5). Changing the file permissions on this file from root corrects the problem.

After moving ~320mb of versioned software repositories to my Ubuntu One share, I've noticed that the Ubuntu One client is constantly working. Further inspection with top(1) shows the ubuntuone-syncdaemon running at max CPU and continually allocating more memory. This continued until my system slowed to a crawl and I was forced to SIGKILL ubuntuone-syncdaemon ( it didn't respond to SIGTERM ).

When I restarted the ubuntuone-client, the ubuntuone-syncdaemon appeared to get in to its previous state, running at 100% CPU and constantly chewing up more memory.

ProblemType: Bug
.home.cary..cache.ubuntuone.log.syncdaemon.exceptions.log:

Architecture: amd64
Date: Sat Aug 1 14:08:14 2009
DistroRelease: Ubuntu 9.10
Package: ubuntuone-client 0.91.1-0ubuntu1
PackageArchitecture: all
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-4.23-generic
SourcePackage: ubuntuone-client
Uname: Linux 2.6.31-4-generic x86_64

Related branches

Cary Haynie (cary-haynie) wrote :
Mark G. Saye (markgsaye) wrote :

Cary, thanks for your bug report. Please could you upgrade your ubuntuone packages and let us know if this is still a problem? There have been many fixes recently, so this problem may not exist any more. Please let us know. Thanks.

Changed in ubuntuone-client (Ubuntu):
status: New → Incomplete
Shai Tahar (tashai) wrote :

Hi I've have the same bug, i'm using an updated version on karma x86_64 as well
$ dpkg -l | grep ubuntuone
ii python-ubuntuone-client 1.0.2-0ubuntu2 Ubuntu One client Python libraries
ii python-ubuntuone-storageprotocol 1.0.0-0ubuntu1 Python library for Ubuntu One file storage a
ii ubuntuone-client 1.0.2-0ubuntu2 Ubuntu One client
ii ubuntuone-client-gnome 1.0.2-0ubuntu2 Ubuntu One client GNOME integration
do you need anything more?

Joshua Hoover (joshuahoover) wrote :

Hi Shai,

I'm sorry to hear Ubuntu One is eating up so much of your computer's resources. It would be helpful if you could do the following to help us get to the root cause of this problem:

1) Open Applications->Accessories->Terminal and then:
  killall ubuntuone-client-applet ubuntuone-syncdaemon
  /usr/lib/ubuntuone-client/ubuntuone-syncdaemon --debug > ~/syncdaemon-debug.log &
  top
2) Open Applications->Internet->Ubuntu One
3) Allow Ubuntu One to sync existing files or put some files in your ~/Ubuntu One/ folder to force the problem
4) Attach ~/syncdaemon-debug.log to this bug report and also let us know what the CPU and MEM usage looked like in top for the Ubuntu One python processes
5) Back in a terminal session, run: apport-collect -p apport-collect -p ubuntuone-client 407762

Thank you,

Joshua

Shai Tahar (tashai) wrote :
Download full text (5.7 KiB)

Hi Joshua,
i've attached top and part of the log,
i've found the problem:
i've copied one of the files using root, the syncd fails to hash the file sync (permissions)
but it tries over and over...

top - 10:22:23 up 1 day, 15:51, 3 users, load average: 0.60, 0.26, 0.12
Tasks: 175 total, 8 running, 167 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.6%us, 0.9%sy, 0.1%ni, 94.3%id, 0.7%wa, 0.3%hi, 0.0%si, 0.0%st
Mem: 2036092k total, 1402776k used, 633316k free, 21132k buffers
Swap: 4000176k total, 0k used, 4000176k free, 772484k cached

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10673 shait 20 0 114m 27m 4564 R 97 1.4 0:57.32 ubuntuone-syncd
 1712 root 20 0 262m 121m 32m S 2 6.1 8:29.13 Xorg
10503 shait 20 0 213m 16m 10m S 2 0.8 0:02.97 gnome-terminal
    1 root 20 0 19444 1784 1188 S 0 0.1 0:00.97 init

2009-11-08 10:21:27,188 - ubuntuone.SyncDaemon.sync - DEBUG - T:NONE:F b72e6d20-d399-419e-ab31-bff18bbded0d [root:b72e6d20-d399-419e-ab31-bff18bbded0d] ''Ubuntu One/file'' | Called new_local_file
2009-11-08 10:21:27,188 - ubuntuone.SyncDaemon.State - DEBUG - READING --[SYS_META_QUEUE_WAITING]--> READING_WITH_METAQ
2009-11-08 10:21:27,188 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': <SyncDaemonState READING_WITH_METAQ>}
2009-11-08 10:21:27,188 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: FS_FILE_CLOSE_WRITE, args:('/home/shait/Ubuntu One/file',), kw:{}
2009-11-08 10:21:27,189 - ubuntuone.SyncDaemon.sync - DEBUG - T:NONE:F b72e6d20-d399-419e-ab31-bff18bbded0d [root:b72e6d20-d399-419e-ab31-bff18bbded0d] ''Ubuntu One/file'' | EVENT: FS_FILE_CLOSE_WRITE:{} with ARGS:()
2009-11-08 10:21:27,189 - ubuntuone.SyncDaemon.sync - DEBUG - T:NONE:F b72e6d20-d399-419e-ab31-bff18bbded0d [root:b72e6d20-d399-419e-ab31-bff18bbded0d] ''Ubuntu One/file'' | Calling calculate_hash
2009-11-08 10:21:27,189 - ubuntuone.SyncDaemon.HQ - DEBUG - HashQueue: inserting path '/home/shait/Ubuntu One/file' mdid b72e6d20-d399-419e-ab31-bff18bbded0d
2009-11-08 10:21:27,190 - ubuntuone.SyncDaemon.sync - DEBUG - T:NONE:F b72e6d20-d399-419e-ab31-bff18bbded0d [root:b72e6d20-d399-419e-ab31-bff18bbded0d] ''Ubuntu One/file'' | Called calculate_hash
2009-11-08 10:21:27,190 - ubuntuone.SyncDaemon.HQ.hasher - DEBUG - Hasher: got file to hash: path '/home/shait/Ubuntu One/file' mdid b72e6d20-d399-419e-ab31-bff18bbded0d
2009-11-08 10:21:27,190 - ubuntuone.SyncDaemon.local_rescan - DEBUG - process next in queue (len 11)
2009-11-08 10:21:27,190 - ubuntuone.SyncDaemon.HQ.hasher - DEBUG - Hasher: hash error [Errno 13] Permission denied: '/home/shait/Ubuntu One/file' (path '/home/shait/Ubuntu One/file' mdid b72e6d20-d399-419e-ab31-bff18bbded0d)
2009-11-08 10:21:27,190 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_NET_CONNECTED, args:(), kw:{}
2009-11-08 10:21:27,191 - ubuntuone.SyncDaemon.State - DEBUG - READING_WITH_METAQ --[SYS_NET_CONNECTED]--> READING_WITH_NETWORK_WITH_METAQ
2009-11-08 10:21:27,191 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{...

Read more...

Shai Tahar (tashai) wrote :

forgot to mention that once you chmod the file for everyone the problem is solved.
IMHO the process should be throttled in case of a failure (permissions)

Joshua Hoover (joshuahoover) wrote :

Hi Shai,

Great find! Thank you for providing this info. I'm going to make sure our developers are aware so we can better prevent this type of issue in the future when there is an issue like this.

Thank you,

Joshua

tags: added: common
Changed in ubuntuone-client (Ubuntu):
status: Incomplete → Triaged
tags: added: foundations+
Changed in ubuntuone-client (Ubuntu):
importance: Undecided → Medium
assignee: nobody → Facundo Batista (facundo)
summary: - ubuntuone-syncdaemon maxes out system resources
+ ubuntuone-syncdaemon maxes out system resources when trying to hash a
+ file with root permissions
description: updated
tags: added: chicharra-lucid-problems

.home.bart..config.ubuntuone.ubuntuone.client.conf:
 [ubuntuone]
 connected = True
 connect = 0
 show_applet = 1
 bookmarked = True
Architecture: i386
DistroRelease: Ubuntu 9.10
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.5)
Package: ubuntuone-client 1.0.2-0ubuntu2
PackageArchitecture: all
ProcEnviron:
 SHELL=/bin/bash
 LANG=ru_RU.UTF-8
ProcVersionSignature: Ubuntu 2.6.31-17.54-generic
Uname: Linux 2.6.31-17-generic i686
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

tags: added: apport-collected
Roman Yepishev (rye) on 2010-02-15
tags: added: invalid-permissions
Changed in ubuntuone-client:
importance: Undecided → Medium
status: New → Triaged
tags: added: u1-lucid
tags: added: chicharra
Roman Yepishev (rye) on 2010-02-17
tags: added: rye-diag
Changed in ubuntuone-client (Ubuntu):
assignee: Facundo Batista (facundo) → Guillermo Gonzalez (verterok)
status: Triaged → In Progress
Changed in ubuntuone-client:
assignee: nobody → Guillermo Gonzalez (verterok)
Changed in ubuntuone-client (Ubuntu):
status: In Progress → Triaged
assignee: Guillermo Gonzalez (verterok) → nobody
Changed in ubuntuone-client:
status: Triaged → In Progress
Changed in ubuntuone-client:
status: In Progress → Fix Committed
Roman Yepishev (rye) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. This particular bug has already been reported and is a duplicate of bug 506559, so it is being marked as such. Please look at the other bug report to see if there is any missing information that you can provide, or to see if there is a workaround for the bug. Additionally, any further discussion regarding the bug should occur in the other report. Please continue to report any other bugs you may find.

Changed in ubuntuone-client:
status: Fix Committed → Confirmed
Changed in ubuntuone-client (Ubuntu):
status: Triaged → Confirmed
Roman Yepishev (rye) on 2010-04-01
tags: added: bugpattern-invalid-duplicate
Changed in ubuntuone-client (Ubuntu):
status: Confirmed → Triaged
Changed in ubuntuone-client:
status: Confirmed → Fix Committed
Changed in ubuntuone-client:
status: Fix Committed → Fix Released
Changed in ubuntuone-client (Ubuntu):
status: Triaged → Fix Released
Rubén Parra (rubenxparra) wrote :

Hi,

My Dell Inspiron 1525 have to the problem with the process ubuntuone-syncdaemon; the CPU is full by the process.

Regards.

Rubén Parra (rubenxparra) wrote :

Ot the 20:00 i kill the ubuntu one in my desktop; see the graphique

The easiest solution is to remove files owned by root from the Ubuntu One folder (or to change their owner or permissions). But I don't have any idea if you want to have files owned by root in your Ubuntu One folder.
If suggestions mentioned above doesn't work, look also in comments of Bug #449760.

GaryW (gnubyexample) wrote :

I am confused here. Between comments #14 and #15 there appears to be 'Fix Released'

If Rubén is genuinely experiencing this bug today (and running the latest software), then it suggest the problem has not been fixed.

@Rubén:
   If you could open a terminal and paste the following commands and attach your output then it will help confirm which
   version of software you are running:

       cat /etc/*release*

       dpkg -l | egrep '(ubuntuone|u1sync)'

    (If you prefer screenshots then the version number of ubuntu one might be shown in an 'About' section of the
     ubuntuone applet and you could attach that screenshot instead)

Suggesting the user check ownership of files within a directory structure to ensure there is no 'root' ownership is
   (1) a workaround
   (2) unnecessary if the problem is fixed ... ?Fix Released?

Would be nice to have some feedback from a member of the paid canonical staff, regarding whether they
feel that the Ubuntu One product is production ready, if it indeed still contains such a basic fault.

I did use Ubuntu One, but have stayed away for the last six months, hoping that bugs such as
this would be ironed out.

Forget Maverick Meerkat, if Canonical are really pitching these (Ubuntu one) facilities at the enterprise, then bugs like
this need to be truly squashed and thoroughly tested.

Perhaps @Joshua Hoover
or @Facundo Batista
might have some details of whether the bug has a fix or if it is to be given developer time?

I have no interest in a re-reading any workaround (thank you in advance) but I do have some practical suggestions:
   (1) give ubuntu one or syncdaemon (whatever) root privileges just temporarily whilst it does it remote hash fetching
            ( maybe some folks might not like that idea from a network security point of view but can perhaps be mitigated )

or

   (2) check file permissions as it traverses directories of files and skip any files it doesn't have authority to hash check
            ( optional report to the user which files it skipped )

Perhaps if suggestion (1) was felt to be a candidate for a solution then something along the lines of
    open network socket, fetch remote hashes, drop network socket, gain root privilege, compare hashes with local, drop root privilege, reopen network socket for syncing
...might be a way of mitigating security concerns, by only having root privilege during non networked mode of the daemon.

GaryW (gnubyexample) wrote :

My typing mistake in comment #18, where (1) should read as follows:
    (1) give ubuntu one or syncdaemon (whatever) root privileges just temporarily whilst it does it local file hashing

Hopefully the final paragraph of comment #18 is a more full explanation.

linuxar (linuxar) wrote :

Hello,

I add myself to the list of those affected by this bug, but in... Natty.
To get rid of, i just executed: sudo apt-get remove --purge ubuntuone*
Now, my computer (Acer 5920G) works well, but I do not have the guts to install ubuntuone again.
I arrived here after founding first: https://bugs.launchpad.net/ubuntuone-client/+bug/449760
Before uninstalling, the:
ps auxwww | grep -v S
was showing ubuntuone-syncdaemaon among the offending (always started) processes.

Roman Yepishev (rye) wrote :

Axeoth,

I understand you have already uninstalled the software, but could you please send the archived logs from ~/.cache/ubuntuone/log to <email address hidden> so that we could have a look at what point the system starts malfunctioning?

The "Fix Released" status means that the syncdaemon no longer tries to hash the file it has no permission for.
It writes the following line in the log
"Ignoring path as we don't have enough permissions to track it: '/home/rtg/Ubuntu One/No_hash_me/history.mbox'"
And that's it, it does not try to re-hash the file.

linuxar (linuxar) wrote :

Please find enclosed the archive of my ~/.cache/ubuntuone/log folder. I looked at it, but it shows nothing suspicios (for me).
The output of "uname -a" on my Acer 5920G: Linux fif 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
I should stress that I encountered many times a situation when my processor was at 90-100% for some time (usually until a restart), but I never identified the cause. It was just today that I found about ubunutuone-syncdaemon by following instructions on: http://superuser.com/questions/53673/cpu-mysteriously-being-used-by-nothing (notably the ps auxwww | grep -v S command).
It is just several hours since I uninstalled ubuntuone-syncdaemon, but things seem to be normal, i.e. no more processor at 100%.

amar (amarendra) wrote :

If a fix has been released then it didn't fix the EATING all the CPU and MEMORY problem by ubuntuone-syncdaemon.

Here's my attached Screenshot of what I am syncing in UbuntuOne and none of these seems to be owned by root, except sources.list for which I have changed permision.

amar (amarendra) wrote :

Adding syncdaemon-exceptions.log

gareth (garethbaxter) wrote :

I have this or a similar problem, despite apparently haveing the latest version of ubuntuone.
I get a lot of CPU usage on startup, but this settles down, so not a killer. The real problem is a gradual increase in memory usage. Each day it's more. Right now it's using 56% (1.2gig) of memory and no cpu.

 I can provide log files and whatever else if someone shows me how.

Leo Arias (elopio) wrote :

Hi gareth,

We are currently debugging memory and CPU usage to find and solve the problems. This is currently work in progress, being tracked on bug #902166 and bug #913912. You can subscribe to those bugs, and click the link on the top to say that you are affected too.

Sorry for the problems, and thanks for telling us about them.
pura vida.

To post a comment you must log in.