TF2 Server Error: memory could not be read

TF2 Server Error: memory could not be read - Pensive attentive woman in glasses and elegant vintage outfit focusing and taking notes with pencil in book while standing against gray wall

Environment:

  • Team Fortress 2 dedicated server, latest version
  • OS: Windows XP Pro Service Pack 3
  • CPU: Intel Core 2 Duo 2.80 GHz
  • CPU Usage by TF2 Server: 20-50%
  • RAM: 4 GB
  • RAM Usage by TF2 Server: ~450 MB
  • 17 bots, 1 human playing a LAN game

Problem:

When a map finishes, and the server attempts to automatically load the next map, an application error is displayed like:

The server log files do not indicate any problems.

server.cfg:

// General Settings //

// Hostname for server.
hostname "My Server"

// Password to play on server.
sv_password "My P@$$w0rd"

// Overrides the max players reported to prospective clients
sv_visiblemaxplayers 24

// Maximum number of rounds to play before server changes maps
mp_maxrounds 5

// Set to lock per-frame time elapse
host_framerate 0

// Set the pause state of the server
setpause 0

// Control where the client gets content from 
// 0 = anywhere, 1 = anywhere listed in white list, 2 = steam official content only
sv_pure 2

// Is the server pausable
sv_pausable 0

// Type of server 0=internet 1=lan
sv_lan 1

// Collect CPU usage stats
sv_stats 1



// Execute Banned Users //
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip



// Contact & Region //

// Contact email for server sysop
//sv_contact emailaddy@google.com

// The region of the world to report this server in.
// -1 is the world, 0 is USA east coast, 1 is USA west coast
// 2 south america, 3 europe, 4 asia, 5 australia, 6 middle east, 7 africa
sv_region -1



// Rcon Settings //

// Password for rcon authentication (Remote CONtrol)
rcon_password My_Password!

// Number of minutes to ban users who fail rcon authentication
sv_rcon_banpenalty 1440

// Max number of times a user can fail rcon authentication before being banned
sv_rcon_maxfailures 5



// Log Settings //

// Enables logging to file, console, and udp < on | off >.
log on

// Log server information to only one file.
sv_log_onefile 0

// Log server information in the log file.
sv_logfile 1

// Log server bans in the server logs.
sv_logbans 1

// Echo log information to the console.
sv_logecho 1



// Rate Settings //

// Frame rate limiter
fps_max 600

// Min bandwidth rate allowed on server, 0 == unlimited
sv_minrate 0

// Max bandwidth rate allowed on server, 0 == unlimited
sv_maxrate 20000

// Minimum updates per second that the server will allow
sv_minupdaterate 10

// Maximum updates per second that the server will allow
sv_maxupdaterate 66



// Download Settings //

// Allow clients to upload customizations files
sv_allowupload 0

// Allow clients to download files
sv_allowdownload 1

// Maximum allowed file size for uploading in MB
net_maxfilesize 15



// Team Balancing //

// Enable team balancing
mp_autoteambalance 0

// Steam said these two commands are unknown. So I commented them.

// Time after the teams become unbalanced to attempt to switch players.
//mp_autoteambalance_delay 60

// Time after the teams become unbalanced to print a balance warning
//mp_autoteambalance_warning_delay 30

// Teams are unbalanced when one team has this many more players than the other team. (0 disables check)
mp_teams_unbalance_limit 1



// Round and Game Times //

// Game time per map in minutes
mp_timelimit 3

// Enable timers to wait between rounds. WARNING: Setting this to 0 has been known to cause a bug with setup times lasting 5:20 (5 minutes 20 seconds) on some servers!
mp_enableroundwaittime 1

// Time after round win until round restarts
mp_bonusroundtime 8

// If non-zero, the current round will restart in the specified number of seconds
mp_restartround 0

// Enable sudden death
mp_stalemate_enable 1

// Timelimit (in seconds) of the stalemate round.
mp_stalemate_timelimit 300



// Bots //

// Number of computer-controlled bots in the server. If a player is in the server, it will override a bot slot.
tf_bot_quota 17



// Client CVars //

// 0 = enable, 1 = disable respawn times
mp_disable_respawn_times 1

// Restricts spectator modes for dead players
mp_forcecamera 0

// Toggles whether the server allows spectator mode or not
mp_allowspectators 1

// Toggles footstep sounds
mp_footsteps 1

// Toggles game cheats
sv_cheats 0

// After this many seconds without a message from a client, the client is dropped
sv_timeout 900

// Maximum time a player is allowed to be idle (in minutes), made this and sv_timeout equal same time?
mp_idlemaxtime 15

// Deals with idle players 1=send to spectator 2=kick
mp_idledealmethod 2

// Time (seconds) between decal sprays
decalfrequency 30



// Communications //

// enable voice communications
sv_voiceenable 1

// Players can hear all other players, no team restrictions 0=off 1=on
sv_alltalk 0

// Amount of time players can chat after the game is over
mp_chattime 10

// Enable party mode
tf_birthday 0

mapcycle.txt:

koth_sawmill
cp_dustbowl
koth_nucleus
ctf_turbine
koth_badlands
cp_manor_event
koth_lakeside_final
cp_foundry
koth_viaduct
cp_granary
pl_badwater
koth_king
cp_badlands
pl_goldrush
koth_probed
cp_vanguard
pl_swiftwater_final1
koth_moonshine_event
cp_gullywash_final1
pl_hoodoo_final
koth_lazarus
cp_snakewater_final1
pl_thundermountain
koth_lakeside_event
cp_process_final
pl_upward
koth_brazil
cp_metalworks
pl_barnblitz
koth_viaduct_event
cp_gorge
pl_enclosure_final
koth_slasher
cp_sunshine
pl_fifthcurve_event
koth_slaughter_event
cp_mercenarypark
pl_rumble_event
cp_mossrock
pl_precipice_event_final
cp_gorge_event

Update #1: I thought it might be the outdated OS (Windows XP) so I installed Windows 10 instead and guess what... the server completely shuts down when trying to change maps.

Update #2: I created a Windows 10 Home virtual machine (on a Windows 10 Home host) using Virtualbox with 4 GB of RAM and two virtual CPUs. The same behavior is occurring (dedicated server crashes during a map change).



Best Answer

Sounds like a RAM issue

Yes, TF2 idles around the 450 MB mark, but if the issue only occurs during map change, then chances are it's spiking way higher than 450 MB attempting to load all the new files for the new map, causing the error above.

As a test (and stop-gap solution), you can try increasing the page file size in Windows. A page file (also known as a swap file, or virtual memory) is a space on the hard drive that Windows will move stuff to when RAM is running low.

It's generally very slow when compared to using actual RAM, so I wouldn't recommend this as a long-term solution (especially if you want this server to eventually be hosted online), but it should stop TF2 from crashing and confirm this was the issue.


To increase the page file size, in Windows 10/11:

  • Hit Start and type "Advanced System", you should see "View Advanced System Settings." Click on it.
  • In System Properties, under the 'Advanced' tab, click the 'Settings' button under the 'Performance' box.
  • In the new window that opens, under the 'Advanced' tab, click the '*Change button under the 'Virtual memory' box
  • Uncheck 'Automatically manage paging file size for all drives'
  • Highlight your Windows system drive and select 'Custom size'
  • Change the Initial size value and the Maximum size value to a higher value. Note the current settings are shown below in MB.
  • Click Set, then Apply/OK all the way back out.

Then, you should boot up TF2 and see what happens during a match change. If this fixes the issue, you can then look at purchasing more RAM for the system.




Pictures about "TF2 Server Error: memory could not be read"

TF2 Server Error: memory could not be read - From above of opened comics magazine with vintage photo camera placed on top
TF2 Server Error: memory could not be read - Comic books and photo camera
TF2 Server Error: memory could not be read - Opened book with Arabic lettering on sheets





[Solved] Referenced memory at 0x00000000 the memory could not be read




Sources: Stack Exchange - This article follows the attribution requirements of Stack Exchange and is licensed under CC BY-SA 3.0.

Images: Andrea Piacquadio, Wallace Chuck, Wallace Chuck, Serinus