UFO:Alien Invasion

Archive => Bugs prior to release 2.3 => Topic started by: O01eg on August 14, 2009, 07:42:15 pm

Title: Game crash when catch ufo supply R25676
Post by: O01eg on August 14, 2009, 07:42:15 pm
I catch ufo supply and send it ti my base. Game crashed in some time. It's log of release version (I got code's lines):
Code: [Select]
Cvar 'mission_recoverybase' wasn't found
Cvar 'mission_recoverynation' wasn't found
********************
ERROR: UR_Prepare: No room in large UFO hangars to store craft_ufo_supply
********************
./ufo(Sys_Backtrace+0x15)[0x548ce1] /tmp/ufoai/src/ports/unix/unix_main.c:487
./ufo(Com_Error+0x17d)[0x4f4f2f] /tmp/ufoai/src/common/common.c:264
./ufo(UR_UpdateUFOHangarCapForAll+0x0)[0x4b9a08] /tmp/ufoai/src/client/campaign/cp_uforecovery.c:271
./ufo[0x4b9de3] /tmp/ufoai/src/client/campaign/cp_uforecovery_callbacks.c:368
./ufo[0x4ba622] /tmp/ufoai/src/client/campaign/cp_uforecovery_callbacks.c:426
./ufo(Cbuf_Execute+0x21a)[0x4ead39] /tmp/ufoai/src/common/cmd.c:196
./ufo[0x44cb3d] /tmp/ufoai/src/client/cl_main.c:902
./ufo[0x4f4148] /tmp/ufoai/src/common/common.c:1051
./ufo(Qcommon_Frame+0xdd)[0x4f3d21] /tmp/ufoai/src/common/common.c:1129
./ufo(main+0x45)[0x548a19] /tmp/ufoai/src/ports/linux/linux_main.c:53
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f7a040ec56e]
./ufo[0x428789]
music change to van_geoscape (from ufo2)
Calling subsystems
...subsystem 'base' - saved
...subsystem 'campaign' - saved
...subsystem 'hospital' - saved
...subsystem 'market' - saved
...subsystem 'research' - saved
...subsystem 'employee' - saved
...subsystem 'aliencont' - saved
...subsystem 'production' - saved
...subsystem 'aircraft' - saved
...subsystem 'messagesystem' - saved
...subsystem 'stats' - saved
...subsystem 'nations' - saved
...subsystem 'transfer' - saved
...subsystem 'alien base' - saved
...subsystem 'xvirate' - saved
...subsystem 'installation' - saved
...subsystem 'messageoptions' - saved
XML Written to buffer (1643600 Bytes)
music change to van_geoscape (from van_geoscape)
./ufo(Sys_Backtrace+0x15)[0x548ce1] /tmp/ufoai/src/ports/unix/unix_main.c:487
./ufo[0x549410] /tmp/ufoai/src/ports/unix/unix_main.c:512
/lib/libc.so.6[0x7f7a040ff650]
./ufo(MAP_GetColor+0x2a)[0x4942ff] /tmp/ufoai/src/client/campaign/cp_map.c:2094
./ufo(MAP_GetNation+0xe)[0x49469a] /tmp/ufoai/src/client/campaign/cp_map.c:1823
./ufo(CP_SpreadXVIAtPos+0x9)[0x47df96] /tmp/ufoai/src/client/campaign/cp_xvi.c:52
./ufo(CP_BuildBaseMissionIsSuccess+0x1d)[0x4c1cd6] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:54
./ufo(CP_CheckNextStageDestination+0x44)[0x477d15] /tmp/ufoai/src/client/campaign/cp_missions.c:1186
./ufo(UFO_CampaignRunUFOs+0x10e)[0x4b5281] /tmp/ufoai/src/client/campaign/cp_ufo.c:458
./ufo(CL_CampaignRun+0x67a)[0x4860a6] /tmp/ufoai/src/client/campaign/cp_campaign.c:777
./ufo[0x4d90ad] /tmp/ufoai/src/client/menu/node/m_node_map.c:43
./ufo[0x4c957a] /tmp/ufoai/src/client/menu/m_draw.c:235
./ufo[0x4c9596] /tmp/ufoai/src/client/menu/m_draw.c:243
./ufo(MN_Draw+0xb2)[0x4c96f2] /tmp/ufoai/src/client/menu/m_draw.c:335
./ufo(SCR_UpdateScreen+0xa2)[0x453b4c] /tmp/ufoai/src/client/cl_screen.c:372
./ufo(CL_Frame+0x253)[0x44ceed] /tmp/ufoai/src/client/cl_main.c:1103
./ufo[0x4f4148] /tmp/ufoai/src/common/common.c:1051
./ufo(Qcommon_Frame+0xdd)[0x4f3d21] /tmp/ufoai/src/common/common.c:1129
./ufo(main+0x45)[0x548a19] /tmp/ufoai/src/ports/linux/linux_main.c:53
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f7a040ec56e]
./ufo[0x428789]
./ufo(Sys_Backtrace+0x15)[0x548ce1] /tmp/ufoai/src/ports/unix/unix_main.c:487
./ufo(Sys_Error+0x73)[0x54936d] /tmp/ufoai/src/ports/unix/unix_main.c:87
./ufo[0x54941e] /tmp/ufoai/src/ports/unix/unix_main.c:497
/lib/libc.so.6[0x7f7a040ff650]
./ufo(MAP_GetColor+0x2a)[0x4942ff] /tmp/ufoai/src/client/campaign/cp_map.c:2094
./ufo(MAP_GetNation+0xe)[0x49469a] /tmp/ufoai/src/client/campaign/cp_map.c:1823
./ufo(CP_SpreadXVIAtPos+0x9)[0x47df96] /tmp/ufoai/src/client/campaign/cp_xvi.c:52
./ufo(CP_BuildBaseMissionIsSuccess+0x1d)[0x4c1cd6] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:54
./ufo(CP_CheckNextStageDestination+0x44)[0x477d15] /tmp/ufoai/src/client/campaign/cp_missions.c:1186
./ufo(UFO_CampaignRunUFOs+0x10e)[0x4b5281] /tmp/ufoai/src/client/campaign/cp_ufo.c:458
./ufo(CL_CampaignRun+0x67a)[0x4860a6] /tmp/ufoai/src/client/campaign/cp_campaign.c:777
./ufo[0x4d90ad] /tmp/ufoai/src/client/menu/node/m_node_map.c:43
./ufo[0x4c957a] /tmp/ufoai/src/client/menu/m_draw.c:235
./ufo[0x4c9596] /tmp/ufoai/src/client/menu/m_draw.c:243
./ufo(MN_Draw+0xb2)[0x4c96f2] /tmp/ufoai/src/client/menu/m_draw.c:335
./ufo(SCR_UpdateScreen+0xa2)[0x453b4c] /tmp/ufoai/src/client/cl_screen.c:372
./ufo(CL_Frame+0x253)[0x44ceed] /tmp/ufoai/src/client/cl_main.c:1103
./ufo[0x4f4148] /tmp/ufoai/src/common/common.c:1051
./ufo(Qcommon_Frame+0xdd)[0x4f3d21] /tmp/ufoai/src/common/common.c:1129
./ufo(main+0x45)[0x548a19] /tmp/ufoai/src/ports/linux/linux_main.c:53
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f7a040ec56e]
./ufo[0x428789]
Error: Received signal 11.
It's log of debug version:
Code: [Select]
ufo: src/client/campaign/missions/cp_mission_buildbase.c:51: CP_BuildBaseMissionIsSuccess: Assertion `base' failed.
./ufo(Sys_Backtrace+0x1c)[0x561c72] /tmp/ufoai/src/ports/unix/unix_main.c:487
./ufo[0x561cd2] /tmp/ufoai/src/ports/unix/unix_main.c:512
/lib/libc.so.6[0x7ff995d22650]
/lib/libc.so.6(gsignal+0x36)[0x7ff995d225d6]
/lib/libc.so.6(abort+0x173)[0x7ff995d237c3]
/lib/libc.so.6(__assert_fail+0xd5)[0x7ff995d1bbc9]
./ufo(CP_BuildBaseMissionIsSuccess+0x60)[0x4c3a88] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:52
./ufo(CP_BuildBaseMissionNextStage+0x8b)[0x4c3fde] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:271
./ufo(CP_MissionStageEnd+0xb0)[0x47b5c4] /tmp/ufoai/src/client/campaign/cp_missions.c:987
./ufo(CP_CheckNextStageDestination+0x75)[0x47bb80] /tmp/ufoai/src/client/campaign/cp_missions.c:1187
./ufo(UFO_CampaignRunUFOs+0x190)[0x4b71c7] /tmp/ufoai/src/client/campaign/cp_ufo.c:458
./ufo(CL_CampaignRun+0x32b)[0x4891e9] /tmp/ufoai/src/client/campaign/cp_campaign.c:777
./ufo[0x4e26cd] /tmp/ufoai/src/client/menu/node/m_node_map.c:45
./ufo[0x4cc615] /tmp/ufoai/src/client/menu/m_draw.c:239
./ufo[0x4cc63b] /tmp/ufoai/src/client/menu/m_draw.c:243
./ufo(MN_Draw+0x106)[0x4cc95c] /tmp/ufoai/src/client/menu/m_draw.c:335
./ufo(SCR_UpdateScreen+0xdb)[0x453d6d] /tmp/ufoai/src/client/cl_screen.c:503
./ufo(CL_Frame+0xf2)[0x44efdc] /tmp/ufoai/src/client/cl_main.c:1106
./ufo[0x5084fd] /tmp/ufoai/src/common/common.c:1051
./ufo(Qcommon_Frame+0x95)[0x5087f2] /tmp/ufoai/src/common/common.c:1129
./ufo(main+0x57)[0x560a0d] /tmp/ufoai/src/ports/linux/linux_main.c:53
/lib/libc.so.6(__libc_start_main+0xe6)[0x7ff995d0f56e]
./ufo[0x428bc9]
./ufo(Sys_Backtrace+0x1c)[0x561c72] /tmp/ufoai/src/ports/unix/unix_main.c:487
./ufo(Sys_Error+0x92)[0x560ea1] /tmp/ufoai/src/ports/unix/unix_main.c:87
./ufo(Sys_InitSignals+0x0)[0x561ce4] /tmp/ufoai/src/ports/unix/unix_main.c:518
/lib/libc.so.6[0x7ff995d22650]
/lib/libc.so.6(gsignal+0x36)[0x7ff995d225d6]
/lib/libc.so.6(abort+0x173)[0x7ff995d237c3]
/lib/libc.so.6(__assert_fail+0xd5)[0x7ff995d1bbc9]
./ufo(CP_BuildBaseMissionIsSuccess+0x60)[0x4c3a88] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:52
./ufo(CP_BuildBaseMissionNextStage+0x8b)[0x4c3fde] /tmp/ufoai/src/client/campaign/missions/cp_mission_buildbase.c:271
./ufo(CP_MissionStageEnd+0xb0)[0x47b5c4] /tmp/ufoai/src/client/campaign/cp_missions.c:987
./ufo(CP_CheckNextStageDestination+0x75)[0x47bb80] /tmp/ufoai/src/client/campaign/cp_missions.c:1187
./ufo(UFO_CampaignRunUFOs+0x190)[0x4b71c7] /tmp/ufoai/src/client/campaign/cp_ufo.c:458
./ufo(CL_CampaignRun+0x32b)[0x4891e9] /tmp/ufoai/src/client/campaign/cp_campaign.c:777
./ufo[0x4e26cd] /tmp/ufoai/src/client/menu/node/m_node_map.c:45
./ufo[0x4cc615] /tmp/ufoai/src/client/menu/m_draw.c:239
./ufo[0x4cc63b] /tmp/ufoai/src/client/menu/m_draw.c:243
./ufo(MN_Draw+0x106)[0x4cc95c] /tmp/ufoai/src/client/menu/m_draw.c:335
./ufo(SCR_UpdateScreen+0xdb)[0x453d6d] /tmp/ufoai/src/client/cl_screen.c:503
./ufo(CL_Frame+0xf2)[0x44efdc] /tmp/ufoai/src/client/cl_main.c:1106
./ufo[0x5084fd] /tmp/ufoai/src/common/common.c:1051
./ufo(Qcommon_Frame+0x95)[0x5087f2] /tmp/ufoai/src/common/common.c:1129
./ufo(main+0x57)[0x560a0d] /tmp/ufoai/src/ports/linux/linux_main.c:53
/lib/libc.so.6(__libc_start_main+0xe6)[0x7ff995d0f56e]
./ufo[0x428bc9]
Error: Received signal 6.
I can get more information about this bug with debugger if it is necessary.
There are my saved game (slot1.lint and slot1.xml) in ufo.tar.bz2. Also there are full logs for release (without "You can't talk..." lines) and debug versions and script for automatic getting source code's line from address.
P.S. Strange rectangle appears and disappears on center of battle screen and there no controls of fire.
Title: Re: Game crash when catch ufo supply R25676
Post by: geever on August 14, 2009, 07:49:16 pm
UFO Hangar capacity handling is know to be buggy. You can store more than you should be able to. Maybe some check was put in to prevent that.

I'm working on UFO Yards (http://ufoai.ninex.info/wiki/index.php/Proposals/Off-base_UFO_Yards) at the moment that will eliminate the problem.

-geever
Title: Re: Game crash when catch ufo supply R25676
Post by: O01eg on August 15, 2009, 03:25:55 am
Why did this bug cause only on UFO Supply?
Title: Re: Game crash when catch ufo supply R25676
Post by: O01eg on August 16, 2009, 03:32:05 pm
I change code in src/client/campaign/missions/cp_mission_buildbase.c CP_BuildBaseMissionIsSuccess:
From:
Code: [Select]
assert(base);
CP_SpreadXVIAtPos(base->pos);
To:
Code: [Select]
if(base) {
    CP_SpreadXVIAtPos(base->pos);
        }
After it game stoped to crash.
mission->ufo pointed to UFO supply, but mission->data was NULL.
Title: Re: Game crash when catch ufo supply R25676
Post by: geever on August 17, 2009, 11:22:16 pm
I change code in src/client/campaign/missions/cp_mission_buildbase.c CP_BuildBaseMissionIsSuccess:
From:
Code: [Select]
assert(base);
CP_SpreadXVIAtPos(base->pos);
To:
Code: [Select]
if(base) {
    CP_SpreadXVIAtPos(base->pos);
        }
After it game stoped to crash.
mission->ufo pointed to UFO supply, but mission->data was NULL.

This doesn't fix anything only hides the problem. What we should find out is why a basebuilding mission appeared wo base or when did the mission->data pointer NULLed. The save doesn't help us in this we're looking for something happened before.. For testing you can use the debug_addmission console command.

-geever