Dungeon Crawl Stone Soup Tracker - DCSS
Viewing Issue Advanced Details
11524 Bug Report crash always 2018-07-15 14:39 2018-07-16 20:37
Gorice Remote  
advil Online  
normal WebTiles  
resolved 0.22 ancient branch  
0.22-a0-750-ga7dcef7 done  
none    
none 0.22 ancient branch  
0011524: Crash on approaching rune door vault in Shoals
playing Webtiles trunk on crawl.xtahua.com, username: Gorice. This is occurring in my current game if you can access the save file there.

In Shoals 2 there is a runed door vault with see-thru windows either side of door. I think it has a silver statue inside. Approaching close enough to see the statue and therefore trigger the placing of an exclusion zone around it causes the game to crash. Repeatable every time I try to replay the level.

Almost certainly related to: https://crawl.develz.org/mantis/view.php?id=11425 [^]
and the two duplicates listed there but these are recorded as resolved 6 days ago - has CXC not updated its version of trunk recently?
txt file icon crash-recursive-Gorice-20180715-121439.txt [^] (2,202 bytes) 2018-07-15 14:39 [Show Content]
Issue History
2018-07-15 14:39 Gorice New Issue
2018-07-15 14:39 Gorice File Added: crash-recursive-Gorice-20180715-121439.txt
2018-07-15 14:44 NormalPerson7 Note Added: 0032344
2018-07-16 09:19 Gorice Note Added: 0032348
2018-07-16 20:36 advil Note Added: 0032357
2018-07-16 20:36 advil Status new => resolved
2018-07-16 20:36 advil Fixed in Branch => 0.22 development branch
2018-07-16 20:36 advil Resolution open => done
2018-07-16 20:36 advil Assigned To => advil

Notes
(0032344)
NormalPerson7   
2018-07-15 14:44   
The original crash file (not the recursive crash file) which has all the relevant crash information is here: https://crawl.xtahua.com/crawl/morgue/Gorice/crash-Gorice-20180715-112304.txt [^]
(0032348)
Gorice   
2018-07-16 09:19   
Pretty sure the culprit is this update 2 days ago:
https://github.com/crawl/crawl/commit/0f663418af6b7a04e1d422e9d917873df98f715c#diff-6d18b3a6048f555ddb48d0e3a4967065 [^]

AFAICS, despite its name, hash_rand() doesn't involve any randomness and will always give the same output hash with the same input data. So if what it generates results in m_doll.parts[p] getting set to TILEP_HELM_PUMPKIN then repeatedly redoing it will not change that and the
do{}while (m_doll.parts[p] == TILEP_HELM_PUMPKIN) loop (lines 1308-11) will be infinite (which is the type of error I'm getting).
(0032357)
advil   
2018-07-16 20:36   
Thanks, this should be fixed in https://github.com/crawl/crawl/commit/ac240df97d60 [^]