Potenzialmente… ma a me non spiegherebbe questo strano ritardo che stai vedendo tra le modifiche delle impostazioni. Inoltre, non utilizziamo il vecchio valore di impostazione del sito dopo la migrazione iniziale, quindi non penso che dovrebbe influire sulle cose.
Ok, questo è interessante… manca di nuovo su Foundation sul tuo sito, Moin, anche se è abilitato nell’interfaccia di amministrazione. La pulizia della cache con SiteSetting.clear_cache!(expire_theme_site_setting_cache: true) non sta pulendo la cache. Ottengo due risultati diversi qui:
discourse(prod)> SiteSetting.theme_site_settings_json_uncached(-1)
=> "{\"enable_welcome_banner\":true,\"search_experience\":\"search_field\"}"
discourse(prod)> SiteSetting.theme_site_settings_json(-1)
=> "{\"enable_welcome_banner\":false,\"search_experience\":\"search_field\"}"
E poi ho eseguito questo direttamente:
Discourse.cache.delete(SiteSettingExtension.theme_site_settings_cache_key(-1))
E ha funzionato?? Poi ho cambiato di nuovo la tua impostazione in amministrazione e la cache persiste
Penso che stia succedendo qualcosa di strano con le theme_site_settings in memoria qui:
Perché questo sta dando:
-2=>{:enable_welcome_banner=>false, :search_experience=>"search_field"},
-1=>{:enable_welcome_banner=>true, :search_experience=>"search_field"}}
Mentre se recupero dal DB, ottengo questo, che ha il valore false corretto:
ThemeSiteSetting.where(theme_id: -1)
=>
[#<ThemeSiteSetting:0x00007f9164acb2d0 id: 3, theme_id: -1, name: "enable_welcome_banner", data_type: 5, value: "f", created_at: "2025-07-16 07:04:11.117747000 +0000", updated_at: "2025-08-11 06:35:07.606301000 +0000">,
#<ThemeSiteSetting:0x00007f9164acb190 id: 13, theme_id: -1, name: "search_experience", data_type: 7, value: "search_field", created_at: "2025-07-16 07:04:11.117747000 +0000", updated_at: "2025-07-20 20:56:49.405228000 +0000">]
discourse(prod)> Theme.find(-1).themeable_site_settings
=>
[{:setting=>:enable_welcome_banner, :default=>true, :description=>"Display a banner on your main topic list pages to welcome members and allow them to search site content", :humanized_name=>"Enable welcome banner", :type=>"bool", :value=>false},
{:setting=>:search_experience,
:default=>"search_icon",
:description=>"The default position and appearance of search on desktop devices",
:humanized_name=>"Search experience",
:type=>"enum",
:valid_values=>[{:name=>"search.experience.search_field", :value=>"search_field"}, {:name=>"search.experience.search_icon", :value=>"search_icon"}],
:translate_names=>true,
:value=>"search_field"}]
Ci giochiamo qui:
E qui:
Che viene chiamato qui:
Quindi non sono sicuro del perché stia succedendo questo, ma spiegherebbe perché la cache persiste, perché la cache viene costruita da questo oggetto in memoria.
Modifica: Nota anche che non riesco ancora a riprodurlo altrove, ma riesco a riprodurlo in modo abbastanza affidabile sul tuo sito.
Okay… penso di essere riuscito a riprodurlo localmente, è un bug multi-processo. In pratica, la versione in memoria delle impostazioni viene modificata dall’admin nel processo A, ma poi un utente raggiunge il processo B con una richiesta e finisce per essere quello che imposta il nuovo valore della cache, e la cache finisce con il vecchio valore in memoria.
Altre impostazioni del sito aggirano questo problema aggiornando tutte le impostazioni tramite MessageBus ogni volta che qualcuno le modifica:
Cercherò di avere una soluzione per questo domani (è la fine della mia giornata lavorativa ora), grazie per la tua pazienza Moin!
Ho unito la correzione ora, ci è voluto un po’ più di tempo perché ho dovuto capire come testarla:
Distribuerò presto il tuo sito, Moin.
Modifica: la correzione è stata distribuita.
Chiusura poiché non ho sentito ulteriori problemi, sentiti libero di farmi sapere se ci sono problemi.