iisgiua / giuaschool

giua@school - Il Registro Elettronico open source dell' I.I.S. Michele Giua
https://iisgiua.github.io/giuaschool-docs/
GNU Affero General Public License v3.0
30 stars 18 forks source link

ERROR 500 #48

Closed rodolfo024 closed 2 years ago

rodolfo024 commented 2 years ago

Ciao, stamani ho scoperto che quando clicco dal giornale di classe "aggiungi" per inserire una lezione compare l'errore 500. Temo che sia dovuto all'eccessiva "pulizia" della cache in quanto dopo aver eliminato ancora un'altra volta i files non riuscivo nemmeno ad arrivare alla scelta della classe. Ripristinando i files invece si sono riuscito a raggiungere il giornale di classe. Ho fatto un test creando da db una lezione che viene visualizzata sul giornale ma cliccando poi per modificarla compare l'errore. Stessa cosa per inserire una valutazione. Si riesce ad arrivare alla maschera di scelta del voto. Quando si tenta di inserire il voto in un giorno dove non c'è firme compare l'errore corretto, mentre quando si sceglie una data giusta compare l'errore 500. Le note vengono inserite ed eliminate correttamente. Sul lato dell'elisione anche la lezione creata da db dal registro si riesce a cancellarla tranquillamente. Correggimi se penso male, ma credo di aver causato il problema cancellando troppe volte tutti i files e cartelle contenute all'interno della cartella \var\cache\prod. Per provare a far ripopolare la cartella ho provato anche inserendo il log ma non è cambiato niente. Credi che abbia avuto l'intuizione giusta oppure il problema potrebbe risiedere da qualche altra parte? Mi sembra che il programma non riesca proprio a scrivere sul database.

trinko commented 2 years ago

Può dipendere dalla cartella cache, ma per i permessi. Puoi cancellare senza problemi i file dentro la cartella cache, ma se i permessi della cartella var/cache/prod non sono corretti, si genere quell'errore. La cartella della cache deve essere scrivibile dall'utente che esegue il server web (solitamente www-data)

rodolfo024 commented 2 years ago

Ho provato a settare i permessi ma non è cambiato niente (erano corretti). E' successo tutto all'improvviso. Per esempio, per sbaglio mi sono accorto che anche dall'account admin non è possibile impostare i colloqui in quanto compare il medesimo errore. Stavolta non ho proprio nessuna idea...

trinko commented 2 years ago

Leggi il log degli errori per capire meglio di cosa si tratta: var/log

rodolfo024 commented 2 years ago

Risolto l'errore dell'inserimento delle lezioni! Un file si era rinominato aggiungendo dopo .php.61ba2230aef2c9.77207967. Tolto questo ammasso di lettere ha riniziato a funzionare. Il problema però rimane nell'inserimento dei voti, ma non nella modifica. Qui però non mi sembra si lamenti tanto di file mancanti ma di errore nella scrittura del db. Stavolta ho bisogno del tuo aiuto! Ti scrivo cosa scrive il log:

[2021-12-16 09:41:43] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\NotNullConstraintViolationException: "An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1364 Field 'materia_id' doesn't have a default value" at /home/jheiddkl/domains/giuaschool.x10host.com/public_html/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php line 111 {"exception":"[object] (Doctrine\DBAL\Exception\NotNullConstraintViolationException(code: 1364): An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1364 Field 'materia_id' doesn't have a default value at /home/jheiddkl/domains/giuaschool.x10host.com/public_html/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:111, Doctrine\DBAL\Driver\PDO\Exception(code: 1364): SQLSTATE[HY000]: General error: 1364 Field 'materia_id' doesn't have a default value at /home/jheiddkl/domains/giuaschool.x10host.com/public_html/vendor/doctrine/dbal/src/Driver/PDO/Exception.php:26, PDOException(code: HY000): SQLSTATE[HY000]: General error: 1364 Field 'materia_id' doesn't have a default value at /home/jheiddkl/domains/giuaschool.x10host.com/public_html/vendor/doctrine/dbal/src/Driver/PDO/Statement.php:92)"} {"client_ip":"37.116.155.14","uri":"http://giuaschool.x10host.com/public/lezioni/voti/alunno/41/1336/O","query_string":null,"method":"POST","username":"l.cattaneo","roles":["ROLE_DOCENTE","ROLE_UTENTE"]}

trinko commented 2 years ago

E' sicuramento dovuto agli ultimi aggiornamenti sulla gestione dei voti: assicurati di aver scaricato le ultime modifiche (ultima build) e modifica il database con i comandi riportati nel file UPDATE-DATABASE-build.sql

rodolfo024 commented 2 years ago

In effetti ho aggiornato soltanto i db e non i files... Ma per aggiornare basta scaricare il codice da github quello con la cartella "_master"?

Lucaccc commented 2 years ago

In effetti ho aggiornato soltanto i db e non i files... Ma per aggiornare basta scaricare il codice da github quello con la cartella "_master"?

A me ha dato lo stesso problema, e l'errore persiste anche dopo aver fatto tutte le procedure. Io ho dovuto ripristinare il db alla versione precedente.

trinko commented 2 years ago

In effetti ho aggiornato soltanto i db e non i files... Ma per aggiornare basta scaricare il codice da github quello con la cartella "_master"?

Si, va bene anche così. Ma consiglio di seguire la procedura di aggiornamento descritta qui: Aggiornamento versione semplificata

trinko commented 2 years ago

A me ha dato lo stesso problema, e l'errore persiste anche dopo aver fatto tutte le procedure. Io ho dovuto ripristinare il db alla versione precedente.

Può essere dovuto al fatto di non aver svuotato la cache. Vedi: Aggiornamento versione semplificata

rodolfo024 commented 2 years ago

Posso non sovrascrivere la cartella "templates" in quanto ho modificato tutte le intestazioni (già due volte) oppure sono state fatte modifiche anche li?

trinko commented 2 years ago

Posso non sovrascrivere la cartella "templates" in quanto ho modificato tutte le intestazioni (già due volte) oppure sono state fatte modifiche anche li?

Dipende da quale aggiornamento hai scaricato.

Il modo più semplice per sapere quali file sono stati modificati è confrontare data/ora di modifica dei file delle due versioni scaricate. Se non hai più i file originali ma solo quelli che hai modificato, puoi riscaricarli dalla pagina principale del progetto, cliccando in alto su "XXX commits". Ti verrà mostrata la lista di tutte le modifiche presenti.

Esiste anche un modo per fare il confronto direttamente su GitHub tra gli aggiornamenti caricati, ma è un po' più complicato: Comparing commits