View Issue Details

IDProjectCategoryView StatusLast Update
0007208Talerwallet-corepublic2022-11-04 20:52
Reporterttn Assigned ToFlorian Dold  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
PlatformLinuxOSUbuntuOS Version20.04.3
Product Versiongit (master) 
Target Version0.9Fixed in Version0.9 
Summary0007208: taler-wallet-cli does not exit failurefully if taler-bank-manage not found
DescriptionOne of the "make check" tests (0007151) invokes taler-wallet-cli twice,
first in "dry run" mode to check if everything is OK to proceed.
Unfortunately, if taler-bank-manage (from bank.git) is not installed,
taller-wallet-cli proceeds anyway and DOES NOT exit failurefully.

The fix is to modify taller-wallet-cli to check for taler-bank-manage availabilty
and exit with non-zero exit status (i.e., failurefully) in that case.
TagsNo tags attached.

Relationships

parent of 0007151 closedChristian Grothoff "make check" fails on test-merchant-walletharness.sh 

Activities

ttn

2022-04-05 03:08

developer   ~0018851

@sebasjm
I suppose another fix is to have the shell script check for taler-bank-manage and exit 77 if not found.
I just thought it would be cleaner to do that check "closer to the source" (i.e., in the Javascript code).
WDYT?

Christian Grothoff

2022-04-05 08:45

manager   ~0018852

Florian: several issues here:
1) taler-wallet-cli should fail if the taler-bank-manage invocation fails
2) we should of course replace the use of bank.git with libeufin ASAP
3) the 'make check' script calling this should check for taler-bank-manage/libeufin to be properly available and exit 77 if not.

ttn

2022-06-14 10:59

developer   ~0018931

FWIW, here's a recent merchant.git/src/testing/test-suite.log file that shows the current behavior.
test-suite.log (53,335 bytes)   
======================================================
   taler-merchant 0.8.4: src/testing/test-suite.log
======================================================

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

.. contents:: :depth: 2

SKIP: test_merchant_api_cs
==========================

2022-06-14T08:46:12.696054+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs-9700 INFO Using fakebank http://localhost:8082/2/ on port 8082
2022-06-14T08:46:12.696821+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs-9700 INFO exchange payto: payto://x-taler-bank/localhost/2?receiver-name=2
2022-06-14T08:46:12.696852+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs-9700 INFO user42_payto: payto://x-taler-bank/localhost/42?receiver-name=42
2022-06-14T08:46:12.696858+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs-9700 INFO user43_payto: payto://x-taler-bank/localhost/43?receiver-name=43
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:29: ERROR:  Patch merchant-0002 is not installed, so it can't be uninstalled!
CONTEXT:  PL/pgSQL function _v.unregister_patch(text) line 17 at RAISE
2022-06-14T08:46:12.793360+0000 taler-merchant-dbinit-9715 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/merchant/drop0001.sql: psql exit code was 3
2022-06-14T08:46:12.794298+0000 taler-merchant-dbinit-9715 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/merchant/drop*'
2022-06-14T08:46:12.794639+0000 taler-merchant-dbinit-9715 WARNING Failed to reset the database
psql:/home/ttn/te/share/taler/sql/exchange/drop0001.sql:117: ERROR:  Patch exchange-0001 is not installed, so it can't be uninstalled!
CONTEXT:  PL/pgSQL function _v.unregister_patch(text) line 17 at RAISE
2022-06-14T08:46:13.592182+0000 taler-exchange-dbinit-9745 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/drop0001.sql: psql exit code was 3
2022-06-14T08:46:13.592430+0000 taler-exchange-dbinit-9745 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/drop*'
2022-06-14T08:46:13.592524+0000 taler-exchange-dbinit-9745 ERROR Could not drop tables as requested. Either database was not yet initialized, or permission denied. Consult the logs. Will still try to create new tables.
psql:/home/ttn/te/share/taler/sql/exchange/exchange-0001.sql:4150: ERROR:  "purse_requests" is a partitioned table
DETAIL:  Partitioned tables cannot have BEFORE / FOR EACH ROW triggers.
2022-06-14T08:46:14.771449+0000 taler-exchange-dbinit-9745 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/exchange-0001.sql: psql exit code was 3
2022-06-14T08:46:14.771545+0000 taler-exchange-dbinit-9745 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/exchange-*'
Failed to initialize database.
2022-06-14T08:46:14.773910+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs-9700 ERROR Failed to setup (exchange) database, exit code 4
SKIP test_merchant_api_cs (exit status: 77)

SKIP: test_merchant_api_rsa
===========================

2022-06-14T08:46:14.814388+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa-9772 INFO Using fakebank http://localhost:8082/2/ on port 8082
2022-06-14T08:46:14.814702+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa-9772 INFO exchange payto: payto://x-taler-bank/localhost/2?receiver-name=2
2022-06-14T08:46:14.814715+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa-9772 INFO user42_payto: payto://x-taler-bank/localhost/42?receiver-name=42
2022-06-14T08:46:14.814720+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa-9772 INFO user43_payto: payto://x-taler-bank/localhost/43?receiver-name=43
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:38: NOTICE:  drop cascades to 4 other objects
DETAIL:  drop cascades to constraint merchant_deposits_signkey_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_refund_proofs_signkey_serial_fkey on table merchant_refund_proofs
drop cascades to constraint merchant_transfer_signatures_signkey_serial_fkey on table merchant_transfer_signatures
drop cascades to constraint merchant_deposit_to_transfer_signkey_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:39: NOTICE:  drop cascades to 6 other objects
DETAIL:  drop cascades to constraint merchant_keys_merchant_serial_fkey on table merchant_keys
drop cascades to constraint merchant_accounts_merchant_serial_fkey on table merchant_accounts
drop cascades to constraint merchant_inventory_merchant_serial_fkey on table merchant_inventory
drop cascades to constraint merchant_orders_merchant_serial_fkey on table merchant_orders
drop cascades to constraint merchant_contract_terms_merchant_serial_fkey on table merchant_contract_terms
drop cascades to constraint merchant_tip_reserves_merchant_serial_fkey on table merchant_tip_reserves
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:41: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_deposits_account_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_transfers_account_serial_fkey on table merchant_transfers
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:42: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_inventory_locks_product_serial_fkey on table merchant_inventory_locks
drop cascades to constraint merchant_order_locks_product_serial_fkey on table merchant_order_locks
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:44: NOTICE:  table "merchant_accounts" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:45: NOTICE:  drop cascades to constraint merchant_order_locks_order_serial_fkey on table merchant_order_locks
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:47: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_deposits_order_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_refunds_order_serial_fkey on table merchant_refunds
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:48: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_transfer_to_coin_deposit_serial_fkey on table merchant_transfer_to_coin
drop cascades to constraint merchant_deposit_to_transfer_deposit_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:49: NOTICE:  drop cascades to constraint merchant_refund_proofs_refund_serial_fkey on table merchant_refund_proofs
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:51: NOTICE:  table "merchant_credits" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:52: NOTICE:  drop cascades to 3 other objects
DETAIL:  drop cascades to constraint merchant_transfer_signatures_credit_serial_fkey on table merchant_transfer_signatures
drop cascades to constraint merchant_transfer_to_coin_credit_serial_fkey on table merchant_transfer_to_coin
drop cascades to constraint merchant_deposit_to_transfer_credit_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:54: NOTICE:  table "merchant_transfer_by_coin" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:57: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_tip_reserve_keys_reserve_serial_fkey on table merchant_tip_reserve_keys
drop cascades to constraint merchant_tips_reserve_serial_fkey on table merchant_tips
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:59: NOTICE:  drop cascades to constraint merchant_tip_pickups_tip_serial_fkey on table merchant_tip_pickups
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:60: NOTICE:  drop cascades to constraint merchant_tip_pickup_signatures_pickup_serial_fkey on table merchant_tip_pickup_signatures
psql:/home/ttn/te/share/taler/sql/exchange/drop0001.sql:117: ERROR:  Patch exchange-0001 is not installed, so it can't be uninstalled!
CONTEXT:  PL/pgSQL function _v.unregister_patch(text) line 17 at RAISE
2022-06-14T08:46:15.622134+0000 taler-exchange-dbinit-9816 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/drop0001.sql: psql exit code was 3
2022-06-14T08:46:15.622377+0000 taler-exchange-dbinit-9816 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/drop*'
2022-06-14T08:46:15.622505+0000 taler-exchange-dbinit-9816 ERROR Could not drop tables as requested. Either database was not yet initialized, or permission denied. Consult the logs. Will still try to create new tables.
psql:/home/ttn/te/share/taler/sql/exchange/exchange-0001.sql:4150: ERROR:  "purse_requests" is a partitioned table
DETAIL:  Partitioned tables cannot have BEFORE / FOR EACH ROW triggers.
2022-06-14T08:46:16.808909+0000 taler-exchange-dbinit-9816 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/exchange-0001.sql: psql exit code was 3
2022-06-14T08:46:16.808988+0000 taler-exchange-dbinit-9816 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/exchange-*'
Failed to initialize database.
2022-06-14T08:46:16.811111+0000 /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa-9772 ERROR Failed to setup (exchange) database, exit code 4
SKIP test_merchant_api_rsa (exit status: 77)

SKIP: test_kyc_api
==================

2022-06-14T08:46:16.868225+0000 test-kyc-api-9843 INFO Using fakebank http://localhost:8082/2/ on port 8082
2022-06-14T08:46:16.868587+0000 test-kyc-api-9843 INFO exchange payto: payto://x-taler-bank/localhost/2?receiver-name=2
2022-06-14T08:46:16.868608+0000 test-kyc-api-9843 INFO user42_payto: payto://x-taler-bank/localhost/42?receiver-name=42
2022-06-14T08:46:16.868617+0000 test-kyc-api-9843 INFO user43_payto: payto://x-taler-bank/localhost/43?receiver-name=43
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:38: NOTICE:  drop cascades to 4 other objects
DETAIL:  drop cascades to constraint merchant_deposits_signkey_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_refund_proofs_signkey_serial_fkey on table merchant_refund_proofs
drop cascades to constraint merchant_transfer_signatures_signkey_serial_fkey on table merchant_transfer_signatures
drop cascades to constraint merchant_deposit_to_transfer_signkey_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:39: NOTICE:  drop cascades to 6 other objects
DETAIL:  drop cascades to constraint merchant_keys_merchant_serial_fkey on table merchant_keys
drop cascades to constraint merchant_accounts_merchant_serial_fkey on table merchant_accounts
drop cascades to constraint merchant_inventory_merchant_serial_fkey on table merchant_inventory
drop cascades to constraint merchant_orders_merchant_serial_fkey on table merchant_orders
drop cascades to constraint merchant_contract_terms_merchant_serial_fkey on table merchant_contract_terms
drop cascades to constraint merchant_tip_reserves_merchant_serial_fkey on table merchant_tip_reserves
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:41: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_deposits_account_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_transfers_account_serial_fkey on table merchant_transfers
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:42: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_inventory_locks_product_serial_fkey on table merchant_inventory_locks
drop cascades to constraint merchant_order_locks_product_serial_fkey on table merchant_order_locks
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:44: NOTICE:  table "merchant_accounts" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:45: NOTICE:  drop cascades to constraint merchant_order_locks_order_serial_fkey on table merchant_order_locks
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:47: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_deposits_order_serial_fkey on table merchant_deposits
drop cascades to constraint merchant_refunds_order_serial_fkey on table merchant_refunds
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:48: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_transfer_to_coin_deposit_serial_fkey on table merchant_transfer_to_coin
drop cascades to constraint merchant_deposit_to_transfer_deposit_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:49: NOTICE:  drop cascades to constraint merchant_refund_proofs_refund_serial_fkey on table merchant_refund_proofs
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:51: NOTICE:  table "merchant_credits" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:52: NOTICE:  drop cascades to 3 other objects
DETAIL:  drop cascades to constraint merchant_transfer_signatures_credit_serial_fkey on table merchant_transfer_signatures
drop cascades to constraint merchant_transfer_to_coin_credit_serial_fkey on table merchant_transfer_to_coin
drop cascades to constraint merchant_deposit_to_transfer_credit_serial_fkey on table merchant_deposit_to_transfer
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:54: NOTICE:  table "merchant_transfer_by_coin" does not exist, skipping
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:57: NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to constraint merchant_tip_reserve_keys_reserve_serial_fkey on table merchant_tip_reserve_keys
drop cascades to constraint merchant_tips_reserve_serial_fkey on table merchant_tips
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:59: NOTICE:  drop cascades to constraint merchant_tip_pickups_tip_serial_fkey on table merchant_tip_pickups
psql:/home/ttn/te/share/taler/sql/merchant/drop0001.sql:60: NOTICE:  drop cascades to constraint merchant_tip_pickup_signatures_pickup_serial_fkey on table merchant_tip_pickup_signatures
psql:/home/ttn/te/share/taler/sql/exchange/drop0001.sql:117: ERROR:  Patch exchange-0001 is not installed, so it can't be uninstalled!
CONTEXT:  PL/pgSQL function _v.unregister_patch(text) line 17 at RAISE
2022-06-14T08:46:17.880955+0000 taler-exchange-dbinit-9887 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/drop0001.sql: psql exit code was 3
2022-06-14T08:46:17.881161+0000 taler-exchange-dbinit-9887 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/drop*'
2022-06-14T08:46:17.881244+0000 taler-exchange-dbinit-9887 ERROR Could not drop tables as requested. Either database was not yet initialized, or permission denied. Consult the logs. Will still try to create new tables.
psql:/home/ttn/te/share/taler/sql/exchange/exchange-0001.sql:4150: ERROR:  "purse_requests" is a partitioned table
DETAIL:  Partitioned tables cannot have BEFORE / FOR EACH ROW triggers.
2022-06-14T08:46:19.154566+0000 taler-exchange-dbinit-9887 WARNING Could not run PSQL on file /home/ttn/te/share/taler//sql/exchange/exchange-0001.sql: psql exit code was 3
2022-06-14T08:46:19.154647+0000 taler-exchange-dbinit-9887 WARNING Failed to load SQL statements from `/home/ttn/te/share/taler//sql/exchange/exchange-*'
Failed to initialize database.
2022-06-14T08:46:19.156488+0000 test-kyc-api-9843 ERROR Failed to setup (exchange) database, exit code 4
SKIP test_kyc_api (exit status: 77)

FAIL: test-merchant-walletharness.sh
====================================

2022-06-14T08:46:20.155Z taler-wallet-cli.ts TRACE running wallet-cli with [
  [
    "/usr/bin/node",
    "/usr/bin/taler-wallet-cli",
    "testing",
    "run-integrationtests",
    "--suites",
    "merchant"
  ]
]
testsuite root directory:  /home/ttn/te/tmp/taler-integrationtests-arqlyO
running merchant-exchange-confusion with timeout 60000ms
running test merchant-exchange-confusion in worker process
running test merchant-exchange-confusion
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-exchange-confusion
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-exchange-confusion/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-exchange-confusion/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test merchant-exchange-confusion finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-exchange-confusion","timeSec":0.826,"status":"fail"}
running merchant-instances with timeout 60000ms
running test merchant-instances in worker process
running test merchant-instances
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances
spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances/merchant-testmerchant-1.conf'
spawned process (merchant-testmerchant-1) with pid 10002
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) not ready: Error: connect ECONNREFUSED 127.0.0.1:8083
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) available
{ currency: 'TESTKUDOS',
  name: 'taler-merchant',
  version: '3:0:1' }
adding instance
adding instance
requesting instances with auth { method: 'external' }
{ Error: Request failed with status code 401
    at createError (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/http.js:260:11)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1145:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  config:
   { url: 'http://localhost:8083/management/instances',
     method: 'get',
     headers:
      { Accept: 'application/json, text/plain, */*',
        'User-Agent': 'axios/0.21.1' },
     transformRequest: [ [Function: transformRequest] ],
     transformResponse: [ [Function: transformResponse] ],
     timeout: 0,
     adapter: [Function: httpAdapter],
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     maxBodyLength: -1,
     validateStatus: [Function: validateStatus],
     data: undefined },
  request:
   ClientRequest {
     _events:
      [Object: null prototype] {
        socket: [Function],
        abort: [Function],
        aborted: [Function],
        connect: [Function],
        error: [Function],
        timeout: [Function],
        prefinish: [Function: requestOnPrefinish] },
     _eventsCount: 7,
     _maxListeners: undefined,
     output: [],
     outputEncodings: [],
     outputCallbacks: [],
     outputSize: 0,
     writable: true,
     _last: true,
     chunkedEncoding: false,
     shouldKeepAlive: false,
     useChunkedEncodingByDefault: false,
     sendDate: false,
     _removedConnection: false,
     _removedContLen: false,
     _removedTE: false,
     _contentLength: 0,
     _hasBody: true,
     _trailer: '',
     finished: true,
     _headerSent: true,
     socket:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 335,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     connection:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 335,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     _header:
      'GET /management/instances HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
     _onPendingData: [Function: noopPendingOutput],
     agent:
      Agent {
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        defaultPort: 80,
        protocol: 'http:',
        options: [Object],
        requests: {},
        sockets: [Object],
        freeSockets: {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256 },
     socketPath: undefined,
     timeout: undefined,
     method: 'GET',
     insecureHTTPParser: undefined,
     path: '/management/instances',
     _ended: true,
     res:
      IncomingMessage {
        _readableState: [ReadableState],
        readable: false,
        _events: [Object],
        _eventsCount: 3,
        _maxListeners: undefined,
        socket: [Socket],
        connection: [Socket],
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        httpVersion: '1.1',
        complete: true,
        headers: [Object],
        rawHeaders: [Array],
        trailers: {},
        rawTrailers: [],
        aborted: false,
        upgrade: false,
        url: '',
        method: null,
        statusCode: 401,
        statusMessage: 'Unauthorized',
        client: [Socket],
        _consuming: false,
        _dumped: false,
        req: [Circular],
        responseUrl: 'http://localhost:8083/management/instances',
        redirects: [] },
     aborted: undefined,
     timeoutCb: null,
     upgradeOrConnect: false,
     parser: null,
     maxHeadersCount: null,
     _redirectable:
      Writable {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        _options: [Object],
        _ended: true,
        _ending: true,
        _redirectCount: 0,
        _redirects: [],
        _requestBodyLength: 0,
        _requestBodyBuffers: [],
        _onNativeResponse: [Function],
        _currentRequest: [Circular],
        _currentUrl: 'http://localhost:8083/management/instances' },
     [Symbol(isCorked)]: false,
     [Symbol(outHeadersKey)]:
      [Object: null prototype] { accept: [Array], 'user-agent': [Array], host: [Array] } },
  response:
   { status: 401,
     statusText: 'Unauthorized',
     headers:
      { date: 'Tue, 14 Jun 2022 08:46:24 GMT',
        connection: 'close',
        'access-control-allow-origin': '*',
        'access-control-expose-headers': '*',
        'content-type': 'application/json',
        'content-length': '138' },
     config:
      { url: 'http://localhost:8083/management/instances',
        method: 'get',
        headers: [Object],
        transformRequest: [Array],
        transformResponse: [Array],
        timeout: 0,
        adapter: [Function: httpAdapter],
        xsrfCookieName: 'XSRF-TOKEN',
        xsrfHeaderName: 'X-XSRF-TOKEN',
        maxContentLength: -1,
        maxBodyLength: -1,
        validateStatus: [Function: validateStatus],
        data: undefined },
     request:
      ClientRequest {
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Socket],
        connection: [Socket],
        _header:
         'GET /management/instances HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        timeout: undefined,
        method: 'GET',
        insecureHTTPParser: undefined,
        path: '/management/instances',
        _ended: true,
        res: [IncomingMessage],
        aborted: undefined,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Writable],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     data:
      { code: 2015,
        hint:
         'The merchant refused the request due to lack of authorization.',
        detail: 'Check \'Authorization\' header' } },
  isAxiosError: true,
  toJSON: [Function: toJSON] }
{ Error: Request failed with status code 401
    at createError (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/http.js:260:11)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1145:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  config:
   { url: 'http://localhost:8083/management/instances/myinst',
     method: 'delete',
     headers:
      { Accept: 'application/json, text/plain, */*',
        'User-Agent': 'axios/0.21.1' },
     transformRequest: [ [Function: transformRequest] ],
     transformResponse: [ [Function: transformResponse] ],
     timeout: 0,
     adapter: [Function: httpAdapter],
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     maxBodyLength: -1,
     validateStatus: [Function: validateStatus],
     data: undefined },
  request:
   ClientRequest {
     _events:
      [Object: null prototype] {
        socket: [Function],
        abort: [Function],
        aborted: [Function],
        connect: [Function],
        error: [Function],
        timeout: [Function],
        prefinish: [Function: requestOnPrefinish] },
     _eventsCount: 7,
     _maxListeners: undefined,
     output: [],
     outputEncodings: [],
     outputCallbacks: [],
     outputSize: 0,
     writable: true,
     _last: true,
     chunkedEncoding: false,
     shouldKeepAlive: false,
     useChunkedEncodingByDefault: false,
     sendDate: false,
     _removedConnection: false,
     _removedContLen: false,
     _removedTE: false,
     _contentLength: 0,
     _hasBody: true,
     _trailer: '',
     finished: true,
     _headerSent: true,
     socket:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 419,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     connection:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 419,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     _header:
      'DELETE /management/instances/myinst HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
     _onPendingData: [Function: noopPendingOutput],
     agent:
      Agent {
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        defaultPort: 80,
        protocol: 'http:',
        options: [Object],
        requests: {},
        sockets: [Object],
        freeSockets: {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256 },
     socketPath: undefined,
     timeout: undefined,
     method: 'DELETE',
     insecureHTTPParser: undefined,
     path: '/management/instances/myinst',
     _ended: true,
     res:
      IncomingMessage {
        _readableState: [ReadableState],
        readable: false,
        _events: [Object],
        _eventsCount: 3,
        _maxListeners: undefined,
        socket: [Socket],
        connection: [Socket],
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        httpVersion: '1.1',
        complete: true,
        headers: [Object],
        rawHeaders: [Array],
        trailers: {},
        rawTrailers: [],
        aborted: false,
        upgrade: false,
        url: '',
        method: null,
        statusCode: 401,
        statusMessage: 'Unauthorized',
        client: [Socket],
        _consuming: false,
        _dumped: false,
        req: [Circular],
        responseUrl: 'http://localhost:8083/management/instances/myinst',
        redirects: [] },
     aborted: undefined,
     timeoutCb: null,
     upgradeOrConnect: false,
     parser: null,
     maxHeadersCount: null,
     _redirectable:
      Writable {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        _options: [Object],
        _ended: true,
        _ending: true,
        _redirectCount: 0,
        _redirects: [],
        _requestBodyLength: 0,
        _requestBodyBuffers: [],
        _onNativeResponse: [Function],
        _currentRequest: [Circular],
        _currentUrl: 'http://localhost:8083/management/instances/myinst' },
     [Symbol(isCorked)]: false,
     [Symbol(outHeadersKey)]:
      [Object: null prototype] { accept: [Array], 'user-agent': [Array], host: [Array] } },
  response:
   { status: 401,
     statusText: 'Unauthorized',
     headers:
      { date: 'Tue, 14 Jun 2022 08:46:24 GMT',
        connection: 'close',
        'access-control-allow-origin': '*',
        'access-control-expose-headers': '*',
        'content-type': 'application/json',
        'content-length': '138' },
     config:
      { url: 'http://localhost:8083/management/instances/myinst',
        method: 'delete',
        headers: [Object],
        transformRequest: [Array],
        transformResponse: [Array],
        timeout: 0,
        adapter: [Function: httpAdapter],
        xsrfCookieName: 'XSRF-TOKEN',
        xsrfHeaderName: 'X-XSRF-TOKEN',
        maxContentLength: -1,
        maxBodyLength: -1,
        validateStatus: [Function: validateStatus],
        data: undefined },
     request:
      ClientRequest {
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Socket],
        connection: [Socket],
        _header:
         'DELETE /management/instances/myinst HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        timeout: undefined,
        method: 'DELETE',
        insecureHTTPParser: undefined,
        path: '/management/instances/myinst',
        _ended: true,
        res: [IncomingMessage],
        aborted: undefined,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Writable],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     data:
      { code: 2015,
        hint:
         'The merchant refused the request due to lack of authorization.',
        detail: 'Check \'Authorization\' header' } },
  isAxiosError: true,
  toJSON: [Function: toJSON] }
shutting down
killing process 10002
process merchant-testmerchant-1 exited
test merchant-instances finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-instances","timeSec":2.663,"status":"pass"}
running merchant-instances-delete with timeout 60000ms
running test merchant-instances-delete in worker process
running test merchant-instances-delete
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances-delete
spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances-delete/merchant-testmerchant-1.conf'
spawned process (merchant-testmerchant-1) with pid 10061
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) not ready: Error: connect ECONNREFUSED 127.0.0.1:8083
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) available
{ currency: 'TESTKUDOS',
  name: 'taler-merchant',
  version: '3:0:1' }
adding instance
adding instance
Got expected exception { Error: Request failed with status code 401
    at createError (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/share/taler-wallet-cli/node_modules/.pnpm/axios@0.21.1/node_modules/axios/lib/adapters/http.js:260:11)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1145:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  config:
   { url: 'http://localhost:8083/management/instances/myinst',
     method: 'delete',
     headers:
      { Accept: 'application/json, text/plain, */*',
        Authorization: 'Bearer secret-token:invalid',
        'User-Agent': 'axios/0.21.1' },
     transformRequest: [ [Function: transformRequest] ],
     transformResponse: [ [Function: transformResponse] ],
     timeout: 0,
     adapter: [Function: httpAdapter],
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     maxBodyLength: -1,
     validateStatus: [Function: validateStatus],
     data: undefined },
  request:
   ClientRequest {
     _events:
      [Object: null prototype] {
        socket: [Function],
        abort: [Function],
        aborted: [Function],
        connect: [Function],
        error: [Function],
        timeout: [Function],
        prefinish: [Function: requestOnPrefinish] },
     _eventsCount: 7,
     _maxListeners: undefined,
     output: [],
     outputEncodings: [],
     outputCallbacks: [],
     outputSize: 0,
     writable: true,
     _last: true,
     chunkedEncoding: false,
     shouldKeepAlive: false,
     useChunkedEncodingByDefault: false,
     sendDate: false,
     _removedConnection: false,
     _removedContLen: false,
     _removedTE: false,
     _contentLength: 0,
     _hasBody: true,
     _trailer: '',
     finished: true,
     _headerSent: true,
     socket:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 269,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     connection:
      Socket {
        connecting: false,
        _hadError: false,
        _handle: [TCP],
        _parent: null,
        _host: 'localhost',
        _readableState: [ReadableState],
        readable: true,
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: null,
        _server: null,
        parser: null,
        _httpMessage: [Circular],
        [Symbol(asyncId)]: 269,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0 },
     _header:
      'DELETE /management/instances/myinst HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nAuthorization: Bearer secret-token:invalid\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
     _onPendingData: [Function: noopPendingOutput],
     agent:
      Agent {
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        defaultPort: 80,
        protocol: 'http:',
        options: [Object],
        requests: {},
        sockets: [Object],
        freeSockets: {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256 },
     socketPath: undefined,
     timeout: undefined,
     method: 'DELETE',
     insecureHTTPParser: undefined,
     path: '/management/instances/myinst',
     _ended: true,
     res:
      IncomingMessage {
        _readableState: [ReadableState],
        readable: false,
        _events: [Object],
        _eventsCount: 3,
        _maxListeners: undefined,
        socket: [Socket],
        connection: [Socket],
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        httpVersion: '1.1',
        complete: true,
        headers: [Object],
        rawHeaders: [Array],
        trailers: {},
        rawTrailers: [],
        aborted: false,
        upgrade: false,
        url: '',
        method: null,
        statusCode: 401,
        statusMessage: 'Unauthorized',
        client: [Socket],
        _consuming: false,
        _dumped: false,
        req: [Circular],
        responseUrl: 'http://localhost:8083/management/instances/myinst',
        redirects: [] },
     aborted: undefined,
     timeoutCb: null,
     upgradeOrConnect: false,
     parser: null,
     maxHeadersCount: null,
     _redirectable:
      Writable {
        _writableState: [WritableState],
        writable: true,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        _options: [Object],
        _ended: true,
        _ending: true,
        _redirectCount: 0,
        _redirects: [],
        _requestBodyLength: 0,
        _requestBodyBuffers: [],
        _onNativeResponse: [Function],
        _currentRequest: [Circular],
        _currentUrl: 'http://localhost:8083/management/instances/myinst' },
     [Symbol(isCorked)]: false,
     [Symbol(outHeadersKey)]:
      [Object: null prototype] {
        accept: [Array],
        authorization: [Array],
        'user-agent': [Array],
        host: [Array] } },
  response:
   { status: 401,
     statusText: 'Unauthorized',
     headers:
      { date: 'Tue, 14 Jun 2022 08:46:27 GMT',
        connection: 'close',
        'access-control-allow-origin': '*',
        'access-control-expose-headers': '*',
        'content-type': 'application/json',
        'content-length': '138' },
     config:
      { url: 'http://localhost:8083/management/instances/myinst',
        method: 'delete',
        headers: [Object],
        transformRequest: [Array],
        transformResponse: [Array],
        timeout: 0,
        adapter: [Function: httpAdapter],
        xsrfCookieName: 'XSRF-TOKEN',
        xsrfHeaderName: 'X-XSRF-TOKEN',
        maxContentLength: -1,
        maxBodyLength: -1,
        validateStatus: [Function: validateStatus],
        data: undefined },
     request:
      ClientRequest {
        _events: [Object],
        _eventsCount: 7,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Socket],
        connection: [Socket],
        _header:
         'DELETE /management/instances/myinst HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nAuthorization: Bearer secret-token:invalid\r\nUser-Agent: axios/0.21.1\r\nHost: localhost:8083\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        timeout: undefined,
        method: 'DELETE',
        insecureHTTPParser: undefined,
        path: '/management/instances/myinst',
        _ended: true,
        res: [IncomingMessage],
        aborted: undefined,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Writable],
        [Symbol(isCorked)]: false,
        [Symbol(outHeadersKey)]: [Object] },
     data:
      { code: 2015,
        hint:
         'The merchant refused the request due to lack of authorization.',
        detail: 'Check \'Authorization\' header' } },
  isAxiosError: true,
  toJSON: [Function: toJSON] }
shutting down
killing process 10061
process merchant-testmerchant-1 exited
test merchant-instances-delete finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-instances-delete","timeSec":2.691,"status":"pass"}
running merchant-instances-urls with timeout 60000ms
running test merchant-instances-urls in worker process
running test merchant-instances-urls
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances-urls
spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-instances-urls/merchant-testmerchant-1.conf'
spawned process (merchant-testmerchant-1) with pid 10121
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) not ready: Error: connect ECONNREFUSED 127.0.0.1:8083
pinging merchant (testmerchant-1)
service merchant (testmerchant-1) available
checking http://localhost:8083/private/instances/default/instances/default/config, expected 404, got 404
checking http://localhost:8083/instances/default/private/instances, expected 404, got 404
checking http://localhost:8083/instances/foo/private/instances, expected 404, got 404
checking http://localhost:8083/instances/myinst/private/instances, expected 404, got 404
checking http://localhost:8083/config, expected 200, got 200
checking http://localhost:8083/instances/default/config, expected 200, got 200
checking http://localhost:8083/instances/myinst/config, expected 200, got 200
checking http://localhost:8083/instances/foo/config, expected 404, got 404
checking http://localhost:8083/instances/default/instances/config, expected 404, got 404
checking http://localhost:8083/private/instances/myinst/config, expected 404, got 404
checking http://localhost:8083/instances/myinst/private/orders, expected 401, got 401
checking http://localhost:8083/instances/myinst/private/orders, expected 401, got 401
checking http://localhost:8083/instances/myinst/private/orders, expected 200, got 200
checking http://localhost:8083/private/instances/myinst/orders, expected 404, got 404
shutting down
killing process 10121
process merchant-testmerchant-1 exited
test merchant-instances-urls finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-instances-urls","timeSec":2.231,"status":"pass"}
running merchant-longpolling with timeout 60000ms
running test merchant-longpolling in worker process
running test merchant-longpolling
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-longpolling
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-longpolling/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-longpolling/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test merchant-longpolling finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-longpolling","timeSec":0.629,"status":"fail"}
running merchant-spec-public-orders with timeout 60000ms
running test merchant-spec-public-orders in worker process
running test merchant-spec-public-orders
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-spec-public-orders
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-spec-public-orders/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-spec-public-orders/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test merchant-spec-public-orders finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-spec-public-orders","timeSec":1.914,"status":"fail"}
running merchant-refund-api with timeout 60000ms
running test merchant-refund-api in worker process
running test merchant-refund-api
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-refund-api
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-refund-api/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/merchant-refund-api/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test merchant-refund-api finished in worker
process exited code=0 signal=null
parent: got result {"name":"merchant-refund-api","timeSec":3.939,"status":"fail"}
running payment-forgettable with timeout 60000ms
running test payment-forgettable in worker process
running test payment-forgettable
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/payment-forgettable
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/payment-forgettable/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/payment-forgettable/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test payment-forgettable finished in worker
process exited code=0 signal=null
parent: got result {"name":"payment-forgettable","timeSec":4.214,"status":"fail"}
running paywall-flow with timeout 60000ms
running test paywall-flow in worker process
running test paywall-flow
running test in directory /home/ttn/te/tmp/taler-integrationtests-arqlyO/paywall-flow
running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/paywall-flow/bank.conf' django migrate
child process exited (127 / null)
FATAL: test failed with exception Error: Unexpected exit code 127 for 'taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-arqlyO/paywall-flow/bank.conf' django migrate'
    at ChildProcess.proc.on (/usr/share/taler-wallet-cli/node_modules/taler-wallet-cli/src/integrationtests/harness.ts:119:16)
    at ChildProcess.emit (events.js:198:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
shutting down
test paywall-flow finished in worker
process exited code=0 signal=null
parent: got result {"name":"paywall-flow","timeSec":0.628,"status":"fail"}
See /home/ttn/te/tmp/taler-integrationtests-arqlyO/results.json for details
Skipped: 0/9
Failed: 6/9
Passed: 3/9
FAIL test-merchant-walletharness.sh (exit status: 1)

SKIP: test_merchant_instance_response.sh
========================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_instance_response.sh (exit status: 77)

SKIP: test_merchant_instance_purge.sh
=====================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_instance_purge.sh (exit status: 77)

SKIP: test_merchant_reserve_creation.sh
=======================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_reserve_creation.sh (exit status: 77)

SKIP: test_merchant_product_creation.sh
=======================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_product_creation.sh (exit status: 77)

SKIP: test_merchant_order_creation.sh
=====================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_order_creation.sh (exit status: 77)

SKIP: test_merchant_transfer_tracking.sh
========================================

Testing for jqinitialize_taler_system.sh: line 64: jq: command not found
 SKIP: jq required
SKIP test_merchant_transfer_tracking.sh (exit status: 77)

test-suite.log (53,335 bytes)   

ttn

2022-06-26 19:27

developer   ~0018940

With a6c9e653f0d46b0d0c3acc39e16cc35f2dd627cf, the fix appears in the shell script.
Works for me!
Marking RESOLVED.

Issue History

Date Modified Username Field Change
2022-03-26 19:12 ttn New Issue
2022-03-26 19:12 ttn Status new => assigned
2022-03-26 19:12 ttn Assigned To => Christian Grothoff
2022-03-26 19:13 ttn Relationship added parent of 0007151
2022-03-26 19:37 ttn Assigned To Christian Grothoff => ttn
2022-03-26 19:37 ttn Assigned To ttn => sebasjm
2022-04-05 03:08 ttn Note Added: 0018851
2022-04-05 08:44 Christian Grothoff Assigned To sebasjm => Florian Dold
2022-04-05 08:45 Christian Grothoff Note Added: 0018852
2022-06-14 10:59 ttn Note Added: 0018931
2022-06-14 10:59 ttn File Added: test-suite.log
2022-06-26 19:27 ttn Status assigned => resolved
2022-06-26 19:27 ttn Resolution open => fixed
2022-06-26 19:27 ttn Note Added: 0018940
2022-10-20 10:47 Christian Grothoff Fixed in Version => 0.9
2022-10-20 10:48 Christian Grothoff Target Version => 0.9
2022-11-04 20:52 Christian Grothoff Status resolved => closed
2023-04-13 20:36 Florian Dold Category wallet (TS core) => wallet-core