Camera not working on iPhone 15

I am currently experiencing a non-working camera on iOS using the sample app. But only for one device (of the ones that I can test on).
webrtc-kmp: 0.125.5
webrtc-ios: 125.6422.05
Not working
Device: iPhone 15
OS Version: 18.1.1
Xcode: 16.1
Error: The camera's active format is unsupported by this session.
I guess format means whatever gets selected here.
I tried both front and back facing camera. Cameras themself work fine using the default camera app.
Logs:
(RTCLogging.mm:33): (RTCAudioSession.mm:117 -[RTCAudioSession initWithAudioSession:]): RTC_OBJC_TYPE(RTCAudioSession) (0x3021ace80): init.
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:104 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred sample rate to: 48000.00
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:119 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred IO buffer duration to: 0.020000
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.
(audio_device_module_ios.mm:45): current platform is IOS
(audio_device_module_ios.mm:46): iPhone Audio APIs will be utilized.
(RTCLogging.mm:33): (RTCAudioDeviceModule.mm:52 -[RTCAudioDeviceModule initWithNativeModule:workerThread:]): RTCAudioDeviceModule initWithNativeModule:workerThread:
(audio_device_module_ios.mm:671): SetAudioDeviceSink(da65f0) Not implemented
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.AppliedInputVolume.*` histogram stats.
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.RecommendedInputVolume.*` histogram stats.
(audio_processing_impl.cc:697): Injected APM submodules:
Echo control factory: 0
Echo detector: 0
Capture analyzer: 0
Capture post processor: 0
Render pre processor: 0
(audio_processing_impl.cc:710): AudioProcessing: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 0 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: Moderate }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: AdaptiveAnalog, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(webrtc_voice_engine.cc:354): WebRtcVoiceEngine::WebRtcVoiceEngine
(webrtc_voice_engine.cc:376): WebRtcVoiceEngine::Init
(audio_device_buffer.cc:66): AudioDeviceBuffer::ctor
(audio_device_ios.mm:109): AudioDeviceIOS::ctor<NSThread: 0x301aedb40>{number = 10, name = (null)},bypass_voice_processing=0
(audio_device_ios.mm:129): AudioDeviceIOS::AttachAudioBuffer
(audio_device_ios.mm:136): AudioDeviceIOS::Init
(audio_device_ios.mm:704): AudioDeviceIOS::UpdateAudioDevicebuffer
(audio_device_buffer.cc:203): SetPlayoutSampleRate(48000)
(audio_device_buffer.cc:223): SetPlayoutChannels(1)
(audio_device_buffer.cc:197): SetRecordingSampleRate(48000)
(audio_device_buffer.cc:217): SetRecordingChannels(1)
(audio_device_ios.mm:1072): SetPlayoutDevice: Not implemented
(audio_device_ios.mm:1125): SetStereoPlayout: Not implemented
(audio_device_module_ios.mm:330): stereo playout is not supported
(adm_helpers.cc:57): Failed to set stereo playout mode.
(audio_device_ios.mm:1174): SetRecordingDevice: Not implemented
(adm_helpers.cc:77): Failed to set stereo recording mode.
(webrtc_voice_engine.cc:478): WebRtcVoiceEngine::ApplyOptions: AudioOptions {aec: 1, agc: 1, ns: 0, hf: 1, swap: 0, audio_jitter_buffer_max_packets: 200, audio_jitter_buffer_fast_accelerate: 0, audio_jitter_buffer_min_delay_ms: 0, }
(webrtc_voice_engine.cc:497): Always disable AEC on iOS. Use built-in instead.
(webrtc_voice_engine.cc:507): Always disable AGC on iOS. Use built-in instead.
(audio_device_generic.cc:18): BuiltInAECIsAvailable: Not supported on this platform
(audio_device_generic.cc:28): BuiltInAGCIsAvailable: Not supported on this platform
(audio_device_generic.cc:38): BuiltInNSIsAvailable: Not supported on this platform
(audio_processing_impl.cc:913): AudioProcessing::ApplyConfig: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 1 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: High }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: FixedDigital, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(RTCAudioTrack.mm:214): RTCAudioTrack init
(RTCAudioTrack.mm:37): RTCAudioTrack.AudioSinkConverter init
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:206 -[RTCCameraVideoCapturer startCaptureWithDevice:format:fps:completionHandler:]_block_invoke): startCaptureWithDevice <AVCaptureDeviceFormat: 0x300da91c0 'vide'/'420v' 1280x 720, { 1-120 fps}, photo dims:{1280x720}, fov:73.699, binned, supports vis (max strength:Low), max zoom:64.50 (upscales @1.43), AF System:1, ISO:20.0-800.0, SS:0.000041-1.000000, system exposure bias range:-2.0-2.0, supports Portrait Effect, supports Studio Lighting, supports Reactions> @ 30 fps
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:399 -[RTCCameraVideoCapturer handleCaptureSessionRuntimeError:]): Capture session runtime error: Error Domain=AVFoundationErrorDomain Code=-11873 "Cannot Record" UserInfo={NSLocalizedDescription=Cannot Record, AVErrorDeviceKey=<AVCaptureFigVideoDevice: 0x103a35e00 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, NSLocalizedRecoverySuggestion=Reset the camera to a supported active format, then restart the session., NSLocalizedFailureReason=The camera's active format is unsupported by this session.}
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:435 -[RTCCameraVideoCapturer handleFatalError]_block_invoke): Attempting to recover from fatal capture error.
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:447 -[RTCCameraVideoCapturer handleNonFatalError]_block_invoke): Restarting capture session after error.
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:399 -[RTCCameraVideoCapturer handleCaptureSessionRuntimeError:]): Capture session runtime error: Error Domain=AVFoundationErrorDomain Code=-11873 "Cannot Record" UserInfo={NSLocalizedDescription=Cannot Record, AVErrorDeviceKey=<AVCaptureFigVideoDevice: 0x103a35e00 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, NSLocalizedRecoverySuggestion=Reset the camera to a supported active format, then restart the session., NSLocalizedFailureReason=The camera's active format is unsupported by this session.}
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:439 -[RTCCameraVideoCapturer handleFatalError]_block_invoke): Previous fatal error recovery failed.
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:463 -[RTCCameraVideoCapturer handleApplicationDidBecomeActive:]_block_invoke): Restarting capture session on active.
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:399 -[RTCCameraVideoCapturer handleCaptureSessionRuntimeError:]): Capture session runtime error: Error Domain=AVFoundationErrorDomain Code=-11873 "Cannot Record" UserInfo={NSLocalizedDescription=Cannot Record, AVErrorDeviceKey=<AVCaptureFigVideoDevice: 0x103a35e00 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>, NSLocalizedRecoverySuggestion=Reset the camera to a supported active format, then restart the session., NSLocalizedFailureReason=The camera's active format is unsupported by this session.}
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:439 -[RTCCameraVideoCapturer handleFatalError]_block_invoke): Previous fatal error recovery failed.

Working Fine
Device: iPhone 7
OS Version: 15.8.3
Xcode: 16.1
Device: iPad Pro
OS Version: 18.1
Xcode: 16.1
2024-11-25 15:53:21.996161+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Looking up debug dylib relative path
2024-11-25 15:53:21.996821+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Found debug dylib relative path string `WebRTC KMP Playground.debug.dylib`
2024-11-25 15:53:21.996831+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Looking up debug dylib entry point name
2024-11-25 15:53:21.996836+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] No debug dylib entry point name defined.
2024-11-25 15:53:21.996841+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Looking up debug dylib install name
2024-11-25 15:53:21.996848+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Found debug dylib install name string `@rpath/WebRTC KMP Playground.debug.dylib`
2024-11-25 15:53:21.996855+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Looking for Previews JIT link entry point.
2024-11-25 15:53:22.031688+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] No Previews JIT entry point found.
2024-11-25 15:53:22.031719+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Gave PreviewsInjection a chance to run and it returned, continuing with debug dylib.
2024-11-25 15:53:22.031726+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Looking for main entry point.
2024-11-25 15:53:22.031734+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Opening debug dylib with '@rpath/WebRTC KMP Playground.debug.dylib'
2024-11-25 15:53:22.031770+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Debug dylib handle: 0x209ce56e0
2024-11-25 15:53:22.031778+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] No entry point found. Checking for alias.
2024-11-25 15:53:22.031786+0100 WebRTC KMP Playground[35115:1060708] [PreviewsAgentExecutorLibrary] Calling provided entry point.
2024-11-25 15:53:22.233364+0100 WebRTC KMP Playground[35115:1060708] Metal GPU Frame Capture Enabled
2024-11-25 15:53:22.233667+0100 WebRTC KMP Playground[35115:1060708] Metal API Validation Enabled
2024-11-25 15:53:22.404599+0100 WebRTC KMP Playground[35115:1060708] fopen failed for data file: errno = 2 (No such file or directory)
2024-11-25 15:53:22.404705+0100 WebRTC KMP Playground[35115:1060708] Errors found! Invalidating cache...
2024-11-25 15:53:22.601553+0100 WebRTC KMP Playground[35115:1060708] fopen failed for data file: errno = 2 (No such file or directory)
2024-11-25 15:53:22.601675+0100 WebRTC KMP Playground[35115:1060708] Errors found! Invalidating cache...
(RTCLogging.mm:33): (RTCAudioSession.mm:117 -[RTCAudioSession initWithAudioSession:]): RTC_OBJC_TYPE(RTCAudioSession) (0x283d94100): init.
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:104 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred sample rate to: 48000.00
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:119 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred IO buffer duration to: 0.020000
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.
(audio_device_module_ios.mm:45): current platform is IOS
(audio_device_module_ios.mm:46): iPhone Audio APIs will be utilized.
(RTCLogging.mm:33): (RTCAudioDeviceModule.mm:52 -[RTCAudioDeviceModule initWithNativeModule:workerThread:]): RTCAudioDeviceModule initWithNativeModule:workerThread:
(audio_device_module_ios.mm:671): SetAudioDeviceSink(81199c70) Not implemented
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.AppliedInputVolume.*` histogram stats.
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.RecommendedInputVolume.*` histogram stats.
(audio_processing_impl.cc:697): Injected APM submodules:
Echo control factory: 0
Echo detector: 0
Capture analyzer: 0
Capture post processor: 0
Render pre processor: 0
(audio_processing_impl.cc:710): AudioProcessing: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 0 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: Moderate }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: AdaptiveAnalog, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(webrtc_voice_engine.cc:354): WebRtcVoiceEngine::WebRtcVoiceEngine
(webrtc_voice_engine.cc:376): WebRtcVoiceEngine::Init
(audio_device_buffer.cc:66): AudioDeviceBuffer::ctor
(audio_device_ios.mm:109): AudioDeviceIOS::ctor<NSThread: 0x2806fc1c0>{number = 8, name = (null)},bypass_voice_processing=0
(audio_device_ios.mm:129): AudioDeviceIOS::AttachAudioBuffer
(audio_device_ios.mm:136): AudioDeviceIOS::Init
(audio_device_ios.mm:704): AudioDeviceIOS::UpdateAudioDevicebuffer
(audio_device_buffer.cc:203): SetPlayoutSampleRate(48000)
(audio_device_buffer.cc:223): SetPlayoutChannels(1)
(audio_device_buffer.cc:197): SetRecordingSampleRate(48000)
(audio_device_buffer.cc:217): SetRecordingChannels(1)
(audio_device_ios.mm:1072): SetPlayoutDevice: Not implemented
(audio_device_ios.mm:1125): SetStereoPlayout: Not implemented
(audio_device_module_ios.mm:330): stereo playout is not supported
(adm_helpers.cc:57): Failed to set stereo playout mode.
(audio_device_ios.mm:1174): SetRecordingDevice: Not implemented
(adm_helpers.cc:77): Failed to set stereo recording mode.
(webrtc_voice_engine.cc:478): WebRtcVoiceEngine::ApplyOptions: AudioOptions {aec: 1, agc: 1, ns: 0, hf: 1, swap: 0, audio_jitter_buffer_max_packets: 200, audio_jitter_buffer_fast_accelerate: 0, audio_jitter_buffer_min_delay_ms: 0, }
(webrtc_voice_engine.cc:497): Always disable AEC on iOS. Use built-in instead.
(webrtc_voice_engine.cc:507): Always disable AGC on iOS. Use built-in instead.
(audio_device_generic.cc:18): BuiltInAECIsAvailable: Not supported on this platform
(audio_device_generic.cc:28): BuiltInAGCIsAvailable: Not supported on this platform
(audio_device_generic.cc:38): BuiltInNSIsAvailable: Not supported on this platform
(audio_processing_impl.cc:913): AudioProcessing::ApplyConfig: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 1 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: High }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: FixedDigital, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(RTCAudioTrack.mm:214): RTCAudioTrack init
(RTCAudioTrack.mm:37): RTCAudioTrack.AudioSinkConverter init
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:206 -[RTCCameraVideoCapturer startCaptureWithDevice:format:fps:completionHandler:]_block_invoke): startCaptureWithDevice <AVCaptureDeviceFormat: 0x28119a360 'vide'/'420v' 1280x 720, { 2- 60 fps}, HRSI:1920x1080, fov:63.898, binned, max zoom:67.50 (upscales @1.50), ISO:23.0-2208.0, SS:0.000013-0.500000> @ 30 fps
2024-11-25 15:53:24.854017+0100 WebRTC KMP Playground[35115:1060983] *** -[AVCaptureVideoDataOutput setVideoSettings:] - videoSettings dictionary contains one or more unsupported (ignored) keys: (
    Width,
    Height
)
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:416 -[RTCCameraVideoCapturer handleCaptureSessionDidStartRunning:]): Capture session started.
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.

@aschulz90 it seems to be an issue with iOS 18.1.1. I can reproduce it with my iPhone 13. Thanks for reporting. I'll try to figure out as soon as be able.

I have updated the iPad to 18.1.1 now as well. There it is still working fine. So iPadOS doesn't seem to be affected.
(RTCLogging.mm:33): (RTCAudioSession.mm:117 -[RTCAudioSession initWithAudioSession:]): RTC_OBJC_TYPE(RTCAudioSession) (0x300f61d00): init.
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:104 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred sample rate to: 48000.00
(RTCLogging.mm:33): (RTCAudioSession+Configuration.mm:119 -[RTCAudioSession(Configuration) setConfiguration:active:shouldSetActive:error:]): Set preferred IO buffer duration to: 0.020000
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.
(audio_device_module_ios.mm:45): current platform is IOS
(audio_device_module_ios.mm:46): iPhone Audio APIs will be utilized.
(RTCLogging.mm:33): (RTCAudioDeviceModule.mm:52 -[RTCAudioDeviceModule initWithNativeModule:workerThread:]): RTCAudioDeviceModule initWithNativeModule:workerThread:
(audio_device_module_ios.mm:671): SetAudioDeviceSink(2352f40) Not implemented
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.AppliedInputVolume.*` histogram stats.
(input_volume_stats_reporter.cc:98): Will not log any `WebRTC.Audio.Apm.RecommendedInputVolume.*` histogram stats.
(audio_processing_impl.cc:697): Injected APM submodules:
Echo control factory: 0
Echo detector: 0
Capture analyzer: 0
Capture post processor: 0
Render pre processor: 0
(audio_processing_impl.cc:710): AudioProcessing: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 0 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: Moderate }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: AdaptiveAnalog, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(webrtc_voice_engine.cc:354): WebRtcVoiceEngine::WebRtcVoiceEngine
(webrtc_voice_engine.cc:376): WebRtcVoiceEngine::Init
(audio_device_buffer.cc:66): AudioDeviceBuffer::ctor
(audio_device_ios.mm:109): AudioDeviceIOS::ctor<NSThread: 0x303403980>{number = 12, name = (null)},bypass_voice_processing=0
(audio_device_ios.mm:129): AudioDeviceIOS::AttachAudioBuffer
(audio_device_ios.mm:136): AudioDeviceIOS::Init
(audio_device_ios.mm:704): AudioDeviceIOS::UpdateAudioDevicebuffer
(audio_device_buffer.cc:203): SetPlayoutSampleRate(48000)
(audio_device_buffer.cc:223): SetPlayoutChannels(1)
(audio_device_buffer.cc:197): SetRecordingSampleRate(48000)
(audio_device_buffer.cc:217): SetRecordingChannels(1)
(audio_device_ios.mm:1072): SetPlayoutDevice: Not implemented
(audio_device_ios.mm:1125): SetStereoPlayout: Not implemented
(audio_device_module_ios.mm:330): stereo playout is not supported
(adm_helpers.cc:57): Failed to set stereo playout mode.
(audio_device_ios.mm:1174): SetRecordingDevice: Not implemented
(adm_helpers.cc:77): Failed to set stereo recording mode.
(webrtc_voice_engine.cc:478): WebRtcVoiceEngine::ApplyOptions: AudioOptions {aec: 1, agc: 1, ns: 0, hf: 1, swap: 0, audio_jitter_buffer_max_packets: 200, audio_jitter_buffer_fast_accelerate: 0, audio_jitter_buffer_min_delay_ms: 0, }
(webrtc_voice_engine.cc:497): Always disable AEC on iOS. Use built-in instead.
(webrtc_voice_engine.cc:507): Always disable AGC on iOS. Use built-in instead.
(audio_device_generic.cc:18): BuiltInAECIsAvailable: Not supported on this platform
(audio_device_generic.cc:28): BuiltInAGCIsAvailable: Not supported on this platform
(audio_device_generic.cc:38): BuiltInNSIsAvailable: Not supported on this platform
(audio_processing_impl.cc:913): AudioProcessing::ApplyConfig: AudioProcessing::Config{ pipeline: { maximum_internal_processing_rate: 48000, multi_channel_render: 0, multi_channel_capture: 0 }, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 },capture_level_adjustment: { enabled: 0, pre_gain_factor: 1, post_gain_factor: 1, analog_mic_gain_emulation: { enabled: 0, initial_level: 255 }}, high_pass_filter: { enabled: 1 }, echo_canceller: { enabled: 0, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 0, level: High }, transient_suppression: { enabled: 0 }, gain_controller1: { enabled: 0, mode: FixedDigital, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_gain_controller { enabled: 1, startup_min_volume: 0, clipped_level_min: 70, enable_digital_adaptive: 1, clipped_level_step: 15, clipped_ratio_threshold: 0.1, clipped_wait_frames: 300, clipping_predictor:  { enabled: 0, mode: 0, window_length: 5, reference_window_length: 5, reference_window_delay: 5, clipping_threshold: -1, crest_factor_margin: 3, use_predicted_step: 1 }}}, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, headroom_db: 5, max_gain_db: 50, initial_gain_db: 15, max_gain_change_db_per_second: 6, max_output_noise_level_dbfs: -50 }, input_volume_control : { enabled 0}}
(RTCAudioTrack.mm:214): RTCAudioTrack init
(RTCAudioTrack.mm:37): RTCAudioTrack.AudioSinkConverter init
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:206 -[RTCCameraVideoCapturer startCaptureWithDevice:format:fps:completionHandler:]_block_invoke): startCaptureWithDevice <AVCaptureDeviceFormat: 0x302341ff0 'vide'/'420v' 1280x 720, { 1- 60 fps}, photo dims:{1280x720,1408x792}, fov:85.655, gdc fov:85.901, binned, supports vis (max strength:Low), max zoom:45.00 (upscales @1.00), ISO:20.0-1920.0, SS:0.000022-1.000000, system exposure bias range:-2.0-2.0, supports multicam, supports Center Stage, supports CS RoI, supports Portrait Effect, supports Studio Lighting, supports Reactions> @ 30 fps
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:416 -[RTCCameraVideoCapturer handleCaptureSessionDidStartRunning:]): Capture session started.
(RTCLogging.mm:33): (RTCAudioSession.mm:612 -[RTCAudioSession handleApplicationDidBecomeActive:]): Application became active after an interruption. Treating as interruption end. isInterrupted changed from 0 to 0.
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:390 -[RTCCameraVideoCapturer handleCaptureSessionInterruption:]): Capture session interrupted: VideoDeviceNotAvailableInBackground
(RTCLogging.mm:33): (RTCCameraVideoCapturer.m:427 -[RTCCameraVideoCapturer handleCaptureSessionDidStopRunning:]): Capture session stopped.

Well, I found that the core issue seems to be in iOS WebRTC-SDK. Linking the sample app with v.125.6422.04 solves the problem. For now, it could be a workaround. I've created an issue at @webrtc-sdk repo: https://github.com/webrtc-sdk/Specs/issues/10


Containers are already terminating while drain scripts of other jobs in the instance group are still running

This is a bug in quarks-operator: https://github.com/cloudfoundry-incubator/quarks-operator/issues/1297
Just creating a corresponding kubecf issue so we can track it for the 2.8.0 release milestone.

I know this is just a shadow defect so it's not that important.. but FWIW the title of this issue is a bit misleading. Individual containers do not terminate while their drain scripts are running. The problem is specifically that each individual container will terminate once it's own drain script ends (or immediately if it has no drain script). Instead each container in a pod should wait for all other containers in the pod to finish their drains before any container terminates.

I've tried to improve it, but it is hard to fit the whole story into the subject line...
Anyways, this issue only exists so I could add it to the 2.8.0 Milestone.

looks good!


Docker Hub repository name
felipecruz/dockerfile-diff-extension
Terms of services

[X] I accept the term of services

/validate


⚠ SceneTime has degraded performance

In 6cef51c, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1425 ms

Resolved: SceneTime performance has improved in b5f3918 after 10 minutes.


Bug: Meltano is slow to start

There appears to be a bug causing some users to have a slow startup, up to 45 seconds in the provided logs
Pre 2.x:
(.venv) ➜  dutchie-dagster-meltano git:(NoJIRA-upgrade-dagster-meltano) ✗ meltano --version
meltano, version 1.100.0
(.venv) ➜  dutchie-dagster-meltano git:(NoJIRA-upgrade-dagster-meltano) ✗ time meltano --log-level debug config tap-exchange-rates-api list
2022-08-08T22:33:35.566057Z [debug    ] Creating engine <meltano.core.project.Project object at 0x10e248970>@sqlite:////Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/meltano.db
2022-08-08T22:33:35.815951Z [debug    ] Using selector: KqueueSelector
2022-08-08T22:33:35.848522Z [debug    ] Created configuration at /Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/run/tap-exchange-rates-api/tap.e8b67d7e-f096-4197-b805-e51bcf5971a8.config.json
2022-08-08T22:33:35.848773Z [debug    ] Could not find tap.properties.json in /Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/extractors/tap-exchange-rates-api/tap.properties.json, skipping.
2022-08-08T22:33:35.848938Z [debug    ] Could not find tap.properties.cache_key in /Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/extractors/tap-exchange-rates-api/tap.properties.cache_key, skipping.
2022-08-08T22:33:35.849094Z [debug    ] Could not find state.json in /Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/extractors/tap-exchange-rates-api/state.json, skipping.

Custom, possibly unsupported by the plugin:
base [env: TAP_EXCHANGE_RATES_API_BASE] current value: 'USD' (from `meltano.yml`)
start_date [env: TAP_EXCHANGE_RATES_API_START_DATE] current value: '2018-01-01' (from `meltano.yml`)
symbols [env: TAP_EXCHANGE_RATES_API_SYMBOLS] current value: ['CAD', 'MXN', 'AUD', 'EUR', 'USD'] (from `meltano.yml`)
meltano --log-level debug config tap-exchange-rates-api list  1.64s user 0.20s system 99% cpu 1.849 total

Vs in 2.4.0:
(.venv) ➜  dutchie-dagster-meltano git:(NoJIRA-upgrade-dagster-meltano) ✗ meltano --version
meltano, version 2.4.0
(.venv) ➜  dutchie-dagster-meltano git:(NoJIRA-upgrade-dagster-meltano) ✗ date && time meltano --log-level debug config tap-exchange-rates-api list && date
Mon Aug  8 15:46:01 PDT 2022
2022-08-08T22:46:45.104438Z [debug    ] Creating engine <meltano.core.project.Project object at 0x10c521760>@sqlite:////Users/dwall/repos/dagster/dutchie-dagster-meltano/.meltano/meltano.db
2022-08-08T22:46:45.406143Z [debug    ] loaded lazy attr 'SafeConfigParser': <class 'configparser.ConfigParser'>
2022-08-08T22:46:45.406251Z [debug    ] loaded lazy attr 'NativeStringIO': <class '_io.StringIO'>
2022-08-08T22:46:45.406330Z [debug    ] loaded lazy attr 'BytesIO': <class '_io.BytesIO'>

Custom, possibly unsupported by the plugin:
base [env: TAP_EXCHANGE_RATES_API_BASE] current value: 'USD' (from `meltano.yml`)
start_date [env: TAP_EXCHANGE_RATES_API_START_DATE] current value: '2018-01-01' (from `meltano.yml`)
symbols [env: TAP_EXCHANGE_RATES_API_SYMBOLS] current value: ['CAD', 'MXN', 'AUD', 'EUR', 'USD'] (from `meltano.yml`)
meltano --log-level debug config tap-exchange-rates-api list  76.80s user 0.50s system 97% cpu 1:18.94 total
Mon Aug  8 15:47:20 PDT 2022

More detail in Slack thread: https://meltano.slack.com/archives/C01TCRBBJD7/p1659998566724249?thread_ts=1659985256.778899&cid=C01TCRBBJD7

@dwallace0723 - Apologies for the delay. We've not yet been able to repro this on our side. We may need to ask for additional tests and/or a zoom call might be helpful to walkthrough with you. @WillDaSilva is digging deeper and may reach out for additional info if that's okay.

@aaronsteers no problem. happy to assist in any way I can.

cc @dehume

Thanks to @dehume, I've been able to review some fairly detailed profiling information taken from the slow run. I've attached a call graph below.
Almost the entire execution is spent running the standard library function copy.deepcopy. The two sites which are making the slow calls to deepcopy are:

https://github.com/meltano/meltano/blob/v2.4.0/src/meltano/core/project_files.py#L47
https://github.com/meltano/meltano/blob/v2.4.0/src/meltano/core/plugin/project_plugin.py#L178

Much of the time spent in the deepcopy calls is spent in ruamel.yaml.CommentedMap.__deepcopy__, which in turn calls deepcopy recursively approximately 111,400,000 times.
I am able to reproduce the performance issue locally by using a large meltano.yml file, most of which is a list of arbitrary numbers. As part of addressing this performance issue, a performance test should be added that ensures that having a large meltano.yml file (e.g. 1000 lines long) does not take significantly longer to process than a short meltano.yml file.

Possible approaches to resolving this:

Use a custom subclass of ruamel.yaml.CommentedMap that (somehow) avoids the problem.
Sufficiently avoid/reduce calls to copy.deepcopy.

@WillDaSilva thanks for digging! I think it's fairly safe to use copy.copy instead in
https://github.com/meltano/meltano/blob/3bf8d54b69b2758fb2f3fa7fd6bd0abde156ff3c/src/meltano/core/project_files.py#L47
That might improve performance somewhat.

@WillDaSilva thanks for digging! I think it's fairly safe to use copy.copy instead in
https://github.com/meltano/meltano/blob/3bf8d54b69b2758fb2f3fa7fd6bd0abde156ff3c/src/meltano/core/project_files.py#L47
That might improve performance somewhat.

This makes sense to me too - especially since that deepcopy reference is recursively called.

@edgarrmondragon Thank you for the suggestion. That helps, and is one of the improvements I had tried, but is insufficient on its own. I'm thinking we can probably solve this by caching a hash of meltano.yml in-memory along with data parsed from it. Then on subsequent reads, if the hash matches, we can avoid parsing the file, and the steep performance cost that comes with it.
Running strace on meltano --no-environment config tap-exchange-rates-api list reveals that the top-level meltano process reads meltano.yml 53 times.
@aaronsteers I'll take this opportunity to mention that if Meltano ran as a daemon, this in-memory caching could also apply to other calls to meltano, such as those mentioned earlier today during office hours wherein meltano calls a plugin which in turn calls meltano repeatedly to parallelize work.
Alternatively we could use on-disk caching by pickling the parsed meltano.yml content.

Running strace on meltano --no-environment config tap-exchange-rates-api list reveals that the top-level meltano process reads meltano.yml 53 times.

@WillDaSilva Yeah, that's too much for what should be a read operation 😬.

Looks like deep_merge does not preserve YAML comments. Might be worth addressing as another issue.

Looks like deep_merge does not preserve YAML comments. Might be worth addressing as another issue.

@WillDaSilva that's handled elsewhere by _raw_contents_map:
https://github.com/meltano/meltano/blob/3bf8d54b69b2758fb2f3fa7fd6bd0abde156ff3c/src/meltano/core/project_files.py#L80
AFAICT deep_merge doesn't need to preserve comments since the merged Meltano object wouldn't care about those. Wdyt?


fix(sdl2): Remove some unsafe acquire/release calls

Issue: From investigating https://github.com/ocaml/ocaml/issues/10422 - it looks like there are some uses of caml_acquire_runtime/caml_release_runtime that are actually unsafe - some callbacks, like the log or hit test callbacks, can actually be dispatched from these in certain platforms.
Fix: Remove these unsafe release/acquire pairs around the SDL2 functions that can dispatch events.

I know this is a "necessary evil", but is there any benchmark-able performance impact (just curious)? Also I wonder why this was exposed with 4.12.0

Good questions @zbaylin -

but is there any benchmark-able performance impact (just curious)?

From my profiling, the pollevents/waittimeout/etc aren't on the hot-path - that's rendering (and GC!)
I think what's more pressing for these is to have them actually wait instead of burning CPU (something like https://github.com/libsdl-org/SDL/pull/4180)

Also I wonder why this was exposed with 4.12.0

Some extra details here - but it seems the thread-local state management introduced in https://github.com/ocaml/ocaml/pull/9674 makes it more likely for us to hit a crash during an allocation outside of acquire/release. Without 4.12 - it's still unsafe and could potentially crash, just less likely 😬
I was also wondering if this could let us bring back https://github.com/revery-ui/reason-sdl2/pull/57/files - but I think that still have the issue of not being able to differentiate if the runtime is already acquired or not.

From my profiling, the pollevents/waittimeout/etc aren't on the hot-path - that's rendering (and GC!)
I think what's more pressing for these is to have them actually wait instead of burning CPU (something like libsdl-org/SDL#4180)

Gotcha -- that makes sense. My memory of the rendering pipeline is a little hazy so I didn't know if we were doing any rendering in those codepaths, but makes sense!

Some extra details here - but it seems the thread-local state management introduced in ocaml/ocaml#9674 makes it more likely for us to hit a crash during an allocation outside of acquire/release. Without 4.12 - it's still unsafe and could potentially crash, just less likely 😬

Oof, that's rough. I wonder if this means we're able to close out some of the random crash bugs in Oni!

I was also wondering if this could let us bring back https://github.com/revery-ui/reason-sdl2/pull/57/files - but I think that still have the issue of not being able to differentiate if the runtime is already acquired or not.

Oh that's a great point. I never did get a response to my forum question here: https://discuss.ocaml.org/t/determining-if-the-runtime-system-is-currently-acquired-from-c/6934. I tried to write a PR to the compiler to add in functionality to do that, but I got lost writing tests for it 😳

Thanks for looking this over, @zbaylin !

I've been thinking about it and this PR opens up some things that weren't possible in the past, namely continuous resize (#1077) and right-click menus on macOS! I think there are a lot of cases now where the ambiguity of "do we have the runtime lock?" is erased. 🎉


allow (all?) scalar types in vectorizer; black

Create signatures for each known scalar type to avoid explicit casting to one or another in the python code

This allows e.g. pwr and min_counts (in pow and replace_where_counts_gt, respectively) to be either float, int, or uint, and of any supported width

Bugfix: order of args to replace_where_counts_gt_gufunc was incorrect

decided to convert all scalars to FTYPE; subsequent PR will address the i4 scalar in replace_* and the bug of arg order in that gufunc


Extending scipy.signal's N-dimensional convolution functions to dask.array

[X] Tests added / passed
[X] Passes black dask / flake8 dask / isort dask

Can one of the admins verify this patch?

I couldn't stand having so many commits so I'll start another branch and push all of the changes in a single commit and open another pull request.


Support ScaledObject taking over existing HPAs with the same name while they are not managed by other ScaledObject

Provide a description of what has been changed
Checklist

[ ] When introducing a new scaler, I agree with the scaling governance policy
[ ] I have verified that my change is according to the deprecations & breaking changes policy
[ ] Tests have been added
[ ] Changelog has been updated and is aligned with our changelog requirements
[ ] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
[ ] A PR is opened to update the documentation on (repo) (if applicable)
[ ] Commits are signed with Developer Certificate of Origin (DCO - learn more)

Fixes #4457

Relates to #

@pragmaticivan Are you still working on this or waiting for us to review?

@pragmaticivan Are you still working on this or waiting for us to review?

Hi, sorry still working just used the draft so I can figure out how CI is working on this PR

No worries!

Folks, I am still not 100% sure, we should go into this direction - ie. changing ownership of existing resources. I might be wrong of course 🤷♂

@zroubalik All good, no attachment to the PR. Maybe we can figure out another creative way to migrate from traditional HPA to ScaledObject progressively.

@zroubalik All good, no attachment to the PR. Maybe we can figure out another creative way to migrate from traditional HPA to ScaledObject progressively.

Yeah definitely, one of my concerns is, what would happen if the HPA is managed by some other tool? We shouldn't change the ownership, as it could have consequencies.

@zroubalik I get it, but at this point, it becomes intentional. It requires the hardcoded HPA name + a flag requesting that to be done. If the person pushing that code reaches prod, its likely that they already have the permissions to do that manually and are just trying to migrate an HPA to Keda.
Right now, the option is to delete the existing HPA or disable the hook (which is way more dangerous in a multi-tenant cluster). The deletion causes a little bit of downtime because, for some reason, the default HPA behavior for removal is to go  down an up to what the workload has set for the number of replicas (which is also dangerous).

@zroubalik I get it, but at this point, it becomes intentional. It requires the hardcoded HPA name + a flag requesting that to be done. If the person pushing that code reaches prod, its likely that they already have the permissions to do that manually and are just trying to migrate an HPA to Keda.
Right now, the option is to delete the existing HPA or disable the hook (which is way more dangerous in a multi-tenant cluster). The deletion causes a little bit of downtime because, for some reason, the default HPA behavior for removal is to go down an up to what the workload has set for the number of replicas (which is also dangerous).

Yeah, these are valid points. I just want to be careful, we might be able to mitigate my concerns.

@zroubalik We discussed this in our previous standup; maybe the notes help get an idea as well - https://docs.google.com/document/d/1zdwD6j86GxcCe5S5ay9suCO77WPrEDnKSfuaI24EwM4/edit?usp=sharing

Hi, any progress on this PR?
Actually we need this feature so that our users will have Zero downtime during migration!

@bingikarthik I'm getting back to wrapping that up this week, although the code as it is should probably be enough to make the feature work as expected. Just learning my way around the codebase to make sure that's the case but I was able to add some tests.

Thanks @pragmaticivan for the update!

From a user perspective this seems relatively safe and un-surprising. If I ignore the new feature (don't add the annotation) then I get the existing behavior. In order to have it do something new, I would be required to explicitly add the annotation and specify the same name as an existing HPA.
One thing I'm not clear on from the PR is where I would specify the HPA name I'm looking to take over (I'm certain this will be covered in the forthcoming documentation).

metadata:
  annotations:
    keda.sh/transfer-hpa-ownership: "true"
spec:
   advanced:
      horizontalPodAutoscalerConfig:
      name: {name-of-hpa-resource}

@rwkarg yes, doc coming up once I gain confidence that the current code is ok.
For instance, it might be the case the label should be autoscaling.keda.sh/transfer-hpa-ownership instead.

/run-e2e scaled_object_validation

/run-e2e scaled_object_validation


Correct way to stop bot.message_loop()

Is there a correct way to stop polling and getting updates?

Unfortunately, no. :blush: You have to kill the process.


github-clone-all: command not found

I issued:
go get github.com/rhysd/github-clone-all

which quietly appeared to succeed. But then if if I try:
github-clone-all -extract '(\.vim|vimrc)$' 'language:vim fork:false stars:>1'

I get the simple error:
-bash: github-clone-all: command not found

I think I don't understand how the go get command works. (I'm not a usual go user).

you should put $GOPATH/bin to $PATH. anyway, it's not a problem of github-clone-all. Closing


Update persistence instance (when re-evaluated) on items

Currently, when a persistence definition is re-evaluated it will end up wit a new persistence instance in persistences.
But items still hold the previous instance which is not usable anymore.


Missing variants of search and intersect APIs

Current APIs in this RTree fill in results in either statically sized T[] or functionally via Consumer (since Java 8).
It would be nice to support general resizable targets such as any java.util.Collection or resizable T[]. Perhaps extend SpatialSearch with int search(HyperRect, T[], int) for paged search as well, like in Node.
Collection version isn't exactly hard to emulate with a Consumer but is very annoying to implement for every target collection type and not available on Android older than SDK 24.

Hi!   Thanks for your feedback.   I can look into adding this but it won't be an immediate priority for me.


Feature - Add calendarMode attribute

#288 #285

Week mode can now be set in xml as app:mcv_calendarMode="week". Default is still months.
Fixed some erroneous row calculations from prior assumptions.
XML Sample activity demonstrates this usage now, setting calendarMode to week

@quentin41500

👍 Looks good


Disable ARCH=um builds for now

tuxsuite needs to support ARCH=um.
Link: https://gitlab.com/Linaro/tuxsuite/-/issues/157

The presubmit checks passed, so I am merging without explicit approval to keep the CI moving and hopefully green. Please scream after the fact if you disagree with this change and I will address any feedback.


⚠ Bofrost.at has degraded performance

In 0ac8b4f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1917 ms

Resolved: Bofrost.at performance has improved in 4495429.


⚠ Bofrost.at has degraded performance

In eff965c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1504 ms

Resolved: Bofrost.at performance has improved in 3d65f0b after 6 minutes.


add a version (or --version)

Suggestion- seems you already provide this in the help but for debugging wouldnt a --version or -v option make sense?

@danpopSD PR building now


provide example of parsing headers from a Read

I found it really tricky to figure out how to do this, so I think that it would be nice to provide an example in the docs.

Thanks for trying to fix up the docs!
I'm personally not a fan of BufRead, and along with the likely case where async IO would be a good idea for HTTP, I'm inclined to not include such an example.


Cannot use GPU by launching dpm_ttic detector

Fill-out only one section depending on whether you are reporting a bug or a new feature.
Bug
Same bug with this #994 except that I have to use dpm_ttic
Steps to Reproduce the Problem
1.set Use GPU as true
1.use the dpm-ttic detector
1.run bag_file
Specifications

Ubuntu version:16.04
ROS Version:kinetic
Autoware branch:master

Not enough information, what is the error?


GitHub Codesource Full Stack App

Hi @strivedi4u How are You. I hope You are doing well .
🧑💻Project Description:
{ The GitHub CodeSource App is a cutting-edge web application designed to enhance your GitHub experience. This full-stack application, built using the MERN (MongoDB, Express, React, Node.js) stack, offers users an intuitive and user-friendly interface to explore and discover trending repositories based on programming languages. With features like detailed user profiles, repository information, and real-time updates, users can easily manage their favorite profiles and access advanced search functionalities }
I would like to contribute this project to the Hacktoberfest  2024 repository.
Assign me to the repository so I can start working on it. Once assigned, I will fork the repo, push my code, and submit a pull request for your review.Thanks

🚀 Follow me, 💬 Join the WhatsApp Group, and ⭐ Star the Repo to support our journey together!

Could I be assigned this issue?

@strivedi4u
Yes Here is my Issue Number :
GitHub Codesource Full Stack App #114
You can check it.

Please merge this into the latest main branch, as the previous submission wasn't accepted correctly. Kindly check it and let me know. Thanks! (latest pull request)


Fix probable copy-paste error in measureCharInner

Edit: considering the tests failed, can someone weigh in on the actual validity of this?
If it's all good, just ignore and close the PR, I guess.

Nope, that wasn't an error. It's computing a position relative to the top of a wrapping rectangle.


CLI changes to support flogo.json

Following changes are done:

For now, disabled all other commands like create, add etc
Enhanced build command so that users can specify application file path - flogo build -f </path/to/myapp.json>

Is it possible to add the new build command as a parallel command and leave the existing commands in place for now.  I worry it is too of an abrupt transition without having all the supporting calls.


Catalog Filter Panel:  How to display if only one filter?

It is projected that the catalog filter panel will have a keyword text input field and a few groups of checkboxes for Vendors and other metadata.  However, at the present time we only have the one keyword input filter.  It has been suggested that if we only have one input box as a filter is should not be on a panel but rather inline with the filter results.  Very similar to what we have/had previously.  We need some uxd input.
@serenamarie125 , @beanh66

Good point @dtaylor113! @cshinn curious if you already considered this piece in your design. If not, should we add to the documentation that the panel is only used at certain times once there is at least one category to filter on or what do you think?

@spadgett I agree. I think that it is better for consistency and ideally we'd have more faceted filters. I think having per-category filters is definitely a good direction to go.

This is not a problem in practice because the templates have a vendor set. It just wasn't showing up (fixed in #410).
Closing because we'll almost always have two filters.


Add a test to ensure styles aren't duplicated

We have a polymer 3 app that has been having some issues.
In certain circumstances on an unusual setup (it includes dynamic DOM injection) you might have a situation that leads to the following:
Failed to execute 'define' on 'CustomElementRegistry': this name has already been used with this registry
Only vaadin material elements have this issue: Polymer elements seem to be immune.
This test will ensure that duplicates don't happen.

This change is

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

It looks like you are loading 2 different versions of the Material styled components, which might result in some other components, except this one, to be also registered twice.
Consider doing the following things first:

Check if any component brings its own vaadin-material-styles version:

npm ls | grep vaadin-material-styles

The output should look e.g. as follows:
$ npm ls | grep vaadin-material-styles
│ │ │ ├──<EMAIL_ADDRESS>deduped
│ │ ├─┬<EMAIL_ADDRESS>│ │ │ ├──<EMAIL_ADDRESS>deduped

If there are different versions without "deduped" mark, run the command:

npm dedupe

If that doesn't help, try to check if the bundler you are using is configured properly.
See also Polymer/polymer#5407 for similar error.

Thanks for your help, I have already done this, every time I run npm dedupe it ends up returning 404's so I guess with what you are saying its the bundler.

@DanielTurner could you provide more information on your setup so that we could investigate?
The suggested workaround only removes the symptom, and I think we should fix the root issue instead.

How we fixed the issue:
Firstly we had different versions, but this was due to our package.json having something like this:
    "@vaadin/vaadin-material-styles": "@vaadin/vaadin-material-styles",
Which for some reason pointed to version 1.2.0 instead of 1.2.2, we have changed it to ^1.2.2.
The reason our bundler (polymer) didn't pick it up is probably because we have dynamic injection earlier on in the app and it doesn't understand what is going on. So we have to fill polymer.json with extraDependencies and in this case even run build before it works.
The solution is either don't do dynamic injection or get a better bundler. I really think ours is an edge case not many will have.

The solution is either don't do dynamic injection or get a better bundler. I really think ours is an edge case not many will have.

Agree that this should be resolved by making sure you only load each specific @vaadin dependency once, which should be doable with most of bundlers.
Closing per above comment and because there is nothing to fix on our side here.


Run on Kubernetes?

Anyone had any luck deploying this to (google) kubernetes?
When I build the image locally using only the Australian planet file, it's producing a ~25GB docker image. So by the time I push that to google container registry and attempt to run it on kubernetes with auto-scaling, it struggles. Seems to take hours for the image to be pulled, then it's downloading:

23GB dev.overpass-api.de/clone//2019-01-15/nodes.map
/nodes.bin.idx
/nodes.map.idx
/node_tags_local.bin
/node_tags_local.bin.idx
/node_tags_global.bin
24GB /ways.bin
etc etc etc

Is this normal or could it be trying to deploy the global Overpass API?

The files you're trying to pull are long gone since: http://dev.overpass-api.de/clone/ - they're only kept for at most 2 days.
Can you please stop your process, as 2019-01-15/nodes.map will never come back, and you're stuck in an endless loop now and only fill up the log files on the server.


Uncaught Error: ENOENT: no such file or directory, open $deletedFile

[Enter steps to reproduce below:]

open $file in atom
delete $file

Atom Version: 0.199.0-f48351e
System: linux 3.13.0-52-generic (Ubuntu 14.04)
Thrown From: Atom Core
Stack Trace
Uncaught Error: ENOENT: no such file or directory, open $deletedFIle
At events.js:141

Error: ENOENT: no such file or directory, open $deletedFIle
    at Error (native)

Commands
     -4:48.9.0 editor:move-to-end-of-screen-line (atom-text-editor.editor.is-focused.autocomplete-active)
     -4:47.5.0 core:save (atom-text-editor.editor.is-focused)
     -4:08.9.0 core:cut (atom-text-editor.editor.is-focused)
     -4:08.6.0 editor:delete-line (atom-text-editor.editor.is-focused)
     -4:07.4.0 core:backspace (atom-text-editor.editor.is-focused)
     -4:05.1.0 editor:newline (atom-text-editor.editor.is-focused)
     -4:04.8.0 core:paste (atom-text-editor.editor.is-focused)
     -4:02.9.0 editor:move-to-beginning-of-word (atom-text-editor.editor.is-focused)
     -4:02.3.0 editor:move-to-first-character-of-line (atom-text-editor.editor.is-focused)
     -3:59.5.0 editor:move-to-end-of-screen-line (atom-text-editor.editor.is-focused)
  3x -3:57.7.0 core:save (atom-text-editor.editor.is-focused)
  3x -1:17.8.0 core:copy (atom-text-editor.editor.is-focused)
     -1:15.5.0 core:paste (atom-text-editor.editor.is-focused)
  2x -1:14.1.0 core:save (atom-text-editor.editor.is-focused)
     -0:05.2.0 core:move-right (atom-text-editor.editor.is-focused)
     -0:04.4.0 core:save (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "projectHome": "/home/thomas/ws",
    "disabledPackages": [
      "tree-view",
      "background-tips"
    ],
    "audioBeep": false
  },
  "editor": {
    "fontFamily": "Source Code Pro Medium",
    "fontSize": 14,
    "invisibles": {}
  }
}

Installed Packages
# User
editorconfig, v1.0.0

# Dev
No dev packages

Duplicate of #6210, please subscribe there for updates.


Change license to MIT

Sometimes people ask to relicense this project under less restrictive license such as MIT.
I hope this will attract more developers and users to the project, and I will support this change. The project already has some contributors so I could not change it by myself.
@worldbeater
@danwalmsley
@ForNeVeR
@vladimirzenin
Please comment under this PR whether you support this change.

That's very good and positive move. Thank you!
I approve the change.

This is very good, thanks! I approve of this change.

I agree :)


May I ask when the author will upload the complete code

We're still refining OSEDiff and will make the model and code available once they're ready for prime time.


Feature/add tour detail view

Implements #11
Some things to note:

I added dayjs support because we were happy using it in our todo app. This works nicely with @Transform decorators from class-transformer library. However, we have to see whether this also works when sending the data to the API. I think we'll just have to use classToPlain when sending it back, so that should not be an issue :)
I fixed the types for our withAuthenticatedOrRedirect, because they were wrong. I noticed that when trying to access the context.params values as they were not present :) Now, they are properly typehinted and I think we should use params and not query in getServerSideProps, so I changed in the update views as well.
Notice the interface workaround I had to make - this is a bit ugly, but seems to be the only way to get it working without any hacks (because params can be string, string[] or even undefined 🤷 )

AH and by the way - if we're not using constructors in the DTO but assure types with !, it opens up other issues. I think we'll have to go with DTOs for both Create and Edit, and e.g. use them as Partial types like CreateTourDto extends Pick<Tour, "name" | "description"> or so.


Allow "Debug Console" editors

I think it would be incredible if "Debug Console" could be opened as an editor and thus open in floating "aux" windows. We already support this for other elements in the panel such as terminals and output channels but not for debug console yet.
I think this would require the debug console to be opened multiple times, which I hope is fine.

I think this would require the debug console to be opened multiple times, which I hope is fine.

Not sure why that's required, but I think it would be great if I could move debug console to editor area or floating window just like a terminal. :tada:

Pleaes allow all other windows to be "float-able", such as
watch
call stack
terminal
....


fix(PI): managerAPI causes problems with server

server requires a taskName, we should serve one as a default so the server doesn't bug us...

The problem was with reposting to the server. we're all good.


State value to set for "unifi.0.default.clients.MAC.noted" has to be type "boolean" but received type "string"

Hallo zusammen!
ich ahbe immer wieder im log warnungen bezüglich Objekt-Type.
State value to set for "unifi.0.default.clients.MAC.noted" has to be type "boolean" but received type "string"
Bitte um änederung.
Danke!

same here for every port:
2022-03-11 17:39:23.204  - info: unifi.0 (1040) State value to set for "unifi.0.default.devices.<mac_address>.port_table.port_<port_number>.speed" has to be type "number" but received type "string"
for "is upgradable":
2022-03-11 17:41:23.627  - info: unifi.0 (1040) State value to set for "unifi.0.default.devices.<mac_address>.upgradable" has to be type "boolean" but received type "string"
for uptime:
2022-03-11 17:42:23.721  - info: unifi.0 (1040) State value to set for "unifi.0.default.devices.<mac_address>.uptime" has to be type "number" but received type "string"
pls. fix this.
Thanks

Hallo,
ich hab das gleiche Problem. Zusätzlich kommt auch bei folgenden Objekten eine Meldung.

unifi.0
2022-03-13 10:27:33.520
info
State value to set for "unifi.0.default.vouchers.voucher_.used" has to be type "number" but received type "string"

unifi.0
2022-03-13 10:27:33.474
info
State value to set for "unifi.0.default.vouchers.voucher_.quota" has to be type "number" but received type "string"

unifi.0
2022-03-13 10:27:33.472
info
State value to set for "unifi.0.default.vouchers.voucher_.qos_overwrite" has to be type "boolean" but received type "string"

unifi.0
2022-03-13 10:27:33.468
info
State value to set for "unifi.0.default.vouchers.voucher_.duration" has to be type "number" but received type "string"

unifi.0
2022-03-13 10:27:33.415
warn
Object of state "unifi.0.default.num_new_alarms" is missing the required property "common.type"

Bitte um eine Änderung.
Danke

Gleiches Problem bei mir. Bei extrem vielen Datenpunkten falscher Objekt-Typ. Gibt es hier schon eine Lösung?

Wird irgendwann string gegen number geändert?

Same here, but only for devixes with a static ip. For example my Proxmox server

Please try GitHub version

0.6.0 on npm


maxCodePoints / minCodePoints (UTF-32 code points)

The length limit of VARCHAR in some RDBs is the number of UTF-32 code points.
maxLength counts an emoji and some kanji as two.
Password requirements by NIST:
https://pages.nist.gov/800-63-3/sp800-63b.html

Unicode [ISO/ISC 10646] characters SHOULD be accepted as well. To make allowances for likely mistyping, verifiers MAY replace multiple consecutive space characters with a single space character prior to verification, provided that the result is at least 8 characters in length. Truncation of the secret SHALL NOT be performed. For purposes of the above length requirements, each Unicode code point SHALL be counted as a single character.

This requires we should count an emoji or other 4-byte chracters as 1 character in a password.

You can use our new grapheme actions to count emojis that we added in v1.0.0-beta.1: https://github.com/fabian-hiller/valibot/releases/tag/v1.0.0-beta.1

new grapheme actions

The number of UTF-16/32 code points per grapheme is unlimited.

Thank you for your detailed feedback! How would you implement such an action? We also have byte actions like maxBytes but not sure if this is what you are looking for.

We can implement it based on the existing maxLength. Compare the result of codePointAt per character with 0x10000 and move the cursor forward by one more character if necessary.
You can combine maxBytes with others too. For a password, it can't be longer than 72 bytes if you hash it by bcrypt. It's compatible with maxCodePoints or maxLength.

Can you provide a code example for the if-statement to check the maximum code points?

Do you mean this?
https://github.com/fabian-hiller/valibot/blob/e3e87366158c4d2a3aaebe65056372c416836d1b/library/src/utils/_getCodePointCount/_getCodePointCountCount.ts#L14-L19


[Bug]: 'Add new row' hides from toolbar on disabling Filter & Download property in Table widget

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When 'Add new row' property is enabled then it should get disabled automatically on disabling Filter & Download option from toolbar
Steps To Reproduce

Drag & Drop Table Widget
Enable 'Add new row' property from property pane
Now disable Filter & Download option from Property pane
Observe that 'Add new row' option is not visible on toolbar

Public Sample App
No response
Issue video log
https://www.loom.com/share/4d04c54c06614216bda35e9974c88f85
Version
Cloud / Production

@sbalaji1192 can you fix this on priority? @chandannkumar this wasn't caught in the testing in release and dp is it?

@sbalaji1192 can you fix this on priority? @chandannkumar this wasn't caught in the testing in release and dp is it?

We might have missed this


when i publish website . i have 2 dist folder

when i publish website . i have 2 dist folder
/clientapp/dist
/wwwroot/dist
do i need both file for publish ?

Yes, one is all of your clientside dist files, one is used for the server-side rendering of the application.

Thanks for the answer @MarkPieszak!


Added Docker support

You'll want to add a .dockerignore file and append the following lines to it. Otherwise those files/folders will be added to the built container.
    .git/
    Dockerfile

Please merge this.


Enh: app/service alias for LB routing

Would be nice to able to use a sevice alias to quickly change routing to a new/previous version, without needing to reconfigure and/or redeploy.  Only updating the alias via cli should be sufficient to do so.
Initially its fine to just switch all routing.

So this is basically for canary or blue/green deployments, right?

Not directly. This is more where all traffic needs to be rerouted for upgrade/fallback.. More like dns alias.
Selective routing would also be nice, but not the focus here.


[5.9] Allow multiple throttles by naming

Related issues and PRs: #28323 #16786 #28339
Currently the key used to limit requests are generated by either user id or user ip, the request route is not considered. Therefor we have the following limitations:

We cannot apply throttle on a single route twice. For example, it is impossible to let users download at most 10 times a minute, but not more than 100 times an hour.

Route::post('/download', 'Ctrl@create')->middleware('throttle:10,1', 'throttle:100,60');

What currently happens is that we now count 2 hits on each request and after 5 request in a minute, he will be blocked for a minute.

We cannot use independent throttles on different routes:

// User can email 5 times an hour
Route::post('/email', 'Ctrl@email')->middleware('throttle:5,60');
// User can search 100 times an hour
Route::get('/search', 'Ctrl@search')->middleware('throttle:100,60);

What currently happens is that if a user searches 5 times in a 5 minute period, he/she is not able to email in the next hour.
This PR suggests that we name our throttles so that we can use them independently like the followings:
// User can send 1000 requests of any kind in an hour.
Route::prefix('pane')->middleware('auth', 'throttle:1000,60')->group(function() {
    // User can download 10 times a minute, but not more than 100 times an hour.
    Route::post('/download', 'Ctrl@create')->middleware('throttle:10,1,minute_download', 'throttle:100,60,hour_download');
    // User can email 5 times an hour
    Route::post('/email', 'Ctrl@email')->middleware('throttle:5,60,email');
    // User can search 100 times an hour
    Route::get('/search', 'Ctrl@search')->middleware('throttle:100,60,search');
});

PS: Beside adding an optional parameter to ThrottleRequests::handle function, the behavior is backward compatible. So probably this is OK for 5.8 as well.

@garygreen thoughts?

Overall I do like the simplicity of this approach and it's predicatable in what throttle buckets each route will go into. This is really just a simplified version of my original PR (which had tests) with key difference being this PR forces you to add a third parameter onto every route if you intend to throttle at a route level e.g. Route::get() Route::post().
My original PR was sort of the oposite - you only add a third parameter if you want "global-like" throttling into that specific bucket/key, otherwise it assumes you're throttling at a route level and will automatically generate the key for you. To me that makes more sense because with global based throttling your likely only going to configure it on a few routes at most, but if you primarily do route-level filtering then you'll be adding that third parameter on a lot more routes.

This seems pretty fine. @garygreen I wonder if we could build a middleware that extends this one that does the prefix generation for you based on the route somehow?

@driesvints
Can we document this?
I came across this today, while fixing the 429 issue on one of api endpoint.


Added further listplayer functionality

There are some changes here you might prefer different, I'll point them out in the comments

If you are too busy but want some of the changes/revert some of the changes I have here suggested in the comments, I can do it 😄 -- otherwise, cheers!

Hi again,
Thank you for your work in this pull request. To answer your comments:
Well, the convention I used throughout the codebase for getters is to ommit the "Get" part. I only use the "Set" prefix or other verbs when there's a mutator method, like a settter (e.g. SetPause). So, for consistency, the getter should be simply called MediaState not GetMediaState. It's not a problem that the name of the method is the same as its return type.
The next and previous methods of the list player are already implemented, they're just called PlayNext, PlayPrevious. Coincidentally, I added them just yesterday, before you made this pull request. :)
Let's not do locking just yet. From what I've seen from the code of libvlc, it might not be necessary.
I will leave the locking functions in, but they just won't be used right now.
Do you mind if I cherry pick the code in this pull request, and add the code myself? I think it's cleaner this way, no reverting necessary.

Don't mind at all 🙂  thanks for cleaning it up for me (I didn't realize you had added those methods 😳 -- also, I was moving too fast when I looked at MediaState! Didn't realize it's a method and the type wasn't being overshadowed!
Cool! thanks 🙂

Ok then. I'll close this pull request and extract the new code and add it to the project. Please delete your fork and fork this project again in order to avoid merges on future pull requests.
Thanks again for all your help with improving this repository :slightly_smiling_face:.


Recursive scenario file discovery

Closes #318

oh nice! maybe use kebab-case-for-test-dirs to match file-names?

Hmm, actually I should change the file names because my examples wouldn't actually work.  IIRC, the file names need to match allowed chars for a java class.


a question about paper

Hello,
I read the paper "Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks" and not clear about how the comparison was done between MAML and a pretrained network. Could you clarify my doubts?
It says "P(T) is continuous, where the amplitude varies within [0.1, 5.0]", does it mean amplitude follows a uniform distribution? And I am also not clear about how MAML model was applied on test after training. According to the described algorithm, MAML need a batch of tasks to adjust its parameters, when do the comparison, there is only one sinusoid curve.
Thank you!

大佬你好，
1.我个人理解是这个p(T)是模型的某种分布
2.我也没看懂怎么测试的，甚至训练怎么进行的都不清楚，至少文章中的图没有复现，代码不对应

大佬你好，
1.我个人理解是这个p(T)是模型的某种分布
2.我也没看懂怎么测试的，甚至训练怎么进行的都不清楚，至少文章中的图没有复现，代码不对应

训练的时候遇到问题  ： sample larger than population
你怎么解决

@cpzys2018
我也碰到這個問題，但是解決了。
utils.py  line 16
sampler = lambda x: random.sample(x, nb_samples)
改成:
sampler = lambda x: random.sample(x, nb_samples if len(x) > nb_samples else len(x))


Allow choosing a notification sound per stream (or even topic?)

Currently users can choose what notification sound they would like across the entire Zulip instance, but we've had a request to customize it per stream or even topic.

I would like to set the high-pitched ding for an important topic, and the low-pitched drum-like sound for all the other topics. If it's not possible at the topic-level, it would be nice to have it at the stream-level at least.

Customizing per topic seems difficult, but allowing user's to choose the sound that plays for a stream in the same way they can choose if the stream should receive audible notifications might be significantly easier.

Per-topic is theoretically possible with changes we have in mind for notification settings.  As is per-stream; it's mostly a matter of UI.
I think before investing in this, I'd want to add more sound files to our library.


If I login, and there are errors somewhere, I can't seem to logout.

Login as<EMAIL_ADDRESS>/ 12345 - then try to post a message. You will see errors, that we are going to fix (node lacks "http"
Fine. But I can't logout after that.


Cannot find *.ptx files

While trying to load .brain project files in to the simulator,  cannot find *.ptx file  exception is thrown. Where are these files?

These files are CUDA kernels (an intermediate representation that is compiled for the concrete GPU they're running at).
I'm assuming you are running Brain Simulator from the sources. Is it correct?
The files should be in directories for individual modules within the BrainSimulator binary directory, for example BasicNodes have the ptx files here (replace Debug for Release if you run it in Release):
Sources\Platform\BrainSimulator\bin\Debug\modules\GoodAI.BasicNodes\ptx
In each module project, there's a post_build.cmd script that should copy these files inside the BrainSimulator bin directory.
See Sources\Modules\BasicNodes\Module\post_build.cmd
Was it helpful?

Hi @PremekPaska ,

I'm assuming you are running Brain Simulator from the sources. Is it correct?
Yes I am running it from source in Debug mode. The I was opening the .brain files from  the other repo called BrainSimulatorSampleProjects and where there was no post_buld.cmd script. However, As you mentioned, there are three Mdules under Sources dir which have the post_build.cmd file.

Saying the above, I am not still clear how to resolve the issue. If I am not mistaken opening one of the .brain files from  BrainSimulatorSampleProjects  in the brain simulator with out any farther steps should work. Right?

Yes, samples should work (unless marked as obsolete -- there's just one such sample).
Did you build BrainSim from sources? If yes, please check if there are at least some ptx files in the directory mentioned above.


check if should receive long press event or not

check if should receive long press event or not using following method
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

cause cannot receive long press event on TTTAttributedLabel's superview with other UILongPressGestureRecognizer.

I don't really like the idea of having a default delegate an implementation. It leads to weird documentation warnings (like [UIView layer]'s warning).
On the other hand, I bet a lot of developers are doing exactly this, and it might be nice to save them the trouble.

This may also be a problem if you were counting on some other object serving as the gesture recognizer's delegate. Still, I think worthwhile. Thanks @dataich!

I don't really like the idea of having a default delegate an implementation.

@getaaron Surely I agree:cry:
@jhersh Thank you for merging!


7MB png resulted in 20MB jpg

I am curious if this is expected. After running a 7MB png (5120x2880 resolution) in guetzli darwin and waiting over 45 minutes for it to process, the file grew by 13MB.
Using a tool like Pixelmator took 5 seconds to convert the same png to a jpg at 84 quality, which resulted in a 4.9MB file.
./guetzli ./in.png ./out.jpg -verbose should result in quality 84, correct?

Care to share the JPG file you used?

BTW, quality setting is a made-up arbitrary scale, so it's not comparable between encoders (Guetzli's 84 may look the same as 80 in one encoder, or 95 in another encoder, and it may even vary depending on image content).

@pornel Guetzli's quality was mapped so as to correspond to libjpeg's quality for yuv444 (more precisely, Butteraugli score for quality X is the median Butteraugli score libjpeg generated at quality X on a corpus of images). This doesn't mean that there's an ideal correspondence between the two (libjpeg generates, as expected, a wide range of Butteraugli scores for the same quality on different images), but that comparing them is not completely silly.

I exported some photos from Aperture as a JPEG at quality "10". Then I exported the same photos as PNGs and used Guetzli to convert them to JPEG (using the default quality setting). In each of my tests the Guetzli-produced JPEG was the larger file. Any advice?

The pictures are fine, can you get help to solve the cdi issues. It will
make a difference.
On Mar 21, 2017 1:02 PM, "Travis Estell"<EMAIL_ADDRESS>wrote:

I exported some photos from Aperture as a JPEG at quality "10". Then I
exported the same photos as PNGs and used Guetzli to convert them to JPEG
(using the default quality setting). In each of my tests the
Guetzli-produced JPEG was the larger file. Any advice?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/guetzli/issues/76#issuecomment-288184816, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AZNZWF868JMGB-q3-9eQtbUDEyV5_2z4ks5roB67gaJpZM4Mhfzq
.

@taestell Not sure if you're being sarcastic, but in case you're being serious: Guetzli exports at quality 95 by default. It also tends to make large-ish outputs for a given quality setting, hopefully looking better to make up for it. Guetzli can only go down to quality 84.
There is no way to output a Guetzli JPG that will be smaller than another typical encoder's quality 10 output.
A quality 10 jpeg is probably unusable 99% of the time. so... I have a feeling you weren't being serious. :|


decoding nested data into a struct that contains a keyword list

I am trying to decode nested structure that looks like the following
%{"batch_id" => %{"S" => "Batch_1"},
    "documents" => %{"M" => %{
          "doc1" => %{"S" => "a document"},
          "doc2" => %{"S" => "another document"}
 }}}

using a structure Batch defined as
defstruct batch_id: nil, documents: nil
and ExAws.Dynamo.Decoder.decode(as: Batch)
will successfully create a structure for the first level, but unsurprisingly documents contains a map of its inner contents.
having spent a few hours reading through the code and unit tests I still can't work out how to define the batch such that the decoder knows to decode the inner documents into a keyword list. It looks like it should be possible but how to do it beats me.
Is this possible without adding custom logic into ExAws.Dynamo.Decodable? Just by defining the Batch struct differently to show what the inner list should be made of? If so any hints how?
Thanks

You need to define a custom implementation of the Decodeer protocol for your struct. There's no way that ExAws can know every possible internal representation, that's precisely what protocols are built for.
Here's an example from the tests: https://github.com/CargoSense/ex_aws/blob/master/test/support/user.ex#L5

Thanks, appreciate the quick response!


Global rf should not take place of local rf when all the runtime-filters' selectivity >0.01 and < 0.5

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

In case of  all the runtime filters' selectivity is above 0.01 and below 0.5, the top 3 runtime filters of the highest selectivity are chosen to filter data, but if we have more than 3 runtime filters, the 4th, 5th, etc. can take place of the chosen runtime-filter of the lowest selectivity only in two cases:

current rf is a local rf;
current rf is a global rf and the chosen rf of the lowest selectivity is also a global rf.

A global rf should not take place of local rf since global rf costs more time than local rf.
TEST
+===================================+========+================+
| query                             | 2.2.1  | this PR(2.2.2) |
+===================================+========+================+
| join.18_ssb_inner.q4.q_18_4_4.sql | 0.276s | 0.275s         |
| join.19_ssb_left.q4.q_19_4_4.sql  | 0.274s | 0.274s         |
+-----------------------------------+--------+----------------+

@Mergifyio backport branch-2.3


API error whilst retrieving events for camera

Checklist:

[x] I updated to the latest version available
[x] I cleared the cache of my browser

Release with the issue:
5.2.0
Last working release (if known):
Browser and Operating System:
Firefox, home assistant mobile app (ios and android).

Description of problem:

Probably 50% of the time when I check my cameras, the events do not load (the side tab thing does not show up) and after a few seconds I get the error message shown below.
Frigate version: 0.13.2-6476f8a
Frigate card diagnostic information
This is the error I am getting on the card when the events fail to load:
{
  "request": {
    "type": "frigate/events/get",
    "instance_id": "frigate",
    "cameras": [
      "doorbell"
    ],
    "limit": 50,
    "id": 48
  },
  "response": {
    "code": "frigate_error",
    "message": "API error whilst retrieving events for cameras ['doorbell'] for Frigate instance frigate"
  }
}

{
  "ha_version": "2024.2.3",
  "card_version": "5.2.0",
  "browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0",
  "date": "2024-02-27T09:19:49.056Z",
  "frigate_version": {
    "47ac916ca5d1661b5fe5f01f9e5360dd": "5.0.1/0.13.2-6476f8a"
  },
  "lang": "en",
  "timezone": "Europe/London",
  "git": {
    "build_version": "5.2.0-HEAD+g69249b6",
    "build_date": "Fri, 23 Jun 2023 15:26:26 GMT",
    "commit_date": "Thu, 22 Jun 2023 09:21:26 -0600"
  },
  "config": {
    "type": "custom:frigate-card",
    "cameras": [
      {
        "live_provider": "go2rtc",
        "go2rtc": {
          "modes": [
            "webrtc"
          ],
          "stream": "doorbell_main"
        },
        "camera_entity": "camera.doorbell"
      }
    ],
    "menu": {
      "buttons": {
        "microphone": {
          "enabled": true,
          "priority": 100,
          "type": "toggle"
        },
        "download": {
          "enabled": false
        },
        "frigate": {
          "enabled": true
        },
        "cameras": {
          "enabled": false
        },
        "mute": {
          "enabled": true,
          "priority": 85
        },
        "media_player": {
          "enabled": false
        },
        "fullscreen": {
          "priority": 34
        }
      },
      "style": "hidden"
    },
    "live": {
      "controls": {
        "builtin": false
      }
    }
  }
}

Javascript errors shown in the web inspector (if applicable):

Additional information:
Frigate config included in case it is useful.
mqtt:
  host: <IP_ADDRESS>
  port: 1883
  user: user
  password: pass

detectors:
  coral:
    type: edgetpu
    device: usb

record:
  enabled: True
  retain:
    days: 31
    mode: all
  events:
    retain:
      default: 31
      mode: active_objects

snapshots:
  enabled: True

ffmpeg:
  hwaccel_args: preset-vaapi

birdseye:
  enabled: false

go2rtc:
  streams:
    doorbell_main:
      - "ffmpeg:http://<IP_ADDRESS>/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=user&password=pass#video=copy#audio=copy#audio=opus"
      - rtsp://user:pass@<IP_ADDRESS>:554/h264Preview_01_main
    doorbell_sub:
      - "ffmpeg:http://<IP_ADDRESS>/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=user&password=pass"
    rear_main:
      - rtsp://user:pass@<IP_ADDRESS>:554/h264Preview_01_main
    rear_sub:
      - rtsp://user:pass@<IP_ADDRESS>:554/h264Preview_01_sub
  webrtc:
    candidates:
      - <IP_ADDRESS>:8555
      - stun:8555
  ffmpeg:
    bin: ffmpeg
    volume: "-af \"volume=30dB\""

cameras:
  doorbell:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/doorbell_main?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://<IP_ADDRESS>:8554/doorbell_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
      output_args:
        record: preset-record-generic-audio-copy
    detect:
      width: 896
      height: 672
      fps: 5
      enabled: true
    objects:
      track:
      - person
      - dog
      - cat
    motion:
      mask:
        - 896,0,896,169,896,267,660,296,547,233,470,255,377,244,237,230,97,230,0,253,0,0
        - 0,672,425,672,425,630,0,631

  rear:
    ffmpeg:
      inputs:
        - path: rtsp://<IP_ADDRESS>:8554/rear_main?video=copy&audio=opus
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://<IP_ADDRESS>:8554/rear_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
      output_args:
        record: preset-record-generic-audio-copy
    detect:
      width: 640
      height: 360
      fps: 5
      enabled: true
    objects:
      track:
      - person
      - dog
      - cat
    motion:
      mask:
        - 0,360,225,360,224,334,129,338,140,206,124,125,255,0,0,0
        - 296,360,640,360,640,0,367,0,490,67,513,315

came here looking for a reported issue, i am seeing similar behavior. It seems like it is happening more often to me (at least 50%)

This is because either the integration, or the Frigate backend, is returning an error to the card for some reason. I'd start by checking your Home Assistant logs and seeing if there's a log entry that aligns with the time you receive this message and you may get a clue. The request is likely triggered by fetching events/thumbnails, disabling the thumbnails would be a way to avoid the request being sent (and thus the errors being received).

This is the error log that is shown in HA, I don't know if there's a way of getting more detailed logs/info?
This error originated from a custom integration.

Logger: custom_components.frigate.api
Source: custom_components/frigate/api.py:244
Integration: Frigate (documentation, issues)
First occurred: 2:04:59 PM (1 occurrences)
Last logged: 2:04:59 PM

Timeout error fetching information from http://<IP_ADDRESS>:5005/api/events?cameras=doorbell&limit=50&include_thumbnails=0:

i run my frigate separate from HA. on the frigate side it is returning http 499

frigate  | 2024-02-28 16:49:09.424868720  <IP_ADDRESS> - - [28/Feb/2024:16:49:09 -0700] "GET /api/events?cameras=driveway-cam&limit=50&has_snapshot=1&include_thumbnails=0 HTTP/1.1" 499 0 "-" "HomeAssistant/2024.2.4 aiohttp/3.9.3 Python/3.12" "-"

in my case, it also crashes my camera feeds

frigate  | 2024-02-28 16:49:58.577091561  2024/02/28 16:49:58 [error] 146#146: *71483 upstream timed out (110: Connection timed out) while reading response header from upstream, client: <IP_ADDRESS>, server: , request: "GET /api/events?cameras=hagdrivewaycam&limit=50&has_snapshot=1&include_thumbnails=0 HTTP/1.1", upstream: "http://<IP_ADDRESS>:5001/events?cameras=hagdrivewaycam&limit=50&has_snapshot=1&include_thumbnails=0", host: "frigate.featherstone.xyz:15000"

and it seems to cause insane i/o (frigate isnt logging anything helpful during this i/o load)

i only experience this i/o load when i hit the frigate haas card. I have three instances of the card on my dashboard (three separate cameras). Frigate will never recover if i leave the haas card open. Once the dashboard/card is closed, frigate returns to normal.
The frigate logs show that there are several calls made from the haas card. Looks like 4 separate calls for each camera within about 3 seconds. I ran a watch command with a 0.1 timer

❯ watch -n 0.1 curl "http://a.b.xyz/api/events?cameras=driveway-cam&limit=50&has_snapshot=1&include_thumbnails=0"

and this also caused my i/o instantly. maybe this is an underlying frigate issue responding to several quick api calls

changing media_chunk_size on mine to 10 seems to stop it throwing an error.
Trying to look at the nginx logs but they seem a mess on my browser at work, will check when I get home.
The user in that issue looks to have a better viewer for the logs? Is there a way to view them that isn't the default 'logs' section in Frigate?

Having same issue. Reduced to 5 and still getting this message.

I am getting this issue as well.  Apparently it takes only a single occurrence of a failed API call to make the card crash.
This error originated from a custom integration.

Logger: custom_components.frigate.api
Source: custom_components/frigate/api.py:259
integration: Frigate (documentation, issues)
First occurred: 5:35:19 PM (1 occurrences)
Last logged: 5:35:19 PM

Error fetching information from http://cameranuc.local:5000/api/stats: Cannot connect to host cameranuc.local:5000 ssl:default [Invalid argument]

When I cut and paste the /api/stats URL into a browser, I get the correct JSON response as you would expect.    Continuous pings from the HA server to the Frigate server during the time of the failure do not show any disconnects, and the Frigate server does not show any errors in the Frigate, Go2rtc or Nginx logs.  Only 200 OK replies from the endpoint.
I also had VLC running a stream from the same Go2rtc  as the Frigate card, and it continues to run correctly at the same time that Frigate card failed.   This combined with the "invalid argument "card error log leads me to believe it's something in the card code itself causing the issue.

I’ve been trying to get to the bottom of this issue for a couple of month now. I really believe this is a SQLite issue not being able to respond to the queries in time the frigate-has-card sends it to the server .  And for some reason it halts the frigate server and restart the entire docker container .
Frequent vacuuming (daily reboots) may improve the SQLite . Another way I have manage to improve SQLite response is by sending an event request to the frigate server for each camera every hour. This for some reason improves the response time for each query… it does not completely solves it but at least is something …

I've got one page where I have 6 cards on it, all displaying a live feed with a 5 chunk. When I load the page, it shows the feed for a split second and then they all crash. If I set the chunk to zero, they display fine. Is there any way to lazy load these images / events? I wonder if them all hitting the server at once is killing it.

I've got one page where I have 6 cards on it, all displaying a live feed with a 5 chunk. When I load the page, it shows the feed for a split second and then they all crash. If I set the chunk to zero, they display fine. Is there any way to lazy load these images / events? I wonder if them all hitting the server at once is killing it.

Currently your best bet is to disable the thumbnails while on live view by disabling the thumbnails while live viewing, you can always access the event list by clicking on the event button.
live:
controls:
thumbnails:
mode: none

also creating an automation to send a request to the server per camera will also helps the SQLite response time.
In your HA configuration.yaml file add shell commands as:
'''
shell_command:
refresh_frigate_events_camera_name_x : 'curl -k -X GET "http://frigate_ip:5000/events?cameras=camera_name_x"'
refresh_frigate_events_camera_name_y : 'curl -k -X GET "http://frigate_ip:5000/events?cameras=camera_name_y"'
refresh_frigate_events_camera_name_z : 'curl -k -X GET "http://frigate_ip:5000/events?cameras=camera_name_z"'
'''
Then create an automation in HA that runs on a time pattern as:
'''
alias: Refresh Frigate Events Database Table per Camera
description: Refresh Frigate Events Database Table per Camera
trigger:

platform: time_pattern
minutes: /45
action:
service: shell_command.refresh_frigate_events_camera_name_x
data: {}
delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
service: shell_command.refresh_frigate_events_camera_name_y
data: {}
delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
service: shell_command.refresh_frigate_events_camera_name_z
data: {}
delay:
hours: 0
minutes: 0
seconds: 15
milliseconds: 0
'''

Give enough time between request for frigate's SQLite to respond to the request that has been sent by the automation. If you notice that accessing events for certain cameras are taking longer than 15 seconds then increase the delay for each request inside your ha automation.

Just started getting this. Removing thumbnails and reducing chunk size down to 2 hasn't helped. It logs that timeout very quickly.
HA log
2024-05-07 16:33:34.526 ERROR (MainThread) [custom_components.frigate.api] Timeout error fetching information from http://homeassistant.local:5000/api/events?cameras=driveway&limit=2&include_thumbnails=0:
Frigate nginx log (seems happy)
2024-05-07 16:33:34.741711164  <IP_ADDRESS> - - [07/May/2024:16:33:34 -0400] "GET /api/events?cameras=driveway&limit=2&include_thumbnails=0 HTTP/1.1" 200 0 "-" "HomeAssistant/2024.4.4 aiohttp/3.9.5 Python/3.12" "-"
Chunk size 0 seems to be working so far.

Maybe we could have a way to override the timeout value?

[Issue cleanup] I am curious if this is still a problem with the v6 releases: https://github.com/dermotduffy/frigate-hass-card/releases/tag/v6.0.0-beta.4
I suspect these releases should make fewer requests, and so lower the load on Frigate. I also added a new parameter that may help, max_simultaneous_engine_requests which you can set down to 1 to only make a single Frigate request at a time (next request blocks until the previous one returns`). https://card.camera/#/configuration/performance

