Open tgrabiec opened 10 years ago
After removing print_backtrace()
call the backtrace is obtainable:
#0 0x00000000003c7e72 in cli_hlt () at /home/tgrabiec/src/osv/arch/x64/processor.hh:241
#1 halt_no_interrupts () at /home/tgrabiec/src/osv/arch/x64/arch.hh:48
#2 osv::halt () at /home/tgrabiec/src/osv/core/power.cc:34
#3 0x0000000000220340 in abort (fmt=fmt@entry=0x630340 "exception nested too deeply") at /home/tgrabiec/src/osv/runtime.cc:127
#4 0x0000000000368834 in enter_exception (this=<optimized out>) at /home/tgrabiec/src/osv/arch/x64/arch-cpu.cc:19
#5 sched::exception_guard::exception_guard (this=<optimized out>) at /home/tgrabiec/src/osv/arch/x64/arch-cpu.cc:37
#6 0x000000000036b375 in page_fault (ef=0xffff80003fd3d038) at /home/tgrabiec/src/osv/arch/x64/mmu.cc:22
#7 <signal handler called>
#8 0x00000000004fd81c in _Unwind_IteratePhdrCallback ()
#9 0x00000000004160bf in operator() (ml=..., __closure=<synthetic pointer>) at /home/tgrabiec/src/osv/libc/dlfcn.cc:107
#10 with_modules<dl_iterate_phdr(int (*)(dl_phdr_info*, size_t, void*), void*)::__lambda1> (f=..., this=0xffffa0003fc08400) at /home/tgrabiec/src/osv/include/osv/elf.hh:551
#11 dl_iterate_phdr (callback=0x4fd730 <_Unwind_IteratePhdrCallback>, data=0xffff80003fd3b7f0) at /home/tgrabiec/src/osv/libc/dlfcn.cc:112
#12 0x00000000004fe06f in _Unwind_Find_FDE ()
#13 0x00000000004fa2d1 in uw_frame_state_for ()
#14 0x00000000004fc083 in _Unwind_RaiseException ()
#15 0x0000000000420d62 in __cxa_throw ()
#16 0x00000000003d1cab in size (f=...) at /home/tgrabiec/src/osv/fs/fs.cc:18
#17 0x000000000032345d in mmu::file_vma::fault (this=0xffffa0003f84d680, addr=0x1000015d6000, ef=0xffff80003fd3c038) at /home/tgrabiec/src/osv/core/mmu.cc:1564
#18 0x000000000031f6c5 in mmu::vm_fault (addr=<optimized out>, addr@entry=0x1000015d686c, ef=ef@entry=0xffff80003fd3c038) at /home/tgrabiec/src/osv/core/mmu.cc:1217
#19 0x000000000036b3ba in page_fault (ef=0xffff80003fd3c038) at /home/tgrabiec/src/osv/arch/x64/mmu.cc:38
#20 <signal handler called>
#21 0x00000000004fd81c in _Unwind_IteratePhdrCallback ()
#22 0x00000000004160bf in operator() (ml=..., __closure=<synthetic pointer>) at /home/tgrabiec/src/osv/libc/dlfcn.cc:107
#23 with_modules<dl_iterate_phdr(int (*)(dl_phdr_info*, size_t, void*), void*)::__lambda1> (f=..., this=0xffffa0003fc08400) at /home/tgrabiec/src/osv/include/osv/elf.hh:551
#24 dl_iterate_phdr (callback=0x4fd730 <_Unwind_IteratePhdrCallback>, data=0xffff8000382cf820) at /home/tgrabiec/src/osv/libc/dlfcn.cc:112
#25 0x00000000004fe06f in _Unwind_Find_FDE ()
#26 0x00000000004fa2d1 in uw_frame_state_for ()
#27 0x00000000004fc083 in _Unwind_RaiseException ()
#28 0x0000000000420d62 in __cxa_throw ()
#29 0x00000000003d1cab in size (f=...) at /home/tgrabiec/src/osv/fs/fs.cc:18
#30 0x000000000032345d in mmu::file_vma::fault (this=0xffffa0003f84d680, addr=0x1000013d7000, ef=0xffff8000382d0068) at /home/tgrabiec/src/osv/core/mmu.cc:1564
#31 0x000000000031f6c5 in mmu::vm_fault (addr=<optimized out>, addr@entry=0x1000013d7fb2, ef=ef@entry=0xffff8000382d0068) at /home/tgrabiec/src/osv/core/mmu.cc:1217
#32 0x000000000036b3ba in page_fault (ef=0xffff8000382d0068) at /home/tgrabiec/src/osv/arch/x64/mmu.cc:38
#33 <signal handler called>
#34 0x00001000013d7fb2 in ?? ()
#35 0x0000200008b93d90 in ?? ()
#36 0x00000000003a8e86 in std_malloc (alignment=0x10, size=0xffffa00038428950) at /home/tgrabiec/src/osv/core/mempool.cc:1125
#37 malloc (size=0x1000019ed788) at /home/tgrabiec/src/osv/core/mempool.cc:1322
This is a manifestation of the same problem as was reported earlier with assert failure in get_arcbuf(): file is accessed after root file system is unmounted. We need to stop other cpus in shutdown() before call to vfs_exit().