View Issue Details

IDProjectCategoryView StatusLast Update
0002282EresseaGeneralpublic2017-03-02 07:11
ReporterEnno Assigned ToEnno  
PriorityurgentSeverityblockReproducibilityalways
Status closedResolutionfixed 
Product Version3.10.5 
Fixed in Version3.10.6 
Summary0002282: Datenfile 1012 kann nicht geladen werden
Description

2 0x00007ffff6961311 in *__GI___assert_fail (

assertion=0x5129cf "i < 4096 && i>0", file=<optimized out>, line=41,
function=0x512a0b "a_readkeys") at assert.c:81

3 0x00000000004b8e4a in a_readkeys (a=0x4375230, owner=0x4374de0,

data=0x7fffffffdc90) at /home/eressea/eressea/git/src/attributes/key.c:41

4 0x00000000004ec8c4 in a_read_i (data=0x7fffffffdc90, attribs=0x4374e40,

owner=0x4374de0, key=5994588)
at /home/eressea/eressea/git/src/util/attrib.c:430

5 0x00000000004ec9a9 in a_read (data=0x7fffffffdc90, attribs=0x4374e40,

owner=0x4374de0) at /home/eressea/eressea/git/src/util/attrib.c:460

6 0x00000000004eb981 in read_attribs (data=0x7fffffffdc90, alist=0x4374e40,

owner=0x4374de0) at /home/eressea/eressea/git/src/util/attrib.c:39

7 0x00000000004d7b7f in readregion (data=0x7fffffffdc90, x=-118, y=52)

at /home/eressea/eressea/git/src/kernel/save.c:1041

8 0x00000000004d7bf6 in read_region (data=0x7fffffffdc90)

at /home/eressea/eressea/git/src/kernel/save.c:1052

9 0x00000000004da5d8 in read_game (data=0x7fffffffdc90)

at /home/eressea/eressea/git/src/kernel/save.c:1688

10 0x00000000004d9aa6 in readgame (filename=0x1d78f28 "1012.dat")

at /home/eressea/eressea/git/src/kernel/save.c:1501
Steps To Reproduce

(gdb) r -t 1012 ../server/scripts/map.lua Starting program: /home/eressea/eressea/game-2/eressea -t 1012 ../server/scripts/map.lua [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". eressea: /home/eressea/eressea/git/src/attributes/key.c:41: a_readkeys: Assertion `i < 4096 && i>0' failed.

TagsNo tags attached.
Faction0
GameE2
Report1012

Activities

Enno

Enno

2017-02-12 18:52

administrator   ~0006961

Ich hab's. Was hier passiert: In der Region ist ein Weihnachtsbaum aktiv, hat also mal region:set_key("xm06") bekommen. Jetzt ist Frühling, und wir machen region:set_key("xm06", false).

Dadurch fällt die Anzahl der keys im at_keys der Region auf 0. Der Lese-Code sagt aber:

assert(i < 4096 && i>0);

Also, es sollten immer zwischen 1 und 4096 keys sein. Da das at_keys aber nicht gelöscht wird, wenn es nicht mehr gebraucht wird (TODO: das sollte es), kann es auch mal eines mit 0 keys an einer Region geben.

Lösung: Die Leseroutine weniger pampig machen.

Issue History

Date Modified Username Field Change
2017-02-12 18:04 Enno New Issue
2017-02-12 18:04 Enno Status new => assigned
2017-02-12 18:04 Enno Assigned To => Enno
2017-02-12 18:52 Enno Note Added: 0006961
2017-02-13 14:13 Enno Status assigned => resolved
2017-02-13 14:13 Enno Resolution open => fixed
2017-02-13 14:13 Enno Fixed in Version => 3.10.6
2017-03-02 07:11 Enno Status resolved => closed