0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
Commit Graph

11259 Commits

Author SHA1 Message Date
Fedor Indutny
e1bf6709dc test: fix racey-ness in tls-inception
Fix test failure on FreeBSD and SmartOS, which happens due to a bad
timing:

    events.js:141
          throw er; // Unhandled 'error' event
                ^
    Error: read ECONNRESET
        at exports._errnoException (util.js:734:11)
        at TLSWrap.onread (net.js:538:26)

The outer `net.conncet()` socket stays alive after the inner socket is
gone. This happens because `.pipe()`'s implementation does not `destroy`
the source side when the destination has emitted `close`.

Fix: https://github.com/iojs/io.js/issues/1012
PR-URL: https://github.com/iojs/io.js/pull/1040
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-03 16:07:37 -05:00
Trevor Norris
e0835c9cda node: improve performance of nextTick
Couple micro optimizations to improve performance of process.nextTick().
Removes ~60ns of execution time.

Also added small threshold to test that allows timer to fire early on
the order if microseconds.

PR-URL: https://github.com/iojs/io.js/pull/985
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
2015-03-03 13:45:19 -07:00
Sam Roberts
9741291fe9 doc: fix child_process heading depth
Addition of the Sync/Async headers didn't indent all the sub-headers.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: https://github.com/iojs/io.js/pull/1038
2015-03-03 11:21:33 -08:00
Johan Bergström
fd3ea29902 test: fix test-fs-access when uid is 0
Superusers can open files with W_OK permission even though their
mode is set to 0444. This commit makes the test attempt to change
its uid to nobody on non-Windows platforms. Patch originally from
https://github.com/joyent/node/commit/28d0cbbd.

Fixes: https://github.com/iojs/io.js/issues/1031
PR-URL: https://github.com/iojs/io.js/pull/1037
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-03 10:17:03 -05:00
Michael Dawson
5abfa930b8 test: make destroyed-socket-write2.js more robust
test/simple/test-http-destroyed-socket-write2.js validates
that you get an appropriate error when trying to write to
a request when the response on the other side has been destroyed.

The test uses http.request to get a request and then keeps writing
to it until either it hits 128 writes or gets the expected error.
Since the writes are asynchronous we see that the writes just end
up adding events to the event loop, which then later get processed
once the connection supporting the request is fully ready.

The test is timing dependent and if takes too long for the connection
to be made the limit of 128 writes is exceeded and the test fails.
The fact that the test allows a number of writes is probably to allow
some delay for the connection to be ready for writing.

On AIX, in the default configuration using the loopback interface
is slower and the test fails because the delay is such that many
more writes can be queued up before the connection takes place.
If we use the host ip instead of defaulting to the loopback then
the test passes.

The test needs to be made more robust to delays. Since each write
simply enqueues an additional write to the event queue there is
probably no point in doing the second write until the first has
completed. This patch schedules the next write when the first one
completes and allows the test to pass even if it takes longer for
the connection to be ready for writing

PR-URL: https://github.com/joyent/node/pull/9270
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-03-03 10:03:42 -05:00
Robert Kowalski
c8110692a5 doc: add explanations for querystring
- add an article: `decode a non-utf8 string`
 - explain default and fallback behaviour of `querystring.unescape`

PR-URL: https://github.com/joyent/node/pull/9259
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2015-03-03 10:03:42 -05:00
h7lin
8fb711e06c doc: fix default value of opts.decodeURIComponent
In the documentation for querystring.parse, the documentation mentions
that the default value for options.decodeURIComponent is the
decodeURIComponent function, but it's actually the querystring.unescape
function.

PR-URL: https://github.com/joyent/node/pull/9259
Reviewed-by: Julien Gilli <julien.gilli@joyent.com>
2015-03-03 10:03:42 -05:00
Julien Gilli
1009130495 tests: fix race in test-http-curl-chunk-problem
This test setups two event listeners: one on a child process' exit event
, another for the same child process' stdandard output's 'data' event.
The data even listener writes to a stream, and the exit event listener
ends it.

Because the exit event can be emitted before the data event, there is a
chance that something will be written to the stream after it's ended,
and that an error is thrown.

This change makes the test end the stream in the listener for the child
process' standard output's end event, which is guaranteed to be emitted
after the last data event, thus avoiding the race.

PR: https://github.com/joyent/node/pull/9301
Reviewed-by: Bert Belder <bertbelder@gmail.com>
Reviewed-by: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-by: Colin Ihrig <cjihrig@gmail.com>
2015-03-03 16:00:53 +01:00
Rod Vagg
6433ad1eef doc: add missing newline in CHANGELOG
Pushed without review
2015-03-02 17:49:24 -08:00
Rod Vagg
5133304ace Working on v1.4.4 2015-03-02 16:48:12 -08:00
Rod Vagg
b0710d7657 2015-03-02 io.js v1.4.3 Release
Notable changes:

* stream: Fixed problems for platforms without `writev()` support,
  particularly Windows. Changes introduced in 1.4.1, via
  https://github.com/iojs/io.js/pull/926, broke some
  functionality for these platforms, this has now been addressed.
  https://github.com/iojs/io.js/pull/1008 (Fedor Indutny)
* arm: We have the very beginnings of ARMv8 / ARM64 / AARCH64
  support. An upgrade to OpenSSL 1.0.2 is one requirement for full
  support. https://github.com/iojs/io.js/pull/1028
  (Ben Noordhuis)
* Add new collaborator: Julian Duque @julianduque
2015-03-02 16:45:43 -08:00
Ben Noordhuis
ca3c50b789 build: add basic arm64 support
This commit adds basic arm64 support to the build.  Building the bundled
openssl is disabled pending an upgrade to openssl 1.2, the currently
bundled version has some hand-rolled assembly that is 32 bits only.

PR-URL: https://github.com/iojs/io.js/pull/1028
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-03 00:40:49 +01:00
Ben Noordhuis
3d6440cf2a src: fix --without-ssl build
Don't include tls_wrap.h in stream_base.cc.  It's not used and it breaks
the build when --without-ssl is passed to configure.

Fixes the following build error:

    In file included from ../src/tls_wrap.h:5:0,
                     from ../src/stream_base.cc:10:
    ../src/node_crypto.h:20:25: fatal error: openssl/ssl.h:
    No such file or directory
     #include <openssl/ssl.h>

PR-URL: https://github.com/iojs/io.js/pull/1027
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-03 00:17:27 +01:00
Rod Vagg
08e89b1880 doc: update AUTHORS list
Update AUTHORS file using tools/update-authors.sh

PR-URL: https://github.com/iojs/io.js/pull/1018
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-02 00:29:53 -08:00
Julian Duque
ea02d90cd0 doc: add julianduque as collaborator
PR-URL: https://github.com/iojs/io.js/pull/1021
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Christian Tellnes <christian@tellnes.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <r@va.gg>
2015-03-01 19:45:54 -06:00
&! (bitandbang)
dfe7a17784 doc: fix typos and sources in WORKING_GROUPS.md
`therefor` is a typo of `therefore`, and was fixed. There were also two
places where the website WG was directly linked, where they should have
put the WG's name/repo; that was fixed as well.

PR-URL: https://github.com/iojs/io.js/pull/1022
Reviewed-By: Mikeal Rogers <mikeal.rogers@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
2015-03-01 19:39:10 -06:00
Ryan Scheel
6d26990d32 doc: Clean up net.Socket
net.Socket::connect(options[, connectListener]) was missing, with the
relevant details found on the net.connect function. I moved the
appropriate documentation over and then rewrote the documentation for
the function to say that it just creates a socket and calls the connect
method on it. I also changed the other net.Socket::connect variants to
say they are like the options version but called with a specific
options object.

net.connect and other functions were called methods even though they
don't use the `this` binding, so I changed method to function where
appropriate.

Finally, I added a missing period to the end of the module summary.
It's not really related to the rest of the changes, but benjamingr
noticed it.

PR-URL: https://github.com/iojs/io.js/pull/951
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
2015-03-01 19:36:00 +01:00
Benjamin Gruenbaum
c380ac6e98 doc: suggest alternatives to deprecated APs
At the moment users who want to use `fs.exists` get a warning that the
method is deprecated but do not get offered an alternative in the page.
This PR suggests `fs.stat` and `fs.access` as alternatives while
keeping the warning about the use case in place.

Fixes: https://github.com/iojs/io.js/issues/1002
PR-URL: https://github.com/iojs/io.js/pull/1007
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
2015-03-01 18:46:28 +01:00
Fedor Indutny
2b47fd2eb6 stream_base: .writev() has limited support
Only TCP and JSStream do support `.writev()` on all platforms at the
moment. Ensure that it won't be enabled everywhere.

Fix: https://github.com/iojs/io.js/issues/995
PR-URL: https://github.com/iojs/io.js/pull/1008
Reviewed-by: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-28 16:50:36 -06:00
Rod Vagg
c9151547bc Working on v1.4.3 2015-02-28 15:16:32 -06:00
Rod Vagg
b6b9628df7 2015-02-28 io.js v1.4.2 Release
Notable changes:

* tls: A typo introduced in the TLSWrap changes in
  https://github.com/iojs/io.js/pull/840 only encountered as a bug on
  Windows was not caught by the io.js CI system due to problems with the
  Windows build script and the Windows CI slave configuration, see
  Fixed in https://github.com/iojs/io.js/pull/994 &
  https://github.com/iojs/io.js/pull/1004 (Fedor Indutny)
* npm: Upgrade npm to 2.6.1. See
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v260-2015-02-12
  for details.
* Add new collaborators:
  - Robert Kowalski (@robertkowalski)
  - Christian Vaagland Tellnes (@tellnes)
  - Brian White (@mscdex)
2015-02-28 15:12:58 -06:00
Fedor Indutny
1ab7e80838 tls: proxy handle.reading back to parent handle
Fix: https://github.com/iojs/io.js/issues/995
PR-URL: https://github.com/iojs/io.js/pull/1004
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-28 14:16:32 -06:00
Russell Dempsey
7887e119ed install: new performance counters provider guid
The io.js performance counters manifest conflicts with the one from
node, causing installer failures. Change the GUID in the io.js
performance counters manifest file to resolve the conflicts.

Fixes: https://github.com/iojs/io.js/issues/524
PR: https://github.com/iojs/io.js/pull/1001
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-02-28 17:05:15 +01:00
Fedor Indutny
755461219d tls: fix typo handle._reading => handle.reading
The problem does not manifest itself on unixes, because
`uv_read_start()` always return 0 there. However on Windows on a second
call `uv_read_start()` returns `UV__EALREADY` destroying all sockets on
a read attempt.

Set `.reading` property that is already handled by `net.js` code.

Fix: https://github.com/iojs/io.js/issues/988
PR-URL: https://github.com/iojs/io.js/pull/994
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-27 21:59:19 -08:00
Christian Tellnes
675cffb33e http: don't confuse automatic headers for others
If you set a custom http header which includes eg. the string `Date`,
then http will not automatically send the `Date` header.

This is also true for other automatic http headers.

PR-URL: https://github.com/iojs/io.js/pull/828
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-02-27 21:47:39 -08:00
Bert Belder
25da0742ee build: improve vcbuild.bat
* Support running multiple test suites (e.g. vcbuild test-simple test-gc).
* Removed a nonexisting test suite (test-uv).
* Removed superfluous extra layer of argument parsing.
* Fix the node-weak build.

R=@rvagg

PR-URL: https://github.com/iojs/io.js/pull/998
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-27 22:48:56 -06:00
Johan Bergström
b8310cbd3e build: reduce tarball size by 8-10%
Slim the tarballs further by removing examples, documentation and test for
third party libraries. Also switch to checkout-index versus archive so we avoid
using tar.

PR-URL: https://github.com/iojs/io.js/pull/961
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-27 18:25:39 -06:00
Tim Oxley
84ee2722a3 doc: minor formatting fixes.
PR-URL: https://github.com/iojs/io.js/pull/996
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-27 18:02:46 -06:00
Chris Dickinson
cf0306cd71 doc: update stability index
This simplifies the stability index to 4 levels:

0 - deprecated
1 - experimental / feature-flagged
2 - stable
3 - locked

Domains has been downgraded to deprecated, assert has been
downgraded to stable. Timers and Module remain locked. All
other APIs are now stable.

PR-URL: https://github.com/iojs/io.js/pull/943
Fixes: https://github.com/iojs/io.js/issues/930
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
2015-02-27 14:23:01 -08:00
Robert Kowalski
fb2439a699 doc: add robertkowalski as collaborator
PR-URL: https://github.com/iojs/io.js/pull/977
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Christian Tellnes <christian@tellnes.com>
Reviewed-By: Rod Vagg <r@va.gg>
2015-02-27 21:21:26 +01:00
cjihrig
58a612ea9d deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e,
5de334c230, and
da730c76e9. This commit squashes
them into a single commit.

PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-27 13:40:58 -05:00
Forrest L Norvell
2a2fe5c4f2 deps: upgrade npm to 2.6.1
PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-02-27 13:39:37 -05:00
Benjamin Gruenbaum
f83d380647 doc: update os.markdown
Some doc update based on improvement ideas I remember from when I used this module in node:

 - Mention windows returns 0 for `nice` values (which is obvious, but io makes no attempt to calculate something similar or return undefined, 0 is returned)
 - Mention platform and arch are aliases for `process` properties.
 - Document possible return values where appropriate, add examples in others.
 - Rename title in order to match other titles in the navigation.
 - Fix line that was over 80 characters long.

PR-URL: https://github.com/iojs/io.js/pull/976
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
2015-02-27 15:22:38 +01:00
Pavel Medvedev
4d1fa2ca97 src: add check for already defined macro NOMINMAX
In order to avoid Visual C++ warning C4005 about macro redefinition
when node.h is included in another project.

