jitsi / jitsi-videobridge

Jitsi Videobridge is a WebRTC compatible video router or SFU that lets build highly scalable video conferencing infrastructure (i.e., up to hundreds of conferences per server).
https://jitsi.org/jitsi-videobridge
Apache License 2.0
2.9k stars 988 forks source link

JVB java error on Debian 10 ppc64el #1246

Open kop316 opened 4 years ago

kop316 commented 4 years ago

Description


The normal Jitsi Meet install does not allow audio or video to happen on a Debian 10 ppc64el install

Current behavior


The jvb.log has the following health check failure:

Java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.videobridge.sctp.SctpManager at org.jitsi.videobridge.Endpoint.createSctpConnection(Endpoint.java:868) at org.jitsi.videobridge.health.Health.check(Health.java:77) at org.jitsi.videobridge.health.Health.performCheck(Health.java:211) at org.jitsi.health.AbstractHealthCheckService.run(AbstractHealthCheckService.kt:144) at org.jitsi.utils.concurrent.RecurringRunnableExecutor.run(RecurringRunnableExecutor.java:216) at org.jitsi.utils.concurrent.RecurringRunnableExecutor.runInThread(RecurringRunnableExecutor.java:292) at org.jitsi.utils.concurrent.RecurringRunnableExecutor.access000(RecurringRunnableExecutor.java:36)
atorg.jitsi.utils.concurrent.RecurringRunnableExecutor000(RecurringRunnableExecutor.java:36)
at org.jitsi.utils.concurrent.RecurringRunnableExecutor000(RecurringRunnableExecutor.java:36)
atorg.jitsi.utils.concurrent.RecurringRunnableExecutor1.run(RecurringRunnableExecutor.java:328)

Possible Solution


I am attempting to recompile jitsi-videobridge to see if a recompile on a native system will fix it.

Environment details


Debian 10 on ppc64el on a POWER9 system, with apache2 installed and a Let's encrypt Certificate.

fitzsim commented 9 months ago

I filed a jitsi-sctp issue requesting a ppc64le (aka ppc64el) build for jitsi-sctp. SCTP support does work on ppc64le if you build the shared object file yourself then include it at the correct path within the correct jar.

fitzsim commented 9 months ago

jitsi-srtp-1.1-12-ga64adcc.jar already contains ppc64le binaries:

linux-ppc64el/libjitsisrtp_1.1.so linux-ppc64el/libjitsisrtp_3.so

I needed to rename the linux-ppc64el directory within the jar file to linux-ppc64le, otherwise I would get:

JVB 2023-12-06 10:26:03.798 WARNING: [112] JitsiOpenSslProvider.<clinit>#66: Unable to load jitsisrtp java.lang.UnsatisfiedLinkError: no jitsisrtp_3 in java.library.path: /usr/java/packages/lib:/usr/lib/powerpc64le-linux-gnu/jni:/lib/powerpc64le-linux-gnu:/usr/lib/powerpc64le-linux-gnu:/usr/lib/jni:/lib:/usr/lib

After renaming the directory, I get:

JVB 2023-12-06 10:28:16.501 INFO: [109] JitsiOpenSslProvider.<clinit>#52: jitsisrtp successfully loaded for OpenSSL 3

and everything seems to work fine.

Overall, it seems like ppc64le support for Jitsi is really close to working. Just this folder naming issue -- maybe some systems do need linux-ppc64el, so a second linux-ppc64le directory could be added for compatibility? -- and the jitsi-sctp issue I filed need to be addressed.

It would also be nice if jitsi-videobridge provided linux-ppc64 binaries for big endian systems.

bgrozev commented 9 months ago

We don't use ppc, so we're unlikely to implement the suggested changes, but contributions are welcome

fitzsim commented 9 months ago

We don't use ppc, so we're unlikely to implement the suggested changes, but contributions are welcome

OK, I just posted https://github.com/jitsi/jitsi-srtp/pull/49. I will work on a similar patch for jitsi-sctp.

fitzsim commented 9 months ago

We don't use ppc, so we're unlikely to implement the suggested changes, but contributions are welcome

OK, I just posted jitsi/jitsi-srtp#49. I will work on a similar patch for jitsi-sctp.

Done, here is the pull request for jitsi-sctp: https://github.com/jitsi/jitsi-sctp/pull/20.

fitzsim commented 2 months ago

jitsi-srtp and jitsi-sctp are in good shape on ppc64le now.

I noticed that the new jitsi/dcsctp4j does not have ppc64le support yet, so I filed https://github.com/jitsi/dcsctp4j/issues/6.

bgrozev commented 2 months ago

@fitzsim @kop316 be aware that since #2181 dcsctp is used by default

fitzsim commented 2 months ago

@fitzsim @kop316 be aware that since #2181 dcsctp is used by default

OK, I will probably be working on my ppc64le Jitsi configuration this week. If I can configure usrsctp to work on current nightly then I will report back here and close this issue.

tpearson-ssc commented 1 month ago

Just hit this again due to the dcsctp change. TEMPORARY workaround is to edit /etc/jitsi/videobridge/jvb.conf as follows:

videobridge {
    <other config arrays>
    sctp {
        use-usrsctp = true
    }
}