Jibri.service: Failed with result 'exit-code'

Somebody help me please I been trying install jibri. I follow directions very carefully but still problems. Jibri service dont even start. I uninstall everything jitsi+jibri start over many times same problem. JIbri no produce log. Only xorg produce log in jibri folder. I check jibri.conf many times, everything perfect. Username password domain everything perfect no mistake. Something else must wrong because jibri service no even start. I look through log no answer. I use Java 8 openjdk and this jitsi current stable jitsi (5142). jitsi work fine 2 even 3 user. Secure jitsi fine no problem. Lobby fine no problem. But I do everything for many days now why I have so many problem jibri? Please help me please.

jibri service failed

I run journalctl -xe

-- The process' exit code is 'exited' and its exit status is 203.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: jibri.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit jibri.service has entered the 'failed' state with result 'exit-code'.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: jibri.service: Scheduled restart job, restart counter is at 4.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit jibri.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: Stopped Jibri Process.
-- Subject: A stop job for unit jibri.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit jibri.service has finished.
--
-- The job identifier is 1920 and the job result is done.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: Started Jibri Process.
-- Subject: A start job for unit jibri.service has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit jibri.service has finished successfully.
--
-- The job identifier is 1920.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1363]: jibri.service: Failed to execute command: Exec format error
Jan 02 07:07:31 ip-172-31-42-103 systemd[1363]: jibri.service: Failed at step EXEC spawning /opt/jitsi/jibri/launch.sh: Exec format error
-- Subject: Process /opt/jitsi/jibri/launch.sh could not be executed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The process /opt/jitsi/jibri/launch.sh could not be executed and failed.
--
-- The error number returned by this process is ERRNO.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: jibri.service: Main process exited, code=exited, status=203/EXEC
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit jibri.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 203.
Jan 02 07:07:31 ip-172-31-42-103 systemd[1]: jibri.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit jibri.service has entered the 'failed' state with result 'exit-code'.
Jan 02 07:07:32 ip-172-31-42-103 systemd[1]: jibri.service: Scheduled restart job, restart counter is at 5.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit jibri.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jan 02 07:07:32 ip-172-31-42-103 systemd[1]: Stopped Jibri Process.
-- Subject: A stop job for unit jibri.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit jibri.service has finished.
--
-- The job identifier is 1989 and the job result is done.
Jan 02 07:07:32 ip-172-31-42-103 systemd[1]: jibri.service: Start request repeated too quickly.
Jan 02 07:07:32 ip-172-31-42-103 systemd[1]: jibri.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit jibri.service has entered the 'failed' state with result 'exit-code'.
Jan 02 07:07:32 ip-172-31-42-103 systemd[1]: Failed to start Jibri Process.
-- Subject: A start job for unit jibri.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit jibri.service has finished with a failure.
--
-- The job identifier is 1989 and the job result is failed.
Jan 02 07:07:48 ip-172-31-42-103 sshd[1373]: Unable to negotiate with 112.85.42.174 port 45385: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]
lines 3460-3544/3544 (END)

Here I show jicofo log

