Plank resta in esecuzione quando termino sessione Cinnamon

Salve a tutti,
innanzi tutto voglio fare i complimenti allo staff per la rinnovata veste grafica… era da un po’ che mancavo sul forum e devo dire che da come lo ricordavo necessitava proprio di una rinfrescata.

Dunque, ho da qualche giorno fatto l’upgrade dalla versione 31 alla 32 di fedora e, ad eccezione di qualche piccolo dettaglio, sembra sia andato tutto per il verso giusto.
Ero in realtà tentato di fare un’installazione ex novo per poter cambiare desktop environment, ma negli ultimi mesi mi ero abituato a Cinnamon e mi dava noia cambiare per l’ennesima volta.

Tra l’altro, mi sembra che facendo l’upgrade alla 32 ne abbia giovato anche Cinnamon e sembra sia diventato un pelo più stabile (con la 31 mi andava continuamente in crash il cinnamon-settings-daemon).

Mi è un po’ dispiaciuto aver dovuto rinunciare ad Exaile che, non ho capito per quale motivo, è stato tolto dai repository ufficiali… l’ho comunque sostituito con l’altrettanto ottimo DeaDBeeF.
Qualche problemino l’ho avuto anche con BleachBit ma è stato sufficiente sostituire la versione presente nei repository con quella fornita sul sito web ufficiale.

Un solo problema continua ad assillarmi (e non poco) e non riesco a venirne a capo… come anticipato sul titolo del thread, ogni qualvolta cerco di terminare la sessione di Cinnamon (riavviare, spegnere, eccetera), mi viene mostrata una finestra la quale mi informa che c’è un programma che è ancora in esecuzione, nel mio caso trattasi della dockbar Plank, che tra l’altro non risponde e che dovrei attendere che il programma termini (cosa che non avviene se non lo termino manualmente) altrimenti l’interruzione potrebbe causare la perdita del lavoro.

Ho provato diverse volte ad attendere che termini il processo di Plank, ma se non lo termino io manualmente questo non accade (anche dopo diversi minuti Plank rimane ancora in esecuzione senza rispondere) se non clicco sul pulsante Arresta comunque, o su Riavvia comunque…

Questo però accade solo se provo a terminare la sessione tramite il pulsante posto sul menu o tramite l’applet utente sul pannello… ho fatto qualche tentativo da terminale con alcuni comandi quali ad esempio:

poweroff
reboot
shutdown -h now
shutdown -r now

ed in questi casi il sistema si spegne o si riavvia senza alcun problema.

Come potrei risolvere senza dover ricorrere ogni volta all’uso di questi comandi e/o senza forzare lo spegnimento/riavvio dalla finestra che mi compare?

Lieto che il nuovo portale (non ancora del tutto ultimato) piaccia :slight_smile: Come noterai non si tratta solo di grafica nuova, ma anche di funzioni nuove.

Hai provato col comando kill o xkill? Sembrerebbe un problema del programma nel gestire questo tipo di segnali. Se così fosse bisognerebbe riportare il bug al creatore.

in realtà è sufficiente premere il tasto Ctrl, cliccare su Plank con il tasto destro del mouse e poi cliccare su Esci sul menu contestuale che appare… non sono sicuro che il problema dipenda da Plank, in realtà non sembra che non risponda, anzi, se provo a cliccarci su riesco ad aprire le opzioni, spostare le icone e ad avviare i lanciatori presenti sulla dock.
Come detto, se termino da terminale con un comando come poweroff il sistema viene terminato anche molto più velocemente.

Exaile non c’è più in quanto dipendente da Python 2. Sai bene che Python 2 è in EOL e su Fedora è stato fatto un lavoro di pulizia per tutti quei programmi che dipendevano da esso (tranne alcune eccezioni).

In realtà l’ultima versione di Exaile è stata portata su Python 3. Quindi si tratta solo di aspettare che qualche volenteroso adotti il pacchetto e lo resusciti.

1 Mi Piace

Tra l’altro, provando a terminare Plank con xkill, la dock viene terminata all’istante.

Perché, da terminale il sistema spegne i servizi, ma per tutto il resto è come se facesse un kill -9 senza aspettare nessuno.

Prova con kill per piacere, perché non sono sicuro che xkill mandi lo stesso segnale.
Il programma può rispondere normalmente e chiudersi tramite un suo menù, ma potrebbe non gestire correttamente SIGTERM.

stesso risultato con kill <pid di plank> la dock termina senza problemi

Non conosco Plank. Così come non ho mai usato Cinnamon (l’ho provato per vedere com’era).

Come viene avviato questo Plank? È un plugin/estensione di Cinnamon, oppure un programma con la sua icona che viene messo fra i programmi che partono automaticamente al login?

Plank viene messo tra i programmi che partono automaticamente al login…
Plank la utilizzo da anni, Cinnamon l’ho voluto provare anch’io… non mi ha mai convinto particolarmente, ma alla fine è un DE come altri, non è che ci siano differenze tanto sostanziali.
Con Fedora 31 non ho mai avuto di questi problemi comunque, li sto riscontrando da quando ho fatto l’upgrade alla 32

Sto provando anche a dare da terminale il comando

cinnamon-session-quit --power-off

e fino alla finestra di conferma non riscontro errori

Ho provato a installare Cinnamon. E con plesk fa proprio così.
Purtroppo le mie conoscenze sono limitate. Ma guardando i log, c’è una riga che non mi convince. Tipo come se non riuscisse a registrarsi con qualche servizio del desktop environment. Non so se è indicativo.
Dai un occhio ai log (journalctl -f), casomai vale la pena aprire un bug?

Dal log che mi restituisce il comando journalctl -f l’unico evento rilevante che potrebbe essere collegato al mio problema è il seguente

cinnamon-session[1318]: WARNING: t+83,92350s: Client '/org/gnome/SessionManager/Client30' failed to reply before timeout

non ho idea se possa trattarsi di un bug generico di Cinnamon, ma se succede anche a te allora deve esserci qualcosa che non va.

Giusto a titolo informativo… ovviamente c’entra relativamente con la risoluzione del problema, comunque per evitare di dover visualizzare l’avviso che compariva a fine sessione ho momentaneamente disinstallato Plank sostituendola con Cairo-Dock che sembra essere immune a questo tipo di problema (a questo punto mi sorge il dubbio che il problema possa dipendere proprio da Plank).

Ovviamente spero che sia una soluzione temporanea e di poter reinstallare quanto prima Plank… anche perchè mi ci sono abituato e mi ci trovo molto più a mio agio.
Purtroppo non sono riuscito a trovare problemi analoghi al mio in giro su internet, quindi di conseguenza neanche soluzioni, dite che possa valer la pena segnalare il problema da qualche parte? A chi sarebbe eventualmente più corretto segnalarlo?

Personalmente, intanto segnalerei la cosa al manutentore del pacchetto su Fedora (quindi su bugzilla). Se eventualmente non rispondesse in tempi ragionevoli (succede), ovvero non si preoccupasse di segnalarlo upstream, aprirei un bug con chi sviluppa Plank (aggiornando poi bugzilla, mettendo il link a questa segnalazione).

Se provi a lanciare plank in un terminale (o comunque loggandone lo stdout/stderr), vedi “reazioni” quando tenti di fare il logout?

No, nessun output particolare… si presentano due errori già avviando Plank, ma per il resto non accade nulla di rilevante.

Lo stdout che ricevo all’avvio di Plank è il seguente:

[CRITICAL 14:58:30.106082] [GLib-GObject] g_param_spec_boxed: assertion 'G_TYPE_IS_BOXED (boxed_type)' failed
[CRITICAL 14:58:30.110048] [GLib-GObject] validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed
[WARN 14:58:30.147636] [Preferences:192] '/usr/share/plank/themes/Default/dock.theme' is read-only!

Qualcosa di strano invece l’ho notato facendo il debug, sembra che Plank tenti di ricaricare la dock ricorsivamente quando cerco di terminare la sessione.

Linko l’output (troppo lungo per postarlo qui) che vien fuori con il debug

plank -v

La tua analisi in debug molto sembra essere molto interessante.
Avresti modo di tentare magari con una live di cinnamon su un’altra distro per vedere se si riproduce lo stesso problema? Forse Linux Mint viene nativa con Cinnamon?
In ogni caso aprirei un ticket direttamente a plank, giusto da farglielo notare. Se il problema inoltre lo trovi anche con altre distro non so quanto il bugzilla di fedora possa aiutare.
Questa sembra essere la pagina web di plank: https://launchpad.net/plank

@bebo_sudo un tentativo l’ho fatto, ma ad essere sincero già immaginavo di non riuscire a riprodurre le stesse condizioni… l’ultima versione di Linux Mint, la 19.3, essendo stata rilasciata ad ottobre si basa ancora sulla vecchia LTS di Ubuntu (la 18.04), quindi tanti pacchetti non sono molto aggiornati…
tanto per farti un esempio, la stessa versione di Plank utilizzata è la 0.11.4 mentre su Fedora è la 0.11.89 e, ovviamente, vengono utilizzate versioni precedenti anche delle varie librerie connesse.

Ovviamente, almeno in live, non da problemi al momento in cui termino la sessione, ho potuto notare però che è un comportamento del tutto normale quello che attua Plank di ridisegnare la dock ad ogni interazione con il sistema… anche perché se viene impostata per nascondersi in automatico credo sia ovvio che deve adeguarsi alle condizioni della scrivania (nascondersi quando c’è una finestra che la copre, riapparire quando viene chiusa una finestra, eccetera)

L’unica cosa che effettivamente differisce sono i messaggi di debug che su Mint non sono presenti, ossia:

[GLib-GIO] _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
[GLib] unsetenv() is not thread-safe and should not be used after threads are created

[GLib] setenv()/putenv() are not thread-safe and should not be used after threads are created
[GLib-GIO] _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend

[GLib] setenv()/putenv() are not thread-safe and should not be used after threads are created

e le chiamate CRITICAL presenti nello STDOUT che su Mint invece non compaiono:

[GLib-GObject] g_param_spec_boxed: assertion 'G_TYPE_IS_BOXED (boxed_type)' failed
[GLib-GObject] validate_pspec_to_install: assertion 'G_IS_PARAM_SPEC (pspec)' failed

Voglio aggiornare il thread, sempre per dovere di cronaca, visto che ho segnalato il bug su bugzilla e, dopo alcuni giorni, hanno risposto confermando che dipende dalle ultime funzionalità di Plank 1837530#c2

In particolare, al fatto che (cito dalla risposta)

[…] ora si registra presso il session manager, in modo che possa essere automaticamente riavviata in caso di crash.

Ho anche fatto qualche indagine su altri ambienti desktop ed ho avuto la conferma che il problema si presenta sia su Gnome 3 che su i suoi fork (Cinnamon, Mate-Compiz)…
Ho provato con Xfce infatti e sembra essere immune a questo tipo di problema… poi vabbe’, su Xfce ci si mette il compositing di xfwm a dar problemi ma quello è un discorso a parte.

Al momento ho scartato anche l’opzione di utilizzare Cairo-Dock in sostituzione di Plank perché anche se non da problemi al momento di terminare la sessione, per il resto è messa anche peggio… davvero troppo buggata per poterla utilizzare.

2 Mi Piace