LINUX.ORG.RU

XFCE 4.14 memory leak?

 ,


0

2

Поставил себе крысу, настроил, все красиво-приятно. Сейчас заметил, что из нее течет память, причем течет быстро – порядка 1 мб/с. Память никак не освобождается, течет даже при пустом десктопе, без запущенных приложений. Что это такое и как его чинить? Гугл выдает лишь GNOME’овские проблемы с GC, но они старые и починенные, хотя и костылями.

Arch Linux, XFCE 4.14 (xfce group полностью + xfce-screenshooter).

Ответ на: комментарий от annerleen

Как раз занимался только что выяснением.

Течет xfce4-power-manager, проблема, как я понял, в гткшных библиотеках. valgrind --leak-check=full --show-leak-kinds=definite --trace-children=yes ./xfce4-power-manager на свежескомпилированном с master’а power manager’е выдает длиннейшую простыню, заканчивающуюся на вот это вот.

==20818== 2,032 bytes in 1 blocks are definitely lost in loss record 7,165 of 7,275
==20818==    at 0x483AB65: calloc (vg_replace_malloc.c:752)
==20818==    by 0x5854171: g_malloc0 (in /usr/lib/libglib-2.0.so.0.6000.6)
==20818==    by 0x58368BE: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6000.6)
==20818==    by 0x583D2BA: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.6000.6)
==20818==    by 0x585D6F5: g_main_context_push_thread_default (in /usr/lib/libglib-2.0.so.0.6000.6)
==20818==    by 0x561AA2D: ??? (in /usr/lib/libgio-2.0.so.0.6000.6)
==20818==    by 0x5839A30: ??? (in /usr/lib/libglib-2.0.so.0.6000.6)
==20818==    by 0x5BC657E: start_thread (in /usr/lib/libpthread-2.29.so)
==20818==    by 0x5CDA0E2: clone (in /usr/lib/libc-2.29.so)
==20818== 
==20818== LEAK SUMMARY:
==20818==    definitely lost: 4,910 bytes in 38 blocks
==20818==    indirectly lost: 1,858 bytes in 77 blocks
==20818==      possibly lost: 3,720 bytes in 45 blocks
==20818==    still reachable: 2,148,342 bytes in 29,255 blocks
==20818==                       of which reachable via heuristic:
==20818==                         length64           : 3,888 bytes in 69 blocks
==20818==                         newarray           : 2,112 bytes in 52 blocks
==20818==         suppressed: 0 bytes in 0 blocks
==20818== Reachable blocks (those to which a pointer was found) are not shown.
==20818== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==20818== 
==20818== For counts of detected and suppressed errors, rerun with: -v
==20818== ERROR SUMMARY: 46 errors from 46 contexts (suppressed: 0 from 0)

Если я правильно все понимаю, то по мнению valgrind’а, программа теряет по 2кб за раз, что примерно соответствует наблюдаемому. Попробую собрать с дебагом, авось чего-нибудь раскопаю.

Siborgium ()
Ответ на: комментарий от Siborgium

О, мой любимый... Ещё на генту, в самом начале перехода на гтк3 он начал глючить, падать и повисать, откликаясь где нибудь через 20 секунд. Потом была патченая версия из анстэйбла, что то починили, но не доконца. Потом я снёс генту и пересел на дебиан со стабильной гтк2 версией.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от dimcoin

А черт его знает. У кого-то работает, у кого-то нет. Я пока решил проблему тактическим pkill -9 xfce4-power-man на старте. Виджет в панельке работает и так, а большего пока и не надо.

Залил на багзиллу патч с починеными варнингами, там в оригинале был каст унарной g_free к бинарной GFunc*. Утечку вроде не пофиксило.

Siborgium ()