[pkg-firebird-general] Bug#565801: firebird2.5: FTBFS on kfreebsd-*

Damyan Ivanov dmn at debian.org
Tue Jan 19 11:00:36 UTC 2010


Hi Petr,

-=| Petr Salinger, Tue, Jan 19, 2010 at 12:55:27PM +0100 |=-
> The current GNU/kFreeBSD does not support process-shared pthread 
> mutexes. It also does not support process-shared semaphores.
>
> Is the inter-process sharing really necessary ?
> The calls inside are in a form of sem_init(sem, 0, 0), i.e. only thread-shared.

Thank you for your time looking into this.

Just to give you a raugh idea, Firebird comes in three flavours.

 "superserver" - a multi-threaded daemon handling many connections, 
 but being able to use only one CPU (long story). this one seems to 
 need only thread synchronization.

 "classicserver" - a new process is started (via inetd) for each 
 connection and these processes shall be able to communicate. I am not 
 sure about the mechanisms of this communication, but it may well be 
 shared memory and signals. Or semaphores.

 "superclassic" - a mix of the above, but closer to "classic"

Firebird IPC is black magic. I am not sure if process-shared 
semaphores are really needed. "superserver" seems to not need them at 
all (at least on theory). And still it fails to build.

The place it fails is interesting, though. The checkMutex function 
(src/jrd/trace/TraceConfigStorage.cpp line 147)[1] is what bails out.  
It is called from various places, but the one matching the error 
message is at line 182, in function initShMem. The argument that is 
the error code is the result of calling ISC_mutex_init, which is 
defined in src/jrd/isc_sync.cpp, in two flavours depending on the 
USE_SYS5SEMAPHORE define (another flavour is for windows).

 [1] http://git.debian.org/?p=pkg-firebird/2.5.git;a=tree
     (line numbers may differ because some patches are applied)

I guessed that USE_SYS5SEMAPHORE is not defined, as it is currently 
linked to the DARWIN define. This is why I thought that defining 
USE_SYS5SEMAPHORE should help. Are you suggesting that it won't?

BTW, the SYSV variant (line 2749) would only return 0 or FB_FAILURE 
(1) and not 78 (which is visible in the build log), so there must be 
the other, non-SYSV implementation that fails (line 2886).

That one seems to use posix threads functions all over the place and 
I have no idea which exactly may be failing. I will ask the porter box 
admins to install the build-dependencies (+gdb) so that I can try 
tracing the failure and see which exact function fails.

Other clues are welcome, of course.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-firebird-general/attachments/20100119/aef8ab2b/attachment.pgp>


More information about the pkg-firebird-general mailing list