Mq2 Melee crashing all clients
This morning EZ Server did a software update and since then all of my clients crash when :
1. Dying
2. Loading MQ2Melee
This was the response from our Admin :
Some people have found resolution in downloading a new MQ2, which means its not the end of the world for MQ2ers at all. Someone who is well versed in MQ2 can easily run a debugger on the MQ2 and see what the crash is hitting and how to offset it.
I'd have no more visibility into this than anyone else.
Like I said in change notes, the only thing that has really changed which was a large one at that is how all of the character data is stored and loaded.
This includes skills/aas/languages/bandolier/facials/exp/tints/potionbelt/leadershipaas/guilds/zonedata/bind/disciplines/spells/inspect message/tribute/currency etc.
So it could be anywhere within that horizon that MQ sees something it doesn't like and crashes on it.
If someone knew how to maintain the MQ2 code base they could virtually eliminate all crashes on the client end just by observing them occur on the client side and dealing with them properly.
I have had this issue in the past, and several folks have pointed out that it is the server custom files. I have had the same custom files on this server for months without issue. Today, as noted above, there were changes made to base files and I have no way of identifying the offending files.
If anyone has an EZ account and some access to the compile here could you please check on that server vs MQ2 and see if it can be fixed please? I am willing to PM my account info to Grumble, Sorvani or Maudigan if that helps.
Thanks
Zatty
Sun Sep 07, 2014 1:48 pm
Is there a combination of plugins (well, plugins not loaded...) where the crashes go away?
Also...
client version
download date
etc
etc
etc
Also...
client version
download date
etc
etc
etc
Sun Sep 07, 2014 6:07 pm
Senior Project Member
Yeah, as many detials as possible and then ill try for recreate it. It's every single time you load mq2melee?
If so it shouldn't be too hard to trace.
If so it shouldn't be too hard to trace.
Mon Sep 08, 2014 6:54 am
Project Lead
Download date was yesterday (9/7/14)
Client version UF/Classic
MQ2Melee is the plugin that causes immediate crash when you /plugin
No idea what is causing the crash on death as I have unloaded MQ2Melee from the .ini. The crash on death is random. A real oddity is... it isn't always the dead guy that crashes. Sometimes it's another client (I run 18).
EZ does have 3 custom files, but none of those have changed since 9/5/14. No crashes were experienced from 9/5/14 until 9/7/14 My custom files were actually from July until I updated a few minutes ago (no change.. still crashes).
Akkadius notes he is working with you to resolve this. I don't know what more I can do other than offer to be eyes on.
Client version UF/Classic
MQ2Melee is the plugin that causes immediate crash when you /plugin
No idea what is causing the crash on death as I have unloaded MQ2Melee from the .ini. The crash on death is random. A real oddity is... it isn't always the dead guy that crashes. Sometimes it's another client (I run 18).
EZ does have 3 custom files, but none of those have changed since 9/5/14. No crashes were experienced from 9/5/14 until 9/7/14 My custom files were actually from July until I updated a few minutes ago (no change.. still crashes).
Akkadius notes he is working with you to resolve this. I don't know what more I can do other than offer to be eyes on.
Mon Sep 08, 2014 10:26 am
Yeah I spoke with Akkadius briefly about the update coming down--it's a good update that should make things all around better (except for this!). The death one is interesting, I'm suspicious of mq2netbots being the culprit. If I can't recreate it I may have to get you setup with a debugger to try and narrow down the issue. When the non-dead character crashes are they always on the same PC as the dead character? Like, can a client die on PC 1 cause a crash on PC2?
Mon Sep 08, 2014 3:35 pm
Project Lead
No idea what is causing the crash on death as I have unloaded MQ2Melee from the .ini. The crash on death is random. A real oddity is... it isn't always the dead guy that crashes. Sometimes it's another client (I run 18).
A little help will go a long way.
Can you guestimate the rate at which crashes happen? How many deaths does it take, on average, to cause a crash? If you have a full wipe of all 18 characters, how many will crashes will occur?
Do crashes occur when a living character zones?
Do the crashes occur after the zoning process has started? Can you see the loading screen?
What plugins are loaded on characters that crash?
Is there any scenario or circumstance which is more likely to cause a crash? Holy grail would be a 100% guaranteed method to reproduce the crash.
Tue Sep 09, 2014 6:45 pm
Senior Project Member
Can you guestimate the rate at which crashes happen? How many deaths does it take, on average, to cause a crash? If you have a full wipe of all 18 characters, how many will crashes will occur?
Do crashes occur when a living character zones?
Do the crashes occur after the zoning process has started? Can you see the loading screen?
What plugins are loaded on characters that crash?
Is there any scenario or circumstance which is more likely to cause a crash? Holy grail would be a 100% guaranteed method to reproduce the crash.
A. One death will do it.
- I ran 6 in a quick run today. Monk got aggro and died. Everyone else lived, but Cleric and Wizard crashed. Those 3 toons have nothing in common... code wise.
- Later in that same 6 man run, Wiz died and no one crashed.
- Running 18 I remember 3 or 4 living client crashes on death/res of the one that died.
B. I have seen live toons crash on zone, but never seen a live toon zoning that caused other static clients to crash.
C. Actually, I THINK the crashes occur when the res is accepted, not on the death itself. I will test that further.
D. 14 plugins are loaded
Twist
Netbots
Moveutils
Map
Labels
Itemdisplay
Hud
FPS
EQBC
Emusearch
Emuautomacro
Custombinds
Chatwind
Cast
I don't automate anything. No automacro, no auto res. All done through live player interaction (except for Wiz kill which is macro'd and stops on death of targ.)
Tue Sep 09, 2014 8:36 pm
The issue with mq2melee may or may not be related to custom content, I didn't take the time to dig in deeper to figure that out. If mq2melee was broken on the standard servers someone probably would have complained by now so I'm assuming it's a custom content thing, but it's no matter. I can fix it without effecting the functionality on standard servers.
There is an array that gets created that has just enough elements in it for the default number of spells. C++ will try and do whatever you tell it to though; it's dumb like that, or smart depending on your perspective. So when it is told to access an element that is greater than the number of elements the array actually has it tries to do it. So imagine that array stored in memory as a street with 10 houses on it, and I tell you to go to the 15th house and knock on the door.... You're process oriented so you calculate the width of a house times 15 and then bump that up against the speed you're driving to know how long to hit the gas. You end up driving into the fence at the end of the street.
I modified it to check that the item requested isn't too large for the array.
This problem was in the macroquest core file, MQ2Main.dll. MQ2Melee just triggered the event chain that caused the code in MQ2Main to run. It's plausible that this fix will also repair the crash on death issue. Hopefully.
I still need to modify the other clients but I should have the repair up within an hour or two
There is an array that gets created that has just enough elements in it for the default number of spells. C++ will try and do whatever you tell it to though; it's dumb like that, or smart depending on your perspective. So when it is told to access an element that is greater than the number of elements the array actually has it tries to do it. So imagine that array stored in memory as a street with 10 houses on it, and I tell you to go to the 15th house and knock on the door.... You're process oriented so you calculate the width of a house times 15 and then bump that up against the speed you're driving to know how long to hit the gas. You end up driving into the fence at the end of the street.
I modified it to check that the item requested isn't too large for the array.
This problem was in the macroquest core file, MQ2Main.dll. MQ2Melee just triggered the event chain that caused the code in MQ2Main to run. It's plausible that this fix will also repair the crash on death issue. Hopefully.
I still need to modify the other clients but I should have the repair up within an hour or two
Wed Sep 10, 2014 12:14 pm
Project Lead