This looks related: 
https://lists.debian.org/debian-glibc/2014/01/msg00023.html

I rebuilt everything in the same way on an ubuntu 16.04 VM, and I don't get 
the segfault. I don't need to use fibers, so I'm okay to just avoid them.

On Friday, November 6, 2020 at 1:20:53 PM UTC-5 [email protected] wrote:

> Hi Zachary,
>
> It looks like the segfault is happening in glibc's backtrace() function 
> while gathering the stack trace for an exception. An exception is actually 
> expected here (the test case tests throwing an exception). Since it 
> happened specifically in fiber-related tests, my guess is that glibc's 
> backtrace has a bug in which it is confused by the stack manipulation done 
> by fibers.
>
> 14.04 is quite old, so I imagine you're using a pretty old glibc here? 
> Maybe this is a glibc bug that was fixed in newer versions?
>
> Note that fibers are new and completely optional feature of KJ. If you 
> don't use them then you can probably ignore the test failure.
>
> -Kenton
>
> On Wed, Nov 4, 2020 at 4:27 PM Zachary Dremann <[email protected]> wrote:
>
>> I'm running on Ubuntu 14.04, 32 bit.
>>
>> I have a custom g++ 10.1.0 as g++-10 installed in /usr/local, built from 
>> source with no modifications or customizations
>>
>> I cloned from master (commit 96936a7446164424d8f3f50430d83ee21f63f6a2), 
>> and ran `autoreconf -fi`, then `./configure --without-openssl --with-pic 
>> LDFLAGS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib' 
>> CXX=/usr/local/bin/g++-10`, followed by `make`, and `make check`.
>>
>> `VERBOSE=1 make check` fails with (truncated to show interesting stuff):
>>
>> [ TEST ] kj/async-test.c++:860: start a fiber
>> [ PASS ] kj/async-test.c++:860: start a fiber (112 μs)
>> [ TEST ] kj/async-test.c++:881: fiber promise chaining
>> [ PASS ] kj/async-test.c++:881: fiber promise chaining (9 μs)
>> [ TEST ] kj/async-test.c++:904: throw from a fiber
>> /bin/bash: line 5: 22656 Segmentation fault      (core dumped) ${dir}$tst
>> FAIL: capnp-test
>> Randomly testing backwards-compatibility scenarios with seed: 1604520183
>> PASS: capnp-evolution-test
>> PASS: src/capnp/compiler/capnp-test.sh
>> ===========================================
>> 1 of 3 tests failed
>> Please report to [email protected]
>> ===========================================
>>
>> Running `libtool --mode=execute gdb ./capnp-test`, and getting a 
>> backtrace at the time of the segfault gives the following:
>>
>> #0  0xb793d71e in x86_fallback_frame_state (context=<optimized out>, 
>> context=<optimized out>, fs=0xb57565b0)
>>     at ./md-unwind-support.h:132
>> #1  uw_frame_state_for () at ../../../gcc-10.1.0/libgcc/unwind-dw2.c:1271
>> #2  0xb793ecb1 in _Unwind_Backtrace () at 
>> ../../../gcc-10.1.0/libgcc/unwind.inc:302
>> #3  0xb7876d75 in __GI___backtrace (array=0xb5756720, size=34) at 
>> ../sysdeps/i386/backtrace.c:126
>> #4  0xb7bb098a in kj::getStackTrace(kj::ArrayPtr<void*>, unsigned int) ()
>>    from /home/build/capnproto/c++/.libs/libkj-0.9-dev.so
>> #5  0xb7bb0b39 in kj::Exception::extendTrace(unsigned int) () from 
>> /home/build/capnproto/c++/.libs/libkj-0.9-dev.so
>> #6  0xb7bb0c62 in kj::throwRecoverableException(kj::Exception&&, unsigned 
>> int) ()
>>    from /home/build/capnproto/c++/.libs/libkj-0.9-dev.so
>> #7  0x0820011c in kj::Promise<void>::wait(kj::WaitScope&) ()
>> #8  0x081e1620 in kj::_::Fiber<kj::(anonymous 
>> namespace)::TestCase904::run()::{lambda(kj::WaitScope&)#1}>::runImpl(kj::WaitScope&)
>>  
>> ()
>> #9  0xb7c36203 in 
>> kj::_::RunnableImpl<kj::_::FiberBase::run()::{lambda()#2}>::run() ()
>>    from /home/build/capnproto/c++/.libs/libkj-async-0.9-dev.so
>> #10 0xb7bb0ed2 in kj::_::runCatchingExceptions(kj::_::Runnable&) ()
>>    from /home/build/capnproto/c++/.libs/libkj-0.9-dev.so
>> #11 0xb7c3b9de in kj::_::FiberBase::run() () from 
>> /home/build/capnproto/c++/.libs/libkj-async-0.9-dev.so
>> #12 0xb7c3bdf7 in kj::_::FiberStack::run() () from 
>> /home/build/capnproto/c++/.libs/libkj-async-0.9-dev.so
>> #13 0xb7c42c09 in kj::_::FiberStack::StartRoutine::run(int, int) ()
>>    from /home/build/capnproto/c++/.libs/libkj-async-0.9-dev.so
>> #14 0xb77bbdeb in makecontext () at 
>> ../sysdeps/unix/sysv/linux/i386/makecontext.S:87
>> #15 0x00008c48 in ?? ()
>> #16 0x00000862 in ?? ()
>> #17 0x00000000 in ?? ()
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Cap'n Proto" 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/capnproto/71489f35-286d-4967-aecd-636276f3dfb4n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/capnproto/71489f35-286d-4967-aecd-636276f3dfb4n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" 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/capnproto/887efc76-33d9-4fb2-8e8e-335bf9adee5dn%40googlegroups.com.

Reply via email to