Jibri recorder not working

hi jitsi team and advenced :

can anyone help me to resolve the problem as below ,
i install jibri recorder server,it seem’s everything work,
but when i start meet room , the recorder function will stop it,
i saw the log.0.txt, start recorder function had error, message as below

2020-04-11 00:27:32.927 SEVERE: [43] 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=81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}),platform=Linux 4.15.0-96-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 391 milliseconds
Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’
System info: host: ‘jibri’, ip: ‘127.0.1.1’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘4.15.0-96-generic’, java.version: ‘1.8.0_242’

and the jitsi server jvb.log as below

2020-04-11 01:17:16.241 SEVERE: [26] ComponentMain.lambda$getConnectCallable$0#293: host-unknown, host:localhost, port:5347
org.xmpp.component.ComponentException: host-unknown
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:243)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:242)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:222)
at org.jitsi.meet.ComponentMain.lambda$getConnectCallable$0(ComponentMain.java:285)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

I can’t figure out how to resolve the problem, so is anyone can help me let it work。

unknown error: DevToolsActivePort file doesn’t exist is something other users have encountered. If you search the forum you should find how others fixed this.

1 Like

log.0.txt.txt (19.7 KB) ffmpeg.0.txt.txt (924 Bytes) Dear bbaldino :
I resolve the problem of unknown error: DevToolsActivePort file doesn’t exist,
but now , i have another quest to stuck , it seems jibri-xorg service not work,
and the other question is ffmpeg have error,the conference room display prepare recording ,but the jibri log was show ffmpeg error ,colud you help me out the problem.

the way to resolve DevToolsActivePort file doesn’t exist problem
can see my step below
step 1

git clone https://github.com/jitsi/jibri.git ----clone the github resource for JibriSelenium

step 2

cd jibri -----change to the jibri directory

step 3

Location in :
jibri/src/main/kotlin/org/jitsi/jibri/

vim src/main/kotlin/org/jitsi/jibri/JibriManager.kt —edit the file JibriSelenium.kt

and add 3 parameter in columns 145,146,147 -----parameter as below

“–headless”, -------columns 145
“–no-sandbox”, -------columns 146
“–disable-dev-shm-usage” -------columns 147

But attention before in type those columns need use space not tab

step 4

mvn clean verify package -----compile to verify package(It will take a while)

step 5

cp target/jibri-8.0-SNAPSHOT-jar-with-dependencies.jar /opt/jitsi/jibri/jibri.jar ------copy the jar file to jibri

step 6

sudo service jibri restart ----restart the jibri service

Done

2 Likes

Hi

Can you please share the jar file? Will that work for me if I replace the current jar file?

hey masteryoda :
as below is my after compile made the file
/home/user/jibri/target/jibri-8.0-SNAPSHOT-jar-with-dependencies.jar
jibri-8.0-SNAPSHOT-jar-with-dependencies.jar:
org/jitsi/jibri/selenium/JibriSelenium$startRecurringCallStatusChecks$1.class
org/jitsi/jibri/selenium/JibriSelenium$startRecurringCallStatusChecks$1$event$1.class
org/jitsi/jibri/selenium/JibriSeleniumOptions.class
org/jitsi/jibri/selenium/util/BrowserFileHandler.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$2.class
org/jitsi/jibri/selenium/FailedToJoinCall.class
org/jitsi/jibri/selenium/NoMediaReceived.class
org/jitsi/jibri/selenium/JibriSeleniumKt.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$3$1.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1.class
org/jitsi/jibri/selenium/JibriSelenium.class
org/jitsi/jibri/selenium/JibriSelenium$1.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$2$3.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$1.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$4$1.class
org/jitsi/jibri/selenium/SeleniumStateMachine.class
org/jitsi/jibri/selenium/SeleniumEvent$ChromeHung.class
org/jitsi/jibri/selenium/SideEffect.class
org/jitsi/jibri/selenium/SeleniumEvent$FailedToJoinCall.class
org/jitsi/jibri/selenium/SeleniumEvent$NoMediaReceived.class
org/jitsi/jibri/selenium/SeleniumEvent.class
org/jitsi/jibri/selenium/ChromeHung.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$5.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$4.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$1$1.class
org/jitsi/jibri/selenium/JibriSelenium$startRecurringCallStatusChecks$transitionState$1.class
org/jitsi/jibri/selenium/SeleniumEvent$CallJoined.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$3.class
org/jitsi/jibri/selenium/SeleniumStateMachine$stateMachine$1$2$2.class
org/jitsi/jibri/selenium/SeleniumEvent$CallEmpty.class
org/jitsi/jibri/MainKt.class
org/jitsi/jibri/MainKt$main$shutdownHandler$1.class
META-INF/jibri.kotlin_module
META-INF/maven/org.jitsi/jibri/pom.xml
META-INF/maven/org.jitsi/jibri/pom.properties
i don’t know does it that content all

looks like it. can you please share the jar file?

masteryoda :

as the Attachment was my compile filejibri-8.0-SNAPSHOT-jar-with-dependencies.jar

the way to resolve DevToolsActivePort file doesn’t exist problem
can see my step below
step 1

git clone https://github.com/jitsi/jibri.git ----clone the github resource for JibriSelenium

step 2

cd jibri -----change to the jibri directory

step 3

Location in :
jibri/src/main/kotlin/org/jitsi/jibri/

vim src/main/kotlin/org/jitsi/jibri/selenium/JibriSelenium.kt —edit the file JibriSelenium.kt (i put wrong place) this one is correct

