ports/devel/protobuf: Segmentation fault in mmap in some applications

O. Hartmann ohartman at mail.zedat.fu-berlin.de
Sat Jan 9 22:06:51 UTC 2010


On 01/07/10 19:56, Pieter de Goeje wrote:
> On Thursday 07 January 2010 10:02:36 O. Hartmann wrote:
>> On 01/07/10 01:41, Pieter de Goeje wrote:
>>> On Wednesday 06 January 2010 14:14:28 O. Hartmann wrote:
>>>> Dear Sirs,
>>>> We use a software package for scientific imagery processing from USGS,
>>>> ISIS3 (http://isis.astrogeology.usgs.gov/). The most recent version is
>>>> 3.1.21 and since this version, the software intensively uses
>>>> libprotobuf.so.
>>>>
>>>> While we can use ISIS 3.1.20 very well under FreeBSD 8.0/amd64, it is
>>>> impossible to use the software with version no. 3.1.21, which seems to
>>>> have some issues wih libprotobuf.so. Every client out of this ISIS3
>>>> package crashes with a segmentation fault and as far as I can judge the
>>>> situation, there is a problem with libprotobuf.so, against which all
>>>> clients out of ISIS 3.1.21 are linked.
>>>
>>> Perhaps the ISIS package was developed using a different (older?) version
>>> of Google's protocol buffers. Compiling protobuf from source is quite
>>> easy on FreeBSD. You can find the source here:
>>> http://code.google.com/p/protobuf/downloads/list
>>> I would start by trying version 2.1.0 and 2.2.0a.
>>>
>>>> I searched for help on the ISIS3-support forum and realised that some
>>>> Apple OS X guys have had similar problems, but those threads where
>>>> closed immediately or got relative senseless response.
>>>>
>>>> In our case, we compile every necessary library and prerequisite
>>>> software package (mostly Qt4 libs) from ports. This works great with
>>>> some tweaks for FreeBSD in make/config.freebsd (which I derived from
>>>> some linux and/or OS X config files).
>>>>
>>>> Now I'm floating like a dead man i the water. Below I provide q gdb
>>>> output of the qview-client (the same is with all other clients, like
>>>> photrim etc. for those familiar with the software package).
>>>
>>> A backtrace ('bt' at the gdb prompt) might contain more useful
>>> information.
>>>
>>>> Additionaly, I provide a truss-output, that stops at mmap issues.
>>>>
>>>> Well, if someone could provide me with some advance debugging hints I
>>>> would appreaciate them. I'm pretty sure he problem is located within the
>>>> libprotobuf library or the way it is treated, but this is a guess of a
>>>> non-developer.
>>>>
>>>> Thanks very much in advance.
>>>> Please reply also to this email address, since I'm not subscriber of the
>>>> list I post to.
>>>>
>>>> Oliver
>>>
>>> - Pieter
>>
>> Hello Pieter,
>>
>> ISIS3 utilises the very same revision of libprotobuf as FreeBSD has in
>> the ports repositorium (libprotobuf.so.4.0.0, aka protobuf-2.2.0). The
>> backtrace follows, it is a little bit lengthy ...
>
> Ok, I can reproduce this locally. The cause is incorrect compiler flags.
> Basically one must use `pkg-config --cflags protobuf` to get the correct
> CFLAGS and `pkg-config --libs protobuf` for the correct libraries.
>
> Most likely one or both of the following were missing during the
> compilation/linking of ISIS: -D_THREAD_SAFE -pthread
>
> Regards,
>
> Pieter

You're right. Thank you very much. After applying the output of 
pkg-config --libs protobuf to the proper make file, everythng went as 
expected!

Regards and thanks,

Oliver


More information about the freebsd-questions mailing list