[Qgis-developer] [QGIS-Server] Segfault malloc on master

Matthias Kuhn matthias.kuhn at gmx.ch
Fri Nov 29 02:28:28 PST 2013


On Fre 29 Nov 2013 09:40:03 CET, rldhont wrote:
> Hi Marco,
>
> More information with valgrind :
> </WFS_Capabilities>
> ==26940== Invalid read of size 4
> ==26940==    at 0x43EE67: QBasicAtomicInt::deref() (qatomic_x86_64.h:133)
> ==26940==    by 0x43F054: QString::~QString() (in
> /home/dhont/3liz_dev/QGIS-Compil/qgis_rldhont/build/bin/qgis_mapserv.fcgi)
>
> ==26940==    by 0x889B529: __cxa_finalize (cxa_finalize.c:55)
> ==26940==    by 0x50234D2: ??? (in
> /home/dhont/3liz_dev/QGIS-Compil/qgis_rldhont/build/lib/libqgis_core.so.2.1.0)
>
> ==26940==    by 0x400FF46: _dl_fini (dl-fini.c:253)
> ==26940==    by 0x889B120: __run_exit_handlers (exit.c:77)
> ==26940==    by 0x889B1A4: exit (exit.c:99)
> ==26940==    by 0x8880EAB: (below main) (libc-start.c:294)
> ==26940==  Address 0x29aeb390 is 0 bytes inside a block of size 40 free'd
> ==26940==    at 0x4C2BA6C: free (in
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==26940==    by 0x6741487: QString::free(QString::Data*) (in
> /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.4)
> ==26940==    by 0x43F06A: QString::~QString() (in
> /home/dhont/3liz_dev/QGIS-Compil/qgis_rldhont/build/bin/qgis_mapserv.fcgi)
>
> ==26940==    by 0x889B120: __run_exit_handlers (exit.c:77)
> ==26940==    by 0x889B1A4: exit (exit.c:99)
> ==26940==    by 0x8880EAB: (below main) (libc-start.c:294)
> But I don't have the file and line.
>
> Regardes,
> René-Luc
>
>
> Le 29/11/2013 07:54, Marco Hugentobler a écrit :
>> Hi René-Luc
>>
>> I don't have a segfault with GetCapabilities here. Maybe it happens
>> not with all projects?
>>
>> Regards,
>> Marco
>>
>> On 28.11.2013 15:59, rldhont wrote:
>>> Hi Marco,
>>>
>>> I found time to test QGIS-Server master on gdb.
>>>
>>> I'm testing GetCapabilities, and QGIS-Server segfaults after sending
>>> the document.
>>> </WMS_Capabilities>
>>> [Thread 0x7fffc6b49700 (LWP 1477) exited]
>>> [Thread 0x7fffc73d7700 (LWP 1475) exited]
>>> [Thread 0x7fffc7bd8700 (LWP 1474) exited]
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> 0x00007ffff4029cdb in malloc_consolidate (
>>>     av=av at entry=0x7ffff436c740 <main_arena>) at malloc.c:4094
>>> 4094    malloc.c: Aucun fichier ou dossier de ce type.
>>>
>>> If the segfault arriving before the client receiving all the
>>> document, the connexion is closed and the document is incomplet.
>>>
>>> The GetCapabilities request is not the only one to generate a segfault.
>>>
>>> Do you have an idea ?
>>>
>>> Regards,
>>> René-Luc D'Hont
>>>
>>>
>>
>>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer

I know the same problem from my desktop QGIS as well. The problem seems 
to be, that when exiting qgis and doing the cleanup it's trying to 
delete a QString that has been already been cleaned up and deleted 
before. Unfortunately I was not able to track it down yet. It looks 
like we have several of these "segfault on close" issues.

Matthias


More information about the Qgis-developer mailing list