Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http_renderer: it dies with signal SIGPIPE when the other end breaks the connection #48

Closed
juanrubio opened this issue Apr 17, 2014 · 1 comment

Comments

Projects
None yet
1 participant
@juanrubio
Copy link
Collaborator

commented Apr 17, 2014

send calls in the http renderer should use the MSG_NOSIGNAL flag to avoid the SIGPIPE signal when the other ends breaks the connection. Still will need to check for EPIPE error, but this will be a non-fatal one, and the listener will simply be removed from the internal structures.

For details on MSG_NOSIGNAL:
http://linux.die.net/man/2/send

Program received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x7fffe96b3700 (LWP 5744)]
0x00007ffff5e1195b in __libc_send (fd=13, buf=0x7fffd000a9ac, n=512, flags=-1) at ../sysdeps/unix/sysv/linux/x86_64/send.c:31
31 ../sysdeps/unix/sysv/linux/x86_64/send.c: No such file or directory.
(gdb) bt
#0 0x00007ffff5e1195b in __libc_send (fd=13, buf=0x7fffd000a9ac, n=512, flags=-1) at ../sysdeps/unix/sysv/linux/x86_64/send.c:31
#1 0x00007fffe96bbbff in write_omx_buffer (ap_key=0x7fffd000edf4, ap_value=0x7fffd000ed80, ap_arg=0x7fffd000e8f0) at icernet.c:1406
#2 0x00007ffff58f093a in map_iter_function (key=0x7fffd000ee30, iter_arg=0x7fffd000e8f0) at tizmap.c:107
#3 0x00007ffff58e6744 in iterate_inorder_helper (node=0x7fffd00100e0, iter_fun=0x7ffff58f087c <map_iter_function>, iter_arg=0x7fffd000e8f0) at avl/avl.c:635
#4 0x00007ffff58e67cc in avl_iterate_inorder (tree=0x7fffd000a400, iter_fun=0x7ffff58f087c <map_iter_function>, iter_arg=0x7fffd000e8f0) at avl/avl.c:656
#5 0x00007ffff58f10fd in tiz_map_for_each (ap_map=0x7fffd000a3c0, a_pf_for_each=0x7fffe96bb948 <write_omx_buffer>, ap_arg=0x7fffd000e8f0) at tizmap.c:282
#6 0x00007fffe96bcf39 in icer_net_write_to_listeners (ap_server=0x7fffd000e8f0) at icernet.c:1851
#7 0x00007fffe96bdb15 in stream_to_clients (ap_prc=0x7fffd0009af0) at icerprc.c:72
#8 0x00007fffe96beeaa in icer_prc_io_ready (ap_prc=0x7fffd0009af0, ap_ev_io=0x7fffd000eea0, a_fd=13, a_events=2) at icerprc.c:439
#9 0x00007fffea0cc3dd in tiz_prc_io_ready (ap_obj=0x7fffd0009af0, ap_ev_io=0x7fffd000eea0, a_fd=13, a_events=2) at tizprc.c:882
#10 0x00007fffea09dde6 in do_eio (ap_sched=0x7fffe4009870, ap_state=0x7fffe400a960, ap_msg=0x7fffc4000920) at tizscheduler.c:1219
#11 0x00007fffea0a019f in dispatch_msg (ap_sched=0x7fffe4009870, ap_state=0x7fffe400a960, ap_msg=0x7fffc4000920) at tizscheduler.c:1885
#12 0x00007fffea0a0662 in il_sched_thread_func (p_arg=0x7fffe4009870) at tizscheduler.c:1972
#13 0x00007ffff5e0a182 in start_thread (arg=0x7fffe96b3700) at pthread_create.c:312
#14 0x00007ffff4ca930d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

@juanrubio juanrubio added this to the OpenMAX IL 0.1.0 milestone Apr 17, 2014

@juanrubio juanrubio added the bug label Apr 17, 2014

@juanrubio juanrubio self-assigned this Apr 17, 2014

juanrubio referenced this issue Apr 17, 2014

http_renderer: Added MSG_NOSIGNAL flag to send calls (avoids SIGPIPE …
…errors when the other end breaks the connection). The EPIPE error is still returned.
@juanrubio

This comment has been minimized.

Copy link
Collaborator Author

commented Apr 18, 2014

This has been fixed in ea3048c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.