-
Notifications
You must be signed in to change notification settings - Fork 968
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Payment test failure on FreeBSD only (Version: 11.3) #2224
Comments
First day of hunting ruled out a surprising number of possible sources of variation!
Only thing we did discover was a hunch @jonjove had: the failing asserts are all Still a mystery though! |
Mystery solved: there was a bug in the C++ ABI runtime library that FreeBSD uses (the pathscale libcxxrt, rather than libc++abi on macos or most linux libc++ deployments). The library provides a handful of low-level services including exception handling routines, and it was mis-counting the number of uncaught exceptions in some cases: https://github.com/pathscale/libcxxrt/issues/45 This in turn causes the Catch section-retrying machinery to fail because it asks about the number of uncaught exceptions. The exact set of circumstances in Catch code that can cause this isn't entirely clear to me -- I tried reading Catch's retry logic but got pretty lost -- but the symptom is "skipping or re-running sections unexpectedly". There are a few reproductions in the catch tracker, as well as a note in the known issues section: catchorg/Catch2#1028 With this knowledge in hand, I rebuilt an LLVM toolchain for linux atop libc++ and libcxxrt before its bugfix, and was able to reproduce the failure in stellar-core on linux. The only suggested fix from Catch is to upgrade the libcxxrt in question. This is not especially easy to do on FreeBSD in-place without recompiling the libc++ as well; the few attempts I've made failed. Given that FreeBSD 12.1 will be out in November, they've not yet branched for that release, and the fix to libcxxrt in question has been merged in FreeBSD SVN, I think we can just close this with a "known issue" warning to anyone testing on FreeBSD until then. This bug isn't a logic problem in stellar-core. |
Strange bug found today when testing #2204 on FreeBSD: the
payment
transaction test fails with a slight numerical discrepancy in 7 cases. Does not fail on any other platform!Example failure:
The text was updated successfully, but these errors were encountered: