Skip to content

chore(image): bump upstream Gateway pin 10.45.1g → 10.45.1j - #27

Merged
code-hustler-ft3d merged 1 commit into
mainfrom
chore/bump-stable-pin-10.45.1j
Sep 7, 2026
Merged

chore(image): bump upstream Gateway pin 10.45.1g → 10.45.1j#27
code-hustler-ft3d merged 1 commit into
mainfrom
chore/bump-stable-pin-10.45.1j

Conversation

@code-hustler-ft3d

Copy link
Copy Markdown
Owner

Same gnzsnz :stable line, three patch releases forward, digest sha256:91165c07….

Why now

Our pin dates from May. Beyond the usual upstream fixes, it is the last release built the old way on arm64, and that turns out to matter.

The 10.45.1g aarch64 image carries 112 MB that cannot run. It ships jxbrowser-linux64-8.9.4.jar, and the libtoolkit.so inside is an x86-64 ELF binary (e_machine 0x3e) on an aarch64 image. That is a side effect of the pre-#397 build, which assembled aarch64 images from IBKR's x64 installer plus a Zulu JRE. Upstream gnzsnz/ib-gateway-docker#397 switched aarch64 to IBKR's native arm installer, first published at 10.45.1h — IBKR published no arm installer at all for 10.45.1g.

Nothing usable is lost: IBKR's arm installer does not carry the browser either way (their 10.45.1j artifacts are 320 MiB for x64 against 206 MiB for arm).

The arm64 Java runtime changes with it. 10.45.1g used /usr/local/zulu17…; 10.45.1j has no Zulu present and uses install4j's own JRE registry under /usr/local/i4j_jres. The release-image.yml comment describing arm64 as Zulu-based is corrected here.

Validation

That runtime change is exactly the sort of thing that breaks launcher and JRE discovery, so this is measured rather than assumed. A controller image built on 10.45.1j passes tests/integration/gateway_autorestart_drill.py 17/17 — the real install4j launcher, agent injection into the real Gateway JVM, and the full issue #23 restart-adoption path. The same drill passes on 10.45.1g and on 10.50.1e.

Login, 2FA and the dialog handlers are untouched by this bump and are not re-verified against a real account here.

Notes

  • CI matrix gains 10.45.1j. ci: cover upstream's latest Gateway line; document building on any base (refs #24) #26 also edits that list (adding 10.50.1e), so whichever merges second needs a one-line rebase.
  • Spotted while testing, not fixed here: on 10.45.1j arm64 the installed .install4j/inst_jre.cfg still points at the installer's build-time temp directory (/tmp/setup/…-arm.sh.NNNN.dir/jre), which does not exist at runtime. Upstream's template only rewrites that file when a <version>/jre directory exists, which the arm installer does not produce. Harmless today — the launcher falls back to the i4j_jres registry, as the drill shows — but worth reporting upstream.

Same gnzsnz `:stable` line, three upstream patch releases forward,
digest sha256:91165c07...

On arm64 the bump also drops 112 MB of dead weight. The 10.45.1g
aarch64 image carries jxbrowser-linux64-8.9.4.jar, and the
libtoolkit.so inside it is an x86-64 ELF binary (e_machine 0x3e) that
cannot execute on aarch64. That was a side effect of the pre-#397
build, which assembled aarch64 images from IBKR's x64 installer plus a
Zulu JRE; upstream gnzsnz/ib-gateway-docker#397 moved aarch64 to IBKR's
native arm installer, first published at 10.45.1h. Nothing usable is
lost -- IBKR's arm installer does not carry the browser either way
(their 10.45.1j artifacts are 320 MiB x64 against 206 MiB arm).

The arm64 Java runtime changes with it: 10.45.1g used
/usr/local/zulu17..., while 10.45.1j has no Zulu at all and uses
install4j's own JRE registry under /usr/local/i4j_jres. The
release-image.yml comment describing arm64 as Zulu-based is corrected
accordingly.

Validated rather than assumed: a controller image built on 10.45.1j
passes tests/integration/gateway_autorestart_drill.py 17/17, so the
install4j launcher, agent injection and the issue #23 restart-adoption
path all work on the changed arm64 build. The same drill passes on
10.45.1g and on 10.50.1e.

Login, 2FA and the dialog handlers are untouched by this bump and are
not re-verified against a real account here.

Noted while testing, not addressed here: on 10.45.1j arm64 the
installed .install4j/inst_jre.cfg still points at the installer's
build-time temp directory (/tmp/setup/...-arm.sh.NNNN.dir/jre), which
does not exist at runtime. Upstream's template only rewrites that file
when a <version>/jre directory exists, which the arm installer does not
produce. Harmless today -- the launcher falls back to the i4j_jres
registry, as the drill demonstrates -- but worth reporting upstream.
@code-hustler-ft3d
code-hustler-ft3d force-pushed the chore/bump-stable-pin-10.45.1j branch from d96c978 to 92b5313 Compare September 7, 2026 16:19
@code-hustler-ft3d
code-hustler-ft3d merged commit 0a2ead3 into main Sep 7, 2026
1 check passed
@code-hustler-ft3d
code-hustler-ft3d deleted the chore/bump-stable-pin-10.45.1j branch September 7, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant