View Issue Details

IDProjectCategoryView StatusLast Update
0004844libmicrohttpdbuild systempublic2017-04-12 00:00
Reportermichelmno Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityrandom
Status closedResolutionfixed 
Platformppc64leOSopenSUSEOS VersionTumbleweed
Product Version0.9.52 
Target Version0.9.53Fixed in Version0.9.53 
Summary0004844: libmicrohttp test_upgrade_ssl random failure
Descriptionlibmicrohttp test_upgrade_ssl random failure

with reported lines:
===
[ 40s] PASS: test_upgrade
[ 43s] ../../test-driver: line 107: 6672 Aborted "$@" > $log_file 2>&1
[ 43s] FAIL: test_upgrade_ssl
===

test_upgrade_ssl.log last lines:
===
depth=0 CN = test_ca_cert
verify error:num=21:unable to verify the first certificate
verify return:1
DONE
Fatal error in GNU libmicrohttpd daemon.c:5190: MHD_stop_daemon() called while we have suspended connections.

FAIL test_upgrade_ssl (exit status: 134)
===
Steps To Reproduce* on a PowerPC ppc64le host retrieve the last libmicrohttpd version 0.9.52
available in openSUSE OBS environment.
* and try to build in loop until build failure:
===
$osc co openSUSE:Factory:PowerPC libmicrohttpd
$cd openSUSE:Factory:PowerPC/libmicrohttpd
$idx=1; while test 1; do echo "trial $idx" ; osc build || quit; ((idx++)); done
===
TagsNo tags attached.

Activities

michelmno

2016-12-20 18:12

reporter   ~0011601

oups sorry,
forget the lines I appended for Steps to Reprocude, correct ones are:

* on a PowerPC ppc64le host retrieve the last libmicrohttpd version 0.9.52
available in openSUSE OBS environment.
* and try to build in loop until build failure:
===
$osc co openSUSE:Factory:PowerPC libmicrohttpd
$cd openSUSE:Factory:PowerPC/libmicrohttpd
$idx=1; while test 1 ; do echo "=== trial: $idx"; osc build --vm-type kvm >/tmp/x 2>&1 || break; ((idx++)); done
===

michelmno

2016-12-21 16:37

reporter   ~0011602

gdb output with generated core dump confirm that dump related to
daemon.c:5190: MHD_stop_daemon() called while we have suspended connections.

So how to close this timing window ?
===
abuild@abanc:~> gdb -c /tmp/core.test_upgrade_ss.399.9866bd9ce5114a05acb80fbeff5f23d5.66982.1482327100000000 rpmbuild/BUILD/libmicrohttpd-0.9.52/src/microhttpd/.libs/test_upgrade_ssl
GNU gdb (GDB; openSUSE Tumbleweed) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "ppc64le-suse-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://bugs.opensuse.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rpmbuild/BUILD/libmicrohttpd-0.9.52/src/microhttpd/.libs/test_upgrade_ssl...done.

warning: core file may not match specified executable file.
[New LWP 66982]

warning: Could not load shared library symbols for linux-vdso64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/home/abuild/rpmbuild/BUILD/libmicrohttpd-0.9.52/src/microhttpd/.libs/test_upgr'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00003fff8b30dc60 in __libc_signal_restore_set (set=0x3fffc85dd610) at ../sysdeps/unix/sysv/linux/nptl-signals.h:79
79 ../sysdeps/unix/sysv/linux/nptl-signals.h: No such file or directory.
(gdb) bt
#0 0x00003fff8b30dc60 in __libc_signal_restore_set (set=0x3fffc85dd610) at ../sysdeps/unix/sysv/linux/nptl-signals.h:79
#1 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:55
#2 0x00003fff8b30fd14 in __GI_abort () at abort.c:78
#3 0x00003fff8b51a5d4 in mhd_panic_std (cls=<optimized out>, file=<optimized out>, line=<optimized out>, reason=<optimized out>) at daemon.c:112
#4 0x00003fff8b51bd8c in close_all_connections (daemon=0x10021656b30) at daemon.c:5190
#5 0x00003fff8b51ffc8 in MHD_stop_daemon (daemon=0x10021656b30) at daemon.c:5391
#6 0x00000000100022ec in test_upgrade (flags=9224, pool=0) at test_upgrade_ssl.c:152
#7 0x0000000010001298 in main (argc=<optimized out>, argv=<optimized out>) at test_upgrade_ssl.c:181
(gdb)
===

Christian Grothoff

2017-02-14 19:02

manager   ~0011758

Seems that OpenSSL 1.1 no longer likes "0" for the verify option, but requires at least "1". I've changed our code accordingly, works here.

Issue History

Date Modified Username Field Change
2016-12-20 18:04 michelmno New Issue
2016-12-20 18:12 michelmno Note Added: 0011601
2016-12-21 16:37 michelmno Note Added: 0011602
2017-01-29 01:05 Christian Grothoff Status new => acknowledged
2017-02-14 19:02 Christian Grothoff Note Added: 0011758
2017-02-14 19:03 Christian Grothoff Assigned To => Christian Grothoff
2017-02-14 19:03 Christian Grothoff Status acknowledged => resolved
2017-02-14 19:03 Christian Grothoff Resolution open => fixed
2017-02-14 19:03 Christian Grothoff Fixed in Version => 0.9.53
2017-02-14 19:03 Christian Grothoff Target Version => 0.9.53
2017-04-12 00:00 Christian Grothoff Status resolved => closed