Describe the bug
I'm using Python Arcade 3.0.0.dev25 and Pyglet 2.0.0.9. Randomly (usually when I pause a lot when debugging, but also when I've been running the game for a while) I get the following exception thrown:
Assertion 'q->front' failed at pulsecore/queue.c:81, function pa_queue_push(). Aborting.
The bug is clearly in pulse audio. It was listed as a "closed issue": mackron/miniaudio#235
And fixed here:
mackron/miniaudio@50c9081
System Information:
pyglet.version: 2.0.9
pyglet.compat_platform: linux
pyglet.__file__: /home/david/.virtualenvs/venv_arcade/lib/python3.10/site-packages/pyglet/__init__.py
pyglet.options['audio'] = ('xaudio2', 'directsound', 'openal', 'pulse', 'silent')
pyglet.options['debug_font'] = False
pyglet.options['debug_gl'] = True
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_gl_trace_args'] = False
pyglet.options['debug_gl_shaders'] = False
pyglet.options['debug_graphics_batch'] = False
pyglet.options['debug_lib'] = False
pyglet.options['debug_media'] = False
pyglet.options['debug_texture'] = False
pyglet.options['debug_trace'] = False
pyglet.options['debug_trace_args'] = False
pyglet.options['debug_trace_depth'] = 1
pyglet.options['debug_trace_flush'] = True
pyglet.options['debug_win32'] = False
pyglet.options['debug_input'] = False
pyglet.options['debug_x11'] = False
pyglet.options['shadow_window'] = True
pyglet.options['vsync'] = None
pyglet.options['xsync'] = True
pyglet.options['xlib_fullscreen_override_redirect'] = False
pyglet.options['search_local_libs'] = True
pyglet.options['win32_gdi_font'] = False
pyglet.options['headless'] = False
pyglet.options['headless_device'] = 0
pyglet.options['win32_disable_shaping'] = False
pyglet.options['dw_legacy_naming'] = False
pyglet.options['win32_disable_xinput'] = False
pyglet.options['com_mta'] = False
pyglet.options['osx_alt_loop'] = False
pyglet.window
------------------------------------------------------------------------------
display: <pyglet.canvas.xlib.XlibDisplay object at 0x7f8a319e2d10>
screens[0]: XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at 0x7f8a319e2d10>, x=0, y=0, width=1920, height=1080, xinerama=False)
config['double_buffer'] = 1
config['stereo'] = 0
config['buffer_size'] = 24
config['aux_buffers'] = 0
config['sample_buffers'] = 0
config['samples'] = 0
config['red_size'] = 8
config['green_size'] = 8
config['blue_size'] = 8
config['alpha_size'] = 0
config['depth_size'] = 24
config['stencil_size'] = 0
config['accum_red_size'] = 0
config['accum_green_size'] = 0
config['accum_blue_size'] = 0
config['accum_alpha_size'] = 0
config['major_version'] = 3
config['minor_version'] = 3
config['forward_compatible'] = None
config['opengl_api'] = 'gl'
config['debug'] = None
context: XlibContext(id=140231516124640, share=XlibContext(id=140231514667616, share=None))
window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): (4, 6)
gl_info.get_vendor(): Intel
gl_info.get_renderer(): Mesa Intel(R) UHD Graphics 630 (CFL GT2)
pyglet.gl.glx_info
------------------------------------------------------------------------------
context.is_direct(): 1
glx_info.get_server_vendor(): SGI
glx_info.get_server_version(): 1.4
glx_info.get_server_extensions():
GLX_ARB_create_context
GLX_ARB_create_context_no_error
GLX_ARB_create_context_profile
GLX_ARB_create_context_robustness
GLX_ARB_fbconfig_float
GLX_ARB_framebuffer_sRGB
GLX_ARB_multisample
GLX_EXT_create_context_es_profile
GLX_EXT_create_context_es2_profile
GLX_EXT_fbconfig_packed_float
GLX_EXT_framebuffer_sRGB
GLX_EXT_import_context
GLX_EXT_libglvnd
GLX_EXT_no_config_context
GLX_EXT_texture_from_pixmap
GLX_EXT_visual_info
GLX_EXT_visual_rating
GLX_MESA_copy_sub_buffer
GLX_OML_swap_method
GLX_SGI_make_current_read
GLX_SGI_swap_control
GLX_SGIS_multisample
GLX_SGIX_fbconfig
GLX_SGIX_pbuffer
GLX_SGIX_visual_select_group
GLX_INTEL_swap_event
glx_info.get_client_vendor(): Mesa Project and SGI
glx_info.get_client_version(): 1.4
glx_info.get_client_extensions():
GLX_ARB_context_flush_control
GLX_ARB_create_context
GLX_ARB_create_context_no_error
GLX_ARB_create_context_profile
GLX_ARB_create_context_robustness
GLX_ARB_fbconfig_float
GLX_ARB_framebuffer_sRGB
GLX_ARB_get_proc_address
GLX_ARB_multisample
GLX_EXT_buffer_age
GLX_EXT_create_context_es2_profile
GLX_EXT_create_context_es_profile
GLX_EXT_fbconfig_packed_float
GLX_EXT_framebuffer_sRGB
GLX_EXT_import_context
GLX_EXT_no_config_context
GLX_EXT_swap_control
GLX_EXT_swap_control_tear
GLX_EXT_texture_from_pixmap
GLX_EXT_visual_info
GLX_EXT_visual_rating
GLX_ATI_pixel_format_float
GLX_INTEL_swap_event
GLX_MESA_copy_sub_buffer
GLX_MESA_multithread_makecurrent
GLX_MESA_query_renderer
GLX_MESA_swap_control
GLX_NV_float_buffer
GLX_OML_swap_method
GLX_OML_sync_control
GLX_SGIS_multisample
GLX_SGIX_fbconfig
GLX_SGIX_pbuffer
GLX_SGIX_visual_select_group
GLX_SGI_make_current_read
GLX_SGI_swap_control
GLX_SGI_video_sync
glx_info.get_extensions():
GLX_ARB_create_context
GLX_ARB_create_context_no_error
GLX_ARB_create_context_profile
GLX_ARB_create_context_robustness
GLX_ARB_fbconfig_float
GLX_ARB_framebuffer_sRGB
GLX_ARB_get_proc_address
GLX_ARB_multisample
GLX_EXT_buffer_age
GLX_EXT_create_context_es2_profile
GLX_EXT_create_context_es_profile
GLX_EXT_fbconfig_packed_float
GLX_EXT_framebuffer_sRGB
GLX_EXT_import_context
GLX_EXT_no_config_context
GLX_EXT_swap_control
GLX_EXT_swap_control_tear
GLX_EXT_texture_from_pixmap
GLX_EXT_visual_info
GLX_EXT_visual_rating
GLX_INTEL_swap_event
GLX_MESA_copy_sub_buffer
GLX_MESA_query_renderer
GLX_MESA_swap_control
GLX_OML_swap_method
GLX_OML_sync_control
GLX_SGIS_multisample
GLX_SGIX_fbconfig
GLX_SGIX_pbuffer
GLX_SGIX_visual_select_group
GLX_SGI_make_current_read
GLX_SGI_swap_control
GLX_SGI_video_sync
pyglet.media
------------------------------------------------------------------------------
audio driver: <pyglet.media.drivers.pulse.adaptation.PulseAudioDriver object at 0x7f8a319e3eb0>
pyglet.media.ffmpeg
------------------------------------------------------------------------------
FFmpeg version: 4.2.7-0ubuntu0.1
pyglet.media.drivers.openal
------------------------------------------------------------------------------
OpenAL not available.
pyglet.input.wintab
------------------------------------------------------------------------------
WinTab not available.
How To Reproduce
This is the code I've written to start the sound most of the time. When a sprite triggers an action (i.e. starts walking) if the player sprite is close enough, the sound turns on. This code snippet is typical of when I load or turn on sound. Typically there are two sounds playing when the exception happens.
def start(self, player_character: arcade.Sprite, source_sprite: arcade.Sprite, eos=None):
self.player_character = player_character
self.sound_source = source_sprite
self.eos = eos
self.sound = arcade.Sound(self.file_name, streaming=False)
if self.min_range <= 0: # Start playing right away
self.media_player = self.sound.play(volume=self.max_volume, loop=self.loop)
# Todo: Add EOS logic
Describe the bug
I'm using Python Arcade 3.0.0.dev25 and Pyglet 2.0.0.9. Randomly (usually when I pause a lot when debugging, but also when I've been running the game for a while) I get the following exception thrown:
Assertion 'q->front' failed at pulsecore/queue.c:81, function pa_queue_push(). Aborting.The bug is clearly in pulse audio. It was listed as a "closed issue": mackron/miniaudio#235
And fixed here:
mackron/miniaudio@50c9081
System Information:
How To Reproduce
This is the code I've written to start the sound most of the time. When a sprite triggers an action (i.e. starts walking) if the player sprite is close enough, the sound turns on. This code snippet is typical of when I load or turn on sound. Typically there are two sounds playing when the exception happens.