Bug 2275382
| Summary: | jlpm segfault on aarch64 | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jerry James <loganjerry> |
| Component: | nodejs20 | Assignee: | Jan Staněk <jstanek> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 42 | CC: | lbalhar, nilskemail, python-packagers-sig, sgallagh |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | nodejs20-20.19.2-1.fc43 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2025-05-19 11:16:32 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Jerry James
2024-04-17 01:37:25 UTC
If this seems to be an issue in nodejs, shouldn't this be reported for the nodejs component? I must have been tired. Yes, I meant to file it against nodejs20. Sorry about that. I just followed the exact steps you described on fresh containers on aarch64 (F40 host). On a Fedora 39 container, everything works fine. On a Fedora Rawhide (41) container, I get an error about a missing file while it's trying to build the "@parcel" NPM, but not a segmentation fault. Are you sure the problem isn't specific to your setup somehow? Well, I hit this in the first place while trying to do a scratch build of a candidate python-jupytext package. I reproduced it during a mock build on aarch64-test01.fedorainfracloud.org. Let's try again (with irrelevant output omitted): $ ssh jjames.org [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --init [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --install jupyterlab nodejs20 wget [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --shell --enable-network <mock-chroot> sh-5.2# chown mockbuild:mock /builddir /builddir/.bash_history /builddir/.rpmmacros <mock-chroot> sh-5.2# su - mockbuild [mockbuild@2054049533a14ac688327666e787c302 ~]$ cd build/SOURCES [mockbuild@256e4e362d934f31a9a0d48363063b9b ~]$ wget https://github.com/mwouts/jupytext/archive/v1.16.1/jupytext-1.16.1.tar.gz [mockbuild@256e4e362d934f31a9a0d48363063b9b ~]$ tar xzf jupytext-1.16.1.tar.gz [mockbuild@256e4e362d934f31a9a0d48363063b9b ~]$ cd jupytext-1.16.1/jupyterlab [mockbuild@256e4e362d934f31a9a0d48363063b9b jupyterlab]$ jlpm install ➤ YN0065: Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry ➤ YN0065: Run yarn config set --home enableTelemetry 0 to disable ➤ YN0000: ┌ Resolution step ➤ YN0002: │ @jupyterlab/galata@npm:5.0.8 doesn't provide react (p4cf78), requested by @jupyterlab/settingregistry ➤ YN0002: │ @jupyterlab/services@npm:7.0.8 doesn't provide react (p38eec), requested by @jupyterlab/settingregistry ➤ YN0002: │ @lerna/legacy-package-management@npm:6.6.2 doesn't provide nx (pa803c), requested by @nrwl/devkit ➤ YN0002: │ jupyterlab-jupytext@workspace:packages/jupyterlab-jupytext-extension doesn't provide react (pca723), requested by @jupyterlab/settingregistry ➤ YN0002: │ jupyterlab-rise@npm:0.41.0 doesn't provide react (p4a7ca), requested by @jupyterlab/settingregistry ➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code ➤ YN0000: └ Completed in 0s 548ms ➤ YN0000: ┌ Fetch step Segmentation fault (core dumped) So I can reproduce on the koji builders while doing a scratch build, and on the Fedora test machines in mock. Could something in the mock environment be triggering the segfault? If so, I have to figure out how to avoid that if a python-jupytext package is ever going to be possible. Oops, omit the "cd build/SOURCES" step. I did that to avoid the chown that I ultimately inserted 2 steps above, because jlpm insisted on having a writable home directory to create the .yarn directory in. I did see build failures on all non-x86_64 architectures, but on further examination, only aarch64 segfaulted. I have found fixes for the issues on most of the other architectures (except s390x, which is reporting a byte-reversed error code coming out of libzip). So this segfault occurs only on aarch64. I ran jlpm under strace to see if that gave any clues. Here is a new sequence of actions to trigger the segfault, without invoking jlpm, just node itself. $ ssh jjames.org [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --init [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --install gcc-c++ jupyterlab make nodejs-devel nodejs-npm python3-setuptools wget [jjames@aarch64-test01 ~][PROD]$ mock -r fedora-rawhide-aarch64 --shell --enable-network <mock-chroot> sh-5.2# chown mockbuild:mock /builddir /builddir/.rpmmacros <mock-chroot> sh-5.2# su - mockbuild [mockbuild@f000e4f063ab46d987c3f44d65a1ad87 ~]$ wget https://github.com/mwouts/jupytext/archive/v1.16.1/jupytext-1.16.1.tar.gz [mockbuild@f000e4f063ab46d987c3f44d65a1ad87 ~]$ tar xzf jupytext-1.16.1.tar.gz [mockbuild@f000e4f063ab46d987c3f44d65a1ad87 jupyterlab]$ node /usr/lib/python3.12/site-packages/jupyterlab/staging/yarn.js install ➤ YN0065: Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry ➤ YN0065: Run yarn config set --home enableTelemetry 0 to disable ➤ YN0000: ┌ Resolution step ➤ YN0002: │ @jupyterlab/galata@npm:5.0.8 doesn't provide react (p4cf78), requested by @jupyterlab/settingregistry ➤ YN0002: │ @jupyterlab/services@npm:7.0.8 doesn't provide react (p38eec), requested by @jupyterlab/settingregistry ➤ YN0002: │ @lerna/legacy-package-management@npm:6.6.2 doesn't provide nx (pa803c), requested by @nrwl/devkit ➤ YN0002: │ jupyterlab-jupytext@workspace:packages/jupyterlab-jupytext-extension doesn't provide react (pca723), requested by @jupyterlab/settingregistry ➤ YN0002: │ jupyterlab-rise@npm:0.41.0 doesn't provide react (p4a7ca), requested by @jupyterlab/settingregistry ➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code ➤ YN0000: └ Completed in 0s 582ms ➤ YN0000: ┌ Fetch step Segmentation fault (core dumped) According to strace, the cause is a null pointer dereference: --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} --- I discovered quite by accident that setting LC_ALL=C.UTF-8 makes the segfault go away. The crash has something to do with operating in an ASCII environment, it seems. Jerry, can you check if you have the `nodejs-full-i18n` package on your system? If not, does adding it make the problem go away? I had that package installed on my aarch64 situation, which might have masked the crash. It looks like this MIGHT be another instance of https://github.com/nodejs/node/issues/51752 This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component. Oops, sorry, I overlooked comment 8 somehow. Yes, installing nodejs-full-i18n prevents the crash! Thank you! This does indeed look like another instance of that nodejs issue. This bug appears to have been reported against 'rawhide' during the Fedora Linux 42 development cycle. Changing version to 42. FEDORA-2025-70d216243f (nodejs20-20.19.2-1.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-70d216243f FEDORA-2025-70d216243f (nodejs20-20.19.2-1.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report. |