SparkleShare sits at pretty much 50-100% CPU permanently. #1172

Closed
sebmaynard opened this Issue Feb 1, 2013 · 14 comments

Comments

Projects
None yet
5 participants
@sebmaynard

According to top, SparkleShare.exe (1.0 on Ubuntu 12.10) uses most of my PC's sparse resources...

There seem to be 11 "mono /usr/lib/sparkleshare/SparkleShare.exe" processes, 2 of which consistently use between 50% and 100% of a CPU each (dual-core 2.4ghz core 2 duo).

It's grinding my poor laptop to its knees, and doesn't seem to be doing anything; I've got about 20 files total in my repository, and the logs show up nothing interesting at all; and I've not made any changes to the remote in a while so not a clue what it's doing.

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons Feb 5, 2013

Owner

can you post the log when this happens?

Owner

hbons commented Feb 5, 2013

can you post the log when this happens?

@rangoy

This comment has been minimized.

Show comment Hide comment
@rangoy

rangoy Feb 13, 2013

Seems like the issue I am, although I only have one process.

Anonymized log:

13:35:51 | Auth | Imported key '/home/XXX/.config/sparkleshare/sparkleshare.XXX.key'
13:35:51 | Auth | The following keys may be used:
2048 fa:-- /home/user/.config/sparkleshare/XXX.key (RSA)
2048 4f:-- XXX (RSA)
1024 dc:-- XXX (DSA)
2048 80:-- XXX (RSA)
13:35:52 | /home/user/SparkleShare/Share | Initializing...
13:35:52 | Cmd | Share | git log --since=1.month --raw --find-renames --date=iso --format=medium --no-color --no-merges
13:35:52 | Cmd | Share | git config core.ignorecase false
13:35:52 | ListenerFactory | Issued new listener for tcp://notifications.sparkleshare.org:443/
13:35:52 | Cmd | Share | git config --get filter.bin.clean
13:35:52 | Cmd | Share | git config remote.origin.url "ssh://storage@HOST/home/storage/Share"
13:35:52 | Cmd | Share | git status --porcelain
13:35:52 | Listener | Subscribing to channel c1-- on tcp://notifications.sparkleshare.org:443/
13:35:52 | Listener | Listening for announcements on tcp://notifications.sparkleshare.org:443/
13:35:52 | Git | Share | Checking for remote changes...
13:35:52 | Cmd | Share | git rev-parse HEAD
13:35:52 | Cmd | Share | git rev-parse --abbrev-ref HEAD
13:35:52 | Cmd | Share | git ls-remote --heads --exit-code "ssh://storage@HOST/home/storage/Share" master
13:35:53 | Git | Share | No remote changes, local+remote: 2a200--
13:35:54 | Controller | Error fetching avatar for XXX: The remote server returned an error: (404) Not Found.
13:40:58 | ListenerTcp | Pinging tcp://notifications.sparkleshare.org:443/
13:40:58 | ListenerTcp | Received pong from tcp://notifications.sparkleshare.org:443/

rangoy commented Feb 13, 2013

Seems like the issue I am, although I only have one process.

Anonymized log:

13:35:51 | Auth | Imported key '/home/XXX/.config/sparkleshare/sparkleshare.XXX.key'
13:35:51 | Auth | The following keys may be used:
2048 fa:-- /home/user/.config/sparkleshare/XXX.key (RSA)
2048 4f:-- XXX (RSA)
1024 dc:-- XXX (DSA)
2048 80:-- XXX (RSA)
13:35:52 | /home/user/SparkleShare/Share | Initializing...
13:35:52 | Cmd | Share | git log --since=1.month --raw --find-renames --date=iso --format=medium --no-color --no-merges
13:35:52 | Cmd | Share | git config core.ignorecase false
13:35:52 | ListenerFactory | Issued new listener for tcp://notifications.sparkleshare.org:443/
13:35:52 | Cmd | Share | git config --get filter.bin.clean
13:35:52 | Cmd | Share | git config remote.origin.url "ssh://storage@HOST/home/storage/Share"
13:35:52 | Cmd | Share | git status --porcelain
13:35:52 | Listener | Subscribing to channel c1-- on tcp://notifications.sparkleshare.org:443/
13:35:52 | Listener | Listening for announcements on tcp://notifications.sparkleshare.org:443/
13:35:52 | Git | Share | Checking for remote changes...
13:35:52 | Cmd | Share | git rev-parse HEAD
13:35:52 | Cmd | Share | git rev-parse --abbrev-ref HEAD
13:35:52 | Cmd | Share | git ls-remote --heads --exit-code "ssh://storage@HOST/home/storage/Share" master
13:35:53 | Git | Share | No remote changes, local+remote: 2a200--
13:35:54 | Controller | Error fetching avatar for XXX: The remote server returned an error: (404) Not Found.
13:40:58 | ListenerTcp | Pinging tcp://notifications.sparkleshare.org:443/
13:40:58 | ListenerTcp | Received pong from tcp://notifications.sparkleshare.org:443/
@pauljohn32

