cURL / Mailing Lists / curl-users / Single Mail

curl-users

Re: curl-7.36.0 TESTFAIL: These test cases failed: 815 816 1513

From: Dan Fandrich <dan_at_coneharvesters.com>
Date: Sun, 30 Mar 2014 10:58:08 +0200

On Sat, Mar 29, 2014 at 08:19:02PM -0400, dev wrote:
> On March 29, 2014 at 5:51 AM Dan Fandrich <dan_at_coneharvesters.com>
> > 815 and 816 were fixed in git in f82e0edc.
>
> I think what you are saying is that those tests fail in the release
> version. However I can get the un-released dev version from the
> git tree. I'll have to think about that.

Correct, I was acknowledging that it was a known issue. The daily builds up
to the Mar. 29 one have nothing but bug fixes since the release version,
so those would be good to take.

> > I'm not aware of any issue with
> > test 1513, and our Solaris 10 autobuilds don't show any problems with
> > that test: http://curl.haxx.se/dev/builds.html
>
> I don't see Solaris on that page anywhere.

Someone is doing autobuilds on Solaris SPARC, e.g.
http://curl.haxx.se/dev/log.cgi?id=20140329134252-32382

> I'll see if there is an easy way to pull a tarball and then run the
> autobuild process. Seems as if there is a daily tarball with the
> url and file name format thus :
>
> http://curl.haxx.se/snapshots/curl-7.37.0-20140329.tar.gz
>
> I should set up a nightly process to get the tarball from the
> previous day and run that autobuild. Not too sure if email will
> get out the door however, that looks like a network and firewall
> and who knows what else problem to solve. Lovely.

It would be great if you were to add some more autobuilds to help us find
regressions like this in the future! Note that there is also a web form you
can use to submit results instead of mailing them.

> > > TESTDONE: 931 tests were considered during 4775 seconds.
> > > gmake[1]: *** [quiet-test] Error 1
> > > gmake[1]: Leaving directory
> > > `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests'
> > > gmake: *** [test] Error 2
> > > node002$
> > >
> > > Here is the data needed :
> > >
> > > node002$ uname -a
> > > SunOS node002 5.10 Generic_150400-01 sun4v sparc SUNW,T5240
> > >
> > > >From the configure stage :
> > >
> > > $ ./configure --enable-shared --enable-static
> > > --with-libidn=/usr/local
> > > --enable-tls-srp --with-ssl --with-gnutls=/usr/local
> > > --with-ca-path=/usr/local/ssl/certs
> > > .
> > > .
> > > .
> > > configure: Configured to build curl/libcurl:
> > >
> > > curl version: 7.36.0
> > > Host setup: sparc-sun-solaris2.10
> > > Install prefix: /usr/local
> > > Compiler: /opt/solarisstudio12.3/bin/cc
> > > SSL support: enabled (OpenSSL)
> > > SSH support: enabled (libSSH2)
> > > zlib support: enabled
> > > GSS-API support: no (--with-gssapi)
> > > SPNEGO support: no (--with-spnego)
> > > TLS-SRP support: enabled
> > > resolver: default (--enable-ares /
> > > --enable-threaded-resolver)
> > > ipv6 support: enabled
> > > IDN support: enabled
> > > Build libcurl: Shared=yes, Static=yes
> > > Built-in manual: enabled
> > > --libcurl option: enabled (--disable-libcurl-option)
> > > Verbose errors: enabled (--disable-verbose)
> > > SSPI support: no (--enable-sspi)
> > > ca cert bundle: no
> > > ca cert path: /usr/local/ssl/certs
> > > LDAP support: enabled (OpenLDAP)
> > > LDAPS support: enabled
> > > RTSP support: enabled
> > > RTMP support: no (--with-librtmp)
> > > metalink support: no (--with-libmetalink)
> > > HTTP2 support: disabled (--with-nghttp2)
> > > Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS
> > > LDAP
> > > LDAPS POP3 POP3S RTSP SCP SFTP SMTP SMTPS TELNET TFTP
> > >
> > > Let me know where to look for more info on these test case failures.
> >
> > You could try running "make test TEST_Q='-d -v 1513'" and see if you
> > get any
> > more hints as to what might be going on.
>
> node002$ pwd
> /usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001
> node002$
> node002$ gmake test TEST_Q='-d -v 1513'
> gmake[1]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests'
> Making all in certs
> gmake[2]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs'
> Making all in scripts
> gmake[3]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs/scripts'
> gmake[3]: Nothing to be done for `all'.
> gmake[3]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs/scripts'
> gmake[3]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs'
> gmake[3]: Nothing to be done for `all-am'.
> gmake[3]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs'
> gmake[2]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/certs'
> Making all in data
> gmake[2]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/data'
> gmake[2]: Nothing to be done for `all'.
> gmake[2]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/data'
> Making all in server
> gmake[2]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/server'
> gmake[2]: Nothing to be done for `all'.
> gmake[2]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/server'
> Making all in libtest
> gmake[2]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/libtest'
> gmake[2]: Nothing to be done for `all'.
> gmake[2]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests/libtest'
> gmake[2]: Entering directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests'
> gmake[2]: Nothing to be done for `all-am'.
> gmake[2]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests'
> srcdir=. /usr/local/bin/perl -I. ./runtests.pl -d -v 1513
> CMD (0): ../src/curl --version 1>log/curlverout.log 2>log/curlvererr.log
> ********* System characteristics ********
> * curl 7.36.0 (sparc-sun-solaris2.10)
> * libcurl/7.36.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.26 libssh2/1.4.3
> * Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
> * Host: node002
> * System: SunOS node002 5.10 Generic_150400-01 sun4v sparc SUNW,T5240
> * Server SSL: OFF libcurl SSL: ON
> * debug build: OFF track memory: OFF
> * valgrind: OFF HTTP IPv6 ON
> * FTP IPv6 ON Libtool lib: OFF
> * Shared build: yes Resolver: stock
> * SSL library: OpenSSL
> * Ports:
> * HTTP/8990 FTP/8992 FTP2/8995 RTSP/9007
> * TFTP/8997 HTTP-IPv6/8994 RTSP-IPv6/9008 FTP-IPv6/8996
> * GOPHER/9009 GOPHER-IPv6/9009
> * SSH/8999 SOCKS/9000 POP3/9001 IMAP/9003 SMTP/9005
> * POP3-IPv6/9002 IMAP-IPv6/9004 SMTP-IPv6/9006
> * HTTPTLS/9011 HTTPTLS-IPv6/9012
> * HTTP-PIPE/9014
> *****************************************
> * starts no server
> test 1513...[return failure immediately from progress callback]
> ./libtest/lib1513 http://localhost/1513 >log/stdout1513 2>log/stderr1513
> CMD (1792): ./libtest/lib1513 http://localhost/1513 >log/stdout1513
> 2>log/stderr1513
>
> lib1513 returned 7, when expecting 42
> exit FAILED
>
> - abort tests
> TESTDONE: 0 tests out of 1 reported OK: 0%
> TESTFAIL: These test cases failed: 1513
> TESTDONE: 1 tests were considered during 0 seconds.
> gmake[1]: *** [quiet-test] Error 1
> gmake[1]: Leaving directory
> `/usr/local/build/curl-7.36.0_SunOS5.10_sparcv9.001/tests'
> gmake: *** [test] Error 2
> node002$
> node002$
>
> Not really all that helpful is it?

It's a libtest, so there's not much in the way of logging. But, this is still
helpful. 42 is CURLE_ABORTED_BY_CALLBACK, which is the point of this test.
7 is CURLE_COULDNT_CONNECT, which is what you'd get if the transfer was not
aborted and attempted to use the deliberately invalid URL in the test.

> Let me know what seems reasonable to do here and I will try to get it
> done.

It appears that for some reason the CURLOPT_PROGRESSFUNCTION callback isn't
being called (or the return code is being ignored) before the transfer is
attempted. You could try this:

1) Put a breakpoint on progressKiller() and see if it's actually called. If so,
why is the return value ignored.

2) Put a breakpoint on the call to Curl_pgrsUpdate near the end of
multi_runsingle in multi.c and see why the callback at line 376 isn't being
called.

It sounds like some kind of race condition somewhere, but it shouldn't be too
difficult to get to the root of.

>>> Dan
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-users
FAQ: http://curl.haxx.se/docs/faq.html
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-03-30