Project

General

Profile

Actions

Bug #14376

closed

Segfault in WTableView::setHeaderHeight

Added by Michael Seibt 16 days ago. Updated 3 days ago.

Status:
Closed
Priority:
High
Target version:
Start date:
03/04/2026
Due date:
% Done:

0%

Estimated time:

Description

Affected: WT 4.12.3 and 4.12.4

The segfault occasionally occurs when calling WTableView::setHeaderHeight during WebController::doCreateApplication.
Successful workaround: https://github.com/emweb/wt/pull/238

Partial call stack:

libwt.so.4.12.3!Wt::WContainerWidget::widget(const Wt::WContainerWidget * const this, int index) (\root\parts\wt\src\src\Wt\WContainerWidget.C:244)
libwt.so.4.12.3!Wt::WTableView::headerWidget(Wt::WTableView * const this, int column, bool contentsOnly) (\root\parts\wt\src\src\Wt\WTableView.C:1319)
libwt.so.4.12.3!Wt::WAbstractItemView::setHeaderHeight(Wt::WAbstractItemView * const this, Wt::WAbstractItemView * const this@entry, const Wt::WLength & height) (\root\parts\wt\src\src\Wt\WAbstractItemView.C:1317)
libwt.so.4.12.3!Wt::WTableView::setHeaderHeight(Wt::WTableView * const this, const Wt::WLength & height) (\root\parts\wt\src\src\Wt\WTableView.C:1299)

...

libwt.so.4.12.3!std::function<std::unique_ptr<Wt::WApplication, std::default_delete<Wt::WApplication> > (Wt::WEnvironment const&)>::operator()(Wt::WEnvironment const&) const(const Wt::WEnvironment & __args#0, const std::function<std::unique_ptr<Wt::WApplication, std::default_delete<Wt::WApplication> >(const Wt::WEnvironment&)> * const this) (\usr\include\c++\13\bits\std_function.h:591)
libwt.so.4.12.3!Wt::WebController::doCreateApplication(Wt::WebController * const this, Wt::WebSession * session, Wt::WebSession * session@entry) (\root\parts\wt\src\src\web\WebController.C:902)
libwt.so.4.12.3!Wt::WebSession::start(Wt::WebSession * const this, Wt::WebSession * const this@entry, Wt::WebResponse * response) (\root\parts\wt\src\src\web\WebSession.C:706)
libwt.so.4.12.3!Wt::WebSession::handleRequest(Wt::WebSession * const this, Wt::WebSession::Handler & handler) (\root\parts\wt\src\src\web\WebSession.h:211)
libwt.so.4.12.3!Wt::WebController::handleRequest(Wt::WebController * const this, Wt::WebRequest * request) (\root\parts\wt\src\src\web\WebController.C:858)
libwthttp.so.4.12.3!std::__invoke_impl<void, void (Wt::WebController::*&)(Wt::WebRequest*), Wt::WebController*&, http::server::HTTPRequest*&>(void (Wt::WebController::*&)(Wt::WebController * const, Wt::WebRequest *) __f, Wt::WebController *& __t) (\usr\include\c++\13\bits\invoke.h:71)
libwthttp.so.4.12.3!std::__invoke<void (Wt::WebController::*&)(Wt::WebRequest*), Wt::WebController*&, http::server::HTTPRequest*&>(void (Wt::WebController::*&)(Wt::WebController * const, Wt::WebRequest *) __fn) (\usr\include\c++\13\bits\invoke.h:96)
libwthttp.so.4.12.3!std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>)(std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)> * const this) (\usr\include\c++\13\functional:506)
libwthttp.so.4.12.3!std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)>::operator()<, void>()(std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)> * const this) (\usr\include\c++\13\functional:591)
libwthttp.so.4.12.3!boost::asio::detail::binder0<std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)> >::operator()()(boost::asio::detail::binder0<std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)> > * const this) (\root\parts\libboost\install\usr\include\boost\asio\detail\bind_handler.hpp:56)
libwthttp.so.4.12.3!boost::asio::detail::executor_op<boost::asio::detail::binder0<std::_Bind<void (Wt::WebController::*(Wt::WebController*, http::server::HTTPRequest*))(Wt::WebRequest*)> >, std::allocator<void>, boost::asio::detail::scheduler_operation>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long)(void * owner, boost::asio::detail::scheduler_operation * base) (\root\parts\libboost\install\usr\include\boost\asio\detail\executor_op.hpp:70)
libwt.so.4.12.3!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.3!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.3!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.3!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.3!Wt::WIOService::run(Wt::WIOService * const this) (\root\parts\wt\src\src\Wt\WIOService.C:185)
libstdc++.so.6!std::execute_native_thread_routine(void * __p) (\build\gcc-14-ig5ci0\gcc-14-14.2.0\src\libstdc++-v3\src\c++11\thread.cc:104)
libc.so.6!start_thread(void * arg) (pthread_create.c:447)
libc.so.6!clone3() (clone3.S:78)
Actions #1

Updated by Romain Mardulyn 16 days ago

  • Assignee set to Romain Mardulyn
  • Target version set to 4.12.6
Actions #2

Updated by Romain Mardulyn 16 days ago

  • Status changed from New to InProgress
Actions #3

Updated by Romain Mardulyn 15 days ago

  • Status changed from InProgress to Review
  • Assignee deleted (Romain Mardulyn)
Actions #4

Updated by Romain Mardulyn 11 days ago

  • Assignee set to Raf Pauwels
Actions #5

Updated by Raf Pauwels 8 days ago

  • Status changed from Review to Resolved
Actions #6

Updated by Raf Pauwels 8 days ago

  • Assignee changed from Raf Pauwels to Romain Mardulyn
Actions #7

Updated by Romain Mardulyn 7 days ago

  • Status changed from Resolved to Implemented @Emweb
Actions #8

Updated by Romain Mardulyn 3 days ago

  • Status changed from Implemented @Emweb to Closed
Actions

Also available in: Atom PDF