<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[QMessageBox  crash on close]]></title><description><![CDATA[<h2>Environment</h2>
<ul>
<li>Qt Version: 6.11.1</li>
<li>Platform: fedora44 (X11 / Wayland with KDE)</li>
<li>Compiler: gcc 16.1.1 20260515</li>
</ul>
<h2>Summary</h2>
<p dir="auto">When clicking the close button (X) on a native QMessageBox (e.g., QMessageBox::about()),<br />
the application crashes with SIGSEGV at QDialogPrivate::setNativeDialogVisible().</p>
<h2>Root Cause</h2>
<p dir="auto">In QDialogPrivate::setNativeDialogVisible() (qtbase/src/widgets/dialogs/qdialog.cpp):</p>
<pre><code>  bool QDialogPrivate::setNativeDialogVisible(bool visible)
  {
      if (QPlatformDialogHelper *helper = platformHelper()) {
          if (visible) {
              // ...
              nativeDialogInUse = helper-&gt;show(...);  // ✅ properly assigned
          } else if (nativeDialogInUse) {
              helper-&gt;hide();
              // ❌ nativeDialogInUse is NEVER set to false here
          }
      }
      return nativeDialogInUse;
  }
</code></pre>
<h2>Crash Sequence</h2>
<ol>
<li>User clicks X on native QMessageBox</li>
<li>→ done() → setVisible(false) → setNativeDialogVisible(false)</li>
<li>→ helper-&gt;hide() is called (1st time) — platform resources freed</li>
<li>→ BUT nativeDialogInUse remains true</li>
<li>→ exec() returns, QMessageBox stack variable destroyed</li>
<li>→ ~QDialog() calls hide() → setVisible(false) → setNativeDialogVisible(false)</li>
<li>→ nativeDialogInUse is still true → helper-&gt;hide() called AGAIN (2nd time)</li>
<li>→ Accessing already-destroyed native dialog resources → SIGSEGV</li>
</ol>
<h2>Backtrace</h2>
<p dir="auto">Core was generated by `./test_about'.<br />
Program terminated with signal SIGSEGV, Segmentation fault.<br />
#0  0x0000000000000020 in ?? ()<br />
[Current thread is 1 (Thread 0x7f94be9a0600 (LWP 278630))]<br />
#0  0x0000000000000020 in ??? ()<br />
#1  0x00007f94c0d19904 in QDialogPrivate::setNativeDialogVisible(bool) () at /lib64/libQt6Widgets.so.6<br />
#2  0x00007f94c0d5337b in QMessageBoxPrivate::setVisible(bool) () at /lib64/libQt6Widgets.so.6<br />
#3  0x00007f94c0d18e9d in QDialog::~QDialog() () at /lib64/libQt6Widgets.so.6<br />
#4  0x00007f94c0d521e5 in QMessageBox::~QMessageBox() () at /lib64/libQt6Widgets.so.6<br />
#5  0x00007f94c0d1ab5a in QDialog::exec() () at /lib64/libQt6Widgets.so.6<br />
#6  0x00007f94c0d55922 in QMessageBox::about(QWidget*, QString const&amp;, QString const&amp;) () at /lib64/libQt6Widgets.so.6<br />
#7  0x00000000004005c2 in main::{lambda()#1}::operator()() const ()<br />
#8  0x0000000000400a0b in QtPrivate::FunctorCall&lt;std::integer_sequence&lt;unsigned long&gt;, QtPrivate::List&lt;&gt;, void, main::{lambda()#1}&gt;::call(main::{lambda()#1}&amp;, void**)::{lambda()#1}::operator()() const ()<br />
#9  0x0000000000400a68 in void QtPrivate::FunctorCallBase::call_internal&lt;void, QtPrivate::FunctorCall&lt;std::integer_sequence&lt;unsigned long&gt;, QtPrivate::List&lt;&gt;, void, main::{lambda()#1}&gt;::call(main::{lambda()#1}&amp;, void**)::{lambda()#1}&gt;(void**, QtPrivate::FunctorCall&lt;std::integer_sequence&lt;unsigned long&gt;, QtPrivate::List&lt;&gt;, void, main::{lambda()#1}&gt;::call(main::{lambda()#1}&amp;, void**)::{lambda()#1}&amp;&amp;) ()<br />
#10 0x0000000000400a41 in QtPrivate::FunctorCall&lt;std::integer_sequence&lt;unsigned long&gt;, QtPrivate::List&lt;&gt;, void, main::{lambda()#1}&gt;::call(main::{lambda()#1}&amp;, void**) ()<br />
#11 0x00000000004009ed in void QtPrivate::FunctorCallable<a target="_blank" rel="noopener noreferrer nofollow ugc">main::{lambda()#1}</a>::call&lt;QtPrivate::List&lt;&gt;, void&gt;(main::{lambda()#1}&amp;, void*, void**) ()<br />
#12 0x00000000004009ad in QtPrivate::QCallableObject&lt;main::{lambda()#1}, QtPrivate::List&lt;&gt;, void&gt;::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) ()<br />
#13 0x00007f94bf784eb7 in void doActivate&lt;false&gt;(QObject*, int, void**) () at /lib64/libQt6Core.so.6<br />
#14 0x00007f94c0b9fdba in QAbstractButton::clicked(bool) () at /lib64/libQt6Widgets.so.6<br />
#15 0x00007f94c0ba0049 in QAbstractButtonPrivate::emitClicked() () at /lib64/libQt6Widgets.so.6<br />
#16 0x00007f94c0ba19d6 in QAbstractButtonPrivate::click() () at /lib64/libQt6Widgets.so.6<br />
#17 0x00007f94c0ba1c2d in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQt6Widgets.so.6<br />
#18 0x00007f94c0ab0778 in QWidget::event(QEvent*) () at /lib64/libQt6Widgets.so.6<br />
#19 0x00007f94c0a3f92e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6<br />
#20 0x00007f94c0a4aa26 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6<br />
#21 0x00007f94bf70f7b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6<br />
#22 0x00007f94c0a49139 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&lt;QWidget&gt;&amp;, bool, bool) ()<br />
at /lib64/libQt6Widgets.so.6<br />
#23 0x00007f94c0ac6d84 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /lib64/libQt6Widgets.so.6<br />
#24 0x00007f94c0ac983b in QWidgetWindow::event(QEvent*) () at /lib64/libQt6Widgets.so.6<br />
#25 0x00007f94c0a3f92e in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6<br />
#26 0x00007f94bf70f7b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6<br />
#27 0x00007f94bff0638f in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt6Gui.so.6<br />
#28 0x00007f94bff7802c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<a target="_blank" rel="noopener noreferrer nofollow ugc">QEventLoop::ProcessEventsFlag</a>) () at /lib64/libQt6Gui.so.6<br />
#29 0x00007f94c0561f84 in userEventSourceDispatch(_GSource*, int (<em>)(void</em>), void*) () at /lib64/libQt6Gui.so.6<br />
#30 0x00007f94bed92f24 in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0<br />
#31 0x00007f94bed97038 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0<br />
#32 0x00007f94bed971e3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0<br />
#33 0x00007f94bfa69a9d in QEventDispatcherGlib::processEvents(QFlags<a target="_blank" rel="noopener noreferrer nofollow ugc">QEventLoop::ProcessEventsFlag</a>) () at /lib64/libQt6Core.so.6<br />
#34 0x00007f94bf71d57b in QEventLoop::exec(QFlags<a target="_blank" rel="noopener noreferrer nofollow ugc">QEventLoop::ProcessEventsFlag</a>) () at /lib64/libQt6Core.so.6<br />
#35 0x00007f94bf718992 in QCoreApplication::exec() () at /lib64/libQt6Core.so.6<br />
#36 0x0000000000400758 in main ()</p>
<h2>Minimal Reproducer (C++20 / Qt6)</h2>
<pre><code>   #include &lt;QApplication&gt;
   #include &lt;QMainWindow&gt;
   #include &lt;QMessageBox&gt;
   #include &lt;QPushButton&gt;

   int main(int argc, char *argv[]) {
       QApplication app(argc, argv);
       QMainWindow window;
       auto *btn = new QPushButton("Open About", &amp;window);
       QObject::connect(btn, &amp;QPushButton::clicked, &amp;window, [&amp;window]() {
           QMessageBox::about(&amp;window, "About", "About");
       });
       window.resize(300, 200);
       window.show();
       return app.exec();
       }
</code></pre>
<h2>Proposed Fix</h2>
<pre><code>  } else if (nativeDialogInUse) {
      helper-&gt;hide();
      nativeDialogInUse = false;  // ← ADD THIS LINE
  }
</code></pre>
<h2>Workaround</h2>
<p dir="auto">app.setAttribute(Qt::AA_DontUseNativeDialogs, true);</p>
]]></description><link>https://forum.qt.io/topic/164868/qmessagebox-crash-on-close</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 12:17:27 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/164868.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Jul 2026 13:27:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to QMessageBox  crash on close on Thu, 09 Jul 2026 04:48:49 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jackfafa">@<bdi>jackfafa</bdi></a> said in <a href="/post/839056">QMessageBox crash on close</a>:</p>
<blockquote>
<p dir="auto">After logging in, I lack the permissions to create bug reports</p>
</blockquote>
<p dir="auto">Please try navigating to <a href="https://qt-project.atlassian.net/jira/your-work" target="_blank" rel="noopener noreferrer nofollow ugc">https://qt-project.atlassian.net/jira/your-work</a> Do you get the required permissions now?</p>
<p dir="auto">(Reference: <a href="https://wiki.qt.io/Jira_Cloud_migration#First_time_users" target="_blank" rel="noopener noreferrer nofollow ugc">https://wiki.qt.io/Jira_Cloud_migration#First_time_users</a> )</p>
]]></description><link>https://forum.qt.io/post/839063</link><guid isPermaLink="true">https://forum.qt.io/post/839063</guid><dc:creator><![CDATA[JKSH]]></dc:creator><pubDate>Thu, 09 Jul 2026 04:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to QMessageBox  crash on close on Wed, 08 Jul 2026 19:45:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jackfafa">@<bdi>jackfafa</bdi></a> said in <a href="/post/839056">QMessageBox crash on close</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jsulm">@<bdi>jsulm</bdi></a> The Qt Bug Tracker website is extremely cumbersome to use. After logging in, I lack the permissions to create bug reports, so I’m posting the issue here instead.</p>
</blockquote>
<p dir="auto">When I log in, there's a yellow banner at the top of the page that says:</p>
<blockquote>
<p dir="auto">For troubleshooting and support, please contact <a href="mailto:jira-admin@qt-project.org" target="_blank" rel="noopener noreferrer nofollow ugc">jira-admin@qt-project.org</a>.</p>
</blockquote>
]]></description><link>https://forum.qt.io/post/839060</link><guid isPermaLink="true">https://forum.qt.io/post/839060</guid><dc:creator><![CDATA[jeremy_k]]></dc:creator><pubDate>Wed, 08 Jul 2026 19:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to QMessageBox  crash on close on Wed, 08 Jul 2026 16:36:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jsulm">@<bdi>jsulm</bdi></a> The Qt Bug Tracker website is extremely cumbersome to use. After logging in, I lack the permissions to create bug reports, so I’m posting the issue here instead.</p>
]]></description><link>https://forum.qt.io/post/839056</link><guid isPermaLink="true">https://forum.qt.io/post/839056</guid><dc:creator><![CDATA[jackfafa]]></dc:creator><pubDate>Wed, 08 Jul 2026 16:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to QMessageBox  crash on close on Wed, 08 Jul 2026 13:50:16 GMT]]></title><description><![CDATA[<p dir="auto">If you want to report bugs you should do it here: <a href="https://qt-project.atlassian.net/jira/projects?page=1&amp;sortKey=name&amp;sortOrder=ASC" target="_blank" rel="noopener noreferrer nofollow ugc">https://qt-project.atlassian.net/jira/projects?page=1&amp;sortKey=name&amp;sortOrder=ASC</a></p>
]]></description><link>https://forum.qt.io/post/839053</link><guid isPermaLink="true">https://forum.qt.io/post/839053</guid><dc:creator><![CDATA[jsulm]]></dc:creator><pubDate>Wed, 08 Jul 2026 13:50:16 GMT</pubDate></item></channel></rss>