PR-URL: https://github.com/iojs/io.js/pull/986
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-27 10:47:10 +01:00
Mikeal Rogers
ae7a23351f doc: add roadmap, i18n, tracing, evangelism WGs
PR-URL: https://github.com/iojs/io.js/pull/911
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-02-26 15:29:24 -08:00
Mikeal Rogers
14174a95a5 doc: document roadmap, workgroups
PR: https://github.com/iojs/io.js/pull/886
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-02-26 23:49:14 +01:00
Christian Tellnes
865ee313cf doc: add tellnes as collaborator
PR-URL: https://github.com/iojs/io.js/pull/973
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
2015-02-26 21:25:54 +01:00
Brian White
01296923db doc: add mscdex as collaborator
PR-URL: https://github.com/iojs/io.js/pull/972
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-02-26 15:17:19 -05:00
Rod Vagg
135dfe8ba5 Working on v1.4.2 2015-02-26 13:40:25 -06:00
Rod Vagg
4810dd494e 2015-02-26 io.js v1.4.1 Release
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.
  https://github.com/iojs/io.js/pull/758 (Petka Antonov)
* streams: you can now use regular streams as an underlying socket for
  tls.connect() https://github.com/iojs/io.js/pull/758 (Fedor Indutny)
* http: A new 'abort' event emitted when a http.ClientRequest is
  aborted by the client. https://github.com/iojs/io.js/pull/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 https://github.com/iojs/io.js/pull/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.
2015-02-26 13:37:12 -06:00
Brendan Ashworth
2e2cf81476 doc: fix process.stdout reference to console.log
This commit changes the word introduction to the code block to be
explicitly correct, and changes the `d` variable to `msg` for clarity.

PR-URL: https://github.com/iojs/io.js/pull/964
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Nicu Micleușanu <micnic90@gmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
2015-02-26 13:06:35 -05:00
Tim Oxley
2e63bad7eb doc: link & formatting of SHAs in commit list
This adds more consistency, plus links to commits are particularly useful.

PR-URL: https://github.com/iojs/io.js/pull/967
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-26 11:22:52 -06:00
silverwind
c5050d8e4d doc: fix 'dhparam' description of tls.createServer
fixes #958

Fixes: https://github.com/iojs/io.js/issues/958
PR-URL: https://github.com/iojs/io.js/pull/968
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-02-26 23:44:50 +09:00
Ben Noordhuis
b2a0d8f65e deps: update libuv to 1.4.2
PR-URL: https://github.com/iojs/io.js/pull/966
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-02-26 14:24:58 +01:00
Evan Lucas
e435a0114d src: fix intermittent SIGSEGV in resolveTxt
Fixes a SIGSEGV by making sure `txt_chunk` is not empty before setting
it on `txt_records`

PR-URL: https://github.com/iojs/io.js/pull/960
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-25 22:45:35 -06:00
Chris Dickinson
0af4c9ea74 src: fix domains + --abort-on-uncaught-exception
If run with --abort-on-uncaught-exception, V8 will abort the process
whenever it does not see a JS-installed CatchClause in the stack. C++
TryCatch clauses are ignored. Domains work by setting a FatalException
handler which is ignored when running in abort mode.

This patch modifies MakeCallback to call its target function through a
JS function that installs a CatchClause and manually calls _fatalException
on error, if the process is both using domains and is in abort mode.

Semver: patch
PR-URL: https://github.com/iojs/io.js/pull/922
Fixes: https://github.com/iojs/io.js/issues/836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-25 14:01:29 -08:00
Evan Lucas
2ca22aacbd http: emit abort event from ClientRequest
ClientRequest will now emit an abort event the first time abort()
is called.

Semver: Minor
Fixes: https://github.com/joyent/node/issues/9278
PR-URL: https://github.com/iojs/io.js/pull/945
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-25 16:40:31 -05:00
Fedor Indutny
89e133a1d8 stream_base: remove static JSMethod declarations
Move JS methods to the stream_base-inl.h and thus define them on each
use of `StreamBase::AddMethods`. Inline `AddMethods` itself, so that
there won't be any need in a static declaration in stream_base.cc.

NOTE: This basically allows using this API in user-land, though, some
polishing is required before releasing it.

PR-URL: https://github.com/iojs/io.js/pull/957
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-02-25 14:21:34 -06:00
Ben Noordhuis
a558cd0a61 deps: revert v8 abi change
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: https://github.com/iojs/io.js/pull/952
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-02-25 19:34:28 +01:00
Fedor Indutny
54532a9761 deps: fix postmortem support in v8
Fix: iojs/io.js#461
PR-URL: https://github.com/iojs/io.js/pull/706
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-02-25 19:34:27 +01:00