#229 Creating ~8000 VBOs crashes python with PyOpenGL-accelerate

closed-fixed
GL (74)
5
2010-04-04
2010-04-02
Anonymous
No

Allocating ~8000 VBOs causes python to exit with the message "Fatal Python error: deallocating None" when PyOpenGL-accelerate is installed. It's easy to hit this limit with rapidly changing content, e.g. incoming experimental data. Uninstalling PyOpenGL-accelerate avoids this crash, and the code seems to work fine in that case. This is a reasonable workaround for the moment, but it would be nice to be able to use PyOpenGL-accelerate in the long term.

System: Ubuntu 9.10, AMD_64, PyOpenGL 3.0.1b1, Intel X3100 graphics

Here's a minimal reproduction case:

from OpenGL.arrays import vbo
import numpy as np

data = np.arange(1000).astype(np.float32)
for i in range(1000000):
new_vbo = vbo.VBO(data)
# optional: new_vbo.delete

Discussion

  • Thanks for the bug report, the test code was perfect for finding the bug. The code had assumed that setting a data-pointer to None meant that it would be a NULL pointer, in fact it merely points the pointer at Py_NONE. bzr head of OpenGL_accelerate has the fix and it will be released with the next PyOpenGL release.

     
    • status: open --> closed-fixed