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

deps: cherry-pick two libuv fixes #43950

Closed
wants to merge 2 commits into from
Closed

Commits on Jul 22, 2022

  1. deps: cherry-pick libuv/libuv@abb109f

    Original commit log follows:
    
    darwin: remove EPROTOTYPE error workaround (libuv/libuv#3405)
    
    It's been reported in the past that OS X 10.10, because of a race
    condition in the XNU kernel, sometimes returns a transient EPROTOTYPE
    error when trying to write to a socket. Libuv handles that by retrying
    the operation until it succeeds or fails with a different error.
    
    Recently it's been reported that current versions of the operating
    system formerly known as OS X fail permanently with EPROTOTYPE under
    certain conditions, resulting in an infinite loop.
    
    Because Apple isn't exactly forthcoming with bug fixes or even details,
    I'm opting to simply remove the workaround and have the error bubble up.
    
    Refs: libuv/libuv#482
    Fixes: nodejs#43916
    bnoordhuis committed Jul 22, 2022
    Configuration menu
    Copy the full SHA
    9f35f05 View commit details
    Browse the repository at this point in the history
  2. deps: cherry-pick libuv/libuv@3a7b955

    Original commit log follows:
    
    darwin: translate EPROTOTYPE to ECONNRESET (libuv/libuv#3413)
    
    macOS versions 10.10 and 10.15 - and presumbaly 10.11 to 10.14, too -
    have a bug where a race condition causes the kernel to return EPROTOTYPE
    because the socket isn't fully constructed.
    
    It's probably the result of the peer closing the connection and that is
    why libuv translates it to ECONNRESET.
    
    Previously, libuv retried until the EPROTOTYPE error went away but some
    VPN software causes the same behavior except the error is permanent, not
    transient, turning the retry mechanism into an infinite loop.
    
    Refs: libuv/libuv#482
    Refs: libuv/libuv#3405
    Fixes: nodejs#43916
    bnoordhuis committed Jul 22, 2022
    Configuration menu
    Copy the full SHA
    67d28ae View commit details
    Browse the repository at this point in the history