Bug 27679 - GtkLauncher segfault in libsoup (g_io_unix_write())
Summary: GtkLauncher segfault in libsoup (g_io_unix_write())
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords: Gtk
Depends on:
Blocks:
 
Reported: 2009-07-25 08:14 PDT by Luke Kenneth Casson Leighton
Modified: 2009-07-25 15:56 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kenneth Casson Leighton 2009-07-25 08:14:46 PDT
this has been occurring very occasionally: it took a _long_ time to get this to occur, unfortunately.


(gdb) bt
#0  0x00002aaf228ce5bb in write () from /lib/libpthread.so.0
#1  0x00002aaf2266c1a0 in g_io_unix_write (channel=0xcd9550, 
    buf=0xcd9c20 "GET /examples/ HTTP/1.1\r\nHost: pyjs.org\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-gb) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) GtkLauncher\r\nAccept: application/xml,application/xh"..., 
    count=291, bytes_written=0x7fff8b8baf30, err=0x7fff8b8baf80)
    at /build/buildd/glib2.0-2.18.4/glib/giounix.c:229
#2  0x00002aaf2262ba88 in IA__g_io_channel_write_chars (channel=0xcd9550, 
    buf=0xcd9c20 "GET /examples/ HTTP/1.1\r\nHost: pyjs.org\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-gb) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) GtkLauncher\r\nAccept: application/xml,application/xh"..., 
    count=291, bytes_written=0x7fff8b8bafe0, error=0x7fff8b8baf80)
    at /build/buildd/glib2.0-2.18.4/glib/giochannel.c:1982
#3  0x00002aaf244de1c8 in soup_socket_write (sock=0xcc30d0, buffer=0xcd9c20, 
    len=<value optimized out>, nwrote=0x7fff8b8bafe0, 
    cancellable=<value optimized out>, error=0x7fff8b8bafd8)
    at soup-socket.c:1468
#4  0x00002aaf244d4b7f in write_data (msg=0xf41390, 
    data=0xcd9c20 "GET /examples/ HTTP/1.1\r\nHost: pyjs.org\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-gb) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) GtkLauncher\r\nAccept: application/xml,application/xh"..., 
    len=291, body=0) at soup-message-io.c:363
#5  0x00002aaf244d5436 in io_write (sock=0xcc30d0, msg=0xf41390)
    at soup-message-io.c:457
#6  0x00002aaf244dcd73 in run_queue (sa=<value optimized out>)
    at soup-session-async.c:279
#7  0x00002aaf244bdabf in lookup_resolved (lookup=0xb1caa0, status=200, 
    user_data=<value optimized out>) at soup-address.c:565
#8  0x00002aaf244cbd01 in do_async_callback (user_data=<value optimized out>)
    at soup-dns.c:525
#9  0x00002aaf22636afb in IA__g_main_context_dispatch (context=0x62cf80)
    at /build/buildd/glib2.0-2.18.4/glib/gmain.c:2144
#10 0x00002aaf2263a2bd in g_main_context_iterate (context=0x62cf80, block=1, 
    dispatch=1, self=<value optimized out>)
    at /build/buildd/glib2.0-2.18.4/glib/gmain.c:2778
#11 0x00002aaf2263a7ed in IA__g_main_loop_run (loop=0xcb9480)
    at /build/buildd/glib2.0-2.18.4/glib/gmain.c:2986
#12 0x00002aaf2062f737 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x000000000040217c in main ()
(gdb) 


library versions:

ii  libsoup2.4-dev                                2.24.3-2   

ii  libglib2.0-0                                  2.18.4-2                             The GLib library of C routines
ii  libglib2.0-0-dbg                              2.18.4-2                             The GLib libraries and debugging symbols
ii  libglib2.0-data                               2.12.4-2                             Common files for GLib library
ii  libglib2.0-dev                                2.18.4-2

svn revision:

$ svn info
Path: .
URL: http://svn.webkit.org/repository/webkit/trunk
Repository Root: http://svn.webkit.org/repository/webkit
Repository UUID: 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revision: 44473
Comment 1 Luke Kenneth Casson Leighton 2009-07-25 08:55:11 PDT
ah.  turns out that this is a reproducible case:
http://pyjs.org/examples/kitchensink/output/KitchenSink.html

page fails to load.  a refresh results in the segfault.
Comment 2 Luca Ferretti 2009-07-25 09:45:58 PDT
(In reply to comment #1)
> ah.  turns out that this is a reproducible case:
> http://pyjs.org/examples/kitchensink/output/KitchenSink.html
> 
> page fails to load.  a refresh results in the segfault.

I tried to load the test page linked in this bug in Epiphany (trunk) + WebKitGtk 1.1.11. No crash, but the progress bar disappears in the middle of loading and page content appears after more then 1 minute.
Comment 3 Luke Kenneth Casson Leighton 2009-07-25 11:35:56 PDT
(In reply to comment #2)
> (In reply to comment #1)
> > ah.  turns out that this is a reproducible case:
> > http://pyjs.org/examples/kitchensink/output/KitchenSink.html
> > 
> > page fails to load.  a refresh results in the segfault.
> 
> I tried to load the test page linked in this bug in Epiphany (trunk) +
> WebKitGtk 1.1.11. No crash,

 ah, that's good.

>  but the progress bar disappears in the middle of
> loading and page content appears after more then 1 minute.

 that sounds about right, it's a rather large javascript app, built with optimisation switched off.

 what happens if you then try to browse another page?

 what happens if you interrupt the browsing (don't wait 1 minute)
 and try to load another page?

 what happens if you interrupt the browsing (don't wait 1 minute)
 and hit refresh (or reload)?
Comment 4 Luke Kenneth Casson Leighton 2009-07-25 14:22:11 PDT
ok - i've done an svn update (r46395) and also had, yukk, to get the latest version of libsoup from its git repository, because the release of libsoup on which r46395 depends is just too new (march 2009) for debian/unstable to have come out with.

and - lovely, lovely, the problem's gone away.  can't repro the segfault.

soooo, do give serious consideration to doing likewise.
Comment 5 Luca Ferretti 2009-07-25 14:25:39 PDT
(In reply to comment #3)
>  what happens if you then try to browse another page?

OK, no crash, second page loaded
 
>  what happens if you interrupt the browsing (don't wait 1 minute)
>  and try to load another page?

OK, no crash, second page loaded
(please note that Stop button become grayed when the progressbar disappers)

>  what happens if you interrupt the browsing (don't wait 1 minute)
>  and hit refresh (or reload)?

OK, no crash, page reloaded (even clicking refresh again and again and again)

The only issue I can see in epiphany is wrong action described in statusbar: the "pyjs.org loading..." message don't disappear, even going to a new page.
Comment 6 Luke Kenneth Casson Leighton 2009-07-25 14:33:51 PDT
(In reply to comment #5)
> (In reply to comment #3)
> >  what happens if you interrupt the browsing (don't wait 1 minute)
> >  and try to load another page?
> 
> OK, no crash, second page loaded
> (please note that Stop button become grayed when the progressbar disappers)

 ah.  GtkLauncher isn't that sophisticated, and if you press the reload
 button it does what it's been asked to do :)

> >  what happens if you interrupt the browsing (don't wait 1 minute)
> >  and hit refresh (or reload)?
> 
> OK, no crash, page reloaded (even clicking refresh again and again and again)
> 
> The only issue I can see in epiphany is wrong action described in statusbar:
> the "pyjs.org loading..." message don't disappear, even going to a new page.

 might be worthwhile raising a bug for epiphany for that.
Comment 7 Jan Alonzo 2009-07-25 15:56:59 PDT
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #3)
> > >  what happens if you interrupt the browsing (don't wait 1 minute)
> > >  and try to load another page?
> > 
> > OK, no crash, second page loaded
> > (please note that Stop button become grayed when the progressbar disappers)
> 
>  ah.  GtkLauncher isn't that sophisticated, and if you press the reload
>  button it does what it's been asked to do :)
> 
> > >  what happens if you interrupt the browsing (don't wait 1 minute)
> > >  and hit refresh (or reload)?
> > 
> > OK, no crash, page reloaded (even clicking refresh again and again and again)
> > 
> > The only issue I can see in epiphany is wrong action described in statusbar:
> > the "pyjs.org loading..." message don't disappear, even going to a new page.
> 
>  might be worthwhile raising a bug for epiphany for that.

Closing, given that this doesn't occur in at least WebKitGtk 1.1.11.