Bug 21210 - [GTK] Linux/GTK: GtkLauncher throwing Gtk-CRITICAL errors
Summary: [GTK] Linux/GTK: GtkLauncher throwing Gtk-CRITICAL errors
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 20110
Blocks:
  Show dependency treegraph
 
Reported: 2008-09-29 06:21 PDT by Clemmitt Sigler
Modified: 2008-10-03 15:06 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Clemmitt Sigler 2008-09-29 06:21:03 PDT
Hi,

I think this behaviour cropped up around the time David Hyatt was working on ScrollView/widget refactoring.  GtkLauncher had been performing cleanly in my quick Acid{1,2,3} testing prior to this.  Now it throws these errors:

(lt-GtkLauncher:nnnnn): Gtk-CRITICAL **: gtk_widget_queue_draw_area: assertion `GTK_IS_WIDGET (widget)' failed

when going to the Acid2 and esp. Acid3 test pages.

So, I've looked at WebCore/platform/gtk/WidgetGtk.cpp, and GTK_WIDGET(containingWindow()) seems to be throwing these errors, indicating containingWindow() is not a widget(?).  Widget::invalidateRect(const IntRect& rect) isn't called in too many places (under GTK), and I don't see any calls where the value of rect passed to it would be invalid.

Based on my experience, I'm guessing that sometimes the value of rect being passed is unset/NULL...?  I've futzed with the code and can't see any such errors -- of course, I'm not very familiar with the code base....

Hope this error report might point out a simple thinko.  TIA.

Clemmitt
Comment 1 Alp Toker 2008-09-29 12:51:26 PDT
Thanks for the report.

The containingWindow() issues are surfacing following Hyatt's refactoring of ScrollView but I have a feeling it's really just exposing a historic leftover in the GTK+ port Widget and ScrollView code as described in bug #20110.
Comment 2 Clemmitt Sigler 2008-10-01 04:16:03 PDT
(In reply to comment #1)
> Thanks for the report.
Hi Alp (et al),

Thanks for your help.

I've had just a bit of time to do a little more testing.  r36885 *does*not* have the GTK regressions I've noted.  r36904 does.  So it may be possible to isolate whatever (ScrollView?) changes are causing this behaviour to surface.

I've found that at least since r36904, my Linux/GTK builds crash on slashdot.org, espn.go.com, and www.foxnews.com.  I was surprised to find they bombed out -- r36885 and prior *don't* bomb out on those 3 sites, FWIW.  All 3 crash-and-die messages are the same:

(lt-GtkLauncher:xxxxx): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed

(lt-GtkLauncher:xxxxx): Gtk-CRITICAL **: gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed

(lt-GtkLauncher:xxxxx): Gtk-CRITICAL **: gtk_socket_get_id: assertion `GTK_WIDGET_ANCHORED (socket)' failed
Segmentation fault

Please note that my Linux/GTK builds crash likewise all the way up through r37102 (last buildable revision waterfall shows for Linux/GTK).  They seem to crash sometimes even on lwn.net/Articles.

HTHelps some more :^)  I'll try to find time to build with debugging and do more testing.

Clemmitt
Comment 3 Dave Hyatt 2008-10-03 01:52:45 PDT
I think I might have fixed this today.
Comment 4 Clemmitt Sigler 2008-10-03 15:06:18 PDT
(In reply to comment #3)
> I think I might have fixed this today.

Hi Dave,

Yes, the original bug I reported is gone.  Tested with r37248.

(GtkLauncher browser still crashes on some sites, but that's another bug and I shouldn't have rolled that complaint into this one.  I'll open another bug report.)

Closing this bug as FIXED.  Thanks for fixing it.

Clemmitt