I just commited a patch that remove feature destructors cleanups (that
shouldn't be necessary anymore) that lead to those closing-time
crashes.

Could you please test and check for adverse effects.

Thanks
- Chris -

On Tue, Mar 16, 2010 at 16:44, Nick Burrett <[email protected]> wrote:
> On 15 March 2010 16:56, Alberto Malagoli <[email protected]> wrote:
>> ok thanks.. i'll try use merkaartor with gdb activated in the next days an
>> hope (or not!) to have a crash..
>
> Here's an example crash:
>
> ****  "2010-03-16T15:38:32"  -- Ending  "Merkaartor 0.16-svn(20381M)"
> pure virtual method called
> terminate called without an active exception
>
> Program received signal SIGABRT, Aborted.
> [Switching to Thread 0xb522a6c0 (LWP 6948)]
> 0xb7ef2410 in __kernel_vsyscall ()
> (gdb) bt
> #0  0xb7ef2410 in __kernel_vsyscall ()
> #1  0xb555f085 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb5560a01 in abort () from /lib/tls/i686/cmov/libc.so.6
> #3  0xb576f480 in __gnu_cxx::__verbose_terminate_handler () from
> /usr/lib/libstdc++.so.6
> #4  0xb576cd05 in ?? () from /usr/lib/libstdc++.so.6
> #5  0xb576cd42 in std::terminate () from /usr/lib/libstdc++.so.6
> #6  0xb576d605 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
> #7  0x081d1d2b in Relation::boundingBox (this=0xb4156690) at
> Features/Relation.cpp:125
> #8  0x081cffed in Relation::remove (this=0xb4156690, Idx=48) at
> Features/Relation.cpp:331
> #9  0x081cd080 in Relation::remove (this=0xb4156690, F=0xb4245cf0) at
> Features/Relation.cpp:340
> #10 0x081cb6a5 in ~Feature (this=0xb4245cf0) at Features/Feature.cpp:166
> #11 0x081e2106 in ~Way (this=0xb4245cf0) at Features/Way.cpp:111
> #12 0xb594dd2c in QObjectPrivate::deleteChildren (this=0x8bcce00) at
> kernel/qobject.cpp:1978
> #13 0xb59536e1 in ~QObject (this=0x86d14f8) at kernel/qobject.cpp:975
> #14 0x08213da2 in ~Layer (this=0x86d14f8) at Layers/Layer.cpp:93
> #15 0x08214171 in ~DrawingLayer (this=0x86d14f8) at Layers/Layer.cpp:524
> #16 0x08075cab in ~MapDocumentPrivate (this=0x882b810) at Document.cpp:41
> #17 0x08070ad1 in ~Document (this=0x86e8900) at Document.cpp:77
> #18 0x08149f12 in ~MainWindow (this=0xbff2c9f4) at MainWindow.cpp:361
> #19 0x0813597e in main (argc=Cannot access memory at address 0x1b24
> ) at Main.cpp:230
> (gdb)
>
> (gdb) list 123
> 118                     if (p->Members.size() == 0)
> 119                             BBox = CoordBox(Coord(0,0),Coord(0,0));
> 120                     else
> 121                     {
> 122                             CoordBox Clip;
> 123                             bool haveFirst = false;
> 124                             for (int i=0; i<p->Members.size(); ++i)
> 125                                     if (p->Members[i].second &&
> !p->Members[i].second->notEverythingDownloaded() &&
> !CAST_RELATION(p->Members[i].second)) {
> (gdb) print p->Members[15].second
> $3 = (class Feature *) 0xb4245cf0
> (gdb) print *p->Members[15].second
> $4 = {<QObject> = {_vptr.QObject = 0x8345848, static staticMetaObject
> = {d = {superdata = 0x0, stringdata = 0xb59edec0 "QObject",
>        data = 0xb59edf60, extradata = 0xb5a633c0}}, d_ptr = {d =
> 0xb4245d20}, static staticQtMetaObject = {d = {superdata = 0x0,
>        stringdata = 0xb59f6c00 "Qt", data = 0xb59fa220, extradata =
> 0x0}}}, static staticMetaObject = {d = {superdata = 0x8491950,
>      stringdata = 0x83457d0 "Feature", data = 0x83457e0, extradata =
> 0x0}}, p = 0xb4245d78, BBox = {BottomLeft = {Lat = 0, Lon = 0},
>    TopRight = {Lat = 0, Lon = 0}}, MetaUpToDate = true, m_references = 0}
> (gdb) print *this
> $5 = {<Feature> = {<QObject> = {_vptr.QObject = 0x8345a68, static
> staticMetaObject = {d = {superdata = 0x0,
>          stringdata = 0xb59edec0 "QObject", data = 0xb59edf60,
> extradata = 0xb5a633c0}}, d_ptr = {d = 0xb4156708},
>      static staticQtMetaObject = {d = {superdata = 0x0, stringdata =
> 0xb59f6c00 "Qt", data = 0xb59fa220, extradata = 0x0}}},
>    static staticMetaObject = {d = {superdata = 0x8491950, stringdata
> = 0x83457d0 "Feature", data = 0x83457e0, extradata = 0x0}},
>    p = 0xb4156760, BBox = {BottomLeft = {Lat = 635195284, Lon =
> -74652190}, TopRight = {Lat = 636325205, Lon = -73125199}},
>    MetaUpToDate = false, m_references = 0}, static staticMetaObject =
> {d = {superdata = 0x83457c0, stringdata = 0x83459dc "Relation",
>      data = 0x8345a00, extradata = 0x0}}, p = 0xb41567e0}
> (gdb)
>
>
> I haven't been able to exactly reproduce what causes this though.
>
>
>
>
>> Alberto
>>
>> On Mon, Mar 15, 2010 at 5:40 PM, Nick Burrett <[email protected]> wrote:
>>>
>>> On 15 March 2010 16:29, Alberto Malagoli <[email protected]> wrote:
>>> > hi,
>>> > i'm using Merkaartor 0.15.2-svn(20388) on Linux Mint 8, and sometimes it
>>> > exits with a segmentation fault (catched from terminal).
>>> > quite always this happens after an upload, but also on other situations,
>>> > and
>>> > i don't know how to reproduce it.
>>> > is there a way to have a debug mode or the debug log? so i can post it
>>> > here..
>>>
>>> Yes.  Just build from source and then type:
>>>
>>> gdb ./binaries/bin/merkaartor
>>> (gdb) run
>>>
>>> When it crashes, you can type:
>>>
>>> (gdb) thread apply all backtrace
>>>
>>> Regards,
>>>
>>> Nick
>>>
>>> _______________________________________________
>>> Merkaartor mailing list
>>> [email protected]
>>> http://lists.openstreetmap.org/listinfo/merkaartor
>>
>>
>> _______________________________________________
>> Merkaartor mailing list
>> [email protected]
>> http://lists.openstreetmap.org/listinfo/merkaartor
>>
>>
>
> _______________________________________________
> Merkaartor mailing list
> [email protected]
> http://lists.openstreetmap.org/listinfo/merkaartor
>

_______________________________________________
Merkaartor mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/merkaartor

Reply via email to