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
Upgrade to nginx 1.24 auto_push causes looping signal 29 and signal 17 crash #238
Comments
More info. The stack trace: #0 0x00007faa26ebe034 in ngx_rtmp_auto_push_init_process (cycle=) at flv-1.24.0/ngx_rtmp_auto_push_module.c:323 I am wondering if it has to do with this fix in nginx: Or this fix: |
Your nginx.conf file? My nginx.conf:
Nginx version:
Executed "reload" but didn't reproduce the bug:
|
I fixed this bug. This is what I found: In the nginx_rtmp_auto_push_module.c on line 323: There is this code:
What I am seeing if that "old" is null, so when this code is executing it's crashing because it's trying to do old->read on null. It happens on every server we have when we issue a "reload". To fix it I made this change:
It now reloads perfectly in our entire environment. I am wondering what conditions in the new 1.24 would cause ls->previous->connection to be null, which would mean that the old variable is null, which would crash the old->read. /sbin/nginx -V We have our configs broken up into different files but this is the various configs: rtmp_auto_push on; rtmp {
} user nginx; include /usr/share/nginx/modules/*.conf; events { |
I found the reason: if the module is compiled as a dynamic module, the bug will be 100% reproduced. |
Great thanks for the information. While you’re in there fixing that bug do you want to also look at the proxy protocol and why it’s not working? I can show you the code changes that I made.On May 15, 2023, at 6:05 AM, winshining ***@***.***> wrote:
I found the reason: if the module is compiled as a dynamic module, the bug will be 100% reproduced.
What you mentioned above doesn't perfectly resolve the issue and will lead to socket leak.
I will fix the issue soon.
Thank you for reporting the bug!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Fixed, please fetch the latest code to test. |
* [fix] fixed a crash bug resulted from 'reload' (winshining#238). * [fix] fixed 'proxy protocol not working' bug (winshining#239). * [fix] fixed a typo. * [fix] fixed an endian bug in mp4 vod.
Hi All,
We recently upgraded to nginx 1.24 and compiled this module properly (as we have always done). The module works great still, however after a "reload" of nginx we are seeing this in our nginx error.log and it keeps repeating forever and causes the module to be inoperable. When we do a nginx "restart" everything goes back to working fine.
When I turn auto_push "off" the problem does not happen, so it's something specific to the auto push.
This has been working fine for years up until a recent upgrade to nginx 1.24.
Any help would be appreciated.
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310276
2023/05/13 10:27:04 [debug] 3310275#3310275: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310275#3310275: auto_push: create socket '/tmp/nginx-http-flv.9'
2023/05/13 10:27:04 [debug] 3310275#3310275: auto_push: delete existing socket '/tmp/nginx-http-flv.9'
2023/05/13 10:27:04 [debug] 3310276#3310276: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310276#3310276: auto_push: create socket '/tmp/nginx-http-flv.15'
2023/05/13 10:27:04 [debug] 3310276#3310276: auto_push: delete existing socket '/tmp/nginx-http-flv.15'
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310270
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310270 exited on signal 11
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310272 exited on signal 11
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310277
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310278
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 29 (SIGIO) received
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310272
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310269 exited on signal 11
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310279
2023/05/13 10:27:04 [debug] 3310277#3310277: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310277#3310277: auto_push: create socket '/tmp/nginx-http-flv.10'
2023/05/13 10:27:04 [debug] 3310277#3310277: auto_push: delete existing socket '/tmp/nginx-http-flv.10'
2023/05/13 10:27:04 [debug] 3310278#3310278: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310278#3310278: auto_push: create socket '/tmp/nginx-http-flv.11'
2023/05/13 10:27:04 [debug] 3310278#3310278: auto_push: delete existing socket '/tmp/nginx-http-flv.11'
2023/05/13 10:27:04 [debug] 3310279#3310279: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310279#3310279: auto_push: create socket '/tmp/nginx-http-flv.12'
2023/05/13 10:27:04 [debug] 3310279#3310279: auto_push: delete existing socket '/tmp/nginx-http-flv.12'
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 29 (SIGIO) received
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 29 (SIGIO) received
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310271
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310271 exited on signal 11
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310280
2023/05/13 10:27:04 [debug] 3310280#3310280: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310280#3310280: auto_push: create socket '/tmp/nginx-http-flv.14'
2023/05/13 10:27:04 [debug] 3310280#3310280: auto_push: delete existing socket '/tmp/nginx-http-flv.14'
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310276
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310276 exited on signal 11
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310281
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 29 (SIGIO) received
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 29 (SIGIO) received
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310273
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310273 exited on signal 11
2023/05/13 10:27:04 [alert] 2190648#2190648: worker process 3310274 exited on signal 11
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310282
2023/05/13 10:27:04 [notice] 2190648#2190648: start worker process 3310283
2023/05/13 10:27:04 [notice] 2190648#2190648: signal 17 (SIGCHLD) received from 3310274
2023/05/13 10:27:04 [debug] 3310281#3310281: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310281#3310281: auto_push: create socket '/tmp/nginx-http-flv.15'
2023/05/13 10:27:04 [debug] 3310281#3310281: auto_push: delete existing socket '/tmp/nginx-http-flv.15'
2023/05/13 10:27:04 [debug] 3310282#3310282: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310282#3310282: auto_push: create socket '/tmp/nginx-http-flv.8'
2023/05/13 10:27:04 [debug] 3310282#3310282: auto_push: delete existing socket '/tmp/nginx-http-flv.8'
2023/05/13 10:27:04 [debug] 3310283#3310283: auto_push: creating sockets
2023/05/13 10:27:04 [debug] 3310283#3310283: auto_push: create socket '/tmp/nginx-http-flv.13'
2023/05/13 10:27:04 [debug] 3310283#3310283: auto_push: delete existing socket '/tmp/nginx-http-flv.13'
The text was updated successfully, but these errors were encountered: