Summary: | oxygen gtk2-engine application crash: BadWindow (invalid Window parameter) X Window system error | ||
---|---|---|---|
Product: | [Plasma] Oxygen | Reporter: | Federico Stafforini <fstafforini> |
Component: | gtk2-engine | Assignee: | Hugo Pereira Da Costa <hugo.pereira.da.costa> |
Status: | CLOSED FIXED | ||
Severity: | normal | CC: | b7.10110111, dontcare, hugo.pereira.da.costa, rajmohan141089, web |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Federico Stafforini
2012-03-12 22:20:00 UTC
This happens under x86-64 architecture. Could not reproduce bug using 32 bit libs and apps on the same system. Please use git-bisect to find the guilty commit. *** Bug 295966 has been marked as a duplicate of this bug. *** @Ruslan, others I suspect fe399f97bd478a33241a5a4213498072292ce841 To be the guilty guy. (basically reverting compositing on a window that has been already destroyed). Can someone that experience the bug 1/ get oxygen gtk from source git clone git://anongit.kde.org/oxygen-gtk 2/ checkout before the commit before git checkout fe399f97bd478a33241a5a4213498072292ce841^ (don't forget the "^") 3/ compile and see if the bug is still there 4/ checkout the revision: git checkout fe399f97bd478a33241a5a4213498072292ce841 5/ compile and see if the bug is here. @Ruslan Note: if this indeed is the bug, the fix (that does not break gtk-chtheme) would be either - find a way to check the validity of the window before reverting compositing (might be difficult) - not reverting compositing in destructor (disconnect) - revert everything manually in theme exit (for lxappearance or gth-chtheme) I sure can work on that but need confirmation first. (In reply to comment #5) If you mean that the problem is our gdk_window_set_composited(window,_initiallyComposited), then it's strange that we get BadWindow after GDK_IS_WINDOW returns true. Also, I'd rather see which request fails using --sync option to GTK program and breaking on gdk_x_error(). @ruslan, might be an underlying gtk issue GdkWindow still exists, but underlying X window is gone (unmapped or smthing like that) then crash when gdk_window_set_composite (or whatever the name) try access the X window to change the "composite" flag ... something like that. (iirc, I've seen this happen for other calls) (In reply to comment #7) It seems you might be right. There's a gdk_window_is_destroyed() function, so maybe we should check it before setting composite state. Git commit d6c4de90902a005fc14e55c1789bec276dbfcdf0 by Ruslan Kabatsayev. Committed on 14/03/2012 at 12:04. Pushed by kabatsayev into branch '1.2'. Check if GdkWindow is destroyed before restoring composited state M +1 -1 src/animations/oxygeninnershadowdata.cpp http://commits.kde.org/oxygen-gtk/d6c4de90902a005fc14e55c1789bec276dbfcdf0 @ruslan sounds good. Although I'd like to have confirmation for comment #4 Anyone ? Thanks for the commit anyway ! (can't hurt) @Ruslan, good news, without your commit (forward ported to gtk3), gtk3-demo was crashing at exit (likely with the same issue), and is not anymore. Most likely your fix works ! OK, I mark this fixed. If it appears to not be, please reopen. I confirm the original issue is fixed. Thanks! *** Bug 296082 has been marked as a duplicate of this bug. *** |