-
Notifications
You must be signed in to change notification settings - Fork 808
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
SIGABRT thrown by libuv during initial block download ("Abort Trap 6") #867
Comments
Several segmentation faults have been fixed upstream for leveldown and are pending to be updated into bdb as well, see bcoin-org/bdb#8. It's possible there is another similar issue? |
There is also this potentially relevant line https://github.com/bcoin-org/bdb/blob/a42ea1238b8e500d8a9e18c6f36806a17c23bf61/deps/leveldb/port-libuv/port_uv.cc#L27 as it includes |
Working on a branch to update LevelDB to v1.22 from v1.20 bcoin-org/bdb#10 that could be useful here. |
bdb#10 performed better than previous trials, but sadly, this morning, it succumbed to the fatal signal. Made it to block
|
Well, I removed port-libuv from that branch, so it's not related. Also port-libuv was Windows specific, and now LevelDB v1.22 supports that, so it was not necessary. |
Also, considering the backtrace is landing in node, it could be useful to compile nodejs with debug symbols.
Note: Compilation make take awhile with the v8 dependency (~50min). And then run the debugger build:
|
Also for background, I've tried compiling with clang and have not been able to reproduce. Here were my steps with clang and lldb:
Usually my steps are as follows for gcc and gdb:
|
Update: I've compiled nodejs from source (same version, 10.15.3) in |
What's the latest status of this issue? |
Unfortunately this is hard to test, since the conditions that cause the error are unknown and it often takes days of IBD to encounter, meanwhile consuming a lot of resources on my (only) machine. I'll look back into this in a few days, maybe get a different computer to test with. Meanwhile I have synced bcoin to the tip on AWS and Google Cloud without issue, and my personal full node runs fine on this laptop even if it needs to catch up a few days of blocks. |
Update: I succeeded in syncing with a fresh install without any segfault issues and only one interruption (#933)! On the same hardware listed above, I synced from genesis to height The only differences between this week's run and the previous tests that threw segfault errors was that now I am running nodejs |
So you were running the upgraded LevelDB in addition to the segfault fixes in bcoin-org/bdb#8 and bcoin-org/bdb#7. |
@braydonf yes, or in other words bcoin-org/bdb#10 which I think includes all that. But I was in the failed test runs back in October as well: #867 (comment) |
Okay, I'm going to close this then. |
MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)
OSX version 10.14.6 (18G95)
nodejs version 10.15.3
bcoin version: master at 99638ac, other branches as well
data directory (
--prefix
) writing to external SSD: https://www.amazon.com/Samsung-T5-Portable-SSD-MU-PA1T0B/dp/B073H552FJbcoin crashes consistently with
Abort Trap 6
during initial block download, in the height range280000
to340000
. This crash happens regularly and predictably, with various configurations including--no-wallet
and even bypassing blockstore (forcing levelDB instead, using this patch).Stack traces using
lldb
andllnode
are not entirely helpful:The process seems to be aborted by a bad mutex: https://github.com/libuv/libuv/blob/bee1bf5dd7de8da316821c32411425f7cf7ab49c/src/unix/thread.c#L780-L783
A bit more explanation here: https://linux.die.net/man/3/pthread_cond_wait
The text was updated successfully, but these errors were encountered: