LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 05-24-2017, 09:20 PM   #1
OstermanA
Member
 
Registered: Dec 2006
Location: Seattle, WA
Distribution: CentOS 8
Posts: 99

Rep: Reputation: 20
curl-7.54.0 fails test 1901


Code:
[operator@localhost tests]$ ./runtests.pl 1901
********* System characteristics ********
* curl 7.54.0 (x86_64-pc-linux-gnu)
* libcurl/7.54.0 OpenSSL/1.0.2k zlib/1.2.11
* Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy
* Host: localhost.localdomain
* System: Linux localhost.localdomain 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
* Servers: HTTP-IPv6 HTTP-unix FTP-IPv6
* Env:
*****************************************
test 1901...[HTTP GET using pipelining, blacklisted site]

 1901: data FAILED:
--- log/check-expected  2017-05-24 22:17:18.794000000 -0400
+++ log/check-generated 2017-05-24 22:17:18.794000000 -0400
@@ -9,6 +9,6 @@
 Handle 2 Completed with status 0[LF]
 Handle 3 Completed with status 0[LF]
 Handle 4 Completed with status 0[LF]
-Handle 1 Completed with status 0[LF]
 Handle 5 Completed with status 0[LF]
+Handle 1 Completed with status 0[LF]
 Handle 6 Completed with status 0[LF]

 - abort tests
TESTDONE: 0 tests out of 1 reported OK: 0%
TESTFAIL: These test cases failed: 1901
TESTDONE: 1 tests were considered during 7 seconds.
[operator@localhost tests]$ tail -n3 log/check-expected
Handle 1 Completed with status 0[LF]
Handle 5 Completed with status 0[LF]
Handle 6 Completed with status 0[LF]
[operator@localhost tests]$ tail -n3 log/check-generated
Handle 5 Completed with status 0[LF]
Handle 1 Completed with status 0[LF]
Handle 6 Completed with status 0[LF]
So, it looks to me like the test passes fine, but not in the order it's expecting. The switch in Handles 1 and 5 appears to cause the whole thing to kick out as failed.

If it were just for me, this wouldn't be a problem. This is the only "failed" test, so I'm not worried about the binaries. However, I'm writing a "process" for non-Linux folk, so I would really prefer if it didn't fail at all.

Anyone know why this order is being switched, and anything easy I can do to fix it?

Edit: Trying the obvious thing, I disabled the threaded resolver and it now passes the test. So that's a thing. Does this mean the test itself is flawed and I should complain to the libcurl folks?

Last edited by OstermanA; 05-24-2017 at 09:31 PM.
 
Old 05-24-2017, 10:56 PM   #2
norobro
Member
 
Registered: Feb 2006
Distribution: Debian Sid
Posts: 792

Rep: Reputation: 331Reputation: 331Reputation: 331Reputation: 331
I can't help but the test ran okay on my machine. Does running the test with verbose output give you any clues?
Code:
$ ./runtests.pl -v 1901
CMD (256): valgrind >/dev/null 2>&1
CMD (0): valgrind --help 2>&1 | grep -- --tool > /dev/null 2>&1
CMD (0): ../src/curl --version 1>log/curlverout.log 2>log/curlvererr.log
********* System characteristics ******** 
* curl 7.54.0 (x86_64-pc-linux-gnu) 
* libcurl/7.54.0 OpenSSL/1.0.2k zlib/1.2.8
* Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy 
* Host: debian
* System: Linux debian 4.9.0-3-amd64 #1 SMP Debian 4.9.25-1 (2017-05-02) x86_64 GNU/Linux
* Servers: HTTP-IPv6 HTTP-unix FTP-IPv6 
* Env: Valgrind 
* Ports:
*   HTTP/8990 FTP/8992 FTP2/8995 RTSP/9007 
*   TFTP/8997 HTTP-IPv6/8994 RTSP-IPv6/9008 FTP-IPv6/8996 
*   GOPHER/9009 GOPHER-IPv6/9010
*   SSH/8999 SOCKS/9000 POP3/9001 IMAP/9003 SMTP/9005
*   POP3-IPv6/9002 IMAP-IPv6/9004 SMTP-IPv6/9006
*   HTTP-PIPE/9014 
* Unix socket paths:
*   HTTP-Unix:http.sock
***************************************** 
startnew: python ./http_pipe.py --pidfile ".http3_server.pid" --logfile "log/http3_server.log" --id 3 --ipv4 --port 9014 --srcdir "."
RUN: ../src/curl --max-time 13 --output log/http3_verify.out --silent --verbose --globoff "http://127.0.0.1:9014/verifiedserver" 2>log/http3_verify.log
CMD (0): ../src/curl --max-time 13 --output log/http3_verify.out --silent --verbose --globoff "http://127.0.0.1:9014/verifiedserver" 2>log/http3_verify.log
RUN: HTTP3 server is now running PID 32338
* pid http-pipe => 32338 32338
test 1901...[HTTP GET using pipelining, blacklisted site]
../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=./valgrind.supp --num-callers=16 --log-file=log/valgrind1901 ./libtest/lib1900 http://127.0.0.1:9014/ >log/stdout1901 2>log/stderr1901
CMD (0): ../libtool --mode=execute /usr/bin/valgrind --tool=memcheck --quiet --leak-check=yes --suppressions=./valgrind.supp --num-callers=16 --log-file=log/valgrind1901 ./libtest/lib1900 http://127.0.0.1:9014/ >log/stdout1901 2>log/stderr1901
--d---e-v- OK (1   out of 1  , remaining: 00:00)
* kill pid for http-pipe => 32338
RUN: Process with pid 32338 signalled to die
RUN: Process with pid 32338 forced to die with SIGKILL
TESTDONE: 1 tests out of 1 reported OK: 100%
TESTDONE: 1 tests were considered during 7 seconds.
 
Old 05-24-2017, 11:50 PM   #3
OstermanA
Member
 
Registered: Dec 2006
Location: Seattle, WA
Distribution: CentOS 8
Posts: 99

Original Poster
Rep: Reputation: 20
I seem to be having problem reproducing it. Which is odd, as I did it dozens of times earlier. Give me a few minutes...

UPDATE:
OK, so this is truly bizarre:
Code:
[operator@localhost tests]$ for i in {1..10}; do printf "%03d: " $i; ./runtests.pl -v 1901 &>/dev/null && echo SUCCESS || echo FAILURE; done
001: FAILURE
002: SUCCESS
003: SUCCESS
004: SUCCESS
005: FAILURE
006: SUCCESS
007: SUCCESS
008: SUCCESS
009: FAILURE
010: SUCCESS
Looks like the threaded resolver was totally a red herring, the test is just flapping.
I don't have Valgrind working, never figured out how to set it up, so I can't give you a detailed thread. Verbose mode doesn't actually give a lot of extra information, but here's what I get:
Code:
[operator@localhost tests]$ ./runtests.pl -v 1901
CMD (0): ../src/curl --version 1>log/curlverout.log 2>log/curlvererr.log
********* System characteristics ********
* curl 7.54.0 (x86_64-pc-linux-gnu)
* libcurl/7.54.0 OpenSSL/1.0.2k zlib/1.2.11
* Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy
* Host: localhost.localdomain
* System: Linux localhost.localdomain 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
* Servers: HTTP-IPv6 HTTP-unix FTP-IPv6
* Env:
* Ports:
*   HTTP/8990 FTP/8992 FTP2/8995 RTSP/9007
*   TFTP/8997 HTTP-IPv6/8994 RTSP-IPv6/9008 FTP-IPv6/8996
*   GOPHER/9009 GOPHER-IPv6/9010
*   SSH/8999 SOCKS/9000 POP3/9001 IMAP/9003 SMTP/9005
*   POP3-IPv6/9002 IMAP-IPv6/9004 SMTP-IPv6/9006
*   HTTP-PIPE/9014
* Unix socket paths:
*   HTTP-Unix:http.sock
*****************************************
startnew: python ./http_pipe.py --pidfile ".http3_server.pid" --logfile "log/http3_server.log" --id 3 --ipv4 --port 9014 --srcdir "."
RUN: ../src/curl --max-time 13 --output log/http3_verify.out --silent --verbose --globoff "http://127.0.0.1:9014/verifiedserver" 2>log/http3_verify.log
CMD (0): ../src/curl --max-time 13 --output log/http3_verify.out --silent --verbose --globoff "http://127.0.0.1:9014/verifiedserver" 2>log/http3_verify.log
RUN: HTTP3 server is now running PID 2320
* pid http-pipe => 2320 2320
test 1901...[HTTP GET using pipelining, blacklisted site]
./libtest/lib1900 http://127.0.0.1:9014/ >log/stdout1901 2>log/stderr1901
CMD (0): ./libtest/lib1900 http://127.0.0.1:9014/ >log/stdout1901 2>log/stderr1901

 1901: data FAILED:
--- log/check-expected  2017-05-25 00:59:02.685000000 -0400
+++ log/check-generated 2017-05-25 00:59:02.685000000 -0400
@@ -9,6 +9,6 @@
 Handle 2 Completed with status 0[LF]
 Handle 3 Completed with status 0[LF]
 Handle 4 Completed with status 0[LF]
-Handle 1 Completed with status 0[LF]
 Handle 5 Completed with status 0[LF]
+Handle 1 Completed with status 0[LF]
 Handle 6 Completed with status 0[LF]

 - abort tests
* kill pid for http-pipe => 2320
RUN: Process with pid 2320 signalled to die
RUN: Process with pid 2320 forced to die with SIGKILL
TESTDONE: 0 tests out of 1 reported OK: 0%
TESTFAIL: These test cases failed: 1901
TESTDONE: 1 tests were considered during 7 seconds.

Last edited by OstermanA; 05-25-2017 at 12:06 AM.
 
Old 05-25-2017, 09:46 AM   #4
norobro
Member
 
Registered: Feb 2006
Distribution: Debian Sid
Posts: 792

Rep: Reputation: 331Reputation: 331Reputation: 331Reputation: 331
I ran the test with valgrind disabled and it still passed.
Code:
$ ./runtests.pl -n 1901
********* System characteristics ******** 
* curl 7.54.0 (x86_64-pc-linux-gnu) 
* libcurl/7.54.0 OpenSSL/1.0.2k zlib/1.2.8
* Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy 
* Host: debian
* System: Linux debian 4.9.0-3-amd64 #1 SMP Debian 4.9.25-1 (2017-05-02) x86_64 GNU/Linux
* Servers: HTTP-IPv6 HTTP-unix FTP-IPv6 
* Env: 
***************************************** 
test 1901...[HTTP GET using pipelining, blacklisted site]
--d---e--- OK (1   out of 1  , remaining: 00:00)
TESTDONE: 1 tests out of 1 reported OK: 100%
TESTDONE: 1 tests were considered during 6 seconds.
A couple of thoughts:
  • could your data file (tests/data/test1901) be corrupt?
  • how about disabling that test (tests/data/DISABLED) for your non-Linux folk.
 
Old 05-26-2017, 02:02 PM   #5
OstermanA
Member
 
Registered: Dec 2006
Location: Seattle, WA
Distribution: CentOS 8
Posts: 99

Original Poster
Rep: Reputation: 20
I have no idea what happened. Every time I ran through my compile script it would delete and re-extract the source directories, so there shouldn't have been any contamination between builds. And yet, I'm suddenly unable to reproduce the issue at all.

I'm just going to mark this issue "resolved" and move on with my life.
 
Old 05-26-2017, 07:11 PM   #6
OstermanA
Member
 
Registered: Dec 2006
Location: Seattle, WA
Distribution: CentOS 8
Posts: 99

Original Poster
Rep: Reputation: 20
Final Update:
So, I left this command running while I went to work:
Code:
[operator@localhost tests]$ s=0; f=0; \
for i in {1..1000}; \
do printf "%03d: " $i; \
if ./runtests.pl 1901 &>/dev/null; then \
echo "SUCCESS ($((++s))/$i)"; \
else echo "FAILURE ($s/$i)"; \
((++f)); \
fi; \
done; \
echo "SUCCESS: $s"; \
echo "FAILURE: $f"; \
printf 'Rate: %.2f%%\n' $(bc <<< "scale=2; 100.0 * $s / ($s + $f)")
It had these final results:
Code:
SUCCESS: 927
FAILURE: 73
Rate: 92.70%
So, I have no idea. If anyone else wants to play with this, shrugs

Last edited by OstermanA; 05-26-2017 at 11:19 PM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] timestamp in files to 1901? xeon123 Linux - Newbie 3 11-03-2012 07:00 PM
[SOLVED] cURL fails to download (HTTP server doesn't seem to support byte range) lpallard Slackware 6 08-11-2012 05:10 PM
curl make test failures sneakyimp Linux - Software 2 02-18-2011 06:00 PM
M3N-HT Deluxe onboard sound w/ 1901 BIOS R00T.OSIRIS Linux - Hardware 1 03-05-2009 11:14 PM
urpmi.update fails on curl dukeinlondon Mandriva 2 01-03-2004 06:23 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 02:10 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration