nodejs / build

Better build and test infra for Node.
503 stars 165 forks source link

Update Fedora machines to supported versions #3350

Closed targos closed 2 months ago

targos commented 1 year ago

We currently have 5 vms, on Fedora 32, 37 (labeled last-latest) and 38 (labeled latest).

CleanShot 2024-01-09 at 16 39 55

targos commented 1 year ago

I connected a new host with Fedora 38 in https://github.com/nodejs/build/pull/3352:

https://ci.nodejs.org/manage/computer/test-digitalocean-fedora38-x64-1/

Unfortunately, one test on nodejs/node@main fails consistently:

https://ci.nodejs.org/job/node-test-commit-linux/nodes=fedora-latest-x64/52059/

=== release test-net-bytes-per-incoming-chunk-overhead ===
Path: pummel/test-net-bytes-per-incoming-chunk-overhead
node:assert:399
    throw err;
    ^

AssertionError [ERR_ASSERTION]: measured 4549.4272 bytes per chunk
    at process.<anonymous> (/home/iojs/build/workspace/node-test-commit-linux/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js:49:3)
    at process.emit (node:events:523:35) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}

Node.js v21.0.0-pre
Command: out/Release/node --expose-gc /home/iojs/build/workspace/node-test-commit-linux/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js

[00:54|% 100|+   0|-  10]: Done

Failed tests:
out/Release/node --expose-gc /home/iojs/build/workspace/node-test-commit-linux/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js
targos commented 1 year ago

I connected the machine to the CI and it picked up https://ci.nodejs.org/job/node-test-node-addon-api-new/nodes=fedora-latest-x64/7737/

targos commented 1 year ago

Agent is now definitely connected: https://ci.nodejs.org/computer/test-digitalocean-fedora38-x64-1/ I'll monitor the jobs it takes over the next few days.

targos commented 1 year ago

We now have two fedora38 machines in CI. I disconnected https://ci.nodejs.org/computer/test-digitalocean-fedora34-x64-2/ and will replace it with fedora37 when I get back to this.

targos commented 8 months ago

I updated the OP because Fedora 37 is EoL and we have issues with its GCC version. Now I suggest these changes:

richardlau commented 8 months ago

SGTM. Is Fedora 39 available as a selectable provisioning option on the providers hosting the machines to be replaced?

targos commented 8 months ago

DigitalOcean: CleanShot 2024-01-09 at 18 06 46@2x

Rackspace: CleanShot 2024-01-09 at 18 10 01@2x

😞

richardlau commented 4 months ago

Unfortunately it looks like DigitalOcean is the only current provider offering out-of-the-box recent versions of Fedora (39 and 38). We may have to migrate all the Fedora VMs to DO droplets, or move to a container based solution (which would mean not testing against the Fedora kernel).

I thought IBM Cloud used to allow us to provide images to create the VMs from, but I can't seem to see that option anymore and the choice of OS does not include Fedora.

targos commented 4 months ago

FWIW Rackspace allows to upload custom images.

richardlau commented 4 months ago

FWIW Fedora Cloud images are available from https://download.fedoraproject.org/pub/fedora/linux/releases/<version>/Cloud/, e.g. https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images/

or https://fedoraproject.org/cloud/download for the portal for the current release (Fedora 40).

targos commented 2 months ago

Rackspace no longer provides any option to create a vm using Fedora. I looked multiple times into uploading custom images, but the difficulty of that task is beyond my understanding.

With https://github.com/nodejs/build/pull/3827, https://github.com/nodejs/build/pull/3828, and https://github.com/nodejs/build/pull/3829, we only need to upgrade test-digitalocean-fedora38-x64-1 and I think we can close this issue.

richardlau commented 2 months ago

we only need to upgrade test-digitalocean-fedora38-x64-1 and I think we can close this issue.

I'm looking at updating this machine (and whether we can Ansible automate the DNS fixup on DigitalOcean).

richardlau commented 2 months ago

we only need to upgrade test-digitalocean-fedora38-x64-1 and I think we can close this issue.

PR: https://github.com/nodejs/build/pull/3834 (includes fixing up the DNS settings and rebooting the machine during Ansible set up)

richardlau commented 2 months ago

Now complete. These are our current Fedora machines: