ports/129631: Memcached threading support broken

Artemiev Igor ai at kliksys.ru
Sun Dec 14 11:40:02 UTC 2008


>Number:         129631
>Category:       ports
>Synopsis:       Memcached threading support broken
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 14 11:40:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Artemiev Igor
>Release:        FreeBSD 7.1-PRERELEASE i386
>Organization:
KlikSYS
>Environment:
System: FreeBSD one.kliksys.ru 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #5: Tue Sep 2 22:18:33 MSD 2008 root at one.kliksys.ru:/usr/obj/usr/src.7/sys/KERNEL i386


>Description:
    Broken thread support with configure --enable-threads. After install the port "memcached -h" output didn`t show -t switch (thread number)

    With configure script patch memcached core dumped after setting thread number.

>How-To-Repeat:
    Put into /usr/ports/databases/memcached/Makefile.local:
    CONFIGURE_ARGS+= --enable-threads

    Then:

    make -C /usr/ports/databases/memcached configure
    ...
    checking for socklen_t... yes
    checking for endianness... little
    test: x: unexpected operator
    checking for mlockall... yes
    ...
    
    After fix this error:

    memcached -t8 -u root
    Segmentation fault (core dumped)


>Fix:
    configure thread support fix:

    
--- configure.orig	2008-12-11 14:32:52.000000000 +0000
+++ configure	2008-12-11 14:33:30.000000000 +0000
@@ -5637,7 +5637,7 @@
   enableval=$enable_threads;
 fi
 
-if test "x$enable_threads" == "xyes"; then
+if test "x$enable_threads" = xyes; then
   { echo "$as_me:$LINENO: checking for library containing pthread_create" >&5
 echo $ECHO_N "checking for library containing pthread_create... $ECHO_C" >&6; }
 if test "${ac_cv_search_pthread_create+set}" = set; then

    Segmentation fault fix:
    
--- thread.c.orig	2008-12-11 17:26:42.000000000 +0000
+++ thread.c	2008-12-11 17:27:18.000000000 +0000
@@ -644,6 +644,7 @@
         perror("Can't allocate thread descriptors");
         exit(1);
     }
+    memset(threads, 0, sizeof(LIBEVENT_THREAD) * nthreads);
 
     threads[0].base = main_base;
     threads[0].thread_id = pthread_self();


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list