Project

General

Profile

Actions

Bug #14441

open

Segfault caused by handleFocusOnHide when destroying session with still open WMessageBox

Added by Michael Seibt 5 days ago. Updated 5 days ago.

Status:
New
Priority:
High
Assignee:
-
Target version:
-
Start date:
03/26/2026
Due date:
% Done:

0%

Estimated time:

Description

libwt.so.4.12.6!Wt::WCompositeWidget::load(Wt::WCompositeWidget * const this) (\home\m\src\wt\src\Wt\WCompositeWidget.C:436)
libwt.so.4.12.6!Wt::WApplication::setAsFocus(Wt::WApplication * const this, const std::string & id) (\home\m\src\wt\src\Wt\WApplication.C:1150)
libwt.so.4.12.6!Wt::WCompositeWidget::handleFocusOnHide(Wt::WCompositeWidget * const this, bool hidden) (\home\m\src\wt\src\Wt\WCompositeWidget.C:606)
libwt.so.4.12.6!Wt::WPopupWidget::setHidden(Wt::WPopupWidget * const this, bool hidden, const Wt::WAnimation & animation) (\home\m\src\wt\src\Wt\WPopupWidget.C:78)
libwt.so.4.12.6!Wt::WWidget::hide(Wt::WWidget * const this, Wt::WWidget * const this@entry) (\home\m\src\wt\src\Wt\WWidget.C:203)
libwt.so.4.12.6!Wt::WDialog::~WDialog(Wt::WDialog * const this) (\home\m\src\wt\src\Wt\WDialog.C:332)
libwt.so.4.12.6!Wt::WMessageBox::~WMessageBox(Wt::WMessageBox * const this) (\usr\include\c++\13\bits\allocator.h:184)
libwt.so.4.12.6!Wt::WMessageBox::~WMessageBox(Wt::WMessageBox * const this) (\home\m\src\wt\src\Wt\WMessageBox.h:71)
libwt.so.4.12.6!std::default_delete<Wt::WObject>::operator()(Wt::WObject * __ptr) (\usr\include\c++\13\bits\unique_ptr.h:99)
libwt.so.4.12.6!std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >::~unique_ptr(std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * const this) (\usr\include\c++\13\bits\unique_ptr.h:404)
libwt.so.4.12.6!std::_Destroy<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > >(std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __pointer) (\usr\include\c++\13\bits\stl_construct.h:151)
libwt.so.4.12.6!std::_Destroy_aux<false>::__destroy<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >*>(std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __last, std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __first) (\usr\include\c++\13\bits\stl_construct.h:163)
libwt.so.4.12.6!std::_Destroy<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >*>(std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __last, std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __first) (\usr\include\c++\13\bits\stl_construct.h:196)
libwt.so.4.12.6!std::_Destroy<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >*, std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > >(std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __last, std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > * __first) (\usr\include\c++\13\bits\alloc_traits.h:948)
libwt.so.4.12.6!std::vector<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >, std::allocator<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > > >::~vector(std::vector<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> >, std::allocator<std::unique_ptr<Wt::WObject, std::default_delete<Wt::WObject> > > > * const this) (\usr\include\c++\13\bits\stl_vector.h:735)
libwt.so.4.12.6!Wt::WObject::~WObject(Wt::WObject * const this) (\home\m\src\wt\src\Wt\WObject.C:34)
libwt.so.4.12.6!Wt::WContainerWidget::~WContainerWidget(Wt::WContainerWidget * const this) (\home\m\src\wt\src\Wt\WContainerWidget.C:46)
libwt.so.4.12.6!std::default_delete<Wt::WWidget>::operator()(Wt::WWidget * __ptr) (\usr\include\c++\13\bits\unique_ptr.h:99)
libwt.so.4.12.6!std::unique_ptr<Wt::WWidget, std::default_delete<Wt::WWidget> >::~unique_ptr(std::unique_ptr<Wt::WWidget, std::default_delete<Wt::WWidget> > * const this) (\usr\include\c++\13\bits\unique_ptr.h:404)
libwt.so.4.12.6!Wt::WContainerWidget::clear(Wt::WContainerWidget * const this, Wt::WContainerWidget * const this@entry) (\home\m\src\wt\src\Wt\WContainerWidget.C:210)
libwt.so.4.12.6!Wt::WContainerWidget::~WContainerWidget(Wt::WContainerWidget * const this) (\home\m\src\wt\src\Wt\WContainerWidget.C:49)
libwt.so.4.12.6!Wt::WContainerWidget::~WContainerWidget(Wt::WContainerWidget * const this) (\home\m\src\wt\src\Wt\WContainerWidget.C:53)
libwt.so.4.12.6!std::default_delete<Wt::WContainerWidget>::operator()(Wt::WContainerWidget * __ptr) (\usr\include\c++\13\bits\unique_ptr.h:93)
libwt.so.4.12.6!std::__uniq_ptr_impl<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> >::reset(std::__uniq_ptr_impl<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> >::pointer __p, std::__uniq_ptr_impl<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> > * const this) (\usr\include\c++\13\bits\unique_ptr.h:211)
libwt.so.4.12.6!std::unique_ptr<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> >::reset(std::unique_ptr<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> >::pointer __p, std::unique_ptr<Wt::WContainerWidget, std::default_delete<Wt::WContainerWidget> > * const this) (\usr\include\c++\13\bits\unique_ptr.h:509)
libwt.so.4.12.6!Wt::WApplication::~WApplication(Wt::WApplication * const this) (\home\m\src\wt\src\Wt\WApplication.C:423)
libwt.so.4.12.6!Wt::WApplication::~WApplication(Wt::WApplication * const this) (\home\m\src\wt\src\Wt\WApplication.C:433)
libwt.so.4.12.6!Wt::WebSession::~WebSession(Wt::WebSession * const this) (\home\m\src\wt\src\web\WebSession.C:260)
libwt.so.4.12.6!std::_Sp_counted_ptr<Wt::WebSession*, (__gnu_cxx::_Lock_policy)2>::_M_dispose(std::_Sp_counted_ptr<Wt::WebSession*, (__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:428)
libwt.so.4.12.6!std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:175)
libwt.so.4.12.6!std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:199)
libwt.so.4.12.6!std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release(std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:353)
libwt.so.4.12.6!std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:1071)
libwt.so.4.12.6!std::__shared_ptr<Wt::WebSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr(std::__shared_ptr<Wt::WebSession, (__gnu_cxx::_Lock_policy)2> * const this) (\usr\include\c++\13\bits\shared_ptr_base.h:1524)
libwt.so.4.12.6!std::shared_ptr<Wt::WebSession>::~shared_ptr(std::shared_ptr<Wt::WebSession> * const this) (\usr\include\c++\13\bits\shared_ptr.h:175)
libwt.so.4.12.6!std::_Destroy<std::shared_ptr<Wt::WebSession> >(std::shared_ptr<Wt::WebSession> * __pointer) (\usr\include\c++\13\bits\stl_construct.h:151)
libwt.so.4.12.6!std::_Destroy_aux<false>::__destroy<std::shared_ptr<Wt::WebSession>*>(std::shared_ptr<Wt::WebSession> * __first) (\usr\include\c++\13\bits\stl_construct.h:163)
libwt.so.4.12.6!std::_Destroy<std::shared_ptr<Wt::WebSession>*>() (\usr\include\c++\13\bits\stl_construct.h:196)
libwt.so.4.12.6!std::_Destroy<std::shared_ptr<Wt::WebSession>*, std::shared_ptr<Wt::WebSession> >() (\usr\include\c++\13\bits\alloc_traits.h:948)
libwt.so.4.12.6!std::vector<std::shared_ptr<Wt::WebSession>, std::allocator<std::shared_ptr<Wt::WebSession> > >::~vector() (\usr\include\c++\13\bits\stl_vector.h:735)
libwt.so.4.12.6!Wt::WebController::expireSessions(Wt::WebController * const this) (\home\m\src\wt\src\web\WebController.C:235)
libwt.so.4.12.6!Wt::WServer::expireSessions(Wt::WServer * const this) (\home\m\src\wt\src\Wt\WServer.C:465)
libwthttp.so.4.12.6!http::server::Server::expireSessions(http::server::Server * const this, Wt::AsioWrapper::error_code ec) (\home\m\src\wt\src\http\Server.C:689)
libwthttp.so.4.12.6!std::__invoke_impl<void, void (http::server::Server::*&)(boost::system::error_code), http::server::Server*&, boost::system::error_code const&>(void (http::server::Server::*&)(http::server::Server * const, boost::system::error_code) __f, http::server::Server *& __t) (\usr\include\c++\13\bits\invoke.h:71)
libwthttp.so.4.12.6!std::__invoke<void (http::server::Server::*&)(boost::system::error_code), http::server::Server*&, boost::system::error_code const&>(void (http::server::Server::*&)(http::server::Server * const, boost::system::error_code) __fn) (\usr\include\c++\13\bits\invoke.h:96)
libwthttp.so.4.12.6!std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>::__call<void, boost::system::error_code const&, 0ul, 1ul>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0ul, 1ul>)(std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)> * const this) (\usr\include\c++\13\functional:506)
libwthttp.so.4.12.6!std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&)(std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)> * const this) (\usr\include\c++\13\functional:591)
libwthttp.so.4.12.6!boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code>::operator()()(boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code> * const this) (\root\parts\libboost\install\usr\include\boost\asio\detail\bind_handler.hpp:115)
libwthttp.so.4.12.6!boost::asio::detail::handler_work<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::asio::any_io_executor, void>::complete<boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code>&, std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>&)(boost::asio::detail::handler_work<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::asio::any_io_executor, void> * const this, boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code> & function) (\root\parts\libboost\install\usr\include\boost\asio\detail\handler_work.hpp:470)
libwthttp.so.4.12.6!boost::asio::detail::handler_work<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::asio::any_io_executor, void>::complete<boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code>&, std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>&)(std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)> & handler, boost::asio::detail::binder1<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::system::error_code> & function, boost::asio::detail::handler_work<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::asio::any_io_executor, void> * const this) (\root\parts\libboost\install\usr\include\boost\asio\detail\handler_work.hpp:463)
libwthttp.so.4.12.6!boost::asio::detail::wait_handler<std::_Bind<void (http::server::Server::*(http::server::Server*, std::_Placeholder<1>))(boost::system::error_code)>, boost::asio::any_io_executor>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long)(void * owner, boost::asio::detail::operation * base) (\root\parts\libboost\install\usr\include\boost\asio\detail\wait_handler.hpp:76)
libwt.so.4.12.6!boost::asio::detail::scheduler_operation::complete(std::size_t bytes_transferred, const boost::system::error_code & ec, void * owner, boost::asio::detail::scheduler_operation * const this) (\root\parts\libboost\install\usr\include\boost\asio\detail\scheduler_operation.hpp:40)
libwt.so.4.12.6!boost::asio::detail::scheduler::do_run_one(boost::asio::detail::scheduler * const this, boost::asio::detail::scheduler * const this@entry, boost::asio::detail::conditionally_enabled_mutex::scoped_lock & lock, boost::asio::detail::scheduler::thread_info & this_thread, const boost::system::error_code & ec) (\root\parts\libboost\install\usr\include\boost\asio\detail\impl\scheduler.ipp:501)
libwt.so.4.12.6!boost::asio::detail::scheduler::run(boost::asio::detail::scheduler * const this, boost::system::error_code & ec) (\root\parts\libboost\install\usr\include\boost\asio\detail\impl\scheduler.ipp:217)
libwt.so.4.12.6!boost::asio::io_context::run(boost::asio::io_context * const this) (\root\parts\libboost\install\usr\include\boost\asio\impl\io_context.ipp:63)
libwt.so.4.12.6!Wt::WIOService::run(Wt::WIOService * const this) (\home\m\src\wt\src\Wt\WIOService.C:185)
libstdc++.so.6![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libc.so.6!start_thread(void * arg) (pthread_create.c:447)
libc.so.6!clone3() (clone3.S:78)
Actions

Also available in: Atom PDF