Segfault with subleveldown
See original GitHub issueDisclaimer: this is almost definitely my fault. I’m completely unfamiliar with leveldown and I’m probably doing everything wrong.
With that out of the way, I have a reproducible segfault while using subleveldown that’s highly correlated with open/close events.
git clone https://github.com/flumedb/flumeview-level
cd flumeview-level
git checkout -b sub
git pull origin sub
npm ci
node test/read.js
Here’s the output:
$ node test/read.js
flumeview-level re-init +0ms
flumeview-level re-start +2ms
flumeview-level opened +9ms
flumeview-level create() +0ms
FATAL ERROR: v8::Object::Cast Could not convert to object
1: 0x55a75a67d6d1 node::Abort() [node]
2: 0x55a75a67d71f [node]
3: 0x55a75a82fe9b v8::Utils::ReportApiFailure(char const*, char const*) [node]
4: 0x7f52204e2b1c v8::Object::Cast(v8::Value*) [/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node]
5: 0x7f52204e490c v8::Local<v8::Object> v8::Local<v8::Object>::Cast<v8::Value>(v8::Local<v8::Value>) [/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node]
6: 0x7f52204e4036 v8::Local<v8::Object> v8::Local<v8::Value>::As<v8::Object>() const [/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node]
7: 0x7f52204e92d2 leveldown::Database::Get(Nan::FunctionCallbackInfo<v8::Value> const&) [/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node]
8: 0x7f52204e0ee6 [/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node]
9: 0x55a75a8b2ab0 [node]
10: 0x55a75a8b40d7 [node]
11: 0x2eccedadbe1d
[1] 21605 abort (core dumped) node test/read.js
And of course:
$ coredumpctl info 21605
PID: 21605 (node)
UID: 1000 (christianbundy)
GID: 1000 (christianbundy)
Signal: 6 (ABRT)
Timestamp: Fri 2019-02-01 14:36:20 PST (55s ago)
Command Line: node test/read.js
Executable: /usr/bin/node
Control Group: /user.slice/user-1000.slice/user@1000.service/gnome-terminal-server.service
Unit: user@1000.service
User Unit: gnome-terminal-server.service
Slice: user-1000.slice
Owner UID: 1000 (christianbundy)
Boot ID: a26e2f3a62384290a1884245840c594f
Machine ID: 4e83385b599d4d2ea6f5173888d92afc
Hostname: samus
Storage: /var/lib/systemd/coredump/core.node.1000.a26e2f3a62384290a1884245840c594f.21605.1549060580000000.lz4
Message: Process 21605 (node) of user 1000 dumped core.
Stack trace of thread 21605:
#0 0x00007f5225387d7f raise (libc.so.6)
#1 0x00007f5225372672 abort (libc.so.6)
#2 0x000055a75a67d6e4 _ZN4node5AbortEv (node)
#3 0x000055a75a67d71f n/a (node)
#4 0x000055a75a82fe9b _ZN2v85Utils16ReportApiFailureEPKcS2_ (node)
#5 0x00007f52204e2b1c n/a (/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node)
#6 0x00007f52204e490c n/a (/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node)
#7 0x00007f52204e4036 n/a (/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node)
#8 0x00007f52204e92d2 n/a (/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node)
#9 0x00007f52204e0ee6 n/a (/home/christianbundy/src/flumeview-level/node_modules/leveldown/build/Debug/leveldown.node)
#10 0x000055a75a8b2ab0 n/a (node)
#11 0x000055a75a8b40d7 n/a (node)
#12 0x00002eccedadbe1d n/a (n/a)
#13 0x00002ecceda918d5 n/a (n/a)
#14 0x00002ecceda918d5 n/a (n/a)
#15 0x00002ecceda918d5 n/a (n/a)
#16 0x00002ecceda918d5 n/a (n/a)
#17 0x00002ecceda918d5 n/a (n/a)
#18 0x00002ecceda918d5 n/a (n/a)
#19 0x00002ecceda918d5 n/a (n/a)
#20 0x00002ecceda918d5 n/a (n/a)
#21 0x00002ecceda918d5 n/a (n/a)
#22 0x00002ecceda918d5 n/a (n/a)
#23 0x00002ecceda918d5 n/a (n/a)
#24 0x00002ecceda8ee75 n/a (n/a)
#25 0x00002ecceda892c1 n/a (n/a)
#26 0x000055a75ab7eb06 n/a (node)
#27 0x000055a75ab7f03d n/a (node)
#28 0x000055a75ab7f0f2 _ZN2v88internal9Execution4CallEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_iPS6_ (node)
#29 0x000055a75a844785 _ZN2v88Function4CallENS_5LocalINS_7ContextEEENS1_INS_5ValueEEEiPS5_ (node)
#30 0x000055a75a67e92c _ZN4node20InternalMakeCallbackEPNS_11EnvironmentEN2v85LocalINS2_6ObjectEEENS3_INS2_8FunctionEEEiPNS3_INS2_5ValueEEENS_13async_contextE (node)
#31 0x000055a75a67ea2d _ZN4node12MakeCallbackEPN2v87IsolateENS0_5LocalINS0_6ObjectEEENS3_INS0_8FunctionEEEiPNS3_INS0_5ValueEEENS_13async_contextE (node)
#32 0x000055a75a6639e9 _ZN4node11Environment14CheckImmediateEP10uv_check_s (node)
#33 0x00007f52260d7241 uv__run_check (libuv.so.1)
#34 0x00007f52260d1ab9 uv_run (libuv.so.1)
#35 0x000055a75a688986 _ZN4node5StartEPN2v87IsolateEPNS_11IsolateDataERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EESF_ (node)
#36 0x000055a75a686c50 _ZN4node5StartEiPPc (node)
#37 0x00007f5225374223 __libc_start_main (libc.so.6)
#38 0x000055a75a63f7fe _start (node)
Stack trace of thread 21606:
#0 0x00007f522544bc7e epoll_pwait (libc.so.6)
#1 0x00007f52260e02aa uv__io_poll (libuv.so.1)
#2 0x00007f52260d1ab0 uv_run (libuv.so.1)
#3 0x000055a75a7091b4 _ZZN4node20BackgroundTaskRunner20DelayedTaskScheduler5StartEvENUlPvE_4_FUNES2_ (node)
#4 0x00007f522551ba9d start_thread (libpthread.so.0)
#5 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21612:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x00007f52260ccac3 n/a (libuv.so.1)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21615:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x00007f52260ccac3 n/a (libuv.so.1)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21610:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x000055a75a706e1c n/a (node)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21607:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x000055a75a706e1c n/a (node)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21608:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x000055a75a706e1c n/a (node)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21609:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x000055a75a706e1c n/a (node)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21611:
#0 0x00007f5225524436 do_futex_wait.constprop.1 (libpthread.so.0)
#1 0x00007f5225524538 __new_sem_wait_slow.constprop.0 (libpthread.so.0)
#2 0x00007f52260dd894 uv_sem_wait (libuv.so.1)
#3 0x000055a75a766e61 n/a (node)
#4 0x00007f522551ba9d start_thread (libpthread.so.0)
#5 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21613:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x00007f52260ccac3 n/a (libuv.so.1)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Stack trace of thread 21614:
#0 0x00007f5225521afc pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f52260dd80a uv_cond_wait (libuv.so.1)
#2 0x00007f52260ccac3 n/a (libuv.so.1)
#3 0x00007f522551ba9d start_thread (libpthread.so.0)
#4 0x00007f522544bb23 __clone (libc.so.6)
Please let me know if there’s anything else I can do to help debug this. Thanks a lot! I’ve been really enjoying my experience with leveldown so far.
Issue Analytics
- State:
- Created 5 years ago
- Comments:27 (22 by maintainers)
Top Results From Across the Web
Developers - Segfault with subleveldown - - Bountysource
With that out of the way, I have a reproducible segfault while using subleveldown that's highly correlated with open/close events. git clone https://github.com/ ......
Read more >Segmentation fault · Issue #728 · Level/leveldown - GitHub
I'm having trouble reproducing the segfault with a minimal test-case but I can verify that removing the .bind() fixes it. 🤔.
Read more >levelup | Yarn - Package Manager
Fast and simple storage. A Node.js wrapper for abstract-leveldown compliant stores, which follow the characteristics of LevelDB. LevelDB is a simple key-value ...
Read more >ddrive-daemon - npm Package Health Analysis - Snyk
Temporary Note: We're working out a segfault issue that's causing the daemon to fail with Node 14. If you're on 14, check that...
Read more >https://raw.githubusercontent.com/rvagg/node-level...
At the time of writing, all but `subleveldown` have been released. ... ignored rather than segfault ([**@kesla**](https://github.com/kesla)) - 'encoding' ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

OK. FYI, it might take some time for us to find a proper fix for the subleveldown bug. Also, don’t use that
#open-close-hackbranch for anything other than tests 😉Sorry, I mean that I’ve also been unable to write a minimal test case. You can still use these instructions but I haven’t had the time to whittle it down any further.