--
[ Picked text/plain from multipart/alternative ]
I don't think the modding hl2:dm code is the exact same as valve's hl2:dm
release code

On 5/29/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:
>
> I left my server on dm_steamlab overnight: no crash, and no Physical
> Mayhem bug.  (I'm still reluctant to say it's gone for good after 1 1/2
> years of spending so much of my modding time on this.)
>
> So then I reverted the fix and applied just the assert.  The instant I did
> changelevel dm_steamlab, the assert hit.  This corresponds with previous
> findings that dm_steamlab would always cause the Physical Mayhem bug.  The
> assert involved a prop_physics and a prop_physics_multiplayer, which are
> collisiongroups 1 and 17 respectively.
>
> So now question the is, given that dm_steamlab caused the bad code path
> instantly, how was Valve ever able to play dm_steamlab WITHOUT hitting the
> bug?  There would seem to be some other factor at work, that leaves me wary
> that we haven't seen the last of this.
>
> -bk
>
> At 2006/05/28 11:51 PM, you wrote:
> >The particular case Garry reported was with a prop set to
> >COLLISION_GROUP_PUSHAWAY against another prop set to
> >COLLISION_GROUP_DEBRIS.  The code in hl2mp gamerules returns different
> >values for:
> >ShouldCollide( COLLISION_GROUP_PUSHAWAY, COLLISION_GROUP_DEBRIS );
> >And
> >ShouldCollide( COLLISION_GROUP_DEBRIS, COLLISION_GROUP_PUSHAWAY );
> >
> >The code I posted fixes this.  The picture vs. the file cabinet in
> >cs_office is such a case. Vphysics assumes this will not occur; if it
> >does a bunch of unintended things can happen. (In this particular case
> >it results in a dangling pointer but there are other possible effects
> >depending on the callstack and cached collision state at the time of the
> >bad data coming from the game DLL.  That's why it doesn't always crash
> >or even show up as a problem.)
> >
> >Jay
> >
> >> -----Original Message-----
> >> From: [EMAIL PROTECTED]
> >> [mailto:[EMAIL PROTECTED] On Behalf Of
> >> [EMAIL PROTECTED]
> >> Sent: Sunday, May 28, 2006 7:29 PM
> >> To: hlcoders@list.valvesoftware.com
> >> Subject: RE: [hlcoders] Physical Mayhem in progress - no crash! (yet)
> >>
> >> Yeah part of my real job is engineering support so I
> >> understand the importance of repro steps if engineering
> >> hasn't seen an issue.  I'm a bit baffled though, given how
> >> many people have reported it, that Valve hadn't seen it
> >> regularly.  (Does Valve have a public HL2DM stress test
> >> server?  If so, what's the IP?)
> >>
> >> I think you tried to answer my question, but perhaps I didn't
> >> grasp the intracacies of the answer.  What scenario does the
> >> CHL2MPRules::ShouldCollide change actually fix?  If it's as
> >> simple as one prop hitting another, why doesn't it always break?
> >>
> >> Also, earlier when I reported the bouncing still occuring I
> >> had only applied the fix server-side.  I've since applied it
> >> client-side as well and for about 20 minutes and counting
> >> I've not seen any physics issues.  Too early to call it dead,
> >> but that's promising.
> >>
> >> -bk
> >>
> >> At 2006/05/28 06:34 PM, Jay Stelly wrote:
> >> >Garry sent in a deterministic way to cause some bad physics behavior.
> >> >Because of his repro case I was able to fix a bug with the code I
> >> >posted below.  Personally, I have never been able to reproduce the
> >> >behavior you've described.  I believe Adrian has seen the
> >> behavior in
> >> >HL2DM at some point, but noone at Valve has a set of steps for
> >> >recreating the behavior as far as I know.  Also, I've looked at the
> >> >minidumps you've posted and they don't help diagnose the problem.
> >> >Garry's bug had the same characteristic - looking at the
> >> state of the
> >> >code after the bug had occurred was not helpful.  Being able to
> >> >recreate the behavior in a controlled way is the shortest path to
> >> >fixing the problem.  Sometimes bugs are easy and you can guess the
> >> >cause based on the results, but often they are not.  In
> >> those cases it
> >> >is really desirable to go back through the steps that caused the bug
> >> >and analyze what is happening in the code.  If you can't do
> >> that then debugging is much more difficult.
> >> >
> >> >More info on what was happening here:
> >> >In this case the problem is that the game DLL is not being
> >> consistent
> >> >in how it reports collision rules to vphysics.
> >> ShouldCollide(a,b) is
> >> >supposed to return the same value no matter how many times
> >> it is called
> >> >until you call CollisionRulesChanged() for a or b.  Also
> >> >ShouldCollide(a,b) must always return the same result as
> >> >ShouldCollide(b,a).  Vphysics uses this procedure call instead of
> >> >storing some kind of matrix of possible collisions.  If this
> >> function
> >> >does not fulfill it's part of the contract it can cause vphysics to
> >> >fail (including crashing).
> >> >
> >> >So given that the problem has similar symptoms to Garry's, it makes
> >> >sense for you to instrument your code to test for cases of
> >> the same bug.
> >> >The simplest way to do that would be to wrap ShouldCollide() in
> >> >src/dlls/physics.cpp:
> >> >
> >> >int CCollisionEvent::ShouldCollide( IPhysicsObject *pObj0,
> >> >IPhysicsObject *pObj1, void *pGameData0, void *pGameData1 ) {
> >> >        int x0 = ShouldCollide_Default(pObj0, pObj1, pGameData0,
> >> >pGameData1);
> >> >        int x1 = ShouldCollide_Default(pObj1, pObj0, pGameData1,
> >> >pGameData0);
> >> >        if ( x0 != x1 )
> >> >        {
> >> >                Assert(x0==x1); // break here and step
> >> through the code
> >> >to see what's wrong
> >> >                ShouldCollide_Default(pObj0, pObj1, pGameData0,
> >> >pGameData1);
> >> >                ShouldCollide_Default(pObj1, pObj0, pGameData1,
> >> >pGameData0);
> >> >        }
> >> >        return x0;
> >> >}
> >> >
> >> >int CCollisionEvent::ShouldCollide_Default( IPhysicsObject *pObj0,
> >> >IPhysicsObject *pObj1, void *pGameData0, void *pGameData1 ) // ....
> >> >
> >> >If you hit that assert, you know you've got the same bug and
> >> you should
> >> >be able to step through the code and fix it trivially.  I'll
> >> try that
> >> >as well with dm_steamlab in HL2DM since you are still reporting some
> >> >kind of problem.  If you do hit the assert but don't know how to fix
> >> >it, send me the steps to recreate the assert and I'm sure
> >> I'll be able
> >> >to fix it if I can make the assert happen.
> >> >
> >> >Jay
> >> >
> >> >> -----Original Message-----
> >> >> From: [EMAIL PROTECTED]
> >> >> [mailto:[EMAIL PROTECTED] On Behalf Of
> >> >> [EMAIL PROTECTED]
> >> >> Sent: Sunday, May 28, 2006 2:18 PM
> >> >> To: hlcoders@list.valvesoftware.com
> >> >> Subject: RE: [hlcoders] Physical Mayhem in progress - no
> >> crash! (yet)
> >> >>
> >> >> This is certainly a promising step - thanks all.
> >> >>
> >> >> However, can you explain what exactly this fixes?  Is this
> >> supposed
> >> >> to fix the classic Physical Mayhem Bug, or does this fix
> >> something to
> >> >> do with scripts/propdata_cs.txt, which is presumably irrelevant to
> >> >> the generic HL2DM Physical Mayhem Bug?  Also does "I was able to
> >> >> repro the bug with those changes" mean Valve has -only-
> >> repro'd the
> >> >> bug with those changes?  Ie, has Valve never repro'd the
> >> bug in plain
> >> >> HL2DM?
> >> >>
> >> >> I applied the patch and loaded up dm_steamlab.  Within about
> >> >> 5 minutes, Physics bugs started occurring, but
> >> behaviorally it's not
> >> >> the same as the classic Physical Mayhem Bug.  Now items do
> >> not fall
> >> >> infinitely out of the world, and cpu usage is not 100% as
> >> it normally
> >> >> would be during the Physical Mayhem Bug.  However the warping and
> >> >> repeat-bouncing is still occurring.
> >> >>
> >> >> This seems to be an improvement at least, but it's not a
> >> whole fix.
> >> >> It's still very difficult to play while this is occurring.
> >>  I'm going
> >> >> to leave it running on dm_steamlab to see if it crashes or if the
> >> >> crasher aspect has gone away.
> >> >>
> >> >> Has anyone else tried Jay's patch?
> >> >>
> >> >> -bk
> >> >>
> >> >> At 2006/05/24 08:51 PM, Jay Stelly wrote:
> >> >> >Ok, I was able to repro the bug with those changes.
> >> Here's the fix:
> >> >> >
> >> >> >// add these lines to hl2mp_gamerules.cpp:
> >> >> >
> >> >> >bool CHL2MPRules::ShouldCollide( int collisionGroup0, int
> >> >> >collisionGroup1 )
> >> >> >{
> >> >> >        if ( collisionGroup0 > collisionGroup1 )
> >> >> >        {
> >> >> >                // swap so that lowest is always first
> >> >> >                swap(collisionGroup0, collisionGroup1);
> >> >> >        }
> >> >> >
> >> >> >
> >> >> >Jay
> >> >> >
> >> >> >
> >> >> >> -----Original Message-----
> >> >> >> From: [EMAIL PROTECTED]
> >> >> >> [mailto:[EMAIL PROTECTED] On
> >> Behalf Of Garry
> >> >> >> Newman
> >> >> >> Sent: Wednesday, May 24, 2006 3:14 AM
> >> >> >> To: hlcoders@list.valvesoftware.com
> >> >> >> Subject: Re: [hlcoders] Physical Mayhem in progress - no
> >> >> crash! (yet)
> >> >> >>
> >> >> >> Ok done it. It happens.
> >> >> >>
> >> >> >> I found the exact cause too. When you shoot these pictures
> >> >> they fall
> >> >> >> on the other physics objects..
> >> >> >>
> >> >> >> http://www.garry.tv/img/cs_office_phys.jpg
> >> >> >>
> >> >> >> And then the physical mayhem happens. Which is weird
> >> >> because I always
> >> >> >> thought those pictures were clientside so they
> >> shouldn't even be
> >> >> >> touching the other stuff..
> >> >> >>
> >> >> >> Here's the test mod
> >> >> >>
> >> >> >> http://www.garry.tv/img/phys_testmod.zip
> >> >> >>
> >> >> >> And here's the code changes (based on hl2mp mod)
> >> >> >>
> >> >> >> GameInterface.cpp line 493 after TheNavMesh = ...
> >> >> >>
> >> >> >> filesystem->MountSteamContent( 240 ); AddSearchPath( "cstrike",
> >> >> >> filesystem->"GAME" );
> >> >> >>
> >> >> >> cdll_client_int.cpp line 523 after ClientWorldFactoryInit();
> >> >> >>
> >> >> >> filesystem->MountSteamContent( 240 ); AddSearchPath( "cstrike",
> >> >> >> filesystem->"GAME" );
> >> >> >>
> >> >> >> props_shared.cpp line195
> >> >> >>
> >> >> >> if ( !m_pKVPropData->LoadFromFile( filesystem,
> >> >> >> "scripts/propdata_cs.txt" ) )
> >> >> >>
> >> >> >> I changed the spawnpoints to use
> >> >> info_player_counterterrorist too but
> >> >> >> I doubt that affected it.
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> On 5/24/06, Garry Newman <[EMAIL PROTECTED]> wrote:
> >> >> >> > Yeah kinda. I'm based off HL2, and mounting CS:S using the
> >> >> >> > filesystem->mount and addsearchpath (to tail) commands.
> >> >> >> >
> >> >> >> > I'll try it with a new mod to make sure it isn't something
> >> >> >> that only
> >> >> >> > happens with GMod..
> >> >> >> >
> >> >> >> > On 5/23/06, Adrian Finol <[EMAIL PROTECTED]> wrote:
> >> >> >> > > I just tried to reproduce this by following these
> >> steps and I
> >> >> >> > > couldn't get it to happen.
> >> >> >> > >
> >> >> >> > > This is what I did so let me know if I missed something:
> >> >> >> > >
> >> >> >> > > I changed HL2DM's GameInfo.txt to also mount the cstrike
> >> >> >> folder so I
> >> >> >> > > could load cs_office and all its resources. I loaded
> >> >> >> HL2DM on msdev
> >> >> >> > > and built that, then I added the propdata folder
> >> and renamed
> >> >> >> > > Cstrike's propdata.txt to cs.txt and placed it there.
> >> >> >> > >
> >> >> >> > > Loaded cs_office and ran around shooting rockets
> >> >> trying to get as
> >> >> >> > > many physics objects in motion as I could. After 5
> >> >> >> minutes running
> >> >> >> > > around everything was behaving fine.
> >> >> >> > >
> >> >> >> > > Did I miss anything?
> >> >> >> > >
> >> >> >> > >
> >> >> >> > >
> >> >> >> > > -----Original Message-----
> >> >> >> > > From: [EMAIL PROTECTED]
> >> >> >> > > [mailto:[EMAIL PROTECTED] On
> >> >> Behalf Of Garry
> >> >> >> > > Newman
> >> >> >> > > Sent: Tuesday, May 23, 2006 8:21 AM
> >> >> >> > > To: hlcoders@list.valvesoftware.com
> >> >> >> > > Subject: Re: [hlcoders] Physical Mayhem in progress
> >> - no crash!
> >> >> >> > > (yet)
> >> >> >> > >
> >> >> >> > > Hey exactly a month later!
> >> >> >> > >
> >> >> >> > > Here's what I'm doing to cause the physical mayhem.
> >> >> >> > >
> >> >> >> > > In my mod/scripts folder I made a folder called propdata.
> >> >> >> I copied
> >> >> >> > > CS:S's propdata.txt to this folder and renamed in cs.txt.
> >> >> >> > >
> >> >> >> > > In CPropData::ParsePropDataFile I changed the
> >> >> loadfromfile line
> >> >> >> > > to
> >> >> >> > >
> >> >> >> > >     if ( !m_pKVPropData->LoadFromFile( filesystem,
> >> >> >> > > "scripts/propdata/cs.txt" ) )
> >> >> >> > >
> >> >> >> > >
> >> >> >> > > So I start my mod and go to cs_office. It's fine
> >> for about 20
> >> >> >> > > seconds of shooting props then they all start
> >> bouncing around.
> >> >> >> > >
> >> >> >> > >
> >> >> >> > > I find that this has prevented it.. (props.cpp:4747)
> >> >> >> > >
> >> >> >> > >     //LINK_ENTITY_TO_CLASS( prop_physics_multiplayer,
> >> >> >> > > CPhysicsPropMultiplayer );
> >> >> >> > >
> >> >> >> > >     LINK_ENTITY_TO_CLASS( prop_physics_multiplayer,
> >> >> >> CPhysicsProp );
> >> >> >> > >
> >> >> >> > > Obviously it's going to change all
> >> >> prop_physics_multiplayer into
> >> >> >> > > prop_physics.. so it might not be ideal for your mod. I'm
> >> >> >> guessing
> >> >> >> > > that my problem is different from yours though,
> >> >> somehow.. even if
> >> >> >> > > the symptoms are the same.
> >> >> >> > >
> >> >> >> > >
> >> >> >> > >
> >> >> >> > > On 4/23/06, [EMAIL PROTECTED]
> >> >> >> > > <[EMAIL PROTECTED]> wrote:
> >> >> >> > > > The mod players were getting restless so I
> >> couldn't wait any
> >> >> >> > > > longer
> >> >> >> > > for a response from Valve so I had to shut it down.
> >> >> >> Unfortunately
> >> >> >> > > there's no documentation on how most of that stuff is
> >> >> supposed to
> >> >> >> > > work, and there are frightfully few asserts in the
> >> >> SDK.  I guess
> >> >> >> > > I'll have to do a lot of research to compare a working
> >> >> >> vphysics.dll
> >> >> >> > > to a broken vphysics.dll in order to pin down the
> >> >> exact problem.
> >> >> >> > > >
> >> >> >> > > > At 2006/04/20 08:03 PM, Aaron Schiff wrote:
> >> >> >> > > > >--
> >> >> >> > > > >[ Picked text/plain from multipart/alternative ]
> >> >> >> > > > >USE_OBB_COLLISION_BOUNDS just says to search within
> >> >> >> the bounding
> >> >> >> > > > >box constructed around a physical model to detect
> >> >> >> other objects.
> >> >> >> > > > >It's not the matter you should be worried about.
> >> >> >> > > > >--
> >> >> >> > > > >
> >> >> >> > > > >_______________________________________________
> >> >> >> > > > >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
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > >
> >> >> >> > > _______________________________________________
> >> >> >> > > 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
> >> >> >> > >
> >> >> >> > >
> >> >> >> >
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> 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
> >> >>
> >> >> _______________________________________________
> >> >> 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
> >>
> >> _______________________________________________
> >> 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
>
> _______________________________________________
> 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

Reply via email to