--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501>
Deluge <https://deluge-torrent.org/>
Deluge Project
* priority: minor => blocker
* version: 2.0.0 => develop
* component: Unknown => GTK UI
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:1>
Comment (by Doadin):
Seems to be an issue with a tracker image specifically this one
http://dler.com/favicon.ico
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:2>
Comment (by Cas):
This could be an issue that was mentioned by mhertz, I think I saw a patch
he created for his build
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:3>
* milestone: needs verified => 2.0.6
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:4>
Old description:
> PS E:\Program Files\Deluge> .\deluge-debug -L debug -l
> E:\Documents\deluge.log
> deluge\ui\gtk3\common.py:83: Warning: cannot register existing type
> 'GdkPixbufGdipAnim'
> return Pixbuf.new_from_file_at_size(filename, size, size)
> deluge\ui\gtk3\common.py:83: Warning: g_once_init_leave: assertion
> 'result != 0' failed
> return Pixbuf.new_from_file_at_size(filename, size, size)
> deluge\ui\gtk3\common.py:83: Warning: g_object_new_with_properties:
> assertion 'G_TYPE_IS_OBJECT (object_type)' failed
> return Pixbuf.new_from_file_at_size(filename, size, size)
New description:
{{{
PS E:\Program Files\Deluge> .\deluge-debug -L debug -l
E:\Documents\deluge.log
deluge\ui\gtk3\common.py:83: Warning: cannot register existing type
'GdkPixbufGdipAnim'
return Pixbuf.new_from_file_at_size(filename, size, size)
deluge\ui\gtk3\common.py:83: Warning: g_once_init_leave: assertion 'result
!= 0' failed
return Pixbuf.new_from_file_at_size(filename, size, size)
deluge\ui\gtk3\common.py:83: Warning: g_object_new_with_properties:
assertion 'G_TYPE_IS_OBJECT (object_type)' failed
return Pixbuf.new_from_file_at_size(filename, size, size)
}}}
--
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:5>
Comment (by Doadin):
@cas maybe https://github.com/mhertz/deluge2/blob/master/deluge-
build/common.patch
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:6>
Comment (by Doadin):
From what I have been able to gather so far it is a specific icon not the
amount of icons. I tried adding several more trackers to get more icons
loading and it was fine however if I have a torrent with only dler.com
tracker deluge crashes.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:7>
Comment (by Doadin):
I think its pretty confirmed as I can add more trackers and they load but
if I add or remove that one tracker it crashes. And if I set that function
to print the file its loading every time before the crash its always that
ico.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:8>
Comment (by Cas):
That's the one.
Is the package missing the optional dependency pillow that is used for
resizing tracker icons. Could that fix this?
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:9>
Comment (by Doadin):
{{{
if filename ==
"C:\\Users\\bob\\AppData\\Roaming\\deluge\\icons\\dler.org.ico":
return create_blank_pixbuf(size)
else:
return Pixbuf.new_from_file_at_size(filename, size, size)
}}}
Stops the crash
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:10>
Comment (by Doadin):
I get this even running from python which has pillow installed.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:11>
Comment (by Cas):
We need to be able to replicate. Can you upload the copy of the icon
stored locally? Also what are the trackers in the torrent?
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:12>
Comment (by Cas):
Finally replicated on Windows and it's not quite as obvious as it seems. I
shall report my findings for now and then we can consider reporting
upstream (gvsbuild and/or gdk-pixbuf) and determining best fix.
The problem can be replicated in a simple Python repl by switching types
loaded, specifically gif or ico types on Windows:
{{{
from gi.repository.GdkPixbuf import Pixbuf
Pixbuf.new_from_file("any.gif")
Pixbuf.new_from_file("any.ico")
<stdin>:1: Warning: cannot register existing type 'GdkPixbufGdipAnim'
<stdin>:1: Warning: g_once_init_leave: assertion 'result != 0' failed
<stdin>:1: Warning: g_object_new_with_properties: assertion
'G_TYPE_IS_OBJECT (object_type)' failed
}}}
So what happens with Deluge is that a png favicon is loaded followed by an
ico favicon (or vice versa) resulting in a crash. I found this snippet of
information in this old Inkscape bug:
https://bugs.launchpad.net/inkscape/+bug/1467103
As we have found png (and jpeg) are unaffected and a likely is related to
gvsbuild using
[https://github.com/wingtk/gvsbuild/blob/b6e8b545580e0115c6c9c06ad61f60041d87b619/gvsbuild/projects.py#L510
native_windows_loaders=true] which disables gdk-pixbuf loaders for
[https://github.com/GNOME/gdk-
pixbuf/blob/b9f04547aa00abab67090995d67e4ad80fe84614/gdk-
pixbuf/meson.build#L15 gif,ico & bmp]
To workaround this crashing on Windows we can disable loading gif,ico &
bmp or convert all ico, gif and bmp to png, not ideal either way...
Otherwise we need to find a gdk-pixbuf build option that gvsbuild can use.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:13>
Comment (by Doadin):
It seems there are several open bug reports for ico files and the general
census seems to be they don't have anyone who knows ico well to fix the
issues, probably easiest for us to just ignore ico tracker icons, imo
don't care about the icons anyways so if some don't load w.e. Id rather
have a blank then waste resources converting.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:14>
Comment (by Cas):
Reported to gvsbuild: https://github.com/wingtk/gvsbuild/issues/489
This is not specific to the image file content it is a problem with the
loaders on Windows.
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:15>
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:16>
Comment (by Cas):
Workaround applied [90744dc2e]
--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3501#comment:17>