and add 3 parameter in columns 145,146,147 -----parameter as below

“–headless”, -------columns 145
“–no-sandbox”, -------columns 146
“–disable-dev-shm-usage” -------columns 147

But attention before in type those columns need use space not tab

step 4

mvn clean verify package -----compile to verify package(It will take a while)

step 5

cp target/jibri-8.0-SNAPSHOT-jar-with-dependencies.jar /opt/jitsi/jibri/jibri.jar ------copy the jar file to jibri

step 6

sudo service jibri restart ----restart the jibri service

Done

I encountered the DevToolsActivePort using the stable debian repositoryof jibri.
When i used the unstable debian repository of jibri then this issue is fixed.

I was used ubuntu 18.0.4TLS,still have error

Did you try to use the unstable jibri packages?

yes,but now i got another error , my ffmpeg can’t work, as below
2020-04-20 19:41:54.808 info: [53] org.jitsi.jibri.capture.ffmpeg.FfmpegCapturer.onFfmpegProcessUpdate() Ffmpeg quit abruptly. Last output line: :0.0+0,0: Input/output error

“:0.0+0,0” indicate that ffmpeg is unable to read the X11 xorg screen it is supposed to record from.
Thus you may also need to check the xorg log to see if it is running.

On my system there was a conflicting xorg debian package xserver-xorg-legacy that prevents the jibri xorg to start. once this package is removed from the system then jibri started to work.
apt remove xserver-xorg-legacy

You can also try to use java JDK 8 for jibri, we have seen issues stopping ffmpeg gracefully that cause corrupt recordings when using JDK 11, the root cause for that other error is this:

when i modify the same as your command (“kill -s SIGINT ${process.pid()}”) ,compile fail as below
[INFO] — kotlin-maven-plugin:1.3.71:compile (compile) @ jibri —
[ERROR] /home/user/jibri/src/main/kotlin/org/jitsi/jibri/util/ProcessWrapper.kt: (101, 48) Expression ‘pid’ of type ‘Long’ cannot be invoked as a function. The function ‘invoke()’ is not found

process.pid() only exist if you compile, and use, with JDK 9, 10, 11 or later

if you are using JDK 8 then jibri do not need to be modified and should work as is.
( using the process.pid extension from src/main/kotlin/org/jitsi/jibri/util/extensions/Process.kt )

check JDK using
javac -version
and
java -version

1 Like

Hello, I have the same problem when I start to record:

...
2020-04-20 16:33:12.344 INFORMACIÓN: [38] org.jitsi.jibri.JibriManager.startFileRecording() Starting a file recording with params: FileRecordingRequestParams(callParams=CallParams(callUrlInfo=CallUrlInfo(baseUrl=https://sala.dipalme.org, callName=bases-de-datos, urlParams=[])), sessionId=ywulpqrypdoeqpar, callLoginParams=XmppCredentials(domain=recorder.sala.dipalme.org, username=recorder, password=)) finalize script path: /opt/grabaciones/finaliza_grabacion.sh and recordings directory: /opt/grabaciones
2020-04-20 16:33:12.420 GRAVE: [38] org.jitsi.jibri.api.xmpp.XmppApi.run() Error starting Jibri service : java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html with stack: 
com.google.common.base.Preconditions.checkState(Preconditions.java:754)
org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:33)
...

My system is Debian and Java es 1.8:

root@sala:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
root@sala:~# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

I’ve installed stable version son Chorme:

root@sala:~# dpkg -l google-chrome-stable
Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendi
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre               Versión         Arquitectura Descripción
+++-====================-===============-============-=================================
ii  google-chrome-stable 81.0.4044.113-1 amd64        The web browser from Google

I’ve installed latest release of Chrome Driver:

root@sala:/tmp# CHROME_DRIVER_VERSION=$(curl -Ss chromedriver.storage.googleapis.com/LATEST_RELEASE)
root@sala:~# echo $CHROME_DRIVER_VERSION
81.0.4044.69
root@sala:/tmp# wget --no-check-certificate http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
root@sala:/tmp# unzip chromedriver_linux64.zip -d /usr/local/bin/
Archive:  chromedriver_linux64.zip
  inflating: /usr/local/bin/chromedriver 
root@sala:/tmp# chown root:root /usr/local/bin/chromedriver
root@sala:/tmp# chmod 0755 /usr/local/bin/chromedriver

I’ve installed stable version of Jibri:

root@sala:~# dpkg -l jibri
Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendi
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre         Versión           Arquitectura Descripción
+++-==============-=================-============-=================================
ii  jibri          8.0-14-g0ccc3f6-1 all          Jibri

I’ve tested with unstable version: https://download.jitsi.org/unstable/jibri_8.0-27-gb7ff90c-1_all.deb, and I’ve tested cloning proyect, making then chages as @iscsm12 and replacing /opt/jitsi/jibri/jibri.jar with my new compiled jar.

Always same error.

Why I have it? How can I solve it?

Solved:

The problem was only related to PATH environment var in the service.

I’ve edited the service:

# systemctl edit --full jibri

and I’ve put:

[Service]
Environment="JAVA_HOME=/usr/lib/jvm/oracle-java8-jdk-amd64/jre"
Environment="PATH=/usr/lib/jvm/oracle-java8-jdk-amd64/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:$
...

(I have multiple jvm in the system).

After starting jibri again, it recorded.

1 Like