Bug 38499

Summary: Ошибка сегментирования
Product: Branch p9 Reporter: Antonov Alexander <aas>
Component: yarnAssignee: Vitaly Lipatov <lav>
Status: ASSIGNED --- QA Contact: qa-p9 <qa-p9>
Severity: normal    
Priority: P5 CC: lav
Version: не указана   
Hardware: x86   
OS: Linux   

Description Antonov Alexander 2020-05-19 09:49:42 MSK
Ошибка сегментирования при добавлении зависимости, воспроизводится только на i586:
test@workstation-9-i586 yarntest $ yarn init my_yarn_project
yarn init v1.17.3
question name (yarntest): 
question version (1.0.0): 
question description: 
question entry point (index.js): 
question repository url: 
question author: 
question license (MIT): 
question private: 
success Saved package.json
Done in 5.22s.

test@workstation-9-i586 yarntest $ yarn add test
yarn add v1.17.3
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[--] 0/2Ошибка сегментирования
Если указать другое имя зависимости то ошибка не воспроизводится.
Comment 1 Vitaly Lipatov 2020-10-12 09:13:22 MSK
> $ yarn add test
> ...
> [--] 0/2Ошибка сегментирования
Воспроизводится:
[lav@builder32 yarntest]$ yarn add test
yarn add v1.22.4
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[--] 0/2Ошибка сегментирования

Проверено на
node-13.10.1-alt1.i586
libuv-1.40.0-alt1

node-14.13.1-alt1.i586
libuv-1.34.2-alt1

$ gdb -f --args node /usr/bin/yarn add test
Thread 1 "node" received signal SIGSEGV, Segmentation fault.
0x0850a1ea in node::fs::FSReqCallback::~FSReqCallback() ()
(gdb) bt
#0  0x0850a1ea in node::fs::FSReqCallback::~FSReqCallback() ()
#1  0x084fa0c2 in node::fs::FSReqAfterScope::~FSReqAfterScope() ()
#2  0x084fe5a3 in node::fs::AfterInteger(uv_fs_s*) ()
#3  0xb7f98b0e in uv__work_done (handle=0xb7fc3820 <default_loop_struct+96>) at src/threadpool.c:313
#4  0xb7f9c1db in uv__async_io (loop=0xb7fc37c0 <default_loop_struct>, w=<optimized out>, events=<optimized out>) at src/unix/async.c:163
#5  0xb7fae80e in uv__io_poll (loop=<optimized out>, timeout=0) at src/unix/linux-core.c:462
#6  0xb7f9c9ce in uv_run (loop=0xb7fc37c0 <default_loop_struct>, mode=UV_RUN_DEFAULT) at src/unix/core.c:385
#7  0x0853d256 in node::NodeMainInstance::Run() ()
#8  0x084bc3da in node::Start(int, char**) ()
#9  0x0844847b in main ()
(gdb)
Comment 2 Vitaly Lipatov 2020-10-12 10:59:53 MSK
Про эту багу писали:
https://bugs.archlinux32.org/index.php?do=details&task_id=63
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922075
https://npm.community/t/npm-install-causing-segfault/6070/2


$ valgrind /usr/bin/node yarn add test
== Invalid read of size 4
...
==32004==  Address 0x1085 is not stack'd, malloc'd or (recently) free'd


eax            0x1085              4229

   0x0850a1dd <+77>:	mov    0x158(%ebx),%eax
   0x0850a1e3 <+83>:	test   %eax,%eax
   0x0850a1e5 <+85>:	je     0x850a1f3 <_ZN4node2fs13FSReqCallbackD0Ev+99>
   0x0850a1e7 <+87>:	sub    $0xc,%esp
=> 0x0850a1ea <+90>:	mov    (%eax),%edx