puppy icon indicating copy to clipboard operation
puppy copied to clipboard

PANIC: process enqueued for execution multiple times

Open egranata opened this issue 7 years ago • 2 comments

[1430] kernel/src/panic/panic.cpp:40 kernel panic at kernel/src/process/manager.cpp:650 - process enqueued for execution multiple times
[1430] kernel/src/process/dumperror.cpp:26 irq: 6 error code: 0
[1430] kernel/src/process/dumperror.cpp:44 register cr0: 0x80010039
[1430] kernel/src/process/dumperror.cpp:45 register cr2: 0x814004
[1430] kernel/src/process/dumperror.cpp:46 register cr3: 0x1350000
[1430] kernel/src/process/dumperror.cpp:47 register cr4: 0x94
[1430] kernel/src/process/dumperror.cpp:49 register eax: 0xC03902DC
[1430] kernel/src/process/dumperror.cpp:50 register ebx: 0xC8ED9000
[1430] kernel/src/process/dumperror.cpp:51 register ecx: 0xC03902E0
[1430] kernel/src/process/dumperror.cpp:52 register edx: 0xC03902DC
[1430] kernel/src/process/dumperror.cpp:54 register ebp: 0xC8EDADDB
[1430] kernel/src/process/dumperror.cpp:55 register esi: 0xC03620B8
[1430] kernel/src/process/dumperror.cpp:56 register edi: 0xC03902C8
[1430] kernel/src/process/dumperror.cpp:57 register esp: 0xC8EDAD7F
[1430] kernel/src/process/dumperror.cpp:61 flags = 0x202
[1430] kernel/src/process/dumperror.cpp:62 segments: cs: 0x8, ds: 0x23, es: 0x23, fs: 0x23, gs: 0x23, ss: 0x10
[1430] kernel/src/process/dumperror.cpp:72 eip = 0xC01166F3
[1430] kernel/src/process/dumperror.cpp:84     0xC011F711
[1430] kernel/src/process/dumperror.cpp:84     0xC01206E5
[1430] kernel/src/process/dumperror.cpp:84     0xC010C3B4
[1430] kernel/src/process/dumperror.cpp:84     0xC0120D4E
[1430] kernel/src/process/dumperror.cpp:84     0xC0120E0F
[1430] kernel/src/process/dumperror.cpp:84     0xC011D128
[1430] kernel/src/process/dumperror.cpp:84     0xC0105922
[1430] kernel/src/process/dumperror.cpp:84     0xC011950E
[1430] kernel/src/process/dumperror.cpp:84     0xC010BC59
[1430] kernel/src/process/dumperror.cpp:84     0xC01237E9
[1430] kernel/src/process/dumperror.cpp:84     0x409A9F
[1430] kernel/src/process/dumperror.cpp:84     0x406DFE
[1430] kernel/src/process/dumperror.cpp:84     0x0

This is the backtrace's translation:

(lldb) im lookup -va 0xC01237E9
      Address: kernel[0xc01237e9] (kernel..text + 145337)
      Summary: kernel`interrupt_handler_128 + 36
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x000006bf}, range = [0xc01237c5-0xc01237f9), name="interrupt_handler_128"

(lldb) im lookup -va 0xC010BC59
      Address: kernel[0xc010bc59] (kernel..text + 48169)
      Summary: kernel`interrupt_handler + 73
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x0000059a}, range = [0xc010bc10-0xc010bc5b), name="interrupt_handler"

(lldb) im lookup -va 0xC011950E
      Address: kernel[0xc011950e] (kernel..text + 103646)
      Summary: kernel`syscall_irq_handler(GPR&, InterruptStack&, void*) + 110
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x00000131}, range = [0xc01194a0-0xc01195a6), name="syscall_irq_handler(GPR&, InterruptStack&, void*)", mangled="_ZL19syscall_irq_handlerR3GPRR14InterruptStackPv"

(lldb) im lookup -va 0xC0105922
      Address: kernel[0xc0105922] (kernel..text + 22770)
      Summary: kernel`fread_syscall_helper(SyscallManager::Request&) + 34
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x0000032b}, range = [0xc0105900-0xc0105924), name="fread_syscall_helper(SyscallManager::Request&)", mangled="_Z20fread_syscall_helperRN14SyscallManager7RequestE"

(lldb) im lookup -va 0xC011D128
      Address: kernel[0xc011d128] (kernel..text + 119032)
      Summary: kernel`fread_syscall_handler(unsigned long, unsigned long, unsigned long) + 88
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x00000706}, range = [0xc011d0d0-0xc011d137), name="fread_syscall_handler(unsigned long, unsigned long, unsigned long)", mangled="_Z21fread_syscall_handlermmm"

(lldb) im lookup -va 0xC0120E0F
      Address: kernel[0xc0120e0f] (kernel..text + 134623)
      Summary: kernel`TTYFile::read(unsigned long, char*) + 159
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x00000534}, range = [0xc0120d70-0xc0120ffc), name="TTYFile::read(unsigned long, char*)", mangled="_ZN7TTYFile4readEmPc"

(lldb) im lookup -va 0xC0120D4E
      Address: kernel[0xc0120d4e] (kernel..text + 134430)
      Summary: kernel`TTYFile::procureOne() + 46
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x000002e5}, range = [0xc0120d20-0xc0120d64), name="TTYFile::procureOne()", mangled="_ZN7TTYFile10procureOneEv"

(lldb) im lookup -va 0xC010C3B4
      Address: kernel[0xc010c3b4] (kernel..text + 50052)
      Summary: kernel`TTY::read() + 116
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x00000339}, range = [0xc010c340-0xc010c40d), name="TTY::read()", mangled="_ZN3TTY4readEv"

(lldb) im lookup -va 0xC01206E5
      Address: kernel[0xc01206e5] (kernel..text + 132789)
      Summary: kernel`tasks::keybqueue::readKey() + 53
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x000002fa}, range = [0xc01206b0-0xc0120718), name="tasks::keybqueue::readKey()", mangled="_ZN5tasks9keybqueue7readKeyEv"

(lldb) im lookup -va 0xC011F711
      Address: kernel[0xc011f711] (kernel..text + 128737)
      Summary: kernel`WaitQueue::wait(process_t*) + 65
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x00000300}, range = [0xc011f6d0-0xc011f783), name="WaitQueue::wait(process_t*)", mangled="_ZN9WaitQueue4waitEP9process_t"

(lldb) im lookup -va 0xC01166F3
      Address: kernel[0xc01166f3] (kernel..text + 91843)
      Summary: kernel`ProcessManager::deschedule(process_t*, process_t::State) + 243
       Module: file = "/Volumes/Home/puppy/out/kernel", arch = "i386"
       Symbol: id = {0x0000054f}, range = [0xc0116600-0xc01166f5), name="ProcessManager::deschedule(process_t*, process_t::State)", mangled="_ZN14ProcessManager10descheduleEP9process_tNS0_5StateE"

This is probably a race condition between the keybqueue task and the keyboard IRQ

egranata avatar Sep 01 '18 06:09 egranata

This is the content of the kernel log right before the panic:

[480] kernel/src/syscalls/impl/logging.cpp:28 (USERSPACE) (pid=9) shell is up and running
[480] kernel/src/process/manager.cpp:443 saving FP state for process 9
[490] kernel/src/process/manager.cpp:653 process 9 moved to state 2
[1210] kernel/src/process/manager.cpp:629 process 5 moved to state AVAILABLE
[1230] kernel/src/process/manager.cpp:629 process 9 moved to state AVAILABLE
[1230] kernel/src/process/manager.cpp:653 process 5 moved to state 2
[1250] kernel/src/process/manager.cpp:653 process 9 moved to state 2
[1300] kernel/src/process/manager.cpp:629 process 5 moved to state AVAILABLE
[1320] kernel/src/process/manager.cpp:629 process 9 moved to state AVAILABLE
[1320] kernel/src/process/manager.cpp:653 process 5 moved to state 2
[1330] kernel/src/process/manager.cpp:653 process 9 moved to state 2
[1390] kernel/src/process/manager.cpp:629 process 5 moved to state AVAILABLE
[1410] kernel/src/process/manager.cpp:629 process 9 moved to state AVAILABLE
[1410] kernel/src/process/manager.cpp:653 process 5 moved to state 2
[1430] kernel/src/process/manager.cpp:629 process 5 moved to state AVAILABLE

egranata avatar Sep 01 '18 06:09 egranata

[0.763] kernel/src/panic/panic.cpp:40 kernel panic at kernel/src/process/manager.cpp:707 - process enqueued for execution multiple times
[0.763] kernel/src/process/dumperror.cpp:26 irq: 6 error code: 0
[0.763] kernel/src/process/dumperror.cpp:44 register cr0: 8001003b
[0.763] kernel/src/process/dumperror.cpp:45 register cr2: 821f04
[0.763] kernel/src/process/dumperror.cpp:46 register cr3: 1454000
[0.763] kernel/src/process/dumperror.cpp:47 register cr4: 694
[0.763] kernel/src/process/dumperror.cpp:49 register eax: c03f1844
[0.763] kernel/src/process/dumperror.cpp:50 register ebx: c03c5788
[0.763] kernel/src/process/dumperror.cpp:51 register ecx: c03f1848
[0.763] kernel/src/process/dumperror.cpp:52 register edx: c03f1844
[0.763] kernel/src/process/dumperror.cpp:54 register ebp: c8f7cdbb
[0.763] kernel/src/process/dumperror.cpp:55 register esi: c8f7b000
[0.763] kernel/src/process/dumperror.cpp:56 register edi: c03f1840
[0.763] kernel/src/process/dumperror.cpp:57 register esp: c8f7cd6f
[0.763] kernel/src/process/dumperror.cpp:61 flags = 0x00000202, x87 status = 0
[0.763] kernel/src/process/dumperror.cpp:62 segments: cs: 0x00000008, ds: 0x00000023, es: 0x00000023, fs: 0x00000023, gs: 0x00000023, ss: 0x00000010
[0.763] kernel/src/process/dumperror.cpp:72 eip = c012a84c
[0.763] kernel/src/process/dumperror.cpp:84     c011bc91
[0.763] kernel/src/process/dumperror.cpp:84     c0105d75
[0.763] kernel/src/process/dumperror.cpp:84     c011f895
[0.763] kernel/src/process/dumperror.cpp:84     c01270c2
[0.763] kernel/src/process/dumperror.cpp:84     c0127927
[0.763] kernel/src/process/dumperror.cpp:84     c0112093
[0.763] kernel/src/process/dumperror.cpp:84     c011ff82
[0.763] kernel/src/process/dumperror.cpp:84     c011138c
[0.763] kernel/src/process/dumperror.cpp:84     c0105a29
[0.763] kernel/src/process/dumperror.cpp:84     c012e8a9
[0.763] kernel/src/process/dumperror.cpp:84     415daf
[0.763] kernel/src/process/dumperror.cpp:84     40470b
[0.763] kernel/src/process/dumperror.cpp:84     4186e4
[0.763] kernel/src/process/dumperror.cpp:84     400094
[0.763] kernel/src/process/dumperror.cpp:84     0
[0.763] kernel/src/process/dumperror.cpp:84     0

egranata avatar Nov 11 '18 02:11 egranata