Quote from: markh at Jan 01, 2013, 10:42 PMExceptions don't cause executing code twice. Period.
Well, I will accept that, but will add that I have two 100% reproducible ways of proving that "some kind of error" causes the life cycle to execute twice, and in one case trapping exceptions stopped that from happening. I disabled that MobileDetection plugin, even after verifying that it doesn't repost. The problem wasn't with that code but that the code was being executed twice. Later I wrote my own tiny snippet which was also executed twice. That code also does not in any way load itself or external resources. But I believe you have provided part of the solution here...
Quote from: markh at Jan 01, 2013, 10:42 PMThe issue with the output filters you describing, seem to be related to how nested tags work. ... [[*id:neq=`1`:then=`<!-- [x [x * using_accordion :is=`yes`:then=`[x [x $ accordion_script ] x]`] x] -->`]]
The stray ` characters could definitely mess something up unexpectedly there. If you would use the recommended way of commenting out tags: [[-*using_accordion:is=`yes`:then=`[[$accordion_script]]`]]
the entire tag would be ignored.
Now THAT is good info. I would bet that the nested tags caused the errors. If that's recognized behavior then the case is closed, mea culpa, I'll know to look out for this. I'm sorry but since I'm new at this I have not yet stumbled upon documentation on issues with nested tags. Nor do I recall seeing that [[-]] syntax for disabling a tag.
I said above that I believe you have identified "part" of issue, because I have verified several times in my diagnostic that I am not repeating tag calls, and yet I had both a plugin and a snippet executing twice. I'll accept that the faulty tag construction caused that - I'm just hoping you will accept that this GIGO condition, where a poorly constructed set of nested tags
can cause resources to reload. I'm not asking for a fix, just hoping for acknowledgment that this condition could exist.
Quote from: markh at Jan 01, 2013, 10:42 PMAlso related reading regarding performance: http://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/
I've only skimmed that so far but I know I've already started coding against Jason's advice and I will immediately correct this bad habit. I'm sure it's been discussed before, but in the name of performance it would be good if then/else clauses weren't processed until needed.
Thank you Very much, Mark. I will report back here later after I have changed everything as indicated. It will take several days.