write segfault when socket closes without notification
Closed this issue · 1 comments
travisghansen commented
Looks like there are various ways to clean it up..
- http://stackoverflow.com/questions/6824265/sigpipe-broken-pipe
- http://stackoverflow.com/questions/108183/how-to-prevent-sigpipes-or-handle-them-properly
Program received signal SIGPIPE, Broken pipe.
0x00cf2402 in __kernel_vsyscall ()
(gdb) bt
(gdb) bt full
#0 0x00cf2402 in __kernel_vsyscall ()
No symbol table info available.
#1 0x001e34a1 in send () from /lib/libc.so.6
No symbol table info available.
#2 0x0804a526 in client_write (c=0x80e3ae8, data=0x80efbd8 "1349006458\n") at fanout.c:853
sent = -1073750152
#3 0x0804a6ef in client_process_input_buffer (c=0x80e3ae8) at fanout.c:882
line = 0x8086280 "ping"
message = 0x80efbd8 "1349006458\n"
action = 0xbfffe098 "\005"
channel = 0x804bbb7 "DEBUG"
i = 4
#4 0x08049d3f in main (argc=11, argv=0xbfffe764) at fanout.c:566
srvsock = 7
epollfd = 8
nfds = 1
efd = 1039
n = 0
res = 5
portno = 80
optval = -1073748208
optlen = 4
listen_backlog = 25
max_events = 25
pidfile = 0x0
buffer = "ping\n", '\000' <repeats 1019 times>
pwd = 0x2669b4
grp = 0x266934
user = 0xbfffe8c6 "sparklefan"
group = 0xbfffe8d1 "sparklefan"
user_id = 102
group_id = 104
ev = {events = 1, data = {ptr = 0x5fb, fd = 1531, u32 = 1531, u64 = 20497748600030715}}
events = 0xbfffe0b0
client_i = 0x80e3ae8
client_tmp = 0x80edd08
clilen = 28
serv_addr = {sin6_family = 10, sin6_port = 20480, sin6_flowinfo = 0, sin6_addr = {in6_u = {
u6_addr8 = '\000' <repeats 15 times>, u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, u6_addr32 = {0, 0, 0,
0}}}, sin6_scope_id = 0}
cli_addr = {sin6_family = 10, sin6_port = 45760, sin6_flowinfo = 0, sin6_addr = {in6_u = {
u6_addr8 = "\000\000\000\000\000\000\000\000\000\000\377\377g\367\206;", u6_addr16 = {0, 0, 0, 0, 0,
65535, 63335, 15238}, u6_addr32 = {0, 0, 4294901760, 998700903}}}, sin6_scope_id = 0}
c = -1
option_index = 0
calculated_client_limit = 7984
long_options = {{name = 0x804b390 "port", has_arg = 1, flag = 0x0, val = 0}, {name = 0x804b395 "daemon",
has_arg = 0, flag = 0x804d4b4, val = 1}, {name = 0x804b39c "logfile", has_arg = 1, flag = 0x0,
val = 0}, {name = 0x804b3a4 "pidfile", has_arg = 1, flag = 0x0, val = 0}, {
name = 0x804b3ac "debug-level", has_arg = 1, flag = 0x0, val = 0}, {name = 0x804b3b8 "help",
has_arg = 0, flag = 0x0, val = 0}, {name = 0x804b3bd "client-limit", has_arg = 1, flag = 0x0, val = 0},
{name = 0x804b3ca "run-as", has_arg = 1, flag = 0x0, val = 0}, {name = 0x804b3d1 "max-logfile-size",
has_arg = 1, flag = 0x0, val = 0}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
travisghansen commented
Should be fixed as of commit 8c88678