Skip to content

[Bug] Nheko immediate crash when run (actually libavcodec/libx265 related) #3405

@d-musique

Description

@d-musique

OpenMandriva version:
OpenMandriva Lx release 25.90 (Nickel) Cooker for znver1

Describe the bug:
Nheko segfaults and prints a stack trace involving libavcodec.

Steps to reproduce:
Run nheko in a terminal.
It's probably needed to enable the restricted repo and install lib64x265 from there.

Observed behavior:

Running nheko directly shows the following output

[2025-11-28 11:04:31.515] [qml] [info] Using Qt multimedia with FFmpeg version 8.0.1 nonfree and unredistributable (:0, )
Error: signal 11:
nheko(+0xaf4fa5) [0x5638da1defa5]
/lib64/libc.so.6(+0x40850) [0x7fe222c49850]
/lib64/libavcodec.so.62(+0xb148c0) [0x7fe1d5f148c0]
/lib64/libavcodec.so.62(avcodec_get_supported_config+0x41) [0x7fe1d59e2ee1]
/usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so(+0x37f12) [0x7fe1e458af12]
/usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so(+0x37829) [0x7fe1e458a829]
/usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so(+0x3336e) [0x7fe1e458636e]
/usr/lib64/qt6/lib/libQt6Multimedia.so.6(+0xf8e94) [0x7fe2256c7e94]
/usr/lib64/qt6/lib/libQt6Multimedia.so.6(+0xf8b26) [0x7fe2256c7b26]
/usr/lib64/qt6/lib/libQt6Multimedia.so.6(_ZN12QMediaPlayerC1EP7QObject+0x105) [0x7fe2256ce9d5]
nheko(+0x9cbc7d) [0x5638da0b5c7d]
nheko(+0xaf974c) [0x5638da1e374c]
/lib64/libc.so.6(+0x2acf5) [0x7fe222c33cf5]
/lib64/libc.so.6(__libc_start_main+0x87) [0x7fe222c33da7]
nheko(+0x62e2f1) [0x5638d9d182f1]

Additional comment:

The problem happens during the static initialization of ffmpeg codecs.

The stack trace stops at the call site of a libx265 function which valgrind designates as "invalid address".
libx265 is a library which openmandriva loads at runtime, by a custom ffmpeg patch.

Perhaps here is a good place to start looking
https://github.com/OpenMandrivaAssociation/ffmpeg/blob/master/ffmpeg-4.3-dlopen-faac-mp3lame-opencore-x264-x265-xvid.patch

libavcodec refers to revision 215 of libx265, which is indeed the installed version.

Logs and screenshots if relevant

gdb

[2025-11-28 11:09:37.488] [qml] [info] Using Qt multimedia with FFmpeg version 8.0.1 nonfree and unredistributable (:0, )

Thread 1 "nheko" received signal SIGSEGV, Segmentation fault.
0x00007fffa73148c0 in libx265_get_supported_config (avctx=<optimized out>, codec=0x7fffa79e5340 <ff_libx265_encoder>, config=AV_CODEC_CONFIG_PIX_FORMAT,
    flags=<optimized out>, out=0x7fffffffc970, out_num=0x7fffffffc998) at libavcodec/libx265.c:1034
1034            if (x265_api_get(12)) {
(gdb) bt
#0  0x00007fffa73148c0 in libx265_get_supported_config (avctx=<optimized out>, codec=0x7fffa79e5340 <ff_libx265_encoder>, config=AV_CODEC_CONFIG_PIX_FORMAT,
    flags=<optimized out>, out=0x7fffffffc970, out_num=0x7fffffffc998) at libavcodec/libx265.c:1034
#1  0x00007fffa6de2ee1 in avcodec_get_supported_config (avctx=0xc, codec=0x7fffa79e5340 <ff_libx265_encoder>, config=AV_CODEC_CONFIG_PIX_FORMAT, flags=0,
    out=0x7fffffffc970, out_num=0x0) at libavcodec/avcodec.c:806
#2  0x00007fffd00d8f12 in QFFmpeg::deviceTypes()::$_0::operator()() const () from /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so
#3  0x00007fffd00d8829 in QFFmpeg::deviceTypes(char const*) () from /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so
#4  0x00007fffd00d436e in QFFmpegMediaPlugin::create(QString const&) () from /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so
#5  0x00007ffff70c7e94 in (anonymous namespace)::InstanceHolder::init() () from /usr/lib64/qt6/lib/libQt6Multimedia.so.6
#6  0x00007ffff70c7b26 in QGlobalStatic<QtGlobalStatic::ApplicationHolder<(anonymous namespace)::(anonymous namespace)::Q_QAS_s_instanceHolder> >::operator->() ()
   from /usr/lib64/qt6/lib/libQt6Multimedia.so.6
#7  0x00007ffff70ce9d5 in QMediaPlayer::QMediaPlayer(QObject*) () from /usr/lib64/qt6/lib/libQt6Multimedia.so.6
#8  0x0000555555f1fc7d in ChatPage::ChatPage(QSharedPointer<UserSettings>, QObject*) ()
#9  0x000055555604d74c in main ()

valgrind

==417107== Jump to the invalid address stated on the next line
==417107==    at 0x22B40476BC602C22: ???
==417107==    by 0x3882D8C5: libx265_get_supported_config (libx265.c:1034)
==417107==    by 0x382A1C7A: av_codec_init_static (allcodecs.c:953)
==417107==    by 0x8B35905: __pthread_once_slow.isra.0 (in /usr/lib64/libc.so.6)
==417107==    by 0x8B35978: pthread_once@@GLIBC_2.34 (in /usr/lib64/libc.so.6)
==417107==    by 0x382A1B6A: av_codec_iterate (allcodecs.c:984)
==417107==    by 0x326F2E92: ??? (in /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so)
==417107==    by 0x326F2828: ??? (in /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so)
==417107==    by 0x326EE36D: ??? (in /usr/lib64/qt6/plugins/multimedia/libffmpegmediaplugin.so)
==417107==    by 0x63C2E93: ??? (in /usr/lib64/qt6/lib/libQt6Multimedia.so.6.10.1)
==417107==    by 0x63C2B25: ??? (in /usr/lib64/qt6/lib/libQt6Multimedia.so.6.10.1)
==417107==    by 0x63C99D4: QMediaPlayer::QMediaPlayer(QObject*) (in /usr/lib64/qt6/lib/libQt6Multimedia.so.6.10.1)
==417107==  Address 0x22b40476bc602c22 is not stack'd, malloc'd or (recently) free'd

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions