Univention Bugzilla – Bug 23226
posixmutexes Patch für db4.7 aus UCS 2.4 sollte auch für db4.8 angewendet werden
Last modified: 2011-12-13 15:47:00 CET
Der Patch für db4.7 aus UCS 2.4, der configure mit --enable-posixmutexes aufruft sollte auch für db4.8 angewendet werden. +++ This bug was initially created as a clone of Bug #23224 +++ svn/patches/db/2.4-0-0-ucs/4.7.25-6-ucs2.4-2/01_posix_mutexes.patch muss noch nach svn/patches/db4.7/3.0-0-0-ucs/4.7.25-9/ übernommen werden.
Ich habe das im Rahmen der Patchübernahme (Bug 22103) geprüft: Die Performanceprobleme mit BDB sind spezifisch für amd64, siehe diese Mail von Howard Chu: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=421946#70 Mit dem in 2.4 angewendeten Patch übergeben wir zusätzlich folgende Optionen an das BDB configure-Skript: "--enable-posixmutexes --with-mutex=POSIX/pthreads" --enable-posixmutexes ist nicht nötig sein, es wird unter Linux automatisch durch das configure-Skript erkannt. Das betrifft nur Nischen-Ports / BSDs u.ä. Hier der Ausschnitt aus der Entwickler-Doku: http://sewm.pku.edu.cn/src/paradise/thirdparty/installed/docs/ref/build_unix/conf.html <start> --enable-posixmutexes To force Berkeley DB to use the POSIX pthread mutex interfaces for underlying mutex support, enter --enable-posixmutexes as an argument to configure. This is rarely necessary: POSIX mutexes will be selected automatically on systems where they are the preferred implementation. <end> Über die "--with-mutex"-Option kann eine alternative Mutex-Implementierung gewählt werden: Im Debian-Paket wird seit Revision 4.8.24-1 (und somit auch im Squeeze-Paket) folgendes übergeben: ifeq (zx86_64-linux-gnuz,z$(DEB_HOST_GNU_TYPE)z) CONFIGURE_SWITCHES += --with-mutex=POSIX/pthreads/library endif D.h. "POSIX/pthreads/library" statt "POSIX/pthreads". Die beiden verschiedenen an --with-mutex übergebenen Argumente sind aber identisch. Diese werden unter db4.8-4.8.30/dist/aclocal/mutex.m4 definiert, hier der relevante Ausschnitt: if test "$db_cv_mutex" = no -o "$db_cv_mutex" = posix_only; then LIBS="$LIBS -lpthread" AM_PTHREADS_SHARED(POSIX/pthreads/library) LIBS="$orig_libs" fi if test "$db_cv_mutex" = no -o "$db_cv_mutex" = posix_only; then AM_PTHREADS_SHARED(POSIX/pthreads) fi Die Squeeze-Version von db4.8 muss diesen Patch folglich nicht übernehmen.
(In reply to comment #1) > Die Squeeze-Version von db4.8 muss diesen Patch folglich nicht übernehmen. Im Build-Log ist zu sehen, dass der Parameter gesetzt ist: checking if --with-mutex=MUTEX option specified... POSIX/pthreads/library
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"