• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Problem - possible Race condition in macroquest or plugin and DataTypeTemp(MQ2DataTypes.cpp)

Joined
May 22, 2015
RedCents
3,467¢
Not sure where to post this..

It looks like something like
/varset foo ${String[foo].Replace[OR,||]}
is evaluating as
/varset foo ">> "

I believe there is a possible race condition in the use of the global variable DataTypeTemp. Is there possible some plugin that starts it's own thread which accessing DataTypeTemp?

This problem is pretty rare, like I can do 3 gribbles and it won't happen. But when my machine is under tress (my computer doesn't like tempest temple for some reason), it can happen once every 5 minutes. Is probably called about 10-50 times per mob killed. Works 99.9% of the time.

in my macro I have a variable which is always either 0 or 1
Rich (BB code):
    /declare BurnOn                 int         outer       0

I have some code like the following snippet
/call LateEval eval:#{BurnOn}
Rich (BB code):
sub LateEval(string KissPart)
    /declare Result string 0

    /echo Eval_exp(${KissPart})
    /declare Expression string ${KissPart.Arg[2,:]}
    /declare OrExpression string ${Expression.Replace[OR,||]}
    /echo OrExpression: ${OrExpression}
    /varset Result ${OrExpression.Replace[#,$]}
    /echo Eval_Exp Math.Calc[${Result}]}
    /varset Result ${Math.Calc[${Result}]}
    |/echo Eval_exp(${KissPart}) = ${Result}
/return ${Result}

When the error happens, this is a sample debug output
Rich (BB code):
[2015/08/23 15:42:56] [MQ2] Eval_exp(eval:#{BurnOn})

[2015/08/23 15:42:57] [MQ2] OrExpression: >> 

[2015/08/23 15:42:57] [MQ2] Eval_Exp Math.Calc[>> ]}

[2015/08/23 15:42:57] Illegal arithmetic in calculation

[2015/08/23 15:42:57] kissassist.mac@6110 (LateEval(string KissPart)): /varset Result ${Math.Calc[${Result}]}

[2015/08/23 15:42:57] kissassist.mac@1101 (CombatCast): /call LateEval "${DPSText.Arg[4,|]}"

[2015/08/23 15:42:57] kissassist.mac@985 (Combat): /if (${DPSOn} && (!${Role.Equal[puller]} || !${ChainPull})) /call CombatCast

[2015/08/23 15:42:57] kissassist.mac@714 (CheckForCombat(int SkipCombat, string FromWhere)): /call Combat

[2015/08/23 15:42:57] kissassist.mac@698 (Main): /call CheckForCombat 0 MainLoop

[2015/08/23 15:42:57] The current macro has ended.

here are the plugins that I am running
Rich (BB code):
[2015/08/23 16:15:02] Active Plugins

[2015/08/23 16:15:02] --------------------------

[2015/08/23 16:15:02] mq2aaspend

[2015/08/23 16:15:02] mq2log

[2015/08/23 16:15:02] mq2eqbc

[2015/08/23 16:15:02] mq2rez

[2015/08/23 16:15:02] mq2posse

[2015/08/23 16:15:02] mq2moveutils

[2015/08/23 16:15:02] mq2melee

[2015/08/23 16:15:02] mq2exchange

[2015/08/23 16:15:02] mq2debuffs

[2015/08/23 16:15:02] mq2cast

[2015/08/23 16:15:02] mq2eqbugfix

[2015/08/23 16:15:02] mq2chatwnd

[2015/08/23 16:15:02] mq2bzsrch

[2015/08/23 16:15:02] mq2map

[2015/08/23 16:15:02] mq2fps

[2015/08/23 16:15:02] mq2hud

[2015/08/23 16:15:02] mq2custombinds

[2015/08/23 16:15:02] mq2itemdisplay

[2015/08/23 16:15:02] mq2labels

[2015/08/23 16:15:02] 19 Plugins displayed.

This is error happening on a druid (one and only character that I've been trying this on) using a modded Kiss. This is the character I'm doing testing on, and not using this on others until I get this resolved.
 
The fact you are trying to perform math functions on a string variable would be my guess is the cause of your problems.
 
Problem - possible Race condition in macroquest or plugin and DataTypeTemp(MQ2DataTypes.cpp)

Users who are viewing this thread

Back
Top
Cart