Bug 32379 - Зависает bash
Summary: Зависает bash
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: bash (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-16 02:17 MSK by Vitaly Lipatov
Modified: 2018-07-05 11:14 MSK (History)
5 users (show)

See Also:


Attachments
Полный бэктрейс (15.16 KB, text/plain)
2016-08-16 03:11 MSK, Vitaly Lipatov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2016-08-16 02:17:53 MSK
strace выдаёт для зависшего процесса:
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
rt_sigreturn({mask=[]})                 = 140655379824640


gdb:
Program received signal SIGSEGV, Segmentation fault.
(gdb) bt
#0  0x00007fece0ec0bf9 in gconv () from /usr/lib64/gconv/KOI8-R.so
#1  0x00007fece15315d7 in ?? () from /lib64/libc.so.6
#2  0x00007fece153d901 in ?? () from /lib64/libc.so.6
#3  0x00007fece153e111 in ?? () from /lib64/libc.so.6
#4  0x0000000000457365 in sh_notfound ()
#5  0x000000000046178b in type_builtin ()
#6  0x0000000000424b08 in ?? ()
#7  0x0000000000427048 in execute_command_internal ()
#8  0x0000000000427fae in execute_command ()
#9  0x0000000000426b28 in execute_command_internal ()
#10 0x0000000000425aad in execute_command_internal ()
#11 0x0000000000425cf4 in execute_command_internal ()
#12 0x0000000000428b09 in ?? ()
#13 0x0000000000427da0 in execute_command_internal ()
#14 0x0000000000427fae in execute_command ()
#15 0x0000000000426b28 in execute_command_internal ()
#16 0x0000000000427fae in execute_command ()
#17 0x0000000000426d0f in execute_command_internal ()
#18 0x000000000045a171 in parse_and_execute ()
#19 0x0000000000459b13 in ?? ()
#20 0x0000000000459c91 in source_file ()
#21 0x0000000000460761 in source_builtin ()
Comment 1 Vitaly Lipatov 2016-08-16 03:10:27 MSK
Зависает при логине по ssh.

Ctrl-C, Ctrl-Q, Ctrl-/ не срабатывают.

С поставленным bash-debuginfo:
gdb -p 3333

Program received signal SIGSEGV, Segmentation fault.
0x00007ff6025f8bf9 in gconv () from /usr/lib64/gconv/KOI8-R.so
(gdb) bt
#0  0x00007ff6025f8bf9 in gconv () from /usr/lib64/gconv/KOI8-R.so
#1  0x00007ff6025f8750 in gconv_init () from /usr/lib64/gconv/KOI8-R.so
#2  0x00007fff613fee78 in ?? ()
#3  0x00007ff60349a101 in ?? ()
#4  0x00007ff60349a0f3 in ?? ()
#5  0x00007fff613fee88 in ?? ()
#6  0x000000000094ddb0 in ?? ()
#7  0x00007ff602c695d7 in __gconv (cd=0xff0, inbuf=0x7ff5fc000020, inbuf@entry=0x7fff613fee78, inbufend=0x0, outbuf=outbuf@entry=0x7fff613fee80, outbufend=<optimized out>, irreversible=0x63, 
    irreversible@entry=0x7fff613fee88) at gconv.c:79
#8  0x00007ff602c75901 in _nl_find_msg (domain_file=0x94cfe0, domainbinding=domainbinding@entry=0x8d9da0, msgid=msgid@entry=0x475721 "%s: not found", convert=convert@entry=1, 
    lengthp=lengthp@entry=0x7fff613fefb8) at dcigettext.c:1286
#9  0x00007ff602c76111 in __dcigettext (domainname=0x8da140 "bash", domainname@entry=0x0, msgid1=msgid1@entry=0x475721 "%s: not found", msgid2=msgid2@entry=0x0, plural=plural@entry=0, n=n@entry=0, 
    category=category@entry=5) at dcigettext.c:742
#10 0x00007ff602c74bff in __GI___dcgettext (domainname=domainname@entry=0x0, msgid=msgid@entry=0x475721 "%s: not found", category=category@entry=5) at dcgettext.c:47
#11 0x0000000000457365 in sh_notfound (s=0x7ff5fc0044f0 "colordiff") at ../../builtins/common.c:172
#12 0x000000000046178b in type_builtin (list=0x94ab20) at ../../../builtins/type.def:182
#13 0x0000000000424b08 in execute_builtin (builtin=builtin@entry=0x461560 <type_builtin>, flags=flags@entry=8, subshell=subshell@entry=0, words=0x94ac20) at ../execute_cmd.c:3173
#14 0x0000000000427048 in execute_builtin_or_function (flags=8, fds_to_close=0x7ff5fc001e60, redirects=<optimized out>, var=0x0, builtin=0x461560 <type_builtin>, words=0x94ac20) at ../execute_cmd.c:3559
#15 execute_simple_command (fds_to_close=0x7ff5fc001e60, async=0, pipe_out=-1, pipe_in=-1, simple_command=<optimized out>) at ../execute_cmd.c:3039
#16 execute_command_internal (command=0x7ff5fc0019e0, asynchronous=0, pipe_in=<optimized out>, pipe_out=-1, fds_to_close=0x7ff5fc001e60) at ../execute_cmd.c:688
#17 0x0000000000427fae in execute_command (command=0x7ff5fc0019e0) at ../execute_cmd.c:352
#18 0x0000000000426b28 in execute_connection (fds_to_close=0x7ff5fc001b80, pipe_out=-1, pipe_in=-1, asynchronous=0, command=0x7ff5fc001a40) at ../execute_cmd.c:1601
#19 execute_command_internal (command=0x7ff5fc001a40, asynchronous=0, pipe_in=-1, pipe_out=-1, fds_to_close=0x7ff5fc001b80) at ../execute_cmd.c:840
#20 0x0000000000425aad in execute_connection (fds_to_close=0x7ff5fc001b80, pipe_out=-1, pipe_in=-1, asynchronous=0, command=0x7ff5fc002d50) at ../execute_cmd.c:1570
#21 execute_command_internal (command=0x7ff5fc002d50, asynchronous=0, pipe_in=-1, pipe_out=-1, fds_to_close=0x7ff5fc001b80) at ../execute_cmd.c:840
#22 0x0000000000425cf4 in execute_command_internal (command=0x7ff5fc002a60, asynchronous=0, pipe_in=-1, pipe_out=-1, fds_to_close=0x7ff5fc001b80) at ../execute_cmd.c:832
#23 0x0000000000428b09 in execute_function (var=var@entry=0x90f010, flags=flags@entry=8, fds_to_close=fds_to_close@entry=0x7ff5fc001b80, async=async@entry=0, subshell=subshell@entry=0, words=0x94ab60)
    at ../execute_cmd.c:3351
Comment 2 Vitaly Lipatov 2016-08-16 03:11:54 MSK
Created attachment 6794 [details]
Полный бэктрейс
Comment 3 Vitaly Lipatov 2016-08-16 03:24:39 MSK
Для тех, кто удивляется, откуда /usr/lib64/gconv/KOI8-R.so: в этой кодировке сохранён /usr/share/locale/ru/LC_MESSAGES/bash.mo
Comment 4 Michael Shigorin 2016-08-16 08:16:47 MSK
> SIGSEGV
Это точно не память?
Comment 5 Dmitry V. Levin 2016-08-16 11:05:18 MSK
(In reply to comment #0)
> strace выдаёт для зависшего процесса:
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
> rt_sigreturn({mask=[]})                 = 140655379824640

Прямо так на сегфолте по нулевому адресу и зависает?
Какие расширения для bash установлены?
Comment 6 Vitaly Lipatov 2016-08-16 20:15:14 MSK
(В ответ на комментарий №5)
> (In reply to comment #0)
> > strace выдаёт для зависшего процесса:
> > --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
> > rt_sigreturn({mask=[]})                 = 140655379824640
> 
> Прямо так на сегфолте по нулевому адресу и зависает?
Забыл написать, что это сообщение повторяется бесконечно и непрерывно.
В повторных ситуациях backtrace такой же.
Но strace такой:
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x6e6962} ---
sigreturn({mask=[]})                    = 28


> Какие расширения для bash установлены?
Даже не знал, что у него есть расширения:
bash-builtin-lockf-0.3.1-alt1.qa1
bash-debuginfo-3.2.57-alt1
bash-3.2.57-alt1
bash-completion-1.99-alt6
Comment 7 Vitaly Lipatov 2016-08-16 20:17:49 MSK
У меня чётко воспроизводится при запуске bash (локально или при подключении по ssh, как в логах) во время обновления glibc:
Aug 16 20:12:26 pbf apt-get: glibc-preinstall-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:30 pbf apt-get: glibc-preinstall-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:35 pbf apt-get: glibc-core-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:35 pbf apt-get: glibc-pthread-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:35 pbf apt-get: glibc-pthread-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:35 pbf apt-get: glibc-nss-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:35 pbf apt-get: glibc-nss-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:35 pbf sshd[21747]: Accepted publickey for lav from 192.168.0.55 port 56688 ssh2: DSA SHA256:sCxGzBbAcOQiGuxIhXtey1nfvxSqRKS0K42axyGgN98
Aug 16 20:12:40 pbf sshd[20486]: Received disconnect from 192.168.0.55: 11: disconnected by user
Aug 16 20:12:52 pbf sshd[20486]: Disconnected from 192.168.0.55
Aug 16 20:12:53 pbf sshd[21796]: Accepted publickey for lav from 192.168.0.55 port 56700 ssh2: DSA SHA256:sCxGzBbAcOQiGuxIhXtey1nfvxSqRKS0K42axyGgN98
Aug 16 20:12:54 pbf apt-get: glibc-locales-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:54 pbf apt-get: glibc-locales-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:54 pbf apt-get: glibc-gconv-modules-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:54 pbf apt-get: glibc-gconv-modules-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:54 pbf apt-get: iconv-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:54 pbf apt-get: iconv-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:54 pbf apt-get: glibc-timezones-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:54 pbf apt-get: glibc-timezones-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:54 pbf apt-get: glibc-utils-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:54 pbf apt-get: glibc-utils-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:54 pbf apt-get: glibc-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:55 pbf apt-get: glibc-6:2.17-alt8 1389812388 removed 
Aug 16 20:12:55 pbf apt-get: glibc-devel-6:2.23-alt3 1465475997 installed 
Aug 16 20:12:55 pbf apt-get: glibc-devel-6:2.17-alt8 1389812388 removed 

Понятно, что новый glibc пытается загрузить старые glibc-gconv-modules и не справляется. Но меня смущает реакция на SIGSEGV при этом.

В других случаях проблему видел редко, готов отложить багу до следующего случая, не связанного с обновлением glibc.
Comment 8 Dmitry V. Levin 2016-08-16 21:54:05 MSK
(In reply to comment #7)
> Понятно, что новый glibc пытается загрузить старые glibc-gconv-modules и не
> справляется.

glibc не подозревает, что glibc-gconv-modules, которые он загружает и исполняет, несовместимые.

> Но меня смущает реакция на SIGSEGV при этом.

Тем не менее, это вполне закономерное следствие.
Comment 9 Vitaly Lipatov 2016-08-17 17:36:17 MSK
(В ответ на комментарий №8)
...
> > Но меня смущает реакция на SIGSEGV при этом.
> 
> Тем не менее, это вполне закономерное следствие.
SIGSEGV закономерен, но зацикливаться на его обработке — совершенно некорректно.
Comment 10 Vitaly Lipatov 2018-07-05 11:14:19 MSK
Прямой проблемы не обнаружено, воспроизводится перестало.