On Thu, 2019-08-22 at 10:47 +0300, Nadav Har'El wrote:
> Do you know how to get a backtrace from gdb?
Yes, see below. It wasn't running out of memory:
(gdb) osv mem
Total Memory: 8589392896 Bytes
Mmap Memory: 2231259136 Bytes (25.98%)
Free Memory: 7464316928 Bytes (86.90%)
This is the most recent one:
(gdb) bt
#0 0x000000004022987e in abort (fmt=fmt@entry=0x406738f2 "exception
nested too deeply") at runtime.cc:121
#1 0x0000000040397bf6 in sched::arch_cpu::enter_exception
(this=<optimized out>) at arch/x64/arch-cpu.cc:19
#2 sched::exception_guard::exception_guard (this=<optimized out>) at
arch/x64/arch-cpu.cc:37
#3 0x000000004039a97c in page_fault (ef=0xffff80000001c048) at
arch/x64/mmu.cc:22
#4 <signal handler called>
#5 0x0000000040397d3b in safe_load<void*> (data=@0xffff8001032b13d0:
0x0, potentially_bad_pointer=0x2000af800000) at arch/x64/safe-ptr.hh:33
#6 backtrace_safe (pc=pc@entry=0xffff8001032b1330, nr=nr@entry=128) at
arch/x64/backtrace.cc:26
#7 0x00000000402295a6 in print_backtrace () at runtime.cc:79
#8 0x000000004022987c in abort (fmt=fmt@entry=0x40644c28 "Assertion
failed: %s (%s: %s: %d)\n") at runtime.cc:121
#9 0x00000000402298eb in __assert_fail (expr=expr@entry=0x40658734
"current_id < rings.size()", file=file@entry=0x40658810
"include/lockfree/unordered_ring_mpsc.hh",
line=line@entry=111,
func=func@entry=0x40658840 <bool unordered_ring_mpsc<harvest,
1024u>::emplace<unsigned long&, void const*&, unsigned int&, unsigned
int&, esource&>(unsigned long&, void const*&, unsigned int&, unsigned
int&, esource&)::__func__> "emplace") at runtime.cc:139
#10 0x000000004029e027 in unordered_ring_mpsc<harvest,
1024u>::emplace<unsigned long&, void const*&, unsigned int&, unsigned
int&, esource&> (this=<optimized out>)
at include/lockfree/unordered_ring_mpsc.hh:111
#11 random_harvestq_internal (somecounter=<optimized out>,
entropy=<optimized out>, count=<optimized out>, bits=<optimized out>,
origin=<optimized out>)
at bsd/sys/dev/random/random_harvestq.cc:164
#12 0x000000004039c02b in harvest_interrupt_randomness
(frame=0xffff8001032b2068, irq=32) at include/osv/intr_random.hh:22
#13 interrupt (frame=0xffff8001032b2068) at arch/x64/exceptions.cc:259
#14 <signal handler called>
#15 console::isa_serial_console::putchar (ch=97 'a') at drivers/isa-
serial.cc:108
#16 console::isa_serial_console::write (this=<optimized out>,
str=0x409c00c3 <debug_ll::msg+35>
"ge_range_allocator::alloc_aligned(unsigned long, unsigned long,
unsigned long, bool)+550>\n", len=<optimized out>) at drivers/isa-
serial.cc:79
#17 0x00000000403431d8 in console::console_multiplexer::drivers_write
(len=1,
str=0x409c00c2 <debug_ll::msg+34>
"age_range_allocator::alloc_aligned(unsigned long, unsigned long,
unsigned long, bool)+550>\n", this=0x409a97e0 <console::mux>)
at drivers/console-multiplexer.cc:49
#18 console::console_multiplexer::<lambda(char const*,
size_t)>::operator() (len=1,
str=0x409c00c2 <debug_ll::msg+34>
"age_range_allocator::alloc_aligned(unsigned long, unsigned long,
unsigned long, bool)+550>\n", __closure=<optimized out>)
at drivers/console-multiplexer.cc:36
#19 std::_Function_handler<void(char const*, long unsigned int),
console::console_multiplexer::start()::<lambda(char const*, size_t)>
>::_M_invoke(const std::_Any_data &, const char *&&, unsigned long &&)
(__functor=..., __args#0=<optimized out>, __args#1=<optimized out>) at
/usr/include/c++/7/bits/std_function.h:316
#20 0x0000000040343d33 in std::function<void (char const*, unsigned
long)>::operator()(char const*, unsigned long) const
(__args#1=<optimized out>, __args#0=<optimized out>,
this=0x409a9840 <console::mux+96>) at
/usr/include/c++/7/bits/std_function.h:706
#21 console::LineDiscipline::write(char const*, unsigned long,
std::function<void (char const*, unsigned long)>&)
(this=0xffffa001017d9900,
str=0x409c00c3 <debug_ll::msg+35>
"ge_range_allocator::alloc_aligned(unsigned long, unsigned long,
unsigned long, bool)+550>\n", len=<optimized out>, writer=...)
at drivers/line-discipline.cc:179
#22 0x0000000040343571 in console::console_multiplexer::write_ll (
this=this@entry=0x409a97e0 <console::mux>, str=str@entry=0x409c00a0
<debug_ll::msg> "\n[backtrace]\n",
len=<optimized out>) at drivers/console-multiplexer.cc:71
#23 0x0000000040342e33 in console::write_ll (msg=msg@entry=0x409c00a0
<debug_ll::msg> "\n[backtrace]\n", len=<optimized out>) at
drivers/console.cc:63
#24 0x00000000403d9b68 in debug_ll (fmt=fmt@entry=0x406740d1 "RIP:
0x%016lx <%s>\n") at core/debug.cc:250
#25 0x000000004039e752 in dump_registers (ef=ef@entry=0xffff80000001b04
8) at arch/x64/dump.cc:20
#26 0x0000000040334a21 in mmu::vm_sigsegv (addr=<optimized out>,
ef=0xffff80000001b048) at core/mmu.cc:1314
#27 0x000000004033723a in mmu::vm_fault (addr=<optimized out>,
addr@entry=18446603337326395384, ef=ef@entry=0xffff80000001b048) at
core/mmu.cc:1337
#28 0x000000004039a9c1 in page_fault (ef=0xffff80000001b048) at
arch/x64/mmu.cc:38
#29 <signal handler called>
#30 memory::page_range_allocator::insert<true> (pr=..., this=0x409c1300
<memory::free_page_ranges>) at core/mempool.cc:578
#31
memory::page_range_allocator::<lambda(memory::page_range&)>::operator()
(header=..., __closure=<synthetic pointer>) at core/mempool.cc:751
#32
memory::page_range_allocator::for_each<memory::page_range_allocator::al
loc_aligned(size_t, size_t, size_t,
bool)::<lambda(memory::page_range&)> > (f=..., min_order=<optimized
out>,
this=0x409c1300 <memory::free_page_ranges>) at core/mempool.cc:809
#33 memory::page_range_allocator::alloc_aligned (this=this@entry=0x409c
1300 <memory::free_page_ranges>, size=size@entry=2097152,
offset=offset@entry=0, alignment=alignment@entry=2097152,
fill=fill@entry=true) at core/mempool.cc:736
#34 0x00000000403e7414 in memory::alloc_huge_page (N=N@entry=2097152)
at core/mempool.cc:1601
#35 0x000000004033c5ee in
mmu::uninitialized_anonymous_page_provider::map (this=0x40930030
<mmu::page_allocator_init>, offset=56623104, ptep=..., pte=...,
write=<optimized out>)
---Type <return> to continue, or q <return> to quit---
at core/mmu.cc:1037
#36 0x000000004033b919 in mmu::populate<(mmu::account_opt)0>::page<1>
(offset=56623104, ptep=..., this=0xffff8001032b5ba0) at core/mmu.cc:532
#37 mmu::page<mmu::populate<(mmu::account_opt)0>, 1> (offset=56623104,
ptep=..., pops=...) at core/mmu.cc:311
#38 mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::operator()
(base_virt=35187316490240, parent=..., this=<synthetic pointer>) at
core/mmu.cc:437
#39 mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::map_range<2>
(this=<synthetic pointer>, base_virt=35186519572480, ptep=...,
slop=4096, page_mapper=..., size=2097152,
vcur=<optimized out>) at core/mmu.cc:399
#40 mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::operator()
(base_virt=35186519572480, parent=..., this=<synthetic pointer>) at
core/mmu.cc:449
#41 mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::map_range<3>
(this=<synthetic pointer>, base_virt=35184372088832, ptep=...,
slop=4096, page_mapper=..., size=2097152,
vcur=<optimized out>) at core/mmu.cc:399
#42 mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::operator()
(base_virt=35184372088832, parent=..., this=<synthetic pointer>) at
core/mmu.cc:449
#43 mmu::map_range<mmu::populate<(mmu::account_opt)0> > (slop=4096,
page_mapper=..., size=<optimized out>, vstart=<optimized out>,
vma_start=<optimized out>) at core/mmu.cc:354
#44 mmu::operate_range<mmu::populate<(mmu::account_opt)0> >
(size=<optimized out>, start=<optimized out>, vma_start=<optimized
out>, mapper=...) at core/mmu.cc:806
#45 mmu::vma::operate_range<mmu::populate<(mmu::account_opt)0> >
(size=<optimized out>, addr=<optimized out>, mapper=...,
this=0xffffa00105ad2c00) at core/mmu.cc:1412
#46 mmu::populate_vma<(mmu::account_opt)0> (write=<optimized out>,
size=<optimized out>, v=<optimized out>, vma=0xffffa00105ad2c00) at
core/mmu.cc:1206
#47 mmu::vma::fault (this=0xffffa00105ad2c00, addr=<optimized out>,
ef=<optimized out>) at core/mmu.cc:1439
#48 0x00000000403373e1 in mmu::vm_fault (addr=<optimized out>,
addr@entry=35187316490240, ef=ef@entry=0xffff8001032b6068) at
core/mmu.cc:1341
#49 0x000000004039a9c1 in page_fault (ef=0xffff8001032b6068) at
arch/x64/mmu.cc:38
#50 <signal handler called>
#51 0x0000100005bc6d43 in ?? ()
#52 0x00002000494ae438 in ?? ()
#53 0x00000000061ec000 in ?? ()
#54 0x0000200040f55ab0 in ?? ()
#55 0x0000200040f55a98 in ?? ()
#56 0x0000200040f55aa0 in ?? ()
--
You received this message because you are subscribed to the Google Groups "OSv
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/osv-dev/f198f8662c3f54b7f401b2c8d35754601b92b0ac.camel%40rossfell.co.uk.