Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   list of bugs and wishes (http://angband.oook.cz/forum/showthread.php?t=9046)

wobbly October 31, 2018 17:36

Quote:

Originally Posted by Vivit (Post 134015)
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

Pete Mack October 31, 2018 18:32

Wobbly--
Try a debug build. They have nuch better chance of detection duplicate frees.

Vivit October 31, 2018 20:04

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.

Vivit October 31, 2018 20:41

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?

wobbly October 31, 2018 20:59

Quote:

Originally Posted by Vivit (Post 134021)
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.

Vivit October 31, 2018 21:01

Yes, that is what I mean by manually editing.

Pete Mack October 31, 2018 22:41

Good catch vivit! Well characterized reports of memory errors are a gift to developers.

Vivit October 31, 2018 23:00

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.

Tibarius November 3, 2018 18:20

Quote:

Originally Posted by Carg (Post 132820)
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.

Nick November 11, 2018 21:31

Quote:

Originally Posted by Carg (Post 133885)
I've continued collecting more findings:

And some more answers:

Quote:

Originally Posted by Carg (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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 (Post 133885)
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.


All times are GMT +1. The time now is 11:53.

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