Project

General

Profile

Actions

Bug #3343

closed

Segfault in WSortFilterProxyModel::sourceDataChanged

Added by Alexander Morozov almost 10 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
06/18/2014
Due date:
% Done:

0%

Estimated time:

Description

Backtrace looks like in #2009.

If I comment out

setDynamicSortFilter(true);

in attached test case it does not crash.

#0  __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:2825
#1  0x00002ac877464acc in __copy_m<int> (__result=0x2ac8800113f0, __last=<optimized out>, __first=0x2ac8800113f4) at /usr/include/c++/4.7/bits/stl_algobase.h:366
#2  __copy_move_a<false, int*, int*> (__result=0x2ac8800113f0, __last=<optimized out>, __first=0x2ac8800113f4) at /usr/include/c++/4.7/bits/stl_algobase.h:384
#3  __copy_move_a2<false, __gnu_cxx::__normal_iterator<int*, std::vector<int> >, __gnu_cxx::__normal_iterator<int*, std::vector<int> > > (__result=..., __last=..., __first=...)
    at /usr/include/c++/4.7/bits/stl_algobase.h:422
#4  copy<__gnu_cxx::__normal_iterator<int*, std::vector<int> >, __gnu_cxx::__normal_iterator<int*, std::vector<int> > > (__result=..., __last=..., __first=...)
    at /usr/include/c++/4.7/bits/stl_algobase.h:454
#5  std::vector<int, std::allocator<int> >::erase (this=this@entry=0x2ac880010348, __position=0) at /usr/include/c++/4.7/bits/vector.tcc:139
#6  0x00002ac87759ff41 in Wt::WSortFilterProxyModel::sourceDataChanged (this=0x2ac88000d450, topLeft=..., bottomRight=...) at /srv/projects/wt-3.3.3/src/Wt/WSortFilterProxyModel.C:576
#7  0x00002ac8775a050a in operator() (a2=..., a1=..., p=<optimized out>, this=<optimized out>) at /srv/projects/boost_1_51_0/boost/bind/mem_fn_template.hpp:280
#8  operator()<boost::_mfi::mf2<void, Wt::WSortFilterProxyModel, const Wt::WModelIndex&, const Wt::WModelIndex&>, boost::_bi::list6<Wt::WModelIndex&, Wt::WModelIndex&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&> > (a=<synthetic pointer>, f=..., this=<optimized out>) at /srv/projects/boost_1_51_0/boost/bind/bind.hpp:392
#9  operator()<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> (a6=<synthetic pointer>, a5=<synthetic pointer>, a4=<synthetic pointer>, a3=<synthetic pointer>, a2=..., 
    a1=..., this=<optimized out>) at /srv/projects/boost_1_51_0/boost/bind/bind_template.hpp:203
#10 boost::detail::function::void_function_obj_invoker6<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Wt::WSortFilterProxyModel, Wt::WModelIndex const&, Wt::WModelIndex const&>, boost::_bi::list3<boost::_bi::value<Wt::WSortFilterProxyModel*>, boost::arg<1>, boost::arg<2> > >, void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::invoke (function_obj_ptr=..., a0=..., 
    a1=..., a2=..., a3=..., a4=..., a5=...) at /srv/projects/boost_1_51_0/boost/function/function_template.hpp:153
#11 0x000000000040c0ae in boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::operator()(Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass) const ()
#12 0x000000000040bf08 in boost::signals::detail::unusable boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >::operator()<boost::signals::detail::connection_slot_pair>(boost::signals::detail::connection_slot_pair const&) const ()
#13 0x000000000040be0c in boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>::dereference() const ()
#14 0x000000000040bce8 in boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>::reference boost::iterator_core_access::dereference<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator> >(boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator> const&) ()
#15 0x000000000040badc in boost::iterator_facade<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>::operator*() const ()
#16 0x000000000040b836 in boost::detail::postfix_increment_proxy<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator> >::postfix_increment_proxy(boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator> const&) ()
#17 0x000000000040b4dc in boost::detail::postfix_increment_result<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::signals::detail::unusable const&, boost::single_pass_traversal_tag>::type boost::operator++<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>(boost::iterator_facade<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>&, int) ()
#18 0x000000000040b1f7 in void boost::last_value<void>::operator()<boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator> >(boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>, boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >, boost::signals::detail::named_slot_map_iterator>) const ()
#19 0x000000000040ad1b in boost::signal6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::last_value<void>, int, std::less<int>, boost::function<void (Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass)> >::operator()(Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass) ()
#20 0x000000000040a7a7 in Wt::Signal<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::emit(Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass) const ()
#21 0x0000000000409086 in Model::set(int, std::string const&) ()
#22 0x0000000000409250 in SFApp::SFApp(Wt::WEnvironment const&) ()
#23 0x0000000000409355 in createApplication(Wt::WEnvironment const&) ()
#24 0x000000000040b590 in boost::detail::function::function_invoker1<Wt::WApplication* (*)(Wt::WEnvironment const&), Wt::WApplication*, Wt::WEnvironment const&>::invoke(boost::detail::function::function_buffer&, Wt::WEnvironment const&) ()
#25 0x00002ac87774c1df in operator() (a0=..., this=0x2ac87d56af50) at /srv/projects/boost_1_51_0/boost/function/function_template.hpp:760
#26 Wt::WebController::doCreateApplication (this=<optimized out>, session=<optimized out>) at /srv/projects/wt-3.3.3/src/web/WebController.C:710
#27 0x00002ac877757530 in Wt::WebSession::start (this=this@entry=0x2ac880002470, response=0x2ac880004c00) at /srv/projects/wt-3.3.3/src/web/WebSession.C:632
#28 0x00002ac87775cd57 in Wt::WebSession::handleRequest (this=0x2ac880002470, handler=...) at /srv/projects/wt-3.3.3/src/web/WebSession.C:1462
#29 0x00002ac87774f5d2 in Wt::WebController::handleRequest (this=0x1653cd0, request=0x2ac880004c00) at /srv/projects/wt-3.3.3/src/web/WebController.C:689
#30 0x00002ac877c5882e in operator() (a1=<optimized out>, p=<optimized out>, this=<synthetic pointer>) at /srv/projects/boost_1_51_0/boost/bind/mem_fn_template.hpp:165
#31 operator()<boost::_mfi::mf1<void, Wt::WebController, Wt::WebRequest*>, boost::_bi::list0> (f=<synthetic pointer>, this=<synthetic pointer>, a=...) at /srv/projects/boost_1_51_0/boost/bind/bind.hpp:313
#32 operator() (this=<synthetic pointer>) at /srv/projects/boost_1_51_0/boost/bind/bind_template.hpp:20
#33 asio_handler_invoke<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Wt::WebController, Wt::WebRequest*>, boost::_bi::list2<boost::_bi::value<Wt::WebController*>, boost::_bi::value<http::server::HTTPRequest*> > > > (function=...) at /srv/projects/boost_1_51_0/boost/asio/handler_invoke_hook.hpp:64
#34 invoke<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Wt::WebController, Wt::WebRequest*>, boost::_bi::list2<boost::_bi::value<Wt::WebController*>, boost::_bi::value<http::server::HTTPRequest*> > >, boost::_bi::bind_t<void, boost::_mfi::mf1<void, Wt::WebController, Wt::WebRequest*>, boost::_bi::list2<boost::_bi::value<Wt::WebController*>, boost::_bi::value<http::server::HTTPRequest*> > > > (function=..., 
    context=...) at /srv/projects/boost_1_51_0/boost/asio/detail/handler_invoke_helpers.hpp:39
#35 boost::asio::detail::completion_handler<boost::_bi::bind_t<void, boost::_mfi::mf1<void, Wt::WebController, Wt::WebRequest*>, boost::_bi::list2<boost::_bi::value<Wt::WebController*>, boost::_bi::value<http::server::HTTPRequest*> > > >::do_complete (owner=0x16531b0, base=<optimized out>) at /srv/projects/boost_1_51_0/boost/asio/detail/completion_handler.hpp:67
#36 0x00002ac87750afee in complete (owner=..., this=0x2ac8800023f0, bytes_transferred=0, ec=...) at /srv/projects/boost_1_51_0/boost/asio/detail/task_io_service_operation.hpp:37
#37 do_run_one (ec=..., this_thread=..., lock=..., this=<optimized out>) at /srv/projects/boost_1_51_0/boost/asio/detail/impl/task_io_service.ipp:419
#38 boost::asio::detail::task_io_service::run (this=0x16531b0, ec=...) at /srv/projects/boost_1_51_0/boost/asio/detail/impl/task_io_service.ipp:160
#39 0x00002ac8775079eb in run (this=<optimized out>) at /srv/projects/boost_1_51_0/boost/asio/impl/io_service.ipp:59
#40 Wt::WIOService::run (this=0x16521e0) at /srv/projects/wt-3.3.3/src/Wt/WIOService.C:180
#41 0x00002ac87905b319 in boost::(anonymous namespace)::thread_proxy (param=0x2ac880001cd0) at libs/thread/src/pthread/thread.cpp:145
#42 0x00002ac878e1cb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#43 0x00002ac878b660ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#44 0x0000000000000000 in ?? ()

Files

sortfilter.cpp (1.77 KB) sortfilter.cpp Test case to reproduce Alexander Morozov, 06/18/2014 04:39 PM
Actions #1

Updated by Koen Deforche over 9 years ago

  • Status changed from New to Resolved
  • Assignee set to Koen Deforche
  • Target version changed from 3.3.3 to 3.3.4
Actions #2

Updated by Koen Deforche over 9 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF