Scomparsa dei segnalibri e comportamento previsto di /bookmarks

La nostra community ha segnalato che, dopo l’aggiornamento a Discourse 3.0 circa 2 mesi fa, i loro segnalibri scompaiono a volte misteriosamente. Ho ristretto i reclami agli utenti che utilizzano principalmente /bookmarks (e non /my/activity/bookmarks) — c’è un problema di usabilità correlato tra i due, ma ci arriverò più tardi.

Al momento sono per lo più confuso su quale sia il comportamento previsto di /bookmarks poiché non contengono tutti i segnalibri degli utenti (come elencati in /my/activity/bookmarks). Perché? Per il mio account, la differenza è quasi 1/3 dei segnalibri mancanti: queste due sezioni non dovrebbero essenzialmente elencare la stessa quantità di segnalibri/argomenti?

Pensavo che forse /bookmarks supportasse solo i post segnalibro (e non gli argomenti), ma non sembra essere così: i nostri utenti segnalibro costantemente un post/argomento, lo vedono bene sotto /bookmarks per alcune ore o giorni, e poi… scompare? :confused: Se eliminano il segnalibro, lo segnalibro di nuovo, appare per un po’ e poi scompare di nuovo. Per essere chiari, i segnalibri appaiono sempre bene sotto /my/activity/bookmarks, quindi il segnalibro esiste — ma per qualche motivo non viene visualizzato sotto /bookmarks dopo un po’. Ci deve essere una differenza tra i contenuti delle due sezioni ma non la vedo — cosa mi sfugge? :thinking:


Ora, il motivo per cui questo è particolarmente fastidioso per i nostri utenti è che trovano /my/activity/bookmarks inutilizzabile per il loro caso d’uso principale, che è quello di trovare quali dei loro argomenti segnalibro hanno aggiornamenti (all’interno di una particolare categoria, o solo sull’intero forum).

Vedo molte belle funzionalità nell’interfaccia di /my/activity/bookmarks, ma non soddisfa ancora il loro uso principale: essere in grado di ordinare per ultima attività vedendo contemporaneamente quali argomenti hanno aggiornamenti (numero di non letti). Sarebbe fantastico se anche l’ordinamento funzionasse lì e se venisse visualizzato il numero di post non letti in ogni argomento, ma non sono sicuro di come funzionerebbe la funzionalità per filtrare i segnalibri per categoria sotto /my/activity/bookmarks, quindi forse è giustificabile che esista anche /bookmarks.

Comunque, forse questi sono due problemi separati (forse un bug (?) e un problema UX), ma sono correlati: ho spinto la community a evitare i “segnalibri scomparsi” utilizzando invece /my/activity/bookmarks, ma per quello che lo usano, non funziona davvero. Forse se capiamo i segnalibri “scomparsi” possiamo trovare una soluzione alternativa — quindi: perché non tutti i segnalibri vengono visualizzati sotto /bookmarks?

5 Mi Piace

Ho ridotto parte di questa differenza al fatto che /bookmarks non include i messaggi privati segnalibro e se un argomento ha più post segnalibro, mostra l’argomento solo una volta sotto /bookmarks.

Tuttavia, i segnalibri mancano ancora. Abbiamo diversi membri che hanno argomenti che appaiono sotto il loro /my/activity/bookmarks che non appaiono sempre sotto /bookmarks. Enfasi su sempre perché inizialmente lo fanno sempre, finché alla fine non scompaiono dopo alcune ore/giorni. :anguished:

Di nuovo, questo ha iniziato ad accadere solo quando siamo passati a Discourse 3.0, quindi sospetto un bug.

Non possiamo aggiungere post ai preferiti, solo argomenti :thinking:

La mia comprensione è che puoi aggiungere ai preferiti post specifici; anche più post sullo stesso argomento:

4 Mi Piace

La tua comprensione è davvero valida e solida. La mia non lo è.

Quando diavolo abbiamo ottenuto quello?

