Vediamo periodicamente che la creazione di un indice GIN su post_search_data provoca molti Lock:relations su performance insight. L’eliminazione della sessione che crea questo indice rilascia tutte le sessioni bloccate. Ciò che è interessante è che l’indice utilizza “concurrently”, che non dovrebbe essere un’operazione di blocco. È anche interessante perché lo prefissa con temp.
CREATE INDEX CONCURRENTLY temp_idx_recent_regular_post_search_data ON post_search_data USING GIN(search_data) WHERE NOT private_message AND post_id >= 12431619
Ho anche provato a ridurre idle_in_transaction_session_timeout a 10 minuti (inizialmente era impostato a 1 giorno), ma non ha fatto alcuna differenza. Qualcun altro ha riscontrato un problema simile? Se sì, come lo avete gestito?
La nostra versione è Discourse 2.7.0 e la versione di Postgres è 13.8. L’app e il database non sono su docker ma ospitati individualmente (ec2, rds).
Non sarò in grado di aiutarti con il problema specifico che stai sollevando, ma c’è un motivo per cui utilizzi una versione di Discourse così obsoleta? Più aspetti, più è probabile che tu possa riscontrare problemi durante l’aggiornamento. Idealmente, dovresti sempre utilizzare l’ultima versione. Inoltre, gli aggiornamenti includono occasionalmente correzioni di sicurezza.
Sto gestendo un sito su ecs con rds e non ho riscontrato problemi, ma è una versione aggiornata. È difficile indovinare quale possa essere il problema senza maggiori dettagli sulla tua configurazione.
In generale, quando qualcuno ha un problema con una versione molto vecchia, la prima risposta è aggiornare.