View Issue Details

IDProjectCategoryView StatusLast Update
0007358Talerbank API (C)public2022-09-14 17:09
Reporterttn Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
PlatformLinuxOSDebianOS Version11 (Bullseye)
Product Versiongit (master) 
Summary0007358: "make check" fails for test_bank.sh
DescriptionHEAD == 27ee193e340d8a92964dcd4e359f7cdd9b6738be.
Additionally, i've modified in test_bank.sh the call to taler-exchange-wire-gateway-client
to include command-line option '-L DEBUG'.
Logs attached.

There seems to be a problem with "curl.c:436". The exchange.git/src/curl/curl.c does not have
that many lines, but the gnunet.git/src/curl/curl.c DOES have a 'GNUNET_break' statement on line 436.
From this, i guess that one of the 'if CONDITIONAL' clauses failed, but have no idea which.

Note that this (Debian 11) system is taler.net, so maybe things are "strangely set up" there...
TagsNo tags attached.

Activities

ttn

2022-09-12 09:16

developer  

.ttn.exchange-make-check.log (10,388 bytes)   
+ export PATH=/home/ttn/te/bin:/home/ttn/build/GNU/T/hack:/usr/lib/postgresql/13/bin:/home/ttn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ PATH=/home/ttn/te/bin:/home/ttn/build/GNU/T/hack:/usr/lib/postgresql/13/bin:/home/ttn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ export TMPDIR=/home/ttn/te/tmp
+ TMPDIR=/home/ttn/te/tmp
+ export PGHOST=/home/ttn/te/pg
+ PGHOST=/home/ttn/te/pg
+ make check
Makefile:961: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:956: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:966: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:961: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:971: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:966: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Making check in .
make[1]: Entering directory '/home/ttn/build/GNU/T/exchange'
Makefile:961: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:956: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:966: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:961: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:971: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:966: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
make[1]: Leaving directory '/home/ttn/build/GNU/T/exchange'
Making check in contrib
make[1]: Entering directory '/home/ttn/build/GNU/T/exchange/contrib'
Making check in .
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/contrib'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/contrib'
make[1]: Leaving directory '/home/ttn/build/GNU/T/exchange/contrib'
Making check in src
make[1]: Entering directory '/home/ttn/build/GNU/T/exchange/src'
Making check in include
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/include'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/include'
Making check in util
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
make  test_age_restriction test_amount test_crypto test_helper_eddsa test_helper_rsa test_helper_cs test_payto test_url
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
  CC       test_age_restriction.o
  CCLD     test_age_restriction
  CC       test_amount.o
  CCLD     test_amount
  CC       test_crypto.o
  CCLD     test_crypto
  CC       test_helper_eddsa.o
  CCLD     test_helper_eddsa
  CC       test_helper_rsa.o
  CCLD     test_helper_rsa
  CC       test_helper_cs.o
  CCLD     test_helper_cs
  CC       test_payto.o
  CCLD     test_payto
  CC       test_url.o
  CCLD     test_url
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
PASS: test_age_restriction
PASS: test_amount
PASS: test_crypto
PASS: test_helper_eddsa
PASS: test_helper_rsa
PASS: test_helper_cs
PASS: test_payto
PASS: test_url
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 8
# PASS:  8
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
Making check in json
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
make  test_json test_json_wire
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
  CC       test_json.o
  CCLD     test_json
  CC       test_json_wire.o
  CCLD     test_json_wire
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
PASS: test_json
PASS: test_json_wire
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 2
# PASS:  2
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
Making check in extensions
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/extensions'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/extensions'
Making check in curl
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/curl'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/curl'
Making check in pq
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
make  test_pq
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
  CC       test_pq.o
  CCLD     test_pq
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
PASS: test_pq
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
Making check in sq
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
make  test_sq
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
  CC       test_sq.o
  CCLD     test_sq
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
PASS: test_sq
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
Making check in templating
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/templating'
make  test_mustach_jansson run-original-tests.sh
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/templating'
  CC       test_mustach_jansson.o
  CCLD     test_mustach_jansson
make[3]: Nothing to be done for 'run-original-tests.sh'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/templating'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/templating'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/templating'
SKIP: run-original-tests.sh
PASS: test_mustach_jansson
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 2
# PASS:  1
# SKIP:  1
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/templating'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/templating'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/templating'
Making check in mhd
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/mhd'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/mhd'
Making check in bank-lib
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make  test_bank.sh
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[3]: Nothing to be done for 'test_bank.sh'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make  check-TESTS
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
FAIL: test_bank.sh
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See src/bank-lib/test-suite.log
Please report to taler-bug@gnunet.org
============================================================================
make[4]: *** [Makefile:974: test-suite.log] Error 1
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[3]: *** [Makefile:1082: check-TESTS] Error 2
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[2]: *** [Makefile:1156: check-am] Error 2
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[1]: *** [Makefile:524: check-recursive] Error 1
make[1]: Leaving directory '/home/ttn/build/GNU/T/exchange/src'
make: *** [Makefile:507: check-recursive] Error 1
.ttn.exchange-make-check.log (10,388 bytes)   
test-suite.log (690 bytes)   
=======================================================
   taler-exchange 0.8.5: src/bank-lib/test-suite.log
=======================================================

# TOTAL: 1
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test_bank.sh
==================

Launching bank....OK
Making wire transfer to exchange ...2022-09-12T08:56:05.924351+0200 taler-wire-gateway-client-1136893 INFO Requesting administrative transaction at `http://localhost:8899/exchange/admin/add-incoming' for reserve 5N4N3S13
2022-09-12T08:56:05.926037+0200 taler-wire-gateway-client-1136893 ERROR Assertion failed at curl.c:436.
FAIL test_bank.sh (exit status: 1)

test-suite.log (690 bytes)   

ttn

2022-09-12 09:18

developer   ~0019122

BTW, HEAD == 27ee193e340d8a92964dcd4e359f7cdd9b6738be finishes "make check" successfully on Devuan 4 (chiamaera).

Christian Grothoff

2022-09-14 10:53

manager   ~0019131

Hmm. Strange. I've never seen those curl calls fail, not just in this context, but basically ever.
I've modified the code in 3babda033..1399cdb9c to allow us to distinguish between easy and multi curl API failures.

It could be a bug in curl, or maybe we had some memory corruption. Running the test under valgrind (--trace-children=yes) might help in the latter case. In the former, well, only fixing curl would do the trick ;-).

ttn

2022-09-14 17:09

developer   ~0019132

With
HEAD == 1399cdb9cc594f9faa4a5024551260b9757279a9 (GNUnet)
HEAD == b7bd4579085710787286b01957b84b13b63c50d2 (exchange)
"make check" finishes successfully. FWIW, here is the entire contents of src/bank-lib/test_bank.sh.log:

Launching bank....OK
Making wire transfer to exchange ... OK
Requesting exchange incoming transaction list ... OK
Making wire transfer from exchange... OK
Requesting exchange's outgoing transaction list... OK
All tests passed
PASS test_bank.sh (exit status: 0)


I notice that on the GNUnet side, there were 22 commits (including the split-curl one) between
the previous time GNUnet was updated and the current passing state. So maybe there was
a bug fixed in one of those commits. (Aside: It's not my place to impose commit log message
norms, but it seems to me they could be expanded a bit to be more informative.)

Issue History

Date Modified Username Field Change
2022-09-12 09:16 ttn New Issue
2022-09-12 09:16 ttn Status new => assigned
2022-09-12 09:16 ttn Assigned To => Christian Grothoff
2022-09-12 09:16 ttn File Added: .ttn.exchange-make-check.log
2022-09-12 09:16 ttn File Added: test-suite.log
2022-09-12 09:18 ttn Note Added: 0019122
2022-09-14 10:53 Christian Grothoff Note Added: 0019131
2022-09-14 17:09 ttn Status assigned => resolved
2022-09-14 17:09 ttn Resolution open => fixed
2022-09-14 17:09 ttn Note Added: 0019132