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