arut / nginx-rtmp-module

NGINX-based Media Streaming Server
http://nginx-rtmp.blogspot.com
BSD 2-Clause "Simplified" License
13.46k stars 3.51k forks source link

Worker segfault on new connection after nginx reload (VOD) #134

Open xeptor opened 11 years ago

xeptor commented 11 years ago

nginx worker exited on new connection after reload

application testvod { play http://*****; }

LOG OUTPUT: 2013/02/25 11:01:08 [info] 4415#0: _3 connect: app='testvod' args='' flashver='MAC 11,6,602,171' swfurl='http://_/player-licensed.swf' tc_url='rtmp://_:1935/***_/' pageurl='http://***server=rtmp://**_:1935/testvod/&stream=*****/test.mp4' acodecs=3575 vcodecs=252 objectencoding=0, client: ********, server: 0.0.0.0:1935 2013/02/25 11:01:08 [notice] 4382#0: signal 17 (SIGCHLD) received 2013/02/25 11:01:08 [alert] 4382#0: worker process 4415 exited on signal 11 2013/02/25 11:01:08 [debug] 4382#0: shmtx forced unlock 2013/02/25 11:01:08 [debug] 4382#0: wake up, sigio 0 2013/02/25 11:01:08 [debug] 4382#0: reap children 2013/02/25 11:01:08 [debug] 4382#0: child: 0 -1 e:1 t:1 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 1 -1 e:1 t:1 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 2 -1 e:1 t:1 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 3 -1 e:1 t:1 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 4 4412 e:0 t:0 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 5 4413 e:0 t:0 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 6 4414 e:0 t:0 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: child: 7 4415 e:0 t:1 d:0 r:1 j:0 2013/02/25 11:01:08 [debug] 4382#0: pass close channel s:7 pid:4415 to:4412 2013/02/25 11:01:08 [debug] 4382#0: pass close channel s:7 pid:4415 to:4413 2013/02/25 11:01:08 [debug] 4382#0: pass close channel s:7 pid:4415 to:4414

MASTER PROCESS STRACE OUTPUT: Process 4451 attached - interrupt to quit rt_sigsuspend([]) = ? ERESTARTNOHAND (To be restarted) --- SIGCHLD (Child exited) @ 0 (0) --- write(18, "2013/02/25 11:11:16 [notice] 445"..., 66) = 66 wait4(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], WNOHANG, NULL) = 4549 write(18, "2013/02/25 11:11:16 [alert] 4451"..., 76) = 76 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 56) = 56 wait4(-1, 0x7fffb349ce3c, WNOHANG, NULL) = 0 rt_sigreturn(0xffffffffffffffff) = -1 EINTR (Interrupted system call) write(18, "2013/02/25 11:11:16 [debug] 4451"..., 53) = 53 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 50) = 50 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 68) = 68 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 68) = 68 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 68) = 68 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 68) = 68 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 70) = 70 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 70) = 70 close(6) = 0 close(7) = 0 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 76) = 76 sendmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\2\0\0\0\0\0\0\0\305\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0", 32}], msg_controllen=0, msg_flags=0}, 0) = 32 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 76) = 76 sendmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\2\0\0\0\0\0\0\0\305\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0", 32}], msg_controllen=0, msg_flags=0}, 0) = 32 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 76) = 76 sendmsg(11, {msg_name(0)=NULL, msg_iov(1)=[{"\2\0\0\0\0\0\0\0\305\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0", 32}], msg_controllen=0, msg_flags=0}, 0) = 32 socketpair(PF_FILE, SOCK_STREAM, 0, [6, 7]) = 0 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 48) = 48 ioctl(6, FIONBIO, [1]) = 0 ioctl(7, FIONBIO, [1]) = 0 ioctl(6, FIOASYNC, [1]) = 0 fcntl(6, F_SETOWN, 4451) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 fcntl(7, F_SETFD, FD_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fc33d1339f0) = 4554 write(18, "2013/02/25 11:11:16 [notice] 445"..., 63) = 63 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 88) = 88 sendmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\0\0\0\0\0\0\312\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\6\0\0\0\0\0\0\0", 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {6}}, msg_flags=0}, 0) = 32 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 88) = 88 sendmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\0\0\0\0\0\0\312\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\6\0\0\0\0\0\0\0", 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {6}}, msg_flags=0}, 0) = 32 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 89) = 89 sendmsg(11, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\0\0\0\0\0\0\312\21\0\0\0\0\0\0\5\0\0\0\0\0\0\0\6\0\0\0\0\0\0\0", 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {6}}, msg_flags=0}, 0) = 32 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 70) = 70 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 70) = 70 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 47) = 47 rt_sigsuspend([]) = ? ERESTARTNOHAND (To be restarted) --- SIGIO (I/O possible) @ 0 (0) --- write(18, "2013/02/25 11:11:16 [notice] 445"..., 64) = 64 rt_sigreturn(0x12) = -1 EINTR (Interrupted system call) write(18, "2013/02/25 11:11:16 [debug] 4451"..., 53) = 53 write(18, "2013/02/25 11:11:16 [debug] 4451"..., 47) = 47

WORKER PROCESS STRACE OUTPUT: Process 4578 attached - interrupt to quit write(18, "2013/02/25 11:14:42 [info] 4578#"..., 84) = 84 write(18, "2013/02/25 11:14:42 [debug] 4578"..., 54) = 54 write(18, "2013/02/25 11:14:42 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:42 [debug] 4578"..., 49) = 49 write(18, "2013/02/25 11:14:42 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:42 [debug] 4578"..., 52) = 52 epoll_wait(13, {{EPOLLIN, {u32=18881536, u64=18881536}}}, 512, 4294967295) = 1 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 75) = 75 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 54) = 54 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 73) = 73 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 69) = 69 accept4(9, {sa_family=AF_INET, sin_port=htons(51705), sin_addr=inetaddr("***")}, [16], SOCK_NONBLOCK) = 5 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 78) = 78 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 65) = 65 write(18, "2013/02/25 11:14:46 [info] 4578#"..., 70) = 70 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 82) = 82 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 63) = 63 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 82) = 82 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 74) = 74 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 69) = 69 recvfrom(5, 0x11c1b40, 1537, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 96) = 96 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 79) = 79 epoll_ctl(13, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLET, {u32=18882112, u64=18882112}}) = 0 accept4(9, 0x7fffb349d290, [110], SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable) write(18, "2013/02/25 11:14:46 [debug] 4578"..., 94) = 94 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 49) = 49 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 55) = 55 epoll_wait(13, {{EPOLLIN, {u32=18882112, u64=18882112}}}, 512, 60000) = 1 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 75) = 75 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 68) = 68 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 52) = 52 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 77) = 77 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 74) = 74 recvfrom(5, "\3\0[\216\"\200\0\7\0026<\267\265V\16\314 \2251\351\0073\265\16G\301\277Z\334\343\246q"..., 1537, 0, NULL, NULL) = 1392 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 recvfrom(5, 0x11c20b0, 145, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) write(18, "2013/02/25 11:14:46 [debug] 4578"..., 61) = 61 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 96) = 96 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 49) = 49 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 55) = 55 epollwait(13, {{EPOLLIN, {u32=18882112, u64=18882112}}}, 512, 60000) = 1 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 75) = 75 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 68) = 68 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 51) = 51 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 77) = 77 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 74) = 74 recvfrom(5, "\241\334]\361\304\323\310y-\31\231'4h\26\233\312\307p>\202\271D@\215\313\0\tR\301\374"..., 145, 0, NULL, NULL) = 145 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 79) = 79 epoll_ctl(13, EPOLL_CTL_DEL, 5, {0, {u32=0, u64=0}}) = 0 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 59) = 59 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 76) = 76 sendto(5, "\3\20\242\5\t\r\16\n\r;\315\277n\365\312\355\322\374\312\345\201\273\356\202\307/5\216\263P;\310"..., 1537, 0, NULL, 0) = 1537 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 59) = 59 sendto(5, "z\277\340\16O\33J\266\366\223\345n\fs\204\26\352L\267\236\6w\245\361\2318\316C\2151\22\10"..., 1536, 0, NULL, 0) = 1536 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 59) = 59 recvfrom(5, 0x11c1b41, 1536, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 96) = 96 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 79) = 79 epoll_ctl(13, EPOLL_CTL_ADD, 5, {EPOLLIN|EPOLLET, {u32=18882112, u64=18882112}}) = 0 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 49) = 49 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 55) = 55 epoll_wait(13, {{EPOLLIN, {u32=18882112, u64=18882112}}}, 512, 60000) = 1 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 75) = 75 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 68) = 68 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 52) = 52 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 77) = 77 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 74) = 74 recvfrom(5, "\20\242\5\t\0\0\0\0;\315\277n\365\312\355\322\374\312\345\201\273\356\202\307/5\216\263P;\310\252"..., 1536, 0, NULL, NULL) = 1392 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 recvfrom(5, 0x11c20b1, 144, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) write(18, "2013/02/25 11:14:46 [debug] 4578"..., 61) = 61 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 96) = 96 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 49) = 49 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 55) = 55 epoll_wait(13, {{EPOLLIN, {u32=18882112, u64=18882112}}}, 512, 60000) = 1 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 75) = 75 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 68) = 68 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 51) = 51 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 67) = 67 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 77) = 77 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 74) = 74 recvfrom(5, "R\231W|zK\17j\326\31\332\374\323<\200%\335V\227.h\323\340\"\364.A5(O\207"..., 144, 0, NULL, NULL) = 144 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 79) = 79 epoll_ctl(13, EPOLL_CTLDEL, 5, {0, {u32=0, u64=0}}) = 0 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 59) = 59 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 56) = 56 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 59) = 59 recvfrom(5, "\3\0\0\0\0\1\246\24\0\0\0\0\2\0\7connect\0?\360\0\0\0\0\0\0\3"..., 146, 0, NULL, NULL) = 146 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 103) = 103 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 70) = 70 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 105) = 105 recvfrom(5, "p://***:1935/testvod"..., 140, 0, NULL, NULL) = 140 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 71) = 71 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 105) = 105 recvfrom(5, "Url\2\0thttp://*_/inde"..., 129, 0, NULL, NULL) = 129 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 62) = 62 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 71) = 71 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 66) = 66 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 105) = 105 recvfrom(5, "ctEncoding\0\0\0\0\0\0\0\0\0\0\0\t", 129, 0, NULL, NULL) = 22 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 61) = 61 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 106) = 106 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 53) = 53 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 58) = 58 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 84) = 84 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 81) = 81 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 68) = 68 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 101) = 101 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 121) = 121 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 80) = 80 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 121) = 121 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 76) = 76 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 121) = 121 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 72) = 72 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 105) = 105 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 101) = 101 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 101) = 101 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 109) = 109 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 84) = 84 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 122) = 122 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 113) = 113 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 88) = 88 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 64) = 64 write(18, "2013/02/25 11:14:46 [debug] 4578"..., 60) = 60 write(18, "2013/02/25 11:14:46 [info] 4578#"..., 414) = 414 --- SIGSEGV (Segmentation fault) @ 0 (0) --- Process 4578 detached

WORKER GDB STACK TRACE OUTPUT: (gdb) continue Continuing.

Program received signal SIGSEGV, Segmentation fault. 0x00000000004e68df in ngx_rtmp_notify_connect (s=Cannot access memory at address 0x7fffff7fefc8 ) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:976 976 { Current language: auto The current source language is "auto; currently c".

(gdb) bt

0 0x00000000004e68df in ngx_rtmp_notify_connect (s=Cannot access memory at address 0x7fffff7fefc8

) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:976

1 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

2 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

3 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

4 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

5 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

6 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

7 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

8 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

9 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

10 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

11 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

12 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

13 0x00000000004e69fe in ngx_rtmp_notify_connect (s=0xc62240, v=0x72e8e0) at ../nginx-rtmp-module/ngx_rtmp_notify_module.c:1006

nginx -V nginx version: nginx/1.2.7 TLS SNI support enabled configure arguments: --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --without-http_scgi_module --without-http_uwsgi_module --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_secure_link_module --with-http_stub_status_module --with-http_geoip_module --with-http_image_filter_module --add-module=../nginx-rtmp-module --add-module=../nginx-rtmp-module/hls --with-debug

Linux testcdn 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux Debian 6.0 amd64

arut commented 11 years ago

nginx reload is not supported.

It makes no sense with RTMP beause of long connections.

xeptor commented 11 years ago

You got it wrong. It was occurred on new connection (on connect). Not in existing connection. New connections refusing after reload.

arut commented 11 years ago

Sorry, do you use "nginx reload" operation to make reload nginx.conf? That's not supported in rtmp module and can definitely cause a crash. The support for nginx-style reload for RTMP server makes no sense.

svenba commented 10 years ago

Any chance to make "service nginx reload" work? New connections are no able to connect to a RTMP stream that has been started before the reload. We require the reload for the HTTP part and for new RTMP apps which changes frequently.

misiek08 commented 10 years ago

Setup two separate instances for rtmp and http. 7 lis 2014 11:27 "svenba" notifications@github.com napisał(a):

Any chance to make "service nginx reload" work? New connections are no able to connect to a RTMP stream that has been started before the reload. We require the reload for the HTTP part and for new RTMP apps which changes frequently.

— Reply to this email directly or view it on GitHub https://github.com/arut/nginx-rtmp-module/issues/134#issuecomment-62124325 .

svenba commented 10 years ago

How about changes in the RTMP block? I found a way for VOD with the // to create a generic config which does not require any reload/restart. But I struggle with the live streaming (approx. 100 publisher which require a unique name/ID). Is there a way to add apps for live streaming without a restart? Maybe similar to the approach with VOD? Or any other generic setup?

misiek08 commented 10 years ago

You don't have to setup different app for each publisher. You can make channels names just md5 or nick_channelid form. One app can handle many publishers then. In my setup I have about 8-10 apps, but usually only 1 or 2 serving streams.

2014-11-07 17:34 GMT+01:00 svenba notifications@github.com:

How about changes in the RTMP block? I found a way for VOD with the // to create a generic config which does not require any reload/restart. But I struggle with the live streaming (approx. 100 publisher which require a unique name/ID). Is there a way to add apps for live streaming without a restart? Maybe similar to the approach with VOD? Or any other generic setup?

— Reply to this email directly or view it on GitHub https://github.com/arut/nginx-rtmp-module/issues/134#issuecomment-62171367 .

svenba commented 10 years ago

Changing implementation concept now. Using on_publish callback to control the stream. stream name will include publisher ID to make it unique. Result: Restart/reload not required anymore, thank you! And thanks for the awesome module!