ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
634 stars 74 forks source link

[TF2] Linux x32 server: Random crash when loading pl_embargo #6170

Open bottiger1 opened 1 month ago

bottiger1 commented 1 month ago

I've gotten this crash 3x already when loading pl_embargo on a linux 32bit server. It doesn't seem to happen every time.

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xf52b3406 in CMaterial::GetMaterialVarFlag(MaterialVarFlags_t) const () from /home/tf2/steam/server1/tf/bin/materialsystem_srv.so
[Current thread is 1 (Thread 0xf7af8cc0 (LWP 2660933))]
#0  0xf52b3406 in CMaterial::GetMaterialVarFlag(MaterialVarFlags_t) const () from /home/tf2/steam/server1/tf/bin/materialsystem_srv.so
#1  0xf52d2c93 in CMaterial_QueueFriendly::IsTranslucent() () from /home/tf2/steam/server1/tf/bin/materialsystem_srv.so
#2  0xf5e76b72 in CMDLCacheNotify::ComputeModelFlags(model_t*, unsigned short) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#3  0xf7270182 in CMDLCache::BuildHardwareData(unsigned short, studiodata_t*, studiohdr_t*, OptimizedModel::FileHeader_t*) () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#4  0xf727433e in CMDLCache::ProcessDataIntoCache(unsigned short, MDLCacheDataType_t, int, void*, int, bool) () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#5  0xf7273873 in CMDLCache::ProcessPendingAsync(int) [clone .part.0] () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#6  0xf72768a4 in CMDLCache::LoadHardwareData(unsigned short) () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#7  0xf7276af0 in CMDLCache::GetHardwareData(unsigned short) [clone .part.0] () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#8  0xf7277963 in CMDLCache::TouchAllData(unsigned short) () from /home/tf2/steam/server1/tf/bin/datacache_srv.so
#9  0xf5e766a0 in Mod_TouchAllData(model_t*, int) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#10 0xf5e77c17 in CModelLoader::Studio_LoadModel(model_t*, bool) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#11 0xf5e799dc in CModelLoader::LoadModel(model_t*, IModelLoader::REFERENCETYPE*) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#12 0xf5e7b821 in CModelLoader::GetModelForName(char const*, IModelLoader::REFERENCETYPE) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#13 0xf5ed6bb1 in CGameServer::PrecacheModel(char const*, int, model_t*) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#14 0xf5ed6c32 in SV_FindOrAddModel(char const*, bool) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#15 0xf5eeacef in CVEngineServer::PrecacheModel(char const*, bool) () from /home/tf2/steam/server1/tf/bin/engine_srv.so
#16 0xeef68a3f in CBaseEntity::PrecacheModel(char const*, bool) () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#17 0xef1326be in CBaseProp::Spawn() () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#18 0xef1400e9 in CDynamicProp::Spawn() () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#19 0xef4045c6 in DispatchSpawn(CBaseEntity*, bool) () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#20 0xef024932 in SpawnAllEntities(int, HierarchicalSpawn_t*, bool) () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#21 0xef025a0d in MapEntity_ParseAllEntities(char const*, IMapEntityFilter*, bool) () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so
#22 0xeefffb7d in CServerGameDLL::LevelInit(char const*, char const*, char const*, char const*, bool, bool) () from /home/tf2/steam/server1/tf/tf/bin/server_srv.so

eax            0x40000000          1073741824
ecx            0x0                 0
edx            0x40e61f4d          1088823117
ebx            0xf52b3510          -181717744
esp            0xffab1a18          0xffab1a18
ebp            0xffab1a18          0xffab1a18
esi            0xd5ac7464          -710118300
edi            0xd5ac74f0          -710118160
eip            0xf52b3406          0xf52b3406 <CMaterial::GetMaterialVarFlag(MaterialVarFlags_t) const+22>
eflags         0x10206             [ PF IF RF ]
cs             0x23                35
ss             0x2b                43
ds             0x2b                43
es             0x2b                43
fs             0x0                 0
gs             0x63                99
Tiagoquix commented 1 month ago

Can you test to see if the same crash happens with any other map of the update?

See https://wiki.teamfortress.com/wiki/Summer_2024_Update#Maps for a list.

bottiger1 commented 1 month ago

We have every new map except for these 3 and we have not seen a crash since removing pl_embargo.

pd_atom_smash koth_cachoeira cp_hadal

bottiger1 commented 1 month ago

I just tested it and it seems to be crashing 100% of the time now, confirmed on x64 as well.

If you are one of the map developers here is the info you need to fix the map.

I hooked the models function and the bad model is models/props_embargo/embargo_truck_emergency_light.mdl on "truck_city_light".

I also recommend that you turn "developer 1" and fix the other model errors, there seems to be a lot of them.

Tiagoquix commented 1 month ago

I'm not one of the map developers, but the creator of Embargo is a friend of mine. I'll notify him.

Tiagoquix commented 1 month ago

The map has been updated. Could you retest to see if the issue persists?

bottiger1 commented 1 month ago

No crashes so far.

Tiagoquix commented 1 month ago

As far as I know, "embargo_truck_emergency_light.mdl" was updated as well (the creator told me). Are you OK to consider this issue as solved and reopen it later if needed?

bottiger1 commented 1 month ago

sure

bottiger1 commented 1 month ago

Nope never mind it is still broken.

Tiagoquix commented 1 month ago

Same crash/problem? Or does it reference anything different this time?

bottiger1 commented 1 month ago

same crash, but it doesn't crash every time now.