Bug 751445 - bash stuck at startup, no output or response to signals, when window is resized at the wrong time
Summary: bash stuck at startup, no output or response to signals, when window is resiz...
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: bash
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Roman Rakus
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-11-04 18:44 UTC by rh
Modified: 2014-01-13 00:13 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-08 12:07:48 UTC
Type: ---


Attachments (Terms of Use)

Description rh 2011-11-04 18:44:53 UTC
Description of problem:

bash got completely stuck when starting. It doesn't output anything or respond to anything.

Version-Release number of selected component (if applicable):

bash-4.2.10-4.fc16.x86_64

How reproducible:

This is not easily reproducible, I got unlucky with the timing. I started konsole and maximized the window while bash was starting. But while it's hanging, at least it's easy to obtain a backtrace that shows the problem: the SIGWINCH handler is called during a malloc call, and then calls malloc again.

Additional info:

#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:96
#1  0x0000003bfec82891 in _L_lock_10436 () from /lib64/libc.so.6
#2  0x0000003bfec80657 in __GI___libc_malloc (bytes=257680926464) at malloc.c:2921
#3  0x0000000000468973 in xmalloc (bytes=3) at xmalloc.c:112
#4  0x0000000000436249 in make_variable_value (var=0x10d1860, value=0x7ffff3ae8489 "58", flags=<optimized out>) at variables.c:2176
#5  0x0000000000437247 in bind_variable_internal (name=0x4a7a7e "LINES", value=0x7ffff3ae8489 "58", table=0x10a4830, hflags=<optimized out>, aflags=0) at variables.c:2234
#6  0x0000000000437ab6 in sh_set_lines_and_columns (lines=<optimized out>, cols=197) at variables.c:920
#7  0x000000000049c6fb in _rl_get_screen_size (tty=<optimized out>, ignore_env=1) at terminal.c:299
#8  0x000000000049c8ec in rl_resize_terminal () at terminal.c:353
#9  0x0000000000499372 in rl_sigwinch_handler (sig=28) at signals.c:260
#10 <signal handler called>
#11 _int_malloc (av=0x3bfefae700, bytes=1024) at malloc.c:3868
#12 0x0000003bfec80665 in __GI___libc_malloc (bytes=1024) at malloc.c:2924
#13 0x0000000000468973 in xmalloc (bytes=1024) at xmalloc.c:112
#14 0x0000000000494ca7 in init_line_structures (minsize=<optimized out>) at display.c:481
#15 0x0000000000498879 in rl_redisplay () at display.c:522
#16 0x0000000000487ad1 in readline_internal_setup () at readline.c:445
#17 0x000000000048890d in readline_internal () at readline.c:643
#18 e (prompt=<optimized out>) at readline.c:388
#19 0x000000000041e45c in yy_readline_get () at ./parse.y:1443
#20 0x00000000004203b9 in yy_getc () at ./parse.y:1376
#21 shell_getc (remove_quoted_newline=1) at ./parse.y:2231
#22 shell_getc (remove_quoted_newline=1) at ./parse.y:2159
#23 0x0000000000422d56 in read_token (command=<optimized out>) at ./parse.y:2908
#24 read_token (command=0) at ./parse.y:2859
#25 0x000000000042581d in yylex () at ./parse.y:2517
#26 yyparse () at y.tab.c:2031
#27 0x000000000041dd1a in parse_command () at eval.c:229
#28 0x000000000041dde6 in read_command () at eval.c:273
#29 0x000000000041e033 in reader_loop () at eval.c:138
#30 0x000000000041c79f in main (argc=1, argv=0x7ffff3ae9e58, env=0x7ffff3ae9e68) at shell.c:759

Comment 1 Roman Rakus 2011-11-07 14:07:42 UTC
Thanks for the report. You hit one of the possible bash race conditions. I have reported it upstream.

Comment 2 Roman Rakus 2011-11-08 12:07:48 UTC
It will be fixed in next bash release.


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