This comment has been minimized.

Show comment Hide comment
@pauljohn32

pauljohn32 Mar 7, 2013

I saw similar on Debian Linux Wheezy (current pre-release), but the CPU time is not "in" sparkleshare, but rather in the file manager that SparkleShare starts when you click the SS applet and choose a folder. The problem here is that Nautilus is trying to spider crawl through the entire directory and build preview files for everything, for some reason it never stops. In the Nautilus settings, I turned off the file preview feature and the CPU usage problem was solved immediately. So, before you say SS is eating up the CPU, you can get better info about why the CPU seems so busy.

I saw similar on Debian Linux Wheezy (current pre-release), but the CPU time is not "in" sparkleshare, but rather in the file manager that SparkleShare starts when you click the SS applet and choose a folder. The problem here is that Nautilus is trying to spider crawl through the entire directory and build preview files for everything, for some reason it never stops. In the Nautilus settings, I turned off the file preview feature and the CPU usage problem was solved immediately. So, before you say SS is eating up the CPU, you can get better info about why the CPU seems so busy.

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons Mar 9, 2013

Owner

@sebmaynard does @pauljohn32's comment seem plausible?

Owner

hbons commented Mar 9, 2013

@sebmaynard does @pauljohn32's comment seem plausible?

@dozed

This comment has been minimized.

Show comment Hide comment
@dozed

dozed Apr 22, 2013

I can confirm that SparkleShare takes a lot of CPU time. After watching the log output and comparing it to the CPU activity, it seems that the main CPU load is generated after this message:

13:35:52 | Cmd | Share | git log --since=1.month --raw --find-renames --date=iso --format=medium --no-color --no-merges

Could it be possible that it is the parser using the CPU that much?

dozed commented Apr 22, 2013

I can confirm that SparkleShare takes a lot of CPU time. After watching the log output and comparing it to the CPU activity, it seems that the main CPU load is generated after this message:

13:35:52 | Cmd | Share | git log --since=1.month --raw --find-renames --date=iso --format=medium --no-color --no-merges

Could it be possible that it is the parser using the CPU that much?

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons May 4, 2013

Owner

@dozed what's the output like when you run that command manually in the project folder? is it quite big?

Owner

hbons commented May 4, 2013

@dozed what's the output like when you run that command manually in the project folder? is it quite big?

@dozed

This comment has been minimized.

Show comment Hide comment
@dozed

dozed May 4, 2013

git .... | wc gives: 3424 13283 216223

dozed commented May 4, 2013

git .... | wc gives: 3424 13283 216223

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons May 4, 2013

Owner

@dozed that is quite big. SparkleShare tries to parse the last month worth of changes. do you have a script or something that updates files?

Owner

hbons commented May 4, 2013

@dozed that is quite big. SparkleShare tries to parse the last month worth of changes. do you have a script or something that updates files?

@dozed

This comment has been minimized.

Show comment Hide comment
@dozed

dozed May 4, 2013

No, but i have a lot of files in that repository, which i update regularly, mainly documentation.

Why does SparkleShare parse the changes?

dozed commented May 4, 2013

No, but i have a lot of files in that repository, which i update regularly, mainly documentation.

Why does SparkleShare parse the changes?

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons May 4, 2013

Owner

it needs the changes to display in the event log. this only happens on startup or when something has changed.

Owner

hbons commented May 4, 2013

it needs the changes to display in the event log. this only happens on startup or when something has changed.

@dozed

This comment has been minimized.

Show comment Hide comment
@dozed

dozed May 5, 2013

If the CPU usage is really due to the parsing, would it be possible to only parse the new messages and ignore old ones? There could be a preprocessing filter (string compare) for that.

dozed commented May 5, 2013

If the CPU usage is really due to the parsing, would it be possible to only parse the new messages and ignore old ones? There could be a preprocessing filter (string compare) for that.

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons May 13, 2013

Owner

@dozed well, it parses a month worth of messages. so it can't know if they're going to be a lot.

Owner

hbons commented May 13, 2013

@dozed well, it parses a month worth of messages. so it can't know if they're going to be a lot.

@hbons

This comment has been minimized.

Show comment Hide comment
@hbons

hbons Jun 22, 2013

Owner

closing this. i really need some kind of log to be able to have a look at this...

Owner

hbons commented Jun 22, 2013

closing this. i really need some kind of log to be able to have a look at this...

@hbons hbons closed this Jun 22, 2013

@dozed

This comment has been minimized.

Show comment Hide comment
@dozed

dozed Jun 23, 2013

The problem seems to be disappeared with the current version from master.

dozed commented Jun 23, 2013

The problem seems to be disappeared with the current version from master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment