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 632098 - futex immediate timeout, DNS lookup related, when using latest git libsoup with webkit
futex immediate timeout, DNS lookup related, when using latest git libsoup wi...
Status: RESOLVED INVALID
Product: libsoup
Classification: Core
Component: Misc
unspecified
Other Linux
: Normal major
: ---
Assigned To: libsoup-maint@gnome.bugs
libsoup-maint@gnome.bugs
Depends on:
Blocks:
 
 
Reported: 2010-10-13 20:32 UTC by luke kenneth casson leighton
Modified: 2010-10-14 19:33 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description luke kenneth casson leighton 2010-10-13 20:32:33 UTC
the last working version with webkit is 2.29.90 (this is latest version of webkit)

if you use the absolute latest version of libsoup, then when putting in a URL, an strace shows system calls looking around to resolve the hostname into an IP address, but instead of succeeding, strace shows a system call to futex which _immediately_ times out, stopping the DNS lookup dead in its tracks.

thus, all external URLs fail completely.

file:// is absolutely fine, obviously: it's just http://, ftp:// etc. etc. that run into an instant fail due to that timeout.

i'd use "git blame" to track this down a bit further, but the amount of time it takes to recompile webkit is so insane that it would be several days of recompiling to track down the two versions, and i'd rather not cook my laptop it gets up to 80-85 centigrade when doing compiles.

right now the best i can say is that it's a commit somewhere between 2.29.90 and 2.32.x: i started with a version of libsoup that was checked out about 18 days ago (28th sep approx), that's the best i can say right now.

i'm rating this as a major bug because it makes libsoup completely unusable.

l.
Comment 1 Dan Winship 2010-10-13 20:49:23 UTC
(In reply to comment #0)
> i'd use "git blame" to track this down a bit further, but the amount of time it
> takes to recompile webkit is so insane that it would be several days of
> recompiling to track down the two versions

You don't need to rebuild webkit just because you rebuilt libsoup. 2.29.90 and 2.32.x are ABI-compatible.
Comment 2 luke kenneth casson leighton 2010-10-13 21:11:18 UTC
ahh, good - then what the heck i'll do a binary-search to track down the commits.  that's a lot easier.  gimme 1 hour.
Comment 3 luke kenneth casson leighton 2010-10-13 21:20:02 UTC
weird.  i would have _expected_ it to be this commit, but i'm still not seeing any breakages / repo cases just doing this compile-install-soup-only.

btw if this is really true (the bit about very latest glib) then that's a 2nd bug: if i have this (from ./autogen.sh)

checking for GLIB - version >= 2.21.3... yes (version 2.24.1)

then surely that should be a fail, right there, right?  because libsoup _should_ be doing a version check, right?  and it should be telling me "error, you don't have the latest version of glib which is known to work", right?  unless of course 2.24.1 _is_ the "absolute latest" .... oh look, yeah this is 2009 commit dates :)


commit b248daf6ab6bba3c4b346dc1f2b45cb73881d05b
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 15 12:05:16 2009 -0500

    Try all IP addrs associated with a hostname if the first fails

    Make SoupAddress keep track of multiple IP addresses and implement
    GSocketConnectable, and make SoupSocket use GSocketClient (and thus
    GSocketAddressEnumerator) to connect, so that it tries all addresses
    associated with the SoupAddress.

    In particular, this fixes the bug where if a host has both IPv4 and
    IPv6 addresses, and glibc thinks you have IPv6 connectivity, but you
    don't really, that libsoup can't connect to that host.

    (Using GSocketClient rather than using GSocketAddressEnumerator
    directly is a bit heavyweight for SoupSocket, since we don't actually
    want to have a GSocket or GSocketConnection. But eventually, we will
    be porting SoupSocket to use GSocket, and this code is a stepping
    stone to that. Also, letting GSocketClient do the looping over the
    addresses simplifies SoupSocket.)

    (This change also silently breaks connection timeouts unless you have
    the very latest git glib.)

    https://bugzilla.gnome.org/show_bug.cgi?id=526321
Comment 4 luke kenneth casson leighton 2010-10-13 21:27:36 UTC
huh.  weird.  um.  got all the way through to the top (where i should haev started anyway) aaaand... no breakage.  i'll re-verify by doing a webkit rebuild.

l.
Comment 5 luke kenneth casson leighton 2010-10-13 23:30:57 UTC
damnit - many apologies: i cannot now repro this, even though i had a definite demonstrable fail/success case last week.  unfortunately in the past few days i may have inadvertently upgraded several libraries (from debian/lenny to debian/testing) which _could_ have included libglib.

also the only other thing that springs to mind is that i fixed my system only just a few hours ago which had "hostname --fqdn" returning "localhost".  i fixed this by adding "127.0.0.1 localhost.localdomain localhost".

apologies.
Comment 6 Dan Winship 2010-10-14 19:33:56 UTC
probably you had an old version of glib with some bug in it, and updating libsoup to a newer version made it switch to using glib for DNS instead of using its own code. But then you updated glib to a version with the bug fixed, so libsoup started working fine too.