Subject: pkgsrc openldap panics MP-system?
To: None <port-alpha@netbsd.org>
From: Jarle Greipsland <jarle@uninett.no>
List: port-alpha
Date: 01/07/2004 11:09:05
Hi all,

the other day, I tried to build openldap on my CS20 (a dual
processor system).  The system panicked during the openldap
configuration stage.  Specifically, it seems like it trips over a
test involving select and pthreads (see console log below).  It
is repeatable.  Has anyone else seen this?  On a MP alpha system?

The kernel running on this system is a stripped down version of
the ALPHA configuration file, but with the MULTIPROCESSOR option
added in.  The -current sources are from 2004-01-06.

					-jarle
# cd /usr/pkgsrc/databases/openldap
# make build
===> Checking for vulnerabilities in openldap-2.1.22nb3
awk: cmd. line:1: warning: escape sequence `\.' treated as plain `.'
=> Checksum OK for openldap-2.1.22.tgz.
===> Extracting for openldap-2.1.22nb3
===> Required installed package db4>=4.2.52: db4-4.2.52 found
===> Required installed package libtool-base>=1.4.20010614nb11: libtool-base-1.4.20010614nb16 found
==========================================================================
The following variables will affect the build process of this package,
openldap-2.1.22nb3.  Their current value is shown below:

        * SSLBASE = /usr
        * SSLCERTS = /etc/openssl/certs
        * USE_SASL (not defined)
        * USE_SASL2 (not defined)

You may want to abort the process now with CTRL+C and change their value
before continuing.  Be sure to run `make clean' after the changes.
==========================================================================
===> Patching for openldap-2.1.22nb3
===> Applying pkgsrc patches for openldap-2.1.22nb3
===> Overriding tools for openldap-2.1.22nb3
===> Buildlinking for openldap-2.1.22nb3
===> Configuring for openldap-2.1.22nb3
Copyright 1998-2003 The OpenLDAP Foundation,  All Rights Reserved.
        Restrictions apply, see COPYRIGHT and LICENSE files.
Configuring OpenLDAP 2.1.22-Release ...
checking host system type... alpha--netbsd
checking target system type... alpha--netbsd
checking build system type... alpha--netbsd
checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking for mawk... /usr/bin/awk
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... missing
checking for gnutar... no
checking for gtar... no
checking for tar... tar
checking configure arguments... done
checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
checking for ar... ar
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for EMX OS/2 environment... no
checking how to run the C preprocessor... cc -E
checking for gcc... cc
checking whether the C compiler (cc -O2 -mieee -I/usr/pkg/include  -I/usr/pkg/include/db4  -I/usr/pkg/include  -L/usr/pkg/lib -Wl,-R/usr/pkg/lib) works... yes
checking whether the C compiler (cc -O2 -mieee -I/usr/pkg/include  -I/usr/pkg/include/db4  -I/usr/pkg/include  -L/usr/pkg/lib -Wl,-R/usr/pkg/lib) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether cc accepts -g... yes
checking for ld used by GCC... ld
checking if the linker (ld) is GNU ld... yes
checking for ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking for a sed that does not truncate output... /usr/bin/sed
checking whether ln -s works... yes
checking how to recognise dependent libraries... match_pattern /lib[^/\.]+\.so$
checking for object suffix... o
checking for executable suffix... no
checking command to parse /usr/bin/nm -B output... ok
checking for dlfcn.h... yes
checking for ranlib... ranlib
checking for strip... strip
checking for objdir... .libs
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.lo... yes
checking if cc supports -fno-rtti -fno-exceptions... yes
checking whether the linker (ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... NetBSD ld.elf_so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether -lc should be explicitly linked in... yes
creating libtool
checking whether ln works... yes
checking whether ln -s works... (cached) yes
checking how to run the C preprocessor... cc -E
checking for Cygwin environment... (cached) no
checking for mingw32 environment... (cached) no
checking for executable suffix... (cached) no
checking for object suffix... (cached) o
checking for be_app in -lbe... no
checking for cc option to accept ANSI C... none needed
checking for cc depend flag... -M
checking for afopen in -ls... no
checking for EBCDIC... no
checking for ANSI C header files... yes
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking POSIX termios... yes
checking whether use of TIOCGWINSZ requires sys/ioctl.h... no
checking for arpa/inet.h... yes
checking for arpa/nameser.h... yes
checking for assert.h... yes
checking for conio.h... no
checking for crypt.h... no
checking for direct.h... no
checking for errno.h... yes
checking for fcntl.h... yes
checking for filio.h... no
checking for getopt.h... yes
checking for grp.h... yes
checking for io.h... no
checking for libutil.h... no
checking for limits.h... yes
checking for locale.h... yes
checking for netinet/tcp.h... yes
checking for malloc.h... yes
checking for memory.h... yes
checking for psap.h... no
checking for pwd.h... yes
checking for process.h... no
checking for resolv.h... yes
checking for sgtty.h... yes
checking for shadow.h... no
checking for stddef.h... yes
checking for string.h... yes
checking for strings.h... yes
checking for sysexits.h... yes
checking for sys/file.h... yes
checking for sys/filio.h... yes
checking for sys/errno.h... yes
checking for sys/ioctl.h... yes
checking for sys/param.h... yes
checking for sys/resource.h... yes
checking for sys/select.h... yes
checking for sys/socket.h... yes
checking for sys/stat.h... yes
checking for sys/syslog.h... yes
checking for sys/time.h... yes
checking for sys/types.h... yes
checking for sys/ucred.h... yes
checking for sys/uio.h... yes
checking for syslog.h... yes
checking for termios.h... yes
checking for unistd.h... yes
checking for winsock.h... no
checking for winsock2.h... no
checking for dlopen... (cached) yes
checking for sigset in -lV3... no
checking for winsock... no
checking for socket... yes
checking for select... yes
checking types of arguments for select()... int,fd_set *,struct timeval *
checking for regex.h... yes
checking for library containing regfree... none required
checking for compatible POSIX regex... yes
checking for sys/uuid.h... no
checking to see if -lrpcrt4 is needed for win32 UUID support... no
checking for res_query... yes
checking for getaddrinfo... yes
checking for getnameinfo... yes
checking for gai_strerror... yes
checking for inet_ntop... yes
checking INET6_ADDRSTRLEN... yes
checking struct sockaddr_storage... yes
checking for sys/un.h... yes
checking for openssl/ssl.h... yes
checking for ssl.h... no
checking for SSLeay_add_ssl_algorithms in -lssl... no
checking for SSL_library_init in -lssl... yes
checking for _beginthread... no
checking for pthread.h... yes
checking POSIX thread version... 10
checking for LinuxThreads pthread.h... no
checking for GNU Pth pthread.h... no
checking for sched.h... yes
checking for pthread_create in default libraries... no
checking for pthread link with -kthread... no
checking for pthread link with -pthread... yes
checking for sched_yield... yes
checking for pthread_yield... no
checking for thr_yield... no
checking for pthread_kill... yes
checking for pthread_rwlock_destroy... yes
checking for pthread_detach with <pthread.h>... yes
checking for pthread_setconcurrency... no
checking for pthread_getconcurrency... no
checking for thr_setconcurrency... no
checking for thr_getconcurrency... no
checking for pthread_kill_other_threads_np... no
checking for LinuxThreads implementation... no
checking for LinuxThreads consistency... no
checking if pthread_create() works... yes
checking if select yields when using pthreads... panic: lockmgr: locking against myself
Stopped in pid 11810.2 (conftest) at    netbsd:cpu_Debugger+0x4:        ret     zero,(ra)
db{0}> show reg
v0          0x6
t0          0xfffffc00005f5d78  db_onpanic
t1          0x1
t2          0xfffffc003ff48000
t3          0
t4          0x1
t5          0xfffffc003ff48000
t6          0xd18
t7          0xfffffc0001beeac0  ddb_regp+0x159f770
s0          0x100
s1          0xfffffc00005f6d90  msgbufenabled
s2          0x400000
s3          0xfffffc00206b8408
s4          0
s5          0xfffffffffffffffe
s6          0xfffffc00005a8e9e  lkm_cdevsw+0x31e
a0          0x6
a1          0xfffffd01fc0003fd
a2          0x5
a3          0x8
a4          0x3
a5          0xfffffc0000000008
t8          0
t9          0xfffffc000056592c  cc_microtime+0x8c
t10         0x11c2139fc281e
t11         0x31a9e942
ra          0xfffffc00004931b8  panic+0x1f8
t12         0xfffffc0000574790  cpu_Debugger
at          0xfffffe001da7c000
gp          0xfffffc00005f63b0  ap_sess_list
sp          0xfffffe001da7fd38
pc          0xfffffc0000574794  cpu_Debugger+0x4
ps          0x6
ai          0x31a9e942
pv          0xfffffc0000574790  cpu_Debugger
netbsd:cpu_Debugger+0x4:        ret     zero,(ra)
db{0}> trace
cpu_Debugger() at netbsd:cpu_Debugger+0x4
panic() at netbsd:panic+0x1f8
lockmgr() at netbsd:lockmgr+0x358
prologue botch: displacement 96
frame size botch: adjust register offsets?
_kernel_proc_lock() at netbsd:_kernel_proc_lock+0x2c
_kernel_proc_lock() at netbsd:_kernel_proc_lock+0x2c
ddb_regp() at 0xfffffc0038bd4000
prologue botch: displacement 8192
prologue botch: displacement 16384
frame size botch: adjust register offsets?
prologue botch: displacement 24576
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
prologue botch: displacement 16
frame size botch: adjust register offsets?
frame size botch: adjust register offsets?
prologue botch: displacement 16
db{0}> ps
 PID           PPID     PGRP        UID S   FLAGS LWPS          COMMAND    WAIT
>11810        12650     1441          0 2  0x4402    2         conftest       *
 12650         3896     1441          0 2     0x2    1               sh    wait
 3896          3237     1441          0 2  0x4002    1               sh    wait
 3237          3770     1441          0 2  0x4002    1               sh    wait
 3770          3987     1441          0 2  0x4002    1             make    wait
 3987          1441     1441          0 2  0x4002    1               sh    wait
 1441           371     1441          0 2  0x4002    1             make    wait
 1554          2901     1554          0 2  0x4002    1             tcsh   ttyin
 2901          1034     2901       1000 2  0x4002    1             bash    wait
 1034          2385     2385       1000 2  0x4100    1            xterm  select
 2385          1486     2385       1000 2  0x4000    1              csh   pause
 1486          2315     2315       1000 2   0x100    1             sshd  select
 2315           282     2315          0 2   0x100    1             sshd   netio
 371              1      371          0 2  0x4003    1              csh   pause
 370            348      348       1001 2  0x4001    1       setiathome
 348            367      348       1001 2  0x4000    1               sh    wait
 367            364      364          0 2       0    1             cron  piperd
 364              1      364          0 2       0    1             cron nanosle
 347              1      347          0 2       0    1            inetd  kqread
 310              1      310         17 2   0x100    1         sendmail   pause
 302              1      302          0 2   0x100    1         sendmail  select
 282              1      282          0 2       0    1             sshd  select
 269              1      269          0 2       0    1             ntpd   pause
 183              1      183          0 2       0    1        mount_mfs  mfsidl
 126              1      126          0 2       0    1          syslogd    poll
 9                0        0          0 2 0x20200    1         aiodoned aiodone
 8                0        0          0 2 0x20200    1          ioflush  syncer
 7                0        0          0 2 0x20200    1       pagedaemon pgdaemo
 6                0        0          0 2 0x20200    1       lfs_writer lfswrit
 5                0        0          0 2 0x20200    1        atapibus0  sccomp
 4                0        0          0 2 0x20200    1          atabus1   atath
 3                0        0          0 2 0x20200    1          atabus0   atath
 2                0        0          0 2 0x20200    1         scsibus0  sccomp
 1                0        1          0 2  0x4000    1             init    wait
 0               -1        0          0 2 0x20200    1          swapper schedul
db{0}> mach cpu 1
Using CPU 1
db{0}> show reg
v0          0x3b
t0          0x3fe
t1          0x1
t2          0x3b
t3          0x7
t4          0x405
t5          0x7ff
t6          0x1
t7          0x120b32038
s0          0x1ab778
s1          0x1207efe1c
s2          0x1207efe1c
s3          0x1207efe18
s4          0x1207efe18
s5          0xd5bbc
s6          0x68db8bad
a0          0x120142040
a1          0x1fffff708
a2          0
a3          0x100000
a4          0
a5          0x1fffff030
t8          0x3dffe
t9          0x3bffe
t10         0x3fffe
t11         0x32000
ra          0x160163c4c
t12         0x160168e00
at          0x828
gp          0x1601785e8
sp          0x1
pc          0x160163c4c
ps          0x8
ai          0x32000
pv          0x160168e00
0x160163c4c:    call_pal cflush
db{0}> trace
[BREAK]

and here it became totally unresponsive.

					-jarle