Bug 751445

Summary: bash stuck at startup, no output or response to signals, when window is resized at the wrong time
Product: [Fedora] Fedora Reporter: rh
Component: bashAssignee: Roman Rakus <rrakus>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: maxamillion, rrakus, tsmetana
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-08 12:07:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

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.