Hang in futex wait with a Node.js binary in Linuxulator

From: Alex Arslan <ararslan_at_comcast.net>
Date: Tue, 16 Aug 2022 04:43:29 UTC
Hi folks,

I'm trying to run the Linux binary for Codecov's official coverage uploader (https://docs.codecov.com/docs/codecov-uploader <ihttps://docs.codecov.com/docs/codecov-uploader>) on FreeBSD via Linuxulator. It's a statically compiled Node.js application built with the Node.js package called pkg. The application's own verbose logging shows that it completes, but the process just hangs indefinitely, using 0 CPU and not letting go of its memory. With devel/linux-c7-strace, it appears it's getting stuck on:

futex(0x8427f1b70, FUTEX_WAIT_PRIVATE, 2, NULL

Too stuck to even finish printing the argument list or closing parenthesis, apparently! A Cirrus CI build log where I set the process to terminate via timeout is available at https://cirrus-ci.com/task/6610515924353024 <https://cirrus-ci.com/task/6610515924353024> but it's actually reproducible for me locally with just

curl -O https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov -h

Does anyone have any advice for how to debug this further?

Thanks,
Alex