unknown error: Chrome failed to start: exited abnormally
See original GitHub issueSmall note: I use ‘example.com’ in place of the actual domain throughout my logs and configs below, so you can assume I set the correct domain name throughout as far as possible.
When I installed Jibri, it successfully started, and seemed to work just fine according to the logs, and the Jibri service was running, with this log under “journalctl -u jibri”:
Jun 22 19:13:44 example launch.sh[1274]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Jun 22 19:13:44 example launch.sh[1274]: SLF4J: Defaulting to no-operation (NOP) logger implementation
Jun 22 19:13:44 example launch.sh[1274]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further d
Jun 22 19:14:31 example launch.sh[1274]: Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20c
Jun 22 19:14:31 example launch.sh[1274]: Only local connections are allowed.
Jun 22 19:14:31 example launch.sh[1274]: Please see https://chromedriver.chromium.org/security-considerations for su
Jun 22 19:14:31 example launch.sh[1274]: ChromeDriver was started successfully.
However, when I attempt to record the call on example.com, the browser will “prepare to record the call”, then fail after a while say that “Recording was stopped.” In the background, the following error appeared in /var/log/jitsi/jibri/log.0.txt:
2020-06-22 19:14:30.723 INFO: [37] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://example.com, callName=exampleroom, urlParams=[])), sessionId=epjumhbrqtumjhuq, callLoginParams=XmppCredentials(domain=recorder.example.com, username=recorder, password=ExampleRecorderAuthenticationPass)) finalize script path: /home/example/jitsi/finalize_recordings.sh and recordings directory: /tmp/recordings
2020-06-22 19:14:38.949 SEVERE: [37] org.jitsi.jibri.api.xmpp.XmppApi.run() Error starting Jibri service : org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}),platform=Linux 4.9.0-12-amd64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 6.91 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'example', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.0-12-amd64', java.version: '1.8.0_252'
Driver info: driver.version: ChromeDriver with stack:
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
............
// and there's a very huge stack trace that I don't think would be relevant
My /etc/jitsi/jibri/config.json:
{
// NOTE: this is a *SAMPLE* config file, it will need to be configured with
// values from your environment
// Where recording files should be temporarily stored
"recording_directory":"/tmp/recordings",
// The path to the script which will be run on completed recordings
"finalize_recording_script_path": "/home/example/jitsi/finalize_recordings.sh",
"xmpp_environments": [
{
// A friendly name for this environment which can be used
// for logging, stats, etc.
"name": "Example",
// The hosts of the XMPP servers to connect to as part of
// this environment
"xmpp_server_hosts": [
"IP ADDRESS OF EXAMPLE MACHINE IS HERE - ACTUALLY SET IN FILE WITHIN QUOTES"
],
// The xmpp domain we'll connect to on the XMPP server
"xmpp_domain": "example.com",
// Jibri will login to the xmpp server as a privileged user
"control_login": {
// The domain to use for logging in
"domain": "auth.example.com",
// The credentials for logging in
"username": "jibri",
"password": "ExampleJibriAuthenticationPass"
},
// Using the control_login information above, Jibri will join
// a control muc as a means of announcing its availability
// to provide services for a given environment
"control_muc": {
"domain": "internal.auth.example.com",
"room_name": "JibriBrewery",
"nickname": "jibri-nickname"
},
// All participants in a call join a muc so they can exchange
// information. Jibri can be instructed to join a special muc
// with credentials to give it special abilities (e.g. not being
// displayed to other users like a normal participant)
"call_login": {
"domain": "recorder.example.com",
"username": "recorder",
"password": "ExampleRecorderAuthenticationPass"
},
// When jibri gets a request to start a service for a room, the room
// jid will look like:
// roomName@optional.prefixes.subdomain.xmpp_domain
// We'll build the url for the call by transforming that into:
// https://xmpp_domain/subdomain/roomName
// So if there are any prefixes in the jid (like jitsi meet, which
// has its participants join a muc at conference.xmpp_domain) then
// list that prefix here so it can be stripped out to generate
// the call url correctly
"room_jid_domain_string_to_strip_from_start": "conference.",
// The amount of time, in minutes, a service is allowed to continue.
// Once a service has been running for this long, it will be
// stopped (cleanly). A value of 0 means an indefinite amount
// of time is allowed
"usage_timeout": "0"
}
]
}
I’ve also ensured (as per the instructions on the main Jibri GitHub page), that the configurations for Prosody, Jicofo, and Jitsi Meet were updated accordingly. The only deviation from what was mentioned on that page is the existence of the following line (it was already in there) in /etc/jitsi/jicofo/sip-communicator.properties:
org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.example.com
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.example.com
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
I’ve run the prosodyctl commands to create accounts with the necessary usernames and passwords for the auth.example.com and recorder.example.com domains.
I also made sure to restart all of the above services after installing Jibri andsetting up its configuration. I then restarted Jibri. I did the restarts by using systemctl.
I’ve been debugging for a while, and I’m at a loss to know where to go from here. What should I be checking to make this work?
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (1 by maintainers)
Top GitHub Comments
On
DevToolsActivePort file doesn't exist
use"--no-sandbox"
in the “chrome” section of your jibri.conf. OnOnly local connections are allowed
insert option-Dwebdriver.chrome.allowed-ips="<IP of your Jitsi server>"
into the java execution line in/opt/jitsi/jibri/launch.sh
. These two things helped me to get Jibri running again.@SSpecken Thanks, your hint solved my problem
On DevToolsActivePort file doesn't exist use "--no-sandbox" in the "chrome" section of your jibri.conf.