[haiku-bugs] Re: [Haiku] #10743: [package_daemon] eats 100% cpu

  • From: "diver" <trac@xxxxxxxxxxxx>
  • Date: Wed, 16 Apr 2014 12:37:17 -0000

#10743: [package_daemon] eats 100% cpu
--------------------------------------+----------------------------
   Reporter:  diver                   |      Owner:  bonefish
       Type:  bug                     |     Status:  new
   Priority:  normal                  |  Milestone:  R1
  Component:  Servers/package_daemon  |    Version:  R1/Development
 Resolution:                          |   Keywords:
 Blocked By:                          |   Blocking:
Has a Patch:  0                       |   Platform:  All
--------------------------------------+----------------------------

Old description:

> hrev47099 x86_gcc2
>
> Sometimes while building packages using haikuporter job runner thread of
> pacake_daemon starts to consume a lot of cpu without ever stopping.
>
> I debugged the thread in question and it looks like it stucks comparing
> something in BString::__eq
>
> Restarting package_daemin makes this problem go away.

New description:

 hrev47099 x86_gcc2

 Sometimes while building packages using haikuporter job runner thread of
 pacake_daemon starts to consume a lot of cpu without ever stopping.

 I debugged the thread in question and it looks like it stucks comparing
 something in BString::__eq

 Restarting package_daemon makes this problem go away.

--

Comment (by diver):

 package daemin crashed after running haikuporter which resulted in the
 following error:

 {{{
 Skipping download of source for FFmpeg
 Skipping unpack of FFmpeg
 Skipping patchset for FFmpeg
 Cleaning up temporary directories ...
 Populating source package ...
 mount: Device/File/Resource busy
 Command '['/bin/bash', '-c', '\n# ignore sigint but stop on every
 error\ntrap \'\' SIGINT\nset -e\n\nmkdir -p \\\n\tdev
 \\\n\tboot/system/packages \\\n\tboot/system/cache/tmp
 \\\n\tboot/system/packages \\\n\tboot/system/settings/etc \\\n\tport
 \\\n\nln -sfn /boot/system system\nln -sfn /boot/system/bin bin\nln -sfn
 /boot/system/package-links packages\nln -sfn /boot/system/cache/tmp
 tmp\nln -sfn /boot/system/settings/etc etc\nln -sfn /boot/system/var
 var\n\n# remove any packages that may be lying around\nrm -f
 boot/system/packages/*.hpkg\n\n# link the list of required packages\nfor
 pkg in $packages; do\n\tln -sfn "$pkg" boot/system/packages/\ndone\n\n#
 silently unmount if needed, just to be one the safe side\nif [ -e
 dev/console ]; then\n\tunmount dev\nfi\nif [ -e boot/system/bin ];
 then\n\tunmount boot/system\nfi\nif [ "$(echo port/work*)" != port/work\\*
 ]; then\n\tunmount port\nfi\n\n# if it has been defined, mount the cross-
 build sysroot\nif [[ -n $crossSysrootDir ]]; then\n\tif [ -e
 $crossSysrootDir/boot/system/develop ]; then\n\t\tunmount
 $crossSysrootDir/boot/system\n\tfi\n\t# symlink haiku_cross_devel package
 into place\n\tmkdir -p
 
$crossSysrootDir/boot/system/packages\n\tcrossDevelPath=/boot/system/develop/cross\n\tln
 -sfn
 \\\n\t\t$crossDevelPath/haiku_cross_devel_sysroot_$targetArchitecture.hpkg
 
\\\n\t\t$crossSysrootDir/boot/system/packages/haiku_cross_devel_sysroot.hpkg\n\tmount
 -t packagefs -p "type system" $crossSysrootDir/boot/system\nfi\n\n# mount
 dev and system-packagefs\nmount -t bindfs -p "source /dev" dev\nmount -t
 packagefs -p "type system" boot/system\n\n# bind-mount the port directory
 to port/\nmount -t bindfs -p "source $portDir" port\n\n']' returned non-
 zero exit status 1
 }}}

 It failed to unmount /data/haikuports/media-
 video/ffmpeg/work-7407/boot/system which happens very often here, but
 doesn't result in package_daemon crash, so it might be just a coincidence.

--
Ticket URL: <https://dev.haiku-os.org/ticket/10743#comment:1>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: