<table><tr><td style="">hwti added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D24150">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D24150#536169" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D24150#536169</a>, <a href="https://phabricator.kde.org/p/dfaure/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@dfaure</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>I (thought I) fixed this crash already in commit <a href="https://phabricator.kde.org/R241:512967f6f4e887d4a5a0a7da5893055e1c840ce5" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">512967f6f4e887d4a5a0</a> by removing the ::exit() call (which appears in the backtrace of that bug report).</p>

<p>This being said, I'm not objecting to this patch, but I am wondering if you can still experience this crash with a kio that includes my commit above (from Sep 6).</p></div>
</blockquote>

<p>QCoreGlobalData destructor is called on any exit, even when returning from main (but there is an exit call in kdeinit5 anyway).<br />
If there is no other possible exit() call before the kdemain function in file.cpp returns, then you avoided the issue for Qt >= 5.12 : destroying the QTextCodec unregisters it, so it isn't in the list any more when QCoreGlobalData destructor is called.<br />
But older Qt versions do not have this logic, so QCoreGlobalData destructor often crashes when trying to call the LegacyTextCodec destructor, since the object has already been destroyed and is above the stack pointer. Even if it doesn't crash, free() would then be called on a stack address.</p></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D24150">https://phabricator.kde.org/D24150</a></div></div><br /><div><strong>To: </strong>hwti, cfeck, dfaure, broulik<br /><strong>Cc: </strong>aacid, kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns<br /></div>