View Issue Details

IDProjectCategoryView StatusLast Update
0006919Talerexchange Postgres DB backendpublic2021-07-18 13:34
Reporterttn Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
PlatformLinuxOSDebianOS VersionBullseye/Sid
Product Versiongit (master) 
Target Version0.9Fixed in Version0.9 
Summary0006919: "make check" fails in test-sync.sh
DescriptionLogs attached. I did a quick grep for "work_shards" and it seems to be defined correctly in
exchangedb/exchange-0002.sql but perhaps that file is not being sourced correctly?
TagsNo tags attached.

Activities

ttn

2021-07-12 19:52

developer  

test-suite.log (1,767 bytes)   
======================================================
   taler-exchange 0.8.1: 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
Testing for taler-bank-manage
./test-auditor.sh: line 1844: taler-bank-manage: command not found
taler-bank-manage required
SKIP test-auditor.sh (exit status: 77)

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

Testing for jq
Testing for taler-bank-manage
./test-revocation.sh: line 516: taler-bank-manage: command not found
taler-bank-manage required
SKIP test-revocation.sh (exit status: 77)

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

Testing synchronization logic ....Jul 12 19:04:09-421186 taler-exchange-dbinit-622137 WARNING Skipping file `/home/ttn/t/share/taler/config.d/ZONKABLE-2021-03'
..Jul 12 19:04:39-669732 taler-auditor-sync-622327 WARNING Skipping file `/home/ttn/t/share/taler/config.d/ZONKABLE-2021-03'
Jul 12 19:04:39-674439 taler-auditor-sync-622327 WARNING Skipping file `/home/ttn/t/share/taler/config.d/ZONKABLE-2021-03'
Jul 12 19:04:39-712085 pq-622327 ERROR PQprepare (`SELECT start_row,end_row FROM work_shards WHERE job_name=$1   AND last_attempt<$2   AND completed=FALSE ORDER BY last_attempt ASC LIMIT 1;' as `get_open_shard') failed with error: ERROR:  relation "work_shards" does not exist
LINE 1: SELECT start_row,end_row FROM work_shards WHERE job_name=$1 ...
                                      ^

Jul 12 19:04:39-712143 taler-auditor-sync-622327 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)

test-suite.log (1,767 bytes)   
.ttn.exchange-make-check.log (13,156 bytes)   
-*- mode: compilation; default-directory: "~/build/GNU/T/exchange/" -*-
Compilation started at Mon Jul 12 19:03:31

make check PGHOST=$HOME/pg TMPDIR=$HOME/tmp PATH=$HOME/t/bin:$PATH
Makefile:963: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:958: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:963: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:973: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
make  check-recursive
make[1]: Entering directory '/home/ttn/build/GNU/T/exchange'
Makefile:963: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:958: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:963: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:973: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Making check in .
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange'
Makefile:963: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:958: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:963: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:973: warning: overriding recipe for target 'doxygen-doc/taler-exchange.tag'
Makefile:968: warning: ignoring old recipe for target 'doxygen-doc/taler-exchange.tag'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange'
Making check in contrib
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/contrib'
Making check in .
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/contrib'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/contrib'
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/contrib'
Making check in src
make[2]: Entering directory '/home/ttn/build/GNU/T/exchange/src'
Making check in include
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/include'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/include'
Making check in util
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
make  test_amount test_crypto test_helper_eddsa test_helper_rsa test_payto test_url
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
  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_payto.o
  CCLD     test_payto
  CC       test_url.o
  CCLD     test_url
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/util'
PASS: test_amount
PASS: test_crypto
PASS: test_helper_eddsa
PASS: test_helper_rsa
PASS: test_payto
PASS: test_url
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 6
# PASS:  6
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/util'
Making check in json
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
make  test_json test_json_wire
make[4]: 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[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/json'
PASS: test_json
PASS: test_json_wire
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 2
# PASS:  2
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/json'
Making check in curl
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/curl'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/curl'
Making check in pq
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
make  test_pq
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
  CC       test_pq.o
  CCLD     test_pq
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/pq'
PASS: test_pq
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/pq'
Making check in sq
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
make  test_sq
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
  CC       test_sq.o
  CCLD     test_sq
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/sq'
PASS: test_sq
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/sq'
Making check in mhd
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/mhd'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/mhd'
Making check in bank-lib
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/bank-lib'
Making check in exchangedb
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
make  test-exchangedb-postgres
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
  CC       test_exchangedb.o
  CCLD     test-exchangedb-postgres
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
PASS: test-exchangedb-postgres
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchangedb'
Making check in exchange
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make  test_taler_exchange_httpd.sh test_taler_exchange_httpd_restart.sh 
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make[4]: Nothing to be done for 'test_taler_exchange_httpd.sh'.
make[4]: Nothing to be done for 'test_taler_exchange_httpd_restart.sh'.
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/exchange'
PASS: test_taler_exchange_httpd.sh
PASS: test_taler_exchange_httpd_restart.sh
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 2
# PASS:  2
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchange'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/exchange'
Making check in auditordb
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
make  test-auditordb-postgres
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
  CC       test_auditordb.o
  CCLD     test-auditordb-postgres
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
make[5]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
PASS: test-auditordb-postgres
============================================================================
Testsuite summary for taler-exchange 0.8.1
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditordb'
Making check in auditor
make[3]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make  test-auditor.sh test-revocation.sh test-sync.sh
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make[4]: Nothing to be done for 'test-auditor.sh'.
make[4]: Nothing to be done for 'test-revocation.sh'.
make[4]: Nothing to be done for 'test-sync.sh'.
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make  check-TESTS
make[4]: Entering directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make[5]: Entering 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.1
============================================================================
# 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] Error 1
make[5]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make[4]: *** [Makefile:1405: check-TESTS] Error 2
make[4]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make[3]: *** [Makefile:1493: check-am] Error 2
make[3]: Leaving directory '/home/ttn/build/GNU/T/exchange/src/auditor'
make[2]: *** [Makefile:515: check-recursive] Error 1
make[2]: Leaving directory '/home/ttn/build/GNU/T/exchange/src'
make[1]: *** [Makefile:501: check-recursive] Error 1
make[1]: Leaving directory '/home/ttn/build/GNU/T/exchange'
make: *** [Makefile:799: check] Error 2

Compilation exited abnormally with code 2 at Mon Jul 12 19:04:42
.ttn.exchange-make-check.log (13,156 bytes)   

ttn

2021-07-12 20:11

developer   ~0017988

FWIW, the same test fails w/ the same error message (in src/auditor/test-suite.log)
under Alpine Linux 3.13.

Christian Grothoff

2021-07-12 21:04

manager   ~0017989

The problem is likely that you're upgrading from a Git version to another Git version, which is not (always) supported. If you drop and re-create your Taler Postgres databases (like talercheck), does it then work?

ttn

2021-07-16 02:32

developer   ~0017991

I did "DROP DATABASE talercheck" and "CREATE DATABASE talercheck" successfully.
I then did "pg_ctl restart ...", also successfully.
However, the test still fails at the same place.
I attach the PostgreSQL log (excerpt) that shows the particular "ERROR" w/ "work_shards",
but also there are other ERRORS. Could those be relevant to this problem?
pg.log-excerpt (2,125 bytes)   
2021-07-16 02:22:31.993 CEST() LOG:  database system was shut down at 2021-07-16 02:22:30 CEST
2021-07-16 02:22:32.134 CEST() LOG:  MultiXact member wraparound protections are now enabled
2021-07-16 02:22:32.137 CEST() LOG:  database system is ready to accept connections
2021-07-16 02:22:32.137 CEST() LOG:  autovacuum launcher started
2021-07-16 02:23:46.121 CEST(talercheck) WARNING:  there is no transaction in progress
2021-07-16 02:23:46.122 CEST(talercheck) ERROR:  duplicate key value violates unique constraint "denominations_serial_pk"
2021-07-16 02:23:46.122 CEST(talercheck) DETAIL:  Key (denominations_serial)=(1) already exists.
2021-07-16 02:23:46.122 CEST(talercheck) STATEMENT:  INSERT INTO denomination_revocations (denominations_serial,master_sig) SELECT denominations_serial,$2    FROM denominations   WHERE denom_pub_hash=$1;
2021-07-16 02:23:55.710 CEST(talercheck) ERROR:  Patch auditor-0001 is not installed, so it can't be uninstalled!
2021-07-16 02:23:55.710 CEST(talercheck) CONTEXT:  PL/pgSQL function _v.unregister_patch(text) line 17 at RAISE
2021-07-16 02:23:55.710 CEST(talercheck) STATEMENT:  SELECT _v.unregister_patch('auditor-0001');
2021-07-16 02:23:57.380 CEST(talercheck) WARNING:  there is no transaction in progress
2021-07-16 02:23:57.780 CEST(postgres) ERROR:  database "talercheck-in" does not exist
2021-07-16 02:23:57.780 CEST(postgres) STATEMENT:  DROP DATABASE "talercheck-in";
2021-07-16 02:23:57.829 CEST(postgres) ERROR:  database "talercheck-out" does not exist
2021-07-16 02:23:57.829 CEST(postgres) STATEMENT:  DROP DATABASE "talercheck-out";
2021-07-16 02:23:59.842 CEST(talercheck-out) ERROR:  relation "_v.patches" does not exist at character 24
2021-07-16 02:23:59.842 CEST(talercheck-out) STATEMENT:  SELECT applied_by FROM _v.patches WHERE patch_name = $1 LIMIT 1
2021-07-16 02:24:22.682 CEST(talercheck-in) ERROR:  relation "work_shards" does not exist at character 31
2021-07-16 02:24:22.682 CEST(talercheck-in) STATEMENT:  SELECT start_row,end_row FROM work_shards WHERE job_name=$1   AND last_attempt<$2   AND completed=FALSE ORDER BY last_attempt ASC LIMIT 1;
pg.log-excerpt (2,125 bytes)   

Christian Grothoff

2021-07-18 13:34

manager   ~0017996

Fixed in d1e5fd8f..67559ad6

Issue History

Date Modified Username Field Change
2021-07-12 19:52 ttn New Issue
2021-07-12 19:52 ttn File Added: test-suite.log
2021-07-12 19:52 ttn File Added: .ttn.exchange-make-check.log
2021-07-12 20:11 ttn Note Added: 0017988
2021-07-12 20:12 ttn Assigned To => Christian Grothoff
2021-07-12 20:12 ttn Status new => assigned
2021-07-12 21:04 Christian Grothoff Note Added: 0017989
2021-07-12 21:04 Christian Grothoff Status assigned => feedback
2021-07-16 02:32 ttn Note Added: 0017991
2021-07-16 02:32 ttn File Added: pg.log-excerpt
2021-07-16 02:32 ttn Status feedback => assigned
2021-07-18 13:34 Christian Grothoff Note Added: 0017996
2021-07-18 13:34 Christian Grothoff Status assigned => resolved
2021-07-18 13:34 Christian Grothoff Resolution open => fixed
2021-07-18 13:34 Christian Grothoff Fixed in Version => 0.9
2021-07-18 13:34 Christian Grothoff Target Version => 0.9