bugFreeciv - Bugs: bug #21151, 2.4.0 GTK2 client crash on save...

 
 
Show feedback again

bug #21151: 2.4.0 GTK2 client crash on save local options

Submitted by:  None
Submitted on:  Fri 20 Sep 2013 06:33:01 PM UTC  
 
Category: client-gtk-2.0Severity: 3 - Normal
Priority: 5 - NormalStatus: None
Assigned to: NoneOriginator Email: -unavailable-
Open/Closed: OpenRelease: 2.4.0
Operating System: GNU/LinuxPlanned Release: 2.4.1,2.5.0,2.6.0

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Fri 08 Nov 2013 11:40:05 PM UTC, SVN revision 23711:

In tileset_free(), player color sprites from the global tileset were
freed rather than the specified one. This caused player color sprites
(national borders and unit backgrounds) to stop working when the local
options dialog was popped up for the first time.

Reported by Christian Knoke (chrisk AT cknoke.de) and myself.

See gna bug #21116 and gna bug #21151.

(Browse SVN revision 23711)

Jacob Nevins <jtn>
Project Administrator
Fri 08 Nov 2013 11:38:08 PM UTC, SVN revision 23709:

In tileset_free(), player color sprites from the global tileset were
freed rather than the specified one. This caused player color sprites
(national borders and unit backgrounds) to stop working when the local
options dialog was popped up for the first time.

Reported by Christian Knoke (chrisk AT cknoke.de) and myself.

See gna bug #21116 and gna bug #21151.

(Browse SVN revision 23709)

Jacob Nevins <jtn>
Project Administrator
Fri 08 Nov 2013 11:34:27 PM UTC, SVN revision 23707:

In tileset_free(), player color sprites from the global tileset were
freed rather than the specified one. This caused player color sprites
(national borders and unit backgrounds) to stop working when the local
options dialog was popped up for the first time.

Reported by Christian Knoke (chrisk AT cknoke.de) and myself.

See gna bug #21116 and gna bug #21151.

(Browse SVN revision 23707)

Jacob Nevins <jtn>
Project Administrator
Thu 07 Nov 2013 12:38:20 AM UTC, comment #8:

Patch for freed player color issue attached to bug #21116.

Don't know for sure if it's fix the reported crash.

> However, I'm generally uneasy about enumerating tilesets through
> tileset_read_toplevel() -- it's documented as having side-effects
> [...]

I've split this concern into a new bug #21263.

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 03:37:27 PM UTC, comment #7:

Bug #21074 might be another report of a crash related to the local options dialog (it's not entirely clear).

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 03:29:46 PM UTC, comment #6:

I think I've got it.

The options dialog calls get_tileset_list() to get the list of tilesets. The first time it's called (which is not until the option dialog is opened for the first time), it repeatedly calls tileset_read_toplevel() and tileset_free() on a local struct tileset.

tileset_free() itself calls tileset_player_free(), but on the global tileset rather than the local t. That's clearly a bug, and fixing it fixes the assertion-failures-and-black-background symptom for me.

However, I'm generally uneasy about enumerating tilesets through tileset_read_toplevel() -- it's documented as having side-effects, and whether or not those comments are correct, it certainly calls set_city_names_font_sizes() which has global side-effects. Dunno whether that's best considered a bug in tileset_read_toplevel().

(I don't know if any of this has any bearing on the crash originally reported. I haven't spotted a way this fault can cause badness like a NULL pointer dereference.)

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 02:37:45 PM UTC, comment #5:

(from chrisk on freeciv-dev)

>> Is it possible that this was the option you'd changed when you
>> did the "save -> crash"?
> Yes, this is very much possible.
> Christian


In other news, if I have solid colour configured, it immediately goes black with assertion failures when I just open the local settings dialog. That's deeply fishy.

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 02:23:03 PM UTC, comment #4:

Ah, my confusion is caused by it making a difference whether I change the option via View > Options > Local client (troublesome), or via the View menu (works fine). Interesting.

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 02:19:52 PM UTC, comment #3:

> A quick test with 2.4.0 readily reproduces this assertion
> failure, and all players' units have black background -- so
> this option does seem to be broken.

Well, I could reproduce it -- turning on the option after starting the client with it off, or even turning it off and on again after starting with it on, readily showed this symptom. But now (after a recompile) I can't reproduce it at all.

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 01:58:03 PM UTC, comment #2:

I think this assertion failure can only occur if the client has "Solid unit background color" (solid_color_behind_units) set.

A quick test with 2.4.0 readily reproduces this assertion failure, and all players' units have black background -- so this option does seem to be broken.

Is it possible that this was the option you'd changed when you did the "save -> crash"?

Jacob Nevins <jtn>
Project Administrator
Sun 03 Nov 2013 01:52:52 PM UTC, comment #1:

> I append a logfile, which contains, connected or not, a lot of
> ...
> 1: in fill_sprite_array() [tilespec.c::4554]: assertion 't->sprites.player[player_index(owner)].background != NULL' failed.

Interesting. I suspect it's not related to your other symptom, but I wonder if it's related to bug #21116?

Jacob Nevins <jtn>
Project Administrator
Fri 20 Sep 2013 06:33:01 PM UTC, original submission:

Hello,

GTK2 client self-compiled frpm svn on i386

Start client, new game, start, local options, save -> crash

I append a logfile, which contains, connected or not, a lot of

1: in fill_sprite_array() [tilespec.c::4554]: Bitte berichten Sie diese Fehlermeldung unter http://gna.org/projects/freeciv/
1: in fill_sprite_array() [tilespec.c::4554]: assertion 't->sprites.player[player_index(owner)].background != NULL' failed.
1: in fill_sprite_array() [tilespec.c::4554]: Bitte berichten Sie diese Fehlermeldung unter http://gna.org/projects/freeciv/
1: in fill_sprite_array() [tilespec.c::4554]: assertion 't->sprites.player[player_index(owner)].background != NULL' failed.
1: in fill_sprite_array() [tilespec.c::4554]: Bitte berichten Sie diese Fehlermeldung unter http://gna.org/projects/freeciv/
1: in fill_sprite_array() [tilespec.c::4554]: assertion 't->sprites.player[player_index(owner)].background != NULL' failed.
1: in fill_sprite_array() [tilespec.c::4554]: Bitte berichten Sie diese Fehlermeldung unter http://gna.org/projects/freeciv/

Christian

Anonymous

 

(Note: upload size limit is set to 1024 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #19057:  freeciv.log.bz2 added by None (19kB - application/x-bzip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jtn (Posted a comment)
  • -unavailable- added by chrisk (Updated the item)
  • -unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 03 Nov 2013 03:29:46 PM UTCjtnPlanned Release=>2.4.1,2.5.0,2.6.0
    Sat 21 Sep 2013 07:24:14 PM UTCchriskRelease=>2.4.0
    Fri 20 Sep 2013 06:33:01 PM UTCNoneAttached File-=>Added freeciv.log.bz2, #19057
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup