Bug 313436 - Amarok shows multiple plasma-notifications in 4.10
Summary: Amarok shows multiple plasma-notifications in 4.10
Status: RESOLVED DUPLICATE of bug 313440
Alias: None
Product: amarok
Classification: Applications
Component: Notifications (show other bugs)
Version: 2.7.0
Platform: Ubuntu Linux
: NOR normal
Target Milestone: 2.8
Assignee: Amarok Developers
URL:
Keywords:
Depends on: 313440
Blocks:
  Show dependency treegraph
 
Reported: 2013-01-18 08:01 UTC by FabiB
Modified: 2013-04-10 01:50 UTC (History)
7 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description FabiB 2013-01-18 08:01:32 UTC
dont know if its related to https://bugs.kde.org/show_bug.cgi?id=292198 because it only happens with 4.10 but only for amarok (i can spam kdialogs without this happens)

if there is a open notificationpopop and amarok switches a track it seems that amarok sends this trackchange multible times to te notificationarea

a video: http://youtu.be/1ov0n2DAkiY

Reproducible: Sometimes

Steps to Reproduce:
1. open amarok ans play a song
2. when the notificationpopup pops up, change the track

Actual Results:  
most times you will see that the new track will notifies 3-7times via kde plasma 4.10 notificationpopup

Expected Results:  
should be notified only one time

this happens only in 4.10, when i kill plasma and use the gray notification it only 1 time there, same on gnome3
Comment 1 Myriam Schweingruber 2013-01-18 08:28:44 UTC
The problem is plasma most likely. Could you please provide the section of the debug output when that happens? For that run Amarok from a konsole with: amarok -d --nofork
Comment 2 FabiB 2013-01-18 08:45:17 UTC
http://paste.kde.org/650240/ 
but why is only the amarok notification affected?. tried the amarokscript "amaroKnotify" and this works too, without this bug.
Comment 3 Myriam Schweingruber 2013-01-18 08:56:01 UTC
You are talking about the OSD or the Plasma notification? Amarok can use both. And since you said yourself that it doesn't happen without plasma then I suspect plasma is to blame, as it did coincide with a KDE upgrade as you said yourself.

BTW, please do not use volatile pastes for bug report attachments but the attachment function of the bug tracker.

amarok: BEGIN: void Playlist::Actions::next() 
amarok:   BEGIN: void Playlist::Actions::play(quint64, bool) 
amarok:     BEGIN: void EngineController::play(Meta::TrackPtr, uint) 
amarok:       BEGIN: void EngineController::stop(bool, bool) 
amarok:         [EngineController] slotTrackFinishedPlaying( KUrl("file:///home/fabi/Musik/ogg/G/Green Day/¡Dos!/01 - Green Day - See You Tonight.ogg") , 0.0553939 ) 
amarok:         BEGIN: virtual void Playlist::Model::metadataChanged(Meta::TrackPtr) 
amarok:           BEGIN: void PlaylistInfoWidget::updateTotalPlaylistLength() 
amarok:           END__: void PlaylistInfoWidget::updateTotalPlaylistLength() [Took: 0s] 
amarok:           [Playlist::Model] Metadata updated for track "See You Tonight" 
amarok:         END__: virtual void Playlist::Model::metadataChanged(Meta::TrackPtr) [Took: 0s] 
amarok:         BEGIN: virtual void Playlist::Model::metadataChanged(Meta::TrackPtr) 
amarok:           BEGIN: void PlaylistInfoWidget::updateTotalPlaylistLength() 
amarok:           END__: void PlaylistInfoWidget::updateTotalPlaylistLength() [Took: 0s] 
amarok:           [Playlist::Model] Metadata updated for track "See You Tonight" 
amarok:         END__: virtual void Playlist::Model::metadataChanged(Meta::TrackPtr) [Took: 0s] 
amarok:       END__: void EngineController::stop(bool, bool) [Took: 0.07s] 
amarok:       [EngineController] play: bounded is  QObject(0x0)  current "Fuck Time" 
amarok:       [EngineController] Just a normal, boring track... :-P 
amarok:       BEGIN: void EngineController::playUrl(const KUrl&, uint) 
amarok:         [EngineController] URL:  KUrl("file:///home/fabi/Musik/ogg/G/Green Day/¡Dos!/02 - Green Day - Fuck Time.ogg") "file:///home/fabi/Musik/ogg/G/Green%20Day/%C2%A1Dos!/02%20-%20Green%20Day%20-%20Fuck%20Time.ogg" 
amarok:         [EngineController] Offset:  0 
amarok:       END__: void EngineController::playUrl(const KUrl&, uint) [Took: 0.017s] 
amarok:     END__: void EngineController::play(Meta::TrackPtr, uint) [Took: 0.088s] 
amarok:   END__: void Playlist::Actions::play(quint64, bool) [Took: 0.088s] 
amarok: END__: void Playlist::Actions::next() [Took: 0.088s] 
amarok: BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok:   MPRIS2: Queueing up a PropertiesChanged signal 
amarok: END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) [Took: 0.001s] 
amarok: BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok: END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0s] 
amarok: BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok: END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) [Took: 0s] 
amarok: BEGIN: void DBusAbstractAdaptor::_m_emitPropertiesChanged() 
amarok: END__: void DBusAbstractAdaptor::_m_emitPropertiesChanged() [Took: 0.001s] 
amarok: [EngineController] slotMetaDataChanged(): new meta-data: QMap(("xesam:url", QVariant(QUrl, QUrl("file:///home/fabi/Musik/ogg/G/Green Day/¡Dos!/02 - Green Day - Fuck Time.ogg") ) ) )  
amarok: [EngineController] slotMetaDataChanged(): new meta-data: QMap(("xesam:album", QVariant(QString, "¡Dos!") ) ( "xesam:author" ,  QVariant(QString, "Green Day") ) ( "xesam:genre" ,  QVariant(QString, "Punk Rock") ) ( "xesam:title" ,  QVariant(QString, "Fuck Time") ) ( "xesam:url" ,  QVariant(QUrl, QUrl("file:///home/fabi/Musik/ogg/G/Green Day/¡Dos!/02 - Green Day - Fuck Time.ogg") ) ) )  
amarok: [EngineController] slotMetaDataChanged() triggered by phonon, but we've already seen exactly the same metadata recently. Ignoring for now. 
amarok: [EngineController] slotMetaDataChanged() triggered by phonon, but we've already seen exactly the same metadata recently. Ignoring for now. 
amarok: BEGIN: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) 
amarok:   BEGIN: void RecentlyPlayedListWidget::updateWidget() 
amarok:   END__: void RecentlyPlayedListWidget::updateWidget() [Took: 0.02s] 
amarok:   MPRIS2: Queueing up a PropertiesChanged signal 
amarok:   MPRIS2: Album image location is KUrl("file:///home/fabi/.kde/share/apps/amarok/albumcovers/large/f7e0626db6e0f53a221126a666bd48aa") 
amarok:   BEGIN: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) 
amarok:     BEGIN: void PlaylistInfoWidget::updateTotalPlaylistLength() 
amarok:     END__: void PlaylistInfoWidget::updateTotalPlaylistLength() [Took: 0.004s] 
amarok:     BEGIN: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged() 
amarok:       BEGIN: void Playlist::PrettyListView::scrollToActiveTrack() 
amarok:       END__: void Playlist::PrettyListView::scrollToActiveTrack() [Took: 0.005s] 
amarok:     END__: void Playlist::PrettyListView::slotPlaylistActiveTrackChanged() [Took: 0.006s] 
amarok:   END__: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) [Took: 0.014s] 
amarok:   BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok:     found  0  timecodes on this track 
amarok:   END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0.003s] 
amarok:   BEGIN: void CurrentEngine::trackPlaying(Meta::TrackPtr) 
amarok:     [CurrentEngine] updating track "Fuck Time" 
amarok:   END__: void CurrentEngine::trackPlaying(Meta::TrackPtr) [Took: 0.014s] 
amarok:   BEGIN: void OSDWidget::show(const QString&, const QImage&) 
amarok:   END__: void OSDWidget::show(const QString&, const QImage&) [Took: 0.001s] 
amarok: END__: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) [Took: 0.3s] 
amarok: BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok: END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) [Took: 0s] 
amarok: [EngineController] slotMetaDataChanged() triggered by phonon, but we've already seen exactly the same metadata recently. Ignoring for now. 
amarok: BEGIN: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) 
amarok:   MPRIS2: Album image location is KUrl("file:///home/fabi/.kde/share/apps/amarok/albumcovers/large/f7e0626db6e0f53a221126a666bd48aa") 
amarok:   BEGIN: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) 
amarok:     [WARNING] [Playlist::Actions] engineNewTrackPlaying: "Fuck Time" does not match what the playlist controller thought it should be 
amarok:   END__: void Playlist::Actions::slotTrackPlaying(Meta::TrackPtr) [Took: 0s] 
amarok:   BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok:     found  0  timecodes on this track 
amarok:   END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0.001s] 
amarok:   BEGIN: void CurrentEngine::trackPlaying(Meta::TrackPtr) 
amarok:   END__: void CurrentEngine::trackPlaying(Meta::TrackPtr) [Took: 0s] 
amarok:   BEGIN: void OSDWidget::show(const QString&, const QImage&) 
amarok:   END__: void OSDWidget::show(const QString&, const QImage&) [Took: 0s] 
amarok: END__: void EngineController::slotNewTrackPlaying(const Phonon::MediaSource&) [Took: 0.14s] 
amarok: [MoodbarManager] file path:  "/home/fabi/Musik/ogg/G/Green Day/¡Dos!/02 - Green Day - Fuck Time.ogg" 
amarok: [MoodbarManager] mood file path:  "/home/fabi/Musik/ogg/G/Green Day/¡Dos!/.02 - Green Day - Fuck Time.mood" 
amarok: [MoodbarManager] no such file 
amarok: [MoodbarManager] trying :  "/home/fabi/Musik/ogg/G/Green Day/¡Dos!/02 - Green Day - Fuck Time.mood" 
amarok: [MoodbarManager] no luck removing the leading '.' either... 
amarok: BEGIN: void DBusAbstractAdaptor::_m_emitPropertiesChanged() 
amarok: END__: void DBusAbstractAdaptor::_m_emitPropertiesChanged() [Took: 0.001s] 
amarok: [LyricsEngine] nothing changed: "Fuck Time" 
amarok(7818)/kio (KDirListerCache) KDirListerCache::slotFileDirty: "/home/fabi/.pulse"
amarok(7818)/kio (KDirListerCache) KDirListerCache::updateDirectory: KUrl("file:///home/fabi/.pulse")
amarok: BEGIN: virtual void ScanManager::delayedIncrementalScan(const QString&) 
amarok:   [ScanManager] addDirToList for "/home/fabi/Musik/ogg/G/Green Day/¡Dos!/01 - Green Day - See You Tonight.ogg" 
amarok: END__: virtual void ScanManager::delayedIncrementalScan(const QString&) [Took: 0.006s] 
amarok: BEGIN: void ProgressWidget::redrawBookmarks(const QString*) 
amarok:   found  0  timecodes on this track 
amarok: END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0s] 
amarok: MPRIS2: Album image location is KUrl("file:///home/fabi/.kde/share/apps/amarok/albumcovers/large/f7e0626db6e0f53a221126a666bd48aa") 
amarok: MPRIS2: Queueing up a PropertiesChanged signal 
amarok: BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) 
amarok: END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) [Took: 0s] 
amarok: BEGIN: void DBusAbstractAdaptor::_m_emitPropertiesChanged() 
amarok: END__: void DBusAbstractAdaptor::_m_emitPropertiesChanged() [Took: 0s] 
amarok(7818)/kdeui (KNotification) KNotificationManager::notificationClosed: 750
Comment 4 FabiB 2013-01-18 09:43:14 UTC
(In reply to comment #3)
> You are talking about the OSD or the Plasma notification? Amarok can use
> both.
only the plasma notification. the OSD works here as it should.
> And since you said yourself that it doesn't happen without plasma then
> I suspect plasma is to blame,
yes but then why this only happens with the amarok knotifications? kdialog works normal, clementine works normal, kmail, akregator, well all apps i know works without multiply notifications. its only amarok, and in amarok only the internal knotification-notification. external scripts like http://kde-apps.org/content/show.php/amaroKnotify?content=103197 works without that bug. So there must be something that amaroks normal knotify do, that no other app do

> BTW, please do not use volatile pastes for bug report attachments but the
sorry for that :)
Comment 5 FabiB 2013-01-18 10:01:24 UTC
bug against the plasma notification system:
https://bugs.kde.org/show_bug.cgi?id=313440
Comment 6 Antonio Rojas 2013-01-20 11:31:57 UTC
Same here with amarok 2.7. Probably related to the fact that amarok issues a notification any time that the song metadata changes (lyrics, rating...)
Comment 7 Myriam Schweingruber 2013-01-20 12:07:00 UTC
Confirmed by second user.
Comment 8 Paulo Fidalgo 2013-04-04 12:32:30 UTC
I'm experiencing this bug too, since the upgrade to 2.7.0 version in Fedora 18.
Comment 9 Kevin Funk 2013-04-04 20:09:05 UTC
CCing Matej because he introduced some changes in 2.7.

I suspect that one of those commits altered the behavior:
* f88868a - KNotificationBackend: no more duplicate notifications (3 months ago) <Matěj Laitl>
* f7170ee - KNotificationBackend: rework to make notifications instant and more reliable (3 months ago) <Matěj Laitl>
Comment 10 Matěj Laitl 2013-04-04 21:35:51 UTC
This is a newly introduced bug in plasma, we update the existing notification object when it exists. I'll post more details to bug 313440.

*** This bug has been marked as a duplicate of bug 313440 ***