Summary: | Segfault in Oxygen::render_frame (widget is null) | ||
---|---|---|---|
Product: | [Plasma] Oxygen | Reporter: | Justin Gottula <justin> |
Component: | gtk2-engine | Assignee: | Hugo Pereira Da Costa <hugo.pereira.da.costa> |
Status: | CLOSED FIXED | ||
Severity: | crash | CC: | arthur, b7.10110111, hugo.pereira.da.costa, web |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: |
Supposed reverting patch
Debug output when running brasero. Debug output when running gedit. |
Description
Justin Gottula
2011-08-13 07:54:46 UTC
Starting to bisect. 72f54a4a31cfc620d0be0eae488920c065eb321c looks good. I was able to use git bisect to find the first commit where the issue appears: 63e34f845837e2bf308184ac30727573db52ed30 is the first bad commit Are you sure your bisect result is correct? The commit seems unrelated. Could you check if the issue appears when you git reset --hard 63e34f8^, and after you git reset --hard 63e34f8 ? Second time, bisect appears to be correct: git reset --hard 63e34f8^ good git reset --hard 63e34f8 segfault Created attachment 62801 [details]
Supposed reverting patch
Does this patch revert to working state (merges appear to be somewhat tricky to handle when they appear to be bad commits)?
Also, note that oxygen-gtk3 isn't yet released and is in alpha stage, so shouldn't be used on production systems.
Applying the patch to the latest git revision does resolve the problem. Could you give terminal output having compiled latest git oxygen-gtk3 without this patch, setting OXYGEN_DEBUG to 1: cmake -DOXYGEN_DEBUG=1 .. ? Created attachment 62805 [details]
Debug output when running brasero.
Created attachment 62806 [details]
Debug output when running gedit.
ok. After a couple of source compilation, I could have gedit-3.0 up and running and can reproduce. Will investigate. @Ruslan I think I know the issue. Our WidgetLookup::initializeHook is called too soon, before any GtkWidget is created. So that the typeId is not set, and thus the hook not installed. Hence all the lookups fail, which result in crash. Before the rootWindow patch, we were creating a GtkWidget manually, and did not have any of these issues. All in all, should be fixable. PS: the GtkWidget type not being created is reflected by error messages a la: "Oxygen::Hook::connect - typeId GtkWidget not yet installed" in the log. Git commit c92b01fa01b90fa30bc51a85594664fdf2d8834f by Hugo Pereira Da Costa. Committed on 29/08/2011 at 16:28. Pushed by hpereiradacosta into branch '1.1'. make sure to reference requested type at least once, when connecting Hook. CCBUG: 280007 M +1 -1 src/animations/oxygenhook.cpp http://commits.kde.org/oxygen-gtk/c92b01fa01b90fa30bc51a85594664fdf2d8834f Git commit e78d1b164abf65cc0ed52a7910bd7335c4aaf076 by Hugo Pereira Da Costa. Committed on 29/08/2011 at 16:11. Pushed by hpereiradacosta into branch 'gtk3'. added debug output CCBUG: 280007 M +4 -0 src/oxygenwidgetlookup.cpp http://commits.kde.org/oxygen-gtk/e78d1b164abf65cc0ed52a7910bd7335c4aaf076 commit from Comment #13 fixes it (in what is I think an elegant and safe way). Should also fix other issues here and there of un-initialized hooks. So I backported to the gtk2 branches. Closing. Problem is resolved on my end with the latest git version. |