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 989 forks source link

needrestart falsely reports the videobridge service needs to be restart #1166

Open baldurmen opened 4 years ago

baldurmen commented 4 years ago

Description


I use needrestart to monitor things on my Debian 10 server that needs to be restarted. It normally works pretty well, but it seems it is falsely reporting the Jitsi Videobrige needs to be restarted.

Current behavior


Whatever I do (restart the systemd service, reboot the whole machine) needrestart reports the videobridge service needs to be restarted.

root@foobar:/# needrestart -r l -l -v
[main] eval /etc/needrestart/needrestart.conf
[main] needrestart v3.4
[main] running in root mode
[Core] Using UI 'NeedRestart::UI::stdio'...
[main] systemd detected
[main] vm detected
[Core] #499 is a NeedRestart::Interp::Java
[Core] #526 is a NeedRestart::Interp::Python
[Python] #526: source=/usr/share/unattended-upgrades/unattended-upgrade-shutdown
[main] #529 uses deleted /tmp/jna-105622/jna2325222669326972183.tmp
[main] #529 is not a child
[Core] #535 is a NeedRestart::Interp::Python
[Python] #535: source=/usr/bin/fail2ban-server
[Core] #971 is a NeedRestart::Interp::Ruby
[Ruby] #971: source=/usr/bin/puppet
[main] #529 exe => /usr/lib/jvm/java-11-openjdk-amd64/bin/java
[Core] #529 is a NeedRestart::Interp::Java
[Core] #529 source is UNKNOWN
[main] #529 is jitsi-videobridge.service
[main] inside container or vm, skipping microcode checks

Services to be restarted:
 systemctl restart jitsi-videobridge.service

No containers need to be restarted.

No user sessions are running outdated binaries.

The needrestart code used to check if Java services need to be restarted can be found here:

https://github.com/liske/needrestart/blob/master/perl/lib/NeedRestart/Interp/Java.pm

Expected Behavior


Once restarted, the videobridge should not report it still needs to be restarted.

Possible Solution


Steps to reproduce


  1. Install a fresh Debian 10 machine
  2. Install jitsi meet via the Jitsi Debian repository
  3. Install needrestart from the main Debian repository
  4. run needrestart -r l -l -v or needrestart -p as root
  5. Restart the videobridge service (systemd restart jvb)
  6. run needrestart -r l -l -v or needrestart -p as root

Environment details


Server: Debian 10 Install method: Jitsi Debian Packages Videobridge version: 1126-1 Needrestart version: 3.4 Java interpreter: openjdk-11-jre-headless 11.0.6+10-1~deb10u1

fpoulain commented 3 years ago

Same issue here: https://agir.april.org/issues/5168

Following https://unix.stackexchange.com/questions/574325/jitsi-videobridge-service-daemons-using-outdated-libraries we solved it with

$nrconf{blacklist_mappings} = [
[…]
    # Videobridge
    qr(^/tmp/jna-),

in /etc/needrestart/needrestart.conf.