Solution for ABC Template Users of Clarion 10 and 11! Read on…
It has been almost a year since my original post. I had resigned myself to never using MDI again until a thread in the SoftVelocity Clarion 11 newsgroup entitled “MDI Hell” caught my eye back on 2020-01-29.
Lots of activity in this thread, and the OP (Original Poster) found several threading issues he fixed in his program, but the “smoking gun” he discovered was he had “Enable Run-time Translation” checked in the Global Properties (General Tab) of his Clarion 11 ABC Main MDI application. Once he unchecked it no more crashes.
I looked in my main app, and sure enough I had “Enable Run-time Translation” checked there as well. I dug-up the oldest version of my app I could find (Clarion 6), and it was checked there too. It never made any difference until after C10.11897. And I couldn’t find it checked in any of my other app files.
Though I was hesitant about testing this again since my test users had grown a bit annoyed with me forcing a crashing program on them, I went ahead and gave it a whirl. Unfortunately, it is a lot harder to convert an SDI program back to MDI than the other way around (which I documented in my original post), other than doing it manually. But it only took me an hour or so to add the MDI attribute back to 143 windows.
I’ve had this MDI version (C10.12799) running at two sites for the last couple of weeks, and no crashes!
Full credit for this goes to the OP of “MDI Hell” (Bostjan Laba). What convinced me to try his solution was the PTSS 42978 he posted with an example program. I compiled it and tried it on two physical machines and one virtual machine–finally on the virtual one I was able to reproduce a crash after about 50 repetitions of his “recipe.”
Of course, this solution doesn’t help users who need “Enable Run-time Translation” checked. For those look in the C11 Newsgroup for the topic “Re: New C11 Release, Blog entry and AnyScreen newsgroup”, a post by KC Chin on 2020-02-13. He made some changes to the abutil.clw file for the “TranslatorClass.TranslateControl” procedure which might be a solution.
At least one other user with this same issue in the newsgroup has a Clarion (Legacy) Template app. Since Run-time Translator is only available for ABC Templates, he uses PDTranslator. But maybe there is something similar in PDTranslator that triggers the crashes with Clarion runtimes after C10.11897.
Now that SoftVelocity has PTSS 42978 with a reproducible example, I’m hoping they can identify the issue in the runtime and fix it for a future release.
For me it’s been 2.5 years from the time I first identified the issue until an MDI workaround was given to me, but I’m glad to have that old feeling of rock-solid stability back in my Clarion-produced application.
…jack