Project

General

Profile

Actions

Bug #952

closed

WTableView::closeEditors() causes segfault in HTML version

Added by Boris Nagaev over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
08/12/2011
Due date:
% Done:

0%

Estimated time:

Description

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea230700 (LWP 21631)]
0x00007ffff6a487ee in Wt::WContainerWidget::widget (this=<value optimized out>, index=0)
    at /build/buildd/witty-3.1.10/src/Wt/WContainerWidget.C:279
279     /build/buildd/witty-3.1.10/src/Wt/WContainerWidget.C: No such file or directory.
        in /build/buildd/witty-3.1.10/src/Wt/WContainerWidget.C
(gdb) bt
#0  0x00007ffff6a487ee in Wt::WContainerWidget::widget (this=<value optimized out>, index=0)
    at /build/buildd/witty-3.1.10/src/Wt/WContainerWidget.C:279
#1  0x00007ffff6b4adc3 in Wt::WTableView::updateItem (this=0x7fffe40008b0, index=..., renderedRow=<value optimized out>, 
    renderedColumn=<value optimized out>) at /build/buildd/witty-3.1.10/src/Wt/WTableView.C:1256
#2  0x00007ffff6b4b055 in Wt::WTableView::modelDataChanged (this=0x7fffe40008b0, topLeft=..., 
    bottomRight=<value optimized out>) at /build/buildd/witty-3.1.10/src/Wt/WTableView.C:1236
#3  0x00007ffff6b4d8b2 in operator() (function_obj_ptr=<value optimized out>, a0=..., a1=..., a2=..., a3=..., a4=..., a5=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:280
#4  operator()<boost::_mfi::mf2<void, Wt::WTableView, const Wt::WModelIndex&, const Wt::WModelIndex&>, boost::_bi::list6<Wt::WM
odelIndex&, Wt::WModelIndex&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&, Wt::NoClass&> > (
    function_obj_ptr=<value optimized out>, a0=..., a1=..., a2=..., a3=..., a4=..., a5=...)
    at /usr/include/boost/bind/bind.hpp:392
#5  operator()<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> (
    function_obj_ptr=<value optimized out>, a0=..., a1=..., a2=..., a3=..., a4=..., a5=...)
    at /usr/include/boost/bind/bind_template.hpp:203
#6  boost::detail::function::void_function_obj_invoker6<boost::_bi::bind_t<void, boost::_mfi::mf2<void, Wt::WTableView, Wt::WMo
delIndex const&, Wt::WModelIndex const&>, boost::_bi::list3<boost::_bi::value<Wt::WTableView*>, boost::arg<1>, boost::arg<2> > 
>, void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::invoke (
    function_obj_ptr=<value optimized out>, a0=..., a1=..., a2=..., a3=..., a4=..., a5=...)
    at /usr/include/boost/function/function_template.hpp:153
#7  0x0000000000475c32 in boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::N
oClass>::operator() (this=0x7fffe4005e28, a0=..., a1=..., a2=..., a3=..., a4=..., a5=...)
    at /usr/include/boost/function/function_template.hpp:1013
#8  0x0000000000474a75 in caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::f
unction6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >::operator()<boost::signa
ls::detail::connection_slot_pair> (this=0x7fffea22d670, slot=...) at /usr/include/boost/signals/signal_template.hpp:119
#9  0x00000000004737f2 in boost::signals::detail::slot_call_iterator<boost::signals::detail::call_bound6<void>::caller<Wt::WMod
elIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::function6<void, Wt::WModelIndex, Wt::WMode
lIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_iterator>::dereference (
    this=0x7fffea22d630) at /usr/include/boost/signals/detail/slot_call_iterator.hpp:61
#10 0x000000000047263e in boost::iterator_core_access::dereference<boost::signals::detail::slot_call_iterator<boost::signals::d
etail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::f
unction6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail:
:named_slot_map_iterator> > (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:516
#11 0x00000000004711c2 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::function6<void, Wt:
:WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_it
erator>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long>::op
erator* (this=0x7fffea22d630) at /usr/include/boost/iterator/iterator_facade.hpp:634
#12 0x000000000046ee84 in boost::detail::postfix_increment_proxy<boost::signals::detail::slot_call_iterator<boost::signals::det
ail::call_bound6<void>::caller<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass, boost::fun
ction6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::n
amed_slot_map_iterator> >::postfix_increment_proxy (this=0x7fffea22d51f, x=...)
    at /usr/include/boost/iterator/iterator_facade.hpp:144
#13 0x000000000046d809 in 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::function6<void, Wt::WMod
elIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::named_slot_map_iterato
r>, boost::signals::detail::unusable, boost::single_pass_traversal_tag, boost::signals::detail::unusable const&, long> (i=...)
    at /usr/include/boost/iterator/iterator_facade.hpp:732
#14 0x000000000046b581 in 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::functi
on6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass> >, boost::signals::detail::name
d_slot_map_iterator> > (this=0x7fffe4005928, first=..., last=...) at /usr/include/boost/last_value.hpp:49
#15 0x0000000000468977 in boost::signal6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoC
lass, boost::last_value<void>, int, std::less<int>, boost::function6<void, Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::N
oClass, Wt::NoClass, Wt::NoClass> >::operator() (this=0x7fffe40059f0, a1=..., a2=..., a3=..., a4=..., a5=..., a6=...)
    at /usr/include/boost/signals/signal_template.hpp:354
#16 0x00000000004663d1 in Wt::Signal<Wt::WModelIndex, Wt::WModelIndex, Wt::NoClass, Wt::NoClass, Wt::NoClass, Wt::NoClass>::emi
t (this=0x7fffe4005120, a1=..., a2=..., a3=..., a4=..., a5=..., a6=...) at /usr/include/Wt/WSignal:937
#17 0x000000000048f6ad in Wt::Dbo::QueryModel<Wt::Dbo::ptr<facts::Fact> >::invalidateRow (this=0x7fffe4004fa0, row=1)
    at /usr/include/Wt/Dbo/QueryModel_impl.h:250
#18 0x000000000048eb7b in Wt::Dbo::QueryModel<Wt::Dbo::ptr<facts::Fact> >::setData (this=0x7fffe4004fa0, index=..., 
    value=..., role=2) at /usr/include/Wt/Dbo/QueryModel_impl.h:168
#19 0x00007ffff69dd37c in Wt::WAbstractItemView::saveEditedValue (this=0x7fffe40008b0, index=..., editor=...)
    at /build/buildd/witty-3.1.10/src/Wt/WAbstractItemView.C:1420
#20 0x00007ffff69dda3b in Wt::WAbstractItemView::closeEditor (this=0x7fffe40008b0, index=<value optimized out>, saveData=true)
    at /build/buildd/witty-3.1.10/src/Wt/WAbstractItemView.C:1261
#21 0x00007ffff69ddad5 in Wt::WAbstractItemView::closeEditors (this=0x7fffe40008b0, saveData=true)
    at /build/buildd/witty-3.1.10/src/Wt/WAbstractItemView.C:1270

Files

952.cpp (1.13 KB) 952.cpp segfault when click any field in HTML version Boris Nagaev, 08/21/2011 09:00 PM
952.gdb (15.4 KB) 952.gdb gdb output Boris Nagaev, 08/21/2011 09:00 PM
Actions #1

Updated by Koen Deforche over 12 years ago

  • Status changed from New to Feedback
  • Assignee set to Koen Deforche
  • Target version set to 3.1.11

Hey Starius,

I couldn't reproduce this. Prior to your call to closeEditors(), is there any other manipulation to the view or model you did within the same event ?

Regards,

koen

Updated by Boris Nagaev over 12 years ago

Hello!

I tried to create an example to reproduce this and probably discovered another segfault.

The program ends with segfault after trying to edit any field.

Actions #3

Updated by Koen Deforche over 12 years ago

  • Status changed from Feedback to Resolved

Hey Sarius,

I've fixed this, in git. I suspect it could be the same issue if you were also use setRowHeaderCount(1) in your other test case ?

Regarsd,

koen

Actions #4

Updated by Boris Nagaev over 12 years ago

Hello,

Yes, setRowHeaderCount(1) was also used in other test case.

Regards

Actions #5

Updated by Koen Deforche over 12 years ago

  • Status changed from Resolved to Closed

Resolved in Wt 3.1.11

Actions

Also available in: Atom PDF