fs.watch() doesn't work on IBM i

Issue #15 resolved
Kerim Güney created an issue

This is very unfortunate because many useful packages like nodemon rely on this.

Comments (14)

  1. Jesse G

    @TaskForce_Kerim , I believe this is partially fixed in the latest build of Node.js version 10 (only). What version of Node are you running?

  2. mengxumx Account Deactivated

    @TaskForce_Kerim This is issue should be fixed in the latest Node.js 8.12.0/10.11.0 and the nodemon package is tested. You my upgrade Node.js and try it again.

  3. Kerim Güney reporter
    • changed status to open

    Hey @mengxumx

    I was a bit preoccupied for a while. I tried upgrading our Node.js from version 8.11.3 to 8.12.0 but when I run node, I get the following issue:

    gueney@TFSVRTST:~ $ yum install nodejs8
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package nodejs8.ppc64 0:8.12.0-1 will be installed
    --> Finished Dependency Resolution
    
    [...]
    
    Install       1 Package
    
    Total size: 19 M
    Installed size: 68 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running Transaction Check
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : nodejs8-8.12.0-1.ppc64                                                                                                                                                                          1/1
    
    Installed:
      nodejs8.ppc64 0:8.12.0-1
    
    Complete!
    gueney@TFSVRTST:~ $ node -v
    Could not load program node:
    rtld: 0712-001 Symbol _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-002 fatal error: exiting.
    
  4. Kerim Güney reporter

    Node10 throws a similar error

    gueney@TFSVRTST:~ $ /QOpenSys/pkgs/lib/nodejs10/bin/node
    Could not load program node:
    rtld: 0712-001 Symbol _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-002 fatal error: exiting.
    

    I downgraded to 8.11.3 and that one works.

    OS version 7.3

  5. Kerim Güney reporter

    Well, something broke :/

    I tried another node 8 installation but it didn't work, so I downgraded back to 8.11.3 but now I get an error here as well

    gueney@TFSVRTST:~ $ /QOpenSys/pkgs/lib/nodejs8/bin/node
    Could not load program node:
    rtld: 0712-001 Symbol memcpy was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol memmove was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol strcat was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol strcmp was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol strcpy was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol strncpy was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-002 fatal error: exiting.
    
  6. Kerim Güney reporter

    Never mind. I found the issue. For some reason it's not possible to call the the node binaries directly through their actual location (e.g. /QOpenSys/pkgs/lib/nodejs10/bin/node) if there's no symbolic link in /QOpenSys/pkgs/bin/node. After the symbolic link was created by nodever, things worked just fine.

  7. Kerim Güney reporter

    Well... not resolved after all. I tried to install node 8.12.0 on our production machine running 7.2 but here I can't even run nodever

    gueney@TFSVR1:/QOpenSys/pkgs/bin $ nodever
    Could not load program node:
    rtld: 0712-001 Symbol _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-001 Symbol _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv was referenced
          from module node(), but a runtime definition
                of the symbol was not found.
    rtld: 0712-002 fatal error: exiting.
    

    I got it to work by installing libstdcplusplus6 and libstdcplusplus-devel

  8. mengxumx Account Deactivated

    Hello @TaskForce_Kerim Yum is expected to resolve the dependencies automatically so it is weird. nodever itself is a shell script to manage the global links of different versions of node.js. It dose not depend on the libstdcpp libs. But it calls nodejs to retrieve the versions and nodejs depends on these libstdcpp libs.

    So when you install nodejs, yum should install these libstdcpp libs automatically. I do not know why they are not there.

    But generally, it is recommended to use nodever to manage the effective version of node.js.

  9. Kerim Güney reporter

    Hi @mengxumx

    iirc node.js 8.12.0 didn't download any dependencies, node.js 10.11.0 did have one dependency but that was libopenssl. I tried to check out what dependencies are defined in the RPM package but couldn't open the cpio archive.

    gueney@TFSVR1:~/tp $ cpio -idmv <  node.cpio
    
    
    Out of phase!
    cpio attempting to continue...
    skipping 655912 bytes to get back in phase!
     One or more files lost and the previous file is possibly corrupt
    
    Can't read input
    
  10. mengxumx Account Deactivated

    You may try rpm -qp --requires nodejs10-10.11.0-0.ibmi7.2.ppc64.rpm to get the dep list.

  11. Kerim Güney reporter

    Thanks a bunch. The dependencies seem correct.

    Odd, odd. Well, either way this issue is resolved. Much thanks!

  12. Log in to comment