2019-11-18 15:58 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000849Spring engineGeneralpublic2008-02-19 23:39
ReporterKDR_11k 
Assigned ToKDR_11k 
PrioritynormalSeveritycrashReproducibilitysometimes
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000849: Crashbug with Lua-spawned units
DescriptionIn KP.net I sometimes get a crash with the Network's Dispatch command. The command spawns units in a ring around another unit and gives them a move order. Sometimes this move order crashes the game. It's the easiest to produce if you use WIP2:

Spawn 4 network_big with one give command and don't move them.
Spawn 48 network_spam, select them and rightclick onto one of the big units from before (preferrably the closest one so no bumping happens).
Once all spam has disappeared with those white flashes, select all four big units, click on dispatch and then on any place on the map. BAM, crash.

Works in both 76b1 and SVN.
Additional Informationdownload link: http://mitglied.lycos.de/KDR_11k/files/Kernel%20Panic%20net%20WIP2.sd7
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files
  • txt file icon Kopie (4) von infolog.txt (9,380 bytes) 2008-02-13 23:30 -
    Using script script.txt
    SDL:  1.2.10
    GL:   2.1.1
    GL:   NVIDIA Corporation
    GL:   GeForce 6800/AGP/SSE2/3DNOW!
    GLEW: 1.4.0
    Section game\mapoptions missing in file buffer
    Connecting to server
    Connected to 169.229.101.174:8452 using number 3
    Using script Commanders
    Map: Marble_Madness_Map.smf
    Mod: "Kernel Panic.net WIP3" from Kernel Panic net WIP3.sd7
    Connecting to server .
    Connecting to server  
    Connecting to server .
    Connecting to server  
    Connecting to server .
    Connecting to server  
    Loading all definitions:  0.119000
    Opening map file
    Loading Map
    Loading detail textures
    Creating overhead texture
    Creating ground shading
    Loading tile file
    Reading tiles
    Reading tile map
    Creating projectile texture
    Number of damage types: 9
    Loading weapon definitions
    Loading unit definitions
    Error: Spring requires a NOWEAPON weapon type to be present as a placeholder for missing weapons
    Error: Spring requires a NOWEAPON weapon type to be present as a placeholder for missing weapons
    Loading feature definitions
    Generating trees
    Parsing unit icons
    Creating unit textures
    Initializing map features
    Reading estimate path costs
    Creating sky
    Loading LuaCOB
    gf1 = LuaCob/Gadgets/luacob.lua
    gf1 = LuaCob/Gadgets/network_arceffect.lua
    gf2 = LuaCob/Gadgets/luacob.lua
    gf2 = LuaCob/Gadgets/network_arceffect.lua
    Loaded gadget:  LuaCOB              <luacob.lua>
    Loaded gadget:  Network Arc Effect  <network_arceffect.lua>
    gf1 = LuaCob/Gadgets/luacob.lua
    gf1 = LuaCob/Gadgets/network_arceffect.lua
    gf2 = LuaCob/Gadgets/luacob.lua
    gf2 = LuaCob/Gadgets/network_arceffect.lua
    Loaded gadget:  LuaCOB              <luacob.lua>
    Loaded gadget:  Network Arc Effect  <network_arceffect.lua>
    Loading LuaRules
    gf1 = LuaRules/Gadgets/airstrike.lua
    gf1 = LuaRules/Gadgets/areadenial.lua
    gf1 = LuaRules/Gadgets/autohold.lua
    gf1 = LuaRules/Gadgets/burrow.lua
    gf1 = LuaRules/Gadgets/infection.lua
    gf1 = LuaRules/Gadgets/launcher.lua
    gf1 = LuaRules/Gadgets/luacob.lua
    gf1 = LuaRules/Gadgets/network_buffer.lua
    gf1 = LuaRules/Gadgets/network_build.lua
    gf1 = LuaRules/Gadgets/network_dispatch.lua
    gf1 = LuaRules/Gadgets/network_enter.lua
    gf1 = LuaRules/Gadgets/null.lua
    gf1 = LuaRules/Gadgets/specialattack.lua
    gf2 = LuaRules/Gadgets/airstrike.lua
    gf2 = LuaRules/Gadgets/areadenial.lua
    gf2 = LuaRules/Gadgets/autohold.lua
    gf2 = LuaRules/Gadgets/burrow.lua
    gf2 = LuaRules/Gadgets/infection.lua
    gf2 = LuaRules/Gadgets/launcher.lua
    gf2 = LuaRules/Gadgets/luacob.lua
    gf2 = LuaRules/Gadgets/network_buffer.lua
    gf2 = LuaRules/Gadgets/network_build.lua
    gf2 = LuaRules/Gadgets/network_dispatch.lua
    gf2 = LuaRules/Gadgets/network_enter.lua
    gf2 = LuaRules/Gadgets/null.lua
    gf2 = LuaRules/Gadgets/specialattack.lua
    Loaded gadget:  Burrow              <burrow.lua>
    Loaded gadget:  UnitAutoHold        <autohold.lua>
    Loaded gadget:  Airstrike           <airstrike.lua>
    Loaded gadget:  Area Denial         <areadenial.lua>
    Loaded gadget:  Infection           <infection.lua>
    Loaded gadget:  LuaCOB              <luacob.lua>
    Loaded gadget:  Network Buffer      <network_buffer.lua>
    Loaded gadget:  Network Build       <network_build.lua>
    Loaded gadget:  Special Attack      <specialattack.lua>
    Loaded gadget:  null                <null.lua>
    Loaded gadget:  Network Dispatch    <network_dispatch.lua>
    Loaded gadget:  Network Enter       <network_enter.lua>
    Loaded gadget:  Launcher            <launcher.lua>
    gf1 = LuaRules/Gadgets/airstrike.lua
    gf1 = LuaRules/Gadgets/areadenial.lua
    gf1 = LuaRules/Gadgets/autohold.lua
    gf1 = LuaRules/Gadgets/burrow.lua
    gf1 = LuaRules/Gadgets/infection.lua
    gf1 = LuaRules/Gadgets/launcher.lua
    gf1 = LuaRules/Gadgets/luacob.lua
    gf1 = LuaRules/Gadgets/network_buffer.lua
    gf1 = LuaRules/Gadgets/network_build.lua
    gf1 = LuaRules/Gadgets/network_dispatch.lua
    gf1 = LuaRules/Gadgets/network_enter.lua
    gf1 = LuaRules/Gadgets/null.lua
    gf1 = LuaRules/Gadgets/specialattack.lua
    gf2 = LuaRules/Gadgets/airstrike.lua
    gf2 = LuaRules/Gadgets/areadenial.lua
    gf2 = LuaRules/Gadgets/autohold.lua
    gf2 = LuaRules/Gadgets/burrow.lua
    gf2 = LuaRules/Gadgets/infection.lua
    gf2 = LuaRules/Gadgets/launcher.lua
    gf2 = LuaRules/Gadgets/luacob.lua
    gf2 = LuaRules/Gadgets/network_buffer.lua
    gf2 = LuaRules/Gadgets/network_build.lua
    gf2 = LuaRules/Gadgets/network_dispatch.lua
    gf2 = LuaRules/Gadgets/network_enter.lua
    gf2 = LuaRules/Gadgets/null.lua
    gf2 = LuaRules/Gadgets/specialattack.lua
    Loaded gadget:  Burrow              <burrow.lua>
    Loaded gadget:  UnitAutoHold        <autohold.lua>
    Loaded gadget:  Airstrike           <airstrike.lua>
    Loaded gadget:  Area Denial         <areadenial.lua>
    Loaded gadget:  Infection           <infection.lua>
    Loaded gadget:  LuaCOB              <luacob.lua>
    Loaded gadget:  Network Buffer      <network_buffer.lua>
    Loaded gadget:  Network Build       <network_build.lua>
    Loaded gadget:  Special Attack      <specialattack.lua>
    Loaded gadget:  Network Dispatch    <network_dispatch.lua>
    Loaded gadget:  Network Enter       <network_enter.lua>
    Loaded gadget:  Launcher            <launcher.lua>
    Loading LuaGaia
    Finalizing...
    Spring 0.76b1
    Reloaded ctrlpanel with: LuaUI/ctrlpanel.txt
    LuaUI: bound F11 to the widget selector
    LuaUI: bound CTRL+F11 to tweak mode
    Loaded widget:  HealthBars          <unit_healthbars.lua>
    Loaded widget:  CommanderEnds       <gui_comm_ends.lua>
    Loaded widget:  Stockpiler          <unit_stockpile.lua>
    Loaded widget:  CircleFormation     <cmd_circle.lua>
    Loaded widget:  Kernel Panic Build Bar  <kp_buildbar.lua>
    Loaded widget:  GiveMobile          <cmd_givemobile.lua>
    Loaded widget:  Kernel Panic autospam  <kp_autospam.lua>
    Loaded widget:  SelectionButtons    <gui_selbuttons.lua>
    Loaded widget:  FPS                 <gui_fps.lua>
    Loaded widget:  UnitGroups v5.1     <UnitGroups5_1.lua>
    Bound Meta+G to GodMode
    Loaded widget:  GodCommand          <cmd_godmode.lua>
    Loaded widget:  IdleBuildersNEW     <gui_idle_builders_new.lua>
    MetalMakers widget disabled for spectators
    Loaded widget:  MetalMakers         <unit_metal_maker.lua>
    Loaded widget:  Start Point Remover  <init_start_point_remover.lua>
    Loaded widget:  Kernel Panic Hotkeys  <kp_hotkeys.lua>
    Loaded widget:  KP Default Commands  <defaultcommands.lua>
    Loaded widget:  noResBar            <noresbar.lua>
    LuaUI v0.2
    Client connected on slot 3
    Client connected on slot 2
    Client connected on slot 1
    Player KDR_11k joined as 3
    Player zwzsg joined as 2
    <zwzsg> Overkill???
    Player _Overkill_ joined as 1
    <zwzsg> k
    GameID: cd5db3479110930a5fde685e210427c1
    <zwzsg> Kdr, you tech him
    <zwzsg> *teach
    [KDR_11k] Would be more interesting to see network vs another faction but meh...
    <zwzsg> Is he network too?
    [KDR_11k] Yes
    <zwzsg> I though he was sys
    <zwzsg> cool you kept my numpad
    <zwzsg> factory doesn't turn?
    [KDR_11k] It does, it just looks the same no matter how you turn it
    <zwzsg> But the exit!!!
    [KDR_11k] Units spawn turned
    <zwzsg> doesn't look like so to me
    [KDR_11k] Oh you mean the Carrier?
    zwzsg added point: 
    zwzsg added point: 
    zwzsg added point: 
    zwzsg added point: 
    zwzsg added point: 
    [KDR_11k] Yeah, not implemented yet
    [KDR_11k] Network units have high turnrate anyway
    [KDR_11k] To get units out of your buffer select a Port or connection and select Dispatch
    <_Overkill_> i know
    [KDR_11k] k
    [KDR_11k] Zw said I should teach you
    <zwzsg> Good old repeat
    <_Overkill_> good lord i fail a connection xD
    <_Overkill_> Spectators: lol
    Spring 0.76b1 has crashed.
    Exception: Access violation (0xc0000005)
    Exception Address: 0x0081ab9d
    DLL information:
    0x00400000	spring
    0x7c910000	ntdll
    0x7c800000	kernel32
    0x77da0000	ADVAPI32
    0x77e50000	RPCRT4
    0x77fc0000	Secur32
    0x73e70000	dsound
    0x77be0000	msvcrt
    0x7e360000	USER32
    0x77ef0000	GDI32
    0x774b0000	ole32
    0x76af0000	WINMM
    0x77bd0000	VERSION
    0x68fc0000	GLU32
    0x5f0d0000	OPENGL32
    0x736d0000	DDRAW
    0x73b30000	DCIMAN32
    0x76c50000	IMAGEHLP
    0x71a30000	WSOCK32
    0x71a10000	WS2_32
    0x71a00000	WS2HELP
    0x6ed80000	glew32
    0x10000000	SDL
    0x7c340000	MSVCR71
    0x00de0000	DevIL
    0x66fc0000	freetype6
    0x61b80000	zlib1
    0x003d0000	ILU
    0x76330000	IMM32
    0x62e10000	LPK
    0x75790000	USP10
    0x746a0000	MSCTF
    0x10100000	lgscroll
    0x75250000	msctfime
    0x609d0000	mslbui
    0x69500000	nvoglnt
    0x719b0000	mswsock
    0x66710000	hnetcfg
    0x719f0000	wshtcpip
    0x72c90000	wdmaud
    0x76bf0000	WINTRUST
    0x77a50000	CRYPT32
    0x77af0000	MSASN1
    0x72c80000	msacm32
    0x77bb0000	MSACM32
    0x77ba0000	midimap
    0x73e40000	KsUser
    0x59dd0000	DBGHELP
    Stacktrace:
    (0) E:\games\mini\TASpring\spring.exe [0x0081AB9D]
    (1) E:\games\mini\TASpring\spring.exe [0x0081DD8F]
    (2) E:\games\mini\TASpring\spring.exe [0x0071473F]
    (3) E:\games\mini\TASpring\spring.exe [0x007481A0]
    (4) E:\games\mini\TASpring\spring.exe [0x005D8EBC]
    (5) E:\games\mini\TASpring\spring.exe [0x005F495A]
    (6) E:\games\mini\TASpring\spring.exe [0x005F684B]
    (7) E:\games\mini\TASpring\spring.exe [0x00855AB9]
    (8) E:\games\mini\TASpring\spring.exe [0x0085ED08]
    (9) E:\games\mini\TASpring\spring.exe [0x0085F0DE]
    (10) E:\games\mini\TASpring\spring.exe [0x0085F316]
    (11) E:\games\mini\TASpring\spring.exe [0x0095D309]
    (12) E:\games\mini\TASpring\spring.exe [0x004010A7]
    (13) E:\games\mini\TASpring\spring.exe [0x00401123]
    (14) C:\WINDOWS\system32\kernel32.dll(RegisterWaitForInputIdle+0x49) [0x7C816FD7]
    
    txt file icon Kopie (4) von infolog.txt (9,380 bytes) 2008-02-13 23:30 +

-Relationships
+Relationships

-Notes

~0001971

KDR_11k (reporter)

when it happens in a multiplayer game all players crash simultaneously.

~0001972

Kloot (developer)

Reproduced stacktrace:

#0 0x082aeb27 in SyncedFloat3 (this=0xbfe5be84, f=@0x32c8300c) at rts/System/Sync/SyncedFloat3.h:49
#1 0x08316fe4 in CGroundMoveType::ChangeHeading (this=0xa5ccf40, wantedHeading=0) at rts/Sim/MoveTypes/GroundMoveType.cpp:591
#2 0x08318f4c in CGroundMoveType::Update (this=0xa5ccf40) at rts/Sim/MoveTypes/GroundMoveType.cpp:300
0000003 0x083d59b2 in CUnit::Update (this=0x8ffbc48) at rts/Sim/Units/Unit.cpp:449
0000004 0x083c4834 in CUnitHandler::Update (this=0x9c24520) at rts/Sim/Units/UnitHandler.cpp:249
0000005 0x081d1b5a in CGame::SimFrame (this=0x8b43020) at rts/Game/Game.cpp:2523
#6 0x081d391f in CGame::ClientReadNet (this=0x8b43020) at rts/Game/Game.cpp:2944
#7 0x081d818d in CGame::Update (this=0x8b43020) at rts/Game/Game.cpp:1892
#8 0x084cd1d9 in SpringApp::Update (this=0xbfe5c5a0) at rts/System/Main.cpp:864
#9 0x084d1678 in SpringApp::Run (this=0xbfe5c5a0, argc=1, argv=0xbfe5c694) at rts/System/Main.cpp:1050
0000010 0x084d19b5 in Run (argc=1, argv=0xbfe5c694) at rts/System/Main.cpp:1110
#11 0x084d1bac in main (argc=-1122428866, argv=0x3f7fd19e, envp=0xbb8aa6dc) at rts/System/Main.cpp:1163

#1 0x08316fe4 in CGroundMoveType::ChangeHeading (this=0xa5ccf40, wantedHeading=0) at rts/Sim/MoveTypes/GroundMoveType.cpp:591
591 owner->updir=ground->GetNormal(owner->pos.x, owner->pos.z);

print owner->pos.x
$2 = -nan(0x400000)
print owner->pos.z
$3 = -nan(0x400000)

~0001973

KDR_11k (reporter)

I've made the Lua script verbose and GetUnitPosition works fine, reports the numbers it should. Well, the units show up fine too and start moving just fine, only a moment later does it crash...

~0001976

KDR_11k (reporter)

I think I fixed it in r5518, there was a division by the length of a vector difference in the collision code, if two units had the exact same coordinate that would cause a division by zero.
+Notes

-Issue History
Date Modified Username Field Change
2008-02-13 23:30 KDR_11k New Issue
2008-02-13 23:30 KDR_11k File Added: Kopie (4) von infolog.txt
2008-02-13 23:32 KDR_11k Note Added: 0001971
2008-02-14 00:16 Kloot Note Added: 0001972
2008-02-14 08:45 KDR_11k Note Added: 0001973
2008-02-19 23:39 KDR_11k Status new => resolved
2008-02-19 23:39 KDR_11k Resolution open => fixed
2008-02-19 23:39 KDR_11k Assigned To => KDR_11k
2008-02-19 23:39 KDR_11k Note Added: 0001976
+Issue History