--- Begin Message ---
Package: sublime-music
Version: 0.11.16-4
Severity: normal
Hi,
when listening to music in sublime music, the song metadata indicated in
the lower left corner and the play queue reachable in the lower right
corner do not update when they should. This includes situations such as
* the next song starts when the previous has ended
* the “Go to next song” button is used
* another song is selected for playback somewhere else in the interface
* a song is set to “play next“
Instead they just stay stuck in in the state they have when starting up,
i.e. showing the song that was first played after starting and the play
queue at that time. Note that while the mentioned interface elements
don't reflect the change, the actual playback and the time slider in the
lower middle reflect the changes made, e.g. the time resets to the start
when a new song is started and “play next” selections are correctly
respected when switching to the next song.
When starting sublime-music it prints out various exception messages,
which might be related to the problem, as can be seen in the attached log.
Regards
Sven
-- System Information:
Debian Release: bookworm/sid
APT prefers testing-debug
APT policy: (990, 'testing-debug'), (990, 'testing'), (102,
'unstable-debug'), (102, 'unstable'), (101, 'experimental-debug'), (101,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 6.0.0-6-amd64 (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE
not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages sublime-music depends on:
ii gir1.2-gtk-3.0 3.24.36-4
ii gir1.2-nm-1.0 1.42.0-1
ii libjs-sphinxdoc 5.3.0-3
ii python3 3.11.2-1
ii python3-bleach 5.0.1-2
ii python3-dataclasses-json 0.5.7-3
ii python3-dateutil 2.8.2-1
ii python3-deepdiff 6.2.2-1
ii python3-fuzzywuzzy 0.18.0-4
ii python3-gi 3.42.2-3+b1
ii python3-levenshtein 0.12.2-2+b4
ii python3-mpv 1.0.1-3
ii python3-peewee 3.14.10+dfsg-1+b3
ii python3-requests 2.28.1+dfsg-1
ii python3-semver 2.10.2-3
ii sphinx-rtd-theme-common 1.2.0+dfsg-1
Versions of packages sublime-music recommends:
ii libnotify4 0.8.1-1
ii python3-bottle 0.12.23-1
ii python3-keyring 23.9.3-2
ii python3-pychromecast 9.4.0-2
Versions of packages sublime-music suggests:
ii network-manager 1.42.0-1
-- no debconf information
(sublime-music:76700): Gtk-CRITICAL **: 15:16:32.819: gtk_widget_set_size_request: assertion 'width >= -1' failed
Bottle v0.12.23 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:8282/
Hit Ctrl-C to quit.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get
return clone.execute(database)[0]
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__
return self.row_cache[item]
~~~~~~~~~~~~~~^^^^^^
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 346, in do_activate
self.dbus_manager.property_diff()
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 372, in property_diff
new_property_dict = self.property_dict()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 239, in property_dict
"Metadata": self.get_mpris_metadata(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 335, in get_mpris_metadata
artist_name = song.artist.name if song.artist else ""
^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__
return self.get_rel_instance(instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance
obj = self.rel_model.get(self.field.rel_field == value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get
return sq.get()
^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get
raise self.model.DoesNotExist('%s instance matching query does '
sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist:
SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ?
Params: ['artist-74', 1, 0]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get
return clone.execute(database)[0]
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__
return self.row_cache[item]
~~~~~~~~~~~~~~^^^^^^
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda>
lambda: self.window.update(
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update
active_panel.update(app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 118, in update
self.playlist_detail_panel.update(app_config=app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 523, in update
self.update_playlist_view(
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper
result.add_done_callback(
File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback
fn(self, *args)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback
fn()
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 658, in update_playlist_view
artist.name if (artist := song.artist) else None,
^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__
return self.get_rel_instance(instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance
obj = self.rel_model.get(self.field.rel_field == value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get
return sq.get()
^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get
raise self.model.DoesNotExist('%s instance matching query does '
sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist:
SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ?
Params: ['artist-74', 1, 0]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda>
lambda: self.window.update(
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update
active_panel.update(app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 117, in update
self.playlist_list.update(app_config=app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 232, in update
self.update_list(app_config=app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper
result.add_done_callback(
File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback
fn(self, *args)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback
fn()
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 273, in update_list
util.diff_model_store(self.playlists_store, new_store)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 166, in diff_model_store
diff = DeepDiff(old_store, new_store)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 303, in __init__
self._diff(root, parents_ids=frozenset({id(t1)}), _original_type=_original_type)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff
self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable
self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order
self._diff_by_forming_pairs_and_comparing_one_by_one(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1543, in _diff
self._diff_obj(level, parents_ids)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 428, in _diff_obj
self._diff_dict(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 585, in _diff_dict
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff
self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable
self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order
self._diff_by_forming_pairs_and_comparing_one_by_one(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1524, in _diff
elif isinstance(level.t1, Mapping):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen abc>", line 119, in __instancecheck__
AttributeError: __class__
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1039, in <lambda>
lambda: self.window.update(
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/ui/main.py", line 363, in update
active_panel.update(app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 117, in update
self.playlist_list.update(app_config=app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 232, in update
self.update_list(app_config=app_config, force=force)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 435, in wrapper
result.add_done_callback(
File "/usr/lib/python3/dist-packages/sublime_music/adapters/manager.py", line 151, in add_done_callback
fn(self, *args)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 423, in future_callback
fn()
File "/usr/lib/python3/dist-packages/sublime_music/ui/playlists.py", line 273, in update_list
util.diff_model_store(self.playlists_store, new_store)
File "/usr/lib/python3/dist-packages/sublime_music/ui/util.py", line 166, in diff_model_store
diff = DeepDiff(old_store, new_store)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 303, in __init__
self._diff(root, parents_ids=frozenset({id(t1)}), _original_type=_original_type)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff
self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable
self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order
self._diff_by_forming_pairs_and_comparing_one_by_one(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1543, in _diff
self._diff_obj(level, parents_ids)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 428, in _diff_obj
self._diff_dict(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 585, in _diff_dict
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1537, in _diff
self._diff_iterable(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 632, in _diff_iterable
self._diff_iterable_in_order(level, parents_ids, _original_type=_original_type, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 761, in _diff_iterable_in_order
self._diff_by_forming_pairs_and_comparing_one_by_one(
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 863, in _diff_by_forming_pairs_and_comparing_one_by_one
self._diff(next_level, parents_ids_added, local_tree=local_tree)
File "/usr/lib/python3/dist-packages/deepdiff/diff.py", line 1524, in _diff
elif isinstance(level.t1, Mapping):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen abc>", line 119, in __instancecheck__
AttributeError: __class__
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/peewee.py", line 6970, in get
return clone.execute(database)[0]
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4339, in __getitem__
return self.row_cache[item]
~~~~~~~~~~~~~~^^^^^^
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sublime_music/app.py", line 1003, in on_app_shutdown
self.dbus_manager.shutdown()
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 99, in shutdown
self.property_diff()
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 372, in property_diff
new_property_dict = self.property_dict()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 239, in property_dict
"Metadata": self.get_mpris_metadata(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/sublime_music/dbus/manager.py", line 335, in get_mpris_metadata
artist_name = song.artist.name if song.artist else ""
^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4486, in __get__
return self.get_rel_instance(instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 4477, in get_rel_instance
obj = self.rel_model.get(self.field.rel_field == value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6522, in get
return sq.get()
^^^^^^^^
File "/usr/lib/python3/dist-packages/peewee.py", line 6973, in get
raise self.model.DoesNotExist('%s instance matching query does '
sublime_music.adapters.filesystem.models.ArtistDoesNotExist: <Model: Artist> instance matching query does not exist:
SQL: SELECT "t1"."id", "t1"."name", "t1"."album_count", "t1"."starred", "t1"."biography", "t1"."music_brainz_id", "t1"."last_fm_url", "t1"."_artist_image_url_id" FROM "artist" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ?
Params: ['artist-74', 1, 0]
OpenPGP_signature
Description: OpenPGP digital signature
--- End Message ---