Hey ports@,

plz dont scold me for, idk, a lot of things. I dont have things in place
as I would like them to be. And I only understand half - well maybe a
bit more but, not much - of what is written here. I used ChatGPT, and I
will keep using it. And I use abbrevations in the mails and text I
write; and with a bit of irony I agree that we all should write out
"change-directory" everytime we do want todo so, and not use cd instead.
Back to topic. I still feel compelled to report a bug I encountered,
even if I dont follow ports yet and dont have everything setup up
perfectly as I would want it to.

ChatGPT wrote u this, which sums things up better than I could:


Hi ports@,

After upgrading to the latest -current packages, ungoogled-chromium no
longer starts. The executable fails at execve(2) with ENOMEM, apparently
because its executable ELF segment exceeds OpenBSD/amd64's MAXTSIZ limit
of 256 MiB.

System:

    OpenBSD 8.0-current, amd64 GENERIC.MP #92, Sun Oct 11 22:27:10 MDT
    2026 Package: ungoogled-chromium-155.0.8059.39

Reproduction:

Running the executable directly:

    $ /usr/local/ungoogled-chromium/ungoogled-chromium --version

Results in:

    zsh: cannot allocate memory:
    /usr/local/ungoogled-chromium/ungoogled-chromium

The same happens when launching through the regular browser wrapper.

Tracing the execution:

    $ ktrace -f /tmp/chromium.trace
    /usr/local/ungoogled-chromium/ungoogled-chromium --version

Produces:

    ktrace: exec of '/usr/local/ungoogled-chromium/ungoogled-chromium'
    failed: Cannot allocate memory

The kdump output confirms that execution fails before Chromium itself
starts.

ELF investigation:

    $ readelf -Wl /usr/local/ungoogled-chromium/ungoogled-chromium

The relevant PT_LOAD segment is:

    Type   Offset      FileSiz      MemSiz       Flg  Align LOAD
    0x349e340   0x10228870   0x10228870    E   0x1000

This executable segment has a size of 270,698,608 bytes (258.16 MiB).

In sys/arch/amd64/include/vmparam.h:

    #define MAXTSIZ ((paddr_t)256*1024*1024)

And sys/kern/kern_exec.c, in check_exec(), contains:

    if ((epp->ep_tsize > MAXTSIZ) || 
        (epp->ep_dsize > lim_cur(RLIMIT_DATA))) 
        error = ENOMEM;

This appears to explain the failure: the executable's text segment
exceeds MAXTSIZ by approximately 2.16 MiB.

I also tested with the data-size resource limit set to unlimited (ulimit
-d unlimited). The error remains unchanged. Available swap is not
exhausted.

Regression:

The browser was working before the package upgrade. The problem appeared
immediately after updating to version 155.0.8059.39.

Possible resolution:

Would it be possible to adjust the Chromium build to keep the executable
text size below MAXTSIZ, or is an increase to the kernel limit being
considered?

I can provide the full readelf output, ktrace and dmesg if needed.

---

The whole conversation including the process of finding the cause can be
read at this link, 

https://chatgpt.com/share/6accda70-38fc-83ed-8fc2-8cbdb6fddcbd


Kind regards, Dorian Haasler

Reply via email to