bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bash crashes on SIGPIPE


From: Nikola Kržalić
Subject: bash crashes on SIGPIPE
Date: Tue, 14 Apr 2015 13:39:06 +0200

If I open a socket to local database:

exec 3<> /dev/tcp/127.0.0.1/6379

In netstat I can see the connection successfully established:
tcp        0      0 127.0.0.1:42662         127.0.0.1:6379
ESTABLISHED 2269/-bash

And then I proceed to send some data:
echo -e "*2\r\n$3\r\nGET\r\n$6\r\nmy_key\r\n" >&3

At this point the server application (as expected) complains about bad
syntax and terminates the TCP connection, socket goes into CLOSE_WAIT
state:

tcp       45      0 127.0.0.1:42662         127.0.0.1:6379
CLOSE_WAIT  2269/-bash

And if I decide to run echo again, bash simply crashes. Few times it
also terminated on first echo.

Bellow is the strace output. I'm running bash version 4.3.11 on Ubuntu
14.04.2 LTS.

write(2, "\10\10-e \"*2\\r\\n$3\\r\\nGET\\r\\n$6\\r\\nm"..., 46) = 46
read(0, "\r", 1)                        = 1
write(2, "\n", 1)                       = 1
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(0, SNDCTL_TMR_STOP or SNDRV_TIMER_IOCTL_GINFO or TCSETSW,
{B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGINT, {0x45cf60, [], SA_RESTORER, 0x7f7c8015cd40},
{0x4a8580, [], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
rt_sigaction(SIGTERM, {0x45cb10, [], SA_RESTORER|SA_RESTART,
0x7f7c8015cd40}, {0x4a8580, [], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
rt_sigaction(SIGHUP, {0x45d1d0, [HUP INT ILL TRAP ABRT BUS FPE USR1
SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER,
0x7f7c8015cd40}, {0x4a8580, [], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
rt_sigaction(SIGALRM, {0x45d1d0, [HUP INT ILL TRAP ABRT BUS FPE USR1
SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], SA_RESTORER,
0x7f7c8015cd40}, {0x4a8580, [], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
rt_sigaction(SIGWINCH, {0x45cb00, [], SA_RESTORER, 0x7f7c8015cd40},
{0x4a7c00, [], SA_RESTORER|SA_RESTART, 0x7f7c8015cd40}, 8) = 0
rt_sigaction(SIGINT, {0x45cf60, [], SA_RESTORER, 0x7f7c8015cd40},
{0x45cf60, [], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
fcntl(1, F_GETFD)                       = 0
fcntl(1, F_DUPFD, 10)                   = 10
fcntl(1, F_GETFD)                       = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
dup2(3, 1)                              = 1
fcntl(3, F_GETFD)                       = 0
write(1, "*2\r\n", 4)                   = 4
write(1, "\r\n", 2)                     = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4813, si_uid=0} ---
rt_sigprocmask(SIG_BLOCK, [CHLD TSTP TTIN TTOU], [HUP INT ILL TRAP
ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], 8) =
0
ioctl(255, SNDRV_TIMER_IOCTL_SELECT or TIOCSPGRP, [4813]) = 0
rt_sigprocmask(SIG_SETMASK, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV
USR2 PIPE ALRM TERM XCPU XFSZ VTALRM SYS], NULL, 8) = 0
setpgid(0, 4813)                        = -1 EPERM (Operation not permitted)
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_RESTORER, 0x7f7c8015cd40},
{0x45d1d0, [HUP INT ILL TRAP ABRT BUS FPE USR1 SEGV USR2 PIPE ALRM
TERM XCPU XFSZ VTALRM SYS], SA_RESTORER, 0x7f7c8015cd40}, 8) = 0
kill(4813, SIGPIPE)                     = 0
rt_sigreturn()                          = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4813, si_uid=0} ---
+++ killed by SIGPIPE +++


-- 
Regards,

Nikola Kržalić.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]