Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old October 31, 2018, 17:36   #61
wobbly
Veteran
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 1,662
wobbly is on a distinguished road
Quote:
Originally Posted by Vivit View Post
If I repeatedly alternate between pressing 'p' for "previous roll" and 'r' for "new roll" (to keep an old roll and compare my new rolls to it) during standard roller character generation, the game eventually crashes, sometime after only a couple rolls. No error message is shown by default, but when I traced the process with gdb, gdb tells me that the program exited with SIGABRT because of corrupted memory or a double free.

Can anybody else reproduce this? This is in 4.1.3.
Just tried. 50 keypresses(25 'p's 25 'r's). No crash
wobbly is offline   Reply With Quote
Old October 31, 2018, 18:32   #62
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,977
Donated: $40
Pete Mack is on a distinguished road
Wobbly--
Try a debug build. They have nuch better chance of detection duplicate frees.
Pete Mack is offline   Reply With Quote
Old October 31, 2018, 20:04   #63
Vivit
Rookie
 
Vivit's Avatar
 
Join Date: Oct 2018
Posts: 5
Vivit is on a distinguished road
gdb says that the offending line is z-virt.c:67 in mem_free():
Code:
61	void mem_free(void *p)
62	{
63		if (!p) return;
64	
65		if (mem_flags & MEM_POISON_FREE)
66			memset(p, 0xCD, SZ(p));
67		free((char *)p - sizeof(size_t));
68	}
Going up from the stack frame where the fault occurred reveals the following function call:
Code:
#8  0x00573ce4 in string_free (
    str=0x1fa4384 "\270J\372\001are the illegitimate but acknowledged child of a Serf.  ")
    at z-virt.c:110
If I restart the program and reproduce the bug again, the program hangs up in the same place, but with a different string (since the string is one of the things being randomized by the chargen) and different garbage at the beginning of it.

Continuing to test this bug, I've hit other error messages as well, like "realloc(): invalid old size". In this case, the program seems to crash hard; my terminal hangs up. The "double free" message I only see if I'm tracing the program with gdb, but the "invalid old size" displays (right at the end of the curses display, without even a newline before it) even if I'm not tracing the program.

I've also noticed some inconsistent behavior: the history at the bottom of the character sheet sometimes changes when I press 'p'.

Code:
 Name                Age             19          Self  RB  CB  EB   Best
<CHARACTER DATA>
 Max Depth           Town    Shots        0/turn
             
 You are one of several children of a Yeoman.  You are the black sheep 
 of the family.                                                        

<BIG BLANK SPACE>

                                   ['r' to reroll, 'p' for previous roll or 'Enter' to accept]
Note that there is no description of the character's appearance here! This particular bit of data of the data seems to get lost pretty often. The family information there is the same as it was before.

However, sometimes weirder things happen. A crash ususually follows:
Code:
 Name                Age             19          Self  RB  CB  EB   Best
<CHARACTER DATA>
 Max Depth           Town    Shots        0/turn

<NOTHING AT ALL>

                                   ['r' to reroll, 'p' for previous roll or 'Enter' to accept]
Code:
 Name                Age             17          Self  RB  CB  EB   Best
<CHARACTER DATA>
 Max Depth           Town    Shots        0/turn
             
 8o                                                                   
                                                                       
<BIG BLANK SPACE>

                                   ['r' to reroll, 'p' for previous roll or 'Enter' to accept]
I don't always have to strictly alternate between 'p' and 'r' to get the program to crash. Sometimes just pressing them without much pattern will cause it to happen. However, if I press only 'p' or only 'r' a bunch of times, it usually does NOT happen.

Sometimes, especially if I press 'r' a bunch of times in a row without pressing 'p', I will reach a state where pressing 'p' will restore the stats of the previously-rolled sheet, but see the history stay the same. In this state, if I press 'r', the history does change, but if I press 'p', the history stays the same. After rolling a number of new characters, the program may resume retrieving previous characters' histories as normal. Sometimes when histories are not being retrieved properly, the appearance description disappears when the previous sheet is loaded, but the genealogical information remains. When this happens, pressing 'p' again will restore the appearance description with the rest of the history.

Last edited by Vivit; October 31, 2018 at 23:02.
Vivit is offline   Reply With Quote
Old October 31, 2018, 20:41   #64
Vivit
Rookie
 
Vivit's Avatar
 
