Thanks; I'll dig into this once #8754 is in, and grab that if needed to get this unblocked
Can this be somehow incorporated in the ongoing dependency update? The change to Thrift itself is pretty small and safe.
yep - that's been retargeted to this weeks' tag, which does include it.
Right now it builds, but Jan reported it always crashes. I'm unable to reproduce on MacOS, wokring on confirming on a clean linux build
Ok, can repro on ubuntu 20.04 - for a trivial test (regenerating the autoload map for hhast), it executes the hack code, but aborts on exit:
terminate called after throwing an instance of 'HPHP::ExitException'
what():
Will take a look at the core with gdb and figure out what's going on.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff5bce859 in __GI_abort () at abort.c:79
#2 0x00007ffff5fa3951 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff5faf47c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff5faf4e7 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff5faf799 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00005555567ab00f in HPHP::iopExit () at ./hphp/runtime/base/countable.h:38
#7 HPHP::(anonymous namespace)::iopWrapReturn<> (fn=<optimized out>)
at ./hphp/runtime/vm/bytecode.cpp:5434
#8 HPHP::(anonymous namespace)::iopWrapExit (pc=<synthetic pointer>: <optimized out>)
at ./hphp/runtime/vm/bytecode.cpp:5529
#9 HPHP::interpOneExit (fp=<optimized out>, sp=<optimized out>, pcOff=<optimized out>)
at ./hphp/runtime/vm/bytecode.cpp:5619
#10 0x000055556300064b in ?? ()
#11 0x000055555b400058 in ?? ()
#12 0x00007fffffffd560 in ?? ()
#13 0x0000000000000000 in ?? ()
Well, that's not useful. Probably time for a bisect :(
Is there a chance 10/26 dependencies have this fixed?
I've been out sick so not started a bisect yet; I'll give updating instead a try first.
Was out sick again; @jjergus is looking at a new version of the import
I updated everything to this week's release (v2020.11.02.00) but the crash is still there :( I'm looking into it now.
I found out what the problem was. It crashes if we link with libunwind (-lunwind). Without libunwind, we get missing symbols (libunwind is used from folly/experimental/symbolizer, which is included a few times from various HHVM files), but the missing symbols are all behind #if FOLLY_HAVE_LIBUNWIND so I think everything should be fine if we force FOLLY_HAVE_LIBUNWIND=0 (previously we were forcing it to 1, but not actually linking with libunwind, I think we just got lucky that we didn't get any missing symbols until recently). I'm running a test build on all supported platforms now.