Here ( https://builder.sourceware.org/buildbot/#/builders/98/builds/10 ) we have: ... Running selftest rust-lex. Self test failed: Converting character sets: Invalid argument. ... Ran 147 unit tests, 1 failed (gdb) PASS: gdb.gdb/unittest.exp: no executable loaded: maintenance selftest, ran some tests FAIL: gdb.gdb/unittest.exp: no executable loaded: maintenance selftest, failed none ... I managed to reproduce this in a container helpfully set up by Martin Liška. The root cause turned out to be this call failing: ... (gdb) fin Run till exit from #0 0x00007f0c2e11668e in iconv_open () from /lib64/libc.so.6 iconv_wrapper::iconv_wrapper (from=0x11946e0 "ANSI_X3.4-1968", to=0x96de99 "UTF-32LE", this=<synthetic pointer>) at ../../gdb/charset.c:476 ... because the support for UTF-32LE was not installed. Adding the package glibc-locale made the test pass.
IWBN if for instance the test-case failed in a more verbose way, as in: ... cannot convert from "ANSI_X3.4-1968" to "UTF-32LE" ... Or perhaps skip the test as unsupported instead of failing.
Hmm, in ada-lang.c we have: ... try { convert_between_encodings (host_charset (), HOST_UTF32, (const gdb_byte *) name.data (), name.length (), 1, &storage, translit_none); } catch (const gdb_exception &) { if (throw_on_error) throw; static bool warned = false; /* Converting to UTF-32 shouldn't fail, so if it doesn't, we might like to know why. */ if (!warned) { { warned = true; warning (_("could not convert '%s' from the host encoding (%s) to UTF-32.\n" "This normally should not happen, please file a bug report."), gdb::to_string (name).c_str (), host_charset ()); } ... I suppose we could use something similar.
Catching the error in the unit test seems reasonable, though on the other hand this is a kind of host configuration error.
This is still failing in the latest build ( https://builder.sourceware.org/buildbot/#/builders/98/builds/78 ). Will the glibc-locale package be installed?
(In reply to Tom de Vries from comment #4) > This is still failing in the latest build ( > https://builder.sourceware.org/buildbot/#/builders/98/builds/78 ). > > Will the glibc-locale package be installed? I will post a patch for the Container files to the buildbot mailinglist: https://sourceware.org/mailman/listinfo/buildbot
https://sourceware.org/pipermail/buildbot/2022q2/000011.html
https://builder.sourceware.org/buildbot/#/builders/98/builds/79 https://sourceware.org/pipermail/gdb-testers/2022q2/171523.html
Patches submitted: - [PATCH][gdb] Improve "Converting character sets: Invalid argument" https://sourceware.org/pipermail/gdb-patches/2022-June/189864.html - [PATCH][gdb] Handle NOT_SUPPORTED_ERROR in rust-lex selftest https://sourceware.org/pipermail/gdb-patches/2022-June/189865.html