[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lilypond 2.23.0 crashes on layout
From: |
Arusekk |
Subject: |
Re: Lilypond 2.23.0 crashes on layout |
Date: |
Wed, 17 Feb 2021 00:00:38 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
W dniu 16.02.2021 o 18:33, Jonas Hahnfeld pisze:
Usual disclaimer that LilyPond doesn't fully support Guile 2.2 (yet),
so you'll definitely see worse performance (mostly slower startup) and
might run into occasional issues, like this one. Guile 1.8 should be
the safer choice for now (if you still have it in Gentoo).
I tried to track back the moment the issue was introduced, but then
found out that guile 2.x has been supported for two versions only, so I
stopped digging. Good to know.
That said, I've seen this issue before during my tests with Guile 2.2
(Translators being collected while still referenced somewhere), but
never had a stack trace to investigate. So it's already great to have
that, but do I read this correctly that you can reliably reproduce the
issue on your system? I'm asking because I can't on mine (Arch Linux)
and in fact, your file works just fine for me. So finding out how to
trigger this kind of bugs more reliably would be a huge step.
On my box lilypond crashes every single time I command it to produce
PDFs (never does if not told to lay out), so I think I can provide much
help, maybe core files, or recorded execution from GDB (never tried to
do it before, though).
Regarding AddressSanitizer, did you just compile LilyPond with it or
all dependencies? I didn't attempt so far because I thought it wouldn't
work, but maybe I should try?
I just set CFLAGS='-fsanitize=address -g' and
LDFLAGS='-fsanitize=address' before configuring lilypond, and installed
the debug symbols for guile, so that AddressSanitizer could resolve
function names from it. ASAN wiki suggests to mainly compile executables
with it, because it does not support sanitized libraries used with not
sanitized executables (or it does, but requires preloading it manually).
But maybe sanitizing some library too would help additionally? I could
try it if you want, but sanitizing guile might break[1] (I have not
tried). Gentoo gives extreme flexibility as to managing compile-time
options, while handling the burden of building everything one thing at a
time, so this does not pose any problem for me (I don't recommend
setting up a Gentoo VM just for tests, unless you are patient, since
building lilypond and deps from a base system takes at least an hour).
(It could of course be an issue in one of the libraries, especially the
stack trace in Pango looks odd, but it's equally possible that it's a
heap corruption bug that may show in the least expected places...)
(These heap bugs are the worst...)
--
Arusekk
[1]:
https://github.com/hannob/asantoo/blob/add80838689755e74a6c1ca793c49b9dd9c50fcb/sys-devel/asantoo-base/files/package.env-asantoo#L12