← Back to team overview

kicad-developers team mailing list archive

Re: Bug 1834718

 

Hey Seth,

No bueno.  Here is the back trace using your patch.

Cheers,

Wayne

#41640 0x000000006d26fb1d in ?? ()
   from E:\msys64\mingw64\bin\wxmsw30u_core_gcc_custom.dll
#41641 0x00000000806e8747 in WX_PROGRESS_REPORTER::~WX_PROGRESS_REPORTER (
    this=0x12884860, __in_chrg=<optimized out>)
    at
E:/msys64/home/Wayne/src/kicad-5.1/common/widgets/progress_reporter.cpp:117
#41642 0x00000000806e8785 in WX_PROGRESS_REPORTER::~WX_PROGRESS_REPORTER (
    this=0x12884860, __in_chrg=<optimized out>)
    at
E:/msys64/home/Wayne/src/kicad-5.1/common/widgets/progress_reporter.cpp:118
#41643 0x00000000809da798 in
std::default_delete<WX_PROGRESS_REPORTER>::operator() (this=0x1539f138,
__ptr=0x12884860)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/unique_ptr.h:81
#41644 0x0000000080a24454 in std::unique_ptr<WX_PROGRESS_REPORTER,
std::default_delete<WX_PROGRESS_REPORTER> >::~unique_ptr (this=0x1539f138,
    __in_chrg=<optimized out>)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/unique_ptr.h:289
#41645 0x00000000802e4b26 in ZONE_FILLER_TOOL::ZoneFill (this=0x14338300,
    aEvent=...)
    at