Jicofo 2021-01-02 06:59:59.737 INFO: [69] org.jitsi.jicofo.xmpp.FocusComponent.log() Focus request for room: fixed@conference.party.family.de
Jicofo 2021-01-02 06:59:59.738 INFO: [69] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Authenticated jid: _v8pwjttedbyjf10@guest.party.family.de/tWIx6YSl with session: AuthSession[ID=ryan@party.family.de, JID=_v8pwjttedbyjf10@guest.party.family.de/tWIx6YSl, SID=4e9163d9-1820-405b-aa1b-ab617011fc2d, MUID=c31ac1b1b5962aa7300c5a8d3134cb69, LIFE_TM_SEC=170, R=123@conference.party.family.de]@1250908060
Jicofo 2021-01-02 06:59:59.738 INFO: [69] org.jitsi.jicofo.auth.AbstractAuthAuthority.log() Jid _v8pwjttedbyjf10@guest.party.family.de/tWIx6YSl authenticated as: ryan@party.family.de
Jicofo 2021-01-02 06:59:59.738 INFO: [69] org.jitsi.jicofo.FocusManager.log() Created new focus for fixed@conference.party.family.de@auth.party.family.de. Conference count 1,options: channelLastN=-1 enableLipSync=false openSctp=false disableRtx=false
Jicofo 2021-01-02 06:59:59.738 INFO: [69] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: fixed@conference.party.family.de
Jicofo 2021-01-02 07:00:00.011 INFO: [33] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@68b79eab member=ChatMember[fixed@conference.party.family.de/5c6453a4, jid: null]@688420512]
Jicofo 2021-01-02 07:00:00.014 INFO: [33] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member fixed@conference.party.family.de/5c6453a4 joined.
Jicofo 2021-01-02 07:00:07.963 SEVERE: [32] org.jitsi.jicofo.recording.jibri.JibriSession.log() Unable to find an available Jibri, can't start
Jicofo 2021-01-02 07:00:07.963 INFO: [32] org.jitsi.jicofo.recording.jibri.JibriRecorder.log() Failed to start a Jibri session, no Jibris available
Jicofo 2021-01-02 07:00:16.931 INFO: [33] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberLeft sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@68b79eab member=ChatMember[fixed@conference.party.family.de/5c6453a4, jid: _v8pwjttedbyjf10@guest.party.family.de/tWIx6YSl]@688420512]
Jicofo 2021-01-02 07:00:16.932 INFO: [33] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member fixed@conference.party.family.de/5c6453a4 is leaving
Jicofo 2021-01-02 07:00:16.932 WARNING: [33] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Participant not found for fixed@conference.party.family.de/5c6453a4 terminated already or never started ?
Jicofo 2021-01-02 07:00:16.935 INFO: [33] org.jitsi.jicofo.FocusManager.log() Disposed conference for room: fixed@conference.party.family.de conference count: 0

Even prosody log no error

Jan 02 06:59:58 conference.party.family.de:muc_domain_mapper warn Session filters applied
Jan 02 06:59:58 mod_bosh info New BOSH session, assigned it sid ‘536e6cbd-fd71-43b6-8ac8-42d3f407b08c’
Jan 02 06:59:59 bosh536e6cbd-fd71-43b6-8ac8-42d3f407b08c info Authenticated as _v8uuhrdbyjf10@guest.party.family.de
Jan 02 07:00:16 speakerstats.party.family.de:speakerstats_component warn A module has been configured that triggers external events.
Jan 02 07:00:16 speakerstats.party.family.de:speakerstats_component warn Implement this lib to trigger external events.
Jan 02 07:00:17 bosh536e6cbd-fd71-43b6-8ac8-42d3f407b08c info BOSH client disconnected: session close

I add xorg log

(496.9 KB) xorg.txt (40.5 KB)

I add xorg log please tell me what I do wrong. Am so tired. Every time new problem. I install again from beginning almost 10 times now same problem or new problem. But I do jibri before another time everything work for me. But now nothing work. What I do bad? @damencho @saghul @bbaldino please help me I see you know this thing very good

I think maybe this do with java permissions?

Now I run script manually and it run for 2 seconds before stop. And I get jibri log now. log.0.txt (67.5 KB)

What version of java do you have installed?

If you have jitsi and jibri on the same server, do you have at least 8 cores and 8gb of ram?

I have java 8 openjdk. Yes 8 core 16gb ram on amazon.

Folder for recorder and file permissions how are they?

Does the finalize.out file have permissions?

Show us your jibri.conf file…

1 Like

@Ryan yes this definitely looks like a permissions problem. Like @Kali pointed out, you might want to check out the permissions on your files (in this case, the launch.sh file). The fact that you’re seeing an error when you initiate recording in your meeting and Jibri service won’t start but you can execute the launch.sh file from your command line gives the clue. Let me guess: you probably installed everything as root? Jibri needs permissions to access (and own) some files and folders. My recommendation would be to uninstall Jibri and re-install it as a regular user, but use elevated permissions (sudo) when needed. It will save you the headache.

Try that and let us know how you make out.

1 Like

jibri is the owner for recording folder. I no have no finalize.out file. Where to find? Maybe you mean finalize-script? I no make script. I need?

