Aven crashes on macOS 27 — locale workaround

Olly Betts olly at survex.com
Mon Sep 21 23:02:05 BST 2026


On Mon, Sep 21, 2026 at 08:27:42AM +0200, Darek Lubomski wrote:
> I ran the following tests myself. Here is the raw terminal output:
[...]

OK, so it seems to affect all translations except en_US (which is a
translation for Survex as the base messages are en_GB but presumably
macOS uses en_US as its base so it's probably handled much like "C"
there).

> ➜  Jaskiniowy-Kataster-Tatr-Zachodnich git:(codex/czarna-dwa-ciagi) ✗
> env -u LANGUAGE LANG=pl_PL.UTF-8 LC_ALL=C.UTF-8 SURVEXLANG=pl_PL.UTF-8
> /opt/homebrew/bin/aven --help
> echo "Exit status: $?"
> /opt/homebrew/bin/aven - Survex 1.4.22
[...]

I tried to reproduce in CI yesterday and also found --help worked.
(I don't know of an easy way to test a GUI in CI.)

> The full LLDB dumps for wxWidgets 3.3.2 and 3.2.11 are attached.

The 3.2.11 one is more helpful as it includes line numbers rather than
byte offsets in the machine code - that shows a call into wx on line 360
of aven.cc which is the `m_Frame->Maximize();` here which is restoring
the maximised state of Aven's main window:

    // Select maximised if that's the saved state.
    if (maximized) {
        m_Frame->Maximize();
    }

It's the same function in 3.3.2 and the byte offset is plausible for
being the same place.

If you find where `.aven` is stored (I'm not sure on macOS, but on
Linux it's in your home directory - note that the leading `.` means it
is hidden, so e.g. `ls -a` is needed to show it) then you'll find
`width=-1` or some other negative number.  If you remove this line then
it won't try to maximise here which gives a workaround at least (you'll
need to redo this if you close aven while it is maximised or full-screen
though).  It'd also provide an easy way to confirm that it's this call
in 3.3.2 as well.

We haven't called `Show()` on this window yet so perhaps that's why
it is unhappy (we maximise it first to avoid it potentially appearing
and then instantly getting redrawn maximised).  We could move this to
after we've called `Show()` to see if that helps - I've attached a patch
which it would be useful to test if you're able to.

We have set up wxWidget's message catalogues and locale settings earlier
in this function, but it is strange that they would affect maximising
a window.

The handling for `--help` is after setting up the message catalogues
and locale but before we create the window.

Cheers,
    Olly
-------------- next part --------------
A non-text attachment was scrubbed...
Name: survex-maximise-aven-later.patch
Type: text/x-diff
Size: 709 bytes
Desc: not available
URL: <http://lists.survex.com/pipermail/survex/attachments/20260921/7857777b/attachment.patch>


More information about the Survex mailing list