ZLMediaKit / ZLMediaKit

WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
https://docs.zlmediakit.com
Other
13.77k stars 3.39k forks source link

[BUG] mediakit::HttpSession on err: 1(end of file) webhooks may take a long time to request and eventually time out after being used for a while #3690

Closed liuliu-x1 closed 2 months ago

liuliu-x1 commented 3 months ago

Phenomenon Description

日志频繁mediakit::HttpSession on err: 1(end of file) 运行一段时间,大概几个小时,出现2024-07-04 18:28:28.593 T [MediaServer] [1-event...ler 238] TcpClient.cpp:75 operator() | mediakit::HttpRequester-5207 on err: 2(wait http response complete timeout) 2024-07-04 18:28:28.593 W [MediaServer] [1-event...ler 238] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_stream_changed 120055ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "regist" : false, "schema" : "hls", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" } 2024-07-04 18:28:30.810 W [MediaServer] [1-event...ler 239] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_publish 120065ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "id" : "1429-6028", "ip" : "192.20.1.0", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "originType" : 1, "originTypeStr" : "rtmp_push", "params" : "sign=edf2cee365b12228a693e8c57e8879d40590fd36624e6371a2032059c8de94c4&type=1", "port" : 56386, "schema" : "rtmp", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" } 后台hook服务请求正常,如何调整hook使用的http参数呢

How to reproduce?

Related logs or screenshots

Expand to view detailed logs

```
#Please paste the detailed log here!
```

2024-07-04 18:28:30.810 W [MediaServer] [1-event...ler 239] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_publish 120065ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "id" : "1429-6028", "ip" : "192.20.1.0", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "originType" : 1, "originTypeStr" : "rtmp_push", "params" : "sign=edf2cee365b12228a693e8c57e8879d40590fd36624e6371a2032059c8de94c4&type=1", "port" : 56386, "schema" : "rtmp", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" }

2024-07-04 18:28:31.023 T [MediaServer] [1-event...ler 243] TcpClient.cpp:28 ~TcpClient | ~mediakit::HttpRequester-5213 2024-07-04 18:28:31.075 T [MediaServer] [1-event...ler 243] TcpServer.cpp:173 operator() | 1584-6032(192.20.1.0:59956) mediakit::RtmpSession on err: 1(end of file) 2024-07-04 18:28:31.075 W [MediaServer] [1-event...ler 243] RtmpSession.cpp:30 onError | 1584-6032(192.20.1.0:59956) RTMP播放器(defaultVhost/b61c8696df0a4f3d8a63d6141278f430/8a1c4f9ea9fa44b9824224c5b34cf357)断开:end of file,耗时(s):5 2024-07-04 18:28:31.075 T [MediaServer] [1-event...ler 243] TcpServer.h:51 operator() | 1584-6032(192.20.1.0:59956) ~mediakit::RtmpSession 2024-07-04 18:28:31.678 T [MediaServer] [1-event...ler 243] TcpServer.h:54 operator() | 1586-6032(192.20.1.0:59972) mediakit::RtmpSession 2024-07-04 18:28:31.678 I [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:444 check_C1_Digest | check rtmp complex handshark success! 2024-07-04 18:28:31.816 T [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:688 handle_chunk | MSG_SET_CHUNK:60000 2024-07-04 18:28:31.906 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5273 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:32.777 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5274 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:34.101 T [MediaServer] [1-event...ler 243] TcpServer.h:54 operator() | 1587-6036(192.20.1.0:55016) mediakit::RtmpSession 2024-07-04 18:28:34.295 T [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:762 handle_chunk | MSG_WIN_SIZE:1310720 2024-07-04 18:28:34.408 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5275 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:35.723 T [MediaServer] [1-event poller 0] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5276 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:35.725 T [MediaServer] [1-event poller 0] TcpClient.cpp:75 operator() | mediakit::HttpRequester-5214 on err: 2(wait http response complete timeout) 2024-07-04 18:28:35.725 W [MediaServer] [1-event poller 0] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_server_keepalive 120025ms,failed[network err]:2(wait http response complete timeout):{

Configuration

Please expand to view detailed configuration

```ini
#Please paste the contents of the config.ini file here!
```

Various environment information

现象描述

日志频繁mediakit::HttpSession on err: 1(end of file) 运行一段时间,大概几个小时,出现2024-07-04 18:28:28.593 T [MediaServer] [1-event...ler 238] TcpClient.cpp:75 operator() | mediakit::HttpRequester-5207 on err: 2(wait http response complete timeout) 2024-07-04 18:28:28.593 W [MediaServer] [1-event...ler 238] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_stream_changed 120055ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "regist" : false, "schema" : "hls", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" } 2024-07-04 18:28:30.810 W [MediaServer] [1-event...ler 239] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_publish 120065ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "id" : "1429-6028", "ip" : "192.20.1.0", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "originType" : 1, "originTypeStr" : "rtmp_push", "params" : "sign=edf2cee365b12228a693e8c57e8879d40590fd36624e6371a2032059c8de94c4&type=1", "port" : 56386, "schema" : "rtmp", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" } 后台hook服务请求正常,如何调整hook使用的http参数呢

如何复现?

相关日志或截图

展开查看详细日志

```
#详细日志粘在这里!
```

2024-07-04 18:28:30.810 W [MediaServer] [1-event...ler 239] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_publish 120065ms,failed[network err]:2(wait http response complete timeout):{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "id" : "1429-6028", "ip" : "192.20.1.0", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "originType" : 1, "originTypeStr" : "rtmp_push", "params" : "sign=edf2cee365b12228a693e8c57e8879d40590fd36624e6371a2032059c8de94c4&type=1", "port" : 56386, "schema" : "rtmp", "stream" : "7f8cafcb3d8e4734b00d2780e0464513", "vhost" : "defaultVhost" }

2024-07-04 18:28:31.023 T [MediaServer] [1-event...ler 243] TcpClient.cpp:28 ~TcpClient | ~mediakit::HttpRequester-5213 2024-07-04 18:28:31.075 T [MediaServer] [1-event...ler 243] TcpServer.cpp:173 operator() | 1584-6032(192.20.1.0:59956) mediakit::RtmpSession on err: 1(end of file) 2024-07-04 18:28:31.075 W [MediaServer] [1-event...ler 243] RtmpSession.cpp:30 onError | 1584-6032(192.20.1.0:59956) RTMP播放器(defaultVhost/b61c8696df0a4f3d8a63d6141278f430/8a1c4f9ea9fa44b9824224c5b34cf357)断开:end of file,耗时(s):5 2024-07-04 18:28:31.075 T [MediaServer] [1-event...ler 243] TcpServer.h:51 operator() | 1584-6032(192.20.1.0:59956) ~mediakit::RtmpSession 2024-07-04 18:28:31.678 T [MediaServer] [1-event...ler 243] TcpServer.h:54 operator() | 1586-6032(192.20.1.0:59972) mediakit::RtmpSession 2024-07-04 18:28:31.678 I [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:444 check_C1_Digest | check rtmp complex handshark success! 2024-07-04 18:28:31.816 T [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:688 handle_chunk | MSG_SET_CHUNK:60000 2024-07-04 18:28:31.906 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5273 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:32.777 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5274 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:34.101 T [MediaServer] [1-event...ler 243] TcpServer.h:54 operator() | 1587-6036(192.20.1.0:55016) mediakit::RtmpSession 2024-07-04 18:28:34.295 T [MediaServer] [1-event...ler 243] RtmpProtocol.cpp:762 handle_chunk | MSG_WIN_SIZE:1310720 2024-07-04 18:28:34.408 T [MediaServer] [1-event...ler 243] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5275 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:35.723 T [MediaServer] [1-event poller 0] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-5276 start connect service-live-stream-pro.media:8888 2024-07-04 18:28:35.725 T [MediaServer] [1-event poller 0] TcpClient.cpp:75 operator() | mediakit::HttpRequester-5214 on err: 2(wait http response complete timeout) 2024-07-04 18:28:35.725 W [MediaServer] [1-event poller 0] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_server_keepalive 120025ms,failed[network err]:2(wait http response complete timeout):{

配置

展开查看详细配置

```ini
#config.ini内容粘在这里!
```

各种环境信息

TRANS_BY_GITHUB_AI_ASSISTANT

xiongguangjie commented 3 months ago

This is probably a problem with the webhook server. It's best to catch the package to determine where the problem is. This situation usually occurs because the server does not return any data. I haven't had this problem much. You can try using 127.0.0.1 to test if you have any problems.

这个主要是webhook服务器端的问题吧,这个你最好通过抓包来确定问题在哪,出现这种情况一般是服务器一直不返回数据导致的。我基本上没有出现过这种问题,你可以适应127.0.0.1 来测试是否会有问题

TRANS_BY_GITHUB_AI_ASSISTANT

liuliu-x1 commented 3 months ago

2024-07-04 19:28:04.289 T [MediaServer] [1-event poller 34] TcpServer.h:51 operator() | 549-6043(192.20.1.0:60336) ~mediakit::RtmpSession 2024-07-04 19:28:04.290 T [MediaServer] [1-event poller 34] TcpClient.cpp:28 ~TcpClient | ~mediakit::HttpRequester-867 2024-07-04 19:28:07.343 T [MediaServer] [1-event poller 34] TcpServer.h:54 operator() | 550-6043(192.20.1.0:60350) mediakit::RtmpSession 2024-07-04 19:28:07.508 T [MediaServer] [1-event poller 34] RtmpProtocol.cpp:762 handle_chunk | MSG_WIN_SIZE:1310720 2024-07-04 19:28:07.599 T [MediaServer] [1-event poller 34] TcpClient.cpp:79 startConnect | mediakit::HttpRequester-868 start connect service-live-stream-pro.media:8888 2024-07-04 19:28:07.599 T [MediaServer] [1-event poller 34] TcpClient.cpp:89 onSockConnect | mediakit::HttpRequester-868 connect result: 0(success) 2024-07-04 19:28:07.615 W [MediaServer] [1-event poller 34] WebHook.cpp:188 operator() | hook http://service-live-stream-pro.media:8888/index/hook/on_publish 16ms,failed[auth failed]: code:-100 msg:"Stream auth failed":{ "app" : "b61c8696df0a4f3d8a63d6141278f430", "id" : "550-6043", "ip" : "192.20.1.0", "mediaServerId" : "0c1e146fcaffd4031a9a725bf135eccc", "originType" : 1, "originTypeStr" : "rtmp_push", "params" : "sign=e2ec6d907fce60a103ee14041c7f7c6e07ddfe3acef0e8fae9dd72b7c99a142c&type=1", "port" : 60350, "schema" : "rtmp", "stream" : "8a1c4f9ea9fa44b9824224c5b34cf357", "vhost" : "defaultVhost" }

2024-07-04 19:28:07.616 T [MediaServer] [1-event poller 34] TcpServer.cpp:173 operator() | 550-6043(192.20.1.0:60350) mediakit::RtmpSession on err: 5(Unauthorized:[auth failed]: code:-100 msg:"Stream auth failed") 2024-07-04 19:28:07.616 W [MediaServer] [1-event poller 34] RtmpSession.cpp:30 onError | 550-6043(192.20.1.0:60350) RTMP播放器(defaultVhost/b61c8696df0a4f3d8a63d6141278f430/8a1c4f9ea9fa44b9824224c5b34cf357)断开:Unauthorized:[auth failed]: code:-100 msg:"Stream auth failed",耗时(s):0 2024-07-04 19:28:07.616 T [MediaServer] [1-event poller 34] TcpServer.h:51 operator() | 550-6043(192.20.1.0:60350) ~mediakit::RtmpSession 2024-07-04 19:28:07.616 T [MediaServer] [1-event poller 34] TcpClient.cpp:28 ~TcpClient | ~mediakit::HttpRequester-868 如果hook把这个流推送请求拒绝时,这种日志,看着zlk的http线程池好像一直在+1,这个会连接池泄露么,这种情况如何避免

liuliu-x1 commented 3 months ago

Here is the translation:

mediakit::HttpRequester-867 mediakit::HttpRequester-868 mediakit::HttpRequester-869.,,,,,,,,,

mediakit::HttpRequester-867 mediakit::HttpRequester-868 mediakit::HttpRequester-869 .。。。。。

TRANS_BY_GITHUB_AI_ASSISTANT

xiongguangjie commented 3 months ago

This is normal, has an auto-incrementing unique identifier, used to distinguish each request. Refer to TcpClient::getIdentifier()

这个是正常的,有个自增的唯一标记,用于区分每一次的请求。参考 TcpClient::getIdentifier()

TRANS_BY_GITHUB_AI_ASSISTANT

xiongguangjie commented 3 months ago

You don't know how to star-reply.containsKey("star") is null

你star 都没点???

TRANS_BY_GITHUB_AI_ASSISTANT

liuliu-x1 commented 3 months ago

It seems like the file you're trying to load is not available, resulting in an error message.

额,点过了,mediakit::HttpSession on err: 1(end of file)这种报错是因为什么呢

TRANS_BY_GITHUB_AI_ASSISTANT

liuliu-x1 commented 3 months ago

There is also that the generated MP4 video files, also the video generation performance affects greatly, if you use them as the input source is 4k camera, generated mp4 video without any image, only a "black screen" when playback.

还有就是生成的mp4文件录像,如果使用媒体源是4k摄像头时,录像文件可以生成,但是没有画面,播放时是全黑的

TRANS_BY_GITHUB_AI_ASSISTANT

xiongguangjie commented 3 months ago

_PLACEHOLDER_1quote

This is the http request completed, the tcp connection was closed.

额,点过了,mediakit::HttpSession on err: 1(end of file)这种报错是因为什么呢

这个是http请求完成了,tcp链接就断开了

TRANS_BY_GITHUB_AI_ASSISTANT

xiongguangjie commented 3 months ago

_quote__

Is there no picture or is the picture black? You need to check if the media source is normal, and whether the audio and video encoding format is supported by ZLM.

还有就是生成的mp4文件录像,如果使用媒体源是4k摄像头时,录像文件可以生成,但是没有画面,播放时是全黑的

是没画面还是画面是黑的,这个你要看媒体源是否正常,同时音视频编码格式是否是ZLM支持的。

TRANS_BY_GITHUB_AI_ASSISTANT