Subject: bug#76233: Jami 20240524.0 not working on Guix System but working on foreign distro

From: Giovanni Biscuolo <[email-masked]>
Date: Wed, 12 Feb 2025 18:25:08 +0100

Hello,

on my two work machines (one desktop and one laptop) I use guix as
package manager on top of Debian, I installed jami on both and it works
perfectly: I'm really impressed by Jami!

I'm testing Jami on a Guix System I installed on a test machine (on the
very same network of my work machines) and it does not work... the same
jami package installed on top of Debian :-(.

I also tested Jami on two different Guix Systems of a friend of mine and
the "mode of failure" is the very same I'm observing on my test Guix
System.

First an easy fix: in Guix System I have to install
gsettings-desktop-schemas otherwise Jami does not start with this error:

--8<---------------cut here---------------start------------->8---

(jami:4825): GLib-GIO-ERROR **: 15:04:05.424: Settings schema 'org.gnome.desktop.interface' is not installed
Trace/breakpoint trap

--8<---------------cut here---------------end--------------->8---

Once I start Jami (jami in a terminal to see log messages) I can import
my account from another device [1] but:

- the list "Linked devices" shows only one device and the "Device name"
  are the first 8 chars of the device fingerprint (usually is the
  hostname of that device)

- the list of contacts shows my list of contacts and the last message
  date is 1/1/70

- I have no messages in any of my swarms (chat rooms)

It seems my Jami client on Guix System cannot connect the DHT and
sincronize data.

If you are interested below you can find a complete log I got running
"jami -d jami-debug.log"

I'm not an expert so I cannot fully understand the meaning of all debug
logs, but I guess it has something to do with this specific logs:

--8<---------------cut here---------------start------------->8---

[1739369430.679|5099|jamiaccount.cpp         :932 ] [Account aba3d9634a668ab7] Can't load proxy URL from cache: filesystem error: cannot get file time: No such file or directory [/home/g/.cache/jami/aba3d9634a668ab7/dhtproxy]

[1739369430.808|5099|conversation_module.cpp :447 ] [ConversationModule] error loading syncingMetadatas_: Can't read file: /home/g/.local/share/jami/aba3d9634a668ab7/syncingMetadatas

[1739369430.810|5099] No IGD available. Mapping will be requested when an IGD becomes available

[1739369433.137|5099] UPNP/NAT-PMP enabled, but no valid IGDs available

[1739369443.560|5099] [device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49] Already connecting, wait for ICE negotiation

--8<---------------cut here---------------end--------------->8---

Furthermore, the Jami client on Guix System freezes when trying to use
the following settings or menu options:

1. Account | Manage Account | Enable account (try to switch it off)[2]

(I see no messages in terminal)

2. Account | Customize profile | (change name and press enter)

--8<---------------cut here---------------start------------->8---

default [1739371696297][WRN][7f8a0e139f80]: qrc:/settingsview/components/CustomizeProfilePage.qml:49:13: QML Connections: Detected function "onStopBooth" in Connections element. This is probably intended to be a signal handler but no signal of the target matches the name.
default [1739371696303][WRN][7f8a0e139f80]: qrc:/settingsview/components/CustomizeProfilePage.qml:50: ReferenceError: settingsView is not defined
default [1739371700439][WRN][7f8964ff96c0]: QSGPlainTexture: Mipmap settings changed without having image data available. Call setImage() again or enable m_retain_image. Falling back to previous mipmap filtering mode.

--8<---------------cut here---------------end--------------->8---

3. Account | Call settings | Ringtone (try to switch it off)

(no messages in terminal)

4. Account | Advanced settings | Enable local peer discovery (try to
switch it on)

5. Account | Advanced settings | Enable proxy (try to switch it on)

There are other settings I did not try, so freezes could be more.

The very same settings on Jami installed on my work machines (foreign
distro) are working as expected.

I hope we can find a solution since IMHO Jami a very useful tool.

Happy hacking, Gio'.

[1] the "pairing" workflow works perfectly, using the PIN generated on
one of the other devices and the account password (I have encrypted my
account)

[2] but when restarting Jami the account is actually disabled, and if I
enable it it works without freezing

[1739369430.499|5099] UPnPContext: starting dedicated io_context thread
[1739369430.499|5099] Creating UPnPContext instance [0x7b2b7a0]
[1739369430.499|5099] PUPnP: Creating instance [0x7f0664000b80] ...
[1739369430.499|5099|ringbuffer.cpp          :55  ] Create new RingBuffer audiolayer_id
[1739369430.500|5099|video_device_monitor_impl.cpp:150 ] udev: adding device with id Chicony_Electronics_Co.__Ltd._Sony_Visual_Communication_Camera_Sony_Visual_Communication_Camera
[1739369430.564|5099|video_device.h          :133 ] Default video settings: 640x480, 30 FPS
[1739369430.565|5099|video_device_monitor_impl.cpp:150 ] udev: adding device with id Chicony_Electronics_Co.__Ltd._Sony_Visual_Communication_Camera_Sony_Visual_Communication_Camera
[1739369430.566|5099|manager.cpp             :732 ] Not initialized
[1739369430.566|5099|manager.cpp             :732 ] Not initialized
[1739369430.668|5099|manager.cpp             :806 ] Using PJSIP version 2.13.1 for x86_64-unknown-linux-gnu
[1739369430.668|5099|manager.cpp             :807 ] Using GnuTLS version 3.8.3
[1739369430.668|5099|manager.cpp             :808 ] Using OpenDHT version 3.1.11
[1739369430.668|5099|manager.cpp             :809 ] Using FFmpeg version 6.1.1
[1739369430.668|5099|manager.cpp             :812 ] Using Libgit2 version 1.8.4
[1739369430.668|5099|sipvoiplink.cpp         :649 ] Using SIP nameserver: 10.38.2.1
[1739369430.668|5099|sipvoiplink.cpp         :647 ] Error printing SIP nameserver: ai_family not supported
[1739369430.669|5099|sipvoiplink.cpp         :743 ] SIPVoIPLink@0x7b3cbe0
[1739369430.670|5099|manager.cpp             :828 ] Configuration file path: "/home/g/.config/jami/dring.yml"
[1739369430.674|5099|system_codec_container.cpp:251 ] Encoders found: H264 VP8 MP4V-ES H263-1998 opus G722 G726-32 speex speex speex PCMA PCMU 
[1739369430.674|5099|system_codec_container.cpp:252 ] Decoders found: H264 VP8 MP4V-ES H263-1998 opus G722 G726-32 speex speex speex PCMA PCMU 
[1739369430.674|5099] CertificateStore: loading certificates from "/home/g/.local/share/jami/aba3d9634a668ab7/certificates"
[1739369430.677|5099] CertificateStore: loaded 6 local certificates.
[1739369430.679|5099] Successfully registered controller 0x7f065c016f50
[1739369430.679|5099] Starting UPNP context
[1739369430.679|5099] [Account aba3d9634a668ab7] Refresh cache for TURN server resolution
[1739369430.679|5099|jamiaccount.cpp         :932 ] [Account aba3d9634a668ab7] Can't load proxy URL from cache: filesystem error: cannot get file time: No such file or directory [/home/g/.cache/jami/aba3d9634a668ab7/dhtproxy]
[1739369430.680|5099] PUPnP: Start search for IGD: attempt 1
[1739369430.680|5099|namedirectory.cpp       :491 ] Loaded 6 name-address mappings
[1739369430.682|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369430.684|5099|account_manager.cpp     :208 ] [Auth] checking device receipt for 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546
[1739369430.688|5099|contact_list.cpp        :526 ] [Contacts] Found account device: pioche 708e016f224f53d767ebc13a5021fff8310cde29630c6c6b6eccf515b9d9f8e1
[1739369430.690|5099|contact_list.cpp        :526 ] [Contacts] Found account device:  cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49
[1739369430.691|5099|account_manager.cpp     :256 ] [Auth] Device 708e016f224f53d767ebc13a5021fff8310cde29630c6c6b6eccf515b9d9f8e1 receipt checked successfully for account 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546
[1739369430.691|5099|jamiaccount.cpp         :1248] [Account aba3d9634a668ab7] loaded account identity
[1739369430.691|5099|ringbuffer.cpp          :55  ] Create new RingBuffer urgentRingBuffer_id
[1739369430.691|5099|audiolayer.cpp          :60  ] [audiolayer] AGC: 1, noiseReduce: auto, VAD: 1, echoCancel: auto, audioProcessor: webrtc
[1739369430.692|5099|pulselayer.cpp          :69  ] [audiolayer] created pulseaudio layer
[1739369430.692|5099|audiolayer.cpp          :169 ] [audiolayer] setHasNativeNS: 0
[1739369430.726|5099|pulselayer.cpp          :146 ] Waiting....
[1739369430.727|5099|pulselayer.cpp          :146 ] Waiting....
[1739369430.728|5099|pulselayer.cpp          :146 ] Waiting....
[1739369430.729|5099|pulselayer.cpp          :150 ] Connection to PulseAudio server established
[1739369430.729|5099|pulselayer.cpp          :180 ] Updating PulseAudio sink list
[1739369430.729|5099|pulselayer.cpp          :197 ] Updating PulseAudio source list
[1739369430.729|5099|pulselayer.cpp          :214 ] Updating PulseAudio server infos
[1739369430.729|5099|pulselayer.cpp          :685 ] PulseAudio server info:
    Server name: pulseaudio
    Server version: 16.1
    Default Sink alsa_output.pci-0000_00_1b.0.analog-stereo
    Default Source alsa_input.pci-0000_00_1b.0.analog-stereo
    Default Sample Specification: s16le 2ch 44100Hz
    Default Channel Map: front-left,front-right

[1739369430.729|5099|audiolayer.cpp          :73  ] Hardware audio format available : {s16, 2 channels, 44100Hz} 0
[1739369430.732|5099] PUPnP: Web-server is enabled. Disabling
[1739369430.732|5099] PUPnP: Web-server successfully disabled
[1739369430.732|5099] PUPnP: Initialized on 10.38.2.58:49152 | fe80::aed5:c1cc:83a7:74d:49152
[1739369430.732|5099] PUPnP: Successfully registered client
[1739369430.732|5099] PUPnP: Send IGD search request
[1739369430.749|5099] Connection to 92.222.89.217 ready
[1739369430.749|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369430.802|5099] [Account aba3d9634a668ab7] Refresh cache for TURN server resolution
[1739369430.802|5099|jamiaccount.cpp         :932 ] [Account aba3d9634a668ab7] Can't load proxy URL from cache: filesystem error: cannot get file time: No such file or directory [/home/g/.cache/jami/aba3d9634a668ab7/dhtproxy]
[1739369430.804|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369430.805|5099|account_manager.cpp     :208 ] [Auth] checking device receipt for 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546
[1739369430.807|5099|contact_list.cpp        :526 ] [Contacts] Found account device: pioche 708e016f224f53d767ebc13a5021fff8310cde29630c6c6b6eccf515b9d9f8e1
[1739369430.808|5099|contact_list.cpp        :526 ] [Contacts] Found account device:  cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49
[1739369430.808|5099|account_manager.cpp     :256 ] [Auth] Device 708e016f224f53d767ebc13a5021fff8310cde29630c6c6b6eccf515b9d9f8e1 receipt checked successfully for account 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546
[1739369430.808|5099|jamiaccount.cpp         :1248] [Account aba3d9634a668ab7] loaded account identity
[1739369430.808|5099|jamiaccount.cpp         :1624] [Account aba3d9634a668ab7] Starting account..
[1739369430.808|5099|conversation_module.cpp :447 ] [ConversationModule] error loading syncingMetadatas_: Can't read file: /home/g/.local/share/jami/aba3d9634a668ab7/syncingMetadatas
[1739369430.808|5099|conversation_module.cpp :1518] [Account aba3d9634a668ab7] Start loading conversations…
[1739369430.809|5099|jamiaccount.cpp         :2414] [Account aba3d9634a668ab7] connecting…
[1739369430.809|5099|jamiaccount.cpp         :1530] [Account aba3d9634a668ab7] UPnP: attempting to map ports
[1739369430.809|5099] Desired port is not set, will provide the first available port for [UDP]
[1739369430.810|5099] No IGD available. Mapping will be requested when an IGD becomes available
[1739369430.810|5099|jamiaccount.cpp         :1548] [Account aba3d9634a668ab7] DHT UPNP mapping changed to JAMI-UDP:20825 (state=PENDING, auto-update=YES)
[1739369430.810|5099|jamiaccount.cpp         :1588] [Account aba3d9634a668ab7] Mapping request is in PENDING state: starting the DHT anyway
[1739369430.814|5099|jamiaccount.cpp         :1651] [Account aba3d9634a668ab7] Bootstrap node: bootstrap.jami.net
[1739369430.814|5099|jamiaccount.cpp         :1913] [Account aba3d9634a668ab7] Dht status: IPv4 connecting; IPv6 disconnected
[1739369430.815|5099|jamiaccount.cpp         :1667] [Account aba3d9634a668ab7] Track presence for 25e63ac76d9d00d9bdc6363a2b7115eab2dba2ec
[1739369430.815|5099|jamiaccount.cpp         :1667] [Account aba3d9634a668ab7] Track presence for 2fe5631fdb784bda1b61ccd52883b8f9685270da
[1739369430.815|5099|jamiaccount.cpp         :1667] [Account aba3d9634a668ab7] Track presence for 8fe49423baa876355d4c660bfe6b7f16cb813198
[1739369430.817|5099|manager.cpp             :2699] Set accounts order : aba3d9634a668ab7/
[1739369430.817|5099|manager.cpp             :1793] Saving Configuration to XDG directory /home/g/.config/jami/dring.yml
[1739369430.872|5099] Connection to 51.254.39.157 ready
[1739369430.872|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369430.923|5099|jamiaccount.cpp         :1913] [Account aba3d9634a668ab7] Dht status: IPv4 connected; IPv6 disconnected
[1739369430.923|5099|jamiaccount.cpp         :2409] [Account aba3d9634a668ab7] connected
[1739369430.923|5099] [Account aba3d9634a668ab7] Refresh cache for TURN server resolution
[1739369430.936|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369430.936|5099] Store DHT public IPv4 address: 93.56.171.185
[1739369430.936|5099] Setting the known public address to 93.56.171.185
[1739369430.974|5099|jamiaccount.cpp         :1913] [Account aba3d9634a668ab7] Dht status: IPv4 connected; IPv6 connecting
[1739369430.992|5099] Connection to 92.222.89.217 ready
[1739369430.992|5099] [Account aba3d9634a668ab7] Cache refreshed for TURN resolution
[1739369433.137|5099] UPNP/NAT-PMP enabled, but no valid IGDs available
[1739369439.638|5099|archive_account_manager.cpp:523 ] Building device sync from 708e016f224f53d767ebc13a5021fff8310cde29630c6c6b6eccf515b9d9f8e1
[1739369439.638|5099|archive_account_manager.cpp:535 ] sending device sync to  cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49
[1739369441.460|5099] [device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49] Received request
[1739369441.462|5099] Found peer device: cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49 account:05a8aca67ce08acc8b6e15ff32dcb3fb00a25546 CA:0cb0cbe6a8d6b1148197af2b6c0e6333ac0282d0
[1739369441.462|5099] [device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49] New connection request
[1739369441.464|5099|account_manager.cpp     :431 ] Found peer device: cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49 account:05a8aca67ce08acc8b6e15ff32dcb3fb00a25546 CA:0cb0cbe6a8d6b1148197af2b6c0e6333ac0282d0
[1739369441.464|5099] %s
[1739369441.464|5099|account_manager.cpp     :473 ] [Auth] Discarding message from unauthorized peer 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546.
[1739369441.465|5099|jamiaccount.cpp         :2002] Discarding ICE request from 0000000000000000000000000000000000000000
[1739369441.465|5099] [device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49] Refusing connection
[1739369443.138|5099] PUPnP: Start search for IGD: attempt 2
[1739369443.138|5099] PUPnP: Send IGD search request
[1739369443.519|5099|jamiaccount.cpp         :1906] Query for local certificate store: a2150dc3c13981b20806a652d36b8b15da106246: 0 found.
[1739369443.520|5099|jamiaccount.cpp         :1906] Query for local certificate store: e916fd591a29bc8fac0cb5d66007ee9b1480c5af: 0 found.
[1739369443.556|5099|jamiaccount.cpp         :3496] [Account aba3d9634a668ab7] Request SIP connection to peer 05a8aca67ce08acc8b6e15ff32dcb3fb00a25546 on device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49
[1739369443.556|5099|jamiaccount.cpp         :3522] [Account aba3d9634a668ab7] Ask cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49 for a new SIP channel
[1739369443.557|5099] Store DHT public IPv4 address: 93.56.171.185
[1739369443.558|5099] [ice:0x7f062c1024f0] Creating IceTransport session for ""
[1739369443.558|5099] [ice:0x7f062c1024f0] Initializing the session - comp count 1 - as a slave
[1739369443.558|5099] [ice:0x7f062c1024f0] Add srflx reflexive candidates [10.38.2.58:9 : 93.56.171.185:9] for comp 1
[1739369443.558|5099] added turn server '92.222.89.217', port 3478
[1739369443.560|5099] [device cc3646a4fcc88a3553e11d981dad2a84edfe5aaf80f4dd0c33fc7b0a15de5a49] Already connecting, wait for ICE negotiation
[1739369465.548|5099] PUPnP: Start search for IGD: attempt 3
[1739369465.549|5099] PUPnP: Send IGD search request
[1739369497.956|5099] PUPnP: Setup failed after 3 trials. PUPnP will be disabled!
[1739370870.605|5099] Successfully unregistered controller 0x7f065c016f50
[1739370870.605|5099] Stopping UPnP context
[1739370870.605|5099] PUPnP: Successfully unregistered client
[1739370870.606|5099|jamiaccount.cpp         :896 ] Saved account config to /home/g/.local/share/jami/aba3d9634a668ab7/config.yml
[1739370870.606|5099|jamiaccount.cpp         :2359] [Account aba3d9634a668ab7] unregistering account 0x7f065c000da0
[1739370870.606|5099|jamiaccount.cpp         :281 ] [Account aba3d9634a668ab7] Shutdown connections

-- 
Giovanni Biscuolo

Xelera IT Infrastructures