Failed to unserialise data from file

Failed to unserialise data from file

di Lucia Bartoli -
Numero di risposte: 12

Ho installato una piattaforma 2.5.1 (su Aruba) tutto ok, solo che ogni tanto mentre lavoro come amministratore o durante il salvataggio delle modifiche o nel passaggio delle schermate appare una pagina bianca con la dicitura:

"E' stato rilevato un errore di programmazione, deve essere sistemato da un programmatore: Failed to unserialise data from file. Either failed to read, or failed to write."

Aspetto un attimo ritento e tutto torna a posto.

Qualcuno sa darmi informazioni utili a risolvere il problema? Grazie.

Media dei voti:  -
In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Alessandro Rodigari -

Ciao, a me capita talvolta con la 2.4, ho un paio di installazioni su tophost, ma ho sempre imputato l'errore al provider, già la piattaforma è lentissima.. immaginavo che ogni tanto andasse in timeout il db.. d'altronde per adesso sono demo, null'altro si puo' far girare su un provider da 12 euro all'anno.

In riposta a Alessandro Rodigari

Re: Failed to unserialise data from file

di Lucia Bartoli -

Grazie Alessandro è quello che vorrei capire se è un problema legato al provider o a moodle. Ma se è un errore di programmazione, come dice l'avviso potrebbe essere un bug? o qualcosa che può essere corretto?

Mi sembra di capire che possa esserci un problema nel file lib.php della cache, ma poiché non sono un'esperta aspetto lumi dai guru di moodle. Grazie.sorridente

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Matteo Scaramuccia -

Ciao a Tutti,
il problema è di Moodle e probabilmente potrebbe anche essere relazionato al Provider - ad esempio, su un shared hosting affaticato da molto I/O su disco - ma le condizioni al contorno non sono ancora state ben identificate: genericamente si tratta probabilmente di una race condition che si verifica quando più utenti - una delle condizioni sembra essere che gli utenti abbiano il medesimo ruolo - cerchino di sovrascrivere la medesima porzione di cache.

L'errore dipende non dal Database ma da un nuovo componente, MUC, di Moodle 2.4+ che sotto certe condizioni - tra le altre, la configurazione di default - si presenta nella forma che avete segnalato.

Agli sviluppatori non è mai capitato - si dice sempre così ammiccante - e non ci sono segnalazioni in merito se non il fatto che nella costruzione di http://learn.moodle.net/ si stanno proprio verificando i medesimi errori per cui Moodle HQ sta ora controllando approfonditamente la genesi del problema per poi risolverlo: dettagli (per ora pochi) in MDLSITE-2373.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Re: Failed to unserialise data from file

di Lucia Bartoli -

anche sulla mia piattaforma avevamo pensato che dipendesse dall'uso di più utenti col medesimo ruolo, ma abbiamo verificato che succede anche con un solo amministratore collegato.

A settembre vorremmo iniziare i corsi, speriamo bene, perché avremo molti utenti collegati contemporaneamente.

 

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Matteo Scaramuccia -

Ciao Lucia,
un aggiornamento per chi non seguisse il Tracker: è stato aperto MDL-41084 per indirizzare più specificatamente il problema. Attualmente l'idea è di non bloccare l'esecuzione durante questi errori ma di proseguire, lasciando traccia solo nei log del server, e forzare il codice a ricavare il dato per calcolo e non dalla cache.

Questo significa che il problema di fondo verrà affrontato in seguito mentre per gli utenti significa che non vedranno più nessun errore a video e quando questo si presenti subiranno un rallentamento per non aver usato in quel momento la cache. Di fatto sembra che la soluzione adottata abbia ridotto sensibilmente la già rara frequenza del problema (almeno su learn.moodle.net).

La difficoltà nel trovare la corretta risoluzione sta nel fatto che si dà per scontato che il file system del server su cui è stato installato Moodle sia sufficientemente veloce e sia ben gestito dal punto di vista del cosidetto file locking mentre i casi citati sopra sembrano derivare dal fatto che per i domini ospitati su server *nix condivisi forse venga usato un disco remoto condiviso in NFS... ma non entro maggiormente nei dettagli tecnici per non annoiare ulteriormente l'audience ammiccante.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Re: Failed to unserialise data from file

di Lucia Bartoli -

