Opened 10 years ago

Closed 10 years ago

#10829 closed bug (duplicate)

package daemon full cpu on new package addition

Reported by: kallisti5 Owned by: bonefish
Priority: normal Milestone: R1
Component: Servers/package_daemon Version: R1/Development
Keywords: Cc:
Blocked By: #10817 Blocking:
Platform: x86

Description

The package_daemon has been having several serious issues in recent builds.

Build a package (any package) via haikuports, and copy it to /boot/system/packages to activate it. After a few packages package_daemon will begin consuming 100% cpu of one core with "job runner" and the new package won't get added.

Screenshot attached. No relevant info or errors in syslog. I've reproduced this on two different systems running gcc4h.

~> uname -a Haiku shredder 1 hrev47213 May 9 2014 01:34:18 BePC x86 Haiku

Attachments (3)

screenshot1.png (299.2 KB ) - added by kallisti5 10 years ago.
package_daemon-610-debug-12-05-2014-03-01-26.report (11.3 KB ) - added by kallisti5 10 years ago.
package_daemon-854-debug-12-05-2014-03-38-39.report (17.1 KB ) - added by anevilyak 10 years ago.

Download all attachments as: .zip

Change History (9)

by kallisti5, 10 years ago

Attachment: screenshot1.png added

comment:1 by anevilyak, 10 years ago

Likely a duplicate of #10817, which was fixed in hrev47215.

comment:2 by kallisti5, 10 years ago

Priority: criticalhigh

Ah. Could be. Will test post-hrev47215 and report back.

comment:3 by kallisti5, 10 years ago

upgraded to hrev47215. package_daemon still doing strange things. see attached crash log.

comment:4 by anevilyak, 10 years ago

Managed to reproduce it with a debug build of package_daemon + libroot_debug, seems it's trying to remove an entry from a hash table that's already been destroyed. Attached corresponding crash report with full variable dump. Unfortunately don't have more time to dig into it further at the moment, but perhaps it might help shed some light on what's going on.

comment:5 by anevilyak, 10 years ago

On second thought, might have found it: in Volume's destructor, the package file manager is destroyed before calling SetLatestState(). Thus, when SetLatestState() destroys the previous latest state, any packages attached to it get freed, which in turn try to remove themselves from the (already deleted) package file manager. I'd guess that reordering things so that the state setting call happens prior to deleting the file manager should fix this, but that might have other side effects I'm not aware of. Ingo, thoughts?

comment:6 by bonefish, 10 years ago

Blocked By: 10817 added
Priority: highnormal
Resolution: duplicate
Status: newclosed

Closing as duplicate of #10817. Unless anyone wants to adjust summary and description; then feel free to reopen and close as fixed in hrev47219.

Note: See TracTickets for help on using tickets.