- Apr 14, 2015
-
-
Gireesh Punathil authored
simple/test-child-process-stdout-flush-exit.js fails with an assertion. The root cause for this assertion is that the expected boolean value of true for the variable gotBye was false. This is set to true when the piped stdout stream of the child writes the end token "goodbye". So the error message would indicate that the end token was never received by the parent, but in fact it did. The only difference is that the first chunk itself had both 'hello' and 'goodbye' (as well as the filler words in between) in AIX, while Linux receives them separately. While this issue is not reproducible in Linux, the number of bytes received each time a callback is called is not consistent across runs, which is ratified as the actual content size of a UNIX domain data packet is determined outside of the node's logic, instead in OS tunables, as well as the runtime context of data transfer (depending on contigeous free memory available in OS data structures at the time of sending). In addition, around 200 filler words sent in between the 'hello' and 'goodbye' seem to indicate that the coalescence of chunks was a possibility in Linux as well, and was devised to separate the first word from the last, through an arbitrary delimiter. Parser logic seem to be rigid and have assumptions about the order and size of the data arrival. For example, it checks for 'goodbye' only when it does not find 'hello' in it, as if they would always come separately. This exclusiveness is what makes the test to fail in AIX. Reviewed-By: PR-URL: https://github.com/joyent/node/pull/14410
-
- Apr 09, 2015
-
-
James M Snell authored
Per feedback on the commit, make the PrintHelp output for --enable-legacy-cipher-list less verbose. Reviewed-By:
James M Snell <jasnell@gmail.com> PR-URL: https://github.com/joyent/node/pull/14414
-
James M Snell authored
Disable RC4 in the default cipher list Add the `--cipher-list` command line switch and `NODE_CIPHER_LIST` environment variable to completely override the default cipher list. Add the `--enable-legacy-cipher-list` and `NODE_LEGACY_CIPHER_LIST` environment variable to selectively enable the default cipher list from previous node.js releases. Reviewed-By:
James M Snell <jasnell@gmail.com> PR-URL: https://github.com/joyent/node/pull/14414
-
- Apr 02, 2015
-
-
Gireesh Punathil authored
In Linux, simple/test-child-process-fork-net2.js fails intermittently. In SuSE Linux system, under network high load situations, this failure is consistently reproducible. The test case tests whether the TCP connections which were established between the processes terminate in a timely and clean manner. After some iterations of data transfer on established connections, the server is closed. The server does not get closed immediately, instead waits for all the active connections to terminate. A timed (200ms) callback closes the connections, which eventually closes the server. The start is the time when the server close is invoked. The end is the time when the server is actually closed(onClose call back invoked). Given that there is a minimum delay of 200ms before the connections are terminated, expecting the elapsed time above 190 is reasonable and fair, but looks like the leeway of 800ms for the upper bounds seem to be too stringent, and breaking some scenarios of network load. Reviewed-By:
Michael Dawson <michael_dawson@ca.ibm.com> PR-URL: https://github.com/joyent/node/pull/14129
-
- Apr 01, 2015
-
-
Julien Gilli authored
-
Julien Gilli authored
-
Julien Gilli authored
* uv: Upgrade to 1.4.2 * npm: Upgrade to 2.7.4 * V8: do not add extra newline in log file (Julien Gilli) * V8: Fix --max_old_space_size=4096 integer overflow (Andrei Sedoi) * asyncwrap: fix constructor condition for early ret (Trevor Norris) * buffer: align chunks on 8-byte boundary (Fedor Indutny) * buffer: fix pool offset adjustment (Trevor Norris) * build: fix use of strict aliasing (Trevor Norris) * console: allow Object.prototype fields as labels (Colin Ihrig) * fs: make F_OK/R_OK/W_OK/X_OK not writable (Jackson Tian) * fs: properly handle fd passed to truncate() (Bruno Jouhier) * http: fix assert on data/end after socket error (Fedor Indutny) * lib: fix max size check in Buffer constructor (Ben Noordhuis) * lib: fix stdio/ipc sync i/o regression (Ben Noordhuis) * module: replace NativeModule.require (Herbert Vojčík) * net: allow port 0 in connect() (cjihrig) * net: unref timer in parent sockets (Fedor Indutny) * path: refactor for performance and consistency (Nathan Woltman) * smalloc: extend user API (Trevor Norris) * src: fix for SIGINT crash on FreeBSD (Fedor Indutny) * src: fix builtin modules failing with --use-strict (Julien Gilli) * watchdog: fix timeout for early polling return (Saúl Ibarra Corretgé)
-
Gireesh Punathil authored
simple tests test-cluster-master-error.js, test-cluster-master-kill.js fails in AIX with assertion failure indicating that the workers were alive even after the master terminated. A 200ms leeway is provided for the workers to actually terminate, but the isAlive check returns true in both the cases. In AIX, the workers were actually terminating, but they took more time - as much as 800ms (normal) to 1000ms (in rare cases). Based on a C test we ran, it is found that the exit routines in AIX is a bit more longer than that in Linux. There are a number of cleanup activities performed in exit() system call, and depending on when the signal handlers are shutdown in that sequence, the process will be deemed as dead or alive, from another process's perspective. process.kill(pid) is used in the test case to check the liveliness of the worker, and when the kill() call is issued, even if the target process is in it's exit sequences, if the signal handlers are not shut down, it will respond to external signals, causing those calls to pass. This fix extends the additional timeout for all platforms Reviewed-By:
Michael Dawson <michael_dawson@ca.ibm.com> PR-URL: https://github.com/joyent/node/pull/9431
-
- Mar 28, 2015
-
-
Fedor Indutny authored
This is a backport of b64983d7. Original commit message: src: reset signal handler to SIG_DFL on FreeBSD FreeBSD has a nasty bug with SA_RESETHAND reseting the SA_SIGINFO, that is in turn set for a libthr wrapper. This leads to a crash. Work around the issue by manually setting SIG_DFL in the signal handler. Fix: https://github.com/joyent/node/issues/9326 PR-URL: https://github.com/iojs/io.js/pull/1218 Reviewed-By:
Johan Bergström <bugs@bergstroem.nu> Reviewed-By:
Ben Noordhuis <info@bnoordhuis.nl> Fixes #9326. Reviewed-By:
Trevor Norris <trev.norris@gmail.com> PR-URL: https://github.com/joyent/node/pull/14184
-
Fedor Indutny authored
This change is a backport of 1a3ca822 from io.js. Original commit message: Read all pending data out of the socket on `error` event and ensure that no `data`/`end` handlers will be invoked on `socket.destroy()`. Otherwise following assertion happens: AssertionError: null == true at TLSSocket.socketOnData (_http_client.js:308:3) at TLSSocket.emit (events.js:107:17) at TLSSocket.Readable.read (_stream_readable.js:373:10) at TLSSocket.socketCloseListener (_http_client.js:229:10) at TLSSocket.emit (events.js:129:20) at TCP.close (net.js:476:12) Fix: https://github.com/joyent/node/issues/9348 PR-URL: https://github.com/iojs/io.js/pull/1103 Reviewed-By:
Rod Vagg <rod@vagg.org> Reviewed-By:
Nicu Micleușanu <micnic90@gmail.com> Fixes #9348. Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/14087
-
Forrest L Norvell authored
Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/14180
-
Gireesh Punathil authored
simple tests test-http-request-end.js, test-http-default-encoding.js hangs in AIX. The root cause for both the failures is related to the timing with which packets are sent between the client and server. On the client side, one factor that affects the timing is Nagle's algorithm. With Nagle enabled there may be a delay between two packets as the stack may wait until either: a. An acknowledgement for the first packet is received, or b. 200 ms elapses. before sending the second packet. Similarly at the server side 2 sequential packages can be delivered to the application either together or separatly. On AIX we see that they are delivered separately to the server, while on Linux delivered together. If we change the timing, for example disabling Nagle on AIX we see the 2 packets delivered together and the tests pass. In the test case simple/test-http-request-end.js, the client request handler of the server receives and stores the data in a data callback, closes the server in a request end callback, and writes to the client and ends the response, in-line with the request receipt. An HTTP parser module parses the incoming message, and invokes callback routines which are registered for HTTP events (such as header, body, end etc.) Because the termination sequence arrive in a separate packet, there is a delay in parsing that message and identify that the client request ended (and thereby invoke the request end call backhandler). Due to this delay, the response close happens first, which in-turn destroys the server socket leading to the fd and watcher removal from the uv loop abandoning further events on this connection, and end call back never being called, causing the reported hang. simple/test-http-default-encoding.js suffers from the same problem. Also, remove the timer logic from the test case. Test harness anyways contain a timer which controls the individual tests so remove such controls from the test case, as suggested by @tjfontaine Reviewed-By:
Michael Dawson <michael_dawson@ca.ibm.com> PR-URL: https://github.com/joyent/node/pull/9432
-
- Mar 27, 2015
-
-
Michael Dawson authored
At the uv layer pipes are connected with uv_pipe_connect. The current spec for this method indicates that the maximum length is limited to the size of length of sizeof(sockaddr_un.sun_path), typically between 92 and 108 bytes. Anything longer than that just gets truncated. The simple testsuite currently creates pipes in directories under the directory where node was built. In our jenkins jobs this sometimes ends up being a deep enough path that the path for the pipes is getting truncated. The result is that tests using pipes fail with errors that don't make it obvious what the problem is. Even if the errors were helpful, we still need a way to avoid the truncation. This patch adds the environment variable NODE_PIPE_DIR. If set the tests create pipes in this directory instead of the current defaults. In addition the test harness is updated to remove/delete this directory before/after each test is run. modified: test/common.js modified: test/simple/test-net-pipe-connect-errors.js modified: test/testpy/__init__.py modified: test/simple/test-cluster-eaccess.js Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9381
-
- Mar 26, 2015
-
-
Nathan Woltman authored
Improve performance by: + Not leaking the `arguments` object! + Getting the last character of a string by index, instead of with `.substr()` or `.slice()` Improve code consistency by: + Using `[]` instead of `.charAt()` where possible + Using a function declaration instead of a var declaration + Using `.slice()` with clearer arguments + Checking if `dir` is truthy in `win32.format` (added tests for this) Improve both by: + Making the reusable `trimArray()` function + Standardizing getting certain path statistics with the new `win32StatPath()` function Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9289
-
- Mar 24, 2015
-
-
Julien Gilli authored
Conflicts: ChangeLog src/node_version.h
-
Julien Gilli authored
-
Julien Gilli authored
Conflicts: ChangeLog
-
Julien Gilli authored
* openssl: upgrade to 1.0.1m (Addressing multiple CVES)
-
Shigeki Ohtsu authored
reapply b9106137 PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm.orig was accidentally committed before. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
It is no longer used. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Fedor Indutny authored
`x86masm.pl` was mistakenly using .486 instruction set, why `cpuid` (and perhaps others) are requiring .686 . PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
sha256-x86_64.pl does not exist in the origin openssl distribution. It was copied from sha512-x86_64.pl and both sha256/sha512 scripts were modified so as to generates only one asm file specified as its key hash length. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
change all openssl/include/openssl/*.h to include resolved symbolic links and openssl/crypto/opensslconf.h to refer config/opensslconf.h PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
James M Snell authored
Extract the tarball into deps/openssl/openssl PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> Conflicts: deps/openssl/openssl/apps/s_client.c
-
Julien Gilli authored
-
Julien Gilli authored
-
Saúl Ibarra Corretgé authored
Switch from running the loop with UV_RUN_ONCE to UV_RUN_DEFAULT, because it's possible that the poll returns earlier than expected and thus the timer is not run on a single interation. The loop is not stopped either from the timer callback or from the async handle's. Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9410
-
Julien Gilli authored
* openssl: upgrade to 1.0.1m (Addressing multiple CVEs)
-
Shigeki Ohtsu authored
reapply b9106137 PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm.orig was accidentally committed before. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
It is no longer used. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Fedor Indutny authored
`x86masm.pl` was mistakenly using .486 instruction set, why `cpuid` (and perhaps others) are requiring .686 . PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
sha256-x86_64.pl does not exist in the origin openssl distribution. It was copied from sha512-x86_64.pl and both sha256/sha512 scripts were modified so as to generates only one asm file specified as its key hash length. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
Shigeki Ohtsu authored
change all openssl/include/openssl/*.h to include resolved symbolic links and openssl/crypto/opensslconf.h to refer config/opensslconf.h PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
James M Snell authored
Extract the tarball into deps/openssl/openssl PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com>
-
- Mar 20, 2015
-
-
Trevor Norris authored
Because we are floating several patches on top of libuv, make that apparent in the version number. Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9179
-
Ole André Vadla Ravnås authored
Original commit message: darwin: fix size calculation in select() fallback Apple's `fd_set` stores its bits in an array of 32-bit integers, which means `FD_ISSET()` may read out of bounds if we allocate storage at byte granularity. There's also a chance that the `select()` call could corrupt the heap, although I didn't investigate that. This issue was discovered by LLVM's AddressSanitizer which caught `FD_ISSET()` trying to read out of bounds. Ref: https://github.com/libuv/libuv/pull/241 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9179
-
Julien Gilli authored
Float patch to fix setsockopt for multicast on Solaris and derivatives. Original commit message: solaris: fix setsockopt for multicast options On Solaris and derivatives such as SmartOS, the length of socket options for multicast and ttl options is not always sizeof(char). This fixes the udp_options and udp_options6 tests. Ref: https://github.com/libuv/libuv/pull/243 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9179
-
Alexis Campailla authored
Float patch to fix pipe on Windows. Original commit message: win: fix pipe blocking writes In the code path for pipe blocking writes, WriteFile is already posting a completion packet to the I/O completion port. POST_COMPLETION_FOR_REQ was causing the same request to get returned twice by GetCompletionStatusEx. Also on the same code path, we were waiting on the wrong event. We need to update queued_bytes and write_queue_size when a blocking write request completes asynchronously. Ref: https://github.com/libuv/libuv/pull/238 Reviewed-By:
Julien Gilli <julien.gilli@joyent.com> PR-URL: https://github.com/joyent/node/pull/9179
-