AUI Crash

When I have a toolbar that has a wx.media.MediaCtrl component it
causes a Segmentation fault when I undock it on Ubuntu and every other
*nix platform I have tested it on. Works great on windows.

A simple example @ http://dpaste.com/hold/105752/

Hi,

2009/10/11 Dj Gilcrease:

When I have a toolbar that has a wx.media.MediaCtrl component it
causes a Segmentation fault when I undock it on Ubuntu and every other
*nix platform I have tested it on. Works great on windows.

A simple example @ http://dpaste.com/hold/105752/

Are you using the SVN version of AUI? Can you see where the crash happens?

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

No just the version that comes with wx2.8.10

Should I Download the SVN version (from where) and test against that?

···

On Sun, Oct 11, 2009 at 10:03 AM, Andrea Gavana <andrea.gavana@gmail.com> wrote:

Are you using the SVN version of AUI? Can you see where the crash happens?

2009/10/11 Dj Gilcrease:

Are you using the SVN version of AUI? Can you see where the crash happens?

No just the version that comes with wx2.8.10

Should I Download the SVN version (from where) and test against that?

Yes: it is very likely that the crash will still be there, but at
least we will work with the latest version of AUI.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On Sun, Oct 11, 2009 at 10:03 AM, Andrea Gavana <andrea.gavana@gmail.com> wrote:

Oh I should mention that the issues happens with both wx.lib.agw.aui
and wx.aui on py2.5 wx2.8.1 to py2.6 and wx2.8.10

where is the svn for agw? it isnt @
http://svn.wxwidgets.org/svn/wx/wxPython/trunk/wx/lib/ and your
website seems to be down or very very slow

found it @ http://svn.wxwidgets.org/svn/wx/wxPython/3rdParty/AGW/

···

On Sun, Oct 11, 2009 at 10:17 AM, Dj Gilcrease <digitalxero@gmail.com> wrote:

where is the svn for agw?

For your svn client:

http://svn.wxwidgets.org/svn/wx/wxPython/3rdParty/AGW/

To browse on the web:

http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/AGW/

···

On Oct 11, 11:17 am, Dj Gilcrease <digitalx...@gmail.com> wrote:

where is the svn for agw? it isnt @http://svn.wxwidgets.org/svn/wx/wxPython/trunk/wx/lib/and your
website seems to be down or very very slow

Ok after some testing it is crashing in AuiManager.DoFrameLayout
inside the for loop, specifically on part.rect =
part.sizer_item.GetRect()

I am assuming it is the wx.media.MediaCtrl which is in the toolbars
sizer that is crashing when the wxSizerItem calls GetRect since if I
remove the MediaCtrl I get no crash

Hi,

2009/10/11 Dj Gilcrease:

Ok after some testing it is crashing in AuiManager.DoFrameLayout
inside the for loop, specifically on part.rect =
part.sizer_item.GetRect()

I am assuming it is the wx.media.MediaCtrl which is in the toolbars
sizer that is crashing when the wxSizerItem calls GetRect since if I
remove the MediaCtrl I get no crash

Then I assume it is some quirk of MediaCtrl. There isn't much I can do
about it, I don't use GTK and I have never used MediaCtrl before. One
thing I can suggest is to put your self._mgr.Update() inside a
wx.CallAfter or wx.CallLater. I'll see if I get some time to fire up
my GTK VM in the near future, assuming it is a bug in wx.aui or
wx.lib.agw.aui and not in MediaCtrl.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

Ok I have been playing around with this and narrowed it down to the
call to part.sizer_item.GetSize() (which GetRect() makes)

I was able to hack a fix http://dpaste.com/hold/105855/

Why GetMinSizeWithBorder() does not cause a segfault and GetSize()
does I have no clue. But this issues is in the realm of a wxPython
error not a agw error. Guess I wait for Robin to get a chance to look
at my example and see if he gets the same issues on Ubuntu :slight_smile:

Ok I have been playing around with this and narrowed it down to the
call to part.sizer_item.GetSize() (which GetRect() makes)

I was able to hack a fix http://dpaste.com/hold/105855/

Why GetMinSizeWithBorder() does not cause a segfault and GetSize()
does I have no clue.

GetSize has to go to the GUI object to get its info, GetMinSize[WithBorder] doesn't, it just looks at attributes of the wx.Window instance. So if the GUI object has been destroyed or not fully created or something then segfaults and other chaos can be released.

But this issues is in the realm of a wxPython
error not a agw error. Guess I wait for Robin to get a chance to look
at my example and see if he gets the same issues on Ubuntu :slight_smile:

Do you see something like this?

The program 'python' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
   (Details: serial 38 error_code 3 request_code 2 minor_code 0)

My guess is that it is happening in the reparenting of the aui pane, (and its children) and that it is trying to do either something that gstreamer doesn't like or doesn't support, leaving the new gstreamer widget (the one (re)created on the new parent) in an invalid state.

···

On 10/11/09 12:54 PM, Dj Gilcrease wrote:

--
Robin Dunn
Software Craftsman

Hi All,

2009/10/12 Robin Dunn:

Ok I have been playing around with this and narrowed it down to the
call to part.sizer_item.GetSize() (which GetRect() makes)

I was able to hack a fix http://dpaste.com/hold/105855/

Why GetMinSizeWithBorder() does not cause a segfault and GetSize()
does I have no clue.

GetSize has to go to the GUI object to get its info,
GetMinSize[WithBorder] doesn't, it just looks at attributes of the
wx.Window instance. So if the GUI object has been destroyed or not
fully created or something then segfaults and other chaos can be released.

But this issues is in the realm of a wxPython
error not a agw error. Guess I wait for Robin to get a chance to look
at my example and see if he gets the same issues on Ubuntu :slight_smile:

Do you see something like this?

The program 'python' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 38 error_code 3 request_code 2 minor_code 0)

My guess is that it is happening in the reparenting of the aui pane,
(and its children) and that it is trying to do either something that
gstreamer doesn't like or doesn't support, leaving the new gstreamer
widget (the one (re)created on the new parent) in an invalid state.

Uhm... what should I do with AUI then? Should I put a temporary check
for GTK an MediaCtrl like this (pseudo code):

if wx.Platform == "__WXGTK__" and window == MediaCtrl:
    GetMinSizeWithBorder()
else:
    GetMinSize()

Or there is a better solution for this problem?

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/

···

On 10/11/09 12:54 PM, Dj Gilcrease wrote:

Nope this is what I see

digitalxero@digitalxero-desktop:~/Desktop/test/aui creash$ python main.py
Segmentation fault

···

On Mon, Oct 12, 2009 at 1:20 PM, Robin Dunn <robin@alldunn.com> wrote:

Do you see something like this?

The program 'python' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 38 error_code 3 request_code 2 minor_code 0)

I don't know, it's all a guess for me at this point.

···

On 10/12/09 1:10 PM, Andrea Gavana wrote:

Uhm... what should I do with AUI then? Should I put a temporary check
for GTK an MediaCtrl like this (pseudo code):

if wx.Platform == "__WXGTK__" and window == MediaCtrl:
     GetMinSizeWithBorder()
else:
     GetMinSize()

Or there is a better solution for this problem?

--
Robin Dunn
Software Craftsman