Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002416 | Eressea | General | öffentlich | 2018-01-28 11:33 | 2018-10-14 09:59 |
Reporter | Enno | Bearbeitung durch | Enno | ||
Priorität | niedrig | Schweregrad | Absturz | Reproduzierbar | nicht getestet |
Status | erledigt | Lösung | wird nicht behoben | ||
Produktversion | 3.15.0 | ||||
Zusammenfassung | 0002416: valgrind meldet Fehler in BerkeleyDB driver | ||||
Beschreibung | Ich habe diese Woche das Backend für Befehle von SQLite auf libdb umgestellt. Aus der Testauswertung heute: testing turn 1060 of game 2 ==21178== Syscall param pwrite64(buf) points to uninitialised byte(s) ==21178== at 0x62E6773: pwrite_nocancel (syscall-template.S:82) ==21178== by 0x56266E8: __os_io (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x561388C: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5613A82: memp_bhwrite (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5612CBA: memp_alloc (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5615537: memp_fget (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55D7102: db_new (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x553E726: bam_split (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5536B09: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55374B4: ram_append (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55C0994: db_put (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55D239C: db_put_pp (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== Address 0x8ed1ec8 is 328 bytes inside a block of size 8,280 alloc'd ==21178== at 0x4C28BED: malloc (vg_replace_malloc.c:263) ==21178== by 0x5623EE4: os_malloc (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55F1535: env_alloc (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x56122E8: memp_alloc (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5615537: memp_fget (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55D7102: db_new (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x553E726: bam_split (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x5536B09: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55374B4: ram_append (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55C0994: db_put (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x55D239C: db_put_pp (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so) ==21178== by 0x4F452C: db_driver_order_save (berkeley.c:49) ==21178== | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | 0 | ||||
Spiel | E2 | ||||
Report | 1061 | ||||
Passiert auch in E3 / 442 und E4 / 192. |
|
Ich habe versucht, das mit einem kleinen Programm zu reproduzieren, ohne Erfolg. Es passiert nur, wenn ich auswerte. Bis heute habe ich SQLite als Backend für die Befehle benutzt, an der Änderung liegt es, dass das jetzt erst auftaucht. Der BerkeleyDB Driver ist offenbar noch nicht reif. Entweder finde ich den Bug, oder ich stelle wieder auf SQLite um, die Alternative habe ich ja immer. Das sollte also 3.15 nicht beeinträchtigen, selbst wenn ich den Bug hier nicht finde. |
|
Auch wenn ich die Auswertung auf den Befehl parse_order("@GIB abcd ALLES Gurgelkraut", default_locale) reduziere (in process_orders hinein gehackt), kriege ich immer noch den Valgrind-Fehler. Wenn ich in einem kleinen Testprogramm nor Datenbank öffnen, Datensatz schreiben, Datenbank schließen tue, passiert nichts. Ich werde also erstmal auf das SQLite Backend zurück wechseln. Die CMake Konfiguration könnte da vereinfacht werden, sehe ich. |
|
commit 6fca773 prefers sqlite over db. That's good enough for a 3.15 launch. |
|
The current 3.16 branch still prefers db over sqlite3 if /usr/include/db.h exists. Since I now consider db broken, I should change that default. |
|
Depriorisiert, weil ich inzwischen SQLite für alles benutze. |
|
Der Treiber wird zur Zeit nicht benutzt. Wenn ich ihn mal irgendwann doch brauche, muss ich mich um das Problem kümmern, aber bis dahin ist der sicher eh dem Bitrot zum Opfer gefallen. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2018-01-28 11:33 | Enno | Neuer Eintrag | |
2018-01-28 11:33 | Enno | Status | neu => zugewiesen |
2018-01-28 11:33 | Enno | Bearbeitung durch | => Enno |
2018-01-28 11:39 | Enno | Notiz hinzugefügt: 0007790 | |
2018-01-28 16:09 | Enno | Notiz hinzugefügt: 0007793 | |
2018-01-28 16:10 | Enno | Priorität | normal => niedrig |
2018-01-28 17:10 | Enno | Zusammenfassung | valgrind meldet Fehler inBerkeleyDB driver => valgrind meldet Fehler in BerkeleyDB driver |
2018-01-28 17:45 | Enno | Notiz hinzugefügt: 0007796 | |
2018-01-28 18:27 | Enno | Notiz hinzugefügt: 0007797 | |
2018-01-28 18:29 | Enno | Zielversion | 3.15.0 => 3.16.0 |
2018-02-18 10:29 | Enno | Notiz hinzugefügt: 0007821 | |
2018-05-19 19:09 | Enno | Zielversion | 3.16.0 => 3.17.0 |
2018-07-31 11:03 | Enno | Zielversion | 3.17.0 => |
2018-07-31 11:03 | Enno | Notiz hinzugefügt: 0008010 | |
2018-10-14 09:59 | Enno | Status | zugewiesen => erledigt |
2018-10-14 09:59 | Enno | Lösung | offen => wird nicht behoben |
2018-10-14 09:59 | Enno | Notiz hinzugefügt: 0008138 |