[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Update of bug #18194 (project freeciv): Status:None = Fixed Assigned to:None = cazfi Open/Closed:Open = Closed ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #10, bug #18194 (project freeciv): I confirm that the patch for trunk fixes my reproduction case (which doesn't involve shared vision). ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #7, bug #18194 (project freeciv): Untested patch based on theory from comment #5. (file #13300) ___ Additional Item Attachment: File name: CityTransferUnitRemoval_18194.diff Size:1 KB ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #8, bug #18194 (project freeciv): My patch does not handle players who previously saw unit via shared vision. Anyway, if my patch fixes this for old unit owner at least, it's an improvement over existing code and should probably go in for upcoming releases already. We can leave ticket open for shared vision case. ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Update of bug #18194 (project freeciv): Category:None = general Planned Release:2.3.0, 2.4.0 = 2.2.6, 2.3.0, 2.4.0 ___ Follow-up Comment #9: - S2_2 version (file #13301) ___ Additional Item Attachment: File name: CityTransferUnitRemoval_18194-S2_2.diff Size:1 KB ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #6, bug #18194 (project freeciv): This bug has probably existed forever in one form or other, so at least it isn't regression in S2_3. ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Update of bug #18194 (project freeciv): Planned Release: = 2.3.0, 2.4.0 ___ Follow-up Comment #5: I have not checked the code yet, but maybe this is because they are in the lost city. When city is lost, server sends remove_unit packets for enemy units inside that city since you cannot see inside city any more. You still can see all of your own units, so those are not removed. When also unit then change hands, client may lose vision to square where it is and usually server sends remove_unit packet. However, if that (now enemy) unit is inside (now enemy) city, server believes that client had no info about the client in the first place and does not send remove_unit (so it wouldn't reveal unit's existence to cheating clients) ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #2, bug #18194 (project freeciv): Can you test if my proposed fix for bug #13701 helps with this? ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #3, bug #18194 (project freeciv): It doesn't seem to make any difference to this issue in my reproduction case, I'm afraid (with or without the patch for bug #17990). It's clearly doing _something_, as it clears up the bug #13701 messages. ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
Follow-up Comment #4, bug #18194 (project freeciv): Server may send unit removal packets, but client cannot handle them correctly (at that point any more). A -d 3 log on the server indicates that it's not sending them. A PACKET_UNIT_INFO for the change in ownership goes to the observer, but jtn never receives anything more about that unit: 3: [T330 - 2011/06/10 01:18:42] in transfer_unit() [citytools.c::589]: Transferred Alpine Troops in Siem Pang from Canadian to Iroquois 3: [T330 - 2011/06/10 01:18:42] in send_packet_unit_info_100() [packets_gen.c::13287]: packet_unit_info_100: sending info about (1737) 3: [T330 - 2011/06/10 01:18:42] in send_packet_unit_info_100() [packets_gen.c::13591]: field 'owner' has changed 3: [T330 - 2011/06/10 01:18:42] in send_packet_unit_info_100() [packets_gen.c::13599]: field 'homecity' has changed 3: [T330 - 2011/06/10 01:18:42] in send_packet_data() [packets.c::190]: sending packet type=PACKET_UNIT_INFO(63) len=13 to observer For a unit in Toronto (Armor), jtn eventually gets a UNIT_SHORT_INFO. I'm not sure how that helps, but it seems to: 3: [T330 - 2011/06/10 01:28:14] in transfer_unit() [citytools.c::589]: Transferred Armor in Toronto from Canadian to Iroquois 3: [T330 - 2011/06/10 01:28:14] in send_packet_unit_info_100() [packets_gen.c::13287]: packet_unit_info_100: sending info about (2404) 3: [T330 - 2011/06/10 01:28:14] in send_packet_unit_info_100() [packets_gen.c::13591]: field 'owner' has changed 3: [T330 - 2011/06/10 01:28:14] in send_packet_unit_info_100() [packets_gen.c::13599]: field 'homecity' has changed 3: [T330 - 2011/06/10 01:28:14] in send_packet_data() [packets.c::190]: sending packet type=PACKET_UNIT_INFO(63) len=13 to observer [...] 3: [T330 - 2011/06/10 01:28:14] in send_packet_unit_short_info_100() [packets_gen.c::13998]: packet_unit_short_info_100: sending info about (2404) 3: [T330 - 2011/06/10 01:28:14] in send_packet_data() [packets.c::190]: sending packet type=PACKET_UNIT_SHORT_INFO(64) len=7 to jtn ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev
[Freeciv-Dev] [bug #18194] Client has out-of-date info about units transferred when city lost
URL: http://gna.org/bugs/?18194 Summary: Client has out-of-date info about units transferred when city lost Project: Freeciv Submitted by: jtn Submitted on: Tue Jun 7 23:07:41 2011 Category: None Severity: 3 - Normal Priority: 5 - Normal Status: None Assigned to: None Originator Email: Open/Closed: Open Release: Discussion Lock: Any Operating System: None Planned Release: ___ Details: Split out from bug #17990: After losing a city by means such as civil war, a client can continue to think that it owns units in those cities, even though this makes no sense. Looks like the necessary unit removal packets aren't getting to the client when the units disappear into the hostile city. I've only tried reproducing this on trunk, but that's because the civil_war() command makes it easy there. Don't know if S2_3 has the same problem. Steps to reproduce (adapted from bug 17990 comment 6 http://gna.org/bugs/?17990#comment6: * Trunk r19694. * Start server with savegame canadians-T0330-Y01905-manual.sav.bz2 (file #12846). * Connect one client and take player 'jtn' (Canadian). * Also connect another client as a global observer (user 'observer'). * Start game and run server command '/lua print(civil_war(find.player(0),100))' (force civil war on Canadians, creating the Iroquois). Results: 'jtn' still sees the rebel cities of Winnipeg and Siem Pang, due to having loyal units in vision range. Clicking on Winnipeg brings up a list of supposedly-Canadian units; clicking on Siem Pang selects the single Canadian Alpine Troops. But of course those units have actually defected to the Iroquois (as the global observer can see), and jtn attempting to do anything with them fails. However, not all visible rebel cities are affected by this. Toronto is still visible and contains units, but the client doesn't seem to think there are any Canadian units in there. ___ Reply to this item at: http://gna.org/bugs/?18194 ___ Message sent via/by Gna! http://gna.org/ ___ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev