Closed Vi1i closed 7 months ago
I skimmed the issues and saw some like it, but I didn't really see a fix that I could do on my side. Though I could have missed it.
There’s #623 for example, which suggests pulseaudio is to blame. See https://github.com/PromyLOPh/pianobar/issues/433#issuecomment-38393851 for a fix.
Yep, I tried this fix already, but this did not solve my issue. I had this issue before I installed pulseaudio onto my system, and had hoped pulseaudio would fix this. As it did not, I am left with a very similar issues as the #623 has. I am on Arch Linux, 4.15.5-1-ARCH x86_64 GNU/Linux. I am currently using plain old bash, usually gnome-terminal for my terminal emulator. I am using i3 for my window manager. I have run from git repo and from the community Arch repo, they both have this issue.
Does this happen when skipping a song (ban, next, tired, …) too? Any eventcmd scripts set up?
Since you’re using Arch and probably compiling software yourself: Which compiler and CFLAGS did you use to compile pianobar and dependencies?
When current song is playing:
When current song has reached frozen state:
While I would like to have eventcmd set up, I have yet to take the step as I want to get pianobar working properly before I attempted to add more complexity. Though I do have a fifo file prepared, but nothing is using it.
Currently I am using pacman:
community/pianobar 2017.08.30-3 [installed] Console-based frontend for Pandora
When I compiled it myself from git I did not want to modify the, though with this last statment I did just that, so I added -g3 to the CFLAGS and got the symbols:
GNU gdb (GDB) 8.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from pianobar...done. (gdb) run Starting program: /home/USER/git/pianobar/pianobar [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Welcome to pianobar (2017.08.30-dev)! Press ? for a list of commands. (i) Control fifo at /home/USER/.fifo/pianobar opened (i) Login... [New Thread 0x7fffe3dff700 (LWP 19734)] [Thread 0x7fffe3dff700 (LWP 19734) exited] Ok. (i) Get stations... [New Thread 0x7fffe3dff700 (LWP 19735)] [Thread 0x7fffe3dff700 (LWP 19735) exited] Ok. |> Station "Classical Radio" (3901253271328215037) (i) Receiving new playlist... Ok. |> "Piano Sonata No. 1 in C minor, Op. 4, CT. 201" by "Chopin, Fryderyk" on "Vladimir Ashkenazy, Chopin: Piano Sonatas; Etudes" [New Thread 0x7fffe3dff700 (LWP 19814)] [New Thread 0x7fffe2d67700 (LWP 19856)] [New Thread 0x7fffe2566700 (LWP 19857)] [New Thread 0x7fffe1d65700 (LWP 19858)] [New Thread 0x7fffe1564700 (LWP 19859)] [New Thread 0x7fffe0d63700 (LWP 19860)] # -00:00/04:03 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 (gdb) backtrace #0 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 #1 0x000055555555fb84 in BarReadline (buf=0x7fffffffe490 "", bufSize=2, mask=0x0, input=0x555555767820 <app+736>, flags=(BAR_RL_FULLRETURN | BAR_RL_NOECHO | BAR_RL_NOINT), timeout=<optimized out>) at src/ui_readline.c:88 #2 0x0000555555559a09 in BarMainHandleUserInput (app=0x555555767540 <app>) at src/main.c:203 #3 BarMainLoop (app=0x555555767540 <app>) at src/main.c:389 #4 main (argc=<optimized out>, argv=<optimized out>) at src/main.c:491 (gdb)
I get this when liking/banning a song as well. Haven't tried next song yet.
I checked, and next song works fine for me. But liking just says "Loving song...." and freezes (the current song continues until it's done. I can unblock with a Ctrl+C, though.
Can you apply this patch on top of master and report whether it fixes the issue or not?
https://gist.github.com/anonymous/f4bedb982de18683f2f70e0ecc403fc4
So I am still getting the same issue, I ran the debugger again, got the same output but this time I tried to force it to continue. Looks like it is getting caught up in a pthread_join()? If you need me to do something more specific let me know, happy to help.
[USER:~/git/pianobar] master(+74/-41)* ± gdb pianobar GNU gdb (GDB) 8.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from pianobar...done. (gdb) run Starting program: /home/USER/git/pianobar/pianobar [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Welcome to pianobar (2017.08.30-dev)! Press ? for a list of commands. (i) Control fifo at /home/USER/.fifo/pianobar opened (i) Login... [New Thread 0x7fffe3dff700 (LWP 5403)] [Thread 0x7fffe3dff700 (LWP 5403) exited] Ok. (i) Get stations... [New Thread 0x7fffe3dff700 (LWP 5404)] [Thread 0x7fffe3dff700 (LWP 5404) exited] Ok. |> Station "Classical Radio" (3901253271328215037) (i) Receiving new playlist... Ok. |> "Gymnopédies (3), For Piano (Also Orchestrated By Debussy)" by "Satie, Erik" on "Aldo Ciccolini, Satie: Piano Works (1983 Version)" [New Thread 0x7fffe3dff700 (LWP 5489)] [New Thread 0x7fffe2d67700 (LWP 5490)] [New Thread 0x7fffe2566700 (LWP 5491)] [New Thread 0x7fffe1d65700 (LWP 5492)] [New Thread 0x7fffe1564700 (LWP 5493)] [New Thread 0x7fffe0d63700 (LWP 5494)] # -00:00/03:08 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) n Program not restarted. (gdb) con condition continue (gdb) continue Continuing. # -00:00/03:08 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 (gdb) continue Continuing. # -00:00/03:08 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 (gdb) continue Continuing. # -00:00/03:08 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff49ab7b3 in select () from /usr/lib/libc.so.6 (gdb) step Single stepping until exit from function select, which has no line number information. BarReadline (buf=0x7fffffffe430 "", bufSize=2, mask=0x0, input=0x555555767818 <app+728>, flags=(BAR_RL_FULLRETURN | BAR_RL_NOECHO | BAR_RL_NOINT), timeout=<optimized out>) at src/ui_readline.c:91 91 bufLen = 0; (gdb) continue Continuing. # -00:00/03:08 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 (gdb) next Single stepping until exit from function pthread_join, which has no line number information. Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 (gdb) finish Run till exit from #0 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 (gdb) continue Continuing. Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 (gdb) step Single stepping until exit from function pthread_join, which has no line number information. Thread 1 "pianobar" received signal SIGINT, Interrupt. 0x00007ffff7bc245d in pthread_join () from /usr/lib/libpthread.so.0 (gdb) continue Continuing.
First of all note that ^C is intercepted by GDB – it never reaches
pianobar. I wonder what the player thread is doing. Can you run thread apply all backtrace
after interrupting gdb?
Starts just fine, but then freezes at the end of a song.
I couldn't get it to compile with symbols with make debug... But the below output is gdb and I let it sit waiting for a while before I interrupted it.
Now without gdb, when I hit
^C
, it jumps out of the freeze and goes to the next song.I skimmed the issues and saw some like it, but I didn't really see a fix that I could do on my side. Though I could have missed it.