eressea / server

Eressea is an automated play-by-mail strategy game server.
https://www.eressea.de/
Other
27 stars 23 forks source link

error 22 during cr report #1026

Closed ennorehling closed 1 year ago

ennorehling commented 1 year ago

Wir haben einen Heisenbug, der heute bereits dreimal während github actions aufgetreten ist:

https://github.com/eressea/server/actions/runs/6207190176/job/16852185748

4/6 Test #4: lua-e2 ...........................Subprocess aborted***Exception:   0.30 sec
Loaded testsuite with 393 tests in 40 testcases.

    ............................................................
    ............................................................
    ........................reports/364-f3vk.cr: No such file or directory
ERROR: error 22 during cr report for faction Partei f3vk (f3vk): Invalid argument
ennorehling commented 1 year ago

Erstmalig aufgeteten im PR #1022, aber hat mit dem eigenltiche n PR nichts zu tun.

ennorehling commented 1 year ago

Das "No such file or directory" ist vielleicht die interessantere Meldung. Gibt es das reports/ Verzeichnis nicht?

ennorehling commented 1 year ago

In report_conputer:

    if (F == NULL) {
        perror(filename);
        return -1;
    }

Das sieht aus wie die Zeile, die das schreibt. Da hat das fopen() nicht geklappt.

ennorehling commented 1 year ago

Das reports Verzeichnis sollte in create_directories erzeugt werden.

ennorehling commented 1 year ago

Oh, das ist nicht nur write_reports, das diesen Code triggert, sondern auch das einfache write_report(f) - da sind also noch mehr Tests mögliche Gründe.

ennorehling commented 1 year ago

Ich gebe den Parteien mal allen eindeutige Nummern, damit man am Dateinamen feststellen kann, welcher Test im Falle des Fehlers keinen Report schreiben konnte. Vielleicht kommen wir der Sache damit irgendwie näher.

ennorehling commented 1 year ago

Jetzt ist es gerade auf meinem Rechner passiert, wo ich heute neu installiert habe.

reports/239-ecp6.cr: No such file or directory
ERROR: error 22 writing report 239-ecp6.cr for faction Partei ecp6 (ecp6): Invalid argument

Es scheint, dass das setzen der Partei-Id entweder nicht funktioniert hat, oder noch irgendwo anders Reporte geschrieben werden?

ennorehling commented 1 year ago

Ich hab's gefunden! Der test_bug_2978 (die Sache mit MACHE BURG und VERKAUFE) schreibt einen Report (warum auch immer), ohne vorher init_reports() aufzurufen, was das reports/ Verzeichnis erstellt.

ennorehling commented 1 year ago

Fix ist in develop.