[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#7642) make test for AIX fails on test060-mt-hot



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/>
>
>


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/