Skip to content

Unbounded recursion exhausting host stack. #112

@dancrossnyc

Description

@dancrossnyc

I'm trying to run axpbox on FreeBSD on an i9 machine, but am running into a problem with infinite recursion that eventually exhausts the (host) stack and causes a SIGSEGV. Running under lldb, I can see something like the following:

ide0.0 aborting on command 0xec
Error sending the packet: send: Network is down
*** IP interrupt set for CPU 0 from CPU 0(@ 110d5)
Process 48465 stopped
* thread #2, name = 'axpbox', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8290f0ff8)
    frame #0: 0x0000000000278348 axpbox`CAlphaCPU::FindTBEntry(unsigned long, int) + 8
axpbox`CAlphaCPU::FindTBEntry:
->  0x278348 <+8>:  movq   %rsi, -0x18(%rbp)
    0x27834c <+12>: movl   %edx, -0x1c(%rbp)
    0x27834f <+15>: movq   -0x10(%rbp), %rax
    0x278353 <+19>: movq   %rax, -0x38(%rbp)
(lldb) where
error: 'where' is not a valid command.
(lldb) bt
* thread #2, name = 'axpbox', stop reason = signal SIGSEGV: invalid permissions for mapped object (fault address: 0x8290f0ff8)
  * frame #0: 0x0000000000278348 axpbox`CAlphaCPU::FindTBEntry(unsigned long, int) + 8
    frame #1: 0x00000000002774f9 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 569
    frame #2: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #3: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #4: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624
    frame #5: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #6: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #7: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624
    frame #8: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #9: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #10: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624
    frame #11: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #12: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #13: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624
    frame #14: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #15: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #16: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624
    frame #17: 0x000000000027dafb axpbox`CAlphaCPU::vmspal_int_initiate_exception() + 283
    frame #18: 0x0000000000281b1b axpbox`CAlphaCPU::vmspal_ent_dtbm_single(int) + 2123
    frame #19: 0x0000000000277918 axpbox`CAlphaCPU::virt2phys(unsigned long, unsigned long*, int, bool*, unsigned int) + 1624

I'm afraid I haven't had any time further to look into what may be going on, however.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions