Open
Description
Wrapping sqlite3 calls using node's builtin promisify results in a segfault on node 17.6.0:
const sqlite = require('sqlite3');
const util = require('util');
const db = new sqlite.Database(':memory:');
const db_get = util.promisify(db.get);
const db_run = util.promisify(db.run);
(async () => {
await db_run('CREATE TABLE IF NOT EXISTS people (id TEXT PRIMARY KEY, name TEXT, age INTEGER');
await db_get('SELECT COUNT(*) FROM people WHERE id = ?', [1]); // <--- segfault happens here!
})();
Segfault core dump
Mar 06 00:19:07 titania systemd-coredump[26042]: [🡕] Process 26029 (node) of user 1000 dumped core.
Module /home/silur/.nvm/versions/node/v17.6.0/bin/node with build-id 42d5f221f3acf2c76c7ba36f70817a0a5fd55261
Module /tmp/mmbot/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node with build-id 7055b5a91a71d5b1aafb465c70bf254fdd9485fb
Module linux-vdso.so.1 with build-id 351b3072a0555d16594b35d390715fc2f77d54e3
Module ld-linux-x86-64.so.2 with build-id c09c6f50f6bcec73c64a0b4be77eadb8f7202410
Module libc.so.6 with build-id 85766e9d8458b16e9c7ce6e07c712c02b8471dbc
Module libpthread.so.0 with build-id 7fa8b52fae071a370ba4ca32bf9490a30aff31c4
Module libgcc_s.so.1 with build-id 5d817452a709ca3a213341555ddcf446ecee37fa
Module libm.so.6 with build-id 596b63a006a4386dcab30912d2b54a7a61827b07
Module libstdc++.so.6 with build-id 88ad4eff81a00c684abfe0f863e87434123d8943
Module libdl.so.2 with build-id bb9bd2657bfba9f60bd34d2050cc63a7eb024bc4
Stack trace of thread 26029:
#0 0x0000000000ae003a n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6e003a)
#1 0x00007f4453440228 n/a (/tmp/mmbot/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node + 0x40228)
#2 0x00007f445344036e n/a (/tmp/mmbot/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node + 0x4036e)
#3 0x00007f4453443f8f n/a (/tmp/mmbot/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node + 0x43f8f)
#4 0x00007f4453443236 n/a (/tmp/mmbot/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node + 0x43236)
#5 0x0000000000ad7cfd n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6d7cfd)
#6 0x0000000000d7cf2e n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x97cf2e)
#7 0x0000000000d7d4f7 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x97d4f7)
#8 0x0000000001632979 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x1232979)
#9 0x00000000015beff8 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11beff8)
#10 0x00000000016c7e08 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x12c7e08)
#11 0x00000000015c1a0e n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11c1a0e)
#12 0x00000000015c1a0e n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11c1a0e)
#13 0x000000000167bbd7 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x127bbd7)
#14 0x00000000015beff8 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11beff8)
#15 0x00000000016c7e08 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x12c7e08)
#16 0x00000000015c1a0e n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11c1a0e)
#17 0x00000000015c1a0e n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11c1a0e)
#18 0x00000000015f19bf n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11f19bf)
#19 0x000000000167d578 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x127d578)
#20 0x00000000015e32f2 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11e32f2)
#21 0x00000000015bfa03 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x11bfa03)
#22 0x0000000000e4b7fe n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0xa4b7fe)
#23 0x0000000000e4c090 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0xa4c090)
#24 0x0000000000e4c5aa n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0xa4c5aa)
#25 0x0000000000e7564a n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0xa7564a)
#26 0x0000000000e75a12 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0xa75a12)
#27 0x0000000000a649f1 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6649f1)
#28 0x0000000000a64f71 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x664f71)
#29 0x0000000000aef402 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6ef402)
#30 0x0000000000a692d7 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6692d7)
#31 0x0000000000b70e45 n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x770e45)
#32 0x0000000000af1cda n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6f1cda)
#33 0x00007f44623ab310 __libc_start_call_main (libc.so.6 + 0x2d310)
#34 0x00007f44623ab3c1 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2d3c1)
#35 0x0000000000a634cc n/a (/home/silur/.nvm/versions/node/v17.6.0/bin/node + 0x6634cc)
ELF object binary architecture: AMD x86-64