Opened 3 years ago

Closed 3 years ago

#3520 closed bug (Fixed)

[Solved] Country flags are missing when using libtorrent from RC_1_2 branch.

Reported by: Alexey Owned by:
Priority: minor Milestone: not applicable
Component: libtorrent Version: develop
Keywords: Cc:

Description

OS: Arch

Deluge: 2.1.0.dev118

Libtorrent: 1.2.16.0

Python: 3.10.4


Hello!

I have some issues with download speed when using Libtorrent>=2.0, so I am stick with 1.2 branch. It seems my problem started after one of the recent system updates. Unfortunately, I have deleted full pacman logs, but this is the list of the most recent update:

upgraded libsasl (2.1.27-3 -> 2.1.28-1)
upgraded gstreamer (1.20.1-1 -> 1.20.2-1)
upgraded gst-plugins-base-libs (1.20.1-1 -> 1.20.2-1)
upgraded gst-plugins-bad-libs (1.20.1-1 -> 1.20.2-1)
upgraded gst-plugins-base (1.20.1-1 -> 1.20.2-1)
upgraded nss (3.77-1 -> 3.78-1)
upgraded glibmm (2.66.3-1 -> 2.66.3-3)
upgraded luajit (2.1.0.beta3.r397.g20aea939-1 -> 2.1.0.beta3.r404.g3ee3c9cf-1)
upgraded xmlsec (1.2.33-1 -> 1.2.34-1)
upgraded zxing-cpp (1.2.0-1 -> 1.3.0-1)
upgraded enchant (2.3.2-2 -> 2.3.3-1)
upgraded jansson (2.14-1 -> 2.14-2)
upgraded vulkan-icd-loader (1.3.208-1 -> 1.3.209-1)
upgraded pcre2 (10.39-1 -> 10.40-1)
upgraded libglvnd (1.4.0-1 -> 1.4.0-2)
upgraded ndctl (72.1-1 -> 73-1)
upgraded nodejs (17.9.0-2 -> 18.1.0-1)
upgraded noto-fonts (20201226-2 -> 20220502-1)
upgraded pacman-contrib (1.5.0-1 -> 1.5.1-1)
upgraded python-packaging (20.9-7 -> 21.3-1)
upgraded ttf-croscore (20201226-2 -> 20220502-1)
upgraded vulkan-headers (1:1.3.211-1 -> 1:1.3.212-1)
upgraded lsof (4.94.0-1 -> 4.95.0-1)
upgraded perl-http-daemon (6.13-1 -> 6.14-1)
upgraded perl-libwww (6.59-1 -> 6.60-1)
upgraded glibmm (2.66.3-3 -> 2.66.4-1)
upgraded openssl (1.1.1.n-1 -> 1.1.1.o-1)
upgraded python-more-itertools (8.12.0-1 -> 8.12.0-2)

The problem is that country flags are missing in Deluge "Peers" tab, there are just empty spaces instead of icons. Previously there was no such problem. I have geoip, geoip-database and python-geoip installed. When starting deluged daemon, the following errors are printed:

[ERROR   ][deluge.component              :128 ] [Failure instance: Traceback: <class 'KeyError'>: 'unknown name in settings_pack: peer_tos'                                  [0]
/usr/lib/python3.10/site-packages/twisted/internet/base.py:1328:mainLoop
/usr/lib/python3.10/site-packages/twisted/internet/base.py:994:runUntilCurrent
/usr/lib/python3.10/site-packages/twisted/internet/defer.py:662:callback
/usr/lib/python3.10/site-packages/twisted/internet/defer.py:764:_startRunCallbacks
--- <exception caught here> ---
/usr/lib/python3.10/site-packages/twisted/internet/defer.py:858:_runCallbacks
/usr/lib/python3.10/site-packages/twisted/internet/task.py:871:cb
/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py:158:start
/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py:172:do_config_set_func
/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py:260:_on_set_peer_tos
/usr/lib/python3.10/site-packages/deluge/core/core.py:238:apply_session_setting
/usr/lib/python3.10/site-packages/deluge/core/core.py:246:apply_session_settings
]
Unhandled error in Deferred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/twisted/internet/base.py", line 1328, in mainLoop
    reactorBaseSelf.runUntilCurrent()
  File "/usr/lib/python3.10/site-packages/twisted/internet/base.py", line 994, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "/usr/lib/python3.10/site-packages/twisted/internet/defer.py", line 662, in callback
    self._startRunCallbacks(result)
  File "/usr/lib/python3.10/site-packages/twisted/internet/defer.py", line 764, in _startRunCallbacks
    self._runCallbacks()
--- <exception caught here> ---
  File "/usr/lib/python3.10/site-packages/twisted/internet/defer.py", line 858, in _runCallbacks
    current.result = callback(  # type: ignore[misc]
  File "/usr/lib/python3.10/site-packages/twisted/internet/task.py", line 871, in cb
    return callable(*args, **kw)
  File "/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py", line 158, in start
    self.do_config_set_func(key, self.config[key])
  File "/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py", line 172, in do_config_set_func
    on_set_func(key, value)
  File "/usr/lib/python3.10/site-packages/deluge/core/preferencesmanager.py", line 260, in _on_set_peer_tos
    self.core.apply_session_setting('peer_tos', int(value, 16))
  File "/usr/lib/python3.10/site-packages/deluge/core/core.py", line 238, in apply_session_setting
    self.apply_session_settings({key: value})
  File "/usr/lib/python3.10/site-packages/deluge/core/core.py", line 246, in apply_session_settings
    self.session.apply_settings(settings)
builtins.KeyError: 'unknown name in settings_pack: peer_tos'

However, if compile Libtorrent from RC_2_0 branch, country flags are rendered correctly, and there are no errors at startup.

Change History (5)

comment:1 by Alexey, 3 years ago

Component: UnknownGTK UI
Milestone: needs verified2.1.0
Version: 2.0.0develop

comment:2 by Alexey, 3 years ago

Ok, it seems that peer_tos has been renamed to peer_dscp in Libtorrent, and that is what causes the problem. Everything is fine with earlier Libtorrent commits.

comment:3 by Alexey, 3 years ago

Fixed in the latest Libtorrent.

comment:4 by Alexey, 3 years ago

Summary: Country flags are missing when using libtorrent from RC_1_2 branch.[Solved] Country flags are missing when using libtorrent from RC_1_2 branch.

comment:5 by Calum, 3 years ago

Component: GTK UIlibtorrent
Milestone: 2.1.0not applicable
Resolution: Fixed
Status: newclosed

Yes this was a bug in latest libtorrent 1.2 release and fixed

https://github.com/arvidn/libtorrent/issues/6812

Note: See TracTickets for help on using tickets.