Crash 1-3 seconds after second participant joins a room

See original GitHub issue

Hi, after setting up a fresh checkout as of today, and minimal adjustments, I get stable operation until a second participant joins a room. It shows proper video and audio for 1-3 seconds for both participants, and then it crashes. It’s a pity, since it is seems to almost working nicely. Coincidentally, this project and behavior is starting to get famous.

The default setup defines JVB_ENABLE_APIS as none. Given this discussion, it ought to be something different, while a comment in env.example states:

#JVB_ENABLE_APIS=rest,colibri

which differs from the discussion, that states:

JVB_OPTS="--apis=xmpp,rest"

I’ve tried different combinations of xmpp, rest, colibri and confirmed, that the --api parameter of the process in the docker container dockerjitsimeet_jvb_1 matches.

Unfortunately, it’s not enough. The log is full of:

1993:jvb_1      | JVB 2020-03-25 16:40:37.191 SEVERE: [30] org.jitsi.videobridge.health.Health.log() Health check failed in 0ms:
2003:jvb_1      | JVB 2020-03-25 16:40:41.954 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275
2247:jvb_1      | JVB 2020-03-25 16:40:46.955 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275
2275:jvb_1      | JVB 2020-03-25 16:40:47.192 SEVERE: [30] org.jitsi.videobridge.health.Health.log() Health check failed in 1ms:
2347:jvb_1      | JVB 2020-03-25 16:40:51.956 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275
2372:jvb_1      | JVB 2020-03-25 16:40:56.957 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275
2396:jvb_1      | JVB 2020-03-25 16:40:57.192 SEVERE: [30] org.jitsi.videobridge.health.Health.log() Health check failed in 0ms:
2406:jvb_1      | JVB 2020-03-25 16:41:01.958 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275
2455:jvb_1      | JVB 2020-03-25 16:41:06.959 SEVERE: [36] org.jitsi.meet.ComponentMain.call().299 java.net.ConnectException: Connection refused (Connection refused), host:localhost, port:5275

which looks like being the culprit of this issue, but I haven’t even found a sign, what service the ominous port 5275 should be.

The docker layout is this:

          Name              Command   State                        Ports                      
----------------------------------------------------------------------------------------------
dockerjitsimeet_jicofo_1    /init     Up                                                      
dockerjitsimeet_jvb_1       /init     Up      0.0.0.0:10000->10000/udp, 0.0.0.0:4443->4443/tcp
dockerjitsimeet_prosody_1   /init     Up      5222/tcp, 5269/tcp, 5280/tcp, 5347/tcp          
dockerjitsimeet_web_1       /init     Up      0.0.0.0:8443->443/tcp, 0.0.0.0:8008->80/tcp     

The http/https ports are a little strange, but this is behind a nginx reverse proxy, that handles ssl already. Full log is available here. The log shows ICE/STUN issues as well, but I’ve not touched those values from the defaults:

CONFIG=~/.jitsi-meet-cfg
HTTP_PORT=8008
HTTPS_PORT=8443
TZ=Europe/Berlin
PUBLIC_URL=https://meet.example.org
DOCKER_HOST_ADDRESS=192.168.123.10
XMPP_DOMAIN=meet.jitsi
XMPP_SERVER=xmpp.meet.jitsi
XMPP_BOSH_URL_BASE=http://xmpp.meet.jitsi:5280
XMPP_AUTH_DOMAIN=auth.meet.jitsi
XMPP_MUC_DOMAIN=muc.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
XMPP_GUEST_DOMAIN=guest.meet.jitsi
XMPP_MODULES=
XMPP_MUC_MODULES=
XMPP_INTERNAL_MUC_MODULES=
JVB_BREWERY_MUC=jvbbrewery
JVB_AUTH_USER=jvb
JVB_AUTH_PASSWORD=passw0rd
JVB_STUN_SERVERS=stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302
JVB_PORT=10000
JVB_TCP_HARVESTER_DISABLED=true
JVB_TCP_PORT=4443
JVB_ENABLE_APIS=xmpp,rest
JICOFO_COMPONENT_SECRET=s3cr37
JICOFO_AUTH_USER=focus
JICOFO_AUTH_PASSWORD=passw0rd
JIGASI_XMPP_USER=jigasi
JIGASI_XMPP_PASSWORD=passw0rd
JIGASI_BREWERY_MUC=jigasibrewery
JIGASI_PORT_MIN=20000
JIGASI_PORT_MAX=20050
XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
JIBRI_RECORDER_USER=recorder
JIBRI_RECORDER_PASSWORD=passw0rd
JIBRI_RECORDING_DIR=/config/recordings
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
JIBRI_XMPP_USER=jibri
JIBRI_XMPP_PASSWORD=passw0rd
JIBRI_BREWERY_MUC=jibribrewery
JIBRI_PENDING_TIMEOUT=90
JIBRI_STRIP_DOMAIN_JID=muc
JIBRI_LOGS_DIR=/config/logs
DISABLE_HTTPS=1

For completeness, the nginx setup (that handles other services with separate server_names well already):

server {
    if ($host = meet.example.org) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 0.0.0.0:80;
    listen [::]:80;
    server_name meet.example.org;
    server_tokens off; ## Don't show the nginx version number, a security best practice

    ## Individual nginx logs for this vhost
    access_log  /var/log/nginx/meet_access.log;
    error_log   /var/log/nginx/meet_error.log;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name meet.example.org;
    server_tokens off; ## Don't show the nginx version number, a security best practice
    #ssl_session_tickets off;
    
    ## Individual nginx logs for this vhost
    access_log  /var/log/nginx/meet_access.log;
    error_log   /var/log/nginx/meet_error.log;

    location / {
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8008;
    }

    ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # managed by Certbot
}

and the firewall has opened the relevant ports:

external (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: eth1
  services: http https
  ports: 4443/tcp 10000/udp
  masquerade: yes

Any insights are much appreciated.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:30 (23 by maintainers)

github_iconTop GitHub Comments

4reactions
albecommented, Mar 26, 2020

Having the exact same issue: As soon as a second person connects, jitsi crashes with waiting for reconnection attempt. Sometimes you can see above mentioned 1-3 seconds of video, but more often it is immediately gone.

JS console output is here and I think the important line is VM227 app.bundle.min.js:117 2020-03-26T10:27:03.928Z [conference.js] <z._onConferenceFailed>: CONFERENCE FAILED: conference.videobridgeNotAvailable

https://gist.github.com/albe/c7d71b949399308b48c6d25c14cd9925

Here is the docker setup:

CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS              PORTS                                                               NAMES
5629c3f3d505        jitsi/jicofo                                    "/init"                  9 minutes ago       Up 9 minutes                                                                            jitsi_meet_jicofo_1
a7c250dd4c6f        jitsi/jvb                                       "/init"                  9 minutes ago       Up 9 minutes        0.0.0.0:4443->4443/tcp, 0.0.0.0:14443->14443/udp                    jitsi_meet_jvb_1
e8e08d473dbd        jitsi/prosody                                   "/init"                  9 minutes ago       Up 9 minutes        5222/tcp, 5269/tcp, 5280/tcp, 5347/tcp                              jitsi_meet_prosody_1
7cc1928fcc8f        jitsi/web                                       "/init"                  9 minutes ago       Up 9 minutes        0.0.0.0:8442->80/tcp, 0.0.0.0:8443->443/tcp                         jitsi_meet_web_1
e

Am currently playing with the port of videobridge (hence udp 14443 instead of 10000) after I discovered service ndmp on udp port 10000. So far no luck.

DOCKER_HOST_ADDRESS is set in .env and I also added

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=...
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=...

in <jitsi-config>/jvb/sip-communicator.properties

Edit: Have now also disabled the udp (by setting JVB_TCP_HARVESTER_DISABLED=false) and completely reset the config. Also tried changing the JVB_ENABLE_APIS just to make sure. Nothing has had any effect up to now and I’m running out of ideas 😦

1reaction
saghulcommented, Mar 26, 2020

Please paste your JS console logs when this happens.

This is not related to JVB_ENABLE_APIS.

Let’s start from the outermost layer, what the browser gets as an error, we’ll likely see the cause there and then can adjust.

Read more comments on GitHub >

github_iconTop Results From Across the Web

[How to] Why do I see "Unfortunately something went wrong ...
The room will “crash” for the participant after about 10 to 20 seconds if the they fail to establish a session with the...
Read more >
Zoom crash after 10 seconds - can't even log in
Zoom used to work on one of my older laptops but recently as of last month keeps crashing. It launches into the login/join...
Read more >
Psych Chapters 6-7 Test Prep Flashcards | Quizlet
After a surgery to prevent epileptic seizures, H.M. could not remember seeing his doctor mere seconds after he left the room. He could...
Read more >
Press Releases - SEC.gov
Official announcements highlighting recent actions taken by the SEC and other newsworthy information. To view Press Releases prior to 2012, view the Press ......
Read more >
Changelog: Twilio Video iOS
Fixed a crash on the iOS 13 simulator when rendering received H.264 video, ... Connected to a Peer-to-Peer Room when the first Firefox...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found