Source: pysdl2 Version: 0.9.9+dfsg1-6 Severity: serious Tags: fixed-upstream Justification: https://release.debian.org/testing/rc_policy.txt 6a X-Debbugs-CC: debian...@lists.debian.org User: debian...@lists.debian.org Usertags: needs-update
pysdl2's autopkgtest is failing since I uploaded libsdl2 version 2.28.0 to unstable. This appears to be a test issue, rather than a regression in libsdl2. An example of one of the failures: 70s self = <sdl2.test.render_test.TestSDLRender object at 0x7ffa7d1c1810> 70s 70s def test_SDL_CreateDestroyRenderer(self): 70s failed = 0 70s rcount = render.SDL_GetNumRenderDrivers() 70s for i in range(rcount): 70s window = video.SDL_CreateWindow(b"Test", 10, 10, 10, 10, 70s video.SDL_WINDOW_SHOWN) 70s assert isinstance(window.contents, video.SDL_Window) 70s renderer = render.SDL_CreateRenderer(window, i, self._RENDERFLAGS) 70s if not (renderer and renderer.contents): 70s failed += 1 70s video.SDL_DestroyWindow(window) 70s continue 70s assert isinstance(renderer.contents, render.SDL_Renderer) 70s render.SDL_DestroyRenderer(renderer) 70s 70s # TODO: using -1 as index for the call below leads to random 70s # access violations on Win32 70s renderer = render.SDL_CreateRenderer(window, i, 70s render.SDL_RENDERER_SOFTWARE) 70s > assert isinstance(renderer.contents, render.SDL_Renderer) 70s E ValueError: NULL pointer access If I hack in some extra debug, it seems that the SDL error message is "Surface already associated with window", which is related to: - https://github.com/pygame-community/pygame-ce/issues/2190 - https://github.com/libsdl-org/SDL/issues/7793 - https://github.com/libsdl-org/SDL/pull/7795 Briefly, SDL upstream considers it to be a programming error to attempt to create a Renderer for a window that already has a window surface, and some video drivers imply creation of a window surface. SDL 2.28.0 is better at detecting and diagnosing this situation than previous releases. pysdl2/experimental seems to have fixed the test, so I'm going to upload that to unstable if successful. smcv