Problems in v2.20.2 in my server when I run /openvidu-health-checker

Hello
When I run the sudo docker this command:

run --rm --shm-size 2g -e OV_URL=XXXXXXX -e OV_SECRET=XXXXXXXXXXXXXXXXX openvidu/openvidu-health-checker

That is the output:

lth-checker
Waiting xvfb…
Running tests… Please wait…
EEE

ERROR: test_chrome_no_relay (main.InfraSmokeTests)

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 699, in urlopen
httplib_response = self._make_request(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 382, in _make_request
self._validate_conn(conn)
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 1010, in validate_conn
conn.connect()
File “/usr/local/lib/python3.8/dist-packages/urllib3/connection.py”, line 416, in connect
self.sock = ssl_wrap_socket(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 449, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File “/usr/lib/python3.8/ssl.py”, line 500, in wrap_socket
return self.sslsocket_class._create(
File “/usr/lib/python3.8/ssl.py”, line 1040, in _create
self.do_handshake()
File “/usr/lib/python3.8/ssl.py”, line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 439, in send
resp = conn.urlopen(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 755, in urlopen
retries = retries.increment(
File “/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py”, line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=‘xxxxxx’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “openvidu_health_check.py”, line 25, in setUp
self.is_openvidu_ce = self.check_is_openvidu_ce()
File “openvidu_health_check.py”, line 141, in check_is_openvidu_ce
response = requests.get(self.openvidu_url + “/dashboard”)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 75, in get
return request(‘get’, url, params=params, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 542, in request
resp = self.send(prep, **send_kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 655, in send
r = adapter.send(request, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=‘xxxxxx’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))

======================================================================
ERROR: test_firefox_force_relay (main.InfraSmokeTests)

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 699, in urlopen
httplib_response = self._make_request(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 382, in _make_request
self._validate_conn(conn)
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 1010, in validate_conn
conn.connect()
File “/usr/local/lib/python3.8/dist-packages/urllib3/connection.py”, line 416, in connect
self.sock = ssl_wrap_socket(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 449, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File “/usr/lib/python3.8/ssl.py”, line 500, in wrap_socket
return self.sslsocket_class._create(
File “/usr/lib/python3.8/ssl.py”, line 1040, in _create
self.do_handshake()
File “/usr/lib/python3.8/ssl.py”, line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 439, in send
resp = conn.urlopen(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 755, in urlopen
retries = retries.increment(
File “/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py”, line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “openvidu_health_check.py”, line 25, in setUp
self.is_openvidu_ce = self.check_is_openvidu_ce()
File “openvidu_health_check.py”, line 141, in check_is_openvidu_ce
response = requests.get(self.openvidu_url + “/dashboard”)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 75, in get
return request(‘get’, url, params=params, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 542, in request
resp = self.send(prep, **send_kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 655, in send
r = adapter.send(request, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=’’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))

======================================================================
ERROR: test_firefox_no_relay (main.InfraSmokeTests)

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 699, in urlopen
httplib_response = self._make_request(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 382, in _make_request
self._validate_conn(conn)
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 1010, in validate_conn
conn.connect()
File “/usr/local/lib/python3.8/dist-packages/urllib3/connection.py”, line 416, in connect
self.sock = ssl_wrap_socket(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 449, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File “/usr/lib/python3.8/ssl.py”, line 500, in wrap_socket
return self.sslsocket_class._create(
File “/usr/lib/python3.8/ssl.py”, line 1040, in _create
self.do_handshake()
File “/usr/lib/python3.8/ssl.py”, line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 439, in send
resp = conn.urlopen(
File “/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py”, line 755, in urlopen
retries = retries.increment(
File “/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py”, line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “openvidu_health_check.py”, line 25, in setUp
self.is_openvidu_ce = self.check_is_openvidu_ce()
File “openvidu_health_check.py”, line 141, in check_is_openvidu_ce
response = requests.get(self.openvidu_url + “/dashboard”)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 75, in get
return request(‘get’, url, params=params, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 542, in request
resp = self.send(prep, **send_kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/sessions.py”, line 655, in send
r = adapter.send(request, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/requests/adapters.py”, line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=’’, port=443): Max retries exceeded with url: /dashboard (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)’)))


Ran 3 tests in 0.091s

FAILED (errors=3)
Executing test… Please wait…
Executing test… Please wait…
Executing test… Please wait…

Please can you help me to know the cause of this error?

thx

I am seeing lots of SSLCertVerificationErrors. Make sure your endpoint has a valid domain and SSL certificate.

Aah, yes, the healthchecker does not allow selfsigned certificates. I think I will add it. You need to use a valid certificate.

Now I made changes and I am using the Let’s Encrypt certificate. After these changes it no longer showed the certificate errors when running the healthchecker, now it shows me this other error:

====== WebDriver manager ======
Current google-chrome version is 95.0.4638
Get LATEST chromedriver version for 95.0.4638 google-chrome
There is no [linux64] chromedriver for browser in cache
Trying to download new driver from https://chromedriver.storage.googleapis.com/95.0.4638.69/chromedriver_linux64.zip
Driver has been saved in cache [/root/.wdm/drivers/chromedriver/linux64/95.0.4638.69]
.

====== WebDriver manager ======
Current firefox version is 94.0
Get LATEST geckodriver version for 94.0 firefox
Getting latest mozilla release info for v0.30.0
Trying to download new driver from https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz
Driver has been saved in cache [/root/.wdm/drivers/geckodriver/linux64/v0.30.0]
E

====== WebDriver manager ======
Current firefox version is 94.0
Get LATEST geckodriver version for 94.0 firefox
Driver [/root/.wdm/drivers/geckodriver/linux64/v0.30.0/geckodriver] found in cache
.Executing test… Please wait…

======================================================================
|
|
| Testing OpenVidu CE with chrome and force relay: False
|
|

Video detected.

Sucess with chrome and Force Turn: False


Executing test… Please wait…

======================================================================
|
|
| Testing OpenVidu CE with firefox and force relay: True
|
|

Running firefox with Turn: True
Waiting for candidates to be checked…
±----------±----------±---------±----------------±-----------------±-------------±---------±------------±----------------+
| ICE State | Nominated | Selected | Local Candidate | Remote Candidate | Component ID | Priority | Bytes sent: | Bytes received: |
±----------±----------±---------±----------------±-----------------±-------------±---------±------------±----------------+
±----------±----------±---------±----------------±-----------------±-------------±---------±------------±----------------+
Executing test… Please wait…

======================================================================
|
|
| Testing OpenVidu CE with firefox and force relay: False
|
|

Running firefox with Turn: False
Video detected.

Waiting for candidates to be checked…
±----------±----------±---------±-----------------------------------------±------------------------------±-------------±--------------------±------------±----------------+
| ICE State | Nominated | Selected | Local Candidate | Remote Candidate | Component ID | Priority | Bytes sent: | Bytes received: |
±----------±----------±---------±-----------------------------------------±------------------------------±-------------±--------------------±------------±----------------+
| succeeded | true | true | 172.17.0.2:45151/udp(host) [non-proxied] | 172.31.18.202:56943/udp(host) | 1 | 8655919583267258000 | 883980 | 876061 |
| succeeded | true | true | 172.17.0.2:45151/udp(host) [non-proxied] | 172.31.18.202:56943/udp(host) | 1 | 8655919583267258000 | 883980 | 876061 |
| succeeded | true | true | 172.17.0.2:45151/udp(host) [non-proxied] | 172.31.18.202:56943/udp(host) | 1 | 8655919583267258000 | 883980 | 876061 |
±----------±----------±---------±-----------------------------------------±------------------------------±-------------±--------------------±------------±----------------+
Sucess with firefox and Force Turn: False


======================================================================
ERROR: test_firefox_force_relay (main.InfraSmokeTests)

Traceback (most recent call last):
File “openvidu_health_check.py”, line 37, in test_firefox_force_relay
self.inspector_check(browser=“firefox”, turn=True)
File “openvidu_health_check.py”, line 96, in inspector_check
raise Exception(‘Error. No video detected’)
Exception: Error. No video detected


Ran 3 tests in 62.503s

FAILED (errors=1)

Is the problem related to port problems?

I had an application that used openvidu-browser and API 2.16.0 and 2.16.0 on the server, after updating to version 2.20.0 on the server the application continues to work with version 2.16 and 2.17 of openvidu-browser, but with version 2.20 of the js it doesn’t work for me. With js version 2.20 the editor works fine, but the subscriber cannot connect to the video, it keeps loading indefinitely, in the browser console it shows me the following warning:

OpenViduLogger.ts:255 StreamManager of Stream XXXXXXX (Subscriber) did not trigger “streamPlaying” event in 4000 ms

This openvidu health check should be executed outside the deployment. From what I can see in your logs you’re executing that in the same machine. But anyways I think this error is due to your Coturn not running correctly and not configured correctly in OpenVidu.

  1. What ports do you have opened? Do you have port 3478 and 40000-65535 publicly accesible?
  2. Can you show me the output of:
docker logs openvidu_openvidu-server_1 | grep 'COTURN IP'
  1. Is the IP of the previous command your public IP?

Context: I think the Public IP is not being discovered correctly, and a wrong Public IP is reaching the browser.

Do you have external DNS requests enabled? What this command output to you?:

dig @ns1.google.com o-o.myaddr.l.google.com TXT -4 +short | tr -d \"

If this command timeouts with an error, this would be the cause of your OpenVidu instance not autodiscovering its public IP.

In that case you can:

  • Enable outgoing requests through port 52 to external DNS services.
    or

  • Add the public IP by hand:
    1 ) Replace /opt/openvidu/docker-compose.yml from this in the coturn section:

    --external-ip=$$(detect-external-ip)
    

    to this:

     --external-ip=<YOUR_PUBLIC_IP>
    

2 ) Add this environment variable in /opt/openvidu/.env

COTURN_IP=<YOUR_PUBLIC_IP>

Hello thanks for your answers

When I run this command: docker logs openvidu_openvidu-server_1 | grep ‘COTURN IP’
This returns the correct public IP of my server.
When I run this other command: dig @ns1.google.com o-o.myaddr.l.google.com TXT -4 +short | tr -d "
This returns the correct public IP of my server too.

The problem is the following after updating the server to version 2.20, my application works fine using openvidu-browser 2.17, but when I change this js to version 2.20, the video editor works correctly, but the viewer never watches the video in the editor and in the viewer’s browser console it always shows these warnings:

OpenViduLogger.ts:255 StreamManager of Stream str_CAM_HmKi_con_Zqzezrjzp0 (Subscriber) did not trigger “streamPlaying” event in 4000 ms
OpenViduLogger.warn @ OpenViduLogger.ts:255
(anonymous) @ StreamManager.ts:582
chatroom.php?db_id=3980701:617 ExceptionEvent {hasBeenPrevented: false, cancelable: false, target: Session, type: ‘exception’, name: ‘NO_STREAM_PLAYING_EVENT’, …}

The functionality of my site is as follows an editor that many viewers can connect to. Only one video is streamed per session. Viewers never play their own videos, they can only watch the publisher’s video.

Thanks and have a good Christmas.

Hello @Michel_Rodriguez , have a good Christmas too :slight_smile:

What I would recommend in such cases where you need to update from version to version is, instead of going from 2.17.0 to 2.20.0 directly, go first to version 2.18.0, then 2.19.0, and so on…
In this way you can check in release notes for each version what breaking changes could be between versions and do all necessary changes if you are affected by those breaking changes.

The other possiblity is to guess what is happening in your update from 2.17.0 to 2.20.0, but it will be harder:

  1. To check if it is a deployment issue, you can test your app pointing to our demos deployment, which serves version 2.20.0 right now:

    OPENVIDU_URL: https://demos.openvidu.io
    OPENVIDU_SECRET: MY_SECRET

  2. Are you using OpenVidu directly from the browsers? Or do you have a backend logic?
    If you are using a Backend, make sure that the client is updated also, or if you are using Rest API requests, check that there are no breaking changes affecting you. Check release notes

  3. Do you have warnings logs regarding deprecated calls in your OpenVidu server?