IBM Support

IV76797: ENABLE LIBUV TO FORK PROCESSES BASED ON CORRECTLY UNDERSTANDING RELATIVE, NOT ABSOLUTE, PATHS STARTING OR CONTAINING '..'

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: Error: spawn ENOENT
    .
    Stack Trace: events.js:72
            throw er; // Unhandled 'error' event
                ^
    Error: spawn ENOENT
        at errnoException (child_process.js:1001:11)
        at Process.ChildProcess._handle.onexit
    (child_process.js:792:34)
    .
    This problem can also be experienced in other SDK tooling
    contexts where the dependence on the 'Node' runtime is less
    directly visible, such as with 'npm'.
    For example, during npm testing a change resulted in our running
    Node from node/deps/npm with a relative path, i.e. ../../node,
    but resulted in:
    "node/deps/npm/../node:  not found."
    The problem is that the only relative path support in libuv was
    for "./<relative-to-current-directory_path>" and thus when
    employing "../<our_path>" this is being mis-interpreted : the
    "./" (for specifying relative to the current directory) being
    normally stripped away in deriving the absolute path reference
    to the subject.  On encountering the "../", this was being
    treated like "./" (but silently absorbing the leading '.' in the
    context) causing the resulting path reference to invariably be
    one directory removed from the correct file system reference.
    

Local fix

  • Only ever work with fully qualified  absolute path references.
    

Problem summary

  • Forking a process / creating a sub-process entails launching a
    new process with another executable image.  libuv previously did
    not handle the case where that executable image (or an other
    reference) was located via a relative path other than the
    current working directory; essentially, it only was working when
    a full absolute path was presented.
    

Problem conclusion

  • This delivers a contributed enhancement to libuv to handle the
    case of '..' in a relative path when determining file system
    references.
    .
    This APAR will be fixed in the following IBM SDK for Node.js
    Releases:
       1.1.0.10
       1.2.0.1
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    Service Refreshes and Fix Packs can be found at:
               http://www.ibm.com/developerworks/web/nodesdk/
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV76797

  • Reported component name

    NODE.JS

  • Reported component ID

    AIMNDJS00

  • Reported release

    110

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-09-07

  • Closed date

    2015-09-07

  • Last modified date

    2015-09-07

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    NODE.JS

  • Fixed component ID

    AIMNDJS00

Applicable component levels

  • R110 PSY

       UP

  • R120 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSWLKB","label":"IBM SDK for Node.js"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
11 February 2022