E:/msys64/home/Wayne/src/kicad-5.1/pcbnew/tools/zone_filler_tool.cpp:103
#41646 0x0000000080bc7b4f in std::__invoke_impl<int, int
(ZONE_FILLER_TOOL::*&)(TOOL_EVENT const&), ZONE_FILLER_TOOL*&,
TOOL_EVENT const&> (__f=
    @0x182d4800: (int (ZONE_FILLER_TOOL::*)(class ZONE_FILLER_TOOL *
const, const class TOOL_EVENT &)) 0x802e4888
<ZONE_FILLER_TOOL::ZoneFill(TOOL_EVENT const&)>, __t=@0x182d4810:
0x14338300, __args#0=...)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/invoke.h:73
#41647 0x0000000080c17723 in std::__invoke<int
(ZONE_FILLER_TOOL::*&)(TOOL_EVENT const&), ZONE_FILLER_TOOL*&,
TOOL_EVENT const&> (__fn=
    @0x182d4800: (int (ZONE_FILLER_TOOL::*)(class ZONE_FILLER_TOOL *
const, const class TOOL_EVENT &)) 0x802e4888
<ZONE_FILLER_TOOL::ZoneFill(TOOL_EVENT const&)>, __args#0=@0x182d4810:
0x14338300, __args#1=...)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/invoke.h:95
#41648 0x0000000080ab5bcb in std::_Bind<int
(ZONE_FILLER_TOOL::*(ZONE_FILLER_TOOL*,
std::_Placeholder<1>))(TOOL_EVENT const&)>::__call<int, TOOL_EVENT
const&, 0ull, 1ull>(std::tuple<TOOL_EVENT const&>&&,
std::_Index_tuple<0ull, 1ull>) (
    this=0x182d4800, __args=...)
    at E:/msys64/mingw64/include/c++/9.1.0/functional:400
#41649 0x0000000080ab5cf4 in std::_Bind<int
(ZONE_FILLER_TOOL::*(ZONE_FILLER_TOOL*,
std::_Placeholder<1>))(TOOL_EVENT const&)>::operator()<TOOL_EVENT
const&, int>(TOOL_EVENT const&) (this=0x182d4800, __args#0=...)
    at E:/msys64/mingw64/include/c++/9.1.0/functional:484
#41650 0x0000000080a90269 in std::_Function_handler<int (TOOL_EVENT
const&), std::_Bind<int (ZONE_FILLER_TOOL::*(ZONE_FILLER_TOOL*,
std::_Placeholder<1>))(TOOL_EVENT const&)> >::_M_invoke(std::_Any_data
const&, TOOL_EVENT const&) (
    __functor=..., __args#0=...)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/std_function.h:285
#41651 0x0000000080a01b9b in std::function<int (TOOL_EVENT
const&)>::operator()(TOOL_EVENT const&) const (this=0x182d2db8,
__args#0=...)
    at E:/msys64/mingw64/include/c++/9.1.0/bits/std_function.h:690
#41652 0x000000008095920a in COROUTINE<int, TOOL_EVENT const&>::callerStub (
    aData=354023872)
    at E:/msys64/home/Wayne/src/kicad-5.1/include/tool/coroutine.h:331
#41653 0x00000000807b8f4a in make_fcontext ()
   from E:\msys64\mingw64\bin\_pcbnew.kiface
#41654 0x000000001519f9c0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


On 6/29/2019 3:17 PM, Seth Hillbrand wrote:
> Hi Wayne-
> 
> That actually helps a lot.  It also explains why this is MSW-only behavior.
> 
> I'm attaching a patch that should address this.  Let me know if it
> doesn't help.
> 
> Best-
> Seth
> 
> On 2019-06-29 11:48, Wayne Stambaugh wrote:
>> Seth,
>>
>> I managed to let the gdb back trace finish.  It took a while but here is
>> the last of the stack up to the last progress dialog dtor iteration.
>> I'm not sure how much good it's going to do.  It looks like there was a
>> context switch or something that corrupted the previous stack frame so
>> any useful information in that stack frame is lost :(
>>
>> Wayne
>>
>> #83262 0x000000006d26fb1d in ?? ()
>>    from E:\msys64\mingw64\bin\wxmsw30u_core_gcc_custom.dll
>> #83263 0x00000000806e8547 in
>> WX_PROGRESS_REPORTER::~WX_PROGRESS_REPORTER (
>>     this=0x1751aca0, __in_chrg=<optimized out>)
>>     at
>> E:/msys64/home/Wayne/src/kicad-5.1/common/widgets/progress_reporter.cpp:117
>>
>> #83264 0x00000000802d2d88 in POINT_EDITOR::finishItem (this=0x12a8a3a0)
>>     at
>> E:/msys64/home/Wayne/src/kicad-5.1/pcbnew/tools/point_editor.cpp:650
>> #83265 0x00000000802d15a0 in POINT_EDITOR::OnSelectionChange (
>>     this=0x12a8a3a0, aEvent=...)
>>     at
>> E:/msys64/home/Wayne/src/kicad-5.1/pcbnew/tools/point_editor.cpp:427
>> #83266 0x0000000080bc764f in std::__invoke_impl<int, int
>> (POINT_EDITOR::*&)(TOOL_EVENT const&), POINT_EDITOR*&, TOOL_EVENT
>> const&> (__f=
>>     @0x190138a0: (int (POINT_EDITOR::*)(class POINT_EDITOR * const,
>> const class TOOL_EVENT &)) 0x802d0b22
>> <POINT_EDITOR::OnSelectionChange(TOOL_EVENT const&)>, __t=@0x190138b0:
>> 0x12a8a3a0, __args#0=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/bits/invoke.h:73
>> #83267 0x0000000080c172b3 in std::__invoke<int
>> (POINT_EDITOR::*&)(TOOL_EVENT const&), POINT_EDITOR*&, TOOL_EVENT
>> const&> (__fn=
>>     @0x190138a0: (int (POINT_EDITOR::*)(class POINT_EDITOR * const,
>> const class TOOL_EVENT &)) 0x802d0b22
>> <POINT_EDITOR::OnSelectionChange(TOOL_EVENT const&)>,
>> __args#0=@0x190138b0: 0x12a8a3a0, __args#1=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/bits/invoke.h:95
>> #83268 0x0000000080ab4fcb in std::_Bind<int
>> (POINT_EDITOR::*(POINT_EDITOR*, std::_Placeholder<1>))(TOOL_EVENT
>> const&)>::__call<int, TOOL_EVENT const&, 0ull,
>> 1ull>(std::tuple<TOOL_EVENT const&>&&, std::_Index_tuple<0ull, 1ull>) (
>>     this=0x190138a0, __args=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/functional:400
>> #83269 0x0000000080ab50f4 in std::_Bind<int
>> (POINT_EDITOR::*(POINT_EDITOR*, std::_Placeholder<1>))(TOOL_EVENT
>> const&)>::operator()<TOOL_EVENT const&, int>(TOOL_EVENT const&)
>> (this=0x190138a0, __args#0=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/functional:484
>> #83270 0x0000000080a8fef9 in std::_Function_handler<int (TOOL_EVENT
>> const&), std::_Bind<int (POINT_EDITOR::*(POINT_EDITOR*,
>> std::_Placeholder<1>))(TOOL_EVENT const&)> >::_M_invoke(std::_Any_data
>> const&, TOOL_EVENT const&) (
>>     __functor=..., __args#0=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/bits/std_function.h:285
>> #83271 0x0000000080a0196b in std::function<int (TOOL_EVENT
>> const&)>::operator()(TOOL_EVENT const&) const (this=0x19011718,
>> __args#0=...)
>>     at E:/msys64/mingw64/include/c++/9.1.0/bits/std_function.h:690
>> #83272 0x0000000080958ffa in COROUTINE<int, TOOL_EVENT
>> const&>::callerStub (
>>     aData=401672480)
>>     at E:/msys64/home/Wayne/src/kicad-5.1/include/tool/coroutine.h:332
>> #83273 0x00000000807b8d4a in make_fcontext ()
>>    from E:\msys64\mingw64\bin\_pcbnew.kiface
>> #83274 0x0000000017f10920 in ?? ()
>> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>>
>>
>> On 6/28/2019 7:58 PM, Seth Hillbrand wrote:
>>> Hi Wayne-
>>>
>>> I can't get Linux to crash for this bug but I do see some memory access
>>> grinding when I follow your steps.
>>>
>>> Can you test the attached patch and see if it fixes the issue for you? 
>>> Launchpad is down right now, so I can't attach it to the bug report.
>>>
>>> This patch should not be committed to the tree.  If it fixes the issue,
>>> we can address the root cause but that's a bigger job.
>>>
>>> -Seth


Follow ups

References