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 osv-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/f198f8662c3f54b7f401b2c8d35754601b92b0ac.camel%40rossfell.co.uk.

Reply via email to