Closed dragon8609 closed 4 years ago
The reason for using gdb was reminded by someone in the group. If gdb is not used, there is no problem. Specifically, gdb caught the sigpipe signal and stopped the process.
TRANS_BY_GPT3
When using gdb, this SIGPIPE signal will be triggered, and it needs to be filtered manually.
Program received signal SIGPIPE, Broken pipe.
0x00007ffff70df3e7 in writev () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.17-307.el7.1.x86_64 libgcc-4.8.5-39.el7.x86_64 libstdc++-4.8.5-39.el7.x86_64
(gdb) bt
#0 0x00007ffff70df3e7 in writev () from /lib64/libc.so.6
TRANS_BY_GPT3
Description'
Please ensure that the markdown structure is maintained.
3.0.143
Program received signal SIGPIPE, Broken pipe. 0x00007ffff70df3e7 in writev () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install glibc-2.17-307.el7.1.x86_64 libgcc-4.8.5-39.el7.x86_64 libstdc++-4.8.5-39.el7.x86_64 (gdb) bt
0 0x00007ffff70df3e7 in writev () from /lib64/libc.so.6
1 0x00000000005a4723 in st_writev (fd=0xa519d0, iov=0xa51e90, iov_size=28, timeout=30000000) at io.c:582
2 0x00000000004aa760 in SrsStSocket::writev (this=0xa018f0, iov=0xa51e90, iov_size=28, nwrite=0x0)
3 0x00000000004818fd in srs_write_large_iovs (skt=0xa018f0, iovs=0xa51e90, size=28, pnwrite=0x0)
4 0x000000000045f117 in SrsProtocol::do_iovs_send (this=0xa51d50, iovs=0xa51e90, size=28) at src/protocol/srs_rtmp_stack.cpp:599
5 0x000000000045f0df in SrsProtocol::do_send_messages (this=0xa51d50, msgs=0xa1f550, nb_msgs=14)
6 0x000000000046080a in SrsProtocol::send_and_free_messages (this=0xa51d50, msgs=0xa1f550, nb_msgs=14, stream_id=1)
7 0x0000000000466c6c in SrsRtmpServer::send_and_free_messages (this=0xa51d20, msgs=0xa1f550, nb_msgs=14, stream_id=1)
8 0x00000000004c996e in SrsRtmpConn::do_playing (this=0xa51a60, source=0xa01620, consumer=0xa5b8c0, rtrd=0x7ffff7ee4660)
9 0x00000000004c8a57 in SrsRtmpConn::playing (this=0xa51a60, source=0xa01620) at src/app/srs_app_rtmp_conn.cpp:664
10 0x00000000004c75e4 in SrsRtmpConn::stream_service_cycle (this=0xa51a60) at src/app/srs_app_rtmp_conn.cpp:524
11 0x00000000004c6621 in SrsRtmpConn::service_cycle (this=0xa51a60) at src/app/srs_app_rtmp_conn.cpp:388
12 0x00000000004c557c in SrsRtmpConn::do_cycle (this=0xa51a60) at src/app/srs_app_rtmp_conn.cpp:209
13 0x00000000004c3916 in SrsConnection::cycle (this=0xa51ad8) at src/app/srs_app_conn.cpp:171
14 0x00000000004f8b24 in SrsSTCoroutine::cycle (this=0xa51ce0) at src/app/srs_app_st.cpp:198
15 0x00000000004f8b99 in SrsSTCoroutine::pfn (arg=0xa51ce0) at src/app/srs_app_st.cpp:213
16 0x00000000005a22f0 in _st_thread_main () at sched.c:337
17 0x00000000005a2a60 in st_thread_create (start=0xffffffffffffffff, arg=0xa51ce0, joinable=0, stk_size=5905134) at sched.c:616
18 0x00000000004f87e2 in SrsSTCoroutine::start (this=<error reading variable: Cannot access memory at address 0xffffffd9>)
Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb)
The default console.conf.
no-daemon and write log to console config for srs.
@see full.conf for detail config.
listen 1935; max_connections 1000; daemon off; srs_log_tank console; http_api { enabled on; listen 1985; } http_server { enabled on; listen 8080; } vhost defaultVhost { }