Questo, insieme alla possibilità di aggiungere ai preferiti i messaggi della chat (che funziona solo quando il plugin chat è abilitato) è in circolazione da un po’ di tempo, almeno da FEATURE: Promote polymorphic bookmarks to default and migrate (#16729) · discourse/discourse@fcc2e7e · GitHub .

Questo è davvero il nocciolo della questione. Abbiamo ancora questo vecchio percorso /bookmarks, che è alquanto utile a causa dell’ordinamento per non letti/attività ma manca di elementi chiave del nuovo percorso, e probabilmente anche che la query che utilizza ha alcuni problemi con i preferiti di post/argomento e non mostra affatto i preferiti della chat.

Questo ha senso tecnicamente poiché è solo un elenco di argomenti, non un elenco di post, è una delle principali differenze tra il vecchio e il nuovo percorso.

Non sono sicuro di cosa dobbiamo fare qui, lo esaminerò ulteriormente e ne discuterò internamente. Non è l’ideale avere entrambi i percorsi, sarebbe meglio se il nuovo potesse fare la funzionalità mancante del vecchio.

1 Mi Piace

Mi rendo conto ora che forse avrei dovuto dividere un argomento in due: uno per UX e un altro per Bug, poiché il mio problema principale (segnalibri che scompaiono) viene messo in ombra da quello di usabilità.

Nel frattempo ho esaminato la funzionalità dei segnalibri e ho trovato un altro bug, ma sono ancora perso sul perché i segnalibri scompaiano casualmente da /bookmarks. Sembra essere più comune con alcuni argomenti che con altri per qualche motivo, ma non ho trovato uno schema comune. Per me ciò che è davvero strano è che dopo aver aggiunto un segnalibro, sembra visualizzarsi correttamente sotto /bookmarks per un numero arbitrario di ore/giorni, finché non scompare da lì e viene “risolto” solo rimuovendo il segnalibro e aggiungendolo di nuovo.

Per essere chiari, questo non è un problema con l’impostazione di un promemoria per eliminare il segnalibro: nessun promemoria coinvolto e i segnalibri non vengono eliminati (si mostrano ancora sotto /my/activity/bookmarks) — scompaiono solo da /bookmarks dopo un po’.

2 Mi Piace

Spostato questo in Bug, dato che Support non era nessuno dei due, nella speranza che ottenga più visibilità qui.

Mi scuso per il rialzo indiretto, ma abbiamo un bel po’ di utenti frustrati, molto insoddisfatti di questo. Forse il fatto che /bookmarks non sia abilitato di default (cioè, visibile nell’interfaccia utente) riduce in qualche modo l’esposizione a questo bug, ma non riesco a immaginare che questo sia specifico per il nostro forum.

1 Mi Piace

Vogliamo solo dirvi che non vi stiamo ignorando. :slight_smile: Ci stiamo solo guardando intorno per capire come gestire al meglio la situazione. Speriamo di avere presto nuove notizie per voi. :crossed_fingers:

1 Mi Piace

Questo problema sembra frustrante, ma non sono ancora riuscito a riprodurlo e non ho ancora buone ipotesi su cosa possa causarlo.

Ignorerò per ora il problema UX e mi concentrerò sul bug.

Inizierò riformulando il problema:

Passaggi teorici per riprodurlo, ma non con certezza al 100%:

  1. Inizia senza segnalibri
    • Vai su /bookmarks e verifica che non ci siano argomenti nell’elenco
    • Vai su /my/activity/bookmarks e verifica che non ci siano segnalibri nell’elenco
  2. Aggiungi segnalibri ad alcuni post e argomenti. (Ad esempio, 15 segnalibri distribuiti su 10 argomenti unici)
    • Non crediamo che i promemoria siano coinvolti qui, ma forse lo sono?
    • Non sappiamo ancora se faccia differenza se segnalibri un post o un argomento
  3. Prendi nota di quanti argomenti unici sono stati segnalibro
  4. Vai su /bookmarks e verifica che ci siano 10 argomenti nell’elenco
  5. Vai su /my/activity/bookmarks e verifica che ci siano 15 elementi nell’elenco da 10 argomenti
  6. Aspetta
  7. Torna su /my/activity/bookmarks e verifica che ci siano ancora 15 elementi nell’elenco da 10 argomenti
  8. Vai su /bookmarks e vedi che ci sono meno di 10 argomenti nell’elenco

Se qualcuno potesse iniziare con un sito nuovo e riprodurre questo con maggiore certezza, aiuterebbe molto a sbloccare l’identificazione del problema qui.

In alternativa, se qualcuno vede il problema, solo con questi passaggi, forse possiamo consigliare alcuni passaggi di debug per aiutare a identificare il problema:

  1. Vai su /my/activity/bookmarks e scorri fino in fondo.
  2. Conta il numero di argomenti unici (N)
  3. Vai su /bookmarks e scorri fino in fondo.
  4. Vedi che ci sono meno di N argomenti nell’elenco
1 Mi Piace

Grazie per averci provato, so che questo non è in cima alla lista dei bug più eccitanti da risolvere. :sweat_smile:

Sì, questi sono praticamente i passaggi giusti per arrivarci, con note minori che menzionerò più avanti.

Detto questo, a causa della natura casuale del problema (si verifica su un argomento casuale in un dato momento, scompare dopo un tempo arbitrario) potrebbe essere difficile riprodurlo semplicemente impostando la scena con questi passaggi poiché sembra essere richiesto un uso regolare e non è chiaro se e quale sia il trigger (che potrebbe essere il tempo): Non sono riuscito a riprodurre il bug da solo su richiesta e gli utenti che segnalano questo sono tutti molto più attivi di me nell’usare /bookmarks.

Tuttavia, ho segnalazioni di diversi utenti interessati da questo problema che ho verificato tramite impersonificazione dell’account. Ho chiesto ad alcuni di non aggiungere nuovamente ai segnalibri almeno alcuni degli argomenti che sono scomparsi da /bookmarks, quindi, sebbene non possa riprodurlo su richiesta, ho ancora accesso ad account in cui ciò sta accadendo e confrontando /bookmarks e /my/activity/bookmarks mostra le differenze.

Sebbene non possa fornire accesso admin al nostro forum, sono felice di eseguire qualsiasi query SQL o richiesta all’API di Discourse della nostra istanza (anche come gli utenti che riscontrano questo problema) se ciò può aiutare. Si prega di inviarmi un messaggio privato per i dettagli del nostro forum se qualcuno desidera dare un’occhiata.

Ho giocato brevemente con gli endpoint /bookmarks.json e /my/activity/bookmarks.json ma non sono andato lontano: sembra che la pagina /bookmarks venga già caricata con la prima pagina dei risultati e raggiunga l’endpoint solo per altre pagine, a differenza di /my/activity/bookmarks che sembra recuperare tutti i dati dei segnalibri dall’endpoint. Pertanto, non sono riuscito a confrontare le risposte dell’API.

Non sono uno sviluppatore Ruby, ma ho provato a capire dove nel codice atterrano questi 2 endpoint per cercare di capire le differenze, ma non avendo familiarità con lo stack tecnologico mi sono perso nel controller e ho trovato solo UsersController#bookmarks.

Ora alcune note sui passaggi, forse non molto rilevanti, solo per essere espliciti.

È probabilmente corretto, ma non posso confermarlo poiché tutti gli utenti interessati sul nostro forum sono utenti di lunga data con molti segnalibri esistenti e è stato l’aggiornamento a 3.0 a causare questo. Ma, poiché il problema si ripete rimuovendo un segnalibro e aggiungendolo di nuovo, presumo che se si partisse da zero accadrebbe lo stesso. Un singolo utente ha riferito che era più comune subito dopo l’aggiornamento e che è diventato meno frequente… ma potrebbe essere che stiano semplicemente perdendo segnalibri senza accorgersene. :sweat_smile:

Ho controllato con un paio di utenti che sono stati abbastanza pazienti da aiutarmi a capire questo e mi è stato detto:

  • entrambi aggiungono sempre argomenti ai segnalibri, non post
  • non usano mai i promemoria sui segnalibri.

Suppongo che ciò non significhi che non accadrebbe con i post e i promemoria, solo che non sembra dipendere da questo.

Piccola osservazione solo per menzionare che /my/activity/bookmarks può anche mostrare segnalibri dai messaggi privati, quindi una N diversa può derivare anche da quello (qualcosa che mi ha confuso a un certo punto).


Ancora una volta, sono felice di eseguire query SQL, richieste API o fornire ulteriori informazioni se ciò può essere d’aiuto. Sono pienamente consapevole che è difficile eseguire il debug di questo problema a causa del suo comportamento casuale, ma è anche per questo che sta frustrando gli utenti.

1 Mi Piace

Una teoria è che forse topic_users.bookmarked sia in qualche modo fuori sincrono. Se hai identificato un argomento problematico, puoi provare a interrogare la tabella topic_users per la combinazione utente/argomento che trovi e vedere se bookmarked è vero o falso?

Inoltre, sono curioso di sapere se la nuova funzionalità sperimentale /filter mostra gli argomenti “mancanti” con in:bookmarked, ad esempio Discourse Meta. Puoi provare anche questo e farcelo sapere?

1 Mi Piace

Sì, sembra essere così.

Ho esaminato uno dei segnalibri “mancanti” e topic_users.bookmarked era impostato su false per esso. Questo argomento non viene visualizzato sotto /bookmarks, ma è sotto /my/activity/bookmarks.

E non sono sicuro se sia rilevante, ma topic_users.last_posted_at per quel record ha una data di quasi un mese fa (intorno a quando è scomparso), mentre l’argomento in questione ha post quasi quotidianamente da allora.

Comunque, non sono sicuro di cosa tocchi quella flag bookmarked, ma immagino sia sospetta.

C’è qualcos’altro che posso controllare?

Sarei felice di provare, ma siamo su stabile (3.0.3), quindi non ce l’abbiamo ancora.

2 Mi Piace

Questo è molto utile. Grazie. Se hai un’idea di quale versione fosse prima dell’aggiornamento a 3.0.3, questo ci aiuterebbe anche a isolare quando è stato introdotto il bug.

Non posso garantire quando potremo dare priorità a questo, ma penso che abbiamo qualcosa su cui lavorare quando inizieremo.

2 Mi Piace

Siamo sempre stati sul ramo stabile, quindi probabilmente eravamo sulla versione 2.8.14 prima. Abbiamo aggiornato l’11 marzo, probabilmente alla versione 3.0.1 e il primo reclamo è arrivato il 18 marzo, quindi suppongo in teoria potrebbe essere anche fino alla versione 3.0.2. Di conseguenza, temo che ci siano state parecchie release beta di 2.9 nel frattempo.

Se c’è un log da qualche parte nel filesystem per dedurre le versioni precedenti, posso verificarlo, ma 2.8.14...3.0.2 dovrebbe essere corretto.


Non sono sicuro se questo possa essere d’aiuto dato che non ho familiarità con lo schema, ma ho eseguito la query sottostante:

SELECT
  topic_users.user_id,
  topic_users.topic_id
FROM
  bookmarks,
  topic_users
WHERE
  bookmarks.user_id = topic_users.user_id
  AND bookmarkable_type = 'Topic'
  AND bookmarks.bookmarkable_id = topic_users.topic_id
  AND topic_users.bookmarked = false;

e ho ottenuto oltre 3000 corrispondenze.

Suppongo che qualcosa di equivalente possa essere eseguito su qualsiasi sistema di produzione per trovare alcuni segnalibri “mancanti” che, si spera, ci avvicineranno alla riproduzione del problema. Mi scuso se sto affermando l’ovvio, sto solo cercando di essere d’aiuto. :sweat_smile:

2 Mi Piace

Per quanto mi riguarda, siamo ora alla versione 3.1.2 e il problema persiste.

Gli utenti segnalano che alcuni segnalibri “scompaiono” fino a 5 volte al giorno (dopo averli ri-segnalibro ogni volta). Così com’è, la funzionalità è semplicemente troppo compromessa per essere utilizzata e non esiste una buona alternativa che fornisca lo stesso livello di funzionalità.

Ora che c’è un modo per riprodurlo (tramite query SQL) e una gamma di versioni per quando è stato introdotto il bug, posso avere qualche speranza che questo venga affrontato a un certo punto?

Oh, ora che siete alla versione 3.1.2, la prossima volta che vedrete questo, potreste verificare se anche questi argomenti mancano da /filter o se compaiono lì?

Penso che conoscere la risposta a questa domanda ci aiuterà a decidere cosa fare qui.

3 Mi Piace

Ho testato con la funzionalità /filter e sembra che il problema si manifesti anche con una ricerca in:bookmarked.

A causa della natura casuale di quando scompaiono, ho testato questo trovando prima un segnalibro “incriminato” utilizzando la query SQL che ho postato in precedenza e poi impersonando quell’utente, e ho trovato con successo un segnalibro che:

  1. il segnalibro è presente in /my/activity/bookmarks (come previsto),
  2. ma il segnalibro non è affatto elencato in /bookmarks (ma dovrebbe esserlo)
  3. e non viene visualizzato in /filter?q=in%3Abookmarked

Interrogando la tabella del database bookmarks, è ovviamente presente. Interrogando invece la tabella topic_users, la colonna bookmarked è impostata su false, il che immagino possa essere correlato al problema?

Per essere chiari, questo account aveva anche segnalibri in cui il segnalibro veniva visualizzato in tutti e 3 i posti sopra (come dovrebbe essere) — ma questo è uno stato temporaneo e alla fine “scompaiono”. La query SQL sembra restituire solo quelli problematici. Pertanto, eseguirla su un sistema di produzione trafficato e impersonare l’utente rispettato dovrebbe consentire di riprodurre il problema.

1 Mi Piace

Grazie @mentalstring. Riporto questo alla squadra con queste nuove informazioni e vediamo cosa ci viene in mente dopo.

2 Mi Piace

@mentalstring grazie per averci sopportato per tutto questo tempo, scusa se ci è voluto così tanto per arrivare alla radice del problema. Oggi ho trovato la causa e un modo per riprodurla basandomi sui dati che hai fornito e su un report in Data Explorer su Meta. Per riprodurre:

  • Segnalibro un argomento e non segnalibro alcun post al suo interno
  • Elimina o recupera qualsiasi post nell’argomento

È causato da questo job (aggiunto da me anni fa) che non tiene conto dei segnalibri a livello di argomento:

Quindi, una correzione è in arrivo insieme a una migrazione dati per correggere i record esistenti. Posterò di nuovo qui quando l’avrò unita.

3 Mi Piace