Conky: SIGABRT in generate_text_internal / check_mpd_playing

Erstellt am 14. Jan. 2015  ·  5Kommentare  ·  Quelle: brndnmtthws/conky

Bekomme diesen Absturz scheinbar zufällig. Manchmal läuft Conky stundenlang stabil, manchmal nur Minuten. Ich verwende Arch Linux x64, conky wurde mit gcc 4.9.2 kompiliert.

> Program received signal SIGABRT, Aborted.
> # 0  0x00007f77ffd80a97 in raise () from /usr/lib/libc.so.6
> # 1  0x00007f77ffd81e6a in abort () from /usr/lib/libc.so.6
> # 2  0x00007f77ffdc02b3 in __libc_message () from /usr/lib/libc.so.6
> # 3  0x00007f77ffdc572e in malloc_printerr () from /usr/lib/libc.so.6
> # 4  0x00007f77ffdc5eeb in _int_free () from /usr/lib/libc.so.6
> # 5  0x00000000004589b0 in _M_dispose (__a=..., this=<optimized out>) at /usr/include/c++/4.9.2/bits/basic_string.h:249
> # 6  ~basic_string (this=0x7fff9493bd88, __in_chrg=<optimized out>) at /usr/include/c++/4.9.2/bits/basic_string.h:547
> # 7  ~mpd_result (this=0x7fff9493bd60, __in_chrg=<optimized out>) at src/mpd.cc:122
> # 8  check_mpd_playing (obj=<optimized out>) at src/mpd.cc:389
> # 9  0x0000000000424959 in generate_text_internal (p=p@entry=0x1f4e690 "", p_max_size=16384, root=...) at src/conky.cc:845
> # 10 0x0000000000425e95 in generate_text () at src/conky.cc:912
> # 11 update_text () at src/conky.cc:2010
> # 12 main_loop () at src/conky.cc:2388
> # 13 0x000000000041ea58 in main (argc=3, argv=0x7fff9493c358) at src/conky.cc:3139

Die entsprechenden Zeilen aus meiner Konfiguration:

> mpd_host localhost
> mpd_port 6600
> music_player_interval 4
> ${if_mpd_playing}[${mpd_elapsed}/${mpd_length}] ^fg(#F3F2DD)${mpd_smart 57}^fg()$endif

Bemerkenswert ist, dass die meiste Zeit keine Instanz von mpd ausgeführt wird.

bug

Alle 5 Kommentare

Hast du dieses Problem noch? Öffnen Sie ein Terminal. Führen Sie gdb conky dann (gdb) run -c ~/conky.conf ... warten Sie, bis ein Absturz auftritt, und führen Sie dann (gdb) bt full , um einen Backtrace zu drucken. Wir wollen diese Rückverfolgung. Vielen Dank.

conky: Unknown lua exception
terminate called after throwing an instance of 'lua::exception'
  what():  Unknown lua exception

Thread 2 "conky" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffec313700 (LWP 27280)]
0x00007ffff4c0086b in raise () from /usr/lib/libc.so.6
(gdb) bt full
#0  0x00007ffff4c0086b in raise () from /usr/lib/libc.so.6
No symbol table info available.
#1  0x00007ffff4beb40e in abort () from /usr/lib/libc.so.6
No symbol table info available.
#2  0x00007ffff522744a in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
        terminating = true
        t = <optimized out>
#3  0x00007ffff522d9d6 in __cxxabiv1::__terminate(void (*)()) () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47
No locals.
#4  0x00007ffff522da13 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57
No locals.
#5  0x00007ffff522dc48 in __cxxabiv1::__cxa_throw (obj=obj@entry=0x7fffe4000dc0, tinfo=tinfo@entry=0x5555557fa148 <typeinfo for lua::exception>, dest=dest@entry=0x55555559e350 <lua::exception::~exception()>)
    at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95
        globals = <optimized out>
        header = 0x7fffe4000d40
#6  0x0000555555566710 in lua::state::call (this=0x555555848930, nargs=2, nresults=1, errfunc=0) at /usr/include/c++/8.1.1/ext/new_allocator.h:86
        r = <optimized out>
#7  0x000055555559f302 in lua::state::gettable (this=this@entry=0x555555848930, index=<optimized out>) at /home/chris/src/conky/src/luamm.cc:379
No locals.
#8  0x000055555559f344 in lua::state::getfield (this=this@entry=0x555555848930, index=<optimized out>, index@entry=-1, k=<optimized out>) at /home/chris/src/conky/src/luamm.cc:358
No locals.
#9  0x0000555555571eba in conky::config_setting_template<unsigned int>::get (this=0x5555557fc520 <text_buffer_size>, l=...) at /usr/include/c++/8.1.1/bits/basic_string.h:2271
        guard = {_M_device = @0x555555848930}
        s = {L = 0x555555848930, n = 0}
#10 0x00005555555b42d3 in mpd_newReturnElement (value=0x7fffe401783c "2", name=0x7fffe4017832 "playlist") at /usr/include/c++/8.1.1/bits/unique_ptr.h:342
        ret = 0x7fffe4000be0
        ret = <optimized out>
#11 mpd_getNextReturnElement (connection=connection@entry=0x7fffe400fa00) at /home/chris/src/conky/src/libmpdclient.cc:655
        output = <optimized out>
        rt = <optimized out>
        name = 0x7fffe4017832 "playlist"
        value = 0x7fffe401783b " 2"
        fds = {fds_bits = {32, 0 <repeats 15 times>}}
        tv = {tv_sec = 0, tv_usec = 0}
        tok = 0x7fffe401783b " 2"
        readed = <optimized out>
        bufferCheck = 0x7fffe4017832 "playlist"
        err = <optimized out>
        pos = <optimized out>
#12 0x00005555555b4a2b in mpd_getStatus (connection=0x7fffe400fa00) at /home/chris/src/conky/src/libmpdclient.cc:787
        re = <optimized out>
        status = 0x7fffe400f960
#13 0x00005555555b11a1 in (anonymous namespace)::mpd_cb::work() () at /home/chris/src/conky/src/mpd.cc:182
        status = <optimized out>
        entity = <optimized out>
        mpd_info = {title = "", artist = "", albumartist = "", album = "", date = "", status = "", random = "", repeat = "", track = "", name = "", file = "", is_playing = 0, vol = 0, progress = 0, bitrate = 0, length = 0, elapsed = 0}
        lock = <optimized out>
#14 0x00005555555a4524 in conky::priv::callback_base::start_routine() () at /home/chris/src/conky/src/update-cb.cc:128
No locals.
#15 0x00007ffff5258d4f in execute_native_thread_routine () at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
        __t = std::unique_ptr<std::thread::_State> = {get() = 0x555555890430}
#16 0x00007ffff7bc1075 in start_thread () from /usr/lib/libpthread.so.0
No symbol table info available.
#17 0x00007ffff4cc253f in clone () from /usr/lib/libc.so.6
No symbol table info available.
(gdb)

@su8 Kannst du das für einen Tag oder so laufen lassen?

conky.config = {
    out_to_x=true,
    out_to_console=false,
    own_window=true,
    own_window_transparent=true,
}
conky.text = [[
    if_mpd_playing // ${if_mpd_playing}PLAYING${else}STOPPED${endif}
    album // ${mpd_album}
    artist // ${mpd_artist}
    albumartist // ${mpd_albumartist}
    bar // ${mpd_bar 10,100}
    bitrate // ${mpd_bitrate}
    date // ${mpd_date}
    paused // ${mpd_elapsed}
    file // ${mpd_file}
    length // ${mpd_length}
    name // ${mpd_name}
    percent // ${mpd_percent}
    random // ${mpd_random}
    repeat // ${mpd_repeat}
    smart // ${mpd_smart}
    status // ${mpd_status}
    title // ${mpd_title}
    track // ${mpd_track}
    vol // ${mpd_vol}
]]

Das habe ich auch schon gemacht und hatte kein Problem. Ich bin auch auf Arch Linux x64, genau wie dieser Kerl.

2018-08-10-124040_413x257_scrot

EDIT: ${mpd_bar 0,100} könnte auch kaputt sein. Ungültig.

@lasers Ich habe meinen PC über Nacht eingeschaltet gelassen und Conky lief die ganze Nacht in gdb und es stürzte nicht ab.

@su8 Ich habe dies mehrere Stunden lang ausgeführt und wir haben fast alle Variablen verwendet. Komisch, ich konnte sowohl die alte als auch die neue Version testen, weil sie vor ein paar Tagen archlinux/mpd Last Updated: 2018-08-08 aktualisiert hat und auch nicht abgestürzt ist . Wir können dieses Thema jetzt schließen. :zwinkern:

3 Jahre 7 Monate sind vergangen. Vielen Dank für den Bericht. @rathsky :heart_eyes:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen