cURL / Mailing Lists / curl-library / Single Mail

curl-library

test suite errors of 7.15.2 on debian

From: Domenico Andreoli <cavok_at_tiscali.it>
Date: Wed, 1 Mar 2006 16:11:33 +0100

hi,

  in building the curl package for debian i encountered some errors
running the test suite:

| ...
| test 252...OK (247 out of 301, remaining: 00:18)
| test 253...sh: line 1: 16870 Segmentation fault (core dumped) ../src/curl --output log/curl253.out --include -v --trace-time -g "ftp://[::1]:8996/" -P - >>log/stdout253 2>>log/stderr253
| core dumped!
| FAILED
| test 254...OK (249 out of 301, remaining: 00:17)
| test 255...sh: line 1: 16902 Segmentation fault (core dumped) ../src/curl --output log/curl255.out --include -v --trace-time -g "ftp://[::1]:8996/" -P - --disable-eprt >>log/stdout255 2>>log/stderr255
| core dumped!
| FAILED
| test 256...OK (251 out of 301, remaining: 00:17)
| ...

but running runtests.pl -g gives me the following error:

| ...
| test 253...[FTP IPv6 dir list with EPRT]
| GNU gdb 6.4-debian
| Copyright 2005 Free Software Foundation, Inc.
| GDB is free software, covered by the GNU General Public License, and you are
| welcome to change it and/or distribute copies of it under certain conditions.
| Type "show copying" to see the conditions.
| There is absolutely no warranty for GDB. Type "show warranty" for details.
| This GDB was configured as "i486-linux-gnu"..."/home/cavok/devel/debian/curl/curl/debian/build/src/curl": not in executable format: File format not recognized
|
| Argument list to give program being debugged when it is started is "--output log/curl253.out --include -v --trace-time -g "ftp://[::1]:8996/" -P -".
| (gdb)
| ...

this is because of the shell script libtool uses to link-on-the-fly
the binary while it is still not fully installed.

applying the following patch to tests/runtests.pl fixes the invocation of gdb:

| --- tests/runtests.pl.orig
| +++ tests/runtests.pl
| @@ -1413,10 +1413,10 @@
| # run the command line we built
| if ($torture) {
| return torture($CMDLINE,
| - "gdb --directory libtest $DBGCURL -x log/gdbcmd");
| + "libtool --mode=execute gdb --directory libtest $DBGCURL -x log/gdbcmd");
| }
| elsif($gdbthis) {
| - system("gdb --directory libtest $DBGCURL -x log/gdbcmd");
| + system("libtool --mode=execute gdb --directory libtest $DBGCURL -x log/gdbcmd");
| $cmdres=0; # makes it always continue after a debugged run
| }
| else {
| @@ -1445,7 +1445,7 @@
| open(GDBCMD, ">log/gdbcmd2");
| print GDBCMD "bt\n";
| close(GDBCMD);
| - system("gdb --directory libtest -x log/gdbcmd2 -batch $DBGCURL core ");
| + system("libtool --mode=execute --directory libtest -x log/gdbcmd2 -batch $DBGCURL core ");
| # unlink("log/gdbcmd2");
| }
| }

i'm not sure i've found every use of gdb, please double-check.

ah.. here are the stack traces of test 253:

| ...
| (gdb) r
| Starting program: /home/cavok/devel/debian/curl/curl/debian/build/src/.libs/lt-curl --output log/curl253.out --include -v --trace-time -g "ftp://[::1]:8996/" -P -
| 16:07:14.247392 * About to connect() to ::1 port 8996
| 16:07:14.247672 * Trying ::1... connected
| 16:07:14.247943 * Connected to ::1 (::1) port 8996
| 16:07:14.249916 < 220- _ _ ____ _
| 16:07:14.251349 < 220- ___| | | | _ \| |
| 16:07:14.252118 < 220- / __| | | | |_) | |
| 16:07:14.253737 < 220- | (__| |_| | _ <| |___
| 16:07:14.253833 < 220 \___|\___/|_| \_\_____|
| 16:07:14.253960 > USER anonymous
| 16:07:14.256027 < 331 We are happy you popped in!
| 16:07:14.256151 > PASS curl_by_daniel_at_haxx.se
| 16:07:14.257752 < 230 Welcome you silly person
| 16:07:14.257876 > PWD
| 16:07:14.259489 < 257 "/nowhere/anywhere" is current directory
| 16:07:14.259594 * Entry path is '/nowhere/anywhere'
| 16:07:14.259898 > EPRT |2|::1|44631|
| 16:07:14.261306 < 200 Thanks for dropping by. We contact you later
| 16:07:14.261419 * Connect data stream actively
| 16:07:14.261529 > TYPE A
| 16:07:14.268054 < 200 I modify TYPE as you wanted
| 16:07:14.268157 > LIST
| 16:07:14.269647 < 150 here comes a directory
| 16:07:14.269799 * Connection accepted from server
|
| Program received signal SIGSEGV, Segmentation fault.
| 0xb7e90fa4 in Curl_Transfer_at_plt () from /home/cavok/devel/debian/curl/curl/debian/build/lib/.libs/libcurl.so.3
| (gdb)
| ...

... and 255:

| ...
| (gdb) r
| Starting program: /home/cavok/devel/debian/curl/curl/debian/build/src/.libs/lt-curl --output log/curl255.out --include -v --trace-time -g "ftp://[::1]:8996/" -P - --disable-eprt
| 16:07:59.520705 * About to connect() to ::1 port 8996
| 16:07:59.520978 * Trying ::1... connected
| 16:07:59.521243 * Connected to ::1 (::1) port 8996
| 16:07:59.523218 < 220- _ _ ____ _
| 16:07:59.524697 < 220- ___| | | | _ \| |
| 16:07:59.525686 < 220- / __| | | | |_) | |
| 16:07:59.526500 < 220- | (__| |_| | _ <| |___
| 16:07:59.527299 < 220 \___|\___/|_| \_\_____|
| 16:07:59.527459 > USER anonymous
| 16:07:59.529872 < 331 We are happy you popped in!
| 16:07:59.529999 > PASS curl_by_daniel_at_haxx.se
| 16:07:59.531572 < 230 Welcome you silly person
| 16:07:59.531703 > PWD
| 16:07:59.532973 < 257 "/nowhere/anywhere" is current directory
| 16:07:59.533075 * Entry path is '/nowhere/anywhere'
| 16:07:59.533367 > EPRT |2|::1|44013|
| 16:07:59.536084 < 200 Thanks for dropping by. We contact you later
| 16:07:59.536198 * Connect data stream actively
| 16:07:59.536324 > TYPE A
| 16:07:59.541512 < 200 I modify TYPE as you wanted
| 16:07:59.541644 > LIST
| 16:07:59.542892 < 150 here comes a directory
| 16:07:59.543062 * Connection accepted from server
|
| Program received signal SIGSEGV, Segmentation fault.
| 0xb7dd7fa4 in Curl_Transfer_at_plt () from /home/cavok/devel/debian/curl/curl/debian/build/lib/.libs/libcurl.so.3
| (gdb)
| ...

please let me know if i can be of help doing some more tests.

cheers
domenico

-----[ Domenico Andreoli, aka cavok
 --[ http://people.debian.org/~cavok/gpgkey.asc
   ---[ 3A0F 2F80 F79C 678A 8936 4FEE 0677 9033 A20E BC50
Received on 2006-03-01