ravachol / kew

A command-line music player
GNU General Public License v2.0
567 stars 21 forks source link

Help Wanted: Crash Reports #104

Closed ravachol closed 7 months ago

ravachol commented 9 months ago

I'm interested in crash reports from version 1.11 and later.

  1. What were you doing with the app?

  2. What type of file was playing? File extension and, if possible: bit rate, kHz sample rate, format, audio bit depth, as much as you can figure out.

You can run "ffprobe -i filename" to get the info.

  1. if possible, what type was the next file after the one that was playing?

  2. What terminal were you using?

Thank you!

awarewen commented 8 months ago

图片 Nothing in kew.m3u file

图片

Terminal: kitty 图片

ravachol commented 8 months ago

I made a small commit so that the file will no longer be created if the playlist you can add to by pressing "." ,is empty. Thank you for bringing this to my attention.

malteo commented 8 months ago

on the newly released v2.0 I get

Bail out! GLib-GIO:ERROR:../glib/gio/gdbusconnection.c:4308:invoke_get_property_in_idle_cb: assertion failed: (error != NULL)
[1]    114413 IOT instruction (core dumped)  kew

when invoking kew with no arguments to check the library

everything works as before when calling it as kew all

ravachol commented 8 months ago

Thank you Matteo, going to look into this. The tagged release has been removed.

May I ask what terminal / distro you are on?

malteo commented 8 months ago

May I ask what terminal / distro you are on?

I use Arch (btw), same behaviour on both alacritty and kitty

ravachol commented 8 months ago

Hmm, I'm not able to reproduce this (arch/KDE/kitty) but the two code paths for "kew all" and "kew" are pretty similar.

ravachol commented 8 months ago

could you please try this:

change // #define DEBUG 1 to

define DEBUG 1

in kew.c

then compile it by running make

then run ./kew

make sure kew exits and then check the error.log that should hopefully be created in the same folder.

agus-balles commented 8 months ago

I've got the same problem as malteo. I've already reversed the aur package.All i got in the error.log is the same error message:

 **
  GLib-GIO:ERROR:../glib/gio/gdbusconnection.c:4308:invoke_get_property_in_idle_cb: assertion failed: (error != NULL)
ravachol commented 8 months ago

thank you, Agustin.

ravachol commented 8 months ago

I've tested on various computers etc and I haven't been able to reproduce it. maybe this can give better error information, if someone can help out:

execute the following command: gdb ./kew

then type: run

see what gdb writes in the console, hopefully there will be a better error description.

ravachol commented 8 months ago

when gdb stops. type: bt

agus-balles commented 8 months ago

when i ran it with gdb the issue wasnt there anymore. Neither does it appear running kew normally.

agus-balles commented 8 months ago

It seems it was a bug in the library as I noticed I got the same error while updating ffmpeg-obs

ravachol commented 8 months ago

did you grab the latest first? because I did make some changes that could have solved the problem.

The problem is likely related to mpris requesting property values and getting an error. this could be because there is no audio playing and thus not much to return. it should not cause an error, I've committed some code that could solve the problem, but can't really verify if the problem is fixed without someone with the error testing the latest code.

agus-balles commented 8 months ago

nope. Same binary i had built a couple hours ago

ravachol commented 8 months ago

It seems it was a bug in the library as I noticed I got the same error while updating ffmpeg-obs

ahhhhh.

agus-balles commented 8 months ago

okay im oficially lost. The program is failing again after no change whatsoever lol. I'll pull the latest changes to see if it fixes the error.

agus-balles commented 8 months ago

At least now i could get the gdb debug info:

__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, 
    no_tid=no_tid@entry=0) at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;        
(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  0x00007ffff74ac8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>)
    at pthread_kill.c:78
#2  0x00007ffff745c668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff74444b8 in __GI_abort () at abort.c:79
#4  0x00007ffff7cad0ee in g_assertion_message
    (domain=domain@entry=0x7ffff7c1516b "GLib-GIO", file=file@entry=0x7ffff7c1efd2 "../glib/gio/gdbusconnection.c", line=line@entry=4308, func=func@entry=0x7ffff7c112d0 <__func__.54> "invoke_get_property_in_idle_cb", message=message@entry=0x7fffe0002cf0 "assertion failed: (error != NULL)") at ../glib/glib/gtestutils.c:3497
#5  0x00007ffff7d0e1e0 in g_assertion_message_expr
    (domain=domain@entry=0x7ffff7c1516b "GLib-GIO", file=file@entry=0x7ffff7c1efd2 "../glib/gio/gdbusconnection.c", line=line@entry=4308, func=func@entry=0x7ffff7c112d0 <__func__.54> "invoke_get_property_in_idle_cb", expr=expr@entry=0x7ffff7c20327 "error != NULL")
    at ../glib/glib/gtestutils.c:3523
#6  0x00007ffff7bb8b6e in invoke_get_property_in_idle_cb (_data=0x7fffe0004790)
    at ../glib/gio/gdbusconnection.c:4308
#7  0x00007ffff7ce8f69 in g_main_dispatch (context=0x5555558e7eb0)
    at ../glib/glib/gmain.c:3476
#8  0x00007ffff7d47367 in g_main_context_dispatch_unlocked (context=0x5555558e7eb0)
--Type <RET> for more, q to quit, c to continue without paging--
    at ../glib/glib/gmain.c:4284
#9  g_main_context_iterate_unlocked.isra.0 (context=0x5555558e7eb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#10 0x00007ffff7ce9b97 in g_main_loop_run (loop=0x55555566b4e0) at ../glib/glib/gmain.c:4551
#11 0x00005555555eb316 in  ()
#12 0x00005555555eb3c1 in  ()
#13 0x000055555555b21c in  ()
#14 0x00007ffff7445cd0 in __libc_start_call_main (main=main@entry=0x55555555b0f0, argc=argc@entry=1, argv=argv@entry=0x7fffffffe218)
    at ../sysdeps/nptl/libc_start_call_main.h:58
#15 0x00007ffff7445d8a in __libc_start_main_impl
    (main=0x55555555b0f0, argc=1, argv=0x7fffffffe218, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe208)
    at ../csu/libc-start.c:360
#16 0x000055555555b2d5 in  ()
agus-balles commented 8 months ago

okay im oficially lost. The program is failing again after no change whatsoever lol. I'll pull the latest changes to see if it fixes the error.

Got a SIGSEGV

#0  0x0000555555579572 in get_property_callback ()
#1  0x00007ffff7bb8979 in invoke_get_property_in_idle_cb (_data=0x7fffec002ad0)
    at ../glib/gio/gdbusconnection.c:4285
#2  0x00007ffff7ce8f69 in g_main_dispatch (context=0x5555558e7eb0)
    at ../glib/glib/gmain.c:3476
#3  0x00007ffff7d47367 in g_main_context_dispatch_unlocked (context=0x5555558e7eb0)
    at ../glib/glib/gmain.c:4284
#4  g_main_context_iterate_unlocked.isra.0
    (context=0x5555558e7eb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#5  0x00007ffff7ce9b97 in g_main_loop_run (loop=0x55555566b410) at ../glib/glib/gmain.c:4551
#6  0x00005555555eb2b6 in play ()
#7  0x00005555555eb371 in run ()
#8  0x000055555555b29a in main ()
ravachol commented 8 months ago

is this with the latest?

agus-balles commented 8 months ago

is this with the latest?

Yes, the SIGSEGV is with the latest

ravachol commented 8 months ago

ok, that SIGSEGV should be fixed now (if you grab the latest). The question is whether the original error is fixed.

agus-balles commented 8 months ago

SIGSEGV gone but the original error remains.

(process:4262): GLib-GIO-DEBUG: 19:39:33.781: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
[New Thread 0x7ffff55fe6c0 (LWP 4270)]
Bail out! GLib-GIO:ERROR:../glib/gio/gdbusconnection.c:4308:invoke_get_property_in_idle_cb: assertion failed: (error != NULL)

Thread 1 "kew" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, 
    no_tid=no_tid@entry=0) at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;        
(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  0x00007ffff74ac8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>)
    at pthread_kill.c:78
#2  0x00007ffff745c668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff74444b8 in __GI_abort () at abort.c:79
#4  0x00007ffff7cad0ee in g_assertion_message
    (domain=domain@entry=0x7ffff7c1516b "GLib-GIO", file=file@entry=0x7ffff7c1efd2 "../glib/gio/gdbusconnection.c", line=line@entry=4308, func=func@entry=0x7ffff7c112d0 <__func__.54> "invoke_get_property_in_idle_cb", message=message@entry=0x5555558ea350 "assertion failed: (error != NULL)") at ../glib/glib/gtestutils.c:3497
#5  0x00007ffff7d0e1e0 in g_assertion_message_expr
    (domain=domain@entry=0x7ffff7c1516b "GLib-GIO", file=file@entry=0x7ffff7c1efd2 "../glib/gio/gdbusconnection.c", line=line@entry=4308, func=func@entry=0x7ffff7c112d0 <__func__.54> "invoke_get_property_in_idle_cb", expr=expr@entry=0x7ffff7c20327 "error != NULL")
    at ../glib/glib/gtestutils.c:3523
#6  0x00007ffff7bb8b6e in invoke_get_property_in_idle_cb (_data=0x7fffe00026a0)
    at ../glib/gio/gdbusconnection.c:4308
#7  0x00007ffff7ce8f69 in g_main_dispatch (context=0x5555558e7ee0)
    at ../glib/glib/gmain.c:3476
#8  0x00007ffff7d47367 in g_main_context_dispatch_unlocked (context=0x5555558e7ee0)
--Type <RET> for more, q to quit, c to continue without paging--
    at ../glib/glib/gmain.c:4284
#9  g_main_context_iterate_unlocked.isra.0
    (context=0x5555558e7ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#10 0x00007ffff7ce9b97 in g_main_loop_run (loop=0x55555566b7e0) at ../glib/glib/gmain.c:4551
#11 0x00005555555eb2f6 in play ()
#12 0x00005555555eb3b1 in run ()
#13 0x000055555555b2ba in main ()
ravachol commented 8 months ago

thanks, that gives me more to go on.

ravachol commented 8 months ago

Ok, the problem was that gdbus expects that an error is set if the property value it wants is NULL.

I have now gone through each property function (there are a lot of them) to make sure they return non null values and that either there is a value or there is an error. But I cannot verify this solves the problem myself.

There may be a different problem causing this error, but hopefully then it will give some other error message that is more informative.

agus-balles commented 8 months ago

It works now. Thanks!

ravachol commented 8 months ago

amazing, thanks a ton Agustin. Gonna wait until tomorrow before making the 2.0 release. Let's see if any other issues arise.