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: a9f8196d01f8
Choose a base ref
...
head repository: nodejs/node-v0.x-archive
compare: 7207d7778bab
Choose a head ref
  • 1 commit
  • 1 file changed
  • 1 contributor

Commits on Apr 6, 2015

  1. test: immunize data flow from packet size and order

    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.
    gireeshpunathil committed Apr 6, 2015
    Copy the full SHA
    7207d77 View commit details
    Browse the repository at this point in the history