Skip to content

Validate testing on AIX 7.3 #61660

Description

@sxa

We do not currently have AIX 7.3 systems active in the CI. We do have two AIX 7.3 machines available and since this has been available for several years it makes sense to ensure that it is tested and that we understand if there are any problems on that version of the operating system.

This issue will cover test execution on the platform (outside jenkins for now) and then the activation of machines in the CI to allow it to be tested.

Activity

  1. self-assigned this
    on Feb 3, 2026
  2. added
    aixIssues and PRs related to the AIX platform.
    on Feb 3, 2026
  3. sxa commented on Feb 4, 2026

    @sxa
    MemberAuthor

    Initial run had three failures:

    out/Release/node /home/iojs/node/test/parallel/test-dgram-udp6-link-local-address.js
    out/Release/node /home/iojs/node/test/parallel/test-cluster-dgram-reuse.js
    out/Release/node /home/iojs/node/test/sequential/test-watch-mode-restart-esm-loading-error.mjs
    
    • The first is an issue relating to the network interfaces on the machine as it's a mismatch between lo0 and en1 in a UDP IPv6 context - the exception occurs in node:internal/assert/utils:146. On the AIX 7.3 machine there is an IPv6 address associated with the non-loopback interface en1 as well as lo0. That is not the case on the AIX 7.2 systems so is likely to be what is impacting this result.

      • AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
      • actual expected
      • 'fe80::4851:56ff:fe66:a584%lo0en1'
    • The second one appears to hang and timeout

    • The last of these is one that commonly appears regularly in the reliability reports and is not specific to AIX. A test of 200 iterations showed 3 failures - a fix was landed yesterday and I've verified with another 500 iterations that it passes 100% on the same system (and also runs a lot faster)

  4. sxa commented on Feb 6, 2026

    @sxa
    MemberAuthor

    For /home/iojs/node/test/parallel/test-dgram-udp6-link-local-address.js the test passes (technically it skips the test as it can't find a suitable interface - 1..0 # Skipped: cannot find any IPv6 interfaces with a link local address - the same as on the AIX7.2 machines) if you disable the IPv6 address on the en1 interface which had one set:

    chdev -l en1 -a netaddr6=''
    

    Noting that it previously had this value:

    # lsattr -El en1 | grep netaddr6
    netaddr6      fe80::4851:56ff:fe66:a584 IPv6 Internet Address                         True
    

    Supposedly hosts = local4,bind4 in /etc/netsvc.conf may stop it configuring by default in the future. TBC (Ref)

  5. sxa commented on Feb 18, 2026

    @sxa
    MemberAuthor

    Memo to self: Without the PATH set in the inventory it'll stop with this:

    TASK [package-upgrade : include package manager tasks] *************************
    included: /home/sxa/git/nodebuild/ansible/roles/package-upgrade/tasks/partials/dnf.yml for test-ibm-aix73-ppc64_be-4
    
    TASK [package-upgrade : upgrade installed packages] ****************************
    fatal: [test-ibm-aix73-ppc64_be-4]: FAILED! => {"changed": false, "msg": "Could not import the dnf python module using /opt/freeware/bin/python3.12 (3.12.11 (main, Aug  1 2025, 03:47:31) [GCC 10.3.0]). Please install `python3-dnf` package or ensure you have specified the correct ansible_python_interpreter. (attempted ['/usr/libexec/platform-python', '/usr/bin/python3', '/usr/bin/python'])", "results": []}
    
    PLAY RECAP *********************************************************************
    test-ibm-aix73-ppc64_be-4  : ok=17   changed=0    unreachable=0    failed=1    skipped=4    rescued=0    ignored=0   
    

    Otherwise (memo to self) this works after the machine has been set up with an appropriate size increase to rootvg (I'd given an extra 50G on a separate hdisk0 in the portal):

    • chvg -t 2 rootvg; extendvg rootvg hdisk0; PATH=/opt/freeware/bin:$PATH dnf install python3
    • ansible-playbook -e ansible_python_interpreter=/opt/freeware/bin/python3.12 -e secret=[...] ansible/playbooks/jenkins/worker/create.yml --limit test-ibm-aix73-ppc64_be-4
  6. sxa commented on Feb 18, 2026

    @sxa
    MemberAuthor
    TASK [jenkins-worker : install tap2junit] **************************************
    fatal: [test-ibm-aix73-ppc64_be-4]: FAILED! => {"changed": false, "cmd": "/usr/bin/pip3 install tap2junit==0.2.0", "msg": "[Errno 2] No such file or directory: b'/usr/bin/pip3'", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
    
  7. sxa commented on Feb 19, 2026

    @sxa
    MemberAuthor

    Fixed by setting executable to /opt/freeware/bin/pip3 instead of /usr/bin/pip3 in (Noting that on the previous machine /usr/bin/pip3 comes from an AIX package python3.9.base - I'm trying the new one with the dnf-installed one after running dnf install python3-pip) and that seems to have allowed the playbooks to run to completion.

    I've also manually increased the sizes of /home as it wasn't accepting the parameters (Had to run chlv -x 20480 hd1 and then chfs -a size=20G /home). Apparently the playbooks didn't abort when they got this error message:

    ok: [test-ibm-aix73-ppc64_be-4] => {"changed": false, "msg": "0516-787 extendlv: Maximum allocation for logical volume hd1\n\tis 512.\n"}
    
  8. sxa commented on Feb 19, 2026

    @sxa
    MemberAuthor

    Noting that I've still got some space issue on the AIX 7.3-4 machine despite it having 20GB free:
    https://ci.nodejs.org/job/node-test-commit-aix-shared-lib/2330/nodes=aix73-ppc64/console

    EDIT: Fixed after a reboot, so I guess some user settings had not yet kicked in:

  9. sxa commented on Mar 10, 2026

    @sxa
    MemberAuthor

    All tests apart from one are ok on AIX 7.3: test-cluster-dgram-reuse.js

    It's hanging on the second bind() operation with the underlying error of:

    bind(22, 0x0FFFFFFFFFFFB270, 16)	Err#67 EADDRINUSE
    

    I've been able to get this test to pass using a binary built on AIX 7.2.

  10. sxa commented on Mar 10, 2026

    @sxa
    MemberAuthor

    I've been able to get this test to pass using a binary built on AIX 7.2.

    The GA binary (built on AIX 7.2 of course) also seems to pass, which suggests it's some issue with the toolchain or headers on the AIX 7.3 machine behaving differently.

  11. khalidsaidi commented on Mar 25, 2026

    @khalidsaidi
  12. sxa commented on Apr 23, 2026

    @sxa
    MemberAuthor

    Coming back to this. I've set up a new machine with the changes to enable clang and rust in the playbooks and I've got a machine that now passes all the tests.

    Memo to self on stuff to implement/document one way or another next week:

    • dnf -y install python3-pip
    • ln -s /opt/freeware/bin/pip3 /usr/bin/pip3
    • chlv -x 8192 hd1
    • chfs -a size=30G /home
    • Run ansible-playbook with -e ansible_python_interpreter=/opt/freeware/bin/python3.12
    • Look at whether a download+checksum+extract of adoptium is feasible (ref)
    • Plus download of OpenXL utilities direct from this link without login needed)
    • OpenXL17 runtime is sadly behind a login at https://www.ibm.com/support/pages/fix-list-xl-cc-runtime-aix#17141 (17.1.4.1 at the time of writing) so that will need to be a manual install.
    • My test machine had all filesets from the downloads in the last two bullet points installed. That may not be necessary - TBC.
    • Disabled network interface en1 with ifconfig to allow test/parallel/test-dgram-udp6-link-local-address.js to pass.
  13. sxa commented on May 21, 2026

    @sxa
    MemberAuthor

    LDR_CNTRL was required to make the gcc builds for earlier versions of node work. Unfortuantely that had the side effect of breaking four tests and I've had to increase the value from MAXDATA=0xC0000000 to MAXDATA=0x200000000 but that seems to work for all situations.

  14. sxa commented on May 21, 2026

    @sxa
    MemberAuthor

    Now re-enabled. I have one final test of Node 24 running at https://ci.nodejs.org/job/node-test-commit-aix/nodes=aix73-power9/62792/console ont he 8GB machine (Node 24 is the last with gcc so most likely to have memory limitations) but the other machines look good now.

  15. sxa commented on May 26, 2026

    @sxa
    MemberAuthor

    wpt/test-streams seems particularly inconsistent on aix73-3 (18 failures out of 100). Showing as a # Fatal error in , line 0# Check failed: ptr == address.

    The aix73-4 machine with at least v22 and v24 is showing the following errors:

    21:49:36 out/Release/node /home/iojs/build/workspace/node-test-commit-aix/nodes/aix73-power9/test/parallel/test-child-process-exec-any-shells-windows.js
    21:49:36 out/Release/node /home/iojs/build/workspace/node-test-commit-aix/nodes/aix73-power9/test/parallel/test-child-process-exec-abortcontroller-promisified.js
    21:49:36 out/Release/node /home/iojs/build/workspace/node-test-commit-aix/nodes/aix73-power9/test/parallel/test-buffer-tostring-4gb.js
    21:49:36 out/Release/node /home/iojs/build/workspace/node-test-commit-aix/nodes/aix73-power9/test/parallel/test-buffer-tostring-rangeerror.js
    21:49:36 out/Release/node /home/iojs/build/workspace/node-test-commit-aix/nodes/aix73-power9/test/parallel/test-util-styletext.js
    
  16. sxa commented on May 26, 2026

    @sxa
    MemberAuthor

    Also https://ci.nodejs.org/job/node-test-commit-aix/nodes=aix73-power9/62881/ failed the dgram test on Node 22 on the aix73-3 machine

  17. sxa commented on Jun 10, 2026

    @sxa
    MemberAuthor

    Also https://ci.nodejs.org/job/node-test-commit-aix/nodes=aix73-power9/62881/ failed the dgram test on Node 22 on the aix73-3 machine

    Re-opening this as we've seen some additional failures on Node 22. Worst case we could disable the CI runs on AIX 7.3 for that release for now in the version selector script.

    These are the most recent nightly runs:

    Build Machine Failures
    63027 ibm-aix73-5 test-cluster-dgram-reuse error
    63035 ibm-aix73-5 test-cluster-dgram-reuse error
    63054 ibm-aix73-5 test-cluster-dgram-reuse error
    63078 ibm-aix73-5 test-cluster-dgram-reuse error
    63096 ibm-aix73-3 parallel/test-cluster-drgam-reuse client-proxy/test-https-proxy-request-connection-refused and client-proxy/test-https-proxy-request-server-failure-hang-up

    Stress testing (100 iterations) all three of the tests from the last of those runs against v22.x at https://ci.nodejs.org/job/node-stress-single-test/757
    And with v22.x-staging at https://ci.nodejs.org/job/node-stress-single-test/758

  18. reopened this on Jun 10, 2026
  19. richardlau commented on Jun 10, 2026

    @richardlau
    Member

    🤦 #62238 isn't on v22.x-staging yet, which is why test-cluster-dgram-reuse is failing for v22.x. I'll go and cherry-pick it now (it's already on v24.x.
    Still leaves the other failures on ibm-aix73-3.

  20. sxa commented on Jun 11, 2026

    @sxa
    MemberAuthor

    Still leaves the other failures on ibm-aix73-3.

    The stress test passed 100 iterations of the other two tests without any issues (including on that machine)#

    The 1000 iteration run also appears to be going well 🤔

    Those were with v22.x instead of v22.x-staging. 100 iteration run of the staging branch queued up at https://ci.nodejs.org/job/node-stress-single-test/761/

  21. miladfarca commented on Jul 21, 2026

    @miladfarca
    Contributor

    @sxa anything else remaining on this issue?

  22. sxa commented on Jul 22, 2026

    @sxa
    MemberAuthor

    Since 761 has disappeared we don't have the results, so re-running stress test with all three problematic tests on the following branches to determine frequency of failures. Noting that the aix73-4 box is not in active use and so the results on there should not impact decision making at this point:

    Since I don't think we've had many complaints about it my expectation is that we're ok to close this but I will await the results of those reruns.

  23. sxa commented on Aug 5, 2026

    @sxa
    MemberAuthor

    All good. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

aixIssues and PRs related to the AIX platform.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions