Package: nodejs
Version: 18.12.1+dfsg-2+0.riscv64.1
Severity: grave
Justification: renders package unusable
X-Debbugs-Cc: [email protected]
Dear Maintainer,
* What led up to the situation?
Trying to execute nodejs in any condition under riscv64.
* What exactly did you do (or not do) that was effective (or
ineffective)?
I ran `nodejs --help`, but the problem is not limited to the `--help` flag.
* What was the outcome of this action?
A segmentation fault:
```
root@debian:~/checkout# node --help
[159/1912]
Segmentation fault (core dumped)
```
* What outcome did you expect instead?
Nodejs would execute.
* Extra notes:
I am testing riscv64 inside qemu:
```
qemu-system-riscv64 -machine virt -cpu sifive-u54 -smp 4 -m 2G -device
virtio-blk-device,drive=hd -drive file=overlay.qcow2,if=none,id=hd -bios
/usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf -kernel
/usr/lib/u-boot/qemu-riscv64_smode/uboot.elf -object
rng-random,filename=/dev/urandom,id=rng -device virtio-rng-device,rng=rng
-append root=LABEL=rootfs console=ttyS0,115200 -netdev
type=tap,id=net,ifname=tap0,vhost=on -device virtio-net-pci,netdev=net
-nographic
```
Nodejs version (from unreleased/main)
```
root@debian:~/checkout# apt-cache policy nodejs
nodejs:
Installed: 18.12.1+dfsg-2+0.riscv64.1
Candidate: 18.12.1+dfsg-2+0.riscv64.1
Version table:
*** 18.12.1+dfsg-2+0.riscv64.1 500
500 http://deb.debian.org/debian-ports unreleased/main riscv64 Packages
100 /var/lib/dpkg/status
```
Configured cpuinfo:
```
root@debian:~/checkout# cat /proc/cpuinfo
processor : 0
hart : 0
isa : rv64imafdc
mmu : sv57
processor : 1
hart : 1
isa : rv64imafdc
mmu : sv57
processor : 2
hart : 2
isa : rv64imafdc
mmu : sv57
processor : 3
hart : 3
isa : rv64imafdc
mmu : sv57
```
Captured backtrace with gdb:
```
root@debian:~/checkout# gdb node -c /tmp/core-node.17623.debian.1670493754
GNU gdb (Debian 12.1-4) 12.1
Reading symbols from node...
(No debugging symbols found in node)
[New LWP 17623]
[New LWP 17624]
[New LWP 17625]
[New LWP 17627]
[New LWP 17626]
[New LWP 17628]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/riscv64-linux-gnu/libthread_db.so.1".
Core was generated by `node --help'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00ffffff99fcdab2 in
v8::internal::Code::RelocateFromDesc(v8::internal::ByteArray,
v8::internal::Heap*, v8::internal::CodeDesc const&) () from
/lib/riscv64-linux-gnu/libnode.so.108
[Current thread is 1 (Thread 0xffffff98acaec0 (LWP 17623))]
(gdb) bt
#0 0x00ffffff99fcdab2 in
v8::internal::Code::RelocateFromDesc(v8::internal::ByteArray,
v8::internal::Heap*, v8::internal::CodeDesc const&) () from
/lib/riscv64-linux-gnu/libnode.so.108
#1 0x00ffffff99e9d980 in
v8::internal::Factory::CodeBuilder::BuildInternal(bool) () from
/lib/riscv64-linux-gnu/libnode.so.108
#2 0x00ffffff99d6538e in
v8::internal::baseline::BaselineCompiler::Build(v8::internal::LocalIsolate*) ()
from /lib/riscv64-linux-gnu/libnode.so.108
#3 0x00ffffff99d74296 in
v8::internal::GenerateBaselineCode(v8::internal::Isolate*,
v8::internal::Handle<v8::internal::SharedFunctionInfo>) () from
/lib/riscv64-linux-gnu/libnode.so.108
#4 0x00ffffff99db66f6 in
v8::internal::Compiler::CompileSharedWithBaseline(v8::internal::Isolate*,
v8::internal::Handle<v8::internal::SharedFunctionInfo>,
v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*) ()
from /lib/riscv64-linux-gnu/libnode.so.108
#5 0x00ffffff99db6b7a in
v8::internal::Compiler::CompileBaseline(v8::internal::Isolate*,
v8::internal::Handle<v8::internal::JSFunction>,
v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*) ()
from /lib/riscv64-linux-gnu/libnode.so.108
#6 0x00ffffff99d63a5a in
v8::internal::baseline::BaselineBatchCompiler::CompileBatch(v8::internal::Handle<v8::internal::JSFunction>)
() from /lib/riscv64-linux-gnu/libnode.so.108
#7 0x00ffffff99e5b1b2 in
v8::internal::TieringManager::OnInterruptTick(v8::internal::Handle<v8::internal::JSFunction>)
() from /lib/riscv64-linux-gnu/libnode.so.108
#8 0x00ffffff9a1b7a70 in
v8::internal::Runtime_BytecodeBudgetInterruptWithStackCheck(int, unsigned
long*, v8::internal::Isolate*) () from /lib/riscv64-linux-gnu/libnode.so.108
#9 0x00ffffff99bf68dc in ?? () from /lib/riscv64-linux-gnu/libnode.so.108
(gdb)
```
This is _likely_ unrelated, but I faced a "similar" (stack-related issues) bug
with golang, patch:
https://go-review.googlesource.com/c/go/+/409055/6/src/runtime/lfstack_64bit.go#40
bug report:
https://github.com/golang/go/issues/54104
Thanks,
David
-- System Information:
Debian Release: bookworm/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: riscv64
Kernel: Linux 6.0.0-5-riscv64 (SMP w/4 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=C.UTF-8 (charmap=locale: Cannot set
LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages nodejs depends on:
ii libc6 2.36-6
ii libnode108 18.12.1+dfsg-2+0.riscv64.1
Versions of packages nodejs recommends:
ii ca-certificates 20211016
ii nodejs-doc 18.12.1+dfsg-2+0.riscv64.1
Versions of packages nodejs suggests:
pn npm <none>
-- debconf information excluded
--
Pkg-javascript-devel mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel