URL:
http://gna.org/bugs/?19848
Summary: assertion 'tech == (200-2) || (tech = 0 tech
game.control.num_tech_types)' failed
Project: Freeciv
Submitted by: jtn
Submitted on: Sun Jun 24 13:28:44 2012
Category: client-gtk-2.0
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Assigned to: None
Originator Email:
Open/Closed: Open
Release: S2_3 r21354
Discussion Lock: Any
Operating System: None
Planned Release:
___
Details:
While investigating the savegame attached to bug #19745 (file #15751), I
noticed this assertion failure on the client.
I notice team_pooled_research is enabled on the server, which I suspect is
significant (although every player is in fact on their own team).
Steps to reproduce
# Start server with savegame
# Take Elizabeth I in client (I suspect the exact player doesn't matter).
# Start game
# Go into edit mode
# Select another player (or global observer) with the edit mode control (this
backtrace is for Anna)
# Boom.
#0 0x7fedbdb857bb in raise (sig=value optimised out)
at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
No locals.
#1 0x0056849f in fc_assert_fail (file=0x5cd8ac tech.c,
function=0x5cdb80 player_invention_state, line=114,
assertion=value optimised out, message=0x0) at log.c:476
level = LOG_FATAL
#2 0x0055c9c6 in player_invention_state (
pplayer=value optimised out, tech=value optimised out) at tech.c:112
__FUNCTION__ = player_invention_state
#3 0x0055ca68 in base_total_bulbs_required (pplayer=0x27ca,
tech=10186) at tech.c:621
tech_cost_style = 1
base_cost = value optimised out
__FUNCTION__ = base_total_bulbs_required
#4 0x00422b6d in client_research_sprite () at climisc.c:344
index = value optimised out
#5 0x0041a6e2 in update_info_label () at mapview.c:141
label = value optimised out
pplayer = value optimised out
#6 0x00443e3a in handle_player_info (pinfo=0x8aee680)
at packhand.c:1967
is_new_nation = false
new_tech = true
i = value optimised out
research = value optimised out
pplayer = 0x51b0850
my_player = 0x51b0850
pnation = value optimised out
pgov = value optimised out
ptarget_gov = value optimised out
pslot = value optimised out
tslot = value optimised out
__FUNCTION__ = handle_player_info
#7 0x00449979 in client_handle_packet (type=value optimised out,
packet=0x0) at packhand_gen.c:133
No locals.
#8 0x0041ed6e in client_packet_input (packet=value optimised out,
type=51) at client_main.c:573
__FUNCTION__ = client_packet_input
#9 0x004247f5 in input_from_server (fd=value optimised out)
at clinet.c:419
result = true
packet = 0x0
type = PACKET_PLAYER_INFO
nb = value optimised out
__FUNCTION__ = input_from_server
#10 0x7fedbffb5d3f in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#11 0x7fedbddd18c2 in g_main_context_dispatch () from
/lib/libglib-2.0.so.0
No symbol table info available.
#12 0x7fedbddd5748 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#13 0x7fedbddd5c55 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#14 0x7fedc0378bc7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x0041700f in ui_main (argc=1, argv=0x7fffbac7e298)
at gui_main.c:1669
home = value optimised out
sig = value optimised out
__FUNCTION__ = ui_main
#16 0x0041f20e in client_main (argc=value optimised out,
argv=0x7fffbac7e298) at client_main.c:516
i = 2
loglevel = LOG_NORMAL
ui_options = value optimised out
ui_separator = 192
option = value optimised out
user_tileset = false
fatal_assertions = 6
__FUNCTION__ = client_main
#17 0x7fedbd811c4d in __libc_start_main (main=value optimised out,
argc=value optimised out, ubp_av=value optimised out,
init=value optimised out, fini=value optimised out,
rtld_fini=value optimised out, stack_end=0x7fffbac7e288)
at libc-start.c:226
result = value optimised out
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 369619734168764956,
4272608, 140736327049872, 0, 0, -369767137518386660,
-361875447462854116}, mask_was_saved = 0}}, priv = {pad = {
0x0, 0x0, 0x589060, 0x7fffbac7e298}, data = {prev = 0x0,
cleanup = 0x0, canceltype = 5804128}}}
not_first_call = value optimised out
#18 0x00413209 in _start ()
No symbol