OpenAL Adaptation/MediaThreads exceptions and errors

Hello!
I don't know is that a bug or not, but anyway there is an issue .
There are three pyglet.media.Player classes in my app: the first one plays common sound track and the other two should play shooting sounds when the "LCTRL" or "RCTRL" is pressed.
I load these sounds with the code below:
pyglet.resource.path = [os.path.join(os.path.dirname(__file__), "../resources")]
pyglet.resource.reindex()

plane_sound = pyglet.media.StaticSource(pyglet.resource.media("plane.wav"))
shooting_sound = pyglet.media.StaticSource(pyglet.resource.media("gun.wav")) # I also tried to make a list (one sound per player)

I initialized the main player near the main window and execute play method:
# create plane sound
plane_noise = pyglet.media.Player()
plane_noise.loop = True
plane_noise.volume = consts.PLANE_NOISE_VOL
plane_noise.queue(resources.plane_sound)
plane_noise.play()

Within the BasePlane class I initialize a player instance as well:
class BasePlane(pyglet.sprite.Sprite):
    order_group = pyglet.graphics.Group(1)

    def __init__(self, is_flipped: bool, idx: int, *args, **kwargs):
        ...
        self.shooting_noise = pyglet.media.Player()
        self.shooting_noise.loop = True
        self.shooting_noise.volume = consts.SHOOT_NOISE_VOL
        self.shooting_noise.queue(resources.shooting_sound)

    # here how I start the player
    def _play_shoot_sound(self):
        if self.is_shooting:
            self.shooting_noise.play()
        else:
            self.shooting_noise.pause()

    def shoot(self):
        self._play_shoot_sound()
        self._spawn_bullet()

    # I call this method every frame
    def on_update(self, dt):
        self.move_forward(dt)
        self.shoot()

But if two Planes started to shoot the same time, then, after a few frames (less than a second, maybe - two) I started to get lots of exceptions. The main player (named plane_noise) stop playing and the application can even crash.
Here are some examples of the traceback I'm getting:
Exception in thread Thread-1 (_thread_run):
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 41, in _thread_run
    self.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 120, in run
    filled = player.refill_buffer()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 236, in refill_buffer
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._update_play_cursor()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 195, in _update_play_cursor
    assert self._check_cursors()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    assert self._buffer_cursor <= self._play_cursor
AssertionError

Exception in thread Thread-1 (_thread_run):
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 41, in _thread_run
    self.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 120, in run
    filled = player.refill_buffer()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 236, in refill_buffer
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._update_play_cursor()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 188, in _update_play_cursor
    self._handle_processed_buffers()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 200, in _handle_processed_buffers
    processed = self.alsource.unqueue_buffers()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/interface.py", line 250, in unqueue_buffers
    self._check_error('Failed to unqueue buffers from source.')
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/interface.py", line 37, in _check_error
    raise OpenALException(message=message,
pyglet.media.drivers.openal.interface.OpenALException: OpenAL Exception [40963: b'Invalid Value']: Failed to unqueue buffers from source.

Note, that this time the application has crashed with exit code(1)
Traceback (most recent call last):
  File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 57, in <module>
Exception in thread Thread-1 (_thread_run)    pyglet.app.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/__init__.py", line 76, in run
:
    event_loop.run(interval)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 151, in run
    timeout = self.idle()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 212, in idle
    self.clock.call_scheduled_functions(dt)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/clock.py", line 227, in call_scheduled_functions
Traceback (most recent call last):
    item.func(now - item.last_ts, *item.args, **item.kwargs)  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner

  File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 52, in update
    obj.on_update(dt)
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 96, in on_update
    super().on_update(dt)    self.run()
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 55, in on_update

  File "/usr/local/lib/python3.10/threading.py", line 953, in run
    self.shoot()
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 50, in shoot
    self._target(*self._args, **self._kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 41, in _thread_run
    self._play_shoot_sound()
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 29, in _play_shoot_sound
    self.run()    self.shooting_noise.play()

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 120, in run
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 216, in play
    filled = player.refill_buffer()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 238, in refill_buffer
    self._set_playing(True)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 168, in _set_playing
    self._refill(write_size)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 257, in _refill
    self._audio_player.prefill_audio()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 365, in prefill_audio
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._queue_audio_data(audio_data, length)
    self._update_play_cursor()  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 289, in _queue_audio_data

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 195, in _update_play_cursor
    self._update_write_cursor(audio_data, length)
    assert self._check_cursors()  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 296, in _update_write_cursor

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    assert self._check_cursors()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    assert self._buffer_cursor <= self._play_cursor
AssertionError    assert self._buffer_cursor <= self._play_cursor

AssertionError
AL lib: (EE) alc_cleanup: 1 device not closed

Process finished with exit code 1

Am I doing something wrong or what's the problem?

I am not sure as we haven't had anyone report this issue before. Is it possible your sounds are getting garbage collected? Make sure you are storing them in a list somewhere. Can you provide information through python -m pyglet.info
You can make them static sources through the resource loader: plane_sound = pyglet.resource.media("plane.wav", streaming=False) although your method should work just fine unless there is an issue.

@caffeinepills

Is it possible your sounds are getting garbage collected? Make sure you are storing them in a list somewhere

I have all the resources stored in the resources.py file which is imported in the main.py
resources.py
from code.utils import load_image_pair
import pyglet
import os

RESOURCES_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../resources"))
pyglet.resource.path = [RESOURCES_PATH]
pyglet.resource.reindex()

plane_sound = pyglet.media.StaticSource(pyglet.resource.media("plane.wav"))
shooting_sound = pyglet.media.StaticSource(pyglet.resource.media("gun.wav"))

bullet_images = load_image_pair("bullet.png")
plane_images = [
    load_image_pair("airplane1.png"),
    load_image_pair("airplane2.png")
]

I tried to set the flag streaming to False and to save the pointer on the audio inside the instance of the BasePlane class, but it had no effect
main.py
from code import plane, consts, resources
import pyglet

...

Can you provide information through python -m pyglet.info

Platform
------------------------------------------------------------------------------
platform:  Linux-5.10.0-22-amd64-x86_64-with-glibc2.31
release:   5.10.0-22-amd64
machine:   x86_64

Python
------------------------------------------------------------------------------
implementation: CPython
sys.version: 3.10.10 (main, Apr 30 2023, 19:02:05) [GCC 10.2.1 20210110]
sys.maxint:<PHONE_NUMBER>854775807
os.getcwd(): /home/kitscribe/projects/airplane_multiplayer

pyglet
------------------------------------------------------------------------------
pyglet.version: 2.0.7
pyglet.compat_platform: linux
pyglet.__file__: /home/kitscribe/projects/airplane_multiplayer/env/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 0x7f20e3f0db70>
screens[0]: XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at 0x7f20e3f0db70>, 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=139779243548128, share=XlibContext(id=139779239897376, share=None))

window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): (4, 6)
gl_info.get_vendor(): AMD
gl_info.get_renderer(): AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.40.0, 5.10.0-22-amd64, LLVM 11.0.1)

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_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_multithread_makecurrent
   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
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_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.openal.adaptation.OpenALDriver object at 0x7f20e3f0ec20>

pyglet.media.ffmpeg
------------------------------------------------------------------------------
FFmpeg version: 4.3.6-0+deb11u1

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL 'libopenal.so.1', handle 55e0b4c46fd0 at 0x7f20e3f98820>
Version: 1.1
Extensions:
   ALC_ENUMERATE_ALL_EXT
   ALC_ENUMERATION_EXT
   ALC_EXT_CAPTURE
   ALC_EXT_DEDICATED
   ALC_EXT_disconnect
   ALC_EXT_EFX
   ALC_EXT_thread_local_context
   ALC_SOFT_device_clock
   ALC_SOFT_HRTF
   ALC_SOFT_loopback
   ALC_SOFT_output_limiter
   ALC_SOFT_pause_device

pyglet.input.wintab
------------------------------------------------------------------------------
WinTab not available.

Here are few of my traceback with the description (including my debug printing)

The game stopped to play plane_noise sound, but continued executing shootin_noise (no crash)

Exception in thread Thread-1 (_thread_run):
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 41, in _thread_run
    self.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 120, in run
    filled = player.refill_buffer()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 236, in refill_buffer
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._update_play_cursor()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 195, in _update_play_cursor
    assert self._check_cursors()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    assert self._buffer_cursor <= self._play_cursor
AssertionError
Player 1 hit enemy! Health left: 95.33970071803239
Player 1 hit enemy! Health left: 91.71045208151727
Player 1 hit enemy! Health left: 87.72954161739109
Player 1 hit enemy! Health left: 83.4485877098196
Player 1 hit enemy! Health left: 79.09632339036015
Player 1 hit enemy! Health left: 73.81404721727505
Player 0 hit enemy! Health left: 95.9748687495657
Player 0 hit enemy! Health left: 92.16158577694715
Player 1 hit enemy! Health left: 68.45389870355478
Player 1 hit enemy! Health left: 63.789797304250996
Player 1 hit enemy! Health left: 59.28246193533576
Player 1 hit enemy! Health left: 55.44969235058451
Player 0 hit enemy! Health left: 88.16906351929599
Player 0 hit enemy! Health left: 83.20554134165793
Player 0 hit enemy! Health left: 79.39283846757962
Player 0 hit enemy! Health left: 74.11918278272931
Player 0 hit enemy! Health left: 70.06429006181627
Player 0 hit enemy! Health left: 65.00652825394695
Player 0 hit enemy! Health left: 61.192051561339184
AL lib: (EE) alc_cleanup: 1 device not closed

Process finished with exit code 0

The game crashed

Traceback (most recent call last):
  File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 57, in <module>
    pyglet.app.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/__init__.py", line 76, in run
Exception in thread Thread-1 (_thread_run):
    event_loop.run(interval)Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 151, in run
    timeout = self.idle()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 212, in idle
    self.run()
    self.clock.call_scheduled_functions(dt)  File "/usr/local/lib/python3.10/threading.py", line 953, in run

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/clock.py", line 227, in call_scheduled_functions
    self._target(*self._args, **self._kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 41, in _thread_run
    item.func(now - item.last_ts, *item.args, **item.kwargs)
      File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 52, in update
self.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/mediathreads.py", line 120, in run
    obj.on_update(dt)    filled = player.refill_buffer()

  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 96, in on_update
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 238, in refill_buffer
    super().on_update(dt)    self._refill(write_size)

  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 55, in on_update
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 257, in _refill
    self.shoot()    self._queue_audio_data(audio_data, length)
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 50, in shoot

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 289, in _queue_audio_data
    self._play_shoot_sound()    self._update_write_cursor(audio_data, length)
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 29, in _play_shoot_sound

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 296, in _update_write_cursor
    self.shooting_noise.play()    assert self._check_cursors()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 216, in play

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    self._set_playing(True)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 168, in _set_playing
    assert self._buffer_cursor <= self._play_cursor
AssertionError    self._audio_player.prefill_audio()

  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 365, in prefill_audio
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._update_play_cursor()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 195, in _update_play_cursor
    assert self._check_cursors()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 330, in _check_cursors
    assert self._buffer_cursor <= self._play_cursor
AssertionError
AL lib: (EE) alc_cleanup: 1 device not closed

Process finished with exit code 1

Game crashed again, but with the different mistake

Traceback (most recent call last):
  File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 57, in <module>
    pyglet.app.run()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/__init__.py", line 76, in run
    event_loop.run(interval)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 151, in run
    timeout = self.idle()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/app/base.py", line 212, in idle
    self.clock.call_scheduled_functions(dt)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/clock.py", line 227, in call_scheduled_functions
    item.func(now - item.last_ts, *item.args, **item.kwargs)
  File "/home/kitscribe/projects/airplane_multiplayer/main.py", line 52, in update
    obj.on_update(dt)
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 96, in on_update
    super().on_update(dt)
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 55, in on_update
    self.shoot()
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 50, in shoot
    self._play_shoot_sound()
  File "/home/kitscribe/projects/airplane_multiplayer/code/plane.py", line 29, in _play_shoot_sound
    self.shooting_noise.play()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 216, in play
    self._set_playing(True)
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/player.py", line 168, in _set_playing
    self._audio_player.prefill_audio()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 365, in prefill_audio
    write_size = self._get_write_size()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 226, in _get_write_size
    self._update_play_cursor()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 188, in _update_play_cursor
    self._handle_processed_buffers()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/adaptation.py", line 200, in _handle_processed_buffers
    processed = self.alsource.unqueue_buffers()
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/interface.py", line 250, in unqueue_buffers
    self._check_error('Failed to unqueue buffers from source.')
  File "/home/kitscribe/projects/airplane_multiplayer/env/lib/python3.10/site-packages/pyglet/media/drivers/openal/interface.py", line 37, in _check_error
    raise OpenALException(message=message,
pyglet.media.drivers.openal.interface.OpenALException: OpenAL Exception [40963: b'Invalid Value']: Failed to unqueue buffers from source.
AL lib: (EE) alc_cleanup: 1 device not closed

Process finished with exit code 1

I would try the latest version since the audio backend rework. If you still have issues, please open a new issue.


Update upgrade-to-Teams-execute-SkypeforBusinessHybridOnPrem.md

https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/5468
Fixed link.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@CarolynRowe PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Make with_md5_cols example more minimalistic

@souvik-databricks - FYI, take a look at this refactoring when you get a sec

LGTM @MrPowers


Regarding signed vs. unsigned integers there is no change here: keep using int mostly for compatibility with s2geometry.
I added a Geography::size_type alias and use it as much as possible elsewhere so that it is easier to change that later library-wise (or add a template parameter), if necessary.

I get your point @paleolimbot, let’s keep using int.

Codecov Report
Base: 14.36% // Head: 14.38% // Increases project coverage by +0.01% :tada:

Coverage data is based on head (9b3d782) compared to base (3e6c65b).
Patch coverage: 14.28% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage   14.36%   14.38%   +0.01%
==========================================
  Files          14       14
  Lines        1490     1488       -2
  Branches       29       29
==========================================
  Hits          214      214
+ Misses       1270     1268       -2
  Partials        6        6

Impacted Files
Coverage Δ

src/s2geography/accessors.cc
0.00% <0.00%> (ø)

src/s2geography/build.cc
0.00% <0.00%> (ø)

src/s2geography/build.h
0.00% <ø> (ø)

src/s2geography/constructor.h
37.26% <0.00%> (ø)

src/s2geography/linear-referencing.cc
0.00% <0.00%> (ø)

src/s2geography/wkt-writer.cc
0.00% <0.00%> (ø)

src/s2geography/geoarrow-imports.h
25.00% <16.66%> (ø)

src/s2geography/geography.cc
2.56% <20.00%> (-0.04%)
:arrow_down:

src/s2geography/wkt-reader.cc
40.88% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Thanks for humoring me on that one.

No worries!

Are you using a different formatter resulting in the commented-out bits?

I actually added them manually to silent the unused parameter warnings.
BTW, what do you think about adding a pre-commit configuration with clang-format for this repo? I'm asking since people like or don't like it for good reasons (I don't have a strong opinion on this).

I tend to leave .clang-format out of pre-commit...

That's fine by me!
Shall we merge?


Reset password

I can fix the reset password functionality.
please assign me these issue under GSSoC 2023

I'm a contributor for GSSoC '23, I want to work on this issue. Please assign me.

I have fixed this issue. @sourabhsikarwar Kindly review my Pull Request 😄


Fantasy land support

This library looks nice (I like Scala, so that may be the reason :grinning:). I recommend to take a look at fantasy-land and consider implementing support for it (if it is possible, I really don't understand it that well). monapt cound be then used with fantasy-land-compatible libraries like quite popular ramda.

Interesting, I've heard of fantasy-land before but not ramda.
I don't have much experience with either tool though.
Maybe someone else can weigh in on if it's useful/possible to implement a small subset on the fantasy-land spec.  If so, we could consider adding a fantasy-land wrapper API on top of the current monapt API.

👍 , this would be useful. For example, if I wanted to use Ramda’s sequence.

Other "Maybe/Option in JS" libraries that do provide fantasy-land compatibility;

https://github.com/fantasyland/fantasy-maybes
https://github.com/origamitower/folktale
https://github.com/gcanti/fp-ts

Dug into this a little more - here are the relevant specs I found:
• https://github.com/fantasyland/fantasy-land#monad
• https://github.com/fantasyland/fantasy-land#applicative
• https://github.com/fantasyland/fantasy-land#apply
• https://github.com/fantasyland/fantasy-land#functor

IIRC protected methods in TypeScript aren't actually hidden, so we might be able to support fantasy-land compatibility without changing the public API.

Also wanted to mention - 1.0 is nearly ready for release!  The code has been drastically simplified with more modern tooling, take a look here: https://github.com/jiaweihli/monapt/tree/1.0
Adding fantasy-land support would be right after, in 1.1.


Automatically check links in docs

Context
When we move or rename docs, it sometimes breaks links. Those are easy to miss. It'd be nice to have an automated way to check links.

I would like to work on this issue

@Shweta46 great! Do you have any ideas for how to check links in the docs?

first one looks promising, but looks like it might need some work to configure. does it work for checking relative paths within a repo? like we have a lot of links to other docs or files within the repo, but a link-checker that checks if links are proper URLs won't work

There's an option to specify the baseUrl, so I assume so:

baseUrl the base URL for relative links.

Options replacementPatterns and projectBaseUrl may also be helpful.

@anybodys implemented this #497


Execution failed for task ':assets_audio_player:compileDebugKotlin'.

I cant run app when I add assets_audio_player plugin.
I try to create new app and take same issue.
And also try to remove assets_audio_player and install again, but, still not work
Error Log on Debug Console

e: C:\src\flutter.pub-cache\hosted\pub.dartlang.org\assets_audio_player-2.0.14\android\src\main\kotlin\com\github\florent37\assets_audio_player\Player.kt: (542, 5): 'handleMessage' overrides nothing
e: C:\src\flutter.pub-cache\hosted\pub.dartlang.org\assets_audio_player-2.0.14\android\src\main\kotlin\com\github\florent37\assets_audio_player\Player.kt: (543, 29): Type mismatch: inferred type is Message? but Message was expected
e: C:\src\flutter.pub-cache\hosted\pub.dartlang.org\assets_audio_player-2.0.14\android\src\main\kotlin\com\github\florent37\assets_audio_player\notification\CustomMediaButtonReceiver.kt: (15, 35): Type mismatch: inferred type is String? but String was expected
e: C:\src\flutter.pub-cache\hosted\pub.dartlang.org\assets_audio_player-2.0.14\android\src\main\kotlin\com\github\florent37\assets_audio_player\notification\NotificationActionReceiver.kt: (12, 85): Type mismatch: inferred type is String? but String was expected
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':assets_audio_player:compileDebugKotlin'.

Compilation error. See log for more details

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BU?LD FAILED in 37s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

flutter doctor -v

[√] Flutter (Channel stable, 2.0.1, on Microsoft Windows [Version 10.0.19042.746], locale tr-TR)
• Flutter version 2.0.1 at C:\src\flutter
• Framework revision c5a4b4029c (8 days ago), 2021-03-04 09:47:48 -0800
• Engine revision 40441def69
• Dart version 2.12.0
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\Administrator\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: D:\Programs\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.1.0)
• Android Studio at D:\Programs\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] Connected device (1 available)
• Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
• No issues found!

@BilenAhmet
Without using the said plugin, can you try flutter clean or flutter pub cache repair and then flutter run to see if it works ?

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


What if jsr goes down? (how to mirror?)

This had been always a worrying fact about npm that if the service goes down / interrupted or blocked, there would be a disaster without backup plan.
Many of FOSS package repositories have a mirroring mechanism. Would JSR be open to provi a protocol for mirroring meta + data?

JSR is built with robustness in mind; even if the website and database encounter issues, code distribution remains unaffected thanks to direct delivery from storage buckets, ensuring reliability on par with GCP.
We're open to implementing a mirroring mechanism for additional redundancy of package sources. However, it's crucial to first establish a clear design. We welcome a detailed proposal outlining a potential implementation.

I'll move this into #110 (underlying work necessary to enable mirroring).


Can you add me please?

Would be great. Is German control possible? send you a PM

Yes, German should be supported (even though I didn't test it myself).
Did you receive an invitation? As I don't know where and how you've PMed me

Hi, so I finally installed the Kodi Plugin (i'm running 17.6) and connected to your server. Then i could discover the Kodi Device within the Alexa App. I choosed the echo devices to control. But nothing happens if i ask for play, stop, pause etc.

Yes, there is a plan for the future, I just need to find some free time to get it done.


use descriptions instead of inline comments

and other formatting
closes #1

encrypt data using AES via x86 extensions lint fails

IDA doesn't recognize the example function:

viv doesn't recognize code at this address.

0x00436fa0 is a good candidate, however its a library function from CryptoPP ?Rijndael_UncheckedSetKeyRev_AESNI@CryptoPP@@YAXPAII@Z

but we can't write a rule for this name, because these functions are stored in a vtable and not referenced directly, so can't specify an API feature.


Add option to disable Swagger UI

Customer would like to make swagger API docs less accessible to ordinary users.

Suggest with either disable by env var, or put auth in front.

@marrobi
Should it be set to off by default? If the default configuration aims to production environments, then it should be off by default in my opinion.

Hmm, quite possibly. As long as its clearly documented.
Maybe the sample env file has it enabled so local deployments have it enabled? Or could we show an error saying SWAGGER_ENABLED needs to be set to true to access Swagger?

Sounds good, I'll do both of them 👍


Test adding cells and non-cells during curation.

Depends on https://github.com/brainglobe/cellfinder-napari/pull/105

Codecov Report

Merging #106 (ad72383) into main (ad03d62) will increase coverage by 18.62%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##             main     #106       +/-   ##
===========================================
+ Coverage   51.69%   70.31%   +18.62%
===========================================
  Files          12       12
  Lines         532      566       +34
===========================================
+ Hits          275      398      +123
+ Misses        257      168       -89

Impacted Files
Coverage Δ

cellfinder_napari/tests/test_curation.py
100.00% <100.00%> (ø)

cellfinder_napari/detect/input_containers.py
98.85% <0.00%> (+18.61%)
:arrow_up:

cellfinder_napari/curation.py
64.54% <0.00%> (+20.45%)
:arrow_up:

cellfinder_napari/tests/test_detection.py
100.00% <0.00%> (+26.31%)
:arrow_up:

cellfinder_napari/detect/thread_worker.py
100.00% <0.00%> (+56.52%)
:arrow_up:

cellfinder_napari/sample_data.py
100.00% <0.00%> (+58.82%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ad03d62...ad72383. Read the comment docs.


remember me checkbox is fixes

I have fixes the remember me checkbox issue.
Closes #53

solve conflicts

@ahmadsohail404 I have resolved the conflict

it has conflicts


add_exclusion Sonarr

Successfully installed m2r2-0.3.1 pycliarr-1.0.16
This still doesn't work... Is add_exclusion simply not supported by Sonarr??

as i pointed out, it is in the api but i found others in the api not actuallu implemented.
also, please reopen tickets rather than creating new ones when it is about the same

Right. Vivien. I then misunderstood you


[PDI-17005] Issues with Carte Jobs API executeJob endpoint in Pentaho…

… REST API
@bantonio82 identified an error while trying to connect into a repository, via PDI.
That was because I added jaxws-rt in kettle-engine pom. But in compile scope, not in provided scope. Thus, we didn't have jaxws-rt on runtime.
Nevertheless, I created a KettleClientTransportException. This way, we don't need to have jaxws-rt in kettle-engine runtime.
@smmribeiro  Can you review this please, since you helped me on that? :)
@pentaho/tatooine @pentaho-lmartins @bantonio82

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine,core,plugins/pur/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine,core,plugins/pur/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  core/src/main/java/org/pentaho/di/core/exception/KettleClientTransportException.java
  engine/pom.xml
  engine/src/main/java/org/pentaho/di/www/ExecuteJobServlet.java
  engine/src/test/java/org/pentaho/di/www/ExecuteJobServletTest.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
:new: org.pentaho.di.core.exception.KettleClientTransportException

Coverage: 0% :exclamation:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change: -0.8% :small_red_triangle_down:
Complexity Change: -1% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Branch Change: -2% :small_red_triangle_down:
Complexity Change: -1.7% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.2% :small_red_triangle_down:
Complexity Change: -2.6% :small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Branch Change: -2.6% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.www.ExecuteJobServlet

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.gpload.GPLoadMeta

Branch Change: -0.9% :small_red_triangle_down:
Complexity Change: -0.8% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.repository.pur.PurRepositoryConnector

Instruction Change: -1.4% :small_red_triangle_down:
Line Change: -1.8% :small_red_triangle_down:

org.pentaho.di.ui.repository.pur.repositoryexplorer.model.UISecurityRole

Branch Change: -1.8% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.5% :small_red_triangle_down:

@graimundo I made some changes here.
Now we only use ClientTransportException at UnifiedRepositoryInvocationHandler.java.
Over there, if we notice a ClientTransportException, we will convert it into KettleAuthenticationException.
I couldn't simple used javax.xml.ws.WebServiceException (as I was thinking this morning), because we wanted to differentiate between an authentication error, due to bad credentials, and other errors like trying to connect to a BA server.

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/pom.xml
  engine/src/main/java/org/pentaho/di/repository/KettleAuthenticationException.java
  engine/src/main/java/org/pentaho/di/repository/KettleRepositoryNotFoundException.java
  engine/src/main/java/org/pentaho/di/www/ExecuteJobServlet.java
  engine/src/test/java/org/pentaho/di/www/ExecuteJobServletTest.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UnifiedRepositoryInvocationHandler.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change: -0.2% :small_red_triangle_down:

:new: org.pentaho.di.repository.KettleAuthenticationException

Complexity Coverage: 25% :exclamation:
Instruction Coverage: 18.8% :exclamation:
Line Coverage: 25% :exclamation:
Method Coverage: 25% :exclamation:

:new: org.pentaho.di.repository.KettleRepositoryNotFoundException

Complexity Coverage: 25% :exclamation:
Instruction Coverage: 25% :exclamation:
Line Coverage: 25% :exclamation:
Method Coverage: 25% :exclamation:

org.pentaho.di.trans.step.StepMeta

Branch Change: -0.6% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.4% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Complexity Change: -1.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.www.ExecuteJobServlet

Branch Change: -2.9% :small_red_triangle_down:
Complexity Change: -3.7% :small_red_triangle_down:

org.pentaho.di.trans.steps.googleanalytics.GaInputStepMeta

Branch Change: -1.9% :small_red_triangle_down:
Complexity Change: -1.1% :small_red_triangle_down:

org.pentaho.di.repository.pur.UnifiedRepositoryInvocationHandler

Branch Change: -16.7% :small_red_triangle_down:
Complexity Change: -18.2% :small_red_triangle_down:
Instruction Change: -10.4% :small_red_triangle_down:
Line Change: -9.5% :small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/pom.xml
  engine/src/main/java/org/pentaho/di/repository/KettleAuthenticationException.java
  engine/src/main/java/org/pentaho/di/repository/KettleRepositoryNotFoundException.java
  engine/src/main/java/org/pentaho/di/www/ExecuteJobServlet.java
  engine/src/test/java/org/pentaho/di/www/ExecuteJobServletTest.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UnifiedRepositoryInvocationHandler.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes.  It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/pom.xml
  engine/src/main/java/org/pentaho/di/repository/KettleAuthenticationException.java
  engine/src/main/java/org/pentaho/di/repository/KettleRepositoryNotFoundException.java
  engine/src/main/java/org/pentaho/di/www/ExecuteJobServlet.java
  engine/src/test/java/org/pentaho/di/www/ExecuteJobServletTest.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UnifiedRepositoryInvocationHandler.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes.  It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine,plugins/pur/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/pom.xml
  engine/src/main/java/org/pentaho/di/repository/KettleAuthenticationException.java
  engine/src/main/java/org/pentaho/di/repository/KettleRepositoryNotFoundException.java
  engine/src/main/java/org/pentaho/di/www/ExecuteJobServlet.java
  engine/src/test/java/org/pentaho/di/www/ExecuteJobServletTest.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/PurRepositoryConnector.java
  plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UnifiedRepositoryInvocationHandler.java
  plugins/pur/core/src/test/java/org/pentaho/di/repository/pur/UnifiedRepositoryInvocationHandlerTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes.


Synthetic classification dataset

Thanks a lot for your great work.
But there are some mistakes here:
FileNotFoundError: [Errno 2] No such file or directory: 'train/02691156.npz'

Traceback (most recent call last):
File "train.py", line 181, in
main(args)
File "train.py", line 88, in main
x_train = ShapeNetIlluminants(args.root, split='train', transform=tr_train)
File "/home/XXX/CIconv/CIConv-main/experiments/1_synthetic_classification/shapenet_illuminants.py", line 87, in init
imsar = np.load(os.path.join(split,c+'.npz'))['arr_0']
File "/home/XXX/anaconda3/envs/ciconv/lib/python3.7/site-packages/numpy/lib/npyio.py", line 417, in load
fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: 'train/02691156.npz'

Should be fixed - .npy files are now generated on the first run. Please let me know if you run into any other issues.


use the Accept-Language header to set the current language

This PR needs e2e tests.

Codecov Report

Merging #185 (68948a7) into main (f07b3ba) will increase coverage by 0.02%.
The diff coverage is 81.81%.

@@            Coverage Diff             @@
##             main     #185      +/-   ##
==========================================
+ Coverage   83.84%   83.87%   +0.02%
==========================================
  Files          26       28       +2
  Lines         260      279      +19
  Branches       53       59       +6
==========================================
+ Hits          218      234      +16
- Misses         42       45       +3

Impacted Files
Coverage Δ

src/pages/index.tsx
57.37% <33.33%> (-1.56%)
:arrow_down:

src/models/languages.ts
100.00% <100.00%> (ø)

src/stores/LanguageStore.tsx
100.00% <100.00%> (ø)

src/stores/ThemeStore.tsx
100.00% <100.00%> (ø)

src/utils/language-utils.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f07b3ba...68948a7. Read the comment docs.


Use cobertura for test coverage

Created profiles -Pcobertura" and -Pcobertura-forcereport.
-Pcobertura will instrument classes and fail a build if coverage expectations are not met. It will not generate a report.
-Pcovertura-forcereport will generate a report and disable build failing due to lack of coverage. It is useful for a developer, not for continuous integration and releases.
Set up Travis CI and rultor to use code coverage.
Fixes #29

@rultor merge

@rultor merge

@suseika OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@suseika Done! FYI, the full log is here (took me 1min)


add idle_timeout parameter

Description
Add idle_timeout parameter to LB
Features/Fixes/Patches/Changes list:
Please check the CHANGELOG.md
Checklists:

PR Owners Checklist:

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] Have you checked there aren't open Pull Requests of upstream or parallel code that will cause conflicts?
[ ] Have you updated the CHANGELOG.md?
[ ] Have you updated the README.md(s)?
[ ] OWNER: Does your submission pass?

[ ] Pre-commit (attach logs/print screen to this PR)
[ ] Checkov/terrascan (attach logs/print screen to this PR)
[ ] Terraform resources examples build/destroy successfully with Terraform 0.14.11 minimum?

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully run tests with your changes locally?
[ ] First PR? Have you deleted ## How to use this template... from the root .README.md?

PR Reviewers Checklists?

[ ] Are all your comments/changes resolved?
[ ] Are you happy with the OWNER checklists and additional information provided?
[ ] Does your review tests pass?

[ ] Terraform resources examples build/destroy successfully with Terraform 0.14.11 minimum?

@patrickmukumbu @ndegwajohn @hugoalmeida264 could you please add this?

@patrickmukumbu @ndegwajohn @hugoalmeida264 could you please add this?

Hi @art-stankov I'm working on this, should be released between today and monday.

@hugoalmeida264 hi, are you doing some additional testing before adding this or what's the status?

I'm closing our PR, that feature is going to be addressed on this PR https://github.com/boldlink/terraform-aws-ecs-service/pull/34


NuGet package for non mvx plugin

[ ] add nuspec
[ ] adjust existing nuspec based on this blog post from james m
[ ] use shared Assembly infos (like: https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Permissions)
[ ] update the nuget pack script
[ ] test the nuget package locally before upload Infos here
[ ] create upload script
[ ] create package on nuget
[ ] add to build process

Added some additional point to the list.

damn... where can I see the diff? :D

[ ] adjust existing nuspec (include pdb, xml)
[ ] update the nuget pack script
[ ] test the nuget package locally before upload
[ ] create upload script

Personal ToDo:

[ ] invite contributors to CI

@smstuebe is this open point still relevant 'use shared Assembly infos' ?

@smstuebe Create issue for

[ ]  use shared Assembly infos (like: https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Permissions)


Can you add weekdays schedule?

I want to repeat every day except weekend.
Regards,

Anyone?

A hack can be is setup 5 notifications with the time you want it for each day and then set the repeats to .Weekly. That should solve your issue.


[oas3] base64 vs byte

The spec makes numerous references to {format: base64} (here and here for example).  However this format is not defined in either the wright-00 JSON-schema spec, nor in the OAS3 defined data types.

@jwalton format is extensible and OpenAPI defines numerous extensions including base64, although per #1310 and #1544, base64 should be handled differently in the long run with newer versions of JSON Schema.
But as far as the JSON Schema spec goes, what OpenAPI is doing with formats is valid.

Oh, it's valid, it's just that the defined data types section defines {format: 'byte'} as "base64 encoded characters".  It seems weird to define our own special name for base64 and then not use it.  :P

As per @tsc meeting we are going make a decision between have a byte format or a base64 but not both.  Some historical spelunking will be done by @webron before making the call.

FWIW, my vote is for base64.  It much more clearly conveys the intent.

I also prefer base64

In OAS 3.1, this can now be handled properly from the JSON Schema perspective.  Specifically:
type: string
contentEncoding: base64

is a base64-endcode string (where base64 is per RFC 4648).  You can use any RFC 4648 or RFC 2045 encoding, so base64url or quoted-printable are also valid.
If you are encoding a specific media type, such as a PNG file:
type: string
contentEncoding: base64
contentMediaType: image/png

Note that the content* keywords are informational, and are not validated during JSON Schema validation.
For binary transfer, use
type: string
contentMediaType: application/octet-stream

or some other media type.

we should probably deprecate "format": "base64" and "format": "binary" in OAS 3.1 although I don't feel strongly about it.  Well... I have lots of strong feelings about format but that's a rant for another time.

For OAS 3.1.0, since we're now dropping the byte/base64 format in favor of contentEncoding, this is no longer a concern.
If there's going to be an OAS 3.0.4, then this should be clarified with a PR to the appropriate branch.

For OAS 3.1.0 this is resolved with #2200.
@OAI/tsc is there likely to be a 3.0.4 where we would fix the examples of base64 vs byte?  If not, we can close this.

My appetite for a 3.0.4 is... limited.

As above, I believe we can close this.

As above, I believe we can close this.


[okd] Fresh install of OKD 4.7 - community operator pod failing with standard_init_linux.go:228: exec user process caused: exec format error

Describe the bug
So I'm new to OKD - and tried an install this week. I'm using PXE installation and got 3 nodes up and running. Noticing a problem with the community operators, I added a worker node (so I only have 1) in case the problem was due to my masters also being workers.
Here is the problem:

I got here, because I wanted to go through the "quick start" to deploy the Container Storage Operators and couldnt get past the first instruction which is navigating to Operators -> Operator Hub (which the nothing here - install it page shows).
When I look at the pod's log, it shows standard_init_linux.go:228: exec user process caused: exec format error (which to me is normally an indicator of the wrong architecture being run - so not sure why that would be the case).
Version
4.7.0-0.okd-2021-07-03-190901
This is all VMs on ESXi running CoreOS downloaded this week.
So a) I thought it might be useful in case some body else has this challenge, and b) how do I reload the image that the pod uses? I know docker, but I dont know Openshift. :)
Thanks...

This issue seems to be since yesterday. We see this also on 5 different OKD cluster with latest 4.7.0-0.okd-2021-07-03-190901.
I tried already to delete this CrashLooping pod, without success.
oc -n openshift-marketplace get events --sort-by='.metadata.managedFields[0].time'
m55s       Normal    Scheduled        pod/community-operators-gbjjl   Successfully assigned openshift-marketplace/community-operators-gbjjl to k8s-worker-8-01.okd.***.***.***
5m53s       Normal    AddedInterface   pod/community-operators-gbjjl   Add eth0 [<IP_ADDRESS>/23]
4m50s       Normal    Pulling          pod/community-operators-gbjjl   Pulling image "registry.access.redhat.com/redhat/community-operator-index:v4.7"
5m50s       Normal    Pulled           pod/community-operators-gbjjl   Successfully pulled image "registry.access.redhat.com/redhat/community-operator-index:v4.7" in 3.615410937s
4m47s       Normal    Started          pod/community-operators-gbjjl   Started container registry-server
4m47s       Normal    Created          pod/community-operators-gbjjl   Created container registry-server
5m46s       Normal    Pulled           pod/community-operators-gbjjl   Successfully pulled image "registry.access.redhat.com/redhat/community-operator-index:v4.7" in 3.067923536s
52s         Warning   BackOff          pod/community-operators-gbjjl   Back-off restarting failed container
5m23s       Normal    Pulled           pod/community-operators-gbjjl   Successfully pulled image "registry.access.redhat.com/redhat/community-operator-index:v4.7" in 2.7133503s
4m48s       Normal    Pulled           pod/community-operators-gbjjl   Successfully pulled image "registry.access.redhat.com/redhat/community-operator-index:v4.7" in 2.788870806s
2m41s       Normal    Scheduled        pod/redhat-operators-8pqgc      Successfully assigned openshift-marketplace/redhat-operators-8pqgc to k8s-worker-4-01.okd.***.***.***

Experiencing this issue on two clusters - versions 4.7.0-0.okd-2021-06-19-191547 and 4.7.0-0.okd-2021-07-03-190901. Failing container registry_server in the Pod is using the image registry.access.redhat.com/redhat/community-operator-index:v4.7. As indicated in the initial description it seems related to an architecture issue with the image, running it locally via Docker gives me the following error message:
❯ docker run --rm -it     registry.access.redhat.com/redhat/community-operator-index:v4.7
WARNING: The requested image's platform (linux/s390x) does not match the detected host platform (linux/amd64) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error

Did the default platform get messed up, or maybe it did not get built/published for amd64 correctly?

By mistake ppc64le version was pushed, sorting this out

registry.access.redhat.com/redhat/community-operator-index:v4.7 was reverted to x86_64 arch.
I'll keep the ticket open in case this regresses in the next few days

registry.access.redhat.com/redhat/community-operator-index:v4.7 was reverted to x86_64 arch.

Seems to have worked on our clusters, Pods already recovered.

Thank you - this seems to fix that issue I was having.
What prompted me to open this ticket was I was following the quickstart Install the OpenShift® Container Storage Operator - now that tile for OCS seems to have disappeared. Could it have been something I did? (I tried a few things to get that community operator running.)

No issues so far, closing


raft: Tiny refactor

Rename i to id since i looks like index which is confusing.

LGTM. The CI failure has nothing to do with this commit.


RFC: add support for a tuple of axes in expand_dims

Hello all! I raised this issue on array-api-compat earlier (https://github.com/data-apis/array-api-compat/issues/105), but I think it might be more properly directed here.
In the array API, expand_dims supports only a single axis (https://data-apis.org/array-api/latest/API_specification/generated/array_api.expand_dims.html) as opposed to a tuple of axes. This is different to NumPy, CuPy, and Jax, which support a tuple of axes. PyTorch, however, supports only a single axis. I don't know the justification for why the array API supports only a single axis as opposed to a tuple, but what it means is that expand_dims no longer works in many places when adopting the array API.
In practice, expand_dims is just a light wrapper for reshape, see https://github.com/numpy/numpy/blob/3b246c6488cf246d488bbe5726ca58dc26b6ea74/numpy/lib/_shape_base_impl.py#L594. But it's not great to force users to write their own version of expand_dims in every library now. Is the array API willing to update expand_dims to support a tuple of axes? If not, and if expand_dims will only support a single axis going forward, that effectively makes all users of expand_dims copy and paste the NumPy implementation.
@lucascolley Pointed out to me that when expand_dims was added to the array API, only NumPy supported a tuple of axes. See https://github.com/data-apis/array-api/pull/42. That was 4 years ago and the situation has changed, as above.

Seems tuple support was omitted because torch doesn't support it https://github.com/data-apis/array-api/pull/42. I found a few feature requests for it for torch.unsqueeze (the PyTorch equivalent to expand_dims) https://github.com/pytorch/pytorch/issues/30702 https://github.com/pytorch/pytorch/pull/4692#issuecomment-394927742. Seems it was intentionally omitted due to the ambiguity that arises from mixing negative and positive indices.
I agree this ambiguity is a potential concern. If we standardize this, we should somehow only require a subset of behavior that leaves this ambiguity undefined, e.g., by leaving the mixing negative and nonnegative indices unspecified.
Consider for example:
>>> np.expand_dims(np.empty((2,)), (1, -1)).shape
(2, 1, 1)

The resulting shape has 1 in positions 1 and -1, but a result shape of (2, 1) would also satisfy this. I suppose one could argue that exactly len(axes) dimensions should be added.
But also consider
>>> np.expand_dims(np.empty((2, 3, 4, 5)), (3, -3)).shape
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/aaronmeurer/miniconda3/envs/array-apis/lib/python3.11/site-packages/numpy/lib/shape_base.py", line 597, in expand_dims
    axis = normalize_axis_tuple(axis, out_ndim)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aaronmeurer/miniconda3/envs/array-apis/lib/python3.11/site-packages/numpy/core/numeric.py", line 1385, in normalize_axis_tuple
    raise ValueError('repeated axis')
ValueError: repeated axis

There's no way to insert 1 dimensions into (2, 3, 4, 5) so that they appear at indices 3 and -3.

Here's a small proof. There's no length list where you can remove indices 3 and -3 and result in a list of length 4
>>> def remove_indices(n, idxes):
...     """Return range(n) with `idxes` indices removed"""
...     x = list(range(n))
...     vals = [x[i] for i in idxes]
...     for v in vals:
...         try:
...             x.remove(v)
...         except ValueError: # Already removed
...             pass
...     return x
>>> [remove_indices(n, (-3, 3)) for n in range(4, 10)]
[[0, 2], [0, 1, 4], [0, 1, 2, 4, 5], [0, 1, 2, 5, 6], [0, 1, 2, 4, 6, 7], [0, 1, 2, 4, 5, 7, 8]]
>>> [len(remove_indices(n, (-3, 3))) for n in range(4, 10)]
[2, 3, 5, 5, 6, 7]

At the same time, if the goal of expand_dims is for the axes to refer to the dimensions after unsqueezing/expanding, then it's not exactly trivial to do it as a sequence of expand_dims, because if you apply the expansion in the wrong order you will break the position of previous dimensions (the correct logic is not hard, but it's the sort of thing that's easy to get wrong). So I think there is value in having native support for multiple axes.

Regarding removing ambiguity, I think it would suffice to impose an ordering in which to prefer expanding dims right? For example, if we specify "negative indices get resolved first" then your borrowing your example above could be resolved as
x = np.empty((2, 3, 4, 5))
xp.expand_dims(x., (3, -3)) == np.expand_dims(np.expand_dims(x, -3), 3)

so that the final output shape is (2, 3, 1, 1, 4, 5), which seems reasonable.
Still, I'm not sure if it is worth it since in the first place users could do it in a two-step expansion (albeit with some more thought), and the resolution order (+ or - indices first?) is rather arbitrary.

When you do repeated expand_dims, the inserted dimensions in the final shape won't necessarily be in the indices you initially specified (that's the whole point of this feature request, that you need a way to do them all at once). (2, 3, 1, 1, 4, 5) has 1s at indices 2 and -3 (remember 0-based indexing), because the 1 that was at index -3 got shifted over.

in case it affects this making v2024 either way, this is now available as https://data-apis.org/array-api-extra/generated/array_api_extra.expand_dims.html


Please tag the pre-commit commit

First off, thanks a ton for adding pre-commit support! That's incredibly helpful.
I got tripped up trying to install it as a hook, because most pre-commit users are used to grabbing the latest tag by default and installing from that. However, using "v0.5" here yields the cryptic pre-commit error:
An error has occurred: InvalidManifestError:
=====> /Users/bmoeskau/.cache/pre-commit/repotdfzgo7g/.pre-commit-hooks.yaml does not exist
Check the log at /Users/bmoeskau/.cache/pre-commit/pre-commit.log

It took me a little while to figure out that pre-commit support was added in Dec 2018, after the last tag was applied in Nov 2018. The workaround is to use the commit hash instead, which works, but is a bit non-standard (and certainly confusing by default).
The simple fix would be to simply tag that commit, e.g. as v0.6. Until then, here's the currently-working pre-commit config required for anyone else who runs across this error:
  - repo: https://github.com/motet-a/jinjalint
    rev: "01e0a4d8f1ee775aee00eb9d715eff2b4cc49e4d"
    hooks:
      - id: jinjalint

Thanks!

Same issue.
Refs: https://github.com/pre-commit/pre-commit/issues/1859


Receiver stops after a few hours with no traffic

Hi. I am using SMPSession.connectAndBind() to set up a receiver (using BindType.BIND_RX). I have also sender class which binds using BIND_TX. The sender class seems to work ok all the time but after a few hours with no active sending from my side it seems like the receiver stops. After adding the pull request #25 I get some additional logging. AbstractSession.close() called. Does anyone know if there is a timeout setting which takes down the connection actively? Or may this be a result of some error?
I can set up additional logging and start debugging but would be grateful if anyone have experienced anything similar and know why.
10:29:01.898 INFO [MyClass.java:403] - Last logging from my app
16:51:24.364 INFO [AbstractSession.java:203] - AbstractSession.close() called
16:51:24.864 INFO [AbstractSession.java:203] - AbstractSession.close() called
Thanks.
Tomas

Hello Toms, did you solve this problem? If yes, plz share the solution.

Hi, yes I did. I located two different things. First of all the shutdown some times caused a deadlock. I therefore wrote a patch to JSMPP to gracefully shut down the JSMPP threads to avoid deadlock. Sometimes the two threads (enquirelink and pdusender) seemed to wait for eachother. This patch is included in the updated JSMPP release on this page: http://jsmpp.org/
In addition I wrote my own watchdog. This watchdog is using the SMPPSession object to check if the sessionstate equals SessionState.CLOSED. In the case of a clean shutdown or if the connection to the SMSC somehow is down I found that the SessionState always was CLOSED. When this happens I create a new SMPPSession object and let the old one go out of scope.
Let me know if you have any more questions.

Hello Tomas, thank you for quick response!
I tried to use last version of jsmpp 2.2.1 but still get same errors
This i get when i run AutoReconnect example
[main] INFO org.jsmpp.session.SMPPSession - Connected
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.SMPPSession - Starting PDUReaderWorker
Exception in thread "main" java.lang.NullPointerException
at org.jsmpp.bean.OptionalParameters.get(OptionalParameters.java:238)
at org.jsmpp.bean.BindResp.getOptionalParameter(BindResp.java:61)
at org.jsmpp.session.SMPPSession.sendBind(SMPPSession.java:297)
at org.jsmpp.session.SMPPSession.connectAndBind(SMPPSession.java:234)
at org.jsmpp.session.SMPPSession.connectAndBind(SMPPSession.java:201)
at org.jsmpp.session.SMPPSession.(SMPPSession.java:140)
at
org.jsmpp.examples.gateway.AutoReconnectGateway.newSession(AutoReconnectGateway.java:102)
at
org.jsmpp.examples.gateway.AutoReconnectGateway.(AutoReconnectGateway.java:68)
at
org.jsmpp.examples.gateway.AutoReconnectGateway.main(AutoReconnectGateway.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] WARN
org.jsmpp.session.SMPPSession - IOException while reading: null
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.AbstractSession - AbstractSession.close() called
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.AbstractSession - AbstractSession.close() done
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.AbstractSession - AbstractSession.close() called
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.AbstractSession - AbstractSession.close() done
[PDUReaderWorker: org.jsmpp.session.SMPPSession@3253be7c] INFO
org.jsmpp.session.SMPPSession - PDUReaderWorker stop
Process finished with exit code 1
After  ~1 minute connection is terminated with  IOException while reading:
null
I use connection string like this
Gateway gateway = new AutoReconnectGateway("localhost", 5555,
new BindParameter(BindType.BIND_TRX, "xxx", "yyy", "",
TypeOfNumber.UNKNOWN, NumberingPlanIndicator.ISDN, ""));
On Mon, Apr 20, 2015 at 11:59 AM, Tomas Andersen<EMAIL_ADDRESS>wrote:

Hi, yes I did. I located two different things. First of all the shutdown
some times caused a deadlock. I therefore wrote a patch to JSMPP to
gracefully shut down the JSMPP threads to avoid deadlock. Sometimes the two
threads (enquirelink and pdusender) seemed to wait for eachother. This
patch is included in the updated JSMPP release on this page:
http://jsmpp.org/
In addition I wrote my own watchdog. This watchdog is using the
SMPPSession object to check if the sessionstate equals SessionState.CLOSED.
In the case of a clean shutdown or if the connection to the SMSC somehow is
down I found that the SessionState always was CLOSED. When this happens I
create a new SMPPSession object and let the old one go out of scope.
Let me know if you have any more questions.
—
Reply to this email directly or view it on GitHub
https://github.com/uudashr/jsmpp/issues/34#issuecomment-94386404.

--
Best Regards

I havent tried running the example. Are you trying to set up a client or a server? I have successfully communicated with an SMSC as a client using this setup (deleted some private code and added some pseudocode but will give you an idea). I have a service object and a listener object. The service object has an additional method for sending text messages, the listener checks for incoming messages.
I do not know why your example fails and unfortunately I have no time to check it out. Try to ask on this github page instead: https://github.com/opentelecoms-org/jsmpp
(which is the new place)
public class MySmppListener implements MessageReceiverListener
...
public class MySmppService
{
public void start()
{
....

SmppGatewayConfig config; // POJO storing host, port, username, password for the smpp
                                              // connection
MyMessageHandler messageHandler = new MyMessageHandler();
..
session = new SMPPSession();
session.setMessageReceiverListener(new MySmppListener(messageHandler));
connectAndBind()
}

private void connectAndBind()
{
try
{
BindType bindType = BindType.BIND_TRX;
TypeOfNumber addrTon = TypeOfNumber.UNKNOWN;
NumberingPlanIndicator addrNpi = NumberingPlanIndicator.UNKNOWN;
String addressRange = null;
log.debug("Connect and bind (bindType = BindType.BIND_TRX)");
String result = session.connectAndBind(
gateway.host,
gateway.port,
new BindParameter(
bindType,
gateway.systemId,
gateway.password,
systemType,
addrTon,
addrNpi,
addressRange));
log.debug("Connect and bind result: {}", result);
}
catch (IOException e)
{
session.unbindAndClose();
throw new MySmppException("Failed connect and bind to host", e);
}
}


Avoid requiring host in config to avoid "No module named xxx" errors

Issue
Say you're a newcomer to Avalon and you'd want to try the setup in Nuke with a config that does not have {config}/nuke/__init__.py yet you will run into an ImportError error saying "No module name nuke".
The same is true for other hosts like:

Maya same error.
Houdini same error.
Fusion which looking at the code will actually pass but instead return the config itself as opposed to the fusion package inside of it. Which is also very wrong. It should actually set config = None.

What did you expect?
Clarify what is going on, and allow it to pass.
It should either:

Show a descriptive error message on how this could be solved.
Or, maybe even more preferred, allow it to actually run fine without requiring {config}/nuke module to exist. Maybe just logging a warning of something like:

Config "polly" has no dedicated "nuke" module. Skipping config initialization for "nuke"

I'd opt for two and make it very clear where and how one could set something like that up. Maybe even pointing to a part in the documentation on how to set up custom installations in a studio config for an integration.
Avoid code duplication
Additionally, note how the find_host_config code is duplicated among all integrations. I'd recommend instead making a single function in avalon.lib like:
# pseudocode
def find_host_config(config, host):

    config_name = config.__name__
    module_name = "%s.%s" % (config_name, host)
    try:
        config = importlib.import_module(module_name)
    except ImportError as exc:
        if str(exc) != "No module name {}".format(module_name):
            log.warning("Config has no '%s' module." % module_name)
        config = None

    return config

And then e.g. use it in the avalon.nuke.pipeline as simply as lib.find_host_config(config, "nuke").
To Reproduce
Try running e.g Nuke with the Polly config which does not have anything set up for nuke.
Additional context
This "No module" error caught my attention as someone asked me about how to get the Nuke integration up and running which he failed to try out because of a config that didn't have polly/nuke/__init__.py

In the PR I actually proposed a different way of cleaning the duplicate code by moving the code to the global install/uninstall which makes much more sense and it would never have to be duplicated for new hosts, greatly simplifying what's required for new host integrations.

This is fixed with #501
Be aware that pending integrations like #466 #497 #496 #502 should update the core install and uninstall functions foe the host accordingly, that is the removal of calling install and uninstall on the config's host module.


Handle inner procs

import cps
import strutils

type
  C = Continuation

  CallBack = proc(): C

proc bar(cb: CallBack) {.cps:C.} =
  echo "bar"

proc thing() {.cps:C.} =
  echo "thing"

proc foo() {.cps:C.} =
  proc gen(): CallBack =
    result = proc(): C =
      whelp thing()
  bar gen()

foo()

$ nim r /tmp/t.nim
Hint: used config file '/home/ico/external/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/ico/external/Nim/config/config.nims' [Conf]
..............................................................................
/home/ico/sandbox/prjs/cps/cps/environment.nim(390, 16) Warning: pending https://github.com/nim-lang/Nim/issues/17851 [User]
..
/home/ico/sandbox/prjs/cps/cps/transform.nim(1138, 12) Warning: compiler bug workaround, see: https://github.com/nim-lang/Nim/issues/18349 [User]
..
/home/ico/sandbox/prjs/cps/cps/exprs.nim(176, 13) template/generic instantiation of `filterExpr` from here
/home/ico/sandbox/prjs/cps/cps/exprs.nim(107, 14) Warning: compiler workaround here, see: https://github.com/nim-lang/Nim/issues/18351 [User]
/home/ico/sandbox/prjs/cps/cps/exprs.nim(176, 13) template/generic instantiation of `filterExpr` from here
/home/ico/sandbox/prjs/cps/cps/exprs.nim(118, 14) Warning: compiler workaround here, see: https://github.com/nim-lang/Nim/issues/18351 [User]
/home/ico/sandbox/prjs/cps/cps/exprs.nim(323, 12) Warning: compiler workaround here, see: https://github.com/nim-lang/Nim/issues/18352 [User]
/home/ico/sandbox/prjs/cps/cps.nim(12, 12) Warning: cps supports --gc:arc or --gc:orc only; see https://github.com/nim-lang/Nim/issues/18099 [User]
/home/ico/sandbox/prjs/cps/cps.nim(17, 12) Warning: cps supports --panics:on only;  see https://github.com/disruptek/cps/issues/110 [User]
/home/ico/sandbox/prjs/cps/cps.nim(69, 16) Warning: compiler bug workaround, see: https://github.com/nim-lang/Nim/issues/18349 [User]
.........
/tmp/t.nim(16, 14) template/generic instantiation of `cps` from here
/tmp/t.nim(17, 3) Error: incorrect result proc symbol

Seems to be a compiler bug.
/home/adavidoff/git/Nim/compiler/semstmts.nim(1636) maybeAddResult
/home/adavidoff/git/Nim/compiler/semstmts.nim(1490) addResult
/home/adavidoff/git/Nim/lib/system/fatal.nim(53) sysFatal
Error: unhandled exception: 'sym' is not accessible using discriminant 'kind' of type 'TNode' [FieldDefect]

Maybe we simply need to strip the pesky result symbol from all internal procdefs as a workaround pass?
/cc @alaviss

Stripping the result symbol didn't help, FWIW.

Works as of 21775374ed1980b30dfd251c4c391080d652b627.


Use await using for .NET Standard 2.1

The issue or feature being addressed
https://github.com/AppMetrics/AppMetrics/issues/396
System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.Flush()
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at System.IO.StreamWriter.Dispose(Boolean disposing)
   at System.IO.TextWriter.Dispose()
   at App.Metrics.Formatters.Prometheus.Internal.AsciiFormatter.Write(Stream destination, IEnumerable`1 metrics, NewLineFormat newLine)
   at App.Metrics.Formatters.Prometheus.MetricsPrometheusTextOutputFormatter.WriteAsync(Stream output, MetricsDataValueSource metricsData, CancellationToken cancellationToken)

Details on the issue fix or feature implementation
Should call IAsyncDisposable.DisposeAsync when ASP.NET Core 3 is used.
Don't know if targeting .NET Standard 2.1 is the recommended solution to this kind of thing but at least it should be await using if available.
Confirm the following

[x] I have ensured that I have merged the latest changes from the dev branch
[x] I have successfully run a local build
[ ] I have included unit tests for the issue/feature
[ ] I have included the github issue number in my commits

@alhardy, can you look into this PR?

@martinothamar @alhardy
The proposed solution did not solve problem totally, because inside using block you have a lot of calls to sync Write() API, which in turns can decide to Flush() internal buffers. Since it will flush buffers synchronously, it will hit the problem again.


move files from notebooks2 back to doc/source/notebooks

Having notebooks both in doc/source/notebooks and notebooks2/ is confusing and means it's not quite clear what the authoritative version actually is. It also makes it hard to see the changes from GPflow1 to GPflow2, and means we wouldn't see if textual improvements on the gpflow1 (develop) side get accidentally reverted in the move (because they were based off an older version already in develop-2.0). To ensure we don't break the build with non-converted notebooks, we can simply put them into the BLACKLISTED_NOTEBOOKS list, and then we will know we are done when the blacklist is empty again.

I know that the notebook2 folder upsets you, but isn't better to wait until all notebooks are ported now and move them at once.
Please, use git mv instead of copying files, it will preserve the history who worked on notebooks.

I don't see the value of keeping the notebook2 directory around any longer than need be (yes I don't understand why it was ever created in the first place). I think it's more valuable to ensure preserving all the copy-edit changes by @akhayes and @JamesALeedham, which this PR painstakingly does - there were already a couple other PRs (#1072, #1076) that didn't realize develop's version of the notebook was more up-to-date than the version in the gpflow-2.0 branch, and they'll have to redo their work.
I did use git mv wherever possible, it wasn't possible in all cases. This is independent of whether they get moved now or later, though.


Google Cloud Global Permission

Version: 2.4.0
Run via GCP using image: cloudbreak-deployer-240-2018-02-22
Log fail:

Infrastructure creation failed. Reason: com.sequenceiq.cloudbreak.cloud.gcp.GcpResourceException: Error during status check: [ resourceType: GCP_DISK, resourceName: teko-bigdata-infra, stackId: 1, operation: tekobigdatainfra-m-0-20180323110702 ] [ Cause message: 403 Forbidden { "code" : 403, "errors" : [ { "domain" : "global", "message" : "Required 'compute.globalOperations.get' permission for 'projects/teko-warehouse/global/operations/operation-1521803222140-568126c794461-aa4da8f5-a41dfed9'", "reason" : "forbidden" } ], "message" : "Required 'compute.globalOperations.get' permission for 'projects/teko-warehouse/global/operations/operation-1521803222140-568126c794461-aa4da8f5-a41dfed9'" } ]

I have create "Credentials" has permission follow guide (https://docs.hortonworks.com/HDPDocuments/Cloudbreak/Cloudbreak-2.4.0/content/gcp-launch/index.html)
I have check google has: global operation and zone operation. I check you using globalOperations to check zone operation so has exception from Google Cloud API.

@technology20nn
https://community.hortonworks.com/questions/178489/infrastructure-creation-issue-in-gcp-with-cloudbre.html same problem described here. We reaised a ticket for GCP and waiting for the response.

Hi,
We've upgraded our codebase. Indeed the problem was a minor API change for certain requests. You can upgrade to 2.4.1-rc.27, by downloading the CBD binary
curl -LO s3.amazonaws.com/public-repo-1.hortonworks.com/HDP/cloudbreak/cloudbreak-deployer_2.4.1-rc.27_$(uname)_x86_64.tgz
then
cbd regenerate && cbd restart


Animation flickering on android

Hello there! Love this repo!
I have a problem with my animations on android phone. The first "loop" through the animation every image flickers until one iteration is made, after that the animation runs smoothly as intended.
I was thinking mabye it's because the frames (.png's) are loaded when the view is prompted and it is trying to "catch up" with the animation. Doing a preload and/or cache for the images might be a solution. Do you have any thoughts on this issue? (the .pngs are already optimized)
(only android)

I've had the same issue, however my animation flickers all the time.

There are potentially a few issues. First, there will be a flicker on the "first" loading of the image. Basically, the frame rate is faster than the loading of the images into active memory, for this reason you get the flicker, but after initial load the flicker will go away.
Typically, I will load all images during scene loading, i.e. I will have a load screen and behind that I am loading the images and playing through animations to make sure all images are in active memory.
Now, there are cases that you can have flickers even after the first load. This is typically a case that there are to many things in memory, so Android/IOS are moving data to disk and back to active memory.
In general, you have to be careful with how many images and the size of images you are using because mobile devices have limited memory. This is especially true with older devices.
Hope that helps.

Sorry for the slow reply too.


Running TSM on ImageNet VID

Your paper mentioned that you used your online TSM for object detection on ImageNet VID.
Could you provide instructions on how to use it exactly with pretrained models?

anything on this?? I would also be interested :))