jibri {
  id = ""
  single-use-mode = false
  api {
    http {
      external-api-port = 2222
      internal-api-port = 3333
    }
    xmpp {
      // See example_xmpp_envs.conf for an example of what is expected here
      environments = [
	      {
                name = "prod environment"
                xmpp-server-hosts = ["party.family.de"]
                xmpp-domain = "party.family.de"

                control-muc {
                    domain = "internal.auth.party.family.de"
                    room-name = "JibriBrewery"
                    nickname = "jibri-nickname"
                }

                control-login {
                    domain = "auth.party.family.de"
                    username = "jibri"
                    password = "passwordj"
                }

                call-login {
                    domain = "recorder.party.family.de"
                    username = "recorder"
                    password = "passwordr"
                }

                strip-from-room-domain = "conference."
                usage-timeout = 0
                trust-all-xmpp-certs = true
            }]
    }
  }
  recording {
    recordings-directory = "/srv/recordings"
    finalize-script = "/path/to/finalize_recording.sh"
  }
  streaming {
    // A list of regex patterns for allowed RTMP URLs.  The RTMP URL used
    // when starting a stream must match at least one of the patterns in
    // this list.
    rtmp-allow-list = [
      // By default, all services are allowed
      ".*"
    ]
  }
  chrome {
    // The flags which will be passed to chromium when launching
    flags = [
      "--use-fake-ui-for-media-stream",
      "--start-maximized",
      "--kiosk",
      "--enabled",
      "--disable-infobars",
      "--autoplay-policy=no-user-gesture-required"
    ]
  }
  stats {
    enable-stats-d = true
  }
  webhook {
    // A list of subscribers interested in receiving webhook events
    subscribers = []
  }
  jwt-info {
    // The path to a .pem file which will be used to sign JWT tokens used in webhook
    // requests.  If not set, no JWT will be added to webhook requests.
    # signing-key-path = "/path/to/key.pem"

    // The kid to use as part of the JWT
    # kid = "key-id"

    // The issuer of the JWT
    # issuer = "issuer"

    // The audience of the JWT
    # audience = "audience"

    // The TTL of each generated JWT.  Can't be less than 10 minutes.
    # ttl = 1 hour
  }
  call-status-checks {
    // If all clients have their audio and video muted and if Jibri does not
    // detect any data stream (audio or video) comming in, it will stop
    // recording after NO_MEDIA_TIMEOUT expires.
    no-media-timeout = 30 seconds

    // If all clients have their audio and video muted, Jibri consideres this
    // as an empty call and stops the recording after ALL_MUTED_TIMEOUT expires.
    all-muted-timeout = 10 minutes

    // When detecting if a call is empty, Jibri takes into consideration for how
    // long the call has been empty already. If it has been empty for more than
    // DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop the recording.
    default-call-empty-timeout = 30 seconds
  }
}

@Freddie Wow! Thank you Freddie! I check launch.sh and owner be root. I change owner to jibri, now jibri service start!!! I so happy.
But okay jibri still no record. I start, it wait, wait, wait, then it give error. I think maybe permission another file too?

Does finalize_recording.sh have execute permissions?

In the previous post i was wrong to write … Excuse me. I meant the file finalize_recording.sh…

Hi I no have finalize_recording.sh. Where to find?

I use different ports: 8002, 8003.

I could be wrong. But I’m sure the ports are different.

I don’t know if it can cause problems if you use ports other than mine.

It’s a file you create yourself…

5 minutes that i log into the datacenter and check.

No I dont create finalize script because I no use it.
Port no make difference like so because jibri enter meeting just no record. So make me think permission wrong somewhere

I have these doors: 8001, 8002.

I use finalize_recording.sh because i have a lot of jibri and it’s convenient for me to know which server wrote, room and folder.

You edit

My finalize_recording.sh…

   #!/bin/bash

    RECORDINGS_DIR=$1

    echo "This is a dummy finalize script" > /mnt/rec/finalize_j01.out
    echo "The script was invoked with recordings directory $RECORDINGS_DIR." >> /mnt/rec/finalize_j01.out
    echo "You should put any finalize logic (renaming, uploading to a service" >> /mnt/rec/finalize_j01.out
    echo "or storage provider, etc.) in this script" >> /mnt/rec/finalize_j01.out

    exit 0

its permissions jbri:jibri 755

change the recording folder paths

I advise you to use finalize_recording.sh because this way you can understand if jibri can write to the folder.

If Jibri can write it show in recordings, no? What I understand finalize script is to make other processing. I no want to do that. Now I check log I see message about selenium. Maybe that the problem. I check more

If you don’t want to use finalize_recording.sh leave it blank.

You only use it to see if everything is ok. Then you take it off.

My recording folder has these permissions: jibri:jibri 777
It is not a server folder but it is a shared folder in a storage

The error is between chrome and selenium now I see