Matteo grazie per l'informazione, ho compreso in linea generale il problema, sottolineo che a noi capita anche come semplici utenti e non solo come amministratori, tuttavia vista la mia scarsa conoscenze dell'inglese non posso contribuire al dibattito, chiederò magari a qualche mia collega di intervenire,

Una cosa però non mi è chiara, mi dici che

"Attualmente l'idea è di non bloccare l'esecuzione durante questi errori ma di proseguire, lasciando traccia solo nei log del server, e forzare il codice a ricavare il dato per calcolo e non dalla cache."

date le mie elementari conoscenze di programmazione, questo deve essere fatto dall'amministratore di moodle o sarà gestito attraverso qualche forma di aggiornamento?

Grazie per la tua disponibilità.

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Matteo Scaramuccia -

Ciao Lucia,
allora:

  1. è già stato verificato che non c'è una relazione con l'uso del medesimo account da parte di più persone se non per il fatto che accentua le possibilità di conflitto, quando Moodle sia stato installato su disco remoto e lento (tu come utente Aruba non ci puoi fare nulla a meno di non acquistare un server dedicato);
  2. la soluzione, essendo un problema di Moodle, prevede la correzione del codice (da MDL-41084: https://github.com/nebgor/moodle/compare/50ff861263265ec3d8192e153f3581d828e38984...MDL-41084-master) e si dovrà solo aggiornarlo: non viene quindi richiesto altro che l'aggiornamento alla versione corrente di Moodle, quando il fix sarà reso disponibile (direi sicuramente entro fine Agosto). Il resto delle info che ho lasciate servono solo a dare un sunto di come si stiano muovendo per correggere il problema sul codice di Moodle: mi spiace abbiano creato confusione.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Re: Failed to unserialise data from file

di Lucia Bartoli -

Ci sono novità in merito a questo problema? Cominciamo ad usare la piattaforma e gli errori sono frequenti... una grande scocciatura. triste

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Matteo Scaramuccia -

Ciao Lucia,
novità ce ne sono ma hanno allungato la linea temporale richiesta per la risoluzione finale (do una stima "a sentimento": 2-3 settimane):

  • MDL-41084: è stata messa in discussione la soluzione perché maschera degli errori importanti
  • MDL-41291: è stato affrontato e incluso (ieri), dovrebbe diminuire l'incidenza di una serie di casi che potrebbero portare anche agli errori di cui sopra
  • MDL-41058: è un caso che non ti è (ancora) capitato ma che è sempre in relazione all'uso di file system particolari (remoti, con "limitazioni" sul file locking)

Se avete la possibilità, consiglio di provare ad aggiornare - in ambiente di test: ad esempio una installazione costruita come replica e fatta sullo stesso server, ricavata da una copia del DB e di tutti i files, wwwroot e dataroot, della installazione principale. Consiglio vivamente di avere anche questo sistema di "collaudo" per la pre-valutazione di patch e funzionalità da inserire del sistema quando sarà in produzione - , per adottare intanto i benefici del MDL-41291 e valutare quanto riducano l'incidenza dell'errore nel contesto del server che ospita il vostro Moodle.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Re: Failed to unserialise data from file

di Lucia Bartoli -

Ok grazie ci proverò, abbiamo una piattaforma che potrebbe diventare gemella e quindi servire da test.

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Lucia Bartoli -

Poiché purtroppo la mia conoscenza di php e di inglese è piuttosto superficiale chiedo conferma prima di effettuare errori irreparabili.

Mi è sembrato di capire che il problema di cui all'oggetto sia stato risolto, quindi ho scaricato l'ultima versione di moodle 2.5+

non ho provveduto ad aggiornare l'intero pacchetto, ma sostituito solo il file interessato che dovrebbe essere

nella cartella moodle<cache<stores<file < lib.php

ho fatto la prova su una piattaforma gemella, al momento sembra funzionare e non dare errore.

È corretto questo modo di procedere?

Grazie

In riposta a Lucia Bartoli

Re: Failed to unserialise data from file

di Andrea Bicciolo -
Immagine Core developers Immagine Plugin developers Immagine Translators
Ciao Licia,

purtroppo non è consigliabile cambiare solo un file prelevato da una build più aggiornata di quella che stai usando. La procedura di aggiornamento corretta prevede che tu sostituisca tutti i file aggiornati presenti nella build scaricata.

La documentazione ti può fornire ulteriori informazioni sugli aggiornamenti: http://docs.moodle.org/25/en/Upgrading