Skip to content

"Double free or corruption" when closing ddcui #74

@VorpalBlade

Description

@VorpalBlade

When I close ddcui (by clicking the close button on the window border) after having switched to the "Features" view I get one of these errors in the terminal (which one varies from run to run):

double free or corruption (!prev)
double free or corruption (out)
free(): double free detected in tcache 2

Analysing the core dump in gdb gives me the following stack (it seems I don't have debug symbols for ddcui itself, but I'm willing to try to rebuild it if you have issues reproducing the issue):

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007faf0309a363 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#2  0x00007faf0303e7d0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007faf03025681 in __GI_abort () at abort.c:77
#4  0x00007faf03026700 in __libc_message_impl (vma_name=vma_name@entry=0x7faf031b4891 "glibc: fatal", fmt=fmt@entry=0x7faf031b7e92 "%s\n") at ../sysdeps/posix/libc_fatal.c:138
#5  0x00007faf030a47cc in __libc_message_wrapper (vmaname=0x7faf031b4891 "glibc: fatal", fmt=0x7faf031b7e92 "%s\n") at ../include/stdio.h:203
#6  malloc_printerr (str=str@entry=0x7faf031ba888 "double free or corruption (out)") at malloc.c:5341
#7  0x00007faf030a6240 in _int_free_merge_chunk (av=0x7faf03213ac0 <main_arena>, p=0x7faec4003dc0, size=224) at malloc.c:4420
#8  0x00007faf030a6344 in _int_free_chunk (av=0x7faf03213ac0 <main_arena>, p=<optimized out>, size=<optimized out>, have_lock=<optimized out>, have_lock@entry=0) at malloc.c:4368
#9  0x00007faf030a9156 in __GI___libc_free (mem=<optimized out>) at malloc.c:3374
#10 0x00007faf04a2aacb in free_ddca_feature_metadata (metadata=0x7faec4003830) at base/feature_metadata.c:648
#11 ddca_free_feature_metadata (metadata=0x7faec4003830) at libmain/api_metadata.c:672
#12 0x0000557ee53f3070 in ?? ()
#13 0x0000557ee5401a6b in ?? ()
#14 0x0000557ee5401d95 in ?? ()
#15 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eec847dc0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#16 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#17 0x0000557ee5400bc7 in ?? ()
#18 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eec7c2460) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#19 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#20 0x0000557ee5400d28 in ?? ()
#21 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eeccb57a0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#22 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#23 0x00007faf04d4de25 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1608
#24 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eecc020e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#25 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#26 0x0000557ee5400f3a in ?? ()
#27 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eec877e80) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#28 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#29 0x00007faf04dcb639 in QFrame::~QFrame (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qframe.cpp:236
#30 QFrame::~QFrame (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qframe.cpp:236
#31 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eeccee8e0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#32 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#33 0x00007faf04f6cb39 in QFrame::~QFrame (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qframe.cpp:236
#34 QStackedWidget::~QStackedWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qstackedwidget.cpp:127
#35 QStackedWidget::~QStackedWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/widgets/qstackedwidget.cpp:127
#36 0x00007faf039dfdba in QObjectPrivate::deleteChildren (this=this@entry=0x557eeccfa190) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:2279
#37 0x00007faf04d4dca1 in QWidget::~QWidget (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.cpp:1581
#38 0x0000557ee53e41b2 in ?? ()
#39 0x00007faf03027741 in __libc_start_call_main (main=main@entry=0x557ee53e2720, argc=argc@entry=1, argv=argv@entry=0x7ffc7db2b5c8) at ../sysdeps/nptl/libc_start_call_main.h:59
#40 0x00007faf03027879 in __libc_start_main_impl (main=0x557ee53e2720, argc=1, argv=0x7ffc7db2b5c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7ffc7db2b5b8) at ../csu/libc-start.c:360
#41 0x0000557ee53e6275 in ?? ()

Steps to reproduce

  1. Launch ddcui
  2. Switch to the "Features" view
  3. Close ddcui

Versions

  • ddcui 0.6.0
  • ddcutil 2.2.7
  • Arch Linux (rolling release)
  • glibc 2.43
  • Qt 6.11
  • KDE Plasma 6.6.5 (Wayland session)
  • ddcui was built with GCC 14.2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions