GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — quic: remove experimental quic by jasnell · Pull Request #37067 · nodejs/node

Conversation

@jasnell

@jasnell jasnell commented Jan 25, 2021

Copy link
Copy Markdown
Member

The OpenSSL OMC has not yet committed to landing the updated QUIC APIs and has indicated that they will not even look at it until OpenSSL 3.1. With OpenSSL 3.0 beta currently delayed with no clear idea of when it will actually land, the initial QUIC support landed in core has now just become a maintenance burden with no clear idea of when we'd ever be capable of delivering it. This PR, therefore, removes the QUIC support and reverts the patched in modifications to openssl. I will be investigating a userland alternative that does not depend on the built-in openssl bindings.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

trivikr, gengjiawen, bricss, lin7sh, GaryGSC, endel, rendaardy, nicolashenry, battall, ZYSzys, and 14 more reacted with confused emoji
All reactions
  • 😕 24 reactions
@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to Node.js builds or CI infrastructure. meta Issues and PRs related to the general management of the project. quic Issues and PRs related to the QUIC transport implementation. labels Jan 25, 2021
@jasnell jasnell changed the title Revert "deps: update patch and docs for openssl update" quic: remove quic Jan 25, 2021
@jasnell jasnell changed the title quic: remove quic quic: remove experimental quic Jan 25, 2021
@nodejs-github-bot

nodejs-github-bot commented Jan 25, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35733/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@tniessen

tniessen commented Jan 25, 2021

Copy link
Copy Markdown
Member

This is unfortunate. Is there any chance BoringSSL might provide QUIC support before OpenSSL does?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Jan 25, 2021

Copy link
Copy Markdown
Member Author

BoringSSL already does. Up to this point, we've been using Akamai's port of the BoringSSL APIs to OpenSSL 1.1.1. However, because we cannot use BoringSSL in supported releases because of the lack of an adequate LTS policy we cannot depend on it.

gengjiawen, ChALkeR, lin7sh, rickyes, styfle, szmarczak, aramperes, scaret, and Vivek-Yarra reacted with thumbs up emoji
All reactions
  • 👍 9 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mcollina
mcollina approved these changes Jan 25, 2021
View reviewed changes

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@tniessen

tniessen commented Jan 25, 2021

Copy link
Copy Markdown
Member

However, because we cannot use BoringSSL in supported releases because of the lack of an adequate LTS policy we cannot depend on it.

Yes, that's always been a problem, but we've still applied numerous patches to allow linking Node.js against BoringSSL. Do you see any way of supporting QUIC only when linking against BoringSSL, e.g., within Electron? Or is it too much of a maintenance burden?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jan 26, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35740/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@gengjiawen

gengjiawen commented Jan 26, 2021

Copy link
Copy Markdown
Member

However, because we cannot use BoringSSL in supported releases because of the lack of an adequate LTS policy we cannot depend on it.

Yes, that's always been a problem, but we've still applied numerous patches to allow linking Node.js against BoringSSL. Do you see any way of supporting QUIC only when linking against BoringSSL, e.g., within Electron? Or is it too much of a maintenance burden?

Maybe we keep a boringssl deps only for quic part like https://github.com/cloudflare/quiche did.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Jan 26, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

Yes, that's always been a problem, but we've still applied numerous patches to allow linking Node.js against BoringSSL. Do you see any way of supporting QUIC only when linking against BoringSSL, e.g., within Electron? Or is it too much of a maintenance burden?

That's entirely up to the @nodejs/tsc as whole. We apply patches to support BoringSSL but that's a far cry from shipping supported features that only work with BoringSSL when we do not ship any officially supported releases that use BoringSSL.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Trott
Trott approved these changes Jan 26, 2021
View reviewed changes

@Trott Trott left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rubber-stamp LGTM and 😞

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
tniessen
tniessen approved these changes Jan 26, 2021
View reviewed changes
@tniessen

tniessen commented Jan 26, 2021

Copy link
Copy Markdown
Member

We apply patches to support BoringSSL but that's a far cry from shipping supported features that only work with BoringSSL when we do not ship any officially supported releases that use BoringSSL.

Sadly, that's true. I am not advocating for officially supporting BoringSSL, I don't think that's reasonable as long as Google doesn't provide LTS support for BoringSSL Also, I had a few discussions with @codebytere about BoringSSL/Electron in the past and IIRC, some Node.js crypto features are unavailable in Electron because BoringSSL does not provide them.

Still, it's sad to not see this progressing in OpenSSL.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell

jasnell commented Jan 26, 2021

Copy link
Copy Markdown
Member Author

If we're able to see progress made on the openssl side... even just a realistic time frame when we can expect movement towards official support, then we'd have something better to go on. But as it is now, all of this code just ends up being an open ended maintenance burden. Given the amount of work I've done on this, there's literally no one that is more disappointed by this PR than I am.

wa-Nadoo, bricss, aduh95, mischnic, rickyes, battall, espoal, Vivek-Yarra, and J3m5 reacted with heart emoji
All reactions
  • ❤️ 9 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mhdawson
mhdawson approved these changes Jan 26, 2021
View reviewed changes

@mhdawson mhdawson left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rubber stamp LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@jasnell jasnell added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Jan 27, 2021
trivikr
trivikr approved these changes Jan 28, 2021
View reviewed changes

@trivikr trivikr left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSLGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
jasnell added 5 commits January 30, 2021 06:24
@jasnell
Revert "deps: update patch and docs for openssl update"
ca4a2a8
This reverts commit 548790a.
@jasnell
Revert "deps: re-enable OPENSSL_NO_QUIC guards"
80fdbbb
This reverts commit b0d5bfe.
@jasnell
Revert "deps: various quic patches from akamai/openssl"
e25d13c
This reverts commit 06c5b53.
@jasnell
quic: remove quic
847e270
@jasnell
deps: update openssl config
d6b30b3
@jasnell
jasnell force-pushed the remove-quic branch from 086d07e to d6b30b3 Compare January 30, 2021 14:26
@nodejs-github-bot

nodejs-github-bot commented Jan 30, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35819/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jasnell added a commit that referenced this pull request Jan 30, 2021
@jasnell
Revert "deps: update patch and docs for openssl update"
1c52ce8
This reverts commit 548790a.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
jasnell added a commit that referenced this pull request Jan 30, 2021
@jasnell
Revert "deps: re-enable OPENSSL_NO_QUIC guards"
e63035c
This reverts commit b0d5bfe.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
jasnell added a commit that referenced this pull request Jan 30, 2021
@jasnell
Revert "deps: various quic patches from akamai/openssl"
f763a80
This reverts commit 06c5b53.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
jasnell added a commit that referenced this pull request Jan 30, 2021
@jasnell
quic: remove quic
c3d6d50
PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
jasnell added a commit that referenced this pull request Jan 30, 2021
@jasnell
deps: update openssl config
290ecb3
PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
@jasnell

jasnell commented Jan 30, 2021

Copy link
Copy Markdown
Member Author

Landed in 255d633...290ecb3 ....

Ugh this is painful.

ronag, battall, fh-nano, szmarczak, erulabs, jamie-lord, espoal, ignoramous, keisukekomeda, and TheBoroer reacted with confused emoji
All reactions
  • 😕 10 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jasnell jasnell closed this Jan 30, 2021
targos pushed a commit that referenced this pull request Feb 2, 2021
@jasnell @targos
Revert "deps: update patch and docs for openssl update"
52ce1d5
This reverts commit 548790a.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
targos pushed a commit that referenced this pull request Feb 2, 2021
@jasnell @targos
Revert "deps: re-enable OPENSSL_NO_QUIC guards"
6756130
This reverts commit b0d5bfe.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
targos pushed a commit that referenced this pull request Feb 2, 2021
@jasnell @targos
Revert "deps: various quic patches from akamai/openssl"
f74b376
This reverts commit 06c5b53.

PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
targos pushed a commit that referenced this pull request Feb 2, 2021
@jasnell @targos
quic: remove quic
11dd267
PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
targos pushed a commit that referenced this pull request Feb 2, 2021
@jasnell @targos
deps: update openssl config
9d6fd45
PR-URL: #37067
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
@targos targos mentioned this pull request Feb 2, 2021
v15.8.0 release proposal #37183
Merged
@DavidKorczynski DavidKorczynski mentioned this pull request Feb 2, 2021
nodejs: fix build after experimental-quic flag removed. google/oss-fuzz#5094
Merged
@richardlau richardlau mentioned this pull request Feb 17, 2021
Where did the nodjs QUIC support / documentation go? nodejs/help#3228
Closed
@targos targos added dont-land-on-v10.x labels Mar 3, 2021
@pimterry pimterry mentioned this pull request Apr 30, 2021
HTTP/3 support #38478
Closed
@darrachequesne darrachequesne mentioned this pull request Jun 22, 2021
QUIC support socketio/socket.io#3769
Closed
@aggarwaldev aggarwaldev mentioned this pull request Sep 1, 2021
QUIC implementation fastify/fastify#2379
Open
RaisinTen added a commit to RaisinTen/node that referenced this pull request Sep 12, 2022
@RaisinTen
src: remove node_bob.h and node_bob-inl.h
e514969
These were added in nodejs#32379 and were
supposed to get removed in nodejs#37067.

Signed-off-by: Darshan Sen <[email protected]>
@RaisinTen RaisinTen mentioned this pull request Sep 12, 2022
src: remove node_bob.h and node_bob-inl.h #44607
Closed
@espoal espoal mentioned this pull request Oct 10, 2022
Add experimental support for io_uring #34388
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mcollina mcollina mcollina approved these changes
@Trott Trott Trott approved these changes
@tniessen tniessen tniessen approved these changes
@trivikr trivikr trivikr approved these changes
+1 more reviewer
@mhdawson mhdawson mhdawson approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. build Issues and PRs related to Node.js builds or CI infrastructure. meta Issues and PRs related to the general management of the project. quic Issues and PRs related to the QUIC transport implementation.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

9 participants

@jasnell @nodejs-github-bot @tniessen @gengjiawen @mcollina @Trott @mhdawson @trivikr @targos
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.