Node.js reports wrong ABI version number

Bug #2085804 reported by Ben Grant
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nodejs (Ubuntu)
New
Undecided
Unassigned

Bug Description

Ubuntu version: 24.04.1 aarch64
Package version: 18.19.1+dfsg-6ubuntu5

Expected to happen: Node.js ABI version is the same as other copies of the same version of Node, or an Ubuntu-specific ABI version if Ubuntu has made an ABI-incompatible change.

What actually happened: Ubuntu's copy of Node.js 18 reports the ABI version assigned to Electron 21.

Ubuntu 24.04 includes Node.js 18.19.1. However, the ABI version number reported does not match:

$ node
Welcome to Node.js v18.19.1.
Type ".help" for more information.
> process.versions.modules
'109'

According to the registry [1], Node 18.x should have ABI version 108, and version 109 is assigned to Electron 21. In the official binaries for 18.x, process.versions.modules == '108'.

I did find this Debian bug [2] where it seems that they bumped the ABI version due to a t64-related change, but I don't understand exactly what the change is. Also their change doesn't seem to have made it into a release of Debian (Bookworm ships Node 18.19.0 with the correct ABI version 108, while testing has upgraded to 20.x). If that's the change that is affecting Ubuntu too then "Node 18 with some t64 change" should be assigned a new ABI version number instead of using the one for Electron 21.

[1] https://github.com/nodejs/node/blob/HEAD/doc/abi_version_registry.json
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1066399

Revision history for this message
kapouer (kapouer) wrote : Re: [Bug 2085804] [NEW] Node.js reports wrong ABI version number

Le mar. 29 oct. 2024 à 03:35, Ben Grant <email address hidden> a
écrit :

> Public bug reported:
>
> Ubuntu version: 24.04.1 aarch64
> Package version: 18.19.1+dfsg-6ubuntu5
>
> Expected to happen: Node.js ABI version is the same as other copies of
> the same version of Node, or an Ubuntu-specific ABI version if Ubuntu
> has made an ABI-incompatible change.
>
> What actually happened: Ubuntu's copy of Node.js 18 reports the ABI
> version assigned to Electron 21.
>
> Ubuntu 24.04 includes Node.js 18.19.1. However, the ABI version number
> reported does not match:
>
> $ node
> Welcome to Node.js v18.19.1.
> Type ".help" for more information.
> > process.versions.modules
> '109'
>
> According to the registry [1], Node 18.x should have ABI version 108,
> and version 109 is assigned to Electron 21. In the official binaries for
> 18.x, process.versions.modules == '108'.
>
> I did find this Debian bug [2] where it seems that they bumped the ABI
> version due to a t64-related change, but I don't understand exactly what
> the change is. Also their change doesn't seem to have made it into a
> release of Debian (Bookworm ships Node 18.19.0 with the correct ABI
> version 108, while testing has upgraded to 20.x). If that's the change
> that is affecting Ubuntu too then "Node 18 with some t64 change" should
> be assigned a new ABI version number instead of using the one for
> Electron 21.

That was my mistake.
Indeed, now that Ubuntu has it, it should request
a NODE_EMBEDDER_MODULE_VERSION
at https://github.com/nodejs/node/blob/HEAD/doc/abi_version_registry.json
See src/node_version.h

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.