Unione utenti fallita, voci di database corrotte a causa di un plugin di terze parti

Titolo originale: Pagina principale del forum inaccessibile (schermo vuoto o 404)

Sono moderatore del forum di SocialHub su https://socialhub.activitypub.rocks, il forum tecnologico dedicato al protocollo ActivityPub che alimenta l’universo sociale del Fediverso.

Attualmente è in corso una Conferenza ActivityPub di quattro giorni e c’è stata più attività sul forum rispetto al solito. Questa mattina ho notato che la pagina principale del forum, quando viene aperta direttamente tramite URL, mostra uno schermo completamente vuoto (nessun HTML restituito).

Tuttavia, i collegamenti profondi, come Spritely Project: The Super Exciting Future Of Fediverse - ActivityPub - SocialHub, funzionano ancora e permettono di accedere ad altre funzionalità, come la Ricerca e il Pannello di Amministrazione. Quando si clicca sul logo in alto a sinistra, invece di vedere lo schermo vuoto, viene mostrata una pagina 404.

Ho già avvisato le persone coinvolte nella gestione del server; forse un semplice riavvio del server potrebbe risolvere il problema. Tuttavia, nel caso in cui qualcuno riconosca questo come un problema più grave, apprezzerei molto il vostro feedback, così da poter tornare operativi in tempo prima dell’inizio degli interventi della conferenza oggi.

PS: Il forum è in esecuzione sulla versione v2.6.0.beta1

Potresti voler controllare l’utilizzo delle risorse. Un aumento dei visitatori significa che vengono utilizzate più risorse.

Aumentare le risorse del server aiuterà a gestire l’aumento dei visitatori.

1 Mi Piace

Grazie! I maintainer del server non sono ancora online, ma ho loro inviato questo link :slight_smile:

Ciao, ho proceduto all’aggiornamento all’ultima versione senza esito e ho provato a disabilitare il componente Force Mobile Homepage che abbiamo aggiunto ieri.

Sarebbe gradita ulteriore assistenza. Controllerò i log per eventuali errori pertinenti…

Ecco cosa appare chiamando la home page dall’interno del contenitore:

