Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002416Eressea[Alle Projekte] Generalöffentlich2018-10-14 09:59
ReporterEnnoBearbeitung durchEnno 
PrioritätniedrigAuswirkungAbsturzReproduzierbarnicht getestet
Status erledigtLösungwird nicht behoben 
Produktversion3.15 
ZielversionBehoben in Version 
Zusammenfassung0002416: 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==

Partei0
SpielE2
Report1061

Notizen / Dateien

Enno

Enno

2018-01-28 11:39

Administrator   ~0007790

Passiert auch in E3 / 442 und E4 / 192.

Enno

Enno

2018-01-28 16:09

Administrator   ~0007793

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.

Enno

Enno

2018-01-28 17:45

Administrator   ~0007796

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.

Enno

Enno

2018-01-28 18:27

Administrator   ~0007797

commit 6fca773 prefers sqlite over db. That's good enough for a 3.15 launch.

Enno

Enno

2018-02-18 10:29

Administrator   ~0007821

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.

Enno

Enno

2018-07-31 11:03

Administrator   ~0008010

Depriorisiert, weil ich inzwischen SQLite für alles benutze.

Enno

Enno

2018-10-14 09:59

Administrator   ~0008138

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.

Eintrags-Historie

Ä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 => 3.16
2018-02-18 10:29 Enno Notiz hinzugefügt: 0007821
2018-05-19 19:09 Enno Zielversion 3.16 => 3.17
2018-07-31 11:03 Enno Zielversion 3.17 =>
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