Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make reaching the Device Public URC of a DUT more resilient #825

Open
floion opened this issue Sep 9, 2022 · 0 comments
Open

Make reaching the Device Public URC of a DUT more resilient #825

floion opened this issue Sep 9, 2022 · 0 comments

Comments

@floion
Copy link
Contributor

floion commented Sep 9, 2022

When the Device public url of a DUT is not reachable, the test fails after few retries

Device Public URLs is a <a href=\"https://balena.io\"><strong>balena.io</strong></a>\nfeature that provides individual URLs for balena.io-connected devices.\nThe feature is opt-in: no devices are exposed without the application owner's permission.</p><p><strong>balena.io</strong> does not serve anything on this URL, we just\nproxy all the requests to whatever is listening on the device. This means\nthat the creator of the application is responsible for running a web-server\non the device.</p></div></div></body></html>"
jenkins-leviathan-v2-template-4529-client-1  |     at new StatusCodeError (/usr/src/app/node_modules/request-promise-core/lib/errors.js:32:15)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.plumbing.callback (/usr/src/app/node_modules/request-promise-core/lib/plumbing.js:104:33)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.RP$callback [as _callback] (/usr/src/app/node_modules/request-promise-core/lib/plumbing.js:46:31)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.self.callback (/usr/src/app/node_modules/request/request.js:185:22)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.emit (events.js:314:20)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.<anonymous> (/usr/src/app/node_modules/request/request.js:1154:10)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.emit (events.js:314:20)
jenkins-leviathan-v2-template-4529-client-1  |     at IncomingMessage.<anonymous> (/usr/src/app/node_modules/request/request.js:1076:12)
jenkins-leviathan-v2-template-4529-client-1  |     at Object.onceWrapper (events.js:420:28)
jenkins-leviathan-v2-template-4529-client-1  |     at IncomingMessage.emit (events.js:326:22)
jenkins-leviathan-v2-template-4529-client-1  |     at endReadableNT (_stream_readable.js:1241:12)
jenkins-leviathan-v2-template-4529-client-1  |     at processTicksAndRejections (internal/process/task_queues.js:84:21)
jenkins-leviathan-v2-template-4529-client-1  | (node:40) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 7)
jenkins-leviathan-v2-template-4529-client-1  | [2022-09-09T10:28:44.789Z][7e64e2a-hup] (node:40) UnhandledPromiseRejectionWarning: RequestError: Error: socket hang up
jenkins-leviathan-v2-template-4529-client-1  |     at new RequestError (/usr/src/app/node_modules/request-promise-core/lib/errors.js:14:15)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.plumbing.callback (/usr/src/app/node_modules/request-promise-core/lib/plumbing.js:87:29)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.RP$callback [as _callback] (/usr/src/app/node_modules/request-promise-core/lib/plumbing.js:46:31)
jenkins-leviathan-v2-template-4529-client-1  |     at self.callback (/usr/src/app/node_modules/request/request.js:185:22)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.emit (events.js:314:20)
jenkins-leviathan-v2-template-4529-client-1  |     at Request.onRequestError (/usr/src/app/node_modules/request/request.js:877:8)
jenkins-leviathan-v2-template-4529-client-1  |     at ClientRequest.emit (events.js:314:20)
jenkins-leviathan-v2-template-4529-client-1  |     at TLSSocket.socketOnEnd (_http_client.js:458:9)
jenkins-leviathan-v2-template-4529-client-1  |     at TLSSocket.emit (events.js:326:22)
jenkins-leviathan-v2-template-4529-client-1  |     at endReadableNT (_stream_readable.js:1241:12)
jenkins-leviathan-v2-template-4529-client-1  |     at processTicksAndRejections (internal/process/task_queues.js:84:21)
jenkins-leviathan-v2-template-4529-client-1  | (node:40) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)
jenkins-leviathan-v2-template-4529-client-1  | [2022-09-09T10:28:47.274Z][7e64e2a-hup]             not ok 1 - Error: socket hang up

This is assumed to be caused by transient networking errors. So instead of doing immediate retries we could do some sort of exponential backoff to try and mitigate intermittent networking issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant