[haiku-bugs] Re: [Haiku] #10819: [package_daemon] goes into infinite loop calling PackageFileManager::GetPackageFile()

  • From: "ttcoder" <trac@xxxxxxxxxxxx>
  • Date: Thu, 08 May 2014 20:37:23 -0000

#10819: [package_daemon] goes into infinite loop calling
PackageFileManager::GetPackageFile()
--------------------------------------+----------------------------
   Reporter:  ttcoder                 |      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
--------------------------------------+----------------------------

Comment (by ttcoder):

 While trying to reproduce that infinite loop I got a crash. The code path
 is suspiciously similar so I'll wait for Ingo's advice before filing a new
 ticket. That "new" ticket would go something like this:

 Title: daemon crashes indirecting 0x676b7068 while activating/deactivating
 packages

 Body: the "address" 0x676b7068 is in fact the ascii string "hpkg" so
 that's an obvious candidate of memory corruption isn't it? Here's the
 sequence of events (below).
 Seems I have a knack for rubbing this hrev47209 the wrong way so don't
 hesitate to ask me for experiments and reproducible cases :-)


 {{{
 KERN: package_daemon [144533659:   490]
 Volume::_PackagesEntryRemoved("ArmyKnifeTTE-5.1.0.0-1-x86_gcc2.hpkg")
 KERN: package_daemon [144622162:   490] KERN:
 CommitTransactionHandler::_ChangePackageActivation(): activating 0,
 deactivating 1 packages
 KERN: packagefs [144623493:   490] Volume::_ChangeActivation(): 0 new
 packages, 1 old packages
 KERN: packagefs [144623962:   490] package
 "ArmyKnifeTTE-5.1.0.0-1-x86_gcc2.hpkg" deactivated
 KERN: package_daemon [147890978:   490]
 Volume::_PackagesEntryCreated("ArmyKnifeTTE-5.1.0.0-2-x86_gcc2.hpkg")
 KERN: package_daemon [148608053:   490]
 CommitTransactionHandler::_ChangePackageActivation(): activating 1,
 deactivating 0 packages
 KERN: packagefs [148609381:   490] Volume::_ChangeActivation(): 1 new
 packages, 0 old packages
 KERN: packagefs [148611939:   490] package
 "ArmyKnifeTTE-5.1.0.0-2-x86_gcc2.hpkg" activated
 KERN: intel_extreme accelerant:CALLED status_t intel_get_edid_info(void *,
 long unsigned int, uint32 *)
 KERN: Last message repeated 3 times.
 KERN: package_daemon [166608014:   490]
 Volume::_PackagesEntryRemoved("taglib-1.7.2-1-x86_gcc2.hpkg")
 KERN: package_daemon [172344080:   490] KERN:
 CommitTransactionHandler::_ChangePackageActivation(): activating 0,
 deactivating 1 packages
 KERN: packagefs [172346161:   490] Volume::_ChangeActivation(): 0 new
 packages, 1 old packages
 KERN: packagefs [172346706:   490] package
 "ArmyKnifeTTE-5.1.0.0-2-x86_gcc2.hpkg" deactivated
 KERN: package_daemon [172402122:   490] KERN:
 CommitTransactionHandler::_ChangePackageActivation(): activating 0,
 deactivating 1 packages
 KERN: packagefs [172403256:   490] Volume::_ChangeActivation(): 0 new
 packages, 1 old packages
 KERN: packagefs [172403825:   490] package "taglib-1.7.2-1-x86_gcc2.hpkg"
 deactivated
 KERN: package_daemon [172845443:   490]
 Volume::_PackagesEntryRemoved("ArmyKnifeTTE-5.1.0.0-2-x86_gcc2.hpkg")
 KERN: package_daemon [186396923:   490]
 Volume::_PackagesEntryCreated("ArmyKnifeTTE-5.1.0.0-2-x86_gcc2.hpkg")
 KERN: vm_soft_fault: va 0x676b7000 not covered by area in address space
 KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault
 at 0x676b7068, ip 0x1f4b5d8, write 0, user 1, thread 0x1ea
 KERN: vm_page_fault: thread "job runner" (490) in team "package_daemon"
 (480) tried to read address 0x676b7068, ip 0x1f4b5d8 ("libbe.so_seg0ro"
 +0x2615d8)
 KERN: debug_server: Thread 490 entered the debugger: Segment violation
 KERN: stack trace, current PC 0x1f4b5d8  HashValue__7BStringPCc + 0xc:
 KERN:   (0x7242a4e8)  0x19383a0
 GetPackageFile__18PackageFileManagerRC9entry_refRP11PackageFile + 0x940
 KERN:   (0x7242a5a8)  0x19386b9
 CreatePackage__18PackageFileManagerRC9entry_refRP7Package + 0x29
 KERN:   (0x7242a5e8)  0x194684f  _PackagesEntryCreated__6VolumePCc + 0x18b
 KERN:   (0x7242a638)  0x1945281  ProcessPendingNodeMonitorEvents__6Volume
 + 0x115
 KERN:   (0x7242a678)  0x194161f  _ProcessNodeMonitorEvents__4RootP6Volume
 + 0x27
 KERN:   (0x7242a768)  0x1941e8f  Do__Q24Root9VolumeJob + 0x6b
 KERN:   (0x7242a7a8)  0x1941a97  _JobRunner__4Root + 0x3f
 KERN:   (0x7242a7d8)  0x1941a4f  _JobRunnerEntry__4RootPv + 0x1f
 KERN:   (0x7242a808)  0x253b693  thread_entry + 0x23

 }}}

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

Other related posts: