Re: [hlcoders] Physics crash related (urgent).
This is a multi-part message in MIME format. -- [ Picked text/plain from multipart/alternative ] Thank you Mulchman and rest of people except the drunk one :P Yes I think all my physic objects are vphysics. BTW, I copied a method from SDK meant for gibs to create my hats, maybe should I use a different approach for multiplayer? That function is used for single player APC so maybe this isn't correct at all. CPhysicsProp *pHat = assert_cast(CreateEntityByName( "prop_physics" )); I wish there was more info about physics in Source, if someone can point me to a related document I'd be very grateful. I couldn't see any relevant in Valve's wiki. So well, I added the DAMAGE_NO flag to every physic object in my mod, for the moment our server stopped crashing except one time. That's a very rare crash which happens when server is loading a new map, just when is supposed to start loading. It happens after the same map but rarely. This is the call stack: server.dll!CBaseEntity::TakeDamage(const CTakeDamageInfo & inputInfo=) Line 1204 + 0xd bytes C++ > server.dll!CBaseEntity::PhysicsDispatchThink(void (void)* > thinkFunc=0x) Line 1068 C++ PhysicsDispatchThink is supposed to run when there are ropes in the map? // Purpose: Called when it's time for a physically moved objects (plats, doors, etc) to run it's game code. --- All of our buildable objects - detpack, dispenser, sg - run the code below when they explode. The detpack is a "real" physics object (as in it uses VPhysicsInitNormal()) and I'm assuming your hat you describe is vphysics as well. void CFFBuildableObject::Explode( void ) { VPROF_BUDGET( "CFFBuildableObject::Explode", VPROF_BUDGETGROUP_FF_BUILDABLE ); // MUST DO THIS or CreateExplosion crashes HL2 m_takedamage = DAMAGE_NO; // Remove bounding box (other models follow this pattern...) SetSolid( SOLID_NONE ); // Do the explosion DoExplosion(); // Notify player to tell them they can build // again and remove current owner m_hOwner = NULL; // Remove entity from game UTIL_Remove( this ); } And that's it. There's also a method for 'quietly' removing a buildable object (like when dismantling) but it's the same code minus the DoExplosion() call. Anyway, we've never experienced/received minidumps from people w/ weird physics related errors so perhaps you need some other steps in addition to using UTIL_Remove(). -- ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
Re: [hlcoders] Physics crash related (urgent).
well ive drunk a fair amount and im still able to type properly although without any punctuation whatsoever... Merry Christmas everyone, have a good one, get drunk (well, dont), have fun, do not shoot santa! Ondřej Hošek wrote: Posting under the Influence (PUI) will lead to a revocation of your license to post. Please do not try typing when your blood contains more than 0.2% of alcohol. Actually, I'm impressed you were able to press two keys simultaneously when typing the exclamation mark, and don't get me started on the nonce word "sadues". Meery Christams and a hapy NEw yAer! ~~ Ondra On 25.12.07 0:35 Uhr, Josh Marshall wrote: -- [ Picked text/plain from multipart/alternative ] its christams sadues stop emialing and tget with ti, man! On Dec 24, 2007 7:10 PM, Mulchman <[EMAIL PROTECTED]> wrote: All of our buildable objects - detpack, dispenser, sg - run the code below when they explode. The detpack is a "real" physics object (as in it uses VPhysicsInitNormal()) and I'm assuming your hat you describe is vphysics as well. void CFFBuildableObject::Explode( void ) { VPROF_BUDGET( "CFFBuildableObject::Explode", VPROF_BUDGETGROUP_FF_BUILDABLE ); // MUST DO THIS or CreateExplosion crashes HL2 m_takedamage = DAMAGE_NO; // Remove bounding box (other models follow this pattern...) SetSolid( SOLID_NONE ); // Do the explosion DoExplosion(); // Notify player to tell them they can build // again and remove current owner m_hOwner = NULL; // Remove entity from game UTIL_Remove( this ); } And that's it. There's also a method for 'quietly' removing a buildable object (like when dismantling) but it's the same code minus the DoExplosion() call. Anyway, we've never experienced/received minidumps from people w/ weird physics related errors so perhaps you need some other steps in addition to using UTIL_Remove(). -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of A.Oliver Sent: Monday, December 24, 2007 08:09 To: hlcoders@list.valvesoftware.com Subject: [hlcoders] Physics crash related (urgent). This is a multi-part message in MIME format. -- [ Picked text/plain from multipart/alternative ] Our recently released modification (Fistful of Frags) is suffering some stability issues. Hope someone can bring some light to these serious servers crashes. I posted another similar issue in this list, and as I said before, I never modified any part of the physics code. Now I'm starting to understand what's going on, seems like a physic entity was removed, but server is still trying to use it so finds a null pointer and crashes. Is that rigth? These issues were noticed only during maximum stress, once the mod was released. They may happen rarely or not, depends the way physics are stressed I guess. I'm using UTIL_Remove in several parts of the game, example: a cowboy hat is created (falls to ground), and after some seconds is deleted. There are other items deleted in a similar way. Should I use other method different from UTIL_Remove? And a last question. Can server performance ( low FPS) make these issues worse? Because they tend to happen more in our own server, which sometimes is even below 10 FPS. Hope this helps, these are 3 different call stacks we are seeing repitedly. If you need any other info plz let me know. server.dll!AllocTouchLink() Line 361 + 0x41 bytes C++ server.dll!CBaseEntity::PhysicsMarkEntityAsTouched(CBaseEntity * other=0x0d21e300) Line 850 + 0x5 bytes C++ server.dll!CBaseEntity::PhysicsMarkEntitiesAsTouchingEventDriven (CBaseEntity * other=0x, CGameTrace & trace={...}) Line 908 C++ server.dll!CCollisionEvent::DispatchStartTouch(CBaseEntity * pEntity0=0x0d21e300, CBaseEntity * pEntity1=0x0fdf0dd8, const Vector & point={...}, const Vector & normal={...}) Line 1567 + 0x8c bytes C++ server.dll!CCollisionEvent::UpdateTouchEvents() Line 1590 C++ server.dll!PhysFrame(float deltaTime=0.01500) Line 1262 + 0xa bytes C++ server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * timed=0x2217be3f) Line 431 C++ server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + 0x14 bytes C++ - server.dll!CCollisionEvent::UpdateDamageEvents() Line 1624 + 0x8 bytes C++ server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * timed=0x2217be3f) Line 431 C++ server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + 0x14 bytes C++ - server.dll!CBaseEntity::TakeDamage(const CTakeDamageInfo & inputInfo={...}) Line 1204 + 0xd bytes C++ server.dll!CCollisionEvent::UpdateDamageEvents() Line 1642 C++ server.dll!CCollisi
Re: [hlcoders] Physics crash related (urgent).
Posting under the Influence (PUI) will lead to a revocation of your license to post. Please do not try typing when your blood contains more than 0.2% of alcohol. Actually, I'm impressed you were able to press two keys simultaneously when typing the exclamation mark, and don't get me started on the nonce word "sadues". Meery Christams and a hapy NEw yAer! ~~ Ondra On 25.12.07 0:35 Uhr, Josh Marshall wrote: -- [ Picked text/plain from multipart/alternative ] its christams sadues stop emialing and tget with ti, man! On Dec 24, 2007 7:10 PM, Mulchman <[EMAIL PROTECTED]> wrote: All of our buildable objects - detpack, dispenser, sg - run the code below when they explode. The detpack is a "real" physics object (as in it uses VPhysicsInitNormal()) and I'm assuming your hat you describe is vphysics as well. void CFFBuildableObject::Explode( void ) { VPROF_BUDGET( "CFFBuildableObject::Explode", VPROF_BUDGETGROUP_FF_BUILDABLE ); // MUST DO THIS or CreateExplosion crashes HL2 m_takedamage = DAMAGE_NO; // Remove bounding box (other models follow this pattern...) SetSolid( SOLID_NONE ); // Do the explosion DoExplosion(); // Notify player to tell them they can build // again and remove current owner m_hOwner = NULL; // Remove entity from game UTIL_Remove( this ); } And that's it. There's also a method for 'quietly' removing a buildable object (like when dismantling) but it's the same code minus the DoExplosion() call. Anyway, we've never experienced/received minidumps from people w/ weird physics related errors so perhaps you need some other steps in addition to using UTIL_Remove(). -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of A.Oliver Sent: Monday, December 24, 2007 08:09 To: hlcoders@list.valvesoftware.com Subject: [hlcoders] Physics crash related (urgent). This is a multi-part message in MIME format. -- [ Picked text/plain from multipart/alternative ] Our recently released modification (Fistful of Frags) is suffering some stability issues. Hope someone can bring some light to these serious servers crashes. I posted another similar issue in this list, and as I said before, I never modified any part of the physics code. Now I'm starting to understand what's going on, seems like a physic entity was removed, but server is still trying to use it so finds a null pointer and crashes. Is that rigth? These issues were noticed only during maximum stress, once the mod was released. They may happen rarely or not, depends the way physics are stressed I guess. I'm using UTIL_Remove in several parts of the game, example: a cowboy hat is created (falls to ground), and after some seconds is deleted. There are other items deleted in a similar way. Should I use other method different from UTIL_Remove? And a last question. Can server performance ( low FPS) make these issues worse? Because they tend to happen more in our own server, which sometimes is even below 10 FPS. Hope this helps, these are 3 different call stacks we are seeing repitedly. If you need any other info plz let me know. server.dll!AllocTouchLink() Line 361 + 0x41 bytes C++ server.dll!CBaseEntity::PhysicsMarkEntityAsTouched(CBaseEntity * other=0x0d21e300) Line 850 + 0x5 bytes C++ server.dll!CBaseEntity::PhysicsMarkEntitiesAsTouchingEventDriven (CBaseEntity * other=0x, CGameTrace & trace={...}) Line 908 C++ server.dll!CCollisionEvent::DispatchStartTouch(CBaseEntity * pEntity0=0x0d21e300, CBaseEntity * pEntity1=0x0fdf0dd8, const Vector & point={...}, const Vector & normal={...}) Line 1567 + 0x8c bytes C++ server.dll!CCollisionEvent::UpdateTouchEvents() Line 1590 C++ server.dll!PhysFrame(float deltaTime=0.01500) Line 1262 + 0xa bytes C++ server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * timed=0x2217be3f) Line 431 C++ server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + 0x14 bytes C++ - server.dll!CCollisionEvent::UpdateDamageEvents() Line 1624 + 0x8 bytes C++ server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * timed=0x2217be3f) Line 431 C++ server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + 0x14 bytes C++ - server.dll!CBaseEntity::TakeDamage(const CTakeDamageInfo & inputInfo={...}) Line 1204 + 0xd bytes C++ server.dll!CCollisionEvent::UpdateDamageEvents() Line 1642 C++ server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ server.dll!InvokePerFrameMethod(void (void)* f
Re: [hlcoders] Physics crash related (urgent).
-- [ Picked text/plain from multipart/alternative ] its christams sadues stop emialing and tget with ti, man! On Dec 24, 2007 7:10 PM, Mulchman <[EMAIL PROTECTED]> wrote: > All of our buildable objects - detpack, dispenser, sg - run the code below > when they explode. The detpack is a "real" physics object (as in it uses > VPhysicsInitNormal()) and I'm assuming your hat you describe is vphysics > as > well. > > void CFFBuildableObject::Explode( void ) > { >VPROF_BUDGET( "CFFBuildableObject::Explode", > VPROF_BUDGETGROUP_FF_BUILDABLE ); > >// MUST DO THIS or CreateExplosion crashes HL2 >m_takedamage = DAMAGE_NO; > >// Remove bounding box (other models follow this pattern...) >SetSolid( SOLID_NONE ); > >// Do the explosion >DoExplosion(); > >// Notify player to tell them they can build >// again and remove current owner >m_hOwner = NULL; > >// Remove entity from game >UTIL_Remove( this ); > } > > And that's it. There's also a method for 'quietly' removing a buildable > object (like when dismantling) but it's the same code minus the > DoExplosion() call. > > Anyway, we've never experienced/received minidumps from people w/ weird > physics related errors so perhaps you need some other steps in addition to > using UTIL_Remove(). > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of A.Oliver > Sent: Monday, December 24, 2007 08:09 > To: hlcoders@list.valvesoftware.com > Subject: [hlcoders] Physics crash related (urgent). > > This is a multi-part message in MIME format. > -- > [ Picked text/plain from multipart/alternative ] > Our recently released modification (Fistful of Frags) is suffering some > stability issues. Hope someone can bring some light to these serious > servers > crashes. I posted another similar issue in this list, and as I said > before, > I never modified any part of the physics code. Now I'm starting to > understand what's going on, seems like a physic entity was removed, but > server is still trying to use it so finds a null pointer and crashes. Is > that rigth? > > These issues were noticed only during maximum stress, once the mod was > released. They may happen rarely or not, depends the way physics are > stressed I guess. > > I'm using UTIL_Remove in several parts of the game, example: a cowboy hat > is > created (falls to ground), and after some seconds is deleted. There are > other items deleted in a similar way. Should I use other method different > from UTIL_Remove? > > And a last question. Can server performance ( low FPS) make these issues > worse? Because they tend to happen more in our own server, which sometimes > is even below 10 FPS. > > Hope this helps, these are 3 different call stacks we are seeing > repitedly. > If you need any other info plz let me know. > > > > server.dll!AllocTouchLink() Line 361 + 0x41 bytes C++ > server.dll!CBaseEntity::PhysicsMarkEntityAsTouched(CBaseEntity * > other=0x0d21e300) Line 850 + 0x5 bytes C++ > > server.dll!CBaseEntity::PhysicsMarkEntitiesAsTouchingEventDriven > (CBaseEntity > * other=0x, CGameTrace & trace={...}) Line 908 C++ > server.dll!CCollisionEvent::DispatchStartTouch(CBaseEntity * > pEntity0=0x0d21e300, CBaseEntity * pEntity1=0x0fdf0dd8, const Vector & > point={...}, const Vector & normal={...}) Line 1567 + 0x8c bytes C++ > server.dll!CCollisionEvent::UpdateTouchEvents() Line 1590 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line 1262 + 0xa bytes > C++ > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * > timed=0x2217be3f) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + > 0x14 bytes C++ > > - > > > server.dll!CCollisionEvent::UpdateDamageEvents() Line 1624 + 0x8 bytes > C++ > server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, const char * > timed=0x2217be3f) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + > 0x14 bytes C++ > > > - > > server.dll!CBaseEntity::TakeDamage(const CTakeDamageInfo & > inputInfo={...}) Line 1204 + 0xd bytes C++ > server.dll!CCollisionEvent::UpdateDamageEvents() Line 1642 C++ > server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ > > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198420, const char * > timed=0x2217bddf) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) Line 1001 + > 0x14 bytes C++ > -- > > > ___ >
RE: [hlcoders] Physics crash related (urgent).
Are you deleting the entities inside a callback form vphysics? e.g. VPhysicsCollision? That can cause crashes. There should be code that prevents that - i.e. UTIL_Remove() should actually add the object to a list by calling PhysCallbackRemove() but I don't have the SDK code in front of me so I can't check. Jay > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of A.Oliver > Sent: Monday, December 24, 2007 8:09 AM > To: hlcoders@list.valvesoftware.com > Subject: [hlcoders] Physics crash related (urgent). > > This is a multi-part message in MIME format. > -- > [ Picked text/plain from multipart/alternative ] Our recently > released modification (Fistful of Frags) is suffering some > stability issues. Hope someone can bring some light to these > serious servers crashes. I posted another similar issue in > this list, and as I said before, I never modified any part of > the physics code. Now I'm starting to understand what's going > on, seems like a physic entity was removed, but server is > still trying to use it so finds a null pointer and crashes. > Is that rigth? > > These issues were noticed only during maximum stress, once > the mod was released. They may happen rarely or not, depends > the way physics are stressed I guess. > > I'm using UTIL_Remove in several parts of the game, example: > a cowboy hat is created (falls to ground), and after some > seconds is deleted. There are other items deleted in a > similar way. Should I use other method different from UTIL_Remove? > > And a last question. Can server performance ( low FPS) make > these issues worse? Because they tend to happen more in our > own server, which sometimes is even below 10 FPS. > > Hope this helps, these are 3 different call stacks we are > seeing repitedly. If you need any other info plz let me know. > > > > server.dll!AllocTouchLink() Line 361 + 0x41 bytes C++ > > server.dll!CBaseEntity::PhysicsMarkEntityAsTouched(CBaseEntity > * other=0x0d21e300) Line 850 + 0x5 bytes C++ > > server.dll!CBaseEntity::PhysicsMarkEntitiesAsTouchingEventDriv > en(CBaseEntity * other=0x, CGameTrace & trace={...}) > Line 908 C++ > server.dll!CCollisionEvent::DispatchStartTouch(CBaseEntity > * pEntity0=0x0d21e300, CBaseEntity * pEntity1=0x0fdf0dd8, > const Vector & point={...}, const Vector & normal={...}) > Line 1567 + 0x8c bytes C++ > server.dll!CCollisionEvent::UpdateTouchEvents() Line 1590 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line > 1262 + 0xa bytes C++ > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, > const char * timed=0x2217be3f) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) > Line 1001 + 0x14 bytes C++ > > - > > > server.dll!CCollisionEvent::UpdateDamageEvents() Line 1624 + 0x8 > > bytes C++ > server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198170, > const char * timed=0x2217be3f) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) > Line 1001 + 0x14 bytes C++ > > > - > > server.dll!CBaseEntity::TakeDamage(const CTakeDamageInfo & > inputInfo={...}) Line 1204 + 0xd bytes C++ > server.dll!CCollisionEvent::UpdateDamageEvents() Line 1642 C++ > server.dll!CCollisionEvent::PostSimulationFrame() Line 1499 C++ > server.dll!PhysFrame(float deltaTime=0.01500) Line 1206 C++ > > server.dll!CPhysicsHook::FrameUpdatePostEntityThink() Line 271 C++ > server.dll!InvokePerFrameMethod(void (void)* f=0x22198420, > const char * timed=0x2217bddf) Line 431 C++ > server.dll!CServerGameDLL::GameFrame(bool simulating=true) > Line 1001 + 0x14 bytes C++ > -- > > > ___ > To unsubscribe, edit your list preferences, or view the list > archives, please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > ___ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders