<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>To close the subject:</p>
<p>To force your application to be moved to FTH shim, just create 3 times a crash within an hour with</p>
<p>QString *heap = new QString();<br />delete heap;<br />delete heap;</p>
<div id="signature"> </div>
<p>then to detect your app has been moved to FTH do</p>
<p>QSettings winsettings( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FTH\\State", QSettings::NativeFormat);<br />QStringList fths = winsettings.childKeys();<br />foreach(const QString &fth, fths) {<br />       if(fth == qApp->applicationFilePath()) {<br />            /* do something*/<br />            break;<br />       }<br />}</p>
<p><br /></p>
<p>Thanks again for your replies and help</p>
<p>-- Philippe</p>
<p id="reply-intro">Le 07-09-2021 20:05, maitai a écrit :</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<div id="replybody1">
<div style="font-size: 10pt; font-family: Verdana,Geneva,sans-serif;">
<p>OK, thanks. I will not attempt to modify the registry. I just want to know if that is the case and eventually display a warning.</p>
<p>The key for that is Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State</p>
<p>Now I want to test my changes, I have already forced more than 100 crashes in the hope Windows will move me to FTH, no luck :)</p>
<p><br /></p>
<p>--Philippe</p>
<div id="v1signature"> </div>
<p><br /></p>
<p id="v1reply-intro">Le 07-09-2021 17:17, Scott Bloom a écrit :</p>
<blockquote style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0;">
<div id="v1replybody1">
<style type="text/css">@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4}
@font-face
        {font-family:"var(--ff-mono)"}

#replybody1 #v1replybody1 p.v1v1MsoNormal, #replybody1 #v1replybody1 li.v1v1MsoNormal, #replybody1 #v1replybody1 div.v1v1MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
#replybody1 #v1replybody1 a:link, #replybody1 #v1replybody1 span.v1v1MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline}
#replybody1 #v1replybody1 p.v1v1v1msonormal, #replybody1 #v1replybody1 li.v1v1v1msonormal, #replybody1 #v1replybody1 div.v1v1v1msonormal
        {mso-style-name:v1msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
#replybody1 #v1replybody1 span.v1v1EmailStyle29
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext}
#replybody1 #v1replybody1 .v1v1MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in}
#replybody1 #v1replybody1 div.v1v1WordSection1
        {page: unset}</style>
<div lang="EN-US" style="word-wrap: break-word;">
<div class="v1v1WordSection1">
<p class="v1v1MsoNormal">You shouldn't need it for a read of the registry, however it is possible that the IT dept of the user, or the user themselves has escalated the default privileges required to read from HKLM</p>
<p class="v1v1MsoNormal"><br />You might want to code your check to allow for a security violation, so the is it enabled would be yes, no, or "I cant tell" response.</p>
<p class="v1v1MsoNormal"> </p>
<p class="v1v1MsoNormal">Scott</p>
<p class="v1v1MsoNormal"> </p>
<div>
<div style="border: none; border-top: solid #E1E1E1 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="v1v1MsoNormal"><strong>From:</strong> Interest <interest-bounces@qt-project.org> <strong>On Behalf Of </strong>maitai<br /><strong>Sent:</strong> Tuesday, September 7, 2021 7:36 AM<br /><strong>To:</strong> Interest@qt-project.org<br /><strong>Subject:</strong> Re: [Interest] qt and Windows tolerance heap</p>
</div>
</div>
<p class="v1v1MsoNormal"> </p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Thank you very much that is the way. Do you know if elevated privileges are needed to do that?</span></p>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">--Philippe</span></p>
<div id="v1v1signature">
<p class="v1v1MsoNormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
</div>
<p><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<p id="v1v1reply-intro"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">Le 07-09-2021 15:22, Jérôme Godbout a écrit :</span></p>
<blockquote style="border: none; border-left: solid #1010FF 1.5pt; padding: 0in 0in 0in 5.0pt; margin-left: 0in; margin-right: 0in;">
<div id="v1v1replybody1">
<div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; color: black; border: none windowtext 1.0pt; padding: 0in;">You can put your aplicaiton into the exclude list, sorry though it was mentionned into the microowft page, but here is the registry key:</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; color: black; border: none windowtext 1.0pt; padding: 0in;"> </span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
<p class="v1v1v1msonormal" style="vertical-align: baseline;"><span style="font-size: 10.0pt; font-family: 'var(--ff-mono)'; border: none windowtext 1.0pt; padding: 0in;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList\myapp.exe</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
<p class="v1v1v1msonormal" style="vertical-align: baseline;"><span style="font-size: 10.0pt; font-family: 'var(--ff-mono)'; border: none windowtext 1.0pt; padding: 0in;"> </span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
<p class="v1v1v1msonormal" style="vertical-align: baseline;"><span style="font-size: 10.0pt; font-family: 'var(--ff-mono)'; border: none windowtext 1.0pt; padding: 0in;">Change myapp.exe for your actual application.</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<div style="border: none; border-top: solid #B5C4DF 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="v1v1v1msonormal" style="margin-bottom: 12.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Verdana',sans-serif; color: black;">From: </span></strong><span style="font-size: 12.0pt; font-family: 'Verdana',sans-serif; color: black;">Jérôme Godbout <<a href="mailto:jgodbout@dimonoff.com" rel="noreferrer">jgodbout@dimonoff.com</a>><br /><strong><span style="font-family: 'Verdana',sans-serif;">Date: </span></strong>Tuesday, September 7, 2021 at 9:07 AM<br /><strong><span style="font-family: 'Verdana',sans-serif;">To: </span></strong>maitai <<a href="mailto:maitai@virtual-winds.org" rel="noreferrer">maitai@virtual-winds.org</a>>, <a href="mailto:Interest@qt-project.org" rel="noreferrer">Interest@qt-project.org</a> <<a href="mailto:Interest@qt-project.org" rel="noreferrer">Interest@qt-project.org</a>><br /><strong><span style="font-family: 'Verdana',sans-serif;">Subject: </span></strong>Re: [Interest] qt and Windows tolerance heap</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">The tolerant heap only make workaround for actual bug. Disable the tolerant heap for your developers (this should be a system options when developer mode is enabled directly into Windows but sadly you have to do it manually). This will show where your bug is and will appear on dev workstation before they appear on the clients.</span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">The "myth" of try to launch it again on windows is not really a myth, it come from this feature, the OS try to fix the heap allocation, but the application is still broken. You can also disable your application from using it during the installer.</span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;">To disable:</span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"><a href="https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap?redirectedfrom=MSDN" target="_blank" rel="noopener noreferrer">https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap?redirectedfrom=MSDN</a></span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"> </span></p>
<div style="border: none; border-top: solid #B5C4DF 1.0pt; padding: 3.0pt 0in 0in 0in;">
<p class="v1v1v1msonormal" style="margin-bottom: 12.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Verdana',sans-serif; color: black;">From: </span></strong><span style="font-size: 12.0pt; font-family: 'Verdana',sans-serif; color: black;">Interest <<a href="mailto:interest-bounces@qt-project.org" rel="noreferrer">interest-bounces@qt-project.org</a>> on behalf of maitai <<a href="mailto:maitai@virtual-winds.org" rel="noreferrer">maitai@virtual-winds.org</a>><br /><strong><span style="font-family: 'Verdana',sans-serif;">Date: </span></strong>Tuesday, September 7, 2021 at 5:32 AM<br /><strong><span style="font-family: 'Verdana',sans-serif;">To: </span></strong><a href="mailto:Interest@qt-project.org" rel="noreferrer">Interest@qt-project.org</a> <<a href="mailto:Interest@qt-project.org" rel="noreferrer">Interest@qt-project.org</a>><br /><strong><span style="font-family: 'Verdana',sans-serif;">Subject: </span></strong>[Interest] qt and Windows tolerance heap</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';">Hi,<br /><br />I have some users (mainly beta testers) that are suffering from "Windows Tolerant Heap" (<a href="https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap" target="_blank" rel="noopener noreferrer">https://docs.microsoft.com/en-us/windows/win32/win7appqual/fault-tolerant-heap</a>). The consequence of this being activated after some crashes is that the application becomes very slow, plus some mysterious crashes occur randomly deep inside qt event queue manager.</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';"> </span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';">I know how to remove the app from Tolerant Heap with an elevated command prompt.</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';"> </span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';">My question is: is there a way from inside the application to detect the app is running in this mode, so I can prompt the user to contact us for instance?</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';"> </span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';">Thanks for any insight</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
<div>
<p class="v1v1v1msonormal"><span style="font-size: 10.0pt; font-family: 'Courier New';">Philippe Lelong</span><span style="font-size: 10.0pt; font-family: 'Verdana',sans-serif;"></span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<br />
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">_______________________________________________<br />Interest mailing list<br /><a href="mailto:Interest@qt-project.org">Interest@qt-project.org</a><br /><a href="https://lists.qt-project.org/listinfo/interest" target="_blank" rel="noopener noreferrer">https://lists.qt-project.org/listinfo/interest</a></div>
</blockquote>
</body></html>