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: upgrade v8 to 4.1.0.21 #952

Merged
merged 3 commits into from
Feb 25, 2015
Merged

deps: upgrade v8 to 4.1.0.21 #952

merged 3 commits into from
Feb 25, 2015

Conversation

bnoordhuis
Copy link
Member

R=@indutny, /cc @iojs/tc

This upgrade is an interesting conundrum. There is an incompatible ABI (but not API) change in here that would require bumping NODE_MODULE_VERSION and NODE_MINOR_VERSION.

However, skipping the upgrade is probably a bad idea because it also contains a fix for https://code.google.com/p/chromium/issues/detail?id=430201, which annoyingly is still under embargo but looks like it's a use-after-free and may be exploitable.

As a proposed fix, I backed out the ABI change. WDYT?

@Havvy
Copy link
Contributor

Havvy commented Feb 25, 2015

You linked to the wrong bug number. ;)

@bnoordhuis
Copy link
Member Author

Last number got chopped off. Rectified.

@indutny
Copy link
Member

indutny commented Feb 25, 2015

Now it doesn't work :)

@indutny
Copy link
Member

indutny commented Feb 25, 2015

@bnoordhuis 403

@Havvy
Copy link
Contributor

Havvy commented Feb 25, 2015

That's what embargoed means.

(I can't tell if you're joking or not.)

@indutny
Copy link
Member

indutny commented Feb 25, 2015

Aaaah, I got it now :) LGTM, If it works. Is that revert commit actually a revert of that commit, or some improvisation?

@bnoordhuis
Copy link
Member Author

It's a clean revert safe for --exclude=deps/v8/src/version.cc.

@indutny
Copy link
Member

indutny commented Feb 25, 2015

Ok, good to go then.

@bnoordhuis
Copy link
Member Author

Thanks, Fedor. I'll hold off on merging it until other TC members have had an opportunity to chime in.

@rvagg
Copy link
Member

rvagg commented Feb 25, 2015

4f3e8cdd8d7 is kind of large, what's the strategy with that going forward? It's going to have to land at some point anyway, why not now? Do we just need to light a fire under NAN and get a patch out for this?

@bnoordhuis
Copy link
Member Author

@rvagg The motivation for the revert patch is to hold off until we upgrade to 4.2 because then we'll be bumping NODE_MODULE_VERSION anyway.

I don't think nan needs to do anything here. The issue is that the size of the struct changed, which makes it an ABI change (compiled code will need to be recompiled) but not an API change (no source code changes are necessary.)

@rvagg
Copy link
Member

rvagg commented Feb 25, 2015

kk, sounds reasonable, lgtm

@rvagg
Copy link
Member

rvagg commented Feb 25, 2015

@rvagg
Copy link
Member

rvagg commented Feb 25, 2015

CI is happy enough, @bnoordhuis are you around to merge this? if you don't respond soon I'll go ahead and do this. Will list "embargoed fix, details available at https://code.google.com/p/chromium/issues/detail?id=430201 when embargo is lifted" in the notable changes in 1.4.0

bnoordhuis and others added 3 commits February 25, 2015 19:33
PR-URL: nodejs#952
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Fix: nodejs#461
PR-URL: nodejs#706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Undo the ABI (but not API) change to NamedPropertyHandlerConfiguration.
This avoids a NODE_MODULE_VERSION bump and forcing everyone to recompile
their add-ons, at the cost of increasing the delta with upstream V8.

This commit effectively backs out 4.1.0.16, the release that introduced
the ABI change (and nothing else.)

PR-URL: nodejs#952
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
@bnoordhuis bnoordhuis merged commit a558cd0 into nodejs:v1.x Feb 25, 2015
@bnoordhuis bnoordhuis deleted the upgrade-v8 branch February 25, 2015 18:35
@bnoordhuis
Copy link
Member Author

@rvagg Landed in 78f4837...a558cd0.

@rvagg rvagg mentioned this pull request Feb 25, 2015
rvagg added a commit that referenced this pull request Feb 25, 2015
Notable changes:

* process / promises: An'unhandledRejection' event is now emitted on
  process whenever a Promise is rejected and no error handler is
  attached to the Promise within a turn of the event loop. A
  'rejectionHandled' event is now emitted whenever a Promise was
  rejected and an error handler was attached to it later than after an
  event loop turn. See the process documentation for more detail.
  #758 (Petka Antonov)
* streams: you can now use regular streams as an underlying socket for
  tls.connect() #758 (Fedor Indutny)
* V8: Upgrade V8 to 4.1.0.21. Includes an embargoed fix, details
  should be available at
  https://code.google.com/p/chromium/issues/detail?id=430201
  when embargo is lifted. A breaking ABI change has been held back
  from this upgrade, possibly to be included when io.js merges V8 4.2.
  See #952 for discussion.
* npm: Upgrade npm to 2.6.0. Includes features to support the new
  registry and to prepare for npm@3. See npm CHANGELOG.md
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12
  for details.
* libuv: Upgrade to 1.4.1. See libuv ChangeLog
  https://github.com/libuv/libuv/blob/v1.x/ChangeLog for details of
  fixes.
rvagg added a commit that referenced this pull request Feb 26, 2015
Notable changes:

* process / promises: An'unhandledRejection' event is now emitted on
  process whenever a Promise is rejected and no error handler is
  attached to the Promise within a turn of the event loop. A
  'rejectionHandled' event is now emitted whenever a Promise was
  rejected and an error handler was attached to it later than after an
  event loop turn. See the process documentation for more detail.
  #758 (Petka Antonov)
* streams: you can now use regular streams as an underlying socket for
  tls.connect() #758 (Fedor Indutny)
* http: A new 'abort' event emitted when a http.ClientRequest is
  aborted by the client. #945
  (Evan Lucas)
* V8: Upgrade V8 to 4.1.0.21. Includes an embargoed fix, details
  should be available at
  https://code.google.com/p/chromium/issues/detail?id=430201
  when embargo is lifted. A breaking ABI change has been held back
  from this upgrade, possibly to be included when io.js merges V8 4.2.
  See #952 for discussion.
* npm: Upgrade npm to 2.6.0. Includes features to support the new
  registry and to prepare for npm@3. See npm CHANGELOG.md
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12
  for details.
* libuv: Upgrade to 1.4.2. See libuv ChangeLog
  https://github.com/libuv/libuv/blob/v1.x/ChangeLog for details of
  fixes.
@domenic
Copy link
Contributor

domenic commented Feb 26, 2015

I think the revert is unfortunate. We should be able to accept ABI changes in minor releases, shouldn't we?

We won't be getting 4.2 for ~8 weeks so this is going to be a floating revert for a long time.

And I can't really be sure but the added functionality seems potentially useful for some vm-related stuff.

@Fishrock123
Copy link
Contributor

@domenic I think it is to be applied when 4.1 lands as stable?

@domenic
Copy link
Contributor

domenic commented Feb 26, 2015

One more thing: I feel like taking these kinds of changes is what we signed up for when we decided to take 4.1 even though it wasn't in Chrome stable yet. Our fault, and we have to own it.

@Fishrock123 are you suggesting that we'd float the revert for 2 weeks, until 4.1 reaches Chrome stable, and then un-revert? That's better than 8 weeks at least.

@Fishrock123
Copy link
Contributor

@domenic correct, I think that is the plan. @bnoordhuis?

@Fishrock123
Copy link
Contributor

oh, I re-read it. Seems like the plan above is to hold off to 4.2..

@bnoordhuis
Copy link
Member Author

I initially suggested 4.2 but I think 4.1 is also fine once it goes stable.

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

Successfully merging this pull request may close these issues.

6 participants