Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0011752 [DCSS] Bug Report minor always 2018-11-07 14:14 2018-11-08 15:08
Reporter JumpingArm View Status public  
Assigned To aidanholm
Priority normal Resolution done  
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.
Description My actions:
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.
Additional Information
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0032786)
NormalPerson7 (reporter)
2018-11-07 20:04

I hope you mean that the game cr_a_shes, not that it crushes...
(0032787)
NormalPerson7 (reporter)
2018-11-07 20:36
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.

(0032788)
amalloy (developer)
2018-11-07 22:17

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.
(0032789)
amalloy (developer)
2018-11-07 22:36

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.
(0032791)
aidanholm (developer)
2018-11-08 15:08

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. [^]

- Issue History
Date Modified Username Field Change
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
Powered by Mantis Bugtracker