Bug 354873 - Stops playing music when trying to play a deleted track
Summary: Stops playing music when trying to play a deleted track
Status: RESOLVED WORKSFORME
Alias: None
Product: phonon-backend-gstreamer
Classification: Unmaintained
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-05 00:37 UTC by sedrubal
Modified: 2021-03-11 16:05 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sedrubal 2015-11-05 00:37:30 UTC
When amarok tries to play a deleted track the playback "freezes".

Reproducible: Always

Steps to Reproduce:
1. Play a track in a playlist
2. Delete the current track
3. Go back to previous track
4. Wait until the track is over or go forward to the deleted track

Actual Results:  
Amarok's play button looks like it would be playing a track, but the progress bar stands still at position 0 and there is no sound.

Expected Results:  
Amarok should remeber that it deleted the track and skips this track. Or I think Amarok should check before playing if the current track is available or deleted.

This might be the same situation like I tried to explain in bug 354757. The explanation of bug 354757 could be, that I deleted some tracks before and amarok now wants to play them as I usually shuffle my playback.

As you asked for the sdout output of amarok in bug 354757 this are the last lines:

amarok: [AbstractDirectoryWatcher] addDirToList for "/home/se/music/Nick_Straker" 
"PulseSupport(2): Phonon Output Stream {452731a1-df0e-4e8b-bf5a-1226b43fa813} is gone at the PA end. Marking it as invalid in our cache as we may reuse it." 
amarok: BEGIN: virtual void GenericScanManager::requestScan(QList<KUrl>, GenericScanManager::ScanType) 
amarok:   [WARNING] [GenericScanManager] scan of a non-directory "/home/se/music/Nick_Straker" requested, skipping it. 
amarok: END__: virtual void GenericScanManager::requestScan(QList<KUrl>, GenericScanManager::ScanType) [Took: 0s] 
Calling appendChild() on a null node does nothing.
Comment 1 Myriam Schweingruber 2015-11-05 20:52:34 UTC
Could we have a bit more lines than those? we need about 20-30 lines, and I presume this is actually a Pulseaudio caching problem
Comment 2 sedrubal 2015-11-06 01:23:24 UTC
Here you are:

amarok: BEGIN: void Playlist::Actions::next() 
amarok:   BEGIN: void Playlist::NonlinearTrackNavigator::doItemListsMaintenance() 
amarok:   END__: void Playlist::NonlinearTrackNavigator::doItemListsMaintenance() [Took: 0s] 
amarok:   BEGIN: Playlist::ItemList* Playlist::NonlinearTrackNavigator::nextItemChooseDonorList() 
amarok:   END__: Playlist::ItemList* Playlist::NonlinearTrackNavigator::nextItemChooseDonorList() [Took: 0s] 
amarok:   BEGIN: virtual void Playlist::NonlinearTrackNavigator::setCurrentItem(quint64, bool) 
amarok:     BEGIN: void Playlist::NonlinearTrackNavigator::doItemListsMaintenance() 
amarok:     END__: void Playlist::NonlinearTrackNavigator::doItemListsMaintenance() [Took: 0s] 
amarok:   END__: virtual void Playlist::NonlinearTrackNavigator::setCurrentItem(quint64, bool) [Took: 0s] 
amarok:   BEGIN: void Playlist::Actions::play(quint64, bool) 
amarok:     BEGIN: void EngineController::play(Meta::TrackPtr, uint, bool) 
amarok:       BEGIN: void EngineController::stop(bool, bool) 
amarok:         [EngineController] slotTrackFinishedPlaying( "Fytch" - "" - "Fytch - Wake up HD" , 0.311006 ) 
PHONON-GST         BEGIN: virtual void Phonon::Gstreamer::MediaObject::stop() 
PHONON-GST           BEGIN: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) 
PHONON-GST              Phonon::StoppedState  
PHONON-GST             BEGIN: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) 
PHONON-GST               Transitioning to state "ready" 
PHONON-GST               State change 
PHONON-GST               BEGIN: void Phonon::Gstreamer::MediaObject::handleStateChange(GstState, GstState) 
PHONON-GST                 Moving from "playing"  Phonon::PlayingState  to "paused"  Phonon::PausedState  
PHONON-GST               END__: void Phonon::Gstreamer::MediaObject::handleStateChange(GstState, GstState) [Took: 0s] 
PHONON-GST               State change 
PHONON-GST               BEGIN: void Phonon::Gstreamer::MediaObject::handleDurationChange(qint64) 
PHONON-GST                 -1 
PHONON-GST               END__: void Phonon::Gstreamer::MediaObject::handleDurationChange(qint64) [Took: 0s] 
PHONON-GST               BEGIN: void Phonon::Gstreamer::MediaObject::handleStateChange(GstState, GstState) 
PHONON-GST                 Moving from "paused"  Phonon::PausedState  to "ready"  Phonon::StoppedState  
PHONON-GST               END__: void Phonon::Gstreamer::MediaObject::handleStateChange(GstState, GstState) [Took: 0s] 
PHONON-GST             END__: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) [Took: 0.009s] 
PHONON-GST           END__: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) [Took: 0.009s] 
PHONON-GST         END__: virtual void Phonon::Gstreamer::MediaObject::stop() [Took: 0.009s] 
PHONON-GST         BEGIN: virtual void Phonon::Gstreamer::MediaObject::stop() 
PHONON-GST           BEGIN: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) 
PHONON-GST              Phonon::StoppedState  
PHONON-GST             BEGIN: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) 
PHONON-GST               Transitioning to state "ready" 
PHONON-GST             END__: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) [Took: 0s] 
PHONON-GST           END__: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) [Took: 0s] 
PHONON-GST         END__: virtual void Phonon::Gstreamer::MediaObject::stop() [Took: 0s] 
PHONON-GST         BEGIN: virtual void Phonon::Gstreamer::MediaObject::setSource(const Phonon::MediaSource&) 
PHONON-GST           Setting new source 
PHONON-GST           New source:  QUrl( "" )  
PHONON-GST         END__: virtual void Phonon::Gstreamer::MediaObject::setSource(const Phonon::MediaSource&) [Took: 0s] 
amarok:       END__: void EngineController::stop(bool, bool) [Took: 0.034s] 
amarok:       [EngineController] play: bounded is  QObject(0x0)  current "Albertoson - Everybody wants to know" 
amarok:       [EngineController] Just a normal, boring track... :-P 
amarok:       BEGIN: void EngineController::playUrl(const KUrl&, uint, bool) 
amarok:         [EngineController] URL:  KUrl("file:///home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg") "file:///home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg" 
amarok:         [EngineController] Offset:  0 
PHONON-GST         BEGIN: virtual void Phonon::Gstreamer::MediaObject::setSource(const Phonon::MediaSource&) 
PHONON-GST           Setting new source 
PHONON-GST           New source:  QUrl( "/home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg" )  
PHONON-GST           uri "file:///home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg" 
PHONON-GST         END__: virtual void Phonon::Gstreamer::MediaObject::setSource(const Phonon::MediaSource&) [Took: 0s] 
PHONON-GST         Fading to 1 
PHONON-GST         BEGIN: virtual void Phonon::Gstreamer::MediaObject::play() 
PHONON-GST           BEGIN: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) 
PHONON-GST              Phonon::PlayingState  
PHONON-GST             BEGIN: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) 
PHONON-GST               Transitioning to state "playing" 
0:17:04.382964059 23525      0x1c24e00 WARN                 filesrc gstfilesrc.c:515:gst_file_src_start:<source> error: No such file "/home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg"
PHONON-GST               BEGIN: static void Phonon::Gstreamer::Pipeline::cb_setupSource(GstElement*, GParamSpec*, gpointer) 
PHONON-GST               END__: static void Phonon::Gstreamer::Pipeline::cb_setupSource(GstElement*, GParamSpec*, gpointer) [Took: 0s] 
0:17:04.383279971 23525      0x1c24e00 WARN                 filesrc gstfilesrc.c:515:gst_file_src_start:<source> error: No such file "/home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg"
PHONON-GST               1 
PHONON-GST               BEGIN: void Phonon::Gstreamer::MediaObject::setError(const QString&, Phonon::ErrorType) 
PHONON-GST                 "Resource not found." 
PHONON-GST               END__: void Phonon::Gstreamer::MediaObject::setError(const QString&, Phonon::ErrorType) [Took: 0s] 
0:17:04.383497200 23525      0x1c24e00 WARN                 filesrc gstfilesrc.c:515:gst_file_src_start:<source> error: No such file "/home/se/music/Alberto/01_-_Albertoson_-_Everybody_wants_to_know.ogg"
PHONON-GST               1 
PHONON-GST               BEGIN: void Phonon::Gstreamer::MediaObject::setError(const QString&, Phonon::ErrorType) 
PHONON-GST                 "Resource not found." 
PHONON-GST               END__: void Phonon::Gstreamer::MediaObject::setError(const QString&, Phonon::ErrorType) [Took: 0s] 
0:17:04.383625091 23525      0x1c24e00 WARN                 basesrc gstbasesrc.c:3706:gst_base_src_activate_push:<source> Failed to start in push mode
0:17:04.383639238 23525      0x1c24e00 WARN                GST_PADS gstpad.c:1058:gst_pad_set_active:<source:src> Failed to activate pad
PHONON-GST             END__: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) [Took: 0.003s] 
PHONON-GST           END__: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) [Took: 0.003s] 
PHONON-GST         END__: virtual void Phonon::Gstreamer::MediaObject::play() [Took: 0.003s] 
amarok:       END__: void EngineController::playUrl(const KUrl&, uint, bool) [Took: 0.003s] 
amarok:     END__: void EngineController::play(Meta::TrackPtr, uint, bool) [Took: 0.038s] 
amarok:   END__: void Playlist::Actions::play(quint64, bool) [Took: 0.038s] 
amarok: END__: void Playlist::Actions::next() [Took: 0.039s] 
amarok: [EngineController] slotStateChanged from  Phonon::PlayingState  to  Phonon::PausedState  
amarok: MPRIS2: Queueing up a PropertiesChanged signal 
amarok: [EngineController] slotTrackLengthChanged( -1 ) 
amarok: BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok: END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0s] 
amarok: [EngineController] slotStateChanged from  Phonon::PausedState  to  Phonon::StoppedState  
PHONON-GST BEGIN: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) 
PHONON-GST    Phonon::ErrorState  
PHONON-GST   BEGIN: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) 
PHONON-GST     Transitioning to state "null" 
PHONON-GST   END__: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) [Took: 0.001s] 
PHONON-GST END__: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) [Took: 0.001s] 
PHONON-GST BEGIN: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) 
PHONON-GST    Phonon::ErrorState  
PHONON-GST   BEGIN: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) 
PHONON-GST     Transitioning to state "null" 
PHONON-GST   END__: GstStateChangeReturn Phonon::Gstreamer::Pipeline::setState(GstState) [Took: 0s] 
PHONON-GST END__: void Phonon::Gstreamer::MediaObject::requestState(Phonon::State) [Took: 0s] 
"PulseSupport(2): Phonon Output Stream {c548f041-e13a-4f13-a638-e887ed64cffd} is gone at the PA end. Marking it as invalid in our cache as we may reuse it." 
amarok: [AbstractDirectoryWatcher] addDirToList for "/home/se/music/Fytch" 
amarok: BEGIN: virtual void GenericScanManager::requestScan(QList<KUrl>, GenericScanManager::ScanType) 
amarok: END__: virtual void GenericScanManager::requestScan(QList<KUrl>, GenericScanManager::ScanType) [Took: 0s] 
amarok: BEGIN: virtual void AbstractScanResultProcessor::scanStarted(GenericScanManager::ScanType) 
amarok: END__: virtual void AbstractScanResultProcessor::scanStarted(GenericScanManager::ScanType) [Took: 0s] 
amarok: [AbstractScanResultProcessor] got 1 directories 
amarok: BEGIN: virtual void SqlScanResultProcessor::scanSucceeded() 
amarok:   BEGIN: virtual void AbstractScanResultProcessor::scanSucceeded() 
amarok:   END__: virtual void AbstractScanResultProcessor::scanSucceeded() [Took: 0.003s] 
amarok: END__: virtual void SqlScanResultProcessor::scanSucceeded() [Took: 0.042s] 
Calling appendChild() on a null node does nothing.
Comment 3 Myriam Schweingruber 2016-02-10 19:04:54 UTC
Sorry, missed that one. Moving to the phonon-backend-gstreamer, they might have a clue.
Comment 4 sedrubal 2016-02-14 16:54:57 UTC
Ok thanks :)
Comment 5 Justin Zobel 2021-03-09 22:36:10 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.
Comment 6 sedrubal 2021-03-11 16:05:52 UTC
I don't use Amarok anymore so I'm not sure, if the problem still exists.