Opened 11 years ago

Closed 11 years ago

#3447 closed bug (fixed)

deadlock between kernel daemon and package installer install thread

Reported by: korli Owned by: axeld
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

When installing the QEmu package from Bebits, a deadlock happens.

See the syslog for details.

stack trace for thread 3 "kernel daemon"
    kernel stack: 0x80169000 to 0x8016d000
frame               caller     <image>:function + offset
 0 8016c748 (+  48) 80057f94   <kernel_x86> context_switch(thread*: [34m0x817e1000[0m, thread*: [34m0x81804000[0m) + 0x003c
 1 8016c778 (+  64) 8005827b   <kernel_x86> simple_reschedule() + 0x029f
 2 8016c7b8 (+  48) 8003ce49   <kernel_x86>:_mutex_lock + 0x01b1
 3 8016c7e8 (+  48) 8003be53   <kernel_x86>:recursive_lock_lock + 0x0053
 4 8016c818 (+1200) 8008ad76   <kernel_x86> NodeMonitorService<[32m0x801269c0[0m>::NotifyEntryCreatedOrRemoved(int32: [34m1[0m, int32: [34m2[0m, int64: [34m19[0m, [34m0x81005588[0m [36m"kqemu"[0m, int64: [34m176[0m) + 0x003a
 5 8016ccc8 (+  64) 8008be08   <kernel_x86>:notify_entry_created + 0x002c
 6 8016cd08 (+  80) 800688d2   <kernel_x86> devfs_insert_in_dir(devfs_vnode*: [34m0x80f9f800[0m, devfs_vnode*: [34m0x810355c0[0m) + 0x00ae
 7 8016cd58 (+  64) 80068fb0   <kernel_x86> publish_node(devfs*: [34m0x80f9e3c0[0m, devfs_vnode*: [34m0x80f9f800[0m, devfs_vnode*: [34m0x810355c0[0m) + 0x0028
 8 8016cd98 (+  64) 80069097   <kernel_x86> publish_device(devfs*: [34m0x80f9e3c0[0m, [34m0x8257f95f[0m [36m"misc/kqemu"[0m, BaseDevice*: [34m0x810d06c8[0m) + 0x00db
 9 8016cdd8 (+  32) 8006b1d0   <kernel_x86> devfs_publish_device([34m0x8257f95f[0m [36m"misc/kqemu"[0m, BaseDevice*: [34m0x810d06c8[0m) + 0x001c
10 8016cdf8 (+  80) 8006ec12   <kernel_x86> republish_driver(legacy_driver*: [34m0x811233c0[0m) + 0x016a
11 8016ce48 (+  64) 8006ef6e   <kernel_x86> load_driver(legacy_driver*: [34m0x811233c0[0m) + 0x0192
12 8016ce88 (+ 128) 8006f489   <kernel_x86> add_driver([34m0x817da8c8[0m [36m"/boot/home/config/add-ons/kernel/drivers/bin/kqemu"[0m, int32: [34m-1[0m) + 0x022d
13 8016cf08 (+  32) 80071338   <kernel_x86>:legacy_driver_add + 0x0014
14 8016cf28 (+  64) 8006f5f5   <kernel_x86> handle_driver_events(NULL, int32: [34m3808[0m) + 0x00e5
15 8016cf68 (+  80) 8003baf6   <kernel_x86> KernelDaemon<[32m0x8011c6c0[0m>::_DaemonThread([34m0x817e1000[0m, [34m0x800514cd[0m, [34m0x80112694[0m, [34m0x0[0m, [34m0x0[0m, [34m0x8016cff8[0m, [34m0x80051547[0m, [34m0x8011c6c0[0m, [34m0x0[0m, [34m0x0[0m, [34m0x0[0m, VMCache: [34m0x0[0m, vm_page*: NULL) + 0x006e
16 8016cfb8 (+  32) 8003b8d6   <kernel_x86> KernelDaemon<[32m0x8011c6c0[0m>::_DaemonThreadEntry(NULL) + 0x0012
 2 8257b6c4 (+  48) 8003ce49   <kernel_x86>:_mutex_lock + 0x01b1
 3 8257b6f4 (+  48) 8003be53   <kernel_x86>:recursive_lock_lock + 0x0053
 4 8257b724 (+  48) 8006f6c7   <kernel_x86> driver_added([34m0x817da080[0m [36m"/boot/home/config/add-ons/kernel/drivers/dev/misc"[0m) + 0x0037
 5 8257b754 (+ 224) 80070615   <kernel_x86> DirectoryWatcher<[32m0x801268e8[0m>::EventOccured(NotificationService&: [34m0x801269c0[0m, BPrivate::KMessage*: [34m0x8257b8c0[0m) + 0x0421
 6 8257b834 (+  64) 8008acbc   <kernel_x86> NodeMonitorService<[32m0x801269c0[0m>::_SendNotificationMessage(BPrivate::KMessage&: [34m0x8257b8c0[0m, interested_monitor_listener_list*: [34m0x8257bcec[0m, int32: [34m1[0m) + 0x0054
 7 8257b874 (+1200) 8008af53   <kernel_x86> NodeMonitorService<[32m0x801269c0[0m>::NotifyEntryCreatedOrRemoved(int32: [34m1[0m, int32: [34m3[0m, int64: [34m131114[0m, [34m0x8257be04[0m [36m"misc"[0m, int64: [34m266933[0m) + 0x0217
 8 8257bd24 (+  64) 8008be08   <kernel_x86>:notify_entry_created + 0x002c
 9 8257bd64 (+  96) 805dc703   <bfs> bfs_create_dir(fs_volume*: [34m0x80f9e960[0m, fs_vnode*: [34m0x80fe6dd0[0m, [34m0x8257be04[0m [36m"misc"[0m, int32: [34m511[0m, [34m0x8257bdf8[0m) + 0x01db
10 8257bdc4 (+ 320) 800983a2   <kernel_x86> dir_create(int32: [34m-1[0m, [34m0x817db100[0m [36m"/boot"[0m, int32: [34m511[0m, [34mfalse[0m) + 0x0072
11 8257bf04 (+  64) 8009df30   <kernel_x86>:_user_create_dir + 0x0094
12 8257bf44 (+ 100) 800ce802   <kernel_x86>:handle_syscall + 0x00af
user iframe at 0x8257bfa8 (end = 0x8257c000)
 eax 0x69           ebx 0x468b70        ecx 0x701029c0   edx 0xffff0104
 esi 0x70102a00     edi 0x70102a30      ebp 0x70102a4c   esp 0x8257bfdc
 eip 0xffff0104  eflags 0x206      user esp 0x701029c0
 vector: 0x63, error code: 0x0
13 8257bfa8 (+   0) ffff0104   <commpage>:commpage_syscall + 0x0004
14 70102a4c (+ 272) 0021ac96   <_APP_> PkgLink<[32m0x180174f8[0m>::WriteToPath([34m0x180e3858[0m [36m"/boot/apps"[0m, BPath*: [34m0x70102bcc[0m) + 0x01a6
15 70102b5c (+ 224) 0020f3bf   <_APP_> PackageView<[32m0x1805edb0[0m>::Install([34m0x42000000[0m, int8: [34m124[0m, BPath*: [34m0x20e71d[0m) + 0x04cb

Attachments (2)

serial_lock.txt (8.5 KB ) - added by korli 11 years ago.
debug session
legacy_drivers.diff (3.2 KB ) - added by korli 11 years ago.

Download all attachments as: .zip

Change History (3)

by korli, 11 years ago

Attachment: serial_lock.txt added

debug session

by korli, 11 years ago

Attachment: legacy_drivers.diff added

comment:1 by korli, 11 years ago

Resolution: fixed
Status: newclosed

Applied in hrev29603

Note: See TracTickets for help on using tickets.