Question regarding limbus crashing (Issue 2879)

Forum rules
NO LONGER BEING MAINTAINED!
Post Reply
kushdr
Posts: 1
Joined: Mon Jul 18, 2016 12:58 pm

Question regarding limbus crashing (Issue 2879)

Post by kushdr » Mon Jul 18, 2016 1:35 pm

Link to the issue for reference
https://github.com/DarkstarProject/darkstar/issues/2879

I've been looking at Limbus and the crashes we've been seeing since March or so. As far as I can tell, it's the result of the player 2+ (I've been testing with two, can confirm if need be) not having a battlefield assigned in their PChar->PBCNM. The check it fails at is in CBattlefieldHandler::disconnectFromBcnm (I need to confirm exactly where, i've edited my local with debugs so many times) but basically we end up here and either m_battlefields is null (shouldn't be) or PChar->PBCNM is different (unlikely) or null (likely). I think it's the null PChar->PBCNM because of other debugs i've tried to call that have failed as a result (can't do PChar->PBCNM->getID() if the PBCNM structure doesn't exist)

//show debug that we're in this function (printed for both chars to log)
//show debug that player (including name) disconnected and we should remove them (printed for both cahrs in log)
//put a debug here to print battlefield info - this doesn't work for second player (ie dies here) likely because PBCNM is null
for (int i = 0; i < m_MaxBattlefields; i++) {
//print out value of i
if (m_Battlefields != nullptr) {
//put a debug here to say we got in the if and let's check the battlefields match
if (m_Battlefields == PChar->PBCNM) {...}}
//put out one here to say we didn't hit the if}

So my question is this: can anyone tell me if player 2+ is ever actually added to the BC or they just have the battlefield effect and warp in via events? If I'm right, the second player and on aren't ever actually added to the BC, just the list with status effect, and this makes the BC behave in odd ways

I'm thinking we need to add something into matter_diffusion_module.lua/Radiant_Aureole.lua onEventUpdate (in the else clause) to add the second and later players in. Pretty sure it's a simple call to do it that'll test if the rest seems right

Anyone have any suggestions / confirmation / does this look right at all? I'll test either way but if it seems like my assumptions are right (null Battlefield for players caused by it never being assigned) and we think adding that in will work / is right, then i'll test that and see if it gets us anywhere

I can provide logs for all of this if needed. They are just rather large and need some cleaning up (i didn't clear out packet info since it was useful for the zone leave/enter/update stuff)

User avatar
kjLotus
Special Guest
Posts: 1813
Joined: Sun Jul 22, 2012 2:16 pm

Re: Question regarding limbus crashing (Issue 2879)

Post by kjLotus » Mon Jul 18, 2016 6:24 pm

at this point I don't think anyone really knows how limbus works anymore

User avatar
TeoTwawki
Developer
Posts: 527
Joined: Mon Jul 15, 2013 9:50 pm

Re: Question regarding limbus crashing (Issue 2879)

Post by TeoTwawki » Wed Jul 20, 2016 3:07 pm

kjLotus wrote:at this point I don't think anyone really knows how limbus works anymore
I do! It works horribly. :lol:










.
.
.
Vile mess needs completely tossed out and rewritten without the baggage of trying to work with what was there. Which I am plenty willing to do, but time has not been my friend lately.
Hi, I run The Demiurge server.


Image
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. - Martin Golding
PLS USE [ code ] CODE TAGS [ /code ] WHEN POSTING CODE
DO NOT PRIVATE MESSAGE ME ABOUT BUGS

Post Reply