Michael Felt wrote:
Note: tried nofiles=5000 and nofiles=10000 - no change.
I am beginning to think it could be related to this:
*Limits and Default Values*
Nah. If the limit on threads is 512 and this test is only spawning 100 threads, that's clearly not the issue. More likely it's the datasize or memorysize limit, since we allocate 8MB per thread for its stack. Change your memory limit to unlimited.
In any case, I wouldn't worry about it if you can't get this test to run; clearly the server has no issues if it got that far.
The threads library has some implementation-dependent limits and default values. These limits and default values can be retrieved by symbolic constants to enhance the portability of programs:
- The maximum number of threads per process is 512. The maximum number of threads can be retrieved at compilation time using the *PTHREAD_THREADS_MAX* symbolic constant defined in the *pthread.h* header file. If an application is compiled with the *-D_LARGE_THREADS* flag, the maximum number of threads per process is 32767.
===
Made this small change to the test:
# Perform a basic multi-threaded search on a single connection echo Perform a basic multi-threaded search on a single connection THR=100 OUTER=5 INNER=`expr $TESTLOOPS * 2` for THR in 60 62 64 65 66 67 68 69 70 80 90 100 do echo "Testing basic mt-hot search: $THR threads ($OUTER x $INNER) loops..." echo $SLAPDMTREAD -H $URI1 -D "$MANAGERDN" -w $PASSWD \ -e "$MONITORDN" \ -m $THR -L $OUTER -l $INNER $SLAPDMTREAD -H $URI1 -D "$MANAGERDN" -w $PASSWD \ -e "$MONITORDN" -f "(objectclass=*)" \ -m $THR -L $OUTER -l $INNER >> $MTREADOUT 2>&1 RC=$? if test $RC != 0 ; then echo "slapd-mtread failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi done
Got this as output:
Testing basic monitor search... Monitor searches Testing basic mt-hot search: 1 threads (1 x 50000) loops... ./progs/slapd-mtread -H ldap://localhost:9011/ -D cn=Manager,dc=example,dc=com -w secret -e cn=Monitor -m 1 -L 1 -l 50000 Testing basic mt-hot search: 5 threads (1 x 10000) loops... ./progs/slapd-mtread -H ldap://localhost:9011/ -D cn=Manager,dc=example,dc=com -w secret -e cn=Monitor -m 5 -L 1 -l 10000 Perform a basic multi-threaded search on a single connection Testing basic mt-hot search: 60 threads (5 x 100) loops... ./progs/slapd-mtread -H ldap://localhost:9011/ -D cn=Manager,dc=example,dc=com -w secret -e cn=Monitor -m 60 -L 5 -l 100 Testing basic mt-hot search: 62 threads (5 x 100) loops... ./progs/slapd-mtread -H ldap://localhost:9011/ -D cn=Manager,dc=example,dc=com -w secret -e cn=Monitor -m 62 -L 5 -l 100 Testing basic mt-hot search: 64 threads (5 x 100) loops... ./progs/slapd-mtread -H ldap://localhost:9011/ -D cn=Manager,dc=example,dc=com -w secret -e cn=Monitor -m 64 -L 5 -l 100 slapd-mtread failed (1)! root@x054:[/data/prj/openldap-2.4.35/tests]
====
slapd-mtread PID=6750246: MT Test Start: conns: 1 (ldap://localhost:9011/) slapd-mtread PID=6750246: Threads: RO: 64 RW: 0 slapd-mtread PID=6750246: RO thread 0 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 1 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 2 pass=500 fail=0
...
slapd-mtread PID=6750246: RO thread 59 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 60 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 61 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 62 pass=500 fail=0 slapd-mtread PID=6750246: RO thread 63 pass=0 fail=0 slapd-mtread PID=6750246: FAIL RO thread 63 slapd-mtread PID=6750246: MT Test complete
===
Back to original test, mtread.out tail is:
slapd-mtread PID=5242956: RO thread 60 pass=500 fail=0 slapd-mtread PID=5242956: RO thread 61 pass=500 fail=0 slapd-mtread PID=5242956: RO thread 62 pass=500 fail=0 slapd-mtread PID=5242956: RO thread 63 pass=0 fail=0 slapd-mtread PID=5242956: FAIL RO thread 63 slapd-mtread PID=5242956: RO thread 64 pass=0 fail=0 slapd-mtread PID=5242956: FAIL RO thread 64 slapd-mtread PID=5242956: RO thread 65 pass=0 fail=0 ....
slapd-mtread PID=5242956: FAIL RO thread 97 slapd-mtread PID=5242956: RO thread 98 pass=0 fail=0 slapd-mtread PID=5242956: FAIL RO thread 98 slapd-mtread PID=5242956: RO thread 99 pass=0 fail=0 slapd-mtread PID=5242956: FAIL RO thread 99 slapd-mtread PID=5242956: MT Test complete
===
Shall test after new build with CFLAGS=-D_LARGE_THREADS
On Sun, Jul 28, 2013 at 1:19 PM, Howard Chu <hyc@symas.com mailto:hyc@symas.com> wrote:
Michael Felt wrote: The log file did not show any errors. If there's no server side errors then I suppose it's a problem in mtread. Check the testrun/mtread.out file. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/__project/ <http://www.openldap.org/project/>