View Issue Details

IDProjectCategoryView StatusLast Update
0007241Talerauditorpublic2022-11-04 20:53
Reporterttn Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionreopened 
PlatformLinuxOSDevuanOS Version4
Product Versiongit (master) 
Target Version0.9Fixed in Version0.9 
Summary0007241: "make check" fails w/ SQL error
DescriptionHEAD == d6c161a72e56a15602f581ba0cb7b7a1610f2529.
Logs attached.
TagsNo tags attached.
Attached Files
.ttn.exchange-make-check.log (13,986 bytes)   
+ export PATH=/home/ttn/te/bin:/home/ttn/build/GNU/T/tw-taler:/home/ttn/bin:/home/ttn/local/bin:/usr/local/bin:/usr/bin:/bin:/home/ttn/local/share/ttn-do
+ PATH=/home/ttn/te/bin:/home/ttn/build/GNU/T/tw-taler:/home/ttn/bin:/home/ttn/local/bin:/usr/local/bin:/usr/bin:/bin:/home/ttn/local/share/ttn-do
+ export TMPDIR=/home/ttn/te/tmp
+ TMPDIR=/home/ttn/te/tmp
+ export PGHOST=/home/ttn/te/pg
+ PGHOST=/home/ttn/te/pg
+ make check
make  check-recursive
make[1]: ingresso nella directory «/home/ttn/build/GNU/T/exchange»
Making check in .
make[2]: ingresso nella directory «/home/ttn/build/GNU/T/exchange»
make[2]: uscita dalla directory «/home/ttn/build/GNU/T/exchange»
Making check in contrib
make[2]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/contrib»
Making check in .
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/contrib»
make[3]: Nessuna operazione da eseguire per «check-am».
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/contrib»
make[2]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/contrib»
Making check in src
make[2]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src»
Making check in include
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/include»
make[3]: Nessuna operazione da eseguire per «check».
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/include»
Making check in util
make[3]: ingresso nella 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[4]: ingresso nella 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[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/util»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/util»
make[5]: ingresso nella 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[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/util»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/util»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/util»
Making check in json
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/json»
make  test_json test_json_wire
make[4]: ingresso nella 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[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/json»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/json»
make[5]: ingresso nella 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[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/json»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/json»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/json»
Making check in extensions
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/extensions»
make[3]: Nessuna operazione da eseguire per «check».
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/extensions»
Making check in curl
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/curl»
make[3]: Nessuna operazione da eseguire per «check».
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/curl»
Making check in pq
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/pq»
make  test_pq
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/pq»
  CC       test_pq.o
  CCLD     test_pq
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/pq»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/pq»
make[5]: ingresso nella 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[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/pq»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/pq»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/pq»
Making check in sq
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/sq»
make  test_sq
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/sq»
  CC       test_sq.o
  CCLD     test_sq
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/sq»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/sq»
make[5]: ingresso nella 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[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/sq»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/sq»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/sq»
Making check in mhd
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/mhd»
make[3]: Nessuna operazione da eseguire per «check».
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/mhd»
Making check in bank-lib
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make  test_bank.sh
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make[4]: Nessuna operazione da eseguire per «test_bank.sh».
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
PASS: test_bank.sh
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/bank-lib»
Making check in exchangedb
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make  check-am
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make  test-exchangedb-postgres bench-db-postgres
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
  CC       test_exchangedb.o
  CCLD     test-exchangedb-postgres
  CC       bench_db.o
  CCLD     bench-db-postgres
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make  check-TESTS
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make[6]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
SKIP: test-exchangedb-postgres
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  0
# SKIP:  1
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[6]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchangedb»
Making check in exchange
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make  test_taler_exchange_httpd.sh 
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make[4]: Nessuna operazione da eseguire per «test_taler_exchange_httpd.sh».
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/exchange»
SKIP: test_taler_exchange_httpd.sh
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  0
# SKIP:  1
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchange»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/exchange»
Making check in auditordb
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
make  test-auditordb-postgres
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
  CC       test_auditordb.o
  CCLD     test-auditordb-postgres
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
PASS: test-auditordb-postgres
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditordb»
Making check in auditor
make[3]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make  test-auditor.sh test-revocation.sh test-sync.sh
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make[4]: Nessuna operazione da eseguire per «test-auditor.sh».
make[4]: Nessuna operazione da eseguire per «test-revocation.sh».
make[4]: Nessuna operazione da eseguire per «test-sync.sh».
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make  check-TESTS
make[4]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make[5]: ingresso nella directory «/home/ttn/build/GNU/T/exchange/src/auditor»
SKIP: test-auditor.sh
SKIP: test-revocation.sh
FAIL: test-sync.sh
============================================================================
Testsuite summary for taler-exchange 0.8.5
============================================================================
# TOTAL: 3
# PASS:  0
# SKIP:  2
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See src/auditor/test-suite.log
Please report to taler-bug@gnunet.org
============================================================================
make[5]: *** [Makefile:1297: test-suite.log] Errore 1
make[5]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make[4]: *** [Makefile:1405: check-TESTS] Errore 2
make[4]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make[3]: *** [Makefile:1492: check-am] Errore 2
make[3]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src/auditor»
make[2]: *** [Makefile:524: check-recursive] Errore 1
make[2]: uscita dalla directory «/home/ttn/build/GNU/T/exchange/src»
make[1]: *** [Makefile:509: check-recursive] Errore 1
make[1]: uscita dalla directory «/home/ttn/build/GNU/T/exchange»
make: *** [Makefile:806: check] Errore 2
.ttn.exchange-make-check.log (13,986 bytes)   
test-suite.log (1,271 bytes)   
======================================================
   taler-exchange 0.8.5: src/auditor/test-suite.log
======================================================

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

.. contents:: :depth: 2

SKIP: test-auditor.sh
=====================

Testing for jq
./test-auditor.sh: riga 1870: jq: comando non trovato
jq required
SKIP test-auditor.sh (exit status: 77)

SKIP: test-revocation.sh
========================

Testing for jq
./test-revocation.sh: riga 494: jq: comando non trovato
jq required
SKIP test-revocation.sh (exit status: 77)

FAIL: test-sync.sh
==================

Testing synchronization logic ....psql:/home/ttn/te/share/taler/sql/exchange/exchange-0001.sql:4055: ERROR:  "purse_requests" is a partitioned table
DETAIL:  Partitioned tables cannot have BEFORE / FOR EACH ROW triggers.
2022-05-12T21:56:47.144438-0400 taler-exchange-dbinit-18350 ATTENZIONE Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/exchange-0001.sql: psql exit code was 3
2022-05-12T21:56:47.144547-0400 taler-exchange-dbinit-18350 ATTENZIONE Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/exchange-*'
Failed to initialize database.
FAIL test-sync.sh (exit status: 4)

test-suite.log (1,271 bytes)   

Activities

ttn

2022-05-17 07:27

developer   ~0018904

I notice the error says:

Testing synchronization logic ....psql:/home/ttn/te/share/taler/sql/exchange/exchange-0001.sql:4056: ERROR: "purse_requests" is a partitioned table
DETAIL: Partitioned tables cannot have BEFORE / FOR EACH ROW triggers.

Could this be due to old/outdated PostgreSQL? (Perhaps such triggers are supported in newer versions?)

ttn

2022-06-04 14:06

developer   ~0018912

Same status.
GNUnet HEAD == edddc9384e9bc4331d57291de7318bbe401e49b0.
Exchange HEAD == 04c32eafb9194727876469c92b7cbedc008c51ec.

ttn

2022-06-04 14:11

developer   ~0018913

@Christian Grothoff

(This is w/ PostgreSQL 13.7 -- what version are you using?)

Christian Grothoff

2022-06-04 14:19

manager   ~0018914

Also 13.7. Strange. Are you sure you don't have MULTIPLE postgres versions installed? In that case, the test may use the wrong one...

ttn

2022-06-04 18:27

developer   ~0018915

Good point! That was indeed the problem. I cleaned up my environment to suppress an old 12.x installation, and now the "cannot have ... triggers" error message no longer shows up in the log file. Progress! However, now there is another error message:

FAIL: test-sync.sh
==================

Testing synchronization logic ......2022-06-04T12:21:25.464627-0400 pq-4779 ERROR PQprepare (`SELECT out_found AS found FROM exchange_do_expire_purse ($1,$2);' as `call_expire_purse') failed with error: ERROR: function exchange_do_expire_purse(unknown, unknown) does not exist
LINE 1: SELECT out_found AS found FROM exchange_do_expire_purse ($1...
                                        ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.

2022-06-04T12:21:25.464699-0400 taler-auditor-sync-4779 ERROR Failed to begin transaction with data source. Exiting
.FAIL
Record count mismatch: 424 / 0 in table denominations
FAIL test-sync.sh (exit status: 1)

Christian Grothoff

2022-06-05 14:29

manager   ~0018916

Yeah, the DB needs re-generation, which currently fails due to an issue with the wallet (?). I've asked Florian to look into it....

Christian Grothoff

2022-06-12 22:36

manager   ~0018922

393ae7f9..71a42d2b should fix this.

ttn

2022-06-13 04:10

developer   ~0018925

The previous error no longer shows up, so that's the good news. The bad news is that there is another error (same test: src/auditor/test-sync.sh) in the test-suite.log, excerpted here:

FAIL: test-sync.sh
==================

Testing synchronization logic ......2022-06-13T03:58:10.324878+0200 pq-1321918 ERROR Query `insert_into_table_reserves' failed with \
result: null value in column "current_balance_val" of relation "reserves_default" violates not-null constraint/Failing row contains \
(1, \x2a3c700c8b3d5a3cb4b09cfdc542c69de5cd5bc4aa93af427fc2e1c919f156..., null, null, 0, 0, f, f, 120, 1657484153000000, 187581695500\
0000)./ERROR: null value in column "current_balance_val" of relation "reserves_default" violates not-null constraint
DETAIL: Failing row contains (1, \x2a3c700c8b3d5a3cb4b09cfdc542c69de5cd5bc4aa93af427fc2e1c919f156..., null, null, 0, 0, f, f, 120, \
1657484153000000, 1875816955000000).
/PGRES_FATAL_ERROR/ERROR: null value in column "current_balance_val" of relation "reserves_default" violates not-null constraint
DETAIL: Failing row contains (1, \x2a3c700c8b3d5a3cb4b09cfdc542c69de5cd5bc4aa93af427fc2e1c919f156..., null, null, 0, 0, f, f, 120, \
1657484153000000, 1875816955000000).

2022-06-13T03:58:10.324942+0200 taler-auditor-sync-1321918 ERROR Failed to insert record into table 3: hard error
2022-06-13T03:58:10.324957+0200 taler-auditor-sync-1321918 ERROR Failed to lookup records from table 3: hard error
FAIL test-sync.sh (exit status: 1)

Christian Grothoff

2022-06-14 06:07

manager   ~0018927

Better now?

ttn

2022-06-14 10:02

developer   ~0018929

Yes. Now "make check" finishes successfully on the initial platform, as well as on the various VMs,
with the exception of Ubuntu, which doesn't have PostgreSQL 13 installed (yet?).

ttn

2022-06-14 10:03

developer   ~0018930

Seems to be fixed in 70a5ceecc1a15d4f811636f5980cedf653988879.

Issue History

Date Modified Username Field Change
2022-05-13 04:00 ttn New Issue
2022-05-13 04:00 ttn Status new => assigned
2022-05-13 04:00 ttn Assigned To => Christian Grothoff
2022-05-13 04:00 ttn File Added: .ttn.exchange-make-check.log
2022-05-13 04:00 ttn File Added: test-suite.log
2022-05-17 07:27 ttn Note Added: 0018904
2022-06-04 14:06 ttn Note Added: 0018912
2022-06-04 14:11 ttn Note Added: 0018913
2022-06-04 14:19 Christian Grothoff Note Added: 0018914
2022-06-04 18:27 ttn Note Added: 0018915
2022-06-05 14:29 Christian Grothoff Note Added: 0018916
2022-06-12 22:36 Christian Grothoff Note Added: 0018922
2022-06-12 22:36 Christian Grothoff Status assigned => resolved
2022-06-12 22:36 Christian Grothoff Resolution open => fixed
2022-06-12 22:36 Christian Grothoff Fixed in Version => 0.9
2022-06-12 22:36 Christian Grothoff Target Version => 0.9
2022-06-13 04:10 ttn Status resolved => feedback
2022-06-13 04:10 ttn Resolution fixed => reopened
2022-06-13 04:10 ttn Note Added: 0018925
2022-06-14 06:07 Christian Grothoff Note Added: 0018927
2022-06-14 10:02 ttn Note Added: 0018929
2022-06-14 10:02 ttn Status feedback => assigned
2022-06-14 10:03 ttn Status assigned => resolved
2022-06-14 10:03 ttn Note Added: 0018930
2022-11-04 20:53 Christian Grothoff Status resolved => closed