XApp Status reassigns icon IDs when applications send multiple rapid NewIcon signals
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia individuando l'applet di stato XApp e la relativa logica di registrazione delle icone o di tracciamento degli slot. Riproduci il problema con NordVPN e Nextcloud in esecuzione, monitorando al contempo i segnali StatusNotifierItem con dbus-monitor; journalctl -u nordvpnd -f mostra la nuova sottoscrizione correlata. Il lavoro è completato quando gli eventi rapidi NewIcon o di nuova registrazione non spostano lo slot dell'icona di un'altra applicazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Distribution
Linux Mint 22.3 (Cinnamon 6.6.7)
Package version
3.2.2+zena
Graphics hardware in use
NVIDIA GeForce RTX 3060
Frequency
Only occasionally
Bug description
XApp Status Applet incorrectly reassigns icon slot IDs when an application sends multiple rapid StatusNotifierItem NewIcon signals, causing one application's icon to visually replace another application's icon slot.
Affected applications:
- NordVPN 4.4.0 (daemon + GUI) - sends multiple NewIcon signals
- Nextcloud Desktop - victim application whose icon slot gets reassigned
Symptom:
- Two NordVPN icons appear in the system tray
- One of them occupies the visual space where Nextcloud icon should be
- Right-clicking on the ghost NordVPN icon (in Nextcloud's position) shows an empty menu
- The actual Nextcloud process is still running normally
Trigger:
Any sudo command causes NordVPN daemon to detect a PAM session change and resubscribe to the status notifier, sending 5 NewIcon signals within 0.6 seconds. During this rapid signaling, XApp Status loses track of icon IDs and assigns NordVPN to Nextcloud's existing slot.
Technical details:
D-Bus monitoring shows:
signal sender=:1.106 path=/StatusNotifierItem; member=NewIcon
[5 NewIcon signals in 0.6 seconds from same sender]
journalctl shows NordVPN's behavior:
[Debug] 2 active user processes found
[Debug] 1 active user processes found
[Info] Subscription has been cancelled.
[Info] Received new subscription request
Note: The bug does NOT occur systematically. After running the workaround (killall -9 xapp-sn-watcher), subsequent sudo commands show NordVPN's icon refreshing correctly without displacing Nextcloud's icon. This suggests a race condition or state management issue in XApp Status.
Steps to reproduce
Prerequisites:
- Have both NordVPN 4.4.0 (daemon + GUI) and Nextcloud Desktop installed and running
- Both applications should have icons in XApp Status Applet system tray
Steps:
- Open a terminal
- Run any
sudocommand (e.g.,sudo echo "test"orsudo apt-get check) - Observe the system tray during and after the command completes
- NordVPN icon will briefly disappear and reappear (this is normal)
- Bug occurs (occasionally): A second NordVPN icon appears in place of Nextcloud's icon
To verify the bug when it occurs:
- Right-click on the displaced icon → shows empty menu
- Run
ps aux | grep nextcloud→ Nextcloud process is still running - The real Nextcloud icon is gone from the tray
Frequency note:
The bug does NOT happen 100% of the time. It appears to be a race condition. Multiple sudo commands may be needed to trigger it. Once triggered, running killall -9 xapp-sn-watcher fixes it, and subsequent sudo commands may not retrigger the bug immediately.
Monitoring commands used for debugging:
# Monitor D-Bus StatusNotifierItem signals
dbus-monitor --session "interface='org.kde.StatusNotifierItem'"
# Monitor NordVPN daemon logs
journalctl -u nordvpnd -f
Observed pattern:
sudocommand triggers NordVPN to resubscribe- NordVPN sends 5 rapid NewIcon signals (within 0.6s)
- XApp Status occasionally loses track during this rapid update
- Result: icon slot reassignment bug
Expected behavior
XApp Status Applet should maintain stable icon slot assignments even when applications:
- Send multiple NewIcon signals in rapid succession
- Unregister and re-register their StatusNotifierItem
- Update their icons frequently
Specifically:
- Each application should retain its assigned icon slot/ID throughout its lifecycle
- Rapid NewIcon signals from one application should not affect other applications' icon slots
- Icon re-registration should either:
- Reuse the same slot if the application already has one, OR
- Assign a new slot without displacing existing icons
Current workaround:
Running killall -9 xapp-sn-watcher forces XApp Status to rebuild the tray correctly, confirming that the underlying applications are functioning properly and the issue is in the applet's state management.
Additional information
Disclaimer:
I'm not an expert in Linux system debugging. I was guided by an AI assistant (Claude) through the debugging process to understand and document this bug. The technical analysis and monitoring commands were suggested during our troubleshooting conversation.
- Lingua principale
- C
- Stelle
- 167
- Fork
- 49
- Merge medio
- 5g 15h
- PR unite (30g)
- 2
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di linuxmint/xapp
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di linuxmint/xapp
Issue simili
-
task
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
vsanthanam/JBird#429 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
es-ude/OnDeviceTraining#459 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
bilelmoussaoui/gobject-linter#199 · 1 commento ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bradcypert/plum#53 ·