vacuumlabs / adalite-backend-service

Icarus, a reference implementation for a lightweight wallet developed by the IOHK Engineering Team.
Apache License 2.0
2 stars 7 forks source link

Tx submission intermittently failing with socket hang up #81

Closed refi93 closed 4 years ago

refi93 commented 4 years ago

We are intermittently (lastly roughly every 30 mins to 2 hours) receiving a "socket hang up" error when submitting transactions via adalite-importer

sample of such tx submission failure:

[2020-05-01T14:10:11.308Z] ERROR: [object Object]/122 on 625c16ced42d:
    [signedTransaction] Error while doing request to backend { Error: socket hang up
        at createHangUpError (_http_client.js:330:17)
        at Socket.socketOnEnd (_http_client.js:431:23)
        at Socket.emit (events.js:198:15)
        at Socket.EventEmitter.emit (domain.js:481:20)
        at endReadableNT (_stream_readable.js:1139:12)
        at processTicksAndRejections (internal/process/task_queues.js:81:17)
      code: 'ECONNRESET',
      config:
       { adapter: [Function: httpAdapter],
         transformRequest: { '0': [Function: transformRequest] },
         transformResponse: { '0': [Function: transformResponse] },
         timeout: 0,
         xsrfCookieName: 'XSRF-TOKEN',
         xsrfHeaderName: 'X-XSRF-TOKEN',
         maxContentLength: -1,
         validateStatus: [Function: validateStatus],
         headers:
          { Accept: 'application/json, text/plain, */*',
            'Content-Type': 'application/json;charset=utf-8',
            'User-Agent': 'axios/0.18.0',
            'Content-Length': 439 },
         method: 'post',
         url: 'http://adalite-importer:8080/api/txs/signed',
         data:
          '{"signedTx":"goOfggDYGFgkglggNgYoVoHdBoMhqWR6HM/N5wLBYHNGPz6OtsBKMCzoLvwA/5+CgtgYWEKDWByk/1aUU10lK3F5hKk3YTiML7cryqTpVZqa1ssxoQFYHlgcUXTId5UPwhktelPhNPIVB9Hwj9gqFEReglC5BQAaMo9QLBopiO++goLYGFghg1gcNoU+mHD25um30lbBv/PKQ/90xaErbf9N01N0aKAAGtvkA2wZMDb/oIGCANgYWIWCWECe5FRpTzk0MXHIb0T4NdOQKWXerGns6rEShsngATxhn+/bs++F9gHV7gX6JNMkRagkOzX8tdIGr3XshmmHCgHIWEAwzWQMcVRH6Gy2MFeVb3M46rLAKYxlkE/fnFrkMxL0Scpiyacm5tMsTPkJq+6WHyS3skOEqMGGjckelXImY3oJ"}' },
      request:
       Writable {
         _writableState:
          WritableState {
            objectMode: false,
            highWaterMark: 16384,
            finalCalled: false,
            needDrain: false,
            ending: false,
            ended: false,
            finished: false,
            destroyed: false,
            decodeStrings: true,
            defaultEncoding: 'utf8',
            length: 0,
            writing: false,
            corked: 0,
            sync: true,
            bufferProcessing: false,
            onwrite: [Function: bound onwrite],
            writecb: null,
            writelen: 0,
            bufferedRequest: null,
            lastBufferedRequest: null,
            pendingcb: 0,
            prefinished: false,
            errorEmitted: false,
            emitClose: true,
            autoDestroy: false,
            bufferedRequestCount: 0,
            corkedRequestsFree: [Object] },
         writable: true,
         _events:
          [Object: null prototype] {
            response: [Function: handleResponse],
            error: [Function: handleRequestError] },
         _eventsCount: 2,
         _maxListeners: undefined,
         _options:
          { protocol: 'http:',
            maxRedirects: 21,
            maxBodyLength: 10485760,
            path: '/api/txs/signed',
            method: 'post',
            headers: [Object],
            agent: undefined,
            auth: undefined,
            hostname: 'adalite-importer',
            port: '8080',
            nativeProtocols: [Object],
            pathname: '/api/txs/signed' },
         _redirectCount: 0,
         _redirects: [],
         _requestBodyLength: 439,
         _requestBodyBuffers: [ [Object] ],
         _onNativeResponse: [Function],
         _currentRequest:
          ClientRequest {
            _events: [Object],
            _eventsCount: 6,
            _maxListeners: undefined,
            outputData: [],
            outputSize: 0,
            writable: true,
            _last: true,
            chunkedEncoding: false,
            shouldKeepAlive: false,
            useChunkedEncodingByDefault: true,
            sendDate: false,
            _removedConnection: false,
            _removedContLen: false,
            _removedTE: false,
            _contentLength: null,
            _hasBody: true,
            _trailer: '',
            finished: true,
            _headerSent: true,
            socket: [Socket],
            connection: [Socket],
            _header:
             'POST /api/txs/signed HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json;charset=utf-8\r\nUser-Agent: axios/0.18.0\r\nContent-Length: 439\r\nHost: adalite-importer:8080\r\nConnection: close\r\n\r\n',
            _onPendingData: [Function: noopPendingOutput],
            agent: [Agent],
            socketPath: undefined,
            timeout: undefined,
            method: 'POST',
            path: '/api/txs/signed',
            _ended: false,
            res: null,
            aborted: false,
            timeoutCb: null,
            upgradeOrConnect: false,
            parser: null,
            maxHeadersCount: null,
            _redirectable: [Circular],
            [Symbol(isCorked)]: false,
            [Symbol(outHeadersKey)]: [Object] },
         _currentUrl: 'http://adalite-importer:8080/api/txs/signed' },
      response: undefined }
refi93 commented 4 years ago

reported intermittent hanging of cardano-http-bridge: https://github.com/Emurgo/cardano-http-bridge/issues/17