jycouet / VSTSExtensions

MIT License
30 stars 11 forks source link

New streams cannot be created after receiving a GOAWAY #67

Closed carlmolemans closed 4 months ago

carlmolemans commented 8 months ago

Describe the bug

We have an Azure pipeline configured with RenovateMe for NPM and Maven dependencies.

Since ~26th of October we receive the following error (on random dependencies). It appears as if the HTTP2 protocol is not correctly applied, or that Azure is closing the HTTP2 session.

INFO: Unknown HTTP download error (repository=HIP/accounts) "failedUrl": "https://pkgs.dev.azure.com/***/maven/v1/org/testcontainers/mariadb/1.14.3/mariadb-1.14.3.pom", "err": { "name": "RequestError", "code": "ERR_HTTP2_GOAWAY_SESSION", "timings": { "start": 1699610470257, "error": 1699610470258, "phases": {"total": 1} }, "message": "New streams cannot be created after receiving a GOAWAY", "stack": "RequestError: New streams cannot be created after receiving a GOAWAY at ClientRequest. (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/got/dist/source/core/index.js:970:111) at Object.onceWrapper (node:events:629:26) at ClientRequest.emit (node:events:526:35) at ClientRequest.emit (node:domain:488:12) at ClientRequest.origin.emit (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20) at ClientRequest.flushHeaders (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/client-request.js:363:10) at new NodeError (node:internal/errors:406:5) at ClientHttp2Session.request (node:internal/http2/core:1737:13) at ClientHttp2Session.session.request (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:528:39) at Object.resolve (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:602:23) at /home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:303:19 at new Promise () at Agent.getSession (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:223:10) at /home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:598:9 at new Promise () at Agent.request (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/agent.js:597:10) at ClientRequest.flushHeaders (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/client-request.js:361:31) at ClientRequest._final (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/http2-wrapper/source/client-request.js:189:8) at callFinal (node:internal/streams/writable:757:12) at prefinish (node:internal/streams/writable:769:7) at finishMaybe (node:internal/streams/writable:779:5) at ClientRequest.Writable.end (node:internal/streams/writable:687:5) at endRequest (/home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/got/dist/source/core/index.js:1356:28) at /home/vsts/.npm/_npx/06c54cfd5218d5f1/node_modules/got/dist/source/core/index.js:341:21", "options": { "headers": { "user-agent": "RenovateBot/37.33.2 (https://github.com/renovatebot/renovate)", "authorization": "*****", "accept-encoding": "gzip, deflate, br" }, "url": "https://pkgs.dev.azure.com/*/maven/v1/org/testcontainers/mariadb/1.14.3/mariadb-1.14.3.pom", "hostType": "maven", "username": "", "password": "", "method": "GET", "http2": true } }

To Reproduce Steps to reproduce the behavior:

  1. Configure a maven artifact proxy
  2. Configure an Azure pipeline for a project, with renovateme having following settings:
  3. renovateOptionsArgs: '--host-rules="[{ "matchHost": "pkgs.dev.azure.com", "username": "***", "password": "$(System.AccessToken)", "enableHttp2": true }, { "matchHost": "repo.maven.apache.org", "enabled": false }]"

We have been using this (enableHttp2) configuration for years and it broke around the 26th of October 2023.

Expected behavior

No occurences of ERR_HTTP2_GOAWAY_SESSION

Additional context

We rolled back to the version which last worked without this error. This version is giving the error too. It thus may be that Azure changed something which breaks the plugin. The log you see is from that run (with the version that worked last)

Mitigation renovateOptionsArgs: '--host-rules="[{ "matchHost": "pkgs.dev.azure.com", "username": "*", "password": "$(System.AccessToken)", "enableHttp2": false** },

jycouet commented 8 months ago

👋 hi, Sorry about that!

I don't use this anymore... I'm not sure how to help best. You could do a repro? ou found something online? Is it always failing ?

jycouet commented 4 months ago

Feel free to reopen if you need 👍