Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.tlc.cellulari.android > #111407
| Subject | Re: [NeReO]1.2.9b - con bugfixer |
|---|---|
| From | MCSM <despammed@mcsm.anonaddy.me> |
| References | (2 earlier) <117f9eh$ur32$1@dont-email.me> <117fad8$urfi$1@dont-email.me> <XnsB4BDEDEA8870Aall321en@not.for.you> <117gdc9$19lb9$1@dont-email.me> <XnsB4BE6C00388CCall321en@not.for.you> |
| Newsgroups | it.tlc.cellulari.android |
| Message-ID | <mn.2a807ea9d02562cc.0@mcsm.org> (permalink) |
| Organization | mcsm.org |
| Date | 2026-09-05 10:40 +0200 |
On 05/09/2026 , *Allen* wrote:
.....
> Cambiamo domanda, qual'è(ra) il gruppo più corposo? :-(
Per tua info ti riporto qui cosa ci dice Claude dopo aver sottoposto il
risultato di macchia (so che ti piacciono queste info! ;)
PS: è lunghetto...
Finalmente un dato vero da mordere!
Quello che è certo (deduzione diretta dalla traccia, verificato sul
codice — non ipotesi):
Il crash *non è nel nostro codice di logica*: è dentro il codice
generato da Room mentre converte le righe di un cursore SQLite in
oggetti Article, dentro il meccanismo con cui Room implementa un Flow
che si auto-aggiorna quando la tabella articles cambia. ArticleDao ha
esattamente tre query di questo tipo: la lista di un gruppo, e due di
ricerca. La riga "Suppressed... StandaloneCoroutine{Cancelling}" nella
traccia è la prova diretta che quella raccolta di dati era in fase di
cancellazione — cioè una schermata stava chiudendosi — nello stesso
istante in cui Room stava ancora leggendo righe dal suo cursore.
La parte abduttiva (la spiegazione più coerente con tutto, non una
certezza): Macchia non stava cercando nulla, quindi il colpevole più
probabile è la query della lista articoli di un gruppo — verosimilmente
ancora in smontaggio proprio mentre lui tornava alla schermata Server
per lanciare "aggiorna tutti", e quel bulk-sync scriveva a raffica
sulla stessa tabella che quella Flow stava osservando: la scrittura
scatena una nuova esecuzione della query proprio mentre la vecchia sta
morendo, e in quella finestra la lettura del cursore fallisce.
E qui c'è una correzione importante da fare a me stesso, non solo un
aggiornamento: Macchia aveva l'aggiornamento automatico disattivato
(solo manuale) — il timer periodico che il Piano B ha messo in
sicurezza non era nemmeno in gioco qui, è bastato UN sync manuale. E il
Piano B (il mutex) serializza solo scrittura-contro-scrittura fra sync;
non tocca in nessun modo scrittura-contro-lettura — e questa traccia è
esattamente una lettura (una Flow della UI) che si scontra con una
scrittura (il sync). Con ogni probabilità il Piano B non avrebbe
evitato questo episodio specifico. Non lo rende inutile — il difetto
sync-vs-sync che chiude resta reale — ma sposta il centro dell'indagine
su un fronte diverso e finora non guardato.
Tre strade, nessuna esclude le altre:
Piano A — verifica mirata (solo lettura, rischio zero) di come la
navigazione smonta la schermata precedente quando si torna ai Server,
per capire se quella Flow viene davvero cancellata quando dovrebbe o
resta viva più a lungo del previsto.
Piano B — aggiungere una gestione d'errore (.catch) nei tre punti che
leggono questa Flow, così un fallimento di lettura del cursore (che
pare un evento raro e transitorio) faccia al più restare la lista
com'era, invece di far cadere l'intera app. Cura il sintomo anche senza
aver capito la causa esatta.
Piano C — valutare l'aggiornamento della libreria Room (siamo fermi
alla 2.6.1): alcune versioni più recenti hanno irrobustito proprio la
gestione della cancellazione in questo punto. Se è lì la causa, si
risolverebbe senza toccare una riga nostra — ma richiede ricompilazione
e un giro di collaudo completo, quindi più lento.
Nessun codice toccato, come da patto. Dimmi come vuoi procedere — la
mia inclinazione sarebbe A (per capire, gratis) più B (per limitare il
danno subito, a prescindere da cosa dirà A), tenendo C sul tavolo per
un giro successivo.
--
.:. MCSM .:.
-> posting from PC with MesNews <-
Back to it.tlc.cellulari.android | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[NeReO]1.23.9 con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-04 13:38 +0200
Re: [NeReO]1.2.9b - con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-04 13:39 +0200
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-04 20:24 +0000
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-04 20:41 +0000
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-04 21:27 +0000
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-05 06:38 +0000
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-05 08:37 +0000
Re: [NeReO]1.2.9b - con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-05 10:40 +0200
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-05 11:27 +0000
Re: [NeReO]1.2.9b - con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-05 14:14 +0200
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-05 18:45 +0000
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-06 13:48 +0000
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-06 22:35 +0000
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-07 19:28 +0000
Re: [NeReO]1.2.9b - con bugfixer Macchia <TOGLIMI_la.macchia.nera@gmail.com> - 2026-09-08 06:36 +0000
Re: [NeReO]1.2.9b - con bugfixer Allen <allen@spamfence.net> - 2026-09-08 12:41 +0000
Re: [NeReO]1.23.9 con bugfixer Cercaparole <cercaparole@-.dai> - 2026-09-04 20:25 +0000
Re: [NeReO]1.23.9 con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-05 10:32 +0200
Re: [NeReO]1.23.9 con bugfixer fandango <fandango@invalid.invalid> - 2026-09-05 08:51 +0200
Re: [NeReO]1.23.9 con bugfixer MCSM <despammed@mcsm.anonaddy.me> - 2026-09-05 10:22 +0200
csiph-web