Skip to content

srs-bench pressure test REUSE PORT multiple processes report "publish timeout, (Interrupted system call)" error #1539

@limjoe

Description

@limjoe

Description'

Please ensure that you maintain the markdown structure.

srs-bench performs concurrent stress testing on the local machine with 1500 streams. The video information is 1007kbps.1920x1080.flv. When 2 processes are started at port 1935, occasional errors of push stream timeout occur.

The single-core CPUs are not fully utilized, running at around 50% to 70%.

Environment

1. SRS Version: 3.0 alpha5(3.0.75)

  1. Operating System: Ubuntu 16.04
  2. Server Type: This issue occurs on both local server and Kingsoft Cloud server.
  3. SRS Log:
[2019-12-24 20:02:00.405][Trace][3107][2615] cleanup when unpublish
[2019-12-24 20:02:00.406][Error][3107][2615][4] serve error code=1011 : service cycle : rtmp: stream service : rtmp: publish timeout 5000ms, nb_msgs=1332
thread [2615]: do_cycle() [src/app/srs_app_rtmp_conn.cpp:210][errno=4]
thread [2615]: service_cycle() [src/app/srs_app_rtmp_conn.cpp:400][errno=4]
thread [2615]: do_publishing() [src/app/srs_app_rtmp_conn.cpp:896][errno=62](Interrupted system call)
[2019-12-24 20:02:00.406][Trace][3107][2583] cleanup when unpublish
[2019-12-24 20:02:00.406][Error][3107][2583][4] serve error code=1011 : service cycle : rtmp: stream service : rtmp: publish timeout 5000ms, nb_msgs=1332
thread [2583]: do_cycle() [src/app/srs_app_rtmp_conn.cpp:210][errno=4]
thread [2583]: service_cycle() [src/app/srs_app_rtmp_conn.cpp:400][errno=4]
thread [2583]: do_publishing() [src/app/srs_app_rtmp_conn.cpp:896][errno=62](Interrupted system call)
[2019-12-24 20:02:00.406][Trace][3107][1995] cleanup when unpublish
[2019-12-24 20:02:00.406][Error][3107][1995][4] serve error code=1011 : service cycle : rtmp: stream service : rtmp: publish timeout 5000ms, nb_msgs=6404
thread [1995]: do_cycle() [src/app/srs_app_rtmp_conn.cpp:210][errno=4]
thread [1995]: service_cycle() [src/app/srs_app_rtmp_conn.cpp:400][errno=4]
thread [1995]: do_publishing() [src/app/srs_app_rtmp_conn.cpp:896][errno=62](Interrupted system call)

Reproduction (Replay)

Steps to reproduce the bug:

  1. Use srs-benc to concurrently push 1500 streams.
  2. Set the video bitrate to around 1000KB.

1. Configuration of origin_server_1:

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
pid                 ./objs/origin.cluster.serverA.pid;

http_api {
    enabled         on;
    listen          1985;
    crossdomain     on;
}

vhost __defaultVhost__ {
   min_latency     on;
    tcp_nodelay     on;

    publish {
        mr off;
    }

    play {
        gop_cache       off;
        queue_length    10;
        mw_latency      100;
    }

    hls {
        enabled         on;
        hls_fragment    6;
        hls_window      15;
        hls_path        ./objs/nginx/html;
        hls_m3u8_file   [app]/[stream].m3u8;
        hls_ts_file     [app]/[stream]/[timestamp].ts;
        hls_cleanup     on;
        hls_nb_notify   64;
        hls_wait_keyframe       on;

    }
}

1. Configuration of origin_server_2:

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
pid                 ./objs/origin.cluster.serverB.pid;

http_api {
    enabled         on;
    listen          1986;
    crossdomain     on;
}

vhost __defaultVhost__ {
   min_latency     on;
    tcp_nodelay     on;

    publish {
        mr off;
    }

    play {
        gop_cache       off;
        queue_length    10;
        mw_latency      100;
    }

    hls {
        enabled         on;
        hls_fragment    6;
        hls_window      15;
        hls_path        ./objs/nginx/html;
        hls_m3u8_file   [app]/[stream].m3u8;
        hls_ts_file     [app]/[stream]/[timestamp].ts;
        hls_cleanup     on;
        hls_nb_notify   64;
        hls_wait_keyframe       on;

    }
}

Expected Behavior (Expect)

Describe what you expect to happen.
Normal streaming, able to complete CPU processing.

Other Information

In addition, version 2.0 also has this issue on local machines.

TRANS_BY_GPT3

Metadata

Metadata

Assignees

Labels

TransByAITranslated by AI/GPT.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions