Berkeley DB Reference Guide:
Building Berkeley DB for UNIX/POSIX systems

PrevRefNext

FreeBSD

  1. I can't compile and run multithreaded applications.

    Special compile-time flags are required when compiling threaded applications on FreeBSD. If you are compiling a threaded application, you must compile with the _THREAD_SAFE and -pthread flags:

    cc -D_THREAD_SAFE -pthread ...

    The Berkeley DB library will automatically build with the correct options.


  2. I get occasional failures when running RPC-based programs under FreeBSD clients.

    There is a known bug in the XDR implementation in the FreeBSD C library from version 2.2 up to version 4.0-RELEASE, that causes certain-sized messages to fail and return a zero-filled reply to the client. A bug report (#16028) has been filed with FreeBSD. The following patch is the FreeBSD fix:

    *** /usr/src/lib/libc/xdr/xdr_rec.c.orig	Mon Jan 10 10:20:42 2000
    --- /usr/src/lib/libc/xdr/xdr_rec.c	Wed Jan 19 10:53:45 2000
    ***************
    *** 558,564 ****
      	 * but we don't have any way to be certain that they aren't
      	 * what the client actually intended to send us.
      	 */
    ! 	if ((header & (~LAST_FRAG)) == 0)
      		return(FALSE);
      	rstrm->fbtbc = header & (~LAST_FRAG);
      	return (TRUE);
    --- 558,564 ----
      	 * but we don't have any way to be certain that they aren't
      	 * what the client actually intended to send us.
      	 */
    ! 	if (header == 0)
      		return(FALSE);
      	rstrm->fbtbc = header & (~LAST_FRAG);
      	return (TRUE);
    

  3. I see fsync and close system call failures when accessing databases or log files on NFS-mounted filesystems.

    Some FreeBSD releases are known to return ENOLCK from fsync and close calls on NFS-mounted filesystems, even though the call has succeeded. The Berkeley DB code should be modified to ignore ENOLCK errors, or no Berkeley DB files should be placed on NFS-mounted filesystems on these systems.


PrevRefNext

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.