Navigation Menu

Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nodejs/node-v0.x-archive
base: 9010dd26529c
Choose a base ref
...
head repository: nodejs/node-v0.x-archive
compare: 94beb2985b4c
Choose a head ref
  • 11 commits
  • 504 files changed
  • 6 contributors

Commits on Mar 25, 2015

  1. path: refactor for performance and consistency

    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: #9289
    nwoltman authored and Julien Gilli committed Mar 25, 2015
    Copy the full SHA
    c66f8c2 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2015

  1. test: Env variable to specify directory for pipes

    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: #9381
    mhdawson committed Mar 26, 2015
    Copy the full SHA
    5dd5ce7 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2015

  1. test: address timing issues in simple http tests

    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: #9432
    gireeshpunathil authored and mhdawson committed Mar 27, 2015
    Copy the full SHA
    13e1131 View commit details
    Browse the repository at this point in the history
  2. deps: upgrade npm to 2.7.4

    Reviewed-By: Julien Gilli <julien.gilli@joyent.com>
    PR-URL: #14180
    othiym23 authored and Julien Gilli committed Mar 27, 2015
    Copy the full SHA
    2704c62 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2015

  1. http: fix assert on data/end after socket error

    This change is a backport of 1a3ca82
    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: #9348
      PR-URL: nodejs/node#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: #14087
    indutny authored and Julien Gilli committed Mar 28, 2015
    Copy the full SHA
    d6484f3 View commit details
    Browse the repository at this point in the history
  2. src: backport fix for SIGINT crash on FreeBSD

    This is a backport of b64983d.
    
    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: #9326
      PR-URL: nodejs/node#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: #14184
    indutny authored and Julien Gilli committed Mar 28, 2015
    Copy the full SHA
    61fe1fe View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2015

  1. test: make cluster tests more time tolerant

    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: #9431
    gireeshpunathil authored and mhdawson committed Mar 31, 2015
    Copy the full SHA
    f3f4e28 View commit details
    Browse the repository at this point in the history
  2. 2015.03.31, Version 0.12.2 (Stable)

    * 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é)
    Julien Gilli committed Mar 31, 2015
    Copy the full SHA
    523d445 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'v0.12.2-release' into v0.12

    Julien Gilli committed Mar 31, 2015
    Copy the full SHA
    cac2a74 View commit details
    Browse the repository at this point in the history
  4. Now working on 0.12.3

    Julien Gilli committed Mar 31, 2015
    Copy the full SHA
    c657dac View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2015

  1. Merge remote-tracking branch 'upstream/v0.12'

    Conflicts:
    	src/node_version.h
    Julien Gilli committed Apr 1, 2015
    Copy the full SHA
    94beb29 View commit details
    Browse the repository at this point in the history