Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test-dgram-udp6-link-local-address failing on AIX 7.2 #46792

Open
richardlau opened this issue Feb 23, 2023 · 7 comments
Open

test-dgram-udp6-link-local-address failing on AIX 7.2 #46792

richardlau opened this issue Feb 23, 2023 · 7 comments
Labels
aix Issues and PRs related to the AIX platform.

Comments

@richardlau
Copy link
Member

  • Test: test-dgram-udp6-link-local-address
  • Platform: AIX 7.2
  • Console Output:
19:28:07 not ok 779 parallel/test-dgram-udp6-link-local-address
19:28:07   ---
19:28:07   duration_ms: 0.295
19:28:07   severity: fail
19:28:07   exitcode: 1
19:28:07   stack: |-
19:28:07     node:assert:124
19:28:07       throw new AssertionError(obj);
19:28:07       ^
19:28:07     
19:28:07     AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
19:28:07     + actual - expected
19:28:07     
19:28:07     + 'fe80::8034:d9ff:fead:df3f%lo0'
19:28:07     - 'fe80::8034:d9ff:fead:df3f%en1'
19:28:07                                  ^
19:28:07         at Socket.<anonymous> (/home/iojs/build/workspace/node-test-commit-aix/nodes/aix72-ppc64/test/parallel/test-dgram-udp6-link-local-address.js:45:10)
19:28:07         at Socket.<anonymous> (/home/iojs/build/workspace/node-test-commit-aix/nodes/aix72-ppc64/test/common/index.js:448:15)
19:28:07         at Socket.emit (node:events:510:28)
19:28:07         at UDP.onMessage [as onmessage] (node:dgram:933:8) {
19:28:07       generatedMessage: true,
19:28:07       code: 'ERR_ASSERTION',
19:28:07       actual: 'fe80::8034:d9ff:fead:df3f%lo0',
19:28:07       expected: 'fe80::8034:d9ff:fead:df3f%en1',
19:28:07       operator: 'strictEqual'
19:28:07     }
19:28:07     
19:28:07     Node.js v20.0.0-pre
19:28:07   ...

This is a follow on from #39143. I'm currently setting up some new AIX 7.2 VMs to attach to the Node.js CI and these have the "en1" and "sit0" network interfaces enabled that we had disabled on the existing VMs due to #39143 (comment). Now, instead of the test crashing (fixed by #41547) the test now errors as above -- looks like the test is expecting the address to be scoped to "en1" but it is scoped to "lo0" (the loopback interface).

cc @nodejs/platform-aix

@richardlau richardlau added the aix Issues and PRs related to the AIX platform. label Feb 23, 2023
@bnoordhuis
Copy link
Member

Is it possible for you to run node -p 'os.networkInterfaces()' on that machine? The output of ifconfig (or whatever the AIX equivalent is) would be helpful too.

I'm going to guess there's an interface whose address starts with fe80: but isn't a loopback device. That shouldn't be fatal though.

@richardlau
Copy link
Member Author

Yes, it will be possible -- I'll do so next week (I've got a day off work today and am not intending to turn on my work laptop).

@richardlau
Copy link
Member Author

@bnoordhuis
node -p 'os.networkInterfaces()':

{
  en0: [
    {
      address: '192.168.166.14',
      netmask: '255.255.255.248',
      family: 'IPv4',
      mac: 'fa:1e:f8:31:df:20',
      internal: false,
      cidr: '192.168.166.14/29'
    }
  ],
  en1: [
    {
      address: 'fe80::8034:d9ff:fead:df3f',
      netmask: 'ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: '82:34:d9:ad:df:3f',
      internal: false,
      cidr: 'fe80::8034:d9ff:fead:df3f/64',
      scopeid: 3
    }
  ],
  sit0: [
    {
      address: '::192.168.166.14',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: 'c0:a8:a6:0e:00:00',
      internal: false,
      cidr: '::192.168.166.14/96',
      scopeid: 0
    }
  ],
  lo0: [
    {
      address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '127.0.0.1/8'
    },
    {
      address: '::1',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
      family: 'IPv6',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '::1/128',
      scopeid: 1
    }
  ]
}

and ifconfig -a:

en0: flags=1e084863,814c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN>
        inet 192.168.166.14 netmask 0xfffffff8 broadcast 192.168.166.15
         tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1
en1: flags=1e084863,814c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN>
        inet6 fe80::8034:d9ff:fead:df3f%3/64
         tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1
sit0: flags=8100041<UP,RUNNING,LINK0>
        inet6 ::192.168.166.14/96
lo0: flags=e08084b,c0<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,LARGESEND,CHAIN>
        inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
        inet6 ::1%1/128
         tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1

@bnoordhuis
Copy link
Member

Right, pretty much what I expected: en1 has a link-local address (fe80::) but is not a loopback device.

The test expects the datagrams to arrive on fe80::...%en1 but instead they come in on fe80::...%lo0. I don't know why AIX works that way, it's kind of strange, but you can fix it by adding an AIX-specific check to the test.

@richardlau
Copy link
Member Author

richardlau commented Mar 6, 2023

FWIW I looked into a few AIX IPv6 config options:

(specifically "multi_homed" and "main_if6") but they haven't made a difference to the test and the dgrams still arrive on lo0.

@Astrovicis

This comment was marked as off-topic.

@bnoordhuis
Copy link
Member

@Astrovicis I've hidden your comment. Can you open a discussion instead of an issue? I'm pretty sure you're not hitting a node bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aix Issues and PRs related to the AIX platform.
Projects
None yet
Development

No branches or pull requests

3 participants