Join Date: Oct 2018
Posts: 5
Vivit is on a distinguished road
It also looks like I can get the program to crash by manually editing the character history to be too long. Can you replicate that, wobbly?
Vivit is offline   Reply With Quote
Old October 31, 2018, 20:59   #65
wobbly
Veteran
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 1,662
wobbly is on a distinguished road
Quote:
Originally Posted by Vivit View Post
It also looks like I can get the program to crash by manually editing the character history to be too long. Can you replicate that, wobbly?
I'd have to know what you mean by manually editing. If you mean in-game where it says accept character history y/n. If I hit n, then hold down a key for a while then when I press enter the game does in fact crash for me.
wobbly is offline   Reply With Quote
Old October 31, 2018, 21:01   #66
Vivit
Rookie
 
Vivit's Avatar
 
Join Date: Oct 2018
Posts: 5
Vivit is on a distinguished road
Yes, that is what I mean by manually editing.
Vivit is offline   Reply With Quote
Old October 31, 2018, 22:41   #67
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,977
Donated: $40
Pete Mack is on a distinguished road
Good catch vivit! Well characterized reports of memory errors are a gift to developers.
Pete Mack is offline   Reply With Quote
Old October 31, 2018, 23:00   #68
Vivit
Rookie
 
Vivit's Avatar
 
Join Date: Oct 2018
Posts: 5
Vivit is on a distinguished road
Thanks! I know from experience that memory-related bugs are some of the weirdest, nastiest, most elusive, and most resilient kinds of bugs out there, so fixing this quickly is going to require as much information as possible.
Vivit is offline   Reply With Quote
Old November 3, 2018, 18:20   #69
Tibarius
Swordsman
 
Tibarius's Avatar
 
Join Date: Jun 2011
Location: Germany
Age: 49
Posts: 355
Tibarius is an unknown quantity at this point
Quote:
Originally Posted by Carg View Post
07 - changing the font to a larger size does not increase the space a letter gets, so they get truncated]
Nick posted on his Oct28 post, that he does not understand what this is about.

It is about using text chars and altering the font you use.

The program uses a fixed char width and height for each window. If you change a font, this two variables are not automatically adjusted. If you increase the font size, it will result in that chars are not shown completely anymore. If you decrease font size it will result in additional space above/between chars.

The solution for this problem is: after altering the font size, the user can adjust the width and height variables manually using the corresponding menu entries.

For the main window only there is also an automatically adjustment available in the windows menu, it is called "window=>term 0 font tile size => font". If you use that option after choosing a charset with a different width / heigth than before the window size is adjusted to show with the new font as many lines and columns as with the previously charset.

The change / feature request was:
(A) Make this automatically adjustment available for all sub windows as well.
(B) Call this function always after choosing a new charset for a window, so that the user does not need to call this function manually over the menu anymore. (B) ensures, that after choosing a new font, it is readable because width and heigth are adjusted to the required values of the new font.
__________________
Blondes are more fun!
Tibarius is offline   Reply With Quote
Old November 11, 2018, 21:31   #70
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,189
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Carg View Post
I've continued collecting more findings:
And some more answers:

Quote:
Originally Posted by Carg View Post
20 - wish: for auto ignore menu's: could space also work to toggle the ignore? Apparently for me that is such a logical key that I keep making that mistake. There is also no explanation which key should work (although I found the 't' quick enough. Enter works also, but I'd expect the cursor to move to the next item then, and it doesn't.).
I think this one is just a matter of getting used to it - space is kind of reserved as something you can always use to clear messages without it having any gameplay effect, and I think we want to keep that strictly true.

Quote:
Originally Posted by Carg View Post
21 - for a priest, the cure serious spell from the Purifications and Healings book is way higher level (15 vs. 5 --> higher spell failure, worsened by higher base fail: 50 vs 32) and costs more mana (5 vs 4) than the one from the basic book, and I don't see any exta benefit. Shouldn't that be the other way around? That cure mortal wounds version is 4 mana cheaper and only 4 levels higher (but 25% higher base fail).
Will be "fixed" in 4.2 with new classes

Quote:
Originally Posted by Carg View Post
22 - if you browse a spellbook, toggle descriptions on, and scroll through the spells, the longer descriptions lines 3 and 4 do not get erased fully if you select a spell with a single line of text (and line 4 not when two lines). E.g. browse first book, toggle descriptions, select e and then f.
Filed as a bug.

Quote:
Originally Posted by Carg View Post
23 - Wish: show with items that are recharging in their description how long it is expected before they are recharged (I know there is a random factor, but you could use the average), or at least how long it is already charging.
I'm concerned that the player is already bombarded with info, and this might make that info a bit busier - what do others think?

Quote:
Originally Posted by Carg View Post
24 - Wish: monsters shouldn't be able to summon higher lavels than they are: why would a more powerful monster obey a lesser one?
High level doesn't necessarily mean smarter. Also, "I'll just get my manager"

Quote:
Originally Posted by Carg View Post
25 - Why does in the middle of combat (lvl 92 - animal zoo) suddenly a message appear: "FINAL POWER IS 72*"? The only thing object-related was that some spellbooks were burnt at the time.
That's something that can be written when object power is being assessed; it typically only gets written into the logfile for randart generation. My best guess is that it was some kid of memory issue, and I've filed it as a bug (without much prospect of really solving exactly why it happened).

Quote:
Originally Posted by Carg View Post
26 - spells that negatively influence monsters, like confuse monster, list the duration as "dam 40" even though they do not do damage. This is confusing and should read "dur 40", like player booster spells like haste.
I didn't think any did (except maybe Bedlam). Which spells?

Quote:
Originally Posted by Carg View Post
27 - in some cases item description can be confusing, like with a staff of remove curse: "... When activated, it attempts removal of a single curse on an object. Your chance of success is 94.9%". The 94.9% is not the chance to remove the curse but to use the staff, so more correct would be "Your chance of successfully using this item is 94.9%". (But longer, so it might make the item description slightly less clear.)
I feel that on the whole the extra verbosity isn't worth it. The player should be used to seeing this on magic devices, and there is a separate curse menu which tells the odds of removing the curse.

Quote:
Originally Posted by Carg View Post
28 - if a spell beams, monsters hit on the way that are killed seem to survive, and only when the beam has run it's full course the monsters on the way fall over. This is confusing because you are already planning your next attack, only to find out a second later that it is not necessary anymore. Can't monster kill be handled before the beam continues?
Short answer - no. This is the standard way all projections work; it possibly could be rewritten, but I don't think it's worth the time and potential of introducing new bugs. This is another case of just needing to get used to it.

Quote:
Originally Posted by Carg View Post
29 - Wsh: the game allows movement by mouse click. Why doesn't it use the monster pathfinding so that you can click further away - that would really make it easier to e.g. move to the stairs when you've finished the level. The only issue might be that you should not be able to find the quickest route through unexplored territory (which is a bit cheating).
You are never "finished the level" - a new monster might have spawned between yo and the stairs. I think the mouse movement as is is OK.

Quote:
Originally Posted by Carg View Post
30 - If you run (Shift-direction) you stop one step before an item, and when you run again one step beyond the item (which doesn't seem to make sense to me - stopping on the item itself seems most natural to me) And if there is a trap at that square beyond the item, you trigger it even when your disarm is 100%.
Added this to another bug about running.

Quote:
Originally Posted by Carg View Post
31 - with the action that doubled armor class of all armors, I suspect the weapons that give AC were not increased, because it seems that, apart from the Cutlass 'Gondricam', the AC bonuses from weapons is peanuts, like a defender [+2]!?
The range of armour classes was doubled, not all armour classes, mostly by increasing the AC of heavy armour so it was more wearable. Possibly some weapons could be looked at to have their AC increased, but I think it's a marginal issue.

Quote:
Originally Posted by Carg View Post
32 - an fully identified cloak [1, +6] (cursed - teleportation prevention), incorrectly displays a lot of ? in the character resistance overview.
Added to another bug about ID issues.

Quote:
Originally Posted by Carg View Post
33 - Wish: unique Ainur Osse should not have nether breath and lower Xp - that is not fitting to an angel (ainur) and it is not even evil. Having nether (550) breath is also unbalanced for level 62 - even with resistance that can do up to 471 damage. The remaining capacities, esp. water ball, and the fact that it is very quick still make it dangerous enough.
Discussion: should damage also be capped to monster level, e.g. 60*level? Or even to dungeon level - you could say that the specific monsters that are able to survive at deeper levels are the stronger ones of the spieces.
Agreed about Osse and nether - all monsters will be up for re-examination for 4.2. Capping damage by level is an interesting idea, but on the whole I think it's too restrictive.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Variant list caruso Oook! 13 July 5, 2013 19:14
list experience value in Monster List view fbas Vanilla 1 November 24, 2010 20:51
object list fyonn Vanilla 17 June 23, 2010 17:04
Hellband 0.8.8 Wish list konijn_ Variants 33 February 10, 2010 17:22
Variant list pav Oook! 19 September 19, 2008 00:07


All times are GMT +1. The time now is 23:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.