Bug 10313 - SqueezePlay crashes at song change in Ubuntu 8.04
: SqueezePlay crashes at song change in Ubuntu 8.04
Status: CLOSED FIXED
Product: SB Desktop
Classification: Unclassified
Component: Audio
: unspecified
: PC Ubuntu Linux
: -- normal (vote)
: 7.4.0
Assigned To: Richard Titmuss
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-12-13 09:52 UTC by Mikael Nyberg
Modified: 2009-10-05 14:37 UTC (History)
3 users (show)

See Also:
Category: ---


Attachments
gdb output running squeezeplay (14.69 KB, application/octet-stream)
2008-12-13 23:58 UTC, Mikael Nyberg
Details
zip off the gdb file r3528_1 (3.13 KB, application/zip)
2008-12-13 23:59 UTC, Mikael Nyberg
Details
gdb_jive_Mnyb_73r3528_2 (17.54 KB, application/octet-stream)
2008-12-14 00:58 UTC, Mikael Nyberg
Details
zip off gdb_jive_Mnyb_73r3528_2 (4.05 KB, application/zip)
2008-12-14 00:59 UTC, Mikael Nyberg
Details
gdb_jive_Mnyb_73r3528_3 no crash (30.19 KB, application/octet-stream)
2008-12-14 01:44 UTC, Mikael Nyberg
Details
gdb_jive_Mnyb_73r3528_4 working build (19.07 KB, application/octet-stream)
2008-12-14 10:59 UTC, Mikael Nyberg
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mikael Nyberg 2008-12-13 09:52:58 UTC
See my tread http://forums.slimdevices.com/showthread.php?t=56313


I have a bug i can reproduce SqueezePlay crashes just about when it's time to get the next song.
It's very repeatable it is every song !
If i skip to next song manually before it ends everything is ok.
If SP wants to advance to next tune by it's own it freezez and i have to:

killall -9 jive

This is when i play files on my Desktop machine,
if I use it as remote for the other players no problem at all

I've got SP installed on Ubuntu 8.04

The server is not this machine, it a server on my network ( CC4.2 )

I tried another thing i made a sync group of all my players it was fantastic :)

SP died of at end of first track, everyone else was playing fine.
Then i restarted SP when everything else was playing that killed the SqueezeCenter ?

I built both 7.3 r3526 and 7.3 r3528

where is the log files for SP on linux ? I've found /var/log ? is one of these ?
The other build shave stdout something ?

Is there any particular log i should turn on in SC to capture this
Comment 1 Richard Titmuss 2008-12-13 13:36:40 UTC
What file format is your music in? Also what operating system are you running SqueezePlay on?
Comment 2 Mikael Nyberg 2008-12-13 14:47:13 UTC
Sorry for being unclear squeezeplay is running on my ubuntu8.04 desktop.

I'm using flac files

Squeezecenter is running on another machine.

both machines are wired to my router, fixed ip's

Btw i'm not able to use password on SC either, if it is related ?

SqueezeCenter during crash was release of 7.3

uppgraded to latest 7.3.1 same symptoms
Comment 3 Moonbase 2008-12-13 15:16:35 UTC
Not as reproducable as Mikael’s crashes, but happens also with SqueezePlay 7.3r0 running against SC 7.3-24282 on a Win/XP machine, mostly after playing several (5-7) MP3 files. Seems worse when Crossfade is enabled.
Comment 4 Mikael Nyberg 2008-12-13 16:31:48 UTC
Tried with mp3 file now, same result
They always crash when it is couple of seconds left of the tune ?
I don't know how your buffering is working but it seems like it is reasonable to speculate that it is trying to buffer the next tune ?
Comment 5 Mikael Nyberg 2008-12-13 23:58:15 UTC
Created attachment 4437 [details]
gdb output running squeezeplay
Comment 6 Mikael Nyberg 2008-12-13 23:59:17 UTC
Created attachment 4438 [details]
zip off the gdb file r3528_1
Comment 7 Mikael Nyberg 2008-12-14 00:01:03 UTC
Hello I discovered that there is a thing called gdb GNU debuger (n00b).

I captured a session with it, without any special options selected

I attach file's with complete gdb output, however the interesting part is the
end of the session:


083433:185529 INFO (Playback.lua:292) - disconnect streambuf
src/audio/decode/decode_flac.c:178 DEBUG FLAC error:
FLAC__STREAM_DECODER_END_OF_STREAM
083502:214708 INFO (Playback.lua:160) - status DECODE UNDERRUN
src/audio/decode/decode.c:538 DEBUG decode_sond_ended
src/audio/decode/decode.c:285 DEBUG handling message
src/audio/decode/decode.c:248 DEBUG decode_song_ended_handler
083502:214750 INFO (Playback.lua:364) - strm s
src/audio/decode/decode.c:491 DEBUG decode_start
src/audio/streambuf.c:380 DEBUG streambuf connect 192.168.1.5:10275
083502:214750 INFO (Playback.lua:275) - connect streambuf
src/audio/decode/decode.c:285 DEBUG handling message
src/audio/decode/decode.c:221 DEBUG decode_start_handler decoder=66
num_params=4
src/audio/decode/decode_flac.c:201 DEBUG decode_flac_start()
src/audio/decode/decode_output.c:559 DEBUG Track gain 65536
src/audio/decode/decode_output.c:563 DEBUG Track clip range 7fffffff 80000000
src/audio/decode/decode_output.c:568 DEBUG Polarity inversion 0
src/audio/decode/decode_portaudio.c:201 DEBUG decode_portaudio_start
[Thread 0xb7b08b90 (LWP 7649) exited]
src/audio/decode/decode_portaudio.c:251 DEBUG Stream latency 0.034830
src/audio/decode/decode_portaudio.c:252 DEBUG Sample rate 44100.000000
[New Thread 0xb7b08b90 (LWP 7650)]
Comment 8 Richard Titmuss 2008-12-14 00:20:12 UTC
Great, I was going to ask you to get a gdb trace :). When the application crashes can you get a backtrace (by typing 'bt' at the gdb prompt), and post the output here. Thanks.
Comment 9 Mikael Nyberg 2008-12-14 00:30:22 UTC
Having trouble where should i put the 'bt' ?

If i just type bt and enter after the crash, nothing happens ?
Comment 10 Richard Titmuss 2008-12-14 00:40:57 UTC
How are you running gdb? You should be doing something like:

gdb ./jive  -- to start the session
run  -- to start the program at the gdb> prompt
bt  -- to get the backtrace, at the gdb> prompt

Do you not get a gdb prompt after the crash?
Comment 11 Mikael Nyberg 2008-12-14 00:43:28 UTC
It's a blinking black square at the end ? promt i assume ?
if i put bt there and enter nothing happens ?
Comment 12 Richard Titmuss 2008-12-14 00:44:51 UTC
No from memory the prompt is 'gdb>'. What happens if you press Ctrl-C?
Comment 13 Mikael Nyberg 2008-12-14 00:45:14 UTC
aha the promt should look like (gdb) ? i don't have that
Comment 14 Mikael Nyberg 2008-12-14 00:46:12 UTC
ctrl c gave me the prompt wait I'll send file soon..
Comment 15 Richard Titmuss 2008-12-14 00:47:59 UTC
Hmm, it's not crashed then. What symptoms do you see that you describe as a crash? Is the UI still working, just the music stops?
Comment 16 Mikael Nyberg 2008-12-14 00:58:03 UTC
Created attachment 4439 [details]
gdb_jive_Mnyb_73r3528_2

This file is with backtrace
Comment 17 Mikael Nyberg 2008-12-14 00:59:09 UTC
Created attachment 4440 [details]
zip off gdb_jive_Mnyb_73r3528_2

Maybe unnecessary to zip they are small
Comment 18 Richard Titmuss 2008-12-14 01:07:46 UTC
It's not obvious from that backtrace what's gone wrong. It may be that the final audio thread has died, but in that case I'm not sure why gdb did not catch the error in a more useful way. I'll need to look at this more when I'm working, not over breakfast!

Does the UI work, just the music stops? Do you have crossfade and/or reply gain enabled? Also do you know if you have portaudio installed on your PC?
Comment 19 Mikael Nyberg 2008-12-14 01:32:40 UTC
Symptoms is that SqueezePlay freezes, the nowplaying window freezes.
Progress bar and timers stops a little bit before end of track.
Playback ends.
I can not navigate SqueezePlay anymore, i can not end SqueezePlay either.
Not by clicking at the rigth corner of the window anyway.

Have to kill it.

Another strange thing if i pull up the web UI and locks at the player when this happens,
it counts the track beyond it's original time ? probably thinking it's on the next one ?
If i refresh the browser or choose another player, the "squeezeplay" player is gone from my list of players.

But if i manage to keep "squeezeplay" in the web UI while crashed.

I can on rare occasions get this in squeezecenters log:

[08-12-14 10:20:43.5526] Slim::Web::JSONRPC::requestMethod (383) request not dispatchable!

In short, the Sqeezeplay just sits there and are unresponsive.
It might not technically be crashed maybe it's waiting for something that never happens ad infinitum.

I'll catch one debug while manually progressing the tracks, it works if I as choose the next track before it ends.

 
Comment 20 Mikael Nyberg 2008-12-14 01:42:32 UTC
O forgot, info, No crossfade No replay gain.

What is portaudio ?
Comment 21 Mikael Nyberg 2008-12-14 01:44:37 UTC
Created attachment 4441 [details]
gdb_jive_Mnyb_73r3528_3 no crash

gdb when manually advancing tracks and stop and quit normally
Comment 22 Mikael Nyberg 2008-12-14 02:06:09 UTC
now i tried with crossfade on, no difference

rgrds portaudio, looks like some kind of dev tool to me ?
should i install that as end user ?
Can it help you track the problem ?
Comment 23 Mikael Nyberg 2008-12-14 02:40:58 UTC
The following portaudio packages are installed on my PC:

libportaudio0
libportaudio2

These packages are NOT installed:

libportaudiocpp0
libportaudio-dev
libportaudio-doc
libportaudio-ocaml
libportaudio-ocaml-dev
portaudio19-dev
portaudio19-doc

Should I install some of it and build a new SqueezePlay ?

Comment 24 Mikael Nyberg 2008-12-14 03:31:01 UTC
added libportaudiocpp0 to my machine built r3529 no difference
Comment 25 Mikael Nyberg 2008-12-14 10:57:12 UTC
Ok i did this:

I also installed

libportaudio-doc
libportaudio-ocaml
libportaudio-ocaml-dev
portaudio19-dev
portaudio19-doc

and all recomended dependencies with the help of synaptics.

got rid of all old files and did some house keeping.
(after an embarrassing accident with building jive as sudo )

Then fetched everything from svn again.

Then i built a new squeezeplay this one is working ! great.

the gdb looks quite different now a lot more stuff going on, a bunch of errors to
but it's still working, and not freezing.

Thank you so very much for helping me on a Sunday.

But what to do now ? i've got a very plain vanilla ubuntu desktop 8.04 (uppgraded from 7.10 ) i don't think I'm alone.

I was following the readme file included in the svn, but apparently it don't list all things needed to build.

A patch would be to update the wiki and the README.linux file.

Better still a real deb package when the non beta version is released.

Thanks again for pointing me in the right direction with portaudio.
I'm lucky that it was available via Ubuntu's/Debian repos.
looked a little bit scary to build from svn.



Comment 26 Mikael Nyberg 2008-12-14 10:59:14 UTC
Created attachment 4443 [details]
gdb_jive_Mnyb_73r3528_4 working build

This a gdb from good session when it works
Comment 27 James Richardson 2008-12-19 08:04:09 UTC
Changing target to next release
Comment 28 Mikael Nyberg 2008-12-19 09:31:27 UTC
Hi I want to emphasize that it is working.
The "bug" is solved.

The issue really is that my ubuntu 8.04 machine neded a lot more "other" stuff installed, than outlined in the install instructions or wiki.

So the "bug" fix would be better build instructions or packaging as deb and rpm
I assume this way all dependencies could be taken care of ?

So i'ts unclear to me what this is (besides n00b end user ).

Documentation ? unfinished product (no deb or rpm) ?

Technically it is not a bug, it is just very very very hard for anyone without intimate knowledge of the code to make it work :)
And it will swamp you with support calls from other user with similar installs.
If not dealt with in some way.

Btw thanks for Squeezeplay anyway (listening just now).
Comment 29 James Richardson 2009-10-05 14:37:12 UTC
This bug has been marked as fixed in the 7.4.0 release version of SqueezeBox Server!
    * SqueezeCenter: 28672
    * Squeezebox 2 and 3: 130
    * Transporter: 80
    * Receiver: 65
    * Boom: 50
    * Controller: 7790
    * Radio: 7790  

Please see the Release Notes for all the details: http://wiki.slimdevices.com/index.php/Release_Notes

If you haven't already, please download and install the new version from http://www.logitechsqueezebox.com/support/download-squeezebox-server.html

If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.