View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007151 | Taler | merchant backoffice SPA | public | 2022-01-20 11:11 | 2022-11-04 20:53 |
Reporter | ttn | Assigned To | Christian Grothoff | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | reopened | ||
Platform | QEMU | OS | Ubuntu | OS Version | 20.04.3 |
Product Version | git (master) | ||||
Target Version | 0.9 | Fixed in Version | 0.9 | ||
Summary | 0007151: "make check" fails on test-merchant-walletharness.sh | ||||
Description | This was the only failure in all 4 VMs (2 Alpine, 1 Parabola, 1 Ubuntu). Log attached. | ||||
Tags | No tags attached. | ||||
related to | 0007200 | closed | Christian Grothoff | configure script accepts old MHD |
child of | 0007208 | closed | Florian Dold | taler-wallet-cli does not exit failurefully if taler-bank-manage not found |
|
test-suite.log (37,740 bytes)
====================================================== taler-merchant 0.8.4: src/testing/test-suite.log ====================================================== # TOTAL: 9 # PASS: 2 # SKIP: 6 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-merchant-walletharness.sh ==================================== 2022-01-20T09:58:15.534Z 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-Jcqahv 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-Jcqahv/merchant-exchange-confusion running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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.831,"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-Jcqahv/merchant-instances spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/merchant-instances/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 10263 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)]: 327, [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)]: 327, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Thu, 20 Jan 2022 09:58:19 GMT' }, 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)]: 412, [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)]: 412, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Thu, 20 Jan 2022 09:58:19 GMT' }, 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 10263 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.438,"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-Jcqahv/merchant-instances-delete spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/merchant-instances-delete/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 10322 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)]: 262, [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)]: 262, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Thu, 20 Jan 2022 09:58:22 GMT' }, 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 10322 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.743,"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-Jcqahv/merchant-instances-urls spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/merchant-instances-urls/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 10381 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 10381 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.332,"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-Jcqahv/merchant-longpolling running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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.712,"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-Jcqahv/merchant-spec-public-orders running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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":0.719,"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-Jcqahv/merchant-refund-api running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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":0.734,"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-Jcqahv/payment-forgettable running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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":0.741,"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-Jcqahv/paywall-flow running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-Jcqahv/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-Jcqahv/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.748,"status":"fail"} See /home/ttn/te/tmp/taler-integrationtests-Jcqahv/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_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_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_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_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_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) |
|
Forgot to mention: HEAD == 08618f9b74f8881680f0315328539b3d2900ce25 |
|
WIth newest (HEAD == 152b9b98282419937af410f53837bb7d3590c9a0), still fails. Additionally, it looks like test_merchant_api fails as well. Log attached. |
|
WIth HEAD == 79762a92ca0635074d62a2c4237003e87a6b0bb5, stil fails. Log attached. test-suite-2.log (37,739 bytes)
====================================================== taler-merchant 0.8.4: src/testing/test-suite.log ====================================================== # TOTAL: 10 # PASS: 3 # SKIP: 6 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-merchant-walletharness.sh ==================================== 2022-03-02T23:15:17.543Z 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-0zIKVV 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-0zIKVV/merchant-exchange-confusion running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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.864,"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-0zIKVV/merchant-instances spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/merchant-instances/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 16471 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)]: 330, [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)]: 330, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Wed, 02 Mar 2022 23:15:21 GMT' }, 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)]: 416, [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)]: 416, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Wed, 02 Mar 2022 23:15:21 GMT' }, 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 16471 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.637,"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-0zIKVV/merchant-instances-delete spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/merchant-instances-delete/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 16530 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)]: 259, [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)]: 259, [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: { connection: 'close', 'content-length': '138', 'content-type': 'application/json', 'access-control-expose-headers': '*', 'access-control-allow-origin': '*', date: 'Wed, 02 Mar 2022 23:15:24 GMT' }, 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 16530 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.73,"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-0zIKVV/merchant-instances-urls spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/merchant-instances-urls/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 16589 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 16589 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.281,"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-0zIKVV/merchant-longpolling running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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.713,"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-0zIKVV/merchant-spec-public-orders running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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":0.645,"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-0zIKVV/merchant-refund-api running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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":0.744,"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-0zIKVV/payment-forgettable running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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":0.75,"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-0zIKVV/paywall-flow running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-0zIKVV/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-0zIKVV/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.725,"status":"fail"} See /home/ttn/te/tmp/taler-integrationtests-0zIKVV/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_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_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_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_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_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) |
|
With HEAD == 1cd108d14e73c9fc0d4cc8555d8c16d08796f365, still fails. (Dumps core, now.) Logs attached. .ttn.merchant-make-check.log (7,238 bytes)
+ export PATH=/home/ttn/te/bin:/mnt/hack:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin + PATH=/home/ttn/te/bin:/mnt/hack:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin + export TMPDIR=/home/ttn/te/tmp + TMPDIR=/home/ttn/te/tmp + export PGHOST=/home/ttn/te/pg + PGHOST=/home/ttn/te/pg + make check Making check in . make[1]: Entering directory '/home/ttn/build/GNU/T/merchant' make[1]: Leaving directory '/home/ttn/build/GNU/T/merchant' Making check in src make[1]: Entering directory '/home/ttn/build/GNU/T/merchant/src' Making check in include make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/include' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/include' Making check in mustach make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/mustach' make test_mustach_jansson run-original-tests.sh make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/mustach' CC test_mustach_jansson.o CCLD test_mustach_jansson make[3]: Nothing to be done for 'run-original-tests.sh'. make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/mustach' make check-TESTS make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/mustach' make[4]: Entering directory '/home/ttn/build/GNU/T/merchant/src/mustach' SKIP: run-original-tests.sh PASS: test_mustach_jansson ============================================================================ Testsuite summary for taler-merchant 0.8.4 ============================================================================ # TOTAL: 2 # PASS: 1 # SKIP: 1 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[4]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/mustach' make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/mustach' make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/mustach' Making check in backenddb make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/backenddb' make test-merchantdb-postgres make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/backenddb' CC test_merchantdb.o CCLD test-merchantdb-postgres make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/backenddb' make check-TESTS make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/backenddb' make[4]: Entering directory '/home/ttn/build/GNU/T/merchant/src/backenddb' PASS: test-merchantdb-postgres ============================================================================ Testsuite summary for taler-merchant 0.8.4 ============================================================================ # TOTAL: 1 # PASS: 1 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[4]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/backenddb' make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/backenddb' make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/backenddb' Making check in backend make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/backend' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/backend' Making check in lib make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/lib' make test_merchant_api_common make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/lib' CC test_merchant_api_common.o CCLD test_merchant_api_common make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/lib' make check-TESTS make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/lib' make[4]: Entering directory '/home/ttn/build/GNU/T/merchant/src/lib' PASS: test_merchant_api_common ============================================================================ Testsuite summary for taler-merchant 0.8.4 ============================================================================ # TOTAL: 1 # PASS: 1 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[4]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/lib' make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/lib' make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/lib' Making check in testing make[2]: Entering directory '/home/ttn/build/GNU/T/merchant/src/testing' make test_merchant_api_cs test_merchant_api_rsa test_kyc_api test-merchant-walletharness.sh test_merchant_instance_response.sh test_merchant_product_creation.sh test_merchant_reserve_creation.sh test_merchant_order_creation.sh test_merchant_instance_purge.sh test_merchant_transfer_tracking.sh make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/testing' CC test_merchant_api.o CCLD test_merchant_api_cs CCLD test_merchant_api_rsa CC test_kyc_api.o CCLD test_kyc_api make[3]: Nothing to be done for 'test-merchant-walletharness.sh'. make[3]: Nothing to be done for 'test_merchant_instance_response.sh'. make[3]: Nothing to be done for 'test_merchant_product_creation.sh'. make[3]: Nothing to be done for 'test_merchant_reserve_creation.sh'. make[3]: Nothing to be done for 'test_merchant_order_creation.sh'. make[3]: Nothing to be done for 'test_merchant_instance_purge.sh'. make[3]: Nothing to be done for 'test_merchant_transfer_tracking.sh'. make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/testing' make check-TESTS make[3]: Entering directory '/home/ttn/build/GNU/T/merchant/src/testing' make[4]: Entering directory '/home/ttn/build/GNU/T/merchant/src/testing' PASS: test_merchant_api_cs ../../test-driver: line 107: 10455 Aborted (core dumped) "$@" > $log_file 2>&1 FAIL: test_merchant_api_rsa SKIP: test_kyc_api FAIL: test-merchant-walletharness.sh SKIP: test_merchant_instance_response.sh SKIP: test_merchant_product_creation.sh SKIP: test_merchant_reserve_creation.sh SKIP: test_merchant_order_creation.sh SKIP: test_merchant_instance_purge.sh SKIP: test_merchant_transfer_tracking.sh ============================================================================ Testsuite summary for taler-merchant 0.8.4 ============================================================================ # TOTAL: 10 # PASS: 1 # SKIP: 7 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 ============================================================================ See src/testing/test-suite.log Please report to taler-bug@gnunet.org ============================================================================ make[4]: *** [Makefile:1156: test-suite.log] Error 1 make[4]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/testing' make[3]: *** [Makefile:1264: check-TESTS] Error 2 make[3]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/testing' make[2]: *** [Makefile:1415: check-am] Error 2 make[2]: Leaving directory '/home/ttn/build/GNU/T/merchant/src/testing' make[1]: *** [Makefile:413: check-recursive] Error 1 make[1]: Leaving directory '/home/ttn/build/GNU/T/merchant/src' make: *** [Makefile:472: check-recursive] Error 1 |
|
void GNUNET_CURL_fini (struct GNUNET_CURL_Context *ctx) { /* all jobs must have been cancelled at this time, assert this */ GNUNET_assert (NULL == ctx->jobs_head); => that is the failing assertion. However, it doesn't fail here for me. Can you: 1) report your MHD version? 2) tell us what ctx->jobs_head contains (using gdb on the core, print *ctx->jobs_head) |
|
Unfortunately, the core file is not very helpful: (gdb) p ctx->jobs_head value has been optimized out OTOH, i can report the MHD version: ttn@bub:~/build/GNU/T/merchant/src/testing$ apt-cache show libmicrohttpd-dev Package: libmicrohttpd-dev Architecture: amd64 Version: 0.9.66-1 Priority: optional Section: universe/libdevel Source: libmicrohttpd Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Bertrand Marc <bmarc@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 532 Depends: libmicrohttpd12 (= 0.9.66-1), libgnutls28-dev, libgcrypt-dev I see that 0.9.66 is less than 0.9.71, which is the documented minimum. I'll try to install a newer version and see what happens... |
|
Do compile it with debug symbols, too. Please. |
|
I recompiled GNUnet and merchant both with '-g -O0' and was able to reproduce the core dump. Here's what i see: (gdb) up #3 0x00007fa15e52cb65 in GNUNET_CURL_fini (ctx=0x55c95f826c80) at curl.c:819 819 GNUNET_assert (NULL == ctx->jobs_head); (gdb) p ctx->jobs_head $1 = (struct GNUNET_CURL_Job *) 0x55c95f8d6f30 (gdb) p *ctx->jobs_head $2 = {next = 0x0, prev = 0x0, easy_handle = 0x55c95f8ca240, ctx = 0x55c95f826c80, jcc = 0x7fa15e550a70 <version_completed_cb>, jcc_cls = 0x55c95f8b54e0, jcc_raw = 0x0, jcc_raw_cls = 0x0, db = {buf = 0x0, buf_size = 0, eno = 0}, job_headers = 0x55c95f8bda10} (gdb) p ctx->jobs_head->easy_handle $3 = (CURL *) 0x55c95f8ca240 (gdb) p *ctx->jobs_head->easy_handle Attempt to dereference a generic pointer. (gdb) p *ctx->jobs_head->ctx $4 = {multi = 0x55c95f8218d0, share = 0x55c95f826290, jobs_head = 0x55c95f8d6f30, jobs_tail = 0x55c95f8d6f30, common_headers = 0x55c95f8160f0, async_scope_id_header = 0x7fa15e913f70 "Taler-Correlation-Id", cb = 0x7fa15e52d270 <GNUNET_CURL_gnunet_scheduler_reschedule>, cb_cls = 0x7ffea4a0f688, userpass = 0x0, certtype = 0x0, certfile = 0x0, keyfile = 0x0, keypass = 0x0} I'll leave the VM up in case you want to suggest other avenues of inquiry. |
|
That's OK, I think I have what I need. |
|
Hmm. I cannot find it. Very strange. From what I can tell, the required cleanup _should_ have happened, but did not. Is this a heisenbug, or does it always happen on the target system? So far, I've failed to reproduce this... |
|
Anyway, summary for now: - what is crashing is the test, on otherwise successful exit - during the clean up of the curl context, we notice a curl request is still active and assert on that. - the curl request is for the auditor protocol version; unsure why it did not terminate (usually quick!) - the test does not wait for that request, it is triggered when a deposit goes for probabilistic auditing - the clean up is expected to be via exchange handle cleaning up auditor handles cleaning up auditor initialization including /version requests So the main problem is: why does the request not get cleaned up on exit? Following the code by reading, it seems it should be! I also looked at possibilities that we simply cleaned up the curl context before the exchange context. That does not seem to be the case. Alas, a backtrace might help to more firmly establish this. Valgrind also did not suggest any leaks or memory corruptions for this test. |
|
It's a heisenbug, unfortunately. I can reproduce it 80% of the time w/ the following sequence: - make uninstall - make clean - ./configure --prefix ~/te CFLAGS='-g -O0' - make - make install - make check The other 20% of the time, the _cs and _rsa tests pass (or are SKIPped), and the failure manifests later w/ the walletharness. |
|
I managed to grab a backtrace (this time, from the _cs core dump). Attached. bt (3,783 bytes)
ttn@bub:~/build/GNU/T/merchant/src/testing$ gdb $(pwd)/.libs/test_merchant_api_rsa /var/lib/apport/coredump/core._home_ttn_build_GNU_T_merchant_src_testing__libs_test_merchant_api_cs.1000.a2930aa6-6c46-4e2e-8129-f6328d1ac594.19665.27507 GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_rsa... warning: core file may not match specified executable file. [New LWP 19665] [New LWP 19762] [New LWP 19808] [New LWP 19761] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/home/ttn/build/GNU/T/merchant/src/testing/.libs/test_merchant_api_cs'. Program terminated with signal SIGABRT, Aborted. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. [Current thread is 1 (Thread 0x7fb37335e5c0 (LWP 19665))] (gdb) up #1 0x00007fb374842859 in __GI_abort () at abort.c:79 79 abort.c: No such file or directory. (gdb) up #2 0x00007fb374a4d0db in GNUNET_abort_ () at common_logging.c:281 281 abort (); (gdb) up #3 0x00007fb3746fcb65 in GNUNET_CURL_fini (ctx=0x557f9c103c80) at curl.c:819 819 GNUNET_assert (NULL == ctx->jobs_head); (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007fb374842859 in __GI_abort () at abort.c:79 #2 0x00007fb374a4d0db in GNUNET_abort_ () at common_logging.c:281 #3 0x00007fb3746fcb65 in GNUNET_CURL_fini (ctx=0x557f9c103c80) at curl.c:819 #4 0x00007fb374afd445 in authchange_cleanup (cls=0x557f9c125f60, cmd=0x557f9c132e70) at testing_api_cmd_change_auth.c:107 #5 0x00007fb374afca7f in batch_cleanup (cls=0x557f9c132c10, cmd=0x557f9c134de8) at testing_api_cmd_batch.c:100 #6 0x00007fb374b21216 in do_shutdown (cls=0x7fff829cdda0) at testing_api_loop.c:277 #7 0x00007fb374a9fa53 in GNUNET_SCHEDULER_do_work (sh=0x557f9c0fbbd0) at scheduler.c:2145 #8 0x00007fb374aa0794 in select_loop (sh=0x557f9c0fbbd0, context=0x7fff829cdd10) at scheduler.c:2442 #9 0x00007fb374a9b193 in GNUNET_SCHEDULER_run (task=0x7fb374b220cb <main_wrapper_exchange_connect>, task_cls=0x7fff829cdd80) at scheduler.c:738 #10 0x00007fb374b22b39 in TALER_TESTING_setup (main_cb=0x557f9a19b0f0 <run>, main_cb_cls=0x0, cfg=0x557f9c0fce90, exchanged=0x557f9c0f10f0, exchange_connect=1) at testing_api_loop.c:840 #11 0x00007fb374b1fe95 in TALER_TESTING_setup_with_exchange_cfg (cls=0x7fff829cdfb0, cfg=0x557f9c0fce90) at testing_api_helpers_exchange.c:819 #12 0x00007fb374a505db in GNUNET_CONFIGURATION_parse_and_run (filename=0x557f9c0fb110 "test_merchant_api-cs.conf", cb=0x7fb374b1f91d <TALER_TESTING_setup_with_exchange_cfg>, cb_cls=0x7fff829cdfb0) at configuration.c:349 #13 0x00007fb374b1f412 in TALER_TESTING_setup_with_exchange (main_cb=0x557f9a19b0f0 <run>, main_cb_cls=0x0, config_file=0x557f9c0fb110 "test_merchant_api-cs.conf") at testing_api_helpers_exchange.c:585 #14 0x0000557f9a19e9dd in main (argc=1, argv=0x7fff829ce0f8) at test_merchant_api.c:1692 |
|
Ah, there was a 2nd ctx object for changes in the authentication header. That disrupted the 'nice' sequence for the shutdown. Fixed in 6505f698..9b7716f9. |
|
Reopening. (Although the core dump no longer happens (in light testing), "make check" still fails on walletharness.sh.) |
|
The test-suite.log mentions results.json, so that's attached as well. |
|
I installed libmicrohttpd 0.9.75 under /usr/local, rebuilt, and the walletharness.sh still fails. |
|
I've run the tests several times locally now. No failures. From the logs: could it be that your bank(.git) is outdated? |
|
I wasn't aware that it was necessary to build/install it for merchant "make check". I see in the bank.git top-level README.md that the project is "deprecated" in favor of LibEuFin. Maybe my LibEuFin installation is outdated... |
|
I just rechecked src/testing/test-suite.log (attached), and realized that the taler-wallet-cli binary (in /usr/bin) is probably outdated. @Florian Dold When can the packages for Ubuntu be updated? test-suite-3.log (37,741 bytes)
====================================================== taler-merchant 0.8.4: src/testing/test-suite.log ====================================================== # TOTAL: 10 # PASS: 3 # SKIP: 6 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-merchant-walletharness.sh ==================================== 2022-03-26T17:06:36.626Z 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-63w478 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-63w478/merchant-exchange-confusion running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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.959,"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-63w478/merchant-instances spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-63w478/merchant-instances/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 38320 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)]: 332, [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)]: 332, [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: 'Sat, 26 Mar 2022 17:06:40 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)]: 418, [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)]: 418, [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: 'Sat, 26 Mar 2022 17:06:41 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 38320 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.618,"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-63w478/merchant-instances-delete spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-63w478/merchant-instances-delete/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 38379 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)]: 266, [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)]: 266, [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: 'Sat, 26 Mar 2022 17:06:43 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 38379 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.591,"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-63w478/merchant-instances-urls spawning process (merchant-testmerchant-1): taler-merchant-httpd -LDEBUG -c '/home/ttn/te/tmp/taler-integrationtests-63w478/merchant-instances-urls/merchant-testmerchant-1.conf' spawned process (merchant-testmerchant-1) with pid 38438 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 38438 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.061,"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-63w478/merchant-longpolling running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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.725,"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-63w478/merchant-spec-public-orders running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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":0.755,"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-63w478/merchant-refund-api running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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":0.615,"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-63w478/payment-forgettable running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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":0.602,"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-63w478/paywall-flow running command taler-bank-manage -c '/home/ttn/te/tmp/taler-integrationtests-63w478/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-63w478/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.648,"status":"fail"} See /home/ttn/te/tmp/taler-integrationtests-63w478/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_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_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_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_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_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) |
|
Oh, now i realize that taler-wallet-cli is a wrapper around a javascript program that eventually calls taler-bank-manage. Are the bank.git executables packaged in a way that i can "apt install" them? |
|
No. You need to checkout the bank.git. But anyway: we plan to replace bank.git with libeufin.git "soon". |
|
The test now passes. Closing. |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-01-20 11:11 | ttn | New Issue | |
2022-01-20 11:11 | ttn | Status | new => assigned |
2022-01-20 11:11 | ttn | Assigned To | => Christian Grothoff |
2022-01-20 11:11 | ttn | File Added: test-suite.log | |
2022-01-20 11:30 | ttn | Note Added: 0018647 | |
2022-01-25 05:28 | ttn | Note Added: 0018665 | |
2022-01-25 05:28 | ttn | File Added: test-suite.log.gz | |
2022-02-13 17:57 | Christian Grothoff | Assigned To | Christian Grothoff => Florian Dold |
2022-03-03 00:24 | ttn | Note Added: 0018762 | |
2022-03-03 00:24 | ttn | File Added: test-suite-2.log | |
2022-03-18 06:43 | ttn | Note Added: 0018805 | |
2022-03-18 06:43 | ttn | File Added: .ttn.merchant-make-check.log | |
2022-03-18 06:43 | ttn | File Added: test-suite.log-2.gz | |
2022-03-18 16:18 | Christian Grothoff | Note Added: 0018806 | |
2022-03-18 20:56 | ttn | Note Added: 0018807 | |
2022-03-19 00:38 | Christian Grothoff | Note Added: 0018808 | |
2022-03-19 06:24 | ttn | Relationship added | related to 0007200 |
2022-03-19 07:38 | ttn | Note Added: 0018809 | |
2022-03-19 07:50 | Christian Grothoff | Note Added: 0018810 | |
2022-03-19 16:18 | Christian Grothoff | Note Added: 0018814 | |
2022-03-20 04:00 | Christian Grothoff | Note Added: 0018820 | |
2022-03-23 04:55 | ttn | Note Added: 0018827 | |
2022-03-23 05:01 | ttn | Note Added: 0018828 | |
2022-03-23 05:01 | ttn | File Added: bt | |
2022-03-23 05:19 | Christian Grothoff | Note Added: 0018829 | |
2022-03-23 05:20 | Christian Grothoff | Assigned To | Florian Dold => Christian Grothoff |
2022-03-23 05:20 | Christian Grothoff | Status | assigned => resolved |
2022-03-23 05:20 | Christian Grothoff | Resolution | open => fixed |
2022-03-23 05:20 | Christian Grothoff | Fixed in Version | => 0.9 |
2022-03-23 05:20 | Christian Grothoff | Target Version | => 0.9 |
2022-03-23 06:08 | ttn | Status | resolved => feedback |
2022-03-23 06:08 | ttn | Resolution | fixed => reopened |
2022-03-23 06:08 | ttn | Note Added: 0018830 | |
2022-03-23 06:12 | ttn | Note Added: 0018831 | |
2022-03-23 06:12 | ttn | File Added: test-suite.log-3.gz | |
2022-03-23 06:12 | ttn | File Added: results.json | |
2022-03-23 06:12 | ttn | Status | feedback => assigned |
2022-03-23 07:17 | ttn | Note Added: 0018832 | |
2022-03-23 14:48 | Christian Grothoff | Note Added: 0018836 | |
2022-03-24 00:28 | ttn | Note Added: 0018837 | |
2022-03-26 18:12 | ttn | Note Added: 0018840 | |
2022-03-26 18:12 | ttn | File Added: test-suite-3.log | |
2022-03-26 18:47 | ttn | Note Added: 0018841 | |
2022-03-26 19:13 | ttn | Relationship added | child of 0007208 |
2022-04-23 20:19 | Christian Grothoff | Note Added: 0018894 | |
2022-06-26 19:26 | ttn | Status | assigned => resolved |
2022-06-26 19:26 | ttn | Note Added: 0018939 | |
2022-11-04 20:53 | Christian Grothoff | Status | resolved => closed |