Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jan 2010 19:56:35 +0100
From:      Pieter de Goeje <pieter@degoeje.nl>
To:        "O. Hartmann" <ohartman@zedat.fu-berlin.de>
Cc:        freebsd-questions@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: ports/devel/protobuf: Segmentation fault in mmap in some applications
Message-ID:  <201001071956.35417.pieter@degoeje.nl>
In-Reply-To: <4B45A32C.2070708@zedat.fu-berlin.de>
References:  <4B448CB4.5000105@zedat.fu-berlin.de> <201001070241.18190.pieter@degoeje.nl> <4B45A32C.2070708@zedat.fu-berlin.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001071956.35417.pieter>