|Anonymous | Login | Signup for a new account||2019-06-16 23:19 CEST|
|Main | My View | View Issues | Change Log | Wiki | Tavern | News|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0011752||[DCSS] Bug Report||minor||always||2018-11-07 14:14||2018-11-08 15:08|
|Status||resolved||Product Branch||stable branch|
|Summary||0011752: The game crushes when I try to look up a description of one of Ru's sacrifices.|
1. Press "?"
2. Press "/"
3. Press "A" for descriptions of abilities
4. Type "LOS" (I wasn't sure, what was Barachi's "+LOS")
5. Choose option "h Sacrifice Arcana"
6. Game crushes to the Desktop.
|Tags||No tags attached.|
|I hope you mean that the game cr_a_shes, not that it crushes...|
edited on: 2018-11-07 20:47
What's happening here is sacrifices that have variable effects, that is Arcana, Essence, Health and Purity, are causing a crash when looked up through ?/A. The first line of the crash file is
ASSERT(you.props.exists(sac_def.sacrifice_vector)) in 'god-abil.cc' at line 5311 failed.
Nothing else in the crash file (for me at least) is relevant, as I cannot get stack frames.
This is a serious issue and should be upgraded to "crash" severity, and it's made even worse by the fact that this allows crash scumming since this is an easily replicable crash. Hence, this is of the utmost importance.
A small amount of testing revealed that this was introduced between 0.22-a0-253 and 0.22-a0-750, which are before and after ui-overhaul was merged. Digging deeper, using git tools, shows that this ASSERT line was last modified in 2014, so this was broken by something else changing.
I can run git bisect to figure out what broke it, but I'll do that later.
I don't have time to root-cause this today, but I reproduced in GDB to get stack frames in case anyone else is interested in figuring it out: https://gist.github.com/amalloy/841addcd5073ead2e358376e016134fb [^]
I also checked out 0.22-a0-236-gbe7b7cd180 (NP7, the stuff *after* the commit number is much easier to work with than the stuff before it) to see what's different, and it turns out it doesn't go into _describe_ability at all - in fact _describe_ability doesn't exist in that version. So my guess is this was introduced in https://github.com/crawl/crawl/commit/0867f0562a14be6d141dc6a458a27307899c3619 [^] - I'll mention this bug to aidanh and see if he has an easy fix.
|I committed a workaround in https://github.com/crawl/crawl/commit/9d4b7edeb2ef, [^] preventing the crash in the short term until someone writes a real fix.|
|Thanks for the gist; that helped me track down the relevant functions quickly. I think the only real fix here is to limit the output shown for descriptions, since the relevant output can't be known unless the player is a ru worshipper. I've removed the line describing sacrifice severity and reward for non-followers, as well as the variable effect descriptions, at https://github.com/crawl/crawl/commit/0aa8dd0f38c3. [^]|
|2018-11-07 14:14||JumpingArm||New Issue|
|2018-11-07 15:14||Napkin||Project||Mantis => DCSS|
|2018-11-07 20:04||NormalPerson7||Note Added: 0032786|
|2018-11-07 20:36||NormalPerson7||Note Added: 0032787|
|2018-11-07 20:47||NormalPerson7||Note Edited: 0032787|
|2018-11-07 22:17||amalloy||Note Added: 0032788|
|2018-11-07 22:36||amalloy||Note Added: 0032789|
|2018-11-08 15:08||aidanholm||Note Added: 0032791|
|2018-11-08 15:08||aidanholm||Status||new => resolved|
|2018-11-08 15:08||aidanholm||Fixed in Branch||=> 0.23 development branch|
|2018-11-08 15:08||aidanholm||Resolution||open => done|
|2018-11-08 15:08||aidanholm||Assigned To||=> aidanholm|
|Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group|