bugFreeciv - Bugs: bug #19825, in dbv_isset() [bitvector.c::116]:...

 
 
Show feedback again

bug #19825: in dbv_isset() [bitvector.c::116]: assertion 'bit < pdbv->bits' failed.

Submitted by:  Jacob Nevins <jtn>
Submitted on:  Mon 18 Jun 2012 12:01:04 AM UTC  
 
Category: editorSeverity: 5 - Blocker
Priority: 5 - NormalStatus: Fixed
Assigned to: Marko Lindqvist <cazfi>Open/Closed: Closed
Release: S2_4 r21328ishOperating System: GNU/Linux
Planned Release: 2.3.5, 2.4.0, 2.5.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)

Tue 02 Apr 2013 07:42:01 AM UTC, SVN revision 22651:

Disabled non-functional tile vision editing dialog

See bug #19825

(Browse SVN revision 22651)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Tue 02 Apr 2013 07:41:55 AM UTC, SVN revision 22650:

Disabled non-functional tile vision editing dialog

See bug #19825

(Browse SVN revision 22650)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Tue 02 Apr 2013 07:41:50 AM UTC, SVN revision 22649:

Disabled non-functional tile vision editing dialog

See bug #19825

(Browse SVN revision 22649)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Thu 28 Mar 2013 06:38:54 AM UTC, comment #9:

Same patch for S2_3 - the dialog is non-functional and spreading misinformation there too, even if dummy player vision information keeps it from failing asserts.

(file #17572)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Thu 28 Mar 2013 06:26:59 AM UTC, comment #8:

I meant to just inspect the case, but ended with attached stop-gag patch for S2_4. It simply disables non-functional vision dialog from the editor. Code to handle it is still left there in case we decide to make something of it in TRUNK.

Vision dialog was just trying to show vision status of the tile of each player. Without server not sending the information that meant always showing nothing. It was not possible to edit the information from the dialog even in the case of attached player. It would be impossible in the case of FoW status anyway - either something (unit/city) provides the vision or not.

(file #17571)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Thu 21 Feb 2013 07:59:49 AM UTC, comment #7:

>> I would say that the UI should match what the client's player
>> know. But maybe global observer should know the vision of each
>> player in edit mode (of course, this would require more work).
>
>
> I think I could implement this. But I would need a new packet
> (PACKET_PLAYER_TILE_INFO).


S2_4 has been in network protocol freeze for a long time, so I'd rather leave protocol changing part out (even though if we must, we can do it with optional capability). I'm not at all convinced that suppport for rather special case of global observer doing editing work is worth the memory wasted (consider 128 player game with huge map).

Let's first just limit the UI not to access or to display knowledge information of other players (with the special case of global observer being that everyone is "other player")

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Tue 19 Feb 2013 12:17:03 PM UTC, comment #6:

> I would say that the UI should match what the client's player
> know. But maybe global observer should know the vision of each
> player in edit mode (of course, this would require more work).


I think I could implement this. But I would need a new packet (PACKET_PLAYER_TILE_INFO).

pepeto <pepeto>
Project Member
Thu 31 Jan 2013 08:01:33 PM UTC, comment #5:

I would say that the UI should match what the client's player know. But maybe global observer should know the vision of each player in edit mode (of course, this would require more work).

pepeto <pepeto>
Project Member
Wed 12 Dec 2012 01:45:05 PM UTC, comment #4:

> However, back to this case, it would probably be reasonable for
> the editor to realise it will never get vision data for more
> than at most the current player, and change its UI accordingly.


I want consistent policy over these issues instead of deciding separately for each.

I think our options are:
1) Rework the UI to match the fact that you don't know other player's stuff. Make it impossible to edit other players -> require one to 'take' player they want to edit.
2) Send all required information in edit mode (including completele refresh when entering or leaving edit mode)

There's one thing I would miss from current editor if we go by (1): ability to place enemy units/cities relative to my own units position, often to place enemy has not even mapped anywhere near (guessing correct location as the enemy would be pain)

(2) is probably more painful to maintain as we add new fields to send at some situations, but not on others etc. Also takes more memory in client side as it needs to be prepared to get information about all players (reverting bug #18192)

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Tue 19 Jun 2012 11:05:48 PM UTC, comment #3:

> I don't think there's any situation, even global observer, where
> the server keeps the client up-to-date on everyone's vision.


One way to look this is to consider it a bug that Edit mode is not such a situation. Server already sends more information in Edit mode than during normal play (when client should not get information player should not know)

I have to admit that I forgot Editor completely when I implemented bug #18192.

Marko Lindqvist <cazfi>
Project AdministratorIn charge of this item.
Mon 18 Jun 2012 11:54:15 PM UTC, comment #2:

I think this has been exposed by bug #18192.

In the edit dialog, for the Tile tab, the editor tries to display a table of which players can see the tile ("Vision", OPID_TILE_VISION), so it's trying to look at every player's tile_known. But in bug #18192, those got replaced by a dummy for non-client players.
Quite why the editor thinks it can know this as a client I'm not sure; I don't think there's any situation, even global observer, where the server keeps the client up-to-date on everyone's vision.

This is an extreme case of a general approach in the editor of letting you see / attempt to interact with other players' stuff (e.g., player properties such as gold, city properties such as food stock), where it displays values but they're just dummy values such as 0, because the client doesn't know the real values. If you try to change them, they just mutely stay red when you hit Apply.

I suppose the editor can't very well track what it's "supposed" to know -- the server mostly doesn't explicitly tell the client "I'm withholding field X from you", and where it does (SHORT_INFO), the client doesn't make a note of this. Having the editor try to second-guess which fields are valid from the client side would probably be fragile.

However, back to this case, it would probably be reasonable for the editor to realise it will never get vision data for more than at most the current player, and change its UI accordingly.

Jacob Nevins <jtn>
Project Administrator
Mon 18 Jun 2012 12:03:39 AM UTC, comment #1:

Aha, this is reproducible.
Just spawn a new game from the client, go into edit mode, and middle-click on the tile with your initial units.

Here's a gdb backtrace (fortunately this is a -O0 build):

Jacob Nevins <jtn>
Project Administrator
Mon 18 Jun 2012 12:01:04 AM UTC, original submission:

Just seen a bunch of these on my client console with S2_4 r21328ish. I did use edit mode (cf bug #19300).

Here's the one from nearest the top of my scrollback (not the first, there were many):

Jacob Nevins <jtn>
Project Administrator

 

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

Attach File(s):
   
   
Comment:
   

Attached Files

 

Depends on the following items: None found

Items that depend on this one

Digest:
   task dependencies.

 

Carbon-Copy List
  • -unavailable- added by pepeto (Posted a comment)
  • -unavailable- added by cazfi (Posted a comment)
  • -unavailable- added by jtn (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 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 12 Apr 2014 08:20:49 PM UTCcazfiPlanned Release2.4.0,2.5.0=>2.3.5, 2.4.0, 2.5.0
    Sun 28 Apr 2013 11:46:01 PM UTCcazfiStatusReady For Test=>Fixed
      Assigned toNone=>cazfi
      Open/ClosedOpen=>Closed
    Thu 28 Mar 2013 06:38:54 AM UTCcazfiAttached File-=>Added TileVisionEditDisable-S2_3.patch, #17572
      StatusNone=>Ready For Test
    Thu 28 Mar 2013 06:26:59 AM UTCcazfiAttached File-=>Added TileVisionEditDisable.patch, #17571
    Wed 12 Dec 2012 01:45:05 PM UTCcazfiSeverity3 - Normal=>5 - Blocker
    Mon 18 Jun 2012 11:54:15 PM UTCjtnPlanned Release=>2.4.0,2.5.0
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup