[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] More DirectX related problems



Hi Zack,

I'm not sure myself the DirectX problem is related to the py2app/py2exe crashes. It's just that after running the surfarray units tests several times DirectX became corrupted. I suspect that has to do more with the nature of the unit tests, which makes repeated pygame.init()/quit() calls, than with _numpysurfarray.py. As for your segfaults, it could just be that the memory is corrupted by something else in Pygame, and that the bufferproxy object is the place in memory where the corruption just happened to take place. These sorts of things are very sensitive to the execution environment. It is not surprising that a Python program crashes when wrapped by py2app/py2exe but not when run from the console. In the latter case the invalid memory accesses don't stray outside the valid data areas. So that I am sure, the simple example given in the original post does cause the segfault?

Lenard


Zack Schilling wrote:

My crashes are on both Windows and Mac OS X, actually. Segfaults on both, I've isolated them to the surfarray module's get buffer function (or some other function it calls). I've run a series of tests and I think I can confirm it's not a platform-specific or Numpy issue. I don't know how it relates to this flurry of posts but that's what's happening. : )

-Zack

On Feb 3, 2009, at 7:45 PM, René Dudfield wrote:

ah, good point.

I think that is absolutely a problem...

I'm getting crashes on ubuntu with the sndarray tests... also with
regard to the person getting crashes on macosx with his app that uses
surfarray.

So definitely something fishy going on there.


On Wed, Feb 4, 2009 at 11:40 AM, Lenard Lindstrom <len-l@xxxxxxxxx> wrote:
Yes, I will do that. And this first showed up only recently, once before. It was after I added repeated pygame.init()/quit() calls to surfarray_test.py.
I suspect there is a connection.

Lenard

René Dudfield wrote:

hi,

I'd recommend setting up an environment variable to make windib the
default for you whilst you debug this issue.

My guess is that memory is getting overwritten somewhere causing the
crash.

cu,

On Wed, Feb 4, 2009 at 11:20 AM, Lenard Lindstrom <len-l@xxxxxxxxx> wrote:


Yes, I agree it's likely buggy code. But are the problems in SDL or
Pygame?
Possibly both. I am guessing that any DirectX related SDL bugs are a
write-off. The developers have no intentions of fixing them. Of course we should continue cleaning up Pygame. The init function looks problematic.
Let's hope that helps.

Lenard


René Dudfield wrote:


hey,

sure, windows sometimes corrupts itself.  Nothing new there.
Especially if the code you are working on passes in incorrect values,
and is overwriting memory it shouldn't.

It is easy to crash many machines with a few well crafted opengl,
directx (or other video API) calls.


If using non-buggy code, that doesn't do buffer overwrites and such I
think you wouldn't have as many problems with directx.



cheers,



On Wed, Feb 4, 2009 at 10:34 AM, Lenard Lindstrom <len-l@xxxxxxxxx>
wrote:



I just had personal confirmation that SDL, maybe with the help of
Pygame,
does have DirectX issues. After repeated runs of surfarray_test.py and
related programs my antiquated system... reached the point that a
simple
pygame.init() call would segfault.



--
Lenard Lindstrom
<len-l@xxxxxxxxx>