Started GET "/" for 37.172.69.223 at 2020-10-04 07:32:15 +0000
Processing by CategoriesController#index as HTML
Completed 404 Not Found in 281ms (ActiveRecord: 0.0ms | Allocations: 67648)
ActiveRecord::RecordNotFound (Couldn't find all Users with 'id': (36, 50) (found 1 results, but was looking for 2).)
lib/plugin/instance.rb:259:in `public_send'
lib/plugin/instance.rb:259:in `block (2 levels) in add_to_class'
(eval):48:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/categories_controller.rb:61:in `block (2 levels) in index'
app/controllers/categories_controller.rb:40:in `index'
app/controllers/application_controller.rb:354:in `block in with_resolved_locale'
app/controllers/application_controller.rb:354:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'
1 Mi Piace

Quindi, cambiando l’impostazione della pagina da Categorie e Ultime a ‘Categorie e in Evidenza’, si ripristina l’accesso alla homepage. Per ora dovremo accontentarci di questo… Sospetto che ci sia qualche interazione tra i componenti, ma lo vedremo. Qualsiasi ulteriore chiarimento è il benvenuto. Lo spettacolo deve continuare :slight_smile:

1 Mi Piace

Il tuo problema sembra verificarsi quando carichi gli ultimi post, il che restituisce un errore 404.

Qualcuno ha modificato la denominazione di questo?

Vai nelle impostazioni, cerca “latest” e vedi cosa succede

Grazie @IAmGav per il suggerimento: non abbiamo personalizzazioni per le stringhe relative a “Ultime”.

Alcune pagine sono effettivamente ancora rotte, inclusa una categoria di cui abbiamo effettivamente bisogno :frowning:

Considerando il codice del componente forza homepage mobile, mi chiedo come verificare se ci siano state modifiche nel DB relative a setDefaultHomepage(settings.homepage);. Ma non credo che ciò possa influenzare una categoria. Quindi deve esserci qualcos’altro.


Ho appena cancellato i log per assicurarmi che l’errore corrente non venga effettivamente registrato. Sembra un bug relativo a /latest, /top e alla categoria #meeting. Non sono sicuro di cosa stia succedendo… Sto esaminando anche i log all’interno del container per ulteriori informazioni… Probabilmente è correlato a qualche post malfunzionante nella categoria #meeting

Penso che il problema sia legato a ActiveRecord::RecordNotFound (Impossibile trovare tutti gli utenti con 'id': (36, 50) (trovato 1 risultato, ma se ne cercavano 2).)

Gli ID corrispondono a un account utente che è stato unito, ma sembra che il processo si sia interrotto…

Anch’io penso che questo sia il problema. Non sono un esperto, ma immagino che ci sia un post che fa riferimento al vecchio account che non esiste più (e appare in Top, Ultime e nella categoria conferenza). Se questo è il problema, eseguire una query SQL per eliminare il post o aggiornare l’ID utente al suo interno potrebbe essere un’opzione? Qual è la sintassi?

Il filtro ‘unisci utenti’ nelle azioni di amministrazione non mostra alcun registro. Penso che il processo di unione abbia fallito in qualche modo. @team, come posso investigare e risolvere un’unione utenti fallita? Sembra comunque che il risultato sia corretto: l’account utente esiste con entrambi gli indirizzi email. Devono esserci alcuni ID orfani in alcuni post da qualche parte…

OK, abbiamo ristretto il problema a un singolo argomento…

1 Mi Piace

Questo potrebbe essere utile

No, dice che l’utente (sorgente) non esiste. Sospetto che il passaggio DiscourseEvent.trigger(:merging_users, @source_user, @target_user) non sia stato completato. Dove posso trovare il codice?

Eccoci…

[39] pry(main)> PostReplyKey.where(user_id: 36)
=> [#<PostReplyKey:0x0000558954b92d68 id: 9793, user_id: 36, post_id: 3409, reply_key: "00257885-fe73-e76d-09fb-f0f708c2f032", created_at: Sat, 03 Oct 2020 19:37:20 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:37:20 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6e78 id: 9120, user_id: 36, post_id: 3174, reply_key: "b726e441-1c6c-bd60-27ac-8d8d5feef3d7", created_at: Fri, 02 Oct 2020 14:21:48 UTC +00:00, updated_at: Fri, 02 Oct 2020 14:21:48 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6db0 id: 9802, user_id: 36, post_id: 3413, reply_key: "86e179a1-7516-616c-1040-c26c0539f39d", created_at: Sat, 03 Oct 2020 19:41:36 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:41:36 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6ce8 id: 9821, user_id: 36, post_id: 3418, reply_key: "573f48a4-8263-4759-44f0-f6cb26b66f38", created_at: Sat, 03 Oct 2020 20:37:40 UTC +00:00, updated_at: Sat, 03 Oct 2020 20:37:40 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6c20 id: 9822, user_id: 36, post_id: 3419, reply_key: "9371479c-eeb4-1009-176d-761a854a4ddb", created_at: Sat, 03 Oct 2020 20:40:08 UTC +00:00, updated_at: Sat, 03 Oct 2020 20:40:08 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6b58 id: 9400, user_id: 36, post_id: 3245, reply_key: "e1cd57aa-a811-21f9-5e24-84439e184a8e", created_at: Fri, 02 Oct 2020 21:35:12 UTC +00:00, updated_at: Fri, 02 Oct 2020 21:35:12 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6a90 id: 8613, user_id: 36, post_id: 3067, reply_key: "407edb15-e89d-4369-9fee-1e5eab83385d", created_at: Wed, 30 Sep 2020 13:50:17 UTC +00:00, updated_at: Wed, 30 Sep 2020 13:50:17 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd69c8 id: 9517, user_id: 36, post_id: 3288, reply_key: "140a48d2-1a40-d429-f6e2-2bbe37b4865d", created_at: Sat, 03 Oct 2020 09:54:40 UTC +00:00, updated_at: Sat, 03 Oct 2020 09:54:40 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6900 id: 9736, user_id: 36, post_id: 3388, reply_key: "76cacf9b-5353-0653-806d-f3c2df6689eb", created_at: Sat, 03 Oct 2020 18:37:11 UTC +00:00, updated_at: Sat, 03 Oct 2020 18:37:11 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6838 id: 8643, user_id: 36, post_id: 3011, reply_key: "6d384213-98db-652c-89eb-1979731bb311", created_at: Wed, 30 Sep 2020 20:55:31 UTC +00:00, updated_at: Wed, 30 Sep 2020 20:55:31 UTC +00:00>,
 #<PostReplyKey:0x0000558954bd6770 id: 9772, user_id: 36, post_id: 3400, reply_key: "1e9e0b2e-ecd6-3654-d0da-6e01982a890f", created_at: Sat, 03 Oct 2020 19:22:38 UTC +00:00, updated_at: Sat, 03 Oct 2020 19:22:38 UTC +00:00>]

Quindi ho provato a capire cosa farne… Assegnarli all’utente esistente non risolve nulla. Eliminarli non risolve nulla.

Prossimo passo: ricostruire da zero i topic coinvolti, distruggere quelli vecchi e vedere cosa succede: a meno che qualcuno non abbia un’idea migliore…

1 Mi Piace

PostReplyKey si riferisce all’indirizzo di risposta nelle email e non interagisce con il rendering dell’elenco dei argomenti.

Controllando lo stack trace, l’errore si verifica all’interno di TopicListSerializer durante la serializzazione, in qualche modo all’interno di lib/instance/public.rb.

Prova a controllare l’elenco degli utenti in evidenza dell’argomento per il vecchio ID utente (l’insieme di avatar che appare nella homepage).

1 Mi Piace

Ciao @riking, grazie per la risposta… Per quanto ne sappia, a parte PostReplyKey, non c’è alcun riferimento a questo ID utente mancante. Potrebbe comunque non essere il vecchio ID utente effettivo, dato che non lo conosco. Secondo te come potrei trovarlo, oppure: cosa dovrei cercare nei log con grep?

Se si tratta di utenti in evidenza del topic, questa query dovrebbe individuarlo:

SELECT id
FROM topics
WHERE featured_user1 = 1234
OR featured_user2 = 1234
OR featured_user3 = 1234
OR featured_user4 = 1234
OR last_post_user_id = 1234

La query non ha restituito risultati con il vecchio userid, ma ha trovato un argomento con il nuovo user id, ovvero l’argomento già identificato come problematico. Ho spostato l’argomento in un’altra categoria e, di conseguenza, la categoria ActivityPub Conference 2020 - SocialHub è di nuovo visibile.

Ora immagino che ci sia un riferimento al missing user_id 36 da qualche parte nei dati relativi all’argomento 951, ma finora non sono riuscito a individuarlo. Oppure esiste un’altra dipendenza che sto trascurando, per quanto riguarda l’utente 295?

Hai uno stacktrace per quell’errore?

Nient’altro rispetto a quanto ho pubblicato su User merge failed, corrupted database entries due to third party plugin - #4 by hellekin e commentato in seguito:

1 Mi Piace

Ah, ho perso lo stacktrace in User merge failed, corrupted database entries due to third party plugin - #4 by hellekin. Quindi, il problema è causato da un plugin. Immagino che uno dei tuoi plugin abbia memorizzato qualche tipo di informazione utente che non è stata unita. Potresti fornirmi un elenco dei plugin installati, per favore?

2 Mi Piace