After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 783455 - Assertion downloading image
Assertion downloading image
Status: RESOLVED DUPLICATE of bug 778653
Product: epiphany
Classification: Core
Component: Downloads
3.24.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: Epiphany Maintainers
Epiphany Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-06-06 04:34 UTC by Bastien Nocera
Modified: 2017-07-02 18:45 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2017-06-06 04:34:13 UTC
epiphany-3.24.2-1.fc26.x86_64

1. Go to https://www.discogs.com/Various-The-Music-Of-Grand-Theft-Auto-IV/release/1321004
2. Click on the cover image
3. Select "Save image as..."
4. Select the Downloads folder
5. Click Save
6. Crash

I see no error messages from ephy_downloads_manager_acquire_session_inhibitor() (""Failed to acquire session inhibitor for active download. Is gnome-session running?").

  • #0 __GI_raise
    at ../sysdeps/unix/sysv/linux/raise.c line 51
  • #1 __GI_abort
    at abort.c line 89
  • #2 g_assertion_message
  • #3 g_assertion_message_expr
  • #4 ephy_downloads_manager_release_session_inhibitor
  • #5 g_closure_invoke
  • #6 signal_emit_unlocked_R
  • #7 g_signal_emit_valist
  • #8 g_signal_emit
  • #9 g_closure_invoke
  • #10 signal_emit_unlocked_R
  • #11 g_signal_emit_valist
  • #12 g_signal_emit
  • #13 webkitDownloadFailed(_WebKitDownload*, WebCore::ResourceError const&)
  • #14 DownloadClient::didFail(WebKit::WebProcessPool*, WebKit::DownloadProxy*, WebCore::ResourceError const&)
  • #15 WebKit::DownloadProxy::didFail(WebCore::ResourceError const&, IPC::DataReference const&)
  • #16 void IPC::handleMessage<Messages::DownloadProxy::DidFail, WebKit::DownloadProxy, void
  • #17 WebKit::DownloadProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
  • #18 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&)
  • #19 WebKit::NetworkProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
  • #20 IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >)
  • #21 IPC::Connection::dispatchOneMessage()
  • #22 WTF::RunLoop::performWork()
  • #23 WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*)
  • #24 g_main_context_dispatch
  • #25 g_main_context_iterate.isra
  • #26 g_main_context_iteration
  • #27 g_application_run
  • #28 main

Comment 1 Michael Catanzaro 2017-06-06 14:50:53 UTC
Awesome, thanks for reporting this. Was confused how this could ever happen....
Comment 2 Bastien Nocera 2017-06-06 15:20:48 UTC
You managed to reproduce it? I could probably find a way to shorten the reproducer if you haven't done so already.
Comment 3 Michael Catanzaro 2017-06-06 15:54:18 UTC
Yes, I can reproduce it in master. It's a regression from 3.22. There is some misunderstanding between the Epiphany code that tracks the inhibitors and WebKit's download error handling.

Note that it's happening because the download fails, so there is another bug here too. :)
Comment 4 Michael Catanzaro 2017-06-15 13:30:57 UTC

*** This bug has been marked as a duplicate of bug 778653 ***
Comment 5 Michael Catanzaro 2017-07-02 17:10:24 UTC
After fixing bug #778653, this now results in "Error downloading: service unavailable". Guess: the server really doesn't want us to download the image and is sending an HTTP 503. That's odd because it raises the question of how the image wound up displayed in the page in the first place.
Comment 6 Bastien Nocera 2017-07-02 18:22:10 UTC
My guess is lack of "referer". But epiphany downloads it to disk anyway, probably from the cache. As long as it doesn't crash...
Comment 7 Michael Catanzaro 2017-07-02 18:45:00 UTC
(In reply to Bastien Nocera from comment #6)
> My guess is lack of "referer".

That's a pretty decent guess, actually. Would not be surprised if that's right.