Please re-open if you feel this is still an issue with the latest beta.


having issue in uploading at github

/needsMoreInfo

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Fix package publishing

We missed the org name for GitHub packages.

I saw a nuget url and ignored it, forgot we had the GH package feed 🤦


Fix RHEL8 FIPS enablement in integration test

Description
This PR fixes the core dump that was occurring in the omnibus-fips integration test scenario when run against RHEL8.
It also modifies the integration test pipeline to run omnibus-fips against RHEL7 due to an issue with Terraform not properly identifying the type of RSA key used to SSH onto the test instance.  In RHEL8, once FIPS mode is enabled, the machine will no longer allow the SHA1 based ssh-rsa algorithm access to the machine (see: https://bugs.centos.org/view.php?id=16720#c36524).
Issues Resolved
#2069
Check List

[ ] New functionality includes tests
[ ] All buildkite tests pass
[ ] Full omnibus build and tests in buildkite pass
[x] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco
[ ] PR title is a worthy inclusion in the CHANGELOG

Looks like this is failing the azure scenario - but that is not related to this issue.


Github Action build releases are broken

Building new releases is currently broken.
It either wants to fail to lookup packages, or it quits on webpack errors.
Been unable to resolve this issue yet.

Switched from yarn to npm to get around the issue


Added HasEsp32 and KeyRev

https://midetech.atlassian.net/browse/EF-171

Codecov Report

Merging #116 (e1905e1) into develop (bc383b3) will increase coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #116      +/-   ##
===========================================
+ Coverage    74.17%   74.23%   +0.06%
===========================================
  Files           10       10
  Lines         3647     3757     +110
===========================================
+ Hits          2705     2789      +84
- Misses         942      968      +26

Impacted Files
Coverage Δ

idelib/importer.py
62.09% <0.00%> (+5.39%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

We were also talking about a HwCustomRev element... Does the existing HwCustomStr element address this, and we just forgot about it? Or does it have a slightly different role?


Fix material alpha_mode in example global_vs_local_translation

Objective
The global_vs_local_translation example tries to use transparency to identify static cubes, but the materials of those cubes aren't transparent.
Solution
Change material alpha_mode to  AlphaMode::Blend for those cubes.

global_vs_local_translation does not use transparency in any way? I'm not sure where you got this idea. I'm running the example on main and on your branch and I see no difference.
Could you explain better why you think adding AlphaMode::Blend is needed?

@nicopap See the comments in toggle_movement system, it uses transparency to indicate which cubes can be moved

@holyfight6 It was my bad, I totally see the interest of this PR now. Thanks.

The ci build failed at some PPA error, has it been fixed now?

Yep, looks fixed.
bors r+


Activate Polygon

https://ledgerhq.atlassian.net/browse/LL-6965

@gre can you please put the Jira ticket number in the PR Title for readability ?


ShareFileClient.Resize

Library or service name.
Azure.Storage.Files
Is your feature request related to a problem? Please describe.
In previous versions of the SDK, it was possible to resize an Azure file.  This functionality is missing from the current SDK, but is very useful for scenarios where a user needs to append data to an existing file without downloading and re-uploading the existing file.
It would be useful to have a Resize method on ShareFileClient.

Never mind. I see now that this can be done with ShareFileClient.SetHttpHeaders.


Add Comment Write APIs to node client

Description
Adds node method for the write Comment APIs.

[x] create comment
[x] edit comment
[x] delete comment
[x] create thread
[x] edit thread metadata
[x] add comment reaction
[x] remove comment reaction

I've implemented the rest of the methods and added tests for some. Could you please take a look when you are free @FlowFlorent ?

@CTNicholas @pierrelevaillant As the functionality is new, it'd be good to release it with abeta tag in case we need to make a change.
What would be the best way to display the information?

I've also updated the existing getThreads, getThread, and getComment methods to return the modified data (that converts any ISO date strings to Date objects). This will therefore be a breaking change, but I think it's a useful breaking change, and since comments is still in open beta, I believe it is warranted. @nvie @FlowFlorent @CTNicholas any thoughts?
https://github.com/liveblocks/liveblocks/blob/1d500a2947f56eeef60cbc91c8e209d2d1969403/packages/liveblocks-node/src/client.ts#L969-L983

@CTNicholas @pierrelevaillant As the functionality is new, it'd be good to release it with abeta tag in case we need to make a change. The tag will mainly be for endpoints doing mutations. Our GET endpoints are stable.
What would be the best way to display the information?

I'll figure this one out!

Thank you @CTNicholas, such a quick turnaround!

@CTNicholas good catch! I will adjust it.