Conky: SIGABRT in generate_text_internal / check_mpd_playing

Created on 14 Jan 2015  ·  5Comments  ·  Source: brndnmtthws/conky

Getting this crash seemingly at random. Sometimes conky runs stable for hours, sometimes just minutes. I'm on Arch Linux x64, conky was compiled with gcc 4.9.2.

> 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

The relevant lines from my config:

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

Worth noting that most of the time no instance of mpd is actually running.

bug

All 5 comments

Do you still have this problem? Open a terminal. Run gdb conky then (gdb) run -c ~/conky.conf... wait for a crash to occur, then run (gdb) bt full to print a backtrace. We want that backtrace. Thanks.

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 Can you leave this running for a day or so?

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}
]]

I did that already and hadn't ran into a problem. I'm on Arch Linux x64 too just like this fellow.

2018-08-10-124040_413x257_scrot

EDIT: ${mpd_bar 0,100} might be broken too. Invalid.

@lasers I left my pc on overnight and conky was running inside gdb all night and it didn't crashed.

@su8 I ran this for several hours and we used almost all variables. Funny thing, I was able to test both old and new version because it updated few days ago archlinux/mpd Last Updated: 2018-08-08 and it didn't crash either. We can close this issue now. :wink:

3 years 7 months passed. Thank you for the report. @rathsky :heart_eyes:

Was this page helpful?
0 / 5 - 0 ratings