Bug 32379 - Зависает bash
: Зависает bash
Status: NEW
: Sisyphus
(All bugs in Sisyphus/bash)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2016-08-16 02:17 by
Modified: 2016-08-17 17:36 (History)


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


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2016-08-16 02:17:53
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 From 2016-08-16 03:10:27 -------
Зависает при логине по 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 From 2016-08-16 03:11:54 -------
Created an attachment (id=6794) [details]
Полный бэктрейс
------- Comment #3 From 2016-08-16 03:24:39 -------
Для тех, кто удивляется, откуда /usr/lib64/gconv/KOI8-R.so: в этой кодировке
сохранён /usr/share/locale/ru/LC_MESSAGES/bash.mo
------- Comment #4 From 2016-08-16 08:16:47 -------
> SIGSEGV
Это точно не память?
------- Comment #5 From 2016-08-16 11:05:18 -------
(In reply to comment #0)
> strace выдаёт для зависшего процесса:
> --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
> rt_sigreturn({mask=[]})                 = 140655379824640

Прямо так на сегфолте по нулевому адресу и зависает?
Какие расширения для bash установлены?
------- Comment #6 From 2016-08-16 20:15:14 -------
(В ответ на комментарий №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 From 2016-08-16 20:17:49 -------
У меня чётко воспроизводится при запуске 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 From 2016-08-16 21:54:05 -------
(In reply to comment #7)
> Понятно, что новый glibc пытается загрузить старые glibc-gconv-modules и не
> справляется.

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

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

Тем не менее, это вполне закономерное следствие.
------- Comment #9 From 2016-08-17 17:36:17 -------
(В ответ на комментарий №8)
...
> > Но меня смущает реакция на SIGSEGV при этом.
> 
> Тем не менее, это вполне закономерное следствие.
SIGSEGV закономерен, но зацикливаться на его обработке — совершенно
некорректно.