Infinite Loop causes Server Crash

Discussion in 'Spearhead' started by modder, May 29, 2007.

  1. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    Hey guys, really sorry that I bother you again...

    I am now running a Linux Spearhead server with the gametype Countdown.

    This is my server.cfg:

    Code:
    sv_hostname "xxxxxxxxxxxxxxx"
    set sv_privatepassword xxxxxxxxxxxxxxxxxx
    set net_port "xxxxxxxxxxx"
    set rconPassword xxxxxxxxxxx
    set sv_privateClients 8
    set sv_maxclients 32
    set g_healthdrop 1
    set g_realismmode 0
    set sv_dmspeedmult 1.100000
    set g_teamdamage 0
    set g_healrate 25
    set sv_team_spawn_interval 0
    set g_inactivespectate 60
    set g_inactivekick 120
    set sv_gamespy 1
    seta sv_master1 "mohmaster.2015.com"
    seta sv_master2 "master0.gamespy.com"
    seta sv_master3 "master1.gamespy.com"
    seta sv_master4 "clanservers.net"
    set sv_pure 0
    set g_allowvote 0
    set sv_floodprotect 1
    set g_forceteamspectate 1
    set dmflags 1310728
    set sv_invulnerabletime 5
    set g_teamkillwarn 2
    set g_teamkillkick 3
    set g_teamswitchdelay 0
    set g_allowjointime 30
    set sv_minping 0
    set sv_maxping 250
    set sv_maxrate 0
    set dedicated 1
    sets dedicated 1
    setl dedicated 1
    set ui_dedicated 1
    sv_runspeed 300
    set g_gametype 2
    set g_extgametype tdm
    set countdown 1
    set fraglimit 0
    set timelimit 0
    set roundlimit 0
    set g_mef_settings "timelimit: 0 fraglimit: 0"
    set countdown_hold_for 0
    set countdown_death_print 0
    set countdown_time 10:00
    set countdown_light 1
    set countdown_rounds 1
    set countdown_locate 15
    set countdown_idle 150
    set x1 "map obj/obj_team4; set nextmap vstr x2" 
    set x2 "map dm/mohdm1; set nextmap vstr x3"
    set x3 "map dm/mp_brest_dm; set nextmap vstr x4"
    set x4 "map dm/mp_verschneit_dm; set nextmap vstr x5"
    set x5 "map dm/mp_holland_dm; set nextmap vstr x6"
    set x6 "map dm/mp_malta_dm; set nextmap vstr x1"
    sv_maplist ""
    vstr x1
    I think I've followed all instructions which you gave me, but my server still crashes too often.

    The crash happens at the end of a Countdown round. If I look up my console, it says "infinite loop" and then server shutdown. It's really stupid and I have no idea what I've done wrong...

    I don't think it's someone who crashes the server, I think there is still something wrong with the script.

    If it helps; the crash goes like this: a round is finished, the final scores shows up and then the connection gets lost.


    Thx a lot for help,
    modder
  2. @(...:.:...)@ Hal

    Contributions:
    325
    Specialties:
    Scripting, Textures, Programming
    Processing:
    Graphics:
    PREMIUM
    I Donated
    Hi, post your server log where it crashes. It should say something like "Infinate loop in state (some state)"

    It is a state file problem. If you havent patched the fps skin crash then it could be someone doing that.

    Actualy, if you are running countdown it can't be the fps thing as Elgan fixed it in Admin Pro. Unless you are using a stand alone version of countdown? :s
  3. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    Stand alone ;)

    I wanted to fix the log but my graphic program somehow ****ed it up and now I have to wait for the next crash. :shakeshead:
  4. Bdbodger ***** squatter

    Contributions:
    144
    Specialties:
    Scripting
    Processing:
    Graphics:
    PREMIUM
    I Donated
    Most of the time it is a thread that has no waits in it that causes a commad overflow , too many commands too fast the server can not handle it so it crashes like so .

  5. DUST Private

    Contributions:
    17
    has countdown really got a infinite loop in it ? or did you
    make some changes to its scr's ? ,,,,, i would not think it would be released with such a bad error ;) .

    were did you get your ver from ? i would go get a new copy of it m8 and test the new 1 !!! .

    also what other mods do you have on the server ? map mods , weapons , sound or any other kind of mods will more than likely conflict with it !!! .

    also your cfg is kind of a mess lol there are 2,3 x to many sets ,,,, ie below ?

    set dedicated 1 <----1
    sets dedicated 1 <---2
    setl dedicated 1 <----3 & ?
    set ui_dedicated 1
    set g_extgametype tdm <---what this for ?

    is this a AA,SH,BT server ? linux or windows ? then you can get the wright set settings set m8 .
    just adding ever way of setting these don't mean its going to work ,,, the server will just use the last 1 it comes to for the set ;) .

    have you got any mefy pk3's on the server ??? if you do then it will more than likely be that !!!! as it will be using all mefy scr's and then countdown or other way round !! .

    so i would take off every pk3 and txt file's not needed for countdown ,,,, get a fresh copy of countdown and start over again ;) ;) :) .

    you can have mixed game types ! but get them all working before you try mixing them !!! ,,, then you know the mod is working before you add anything else .
  6. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    Thx mate for help.

    I'm running CD version 1.7. Yep I edited some scr, but I think I didn't edit much. I've changed the radio to a light and some other things I don't remember.

    Yep you're right some commands are too much, but I think this shouldn't cause an overflow?

    OS Version: Linux

    Game: SH

    Other mods: Foresight, weapon mod, rconcommands (was Rcon.scr with settings like clientquit, clientkill etc...)...

    Yep I run Mefy, that's why I've set g_extgametype tdm. I think all I've done should work fine but maybe it's worth a try to take the original CD version again. Am I right if this is 1.7?

    @ @(...:.:...)@ [IMG] : Attachment -> Crash Screenshot
  7. @(...:.:...)@ Hal

    Contributions:
    325
    Specialties:
    Scripting, Textures, Programming
    Processing:
    Graphics:
    PREMIUM
    I Donated
    Try to replicate the error on your own moh install on your pc.

    If you can get it to do the same thing on your own pc, then you can work out which scr has the bug.

    To get an it to crash on an infinate loop you need a while loop without waits in it, and possibly no code inside the loop. Possibly a for loop if there was a mistake in the logic so it will never end.

    If you can get it to crash, take out differnt combinations of mod pk3s untill it is crashing with only one mod in there. Then depending on the complexity of the scripts in that pk3, you can add print lines either to each thread in all the scrs so you can see which threads are executing, or a print line right before any exec lines so you can see which scr is crashing.

    I don't know how a bug like this got into a released mod, they are pretty hard to miss. :s
  8. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    I think it's all my fault, but I'm not sure yet. Before I try anything else I try the original mod Countdown 1.7 Standalone. I'll report problems soon :p
  9. DUST Private

    Contributions:
    17
    send me 1.7 mod or have it hosted here modder ! not with your changes pls lol jking ,,,,, ...

    i made a cam for this and it spawns ever 60sec's to show were the radio is
    and stops cam when its found ,, will start cam again when dropped or restarted again !!! but in 1.4 i think it is ! so the new 1 will be better for me and maybe send for hosting with cam installed ?! ;) .

    have fun !! ;) .

    never mind m8 i found the download on here for it !!!!!!!!!!!!!!!!!!!.
  10. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    I'm fine with 1.7, but it doesnt tell anymore "Axis have dropped the radio", that's a pity.

    Btw is this cam mod for sharing? If it doesn't lag I would be interested.
  11. DUST Private

    Contributions:
    17
    this is full radio scr ,,,, ver 1.7 !!!!!!!!.

    make a new scr & call it radio ! then add all this script !!! replace your radio scr with this new 1 & keep the old radio scr in case you don't like it !!!!!!! ...

    Code:
    // 22/11/2005 18:07 added in radio drop features + added radio help cam 11.04.07
    main local.origin:
     huddraw_alpha 80 0
     huddraw_font 80 "handle-18"
     huddraw_color 80 1 1 1
     huddraw_rect 80 -170 -40 20 20
     huddraw_string 80 "* <<<<<<<<<<>>>>>>>>>> * cinematic Help Cam * By * DUST * & * JADE *  <<<<<<<<<<>>>>>>>>>> *"
     huddraw_align 80 center bottom
     
     spawn level.radio_model "targetname" "countdown_radio" "classname" "scriptmodel"
     local.radio = $countdown_radio
     local.radio notsolid
     local.radio hide
     if(local.origin[2] == "hog")
     {
      local.radio.origin = local.origin[1]
     
      //check if the radio is toching any of the players and wait until it is not to show it.
      while(1)
      {
       wait 1
     
       // if the players are touching it then local.i wont == player size
       for(local.i=1;local.i <= $player.size ;local.i++ )
       {
        if(local.radio istouching $player[local.i])
        {
         break
        }
       }
       if(local.i == ($player.size + 1))
       {
        break
       }
      }
     }
     else
     {
      local.radio.origin = local.origin
     }
     local.radio show
     local.radio solid
     local.radio.angles = ( 0 0 0 )
     local.radio droptofloor 
     local.radio light 1 0 0 50
     local.hit_box = spawn trigger_multiple "spawnflags" 128 "targetname" "radio_box"
     local.hit_box setsize ( -20 -20 -20 ) ( 20 20 20 )
     local.hit_box setthread shot
     local.hit_box.origin = local.radio.origin
     local.use_box = spawn trigger_use  "targetname" "radio_use"
     local.use_box setsize ( -35 -35 -35 ) ( 35 35 35 )
     local.use_box setthread use
     local.use_box.origin = local.radio.origin
     local.radio.use = local.use_box
     local.radio.shot = local.hit_box
     local.use_box glue local.radio
     local.hit_box  glue local.radio
     local.max_idle = getcvar "countdown_idle"
     if(local.max_idle == "")
     {
      local.max_idle = 300
      setcvar "countdown_idle" "300" 
     }
     else
     {
      local.max_idle = int local.max_idle
     }
     if(local.max_idle == 0)
     {
      local.max_idle = -1
     }
     local.idle = 0
     while($countdown_radio)
     {
      wait 1
      local.idle ++
      if(local.idle == 60)
      {
       thread cam 45 5
       thread flash
      }
      if(local.idle == local.max_idle && ($countdown_radio))
      {
       $countdown_radio.shot delete 
       $countdown_radio.use delete 
       $countdown_radio delete 
       waitframe
       local.origin = waitexec HTR/setup.scr::getorigin
       exec HTR/radio.scr local.origin
       end
      }
     }
    end
    flash: 
     local.state =1
     while($countdown_radio)
     {
      wait 1
      if($countdown_radio != NIL && $countdown_radio != NULL)
      {
       if(local.state ==1)
       {
        local.state = 0
        $countdown_radio light 1 0 0 100
       }
       else
       {
        local.state = 1
        $countdown_radio light 0 0 1 100
       }
      }
     }
    end
    //------------------------------------------------------------------------------
    cam local.delay local.show:
    local.cam =1
     while($countdown_radio)
     {
     wait local.delay
      if($countdown_radio != NIL && $countdown_radio != NULL)
      {
       if(local.cam ==1)
       {
       local.cam = 0
       spawn Camera targetname "camera2" origin ( $countdown_radio.origin + ( -40 0 100 )) angles ( 75 0 0 )
       $camera2 bind $countdown_radio
       cuecamera $camera2
       letterbox 1
       huddraw_alpha 80 0.3
       $camera2 orbit $countdown_radio
       wait local.show
       huddraw_alpha 80 0
       clearletterbox
       cueplayer
       $camera2 remove
       }
       local.cam = 1
       {
       waitframe
       }
      }
     }
    end
    //------------------------------------------------------------------------------
    shot:
     local.player = parm.other
     $countdown_radio physics_on
     $countdown_radio.velocity =  ( 0 0 150 ) + local.player.forwardvector * 500 
    end
    use:
     local.player = parm.other
     if(local.player.using_pack == 1)
     {
      local.player iprint "You may not use the radio and jetpack" 1
      end
     }
     if(level.last_had_radio == local.player)
     {
      local.player  iprint "You may not pick up the radio next" 1
      end
     }
     
     //clear the last player who had it.
     local.last_had_radio = NIL
     
     //remove this line, not sure why it's here
     //local.player.target = local.player
     local.team = local.player.dmteam
     local.team  = waitexec global/strings.scr::to_upper local.team  0
     iprintlnbold (local.team  + " have the radio!")
     $countdown_radio.shot delete
     $countdown_radio.use delete
     $countdown_radio delete
     thread give_radio local.player
    end
    // give radio to the player
    give_radio local.player:
     local.player playsound m3l2_radio_pickup
     local.player attachmodel level.radio_model "Bip01 Pelvis" 0.8 "pelvis_radio" 1 -1 -1 -1 -1 ( 1.5 -4 -10.0 )
     $pelvis_radio.angles = ( 0 90 90 )
     local.light = getcvar "countdown_light"
     if(local.light != "0")
     {
      local.player light 1 0 0 100
     }
     local.player exec HTR/player_radio.scr 
    end
    this is the full radio scr not part of it but full replacement .

    to change times look for this line in script ----> thread cam 45 5

    the 45 is the time to wait for the cam to respawn the 5 is how long to show the radio on the cam ;) .

    have fun !! ;) :) .
    1 people like this.
  12. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    Hey mate, I tested your radio.scr, kinda impressive what you've done there.

    My question: would it be possible to make it a little camera on the right corner on the top of the window, instead of full screen? Then you still would be able to play... Or would that be too laggy?
  13. DUST Private

    Contributions:
    17
    cool glad you like it ;) ,,, db help me out there with that cam ! :) .

    no m8 you cannot have a window for the cam's m8 ,,,, cool idea though ;) .
    the cam takes control of all players ! so its not possible to move when a cam is threaded !!! you can still fire your weapons if you let them or its possible to make them not shoot !!!,,,,but i left it on so players can fire at the radio and the cam will follow it still lol ;) .

    i did try some spy cams a long time ago and found that you cannot make a cam for just 1 player ! well i found no way of doing it ?????????????????

    this cam was for some1 else but i never seen it working yet my self lol ,, well not with more than 2 players on my test server on my network ;) .

    i would like to see if its working ok on your server ???? and maybe make some small changes if needed !!!!!! ???? .

    well have fun and always share !!!! ;) ;) :) :)
  14. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    Ok thx m8

    Back to topic:

    I thought it is fixed now, I only run CD 1.7 and no other mods at the moment. But no way! Still crash and infinite loop! What can I do now?

    Check all files which I have? What files do I actually need for my Linux server and which one to patch?
  15. DUST Private

    Contributions:
    17
    no patch can fix the loop error m8 !! .

    do you have network server for testing ? if you do !
    just take every mod out the server folders ! run server and complete the round see if errors with no mods at all ! then add 1 mod to the server and test again ,,,
    keep adding your mods until error shows up ;) .

    when you find what mod is coursing the error you can start to find the fix ;) .
    but then it if its a conflict ? your going to have to resolve it by 1 post error and files here 2 try fixing your self first ;) .

    when error shows up you could try just running the mod with the error and see if it errors by its self ;) ,,, if it don't ! its just a conflicting script and can be fixed easy ;) .
  16. modder Corporal

    Contributions:
    19
    Specialties:
    Scripting, Programming, Pure Gamer
    Processing:
    Graphics:
    I don't understand it.
    I only run Countdown 1.7
  17. Thawed Corporal

    Contributions:
    30
    Specialties:
    Pure Gamer
    Processing:
    Graphics:
    Hello Dust :p hope you can find the thread now.
  18. PUNISHER2202 Sergeant

    Contributions:
    7
    Processing:
    Graphics:
    hello i have this problem for my countdown server.My server crash some time , please helpme

    ERROR: Command overflow. Possible infinite loop in thread.
  19. zlatko Staff Sergeant

    Contributions:
    146
    Specialties:
    Mapper, Scripting, Pure Gamer
    Processing:
    Graphics:
    PREMIUM
    I Donated
    PUNISHER YOU SERVER -CRASHED -your server crash because you use "Roc-in-Pain-Mod" or "Krunch-in-pain_SH" I think I said last time that you do not know if something better does not make it and I told you not to change anything from what I had done you in your mod:shakeshead::down:
  20. PUNISHER2202 Sergeant

    Contributions:
    7
    Processing:
    Graphics:
    zlatko sorry but you change camera sound and radio , I want not change them:( . the problem is only custom death sound?

Share This Page