PDA

View Full Version : Server startup SteamGameServer_Init failed



elitegameservers
06-11-2015, 17:32
I've noticed that on one of our servers we get a Server startup SteamGameServer_Init failed message and the dedicated server startup failed.
I can't find any issues with the configuration (even the example config gives this problem)

I've found that moving the server to a different node(physical server) solves the issue.
The ports that the server uses (steamPort, hostPort and queryPort) are free, so I'm unsure what is causing this problem. Setting the logging to debug doesn't give any extra details.

LiveWire
07-11-2015, 15:29
Are you running two DS on one server? If so, make sure they are using different host and query ports.

elitegameservers
07-11-2015, 19:01
Are you running two DS on one server? If so, make sure they are using different host and query ports.

I am, and they are using different ports.

LiveWire
07-11-2015, 23:30
Will one or the other boot up on the same server, but not both? (IE both configuration files are OK on their own) I leave the steam port on default for both DS.

elitegameservers
08-11-2015, 18:06
Will one or the other boot up on the same server, but not both? (IE both configuration files are OK on their own) I leave the steam port on default for both DS.

The server I created first will always boot. (although it's a slightly older version: 1.0.1.27)
The newly created server (which has version 1.0.1.30) will never start, it always gives this error message.

It doesn't matter in which order I start them or if the first server is running at all. The 2nd server will never start. However when I copied it's files to a different node it worked perfectly fine (same config, only changed the IP)

LiveWire
10-11-2015, 12:22
Could you post your configuration files?

elitegameservers
13-11-2015, 09:45
Could you post your configuration files?

The configuration is below, I've found that I can't run any two project cars servers on the same node with the latest 1.0.1.30 version.


"//" : "You can use dummy entries like this to write comments into the config. 'rem' and '#' are also supported as comment entries."
// But in recent version of the server, standard C++ like one-liner comments are supported as well.

//////////////////////////
// Basic server options //
//////////////////////////

// Logging level of the server. Messages of this severity and more important will be logged. Can be any of debug/info/warning/error.
logLevel : "info"

// Number of gameplay events stored on the server. Oldest ones will be discarded once the game logs more.
eventsLogSize : 10000

// The server's name, this will appear in server browser (when implemented) and will be also the default name of sessions hosted on the server.
name : "MMRACE"

// Authenticate users with Steam to check VAC ban when set to true.
secure : true

// Password required to create sessions on the server as well as to join the sessions, password set in Create options is ignored on DS.
password : ""

// Maximum size of sessions that can be created on this server.
// Note that setting this above 16 will allow sessions unjoinable by 32-bit clients to be created on the server.
// The game also currently does not support sessions larger than 32, even if the server can be configured for up to 64 players.
maxPlayerCount : 16

// IP address where the server's sockets should be bound. Leave empty for 'all interfaces'.
bindIP : "185.42.221.142"

// ports used to communicate with Steam and game, they must all be accessible on the public IP of the server.
steamPort : 27017
hostPort : 27015
queryPort : 27016

// Delay between server ticks in milliseconds, when not hosting and when hosting a game, respectively.
// Lower values will make the server more responsible and decrease latency by a bit at the expense of higher CPU usage.
sleepWaiting : 250
sleepActive : 10


// (blacklist and whitelist is intentionally not included in this basic sample config as they can complicate things a bit.)


///////////////////////////
// HttpApi configuration //
///////////////////////////

// This provides http-based API and basic web-based controls using a built-in http server.
// HttpApi is disabled by default, and if you enable it with everything else left to default it will listen only locally on 127.0.0.1:9000

// Master enable/disable toggle.
enableHttpApi : false

// Similar to logLevel above but used only for libwebsockets output.
// Note that all logging still goes through the main filter, so you won't be able to use more verbose logging here than the main level.
httpApiLogLevel : "warning"

// Interface name or IP where to bind the local http server providing the API and web-based controls.
// This is the textual name of the interface as assigned by your OS, or IP address of the interface.
httpApiInterface : "127.0.0.1"

// Port where the local http server listens.
httpApiPort : 9000

// Map with extra HTTP headers to add to HTTP API responses.
// The keys are the conditions for adding the headers, the values are the headers to add.
// There are no conditions supported yet, so just use "*" for a generic wildard for now, that will match everything in the future too.
httpApiExtraHeaders : {
"*" : "Access-Control-Allow-Origin: *"
}


//////////////////////////
// LuaApi configuration //
//////////////////////////

// Lua API allows the server to be extended by in-server scripting in Lua.
// The server is running Lua version 5.3, currently with no sandboxing applied to the add-ons. All standard Lua library functions are available.

// WARNING: The LuaApi is not final and the following breaking changes are planned soon:
// - Rename Lua addon metadata files from *.txt to *.json
// - Remove default config from the metadata and put it into separate file *_default_config.json
// - Separate config and persistent data, so that data saved by addons will not pollute the config files, and the config files will retain all comments from the default files.

// Master enable/disable toggle.
enableLuaApi : true

// Root directory from which the Lua addons are loaded. Relative to current directory if it's not absolute.
luaAddonRoot: "lua"

// Root directory where the addon configs will be stored if written out by addons. Default configs are defined in the addon base text files.
luaConfigRoot: "lua_config"

// Root directory where the addon output will be written, once supported. For now the io functions can write anywhere, but this will be limited to this directory in the future.
luaOutputRoot: "lua_output"

// Names of all Lua addons to load. The addons will be loaded in the specified order. Each addon can list other addons as its dependencies, which attempt to load those first.
// The server will load addons from directory specified in "luaAddonRoot", loading of each addon will start by loading its config from ADDON_NAME/ADDON_NAME.txt
luaApiAddons : [

// Core server bootup scripts and helper functions. This will be always loaded first even if not specified here because it's an implicit dependency of all addons.
"sms_base",

// Automatic race setup rotation.
"sms_rotate",

// Sends greetings messages to joining members, optionally with race setup info, optionally also whenever returning back to lobby post-race.
"sms_motd",

// Tracks various stats on the server - server, session and player stats.
// Still work in progress so disabled by default.
//"sms_stats",
]


////////////////////////////////
// Game setup control options //
////////////////////////////////

// Set to true to make this server show up in the browser even if it's empty.
allowEmptyJoin : true

// Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
// Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
// This must be set to "true" for the following attributes to work: ServerControlsTrack, ServerControlsVehicleClass, ServerControlsVehicle
controlGameSetup : false

// Initial attribute values, see /api/list/attributes/session for the full list.
// These attributes will be used when joining an empty server via the borwser (if allowEmptyJoin is true) and as the intial attributes for the set_attributes and set_next_attributes APIs (if controlGameSetup is true)
// The defaults set these values:
sessionAttributes : {
// The host player can control track selection if set to 0. Set to 1 to disable track selection in the game.
"ServerControlsTrack" : 0,

// The host player can change the vehicle class by going through the garage if set to 0. Set to 1 to disallow players changing the class.
// Flag FORCE_SAME_VEHICLE_CLASS (1024) should be also set for this to make sense, otherwise players are able to choose cars from any class.
"ServerControlsVehicleClass" : 0,

// Players can change their vehicle if set to 0. Set to 1 to disallow players changing the vehicle.
// Flag FORCE_IDENTICAL_VEHICLES (2) should be also set for this to make sense.
"ServerControlsVehicle" : 0,

// Grid size up to 32, all reserved to players, so no AI.
// Note that 32-bit clients will not be able to join the game if this is larger than 16.
"GridSize" : 32,
"MaxPlayers" : 16,

// Just 3 race laps.
"Practice1Length" : 0,
"Practice2Length" : 0,
"QualifyLength" : 0,
"WarmupLength" : 0,
"Race1Length" : 3,

// Race flags - bitfield consisting of many flags, the default is set like this:
// ALLOW_CUSTOM_VEHICLE_SETUP (8) + ABS_ALLOWED (32) + SC_ALLOWED (64) + TCS_ALLOWED (128) + "
// FORCE_SAME_VEHICLE_CLASS (1024) + FILL_SESSION_WITH_AI (131072) + AUTO_START_ENGINE (524288) = 656616"
// See /api/list/flags/session in HTTP API, or globals "lists.flags.session" or "SessionFlags" in Lua API for the full list.
"Flags" : 656616,

// Visual only damage
"DamageType" : 1,

// No tire wear.
"TireWearType" : 8,

// Fuel usage off.
"FuelUsageType" : 2,

// Penalties on.
"PenaltiesType" : 1,

// Any camera view allowed.
"AllowedViews" : 0,

// Track Brands Hatch Indy. See /api/list/tracks/ in HTTP API or globals "lists.tracks", "id_to_track" or "name_to_track" in Lua API.
"TrackId" : 1988984740,

// Vehicle class Road A. See /api/list/vehicle_classes/ in HTTP API or globals "lists.vehicle_classes", "id_to_vehicle_class" or "name_to_vehicle_class" in Lua API.
"VehicleClassId" : 767810805,

// Vehicle Renault Megane (but not forced by default flags). See /api/list/vehicles/ in HTTP API or globals "lists.vehicles", "id_to_vehicle" or "name_to_vehicle" in Lua API.
"VehicleModelId" : 1694837381,

// Starting date and time.
"DateYear" : 2015,
"DateMonth" : 7,
"DateDay" : 6,
"DateHour" : 11,
"DateMinute" : 0,

// Standard speed for date and weather progression.
"DateProgression" : 1,
"ForecastProgression" : 1,

// Single weather slot set to "Weather_Clear1". See /api/list/enums/weather in HTTP API or globals "lists.enums.weather" or "Weather" in Lua API.
"WeatherSlots" : 1,
"WeatherSlot1" : -934211870,
"WeatherSlot2" : -934211870,
"WeatherSlot3" : -934211870,
"WeatherSlot4" : -934211870,
}

LiveWire
13-11-2015, 13:15
I'll play with this over the next couple of days and see what I can find.

elitegameservers
13-11-2015, 13:24
I'll play with this over the next couple of days and see what I can find.

Thank you, I've already played around with the port assignments. This doesn't seem to make a difference. I think there might be an overlapping default port in the new version of project cars, which cannot be changed in the config.

elitegameservers
18-11-2015, 22:58
I'll play with this over the next couple of days and see what I can find.

Are there any updates on this case? We have multiple nodes and multiple gameservers that are still unable to start due to this problem.

LiveWire
21-11-2015, 17:13
Try this, I'm not sure what ports you have in use, but this worked on a server with 3 other PCARS DS running. Of course I couldn't test with your IP.


"//" : "You can use dummy entries like this to write comments into the config. 'rem' and '#' are also supported as comment entries."
// But in recent version of the server, standard C++ like one-liner comments are supported as well.

//////////////////////////
// Basic server options //
//////////////////////////

// Logging level of the server. Messages of this severity and more important will be logged. Can be any of debug/info/warning/error.
logLevel : "info"

// Number of gameplay events stored on the server. Oldest ones will be discarded once the game logs more.
eventsLogSize : 10000

// The server's name, this will appear in server browser (when implemented) and will be also the default name of sessions hosted on the server.
name : "MMRACE"

// Authenticate users with Steam to check VAC ban when set to true.
secure : true

// Password required to create sessions on the server as well as to join the sessions, password set in Create options is ignored on DS.
password : ""

// Maximum size of sessions that can be created on this server.
// Note that setting this above 16 will allow sessions unjoinable by 32-bit clients to be created on the server.
// The game also currently does not support sessions larger than 32, even if the server can be configured for up to 64 players.
maxPlayerCount : 16

// IP address where the server's sockets should be bound. Leave empty for 'all interfaces'.
bindIP : "185.42.221.142"

// ports used to communicate with Steam and game, they must all be accessible on the public IP of the server.
steamPort : 8076
hostPort : 27020
queryPort : 27021

// Delay between server ticks in milliseconds, when not hosting and when hosting a game, respectively.
// Lower values will make the server more responsible and decrease latency by a bit at the expense of higher CPU usage.
sleepWaiting : 250
sleepActive : 10


// (blacklist and whitelist is intentionally not included in this basic sample config as they can complicate things a bit.)


///////////////////////////
// HttpApi configuration //
///////////////////////////

// This provides http-based API and basic web-based controls using a built-in http server.
// HttpApi is disabled by default, and if you enable it with everything else left to default it will listen only locally on 127.0.0.1:9000

// Master enable/disable toggle.
enableHttpApi : false

// Similar to logLevel above but used only for libwebsockets output.
// Note that all logging still goes through the main filter, so you won't be able to use more verbose logging here than the main level.
httpApiLogLevel : "warning"

// Interface name or IP where to bind the local http server providing the API and web-based controls.
// This is the textual name of the interface as assigned by your OS, or IP address of the interface.
httpApiInterface : "127.0.0.1"

// Port where the local http server listens.
httpApiPort : 9000

// Map with extra HTTP headers to add to HTTP API responses.
// The keys are the conditions for adding the headers, the values are the headers to add.
// There are no conditions supported yet, so just use "*" for a generic wildard for now, that will match everything in the future too.
httpApiExtraHeaders : {
"*" : "Access-Control-Allow-Origin: *"
}


//////////////////////////
// LuaApi configuration //
//////////////////////////

// Lua API allows the server to be extended by in-server scripting in Lua.
// The server is running Lua version 5.3, currently with no sandboxing applied to the add-ons. All standard Lua library functions are available.

// WARNING: The LuaApi is not final and the following breaking changes are planned soon:
// - Rename Lua addon metadata files from *.txt to *.json
// - Remove default config from the metadata and put it into separate file *_default_config.json
// - Separate config and persistent data, so that data saved by addons will not pollute the config files, and the config files will retain all comments from the default files.

// Master enable/disable toggle.
enableLuaApi : true

// Root directory from which the Lua addons are loaded. Relative to current directory if it's not absolute.
luaAddonRoot: "lua"

// Root directory where the addon configs will be stored if written out by addons. Default configs are defined in the addon base text files.
luaConfigRoot: "lua_config"

// Root directory where the addon output will be written, once supported. For now the io functions can write anywhere, but this will be limited to this directory in the future.
luaOutputRoot: "lua_output"

// Names of all Lua addons to load. The addons will be loaded in the specified order. Each addon can list other addons as its dependencies, which attempt to load those first.
// The server will load addons from directory specified in "luaAddonRoot", loading of each addon will start by loading its config from ADDON_NAME/ADDON_NAME.txt
luaApiAddons : [

// Core server bootup scripts and helper functions. This will be always loaded first even if not specified here because it's an implicit dependency of all addons.
"sms_base",

// Automatic race setup rotation.
"sms_rotate",

// Sends greetings messages to joining members, optionally with race setup info, optionally also whenever returning back to lobby post-race.
"sms_motd",

// Tracks various stats on the server - server, session and player stats.
// Still work in progress so disabled by default.
//"sms_stats",
]


////////////////////////////////
// Game setup control options //
////////////////////////////////

// Set to true to make this server show up in the browser even if it's empty.
allowEmptyJoin : true

// Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
// Set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set.
// This must be set to "true" for the following attributes to work: ServerControlsTrack, ServerControlsVehicleClass, ServerControlsVehicle
controlGameSetup : false

// Initial attribute values, see /api/list/attributes/session for the full list.
// These attributes will be used when joining an empty server via the borwser (if allowEmptyJoin is true) and as the intial attributes for the set_attributes and set_next_attributes APIs (if controlGameSetup is true)
// The defaults set these values:
sessionAttributes : {
// The host player can control track selection if set to 0. Set to 1 to disable track selection in the game.
"ServerControlsTrack" : 0,

// The host player can change the vehicle class by going through the garage if set to 0. Set to 1 to disallow players changing the class.
// Flag FORCE_SAME_VEHICLE_CLASS (1024) should be also set for this to make sense, otherwise players are able to choose cars from any class.
"ServerControlsVehicleClass" : 0,

// Players can change their vehicle if set to 0. Set to 1 to disallow players changing the vehicle.
// Flag FORCE_IDENTICAL_VEHICLES (2) should be also set for this to make sense.
"ServerControlsVehicle" : 0,

// Grid size up to 32, all reserved to players, so no AI.
// Note that 32-bit clients will not be able to join the game if this is larger than 16.
"GridSize" : 32,
"MaxPlayers" : 16,

// Just 3 race laps.
"Practice1Length" : 0,
"Practice2Length" : 0,
"QualifyLength" : 0,
"WarmupLength" : 0,
"Race1Length" : 3,

// Race flags - bitfield consisting of many flags, the default is set like this:
// ALLOW_CUSTOM_VEHICLE_SETUP (8) + ABS_ALLOWED (32) + SC_ALLOWED (64) + TCS_ALLOWED (128) + "
// FORCE_SAME_VEHICLE_CLASS (1024) + FILL_SESSION_WITH_AI (131072) + AUTO_START_ENGINE (524288) = 656616"
// See /api/list/flags/session in HTTP API, or globals "lists.flags.session" or "SessionFlags" in Lua API for the full list.
"Flags" : 656616,

// Visual only damage
"DamageType" : 1,

// No tire wear.
"TireWearType" : 8,

// Fuel usage off.
"FuelUsageType" : 2,

// Penalties on.
"PenaltiesType" : 1,

// Any camera view allowed.
"AllowedViews" : 0,

// Track Brands Hatch Indy. See /api/list/tracks/ in HTTP API or globals "lists.tracks", "id_to_track" or "name_to_track" in Lua API.
"TrackId" : 1988984740,

// Vehicle class Road A. See /api/list/vehicle_classes/ in HTTP API or globals "lists.vehicle_classes", "id_to_vehicle_class" or "name_to_vehicle_class" in Lua API.
"VehicleClassId" : 767810805,

// Vehicle Renault Megane (but not forced by default flags). See /api/list/vehicles/ in HTTP API or globals "lists.vehicles", "id_to_vehicle" or "name_to_vehicle" in Lua API.
"VehicleModelId" : 1694837381,

// Starting date and time.
"DateYear" : 2015,
"DateMonth" : 7,
"DateDay" : 6,
"DateHour" : 11,
"DateMinute" : 0,

// Standard speed for date and weather progression.
"DateProgression" : 1,
"ForecastProgression" : 1,

// Single weather slot set to "Weather_Clear1". See /api/list/enums/weather in HTTP API or globals "lists.enums.weather" or "Weather" in Lua API.
"WeatherSlots" : 1,
"WeatherSlot1" : -934211870,
"WeatherSlot2" : -934211870,
"WeatherSlot3" : -934211870,
"WeatherSlot4" : -934211870,
}

LiveWire
01-12-2015, 05:46
It appears you can increment all three ports (steam, host and query). It looks like you are using Lua. Are you using this or the API on multiple servers? Right now I am running 2 without API/Lua and 1 with APi/Lua on the same server, so check your ports if you are still having problems.

elitegameservers
13-02-2016, 17:18
We have tried the config you used before but it didn't help.
However the issue seems to have been resolved now, it seems that updating the Project Cars server may have solved the problem because we didn't change any of the configurations and now it works.

DFAlex
14-02-2016, 09:53
...