|Anonymous | Login | Signup for a new account||2019-02-17 19:53 CET|
|Main | My View | View Issues | Change Log | Wiki | Tavern | News|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0010472||[DCSS] Bug Report||minor||have not tried||2016-06-02 23:12||2017-02-01 23:43|
|Status||resolved||Product Branch||0.19 ancient branch|
|Summary||0010472: "You kick DEAD MONSTER."|
Sorry, I don't have so much details about this.
Was tabbing away with my demonspawn chaos knight of Uskayaw with chaos branded hand axe and some mutation aux attacks including hoof-like feet and suddenly I see:
"You kick DEAD MONSTER. You slash the orc! You burn the orc."
Didn't save state or anything, continued without any further anomalies, game is over. :(
Played on CDO, morgue file is https://crawl.develz.org/morgues/trunk/TAS2012/morgue-TAS2012-20160602-210002.txt. [^]
|Tags||No tags attached.|
|Attached Files||pain-bond-fix.diff [^] (1,093 bytes) 2017-01-23 02:04 [Show Content]|
|Related morgue: http://crawl.akrasiac.org/rawdata/derrpe/crash-derrpe-20160813-230810.txt [^] . Seems to be another pain bond crash.|
I also encountered the issue in 0.19-a0-1225-gf887c1c.
You slash the hell knight! You kill the hell knight! _You headbutt DEAD MONSTER!!
Here's a save immediately after the attack:
Just saw this in 0.20-a0-270-g8e735b6 with pain bond on an usk character; it's another aux attack.
Here are the last two turns of messages:
_The red ugly thing is no longer paralysed. x2 You bludgeon the red ugly thing!! You burn the red ugly thing. You claw the red ugly thing. _The red ugly thing is heavily wounded. You sock the red ugly thing! You burn the red ugly thing. You kill the red ugly thing! You claw DEAD MONSTER! You can now merge with and destroy a victim.
Here's the save file right after in case it's useful: http://crawl.beRotato.org/crawl/saves/advil-crawl-git-8e735b6151-161210-1605.tar.bz2 [^]
edited on: 2017-01-23 16:04
I think the patch I just uploaded (against 02c11fcf27df) fixes the message issue, not entirely sure if it's the _right_ way to fix it but it's at least a start. The problem is this: an aux attack calls inflict_damage, which then calls hurt and then monster::react_to_damage. At this point, damage may trigger pain bond (radiate_pain_bond) on other monsters, calling hurt etc and potentially killing them. This part is fine, but radiate_pain_bond calls hurt and then radiate on _those_ monsters, which may recurse back to the first one, calling monster::hurt on it again. If this initial monster is killed at this point, monster::hurt will do cleanup on it. Recursion needs to do cleanup on monsters that aren't the initial trigger, so this is a bit tricky to prevent.
The fix in this patch still doesn't get the messages right for this special case -- when a monster dies via recursive pain bond there is aux (or constrict) damage that is never printed.
I only replicated the actual crash on constriction once and couldn't quite figure it out on its own terms, so it's possible there's something else going on there as well. It might have actually been a combination of aux + constriction damage leading to a crash (as opposed to a bad message).
|I just posted a much better fix as a PR: https://github.com/crawl/crawl/pull/435 [^]|
edited on: 2017-01-30 23:33
To replicate this bug I had the best luck:
* create a Ds with a big axe, fill up los with monsters (I mostly used ugly things, they need to be something that might not die immediately to regular melee), set piety to 99, and hit repeatedly.
* create an unarmed Op, etc., hit in a circular fashion to get things constricted. (This also gets you tentacle slap.)
I would see a DEAD_MONSTER message every several fights, sometimes less; it's still rare. Also, set invoc high, and don't forget that pain bond has a long timeout when resetting (5 a few times). I replicated the Op crash only once or twice but it is replicable with patience. Edit: oh and set your stats high.
|To increase the likelihood of reproducing this, set your Str/Dex to 72, be Draconian for tail strikes, grant yourself all the aux attack mutations via &] (talons, fangs, horns), and use an one-handed weapon so you can offhand punch.|
I've pushed advil's patch in f70bbbcf307fc583d5194bdf2c106e342bb257ec. Excellent job tracking down the bug and fixing it.
We'll keep an eye out for any other odd interactions with pain bond.
|2016-06-02 23:12||TAS2012||New Issue|
|2016-08-14 01:09||PleasingFungus||Note Added: 0030895|
|2016-08-27 08:24||johnnyzero||Note Added: 0030932|
|2016-12-10 17:08||advil||Note Added: 0031341|
|2017-01-23 02:04||advil||File Added: pain-bond-fix.diff|
|2017-01-23 02:05||advil||Note Added: 0031441|
|2017-01-23 15:37||advil||Note Edited: 0031441|
|2017-01-23 16:04||advil||Note Edited: 0031441|
|2017-01-25 23:05||advil||Note Added: 0031444|
|2017-01-30 23:30||advil||Note Added: 0031447|
|2017-01-30 23:33||advil||Note Edited: 0031447|
|2017-02-01 23:07||Brannock||Note Added: 0031454|
|2017-02-01 23:43||Brannock||Note Added: 0031455|
|2017-02-01 23:43||Brannock||Status||new => resolved|
|2017-02-01 23:43||Brannock||Fixed in Branch||=> 0.20 development branch|
|2017-02-01 23:43||Brannock||Resolution||open => done|
|2017-02-01 23:43||Brannock||Assigned To||=> Brannock|
|Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group|