2022-05-30T07:17:22.232Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:17:22 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:17:22.238Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:17:22 INFO  Monitor:Monitor has new task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:17:22.238Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:17:22 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:17:22.253Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:17:22 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>228. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.238Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  Monitor:Monitor pops up task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.238Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  Monitor:Monitor runs task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.238Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  Monitor:Monitor has new task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:22.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:22 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  Monitor:Monitor removes task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: ZERO5-HOUSTON-Z-OUT_Z-APS-2. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.239Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.240Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.245Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  Monitor:Monitor has new task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.245Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:18:32.245Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:18:32 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>239. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  Monitor:Monitor pops up task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  Monitor:Monitor runs task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  Monitor:Monitor has new task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:32.246Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:32 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.247Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  Monitor:Monitor removes task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.247Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.247Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.247Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: ZERO5-HOUSTON-Z-OUT_Z-APS-2. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.247Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.248Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.248Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.253Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  Monitor:Monitor has new task: uploadLiveVideo-ZERO5-HOUSTON-Z-OUT_Z-APS-2.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.253Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}
2022-05-30T07:19:42.253Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-05-30 02:19:42 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>247. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=NEW}

@lightbulbkhuang
Could you please share your configuration to see if we can match on our end?

Here is my configuration for reference, thanks.

Thanks for sharing.
Could you check if our setup for model/ assets are good?

Hi @stylehaullong,
Notice the rtsp url points to a .mp4 file not living camera.
Could you take a snapshot on KVS console:
aws -> Kinesis Video Streams -> Video streams ->
what does Media playback window show?

Hi @cshang2017 it just says no media found

Hi @stylehaullong,
I have the same observation on my side once to set the RTSPStreamURL to rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4
To rule out the issue, could you use the live camera url as RTSPStreamURL?
the live camera url should look like:
rtsp://:@:554/

Hi @cshang2017
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 is a public test rtsp stream there is no user:password. We are were using this link as a test to not expose our own internal rtsp url.

Hi @cshang2017 ,
We found out what the issue was.. It was due to us using greengrass version 2.2 , once we updated to 2.4 it worked.
We did have another question, the stream does run into some latency issues.. I saw that the recommendation is to reduce the key-frame fragmentation is there an asset property that I can set or what is the best way to reduce latency if this isn't recommended anymore?

Hi @stylehaullong
Very appreciated for your information. We will consider your suggestions/requires for next iterations.
For frame fragmentation, is it possible to config from the video source?

Hi @cshang2017 ,
I could try from video source but there is also a setting from the producer library isn't there?
I was just seeing if you know where in the java code that is and I can make changes myself through a fork

Hi @stylehaullong,
Not 100% sure, but you can start from:
https://github.com/awslabs/aws-iot-greengrass-edge-connector-for-kinesis-video-stream/blob/main/src/main/java/com/aws/iot/edgeconnectorforkvs/videorecorder/util/GstDao.java#L66
with example of

how to change fps with script
https://stackoverflow.com/questions/20070625/how-to-control-the-frame-rate-in-a-gstreamer-pipeline

how to change fps in python
https://stackoverflow.com/questions/72010842/how-to-set-framerate-when-reading-feed-from-rtsp-cam-url-using-gstreamer-for-a-d

Hi,
I'm seeing a similar issue. Starting the component, everything works well and I can see the stream in the KVS console. After a few hours, I'm getting the below error.
aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}

OS: Raspbian GNU/Linux 10 (buster)
Greengrass CLI Version: 2.6.0
Component, aws.iot.EdgeConnectorForKVS: 1.0.4
Component, aws.greengrass.Nucleus: 2.6.0
I used the resourceManager.py to set up and configure all resources, using the following parameters
  Type: "EdgeConnectorForKVSCameraAsset"
  Name: "Camera_01"
  CaptureStartTime: "* * * * *"
  CaptureDurationInMinutes: 1
  LocalDataRetentionPeriodInMinutes: 2
  KinesisVideoStreamName: "hassela_camera_01"
  LiveStreamingStartTime: "* * * * *"
  LiveStreamingDurationInMinutes: 1
  RTSPStream: <my-local-rtsp-url>

Here's an excerpt of the logs which are now repeating:
2022-06-30T13:12:28.394Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:28 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:28.394Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:28 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.386Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.388Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.390Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.393Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.394Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.395Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.396Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.408Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.409Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:12:38.411Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:12:38 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>388. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.409Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  Monitor:Monitor pops up task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.410Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  Monitor:Monitor runs task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.411Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.412Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.413Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.413Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:38.414Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:38 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.412Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.414Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.415Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.415Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.417Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.417Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.418Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.437Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.438Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:13:48.439Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:13:48 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>412. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.434Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  Monitor:Monitor pops up task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.435Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  Monitor:Monitor runs task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.436Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.437Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.438Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.439Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:48.440Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:48 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.437Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.438Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.439Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.440Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.441Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.442Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.444Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.457Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.459Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:14:58.460Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:14:58 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>439. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.457Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  Monitor:Monitor pops up task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.458Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  Monitor:Monitor runs task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.461Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.462Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.463Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.464Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:15:58.465Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:15:58 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.462Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.463Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.464Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.465Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.466Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.467Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.469Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.481Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.482Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:16:08.483Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:16:08 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>462. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.481Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  Monitor:Monitor pops up task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.482Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  Monitor:Monitor runs task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.483Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.484Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.485Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.486Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:08.487Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:08 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.486Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.487Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.488Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.489Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.490Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.492Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.494Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.507Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.509Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:17:18.510Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:17:18 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>489. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.508Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  Monitor:Monitor pops up task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.509Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  Monitor:Monitor runs task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.511Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.512Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  VideoUploaderClient:Update MKV stats, src cnt 0, sink cnt 0. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.513Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  VideoUploaderClient:putMedia end from latch. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.514Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:18.515Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:18 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.512Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  Monitor:Monitor removes task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.513Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  VideoRecorderBase:Recorder0 is unbinding branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.514Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 WARN  RecorderBranchBase:Branch is already unbound.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.515Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  LiveVideoStreamingController:Connected streams for KVS Stream: hassela_camera_01. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.516Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  VideoRecorderBase:Recorder0 is going to bind branch branchOutputStreamPath.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.517Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  VideoRecorderBase:Recorder0 will bind branch branchOutputStreamPath after getting camera capability.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.518Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  LiveVideoStreamingController:Turned on outputStream in recorder and start uploading!. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.532Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  Monitor:Monitor has new task: uploadLiveVideo-hassela_camera_01.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.533Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  Monitor:Monitor sends signal to start checking.. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}
2022-06-30T13:18:28.535Z [INFO] (Copier) aws.iot.EdgeConnectorForKVS: stdout. 2022-06-30 14:18:28 INFO  VideoUploaderClient:Uploading from input stream, timestamp:<PHONE_NUMBER>512. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}

I'm not sure how to proceed with debugging this. I want to ingest the stream with KVS indefinitely.

Any input on how to debug the above?

@niklas-palm The log VideoUploaderClient:MKV stats unchanged, old src cnt 0, new src cnt 0, old sink cnt 0, new sink cnt 0. means there is data for uploading. By default uploader check it for every minute. So it seems there no data comes in for one minute. Could you check if the RTSP source available by using other tools like VLC player? Thanks.

Hi @weichihl, I'm attempting to stream 50+ on-premises RTSP cameras to AWS Kinesis Video Streams. Given that the Edge connector for KVS must be deployed on a Linux machine, how can I ensure high availability and avoid single point of failure in this case, so that if the on-premises Linux machine fails for whatever reason, the camera streaming continues? Please share your thoughts and ideas; they will be greatly useful to me.

I have the similar issue. I start video streaming from my raspberry pi camera as below:
raspivid -o - -t 0 -n -w 1024 -h 768 -fps 24 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

I can see media preview in the Media playback of the Kinesis Video Streams in the AWS Console, but it is intermittent. More often it is only 'Searching for media... Loading', or saying 'No media found'. The error messages are like:
ERROR VideoUploaderClient:MKV stats unchanged, old src cnt 17121941, new src cnt 17121941, old sink cnt 17121941, new sink cnt 17121941. {scriptName=services.aws.iot.EdgeConnectorForKVS.lifecycle.Run.Script, serviceName=aws.iot.EdgeConnectorForKVS, currentState=RUNNING}

My Greengrass v2 CLI version is 2.10.2, aws.iot.EdgeConnectorForKVS version is 1.0.4
I can view the video stream (rtsp://<IP_ADDRESS>:8554/) with Raspberry Pi VLC media player without problem, and CPU and memory usages are low.


Consolidate ace-jump-mode configurations

Yet another trivial change.
In general, I actually much favor having stuff split up into more files, especially for things that require their own configuration.  But not if it's only a few lines of configuration.
Closes #29.

Merging without review because this is not a big change.


Inbound cluster being recreated every 15s

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Whilst investigating other issues i've stumbled across the fact on an app that the inbound cluster is being recreated every 15s:
{"time":"2024-07-07T11:00:00.102641Z","level":"debug","scope":"envoy upstream","msg":"Created host inbound|8402||<IP_ADDRESS>:8402 <IP_ADDRESS>:8402.","caller":"external/envoy/source/extensions/clusters/original_dst/original_dst_cluster.cc:81","thread":"39"}
{"time":"2024-07-07T11:00:00.102673Z","level":"debug","scope":"envoy upstream","msg":"addHost() adding inbound|8402||<IP_ADDRESS>:8402 <IP_ADDRESS>:8402.","caller":"external/envoy/source/extensions/clusters/original_dst/original_dst_cluster.cc:231","thread":"30"}
{"time":"2024-07-07T11:00:00.102729Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"30"}
{"time":"2024-07-07T11:00:00.102736Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T11:00:00.102746Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"38"}
{"time":"2024-07-07T11:00:00.102760Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T11:00:00.102821Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"39"}
{"time":"2024-07-07T11:00:00.102834Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}
{"time":"2024-07-07T11:01:03.736037Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"30"}
{"time":"2024-07-07T11:01:03.736051Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"39"}
{"time":"2024-07-07T11:01:03.736062Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T11:01:03.736051Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"38"}
{"time":"2024-07-07T11:01:03.736084Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"30"}
{"time":"2024-07-07T11:01:03.736090Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T11:01:03.736073Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}
{"time":"2024-07-07T11:01:03.736098Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"38"}
{"time":"2024-07-07T11:01:03.736102Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"39"}

Then again:
{"time":"2024-07-07T11:15:00.077075Z","level":"debug","scope":"envoy upstream","msg":"Created host inbound|8402||<IP_ADDRESS>:8402 <IP_ADDRESS>:8402.","caller":"external/envoy/source/extensions/clusters/original_dst/original_dst_cluster.cc:81","thread":"38"}
{"time":"2024-07-07T11:15:00.077110Z","level":"debug","scope":"envoy upstream","msg":"addHost() adding inbound|8402||<IP_ADDRESS>:8402 <IP_ADDRESS>:8402.","caller":"external/envoy/source/extensions/clusters/original_dst/original_dst_cluster.cc:231","thread":"30"}
{"time":"2024-07-07T11:15:00.077158Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"30"}
{"time":"2024-07-07T11:15:00.077167Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T11:15:00.077173Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"39"}
{"time":"2024-07-07T11:15:00.077190Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}
{"time":"2024-07-07T11:15:00.077256Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 1 removed 0","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"38"}
{"time":"2024-07-07T11:15:00.077271Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T11:16:03.776238Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"30"}
{"time":"2024-07-07T11:16:03.776247Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"38"}
{"time":"2024-07-07T11:16:03.776269Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T11:16:03.776273Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T11:16:03.776264Z","level":"debug","scope":"envoy upstream","msg":"membership update for TLS cluster inbound|8402|| added 0 removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1542","thread":"39"}
{"time":"2024-07-07T11:16:03.776285Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"30"}
{"time":"2024-07-07T11:16:03.776286Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"38"}
{"time":"2024-07-07T11:16:03.776291Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|8402||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}
{"time":"2024-07-07T11:16:03.776299Z","level":"debug","scope":"envoy upstream","msg":"removing hosts for TLS cluster inbound|8402|| removed 1","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1818","thread":"39"}

The hosts aren't changing:
❯ k get pods -o wide
NAME                                       READY   STATUS    RESTARTS   AGE   IP             NODE                                                  NOMINATED NODE   READINESS GATES
search-one-consumer-bcp-5d985799df-4s57x   2/2     Running   0          45h   <IP_ADDRESS>   gke-delivery-platform-normal-20240415-3805948b-ocbt   <none>           <none>
search-one-consumer-bcp-5d985799df-8rrpg   2/2     Running   0          46h   <IP_ADDRESS>   gke-delivery-platform-normal-20240415-f317d386-u091   <none>           <none>

Nor are the pods becoming ready/unready etc:
❯ k get events
No resources found in search-one-consumer-bcp namespace.

I don't see anything in pilot either.
This doesn't happen on workloads that only have a single service, all the affected workloads have 2 services, eg:
❯ k get svc
NAME    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
admin   ClusterIP   <IP_ADDRESS>   <none>        80/TCP    2y182d
app     ClusterIP   <IP_ADDRESS>     <none>        80/TCP    2y182d

(pointing to different container ports).
Doesn't feel right?
Version
1.22.2

Additional Information
No response

Similar issue I had in the past https://github.com/istio/istio/issues/18088 where it was found to be nondeterminstic filter chain sorting causing reloads

So I wanted to grab a config_dump before and after and see if anything changes, however if i do a http://<IP_ADDRESS>:15000/config_dump to a pod, the output is different each time I run the curl (eg diff between two runs, its ordered differently) even if one of these listener reloads hasn't happened, it's like the config_dump output is being built up non-determinstically too which makes comparison more fiddly.

This doesn't happen on workloads that only have a single service, all the affected workloads have 2 services, eg:

Slight pivot on this statement because I don't want you to rabbithole, whilst it is true that I only see this on workloads with 2 services, I have also discovered it isn't all workloads with 2 services, so there's another factor in play.

This is reflected in envoy metrics too:
envoy_cluster_membership_change{cluster_name="inbound|8402||"} 337
envoy_cluster_membership_change{cluster_name="inbound|9402||"} 1

OK - i've disproved my earlier statement that it's apps with multiple services, it isn't.  Here's one with just a single service
{"time":"2024-07-07T12:56:10.975229Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}

~
❯ k logs vanarama-gateway-f579cdc79-6vfll -c istio-proxy | grep

~
❯ k get svc
NAME   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
app    ClusterIP   <IP_ADDRESS>   <none>        80/TCP    143d

~
❯ k get ep
NAME   ENDPOINTS                                                AGE
app    <IP_ADDRESS>:3000,<IP_ADDRESS>:3000,<IP_ADDRESS>:3000   143d

~
❯ k get events
No resources found in vanarama-gateway namespace.

~
❯ k get po -o wide
NAME                               READY   STATUS    RESTARTS   AGE    IP              NODE                                                  NOMINATED NODE   READINESS GATES
vanarama-gateway-f579cdc79-4sfrw   2/2     Running   0          2d3h   <IP_ADDRESS>    gke-delivery-platform-normal-20240415-eff46a03-3ofp   <none>           <none>
vanarama-gateway-f579cdc79-6vfll   2/2     Running   0          2d3h   <IP_ADDRESS>    gke-delivery-platform-normal-20240415-5f10739d-jpir   <none>           <none>
vanarama-gateway-f579cdc79-qczzs   2/2     Running   0          2d3h   <IP_ADDRESS>   gke-delivery-platform-normal-20240415-0d54d82d-1lfn   <none>           <none>

However this one seems to be every 25s

{"time":"2024-07-07T12:58:22.083558Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T12:58:22.083599Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T12:58:22.083644Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}

{"time":"2024-07-07T12:58:46.877051Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"30"}
{"time":"2024-07-07T12:58:46.877078Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"38"}
{"time":"2024-07-07T12:58:46.877094Z","level":"debug","scope":"envoy upstream","msg":"re-creating local LB for TLS cluster inbound|3000||","caller":"external/envoy/source/common/upstream/cluster_manager_impl.cc:1548","thread":"39"}

So much more frequent!
I just added the scrape config for prometheus for envoy_cluster_membership_change:

So 193/750 workloads (ish) are experiencing these frequent inbound listener reloads

I added the following to the Sidecar resource (explicitly defining the inbound listeners):
    ingress:
    - defaultEndpoint: <IP_ADDRESS>:8402
      port:
        name: http-app
        number: 8402
        protocol: HTTP
    - defaultEndpoint: <IP_ADDRESS>:9402
      port:
        name: http-app-admin
        number: 9402
        protocol: HTTP

And that "fixes" the problem which imo further points towards something similar to https://github.com/istio/istio/issues/18088 like non-deterministic sorting when the listeners are being generated from the container ports?
cc @howardjohn

Here's where I added the explicit Sidecar configuration for vanarama-gateway:

Thanks for the details. Could be a sorting issue like you said possibly (config dump won't necessarily show this). Will look into it more

I suspect it is because of cleanup interval  - If it is not used for some time (default check happens at 5s) it will be removed. Can you please try with this envoy filter and see if you are able to reproduce this?
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: cleanup-interval
  namespace: <namespace>
spec:
  configPatches:
  - applyTo: CLUSTER
    match:
      context: SIDECAR_INBOUND
    patch:
      operation: MERGE
      value:
        cleanup_interval: 24h

Bingo @ramaraochavali.
So the immediate questions that go through my head, from reading this "Hosts are considered stale if they have not been used as upstream destinations during this interval"

Inbound clusters routing through to an app on local host would surely never build up considering the destination is static (<IP_ADDRESS>:whatever)
Given that, would this envoyfilter be safe to apply at the cluster level as a mitigation?

Inbound clusters routing through to an app on local host would surely never build up considering the destination is static (<IP_ADDRESS>:whatever), so what value does this have?

Yes. I think we need to default this to a higher value for inbound original dst clusters

Why doesn't this happen if i use a Sidecar with ingress specified?

If you use sidecar, we do not create original dst cluster I believe

Given that, would this envoyfilter be safe to apply at the cluster level as a mitigation?

Yes.  I will push a PR to fix it properly in Istio

\o/ thanks

Nice find @ramaraochavali !


Callback doesn't fire for an Insert query

Below is my code
 var query = "INSERT INTO partners SET ?";
 var inserts = {
    partner_userid: options.partner_userid,
    password: options.password,
    email: options.email,
    phone_number: options.phone_number,
    registered_since : "FROM_UNIXTIME(" + (new Date()).getTime() + ")"
 };
 query = conn.format(query, inserts);

 conn.query(query, function(err, results) {
    console.log('aaaaaaaaaaaaaaaaaa');
    console.log(arguments);
    if (err) return cb(appConfig.errors._2010);
    cb(null, results.insertId);
 });

Statements in my callback statement don't seem to fire. Not even the console.log().

The query works fine.
The callbacks (console.log statements) seem to work fine for SELECT statements.
I'm running Mocha + Istanbul Unit Tests

Here's the code for the test
it("should create a new partner", function() {
  var options = {
                  partner_userid : "asdfsad",
                  password : "sadfasdf",
                  email : "sadfsadfsa",
                  phone_number : "123154"
                }

  myLib.add(options, function (err, results){
    expect(results).to.be.equal("aa");
    done();
  });

Is the call back really not firing or is it some mess up with the unit tests?
No matter what I write in my expect statement, the test is always successful. This doesn't happen to my unit tests with SELECT statements.

was missing "done" param in the test case. Time to sleep

Hi! Sorry I didn't get to your question before you were able to figure it out, but I'm glad you did!


Add docker-compose feature

Idea
Hi, me and my friend @MargotRasamy would like to add a docker-compose file to facilitate the deployment of the project.
Todo

[ ] Create docker-compose file in root of this project
[ ] Create Service backend-server

How do we make Service backend server?

Hey @Niravprajapati1-
This repo no longer is managed- it was from when we still hosted a frontend and backend for the website but found it just wasn't cost effective.
Peace,
Will


local build creates crazy directory

Describe the bug
I installed the plugin in control panel and then also for local dev.
It runs fine locally and I see the light house output in the terminal but it also creates a weird folder  "/home/wsl/wai/wai-website/C:\Users\steve\AppData\Local\lighthouse.41998921" which play havoc with git
To Reproduce

install the plugin with npm install
edit netlify toml;

[build]
# with debugging: command = "git submodule update --init --remote && bundle exec jekyll build --verbose --trace --config '_config.yml,_config_staging.yml'"
command = "git submodule update --init --remote && npm install && bundle exec jekyll build --trace --config '_config.yml,_config_staging.yml'"
publish = "_site"

[build.environment]
RUBY_VERSION = "2.6.2"

[[redirects]]
from = "/wai-website"
to = "/"
status = 404

[dev]
command = "bundle exec jekyll serve -w --livereload --config _config.yml,_config_staging.yml"

[functions]
directory = "_functions"
node_bundler = "esbuild"

[[plugins]]
package = "@netlify/plugin-functions-install-core"

[[plugins]]
# See https://github.com/netlify/netlify-plugin-lighthouse#readme
package = "@netlify/plugin-lighthouse"
[plugins.inputs.settings]
preset = "desktop" # default is mobile
locale = "en"
# to audit an HTML file other than index.html in a sub path of the build directory
#[[plugins.inputs.audits]]
#path = "pages/contact.html"

ntl build
get the folder C:\Users\steve\AppData\Local\lighthouse.41998921 in workspace

Expected behavior
No such windows path foldername  in workspace
Additional context
Local dev  is vscode remote dev on windows 11 using WSL (Ubuntu)

Hey @SteveALee, I had a go at looking in to this today, but it's a pretty specific setup to try and replicate! I have a feeling it's not specific to this plugin, but is something in the Chrome/Lighthouse setup itself.
To avoid the Git havok for now, have you had chance to try adding the directory to your .gitignore file? Using something like *Local\\lighthouse* should match the directory, regardless of whose name appears in it, or the numbers appended to the end (note the extra \ required to escape the one which was already there).

No problem. I'll leave it for now. Please close.


pyproject.toml based ape configuration [APE-1238]

Elevator pitch:
This pitch to document the pros and cons of switching from ape-config.yaml to pyproject.toml, as part of 1.0 release of the framework.
Many python tools are all using the single pyproject.toml file now. If your smart contract project uses ape test and ape run extensively, pyproject.toml is really nice because you can configure all your python tools together.
However, if your project only uses Ape a little bit and it uses Foundry (rust) or Hardhat (javascript) a lot more extensively, forcing the user to use the pyproject.toml is a worse experience than having a simple ape-config.yaml to configure the tool.
So there are definitely pros and cons to both; you really need to wear the different hats and think about what you would want to do.
Por que no los dos
Well, we have the ProjectAPI hook right now which allows a hook for reading configs... But it may be a lot more clearer even after the 1.0 launch where we revamp the plugin system a bit (and the project system honestly).  But in any case, we can create a plugin of some kind that uses pyproject.toml and still keep the ape-config.yaml as the "normal" way to configure. Many tools do this still!
Value:
devys
Dependencies:
knowing how pyproject.toml works i guess
Design approach:
mirror config in toml
uses known rules for copying them in but still to toml
Task list:

Weigh pros and cons
Decide if need to wait until post plugin revamp
Support
Document

Estimated completion date:
1.0
Design review:

Do not signoff unless:

agreed the tasks and design approach will achieve acceptance, and

the work can be completed by one person within the SLA.
Design reviewers should consider simpler approaches to achieve goals.

(Please leave a comment to sign off)

I kind of wanted to create this issue because I noticed we did not have it, I want community feedback, we are often discussing it, and I found this conversation ins mdformat really interesting: https://github.com/executablebooks/mdformat/issues/356
It is not exactly the same issue as ours but ultimately the same decision and the points are interesting to read.

If this is the way we want to proceed then I can take a look at implementing this feature

If this is the way we want to proceed then I can take a look at implementing this feature

I think this would require further research, so if you wanted to research it for us that would really help us in evaluating the solution and any gotchas it might have

As far as I know pyproject.toml is used mainly to manage project dependencies & stuff. So for now what if we just use it to populate the project name  & plugins parts for the ape-config? And eventually, add more options as we move forward.
As far as my daily use case only project name & plugins are the only part that overlaps.

As far as I know pyproject.toml is used mainly to manage project dependencies & stuff. So for now what if we just use it to populate the project name & plugins parts for the ape-config? And eventually, add more options as we move forward.
As far as my daily use case only project name & plugins are the only part that overlaps. In this way, we can keep the provision open for future improvements + upgrades & see how these changes are working out for now by making these small changes.

I think we should make ape work like a plugin to poetry eventually. For now, what we can do is add the ability to read config from those sections by prepending the tool's name to it e.g. [tool.ape.*] where you can add any first-level config to the toml file e.g. tool.ape.plugins

Yes, so we can make ape look for the pyproject.toml when we do ape init so that the ape-config.yaml get generated with all the initial info like project name & plugins we want to use.

I'm making a function to generate the ape-config.yml file. I'm putting this function inside /src/ape_init/_cli.py. I hope it's fine

Good example of how it might look like:
[tool.ape]
contracts_folder = "contracts"

[[tool.ape.dependencies]]
name = "openzeppelin"
github = "OpenZeppelin/openzeppelin-contracts"
version = "x.x.x"

[[tool.ape.plugins]]
name = "hardhat"

[[tool.ape.plugins]]
name = "solidity"
version = "0.8.1"

something I just realized we will have to consider: global / root pyproject.toml files are a thing. So now there will be 2 places for root Ape config, unless we deprecate the ~/.ape one

Good example of how it might look like:

Can you show how configuring a plugin also works? Like ape-solidity

Good example of how it might look like:

Can you show how configuring a plugin also works? Like ape-solidity

[tool.ape.solidity]
evm-version = "cancun"


Parallel Hyperparameter Search

Assign workers to devices such as GPU / CPU. The list of devices can now be provided as an argument.
Fix an issue when we were not setting number of threads for each process. This basically made the CPU parallelization even slower when a sequential run. Now this is fixed. Link to the issue.
Add num_workers parameter to define the size of the pool of processes. Still not sure about this one though as we still need to wait for all of the workers from the same iteration so that we can get the hypervolume. So maybe we can just spawn the same number of processes as num_seeds.
There was a bug in one of the initializers of the Envelope and PCN algorithms, where we were passing device as an id making it essentialy always default to the same GPU.

TODO:

True GPU parallelization of policy evaluation / model update step.


Use applySnippetWorkspaceEdit again for actions, allow it to create files

Fixes #7037

Well that is quite lovely, this function actually just appends edits. Never trust the docs I guess 😅

Mmh looks like this approach won't work as I just found an implementation bug in vscode.WorkspaceEdit.set, https://github.com/microsoft/vscode/issues/113512
I don't really see how this could be fixed otherwise though as the WorkspaceEdits have a very limited api surface.

Alright, this works for me now. Snippets are correctly applied again while module extraction keeps working as well. Nevertheless I'd appreciate a second set of eyes testing whether this really works just in case.

bors r+
Thanks!


PA3 Level 1

Hi, can anyone explain what this level is asking for, dont really understand the static part .
Thanks

you can refer to imlist and see how it uses static method of to create new imlist. It's just another way of creating an object without using the new Object way of constructing it

Use ImList as reference

Hi, static is basically a global variable. In this case if u read part 1 of PA3, u should see that u should be using private final for ur attributes instead of static (it resets)

U can take ImList as a reference on how the of method was implemented. The method construction is pretty similar so I think it's easier to understand if u look at that!


setup.py requires very old python-can dependancy

requires_list = [
"bitstruct >= 6.0.0",
"argparse_addons",
"PyInquirer",
"jinja2",
"python-can < 4.0",
Since python-can 4.0 and later is strongly recommended by the python-can community, what is the reason for odxtools to require an old version which has many unresolved issues?
Do you plan to be compatible with  python-can 4.0 and later?

Do you plan to be compatible with python-can 4.0 and later?

we already are. this restriction is an artifact of a very old odxtools version...

Thank you for the fast reaction!
When should we expect a new release?

release done...


Setting to add a custom file extension to "actual" and "golden" files

It would be helpful if there was a fileExtension :: String setting inside Golden. For example "png" or "html".
This way the files would be named "actual.png" and "golden.png" and it would make it possible to directly view the files by double clicking them, and also would make the contents of the files clearer.
Thank you

Thanks for the suggestion @bitc Sounds good to me, but I'm busy this week and I won't be able to do it right now. Nevertheless, feel free to open a PR if you want to work on it. :slightly_smiling_face:


variables - accessing Kirki class instance in my compiler file

I am trying to use Kirki to write SCSS variables to a file before compiling my CSS. I am following the documentation here https://kirki.org/docs/arguments/variables.html. I am using http://leafo.net/scssphp/ as my scss php compiler.
I am stuck on the line $variables = Kirki::get_variables(); (third section of code in the documentation). I can't figure out which file to include to get a reference to the Kirki class. I've tried 'kirki.php' in the plugins folder, 'include-kirki.php' in my theme's lib folder, and 'class-s216master-kirki.php' the wrapper class for Kirki for my theme.
Any help would be greatly appreciated!
`<?php
require "scss.inc.php";
//require dirname(FILE).'/../../../plugins/kirki/kirki.php';
//require 'class-s216master-kirki.php';
//require 'include-kirki.php';
ob_start(); // Capture all output into buffer
$variables = Kirki::get_variables();
foreach ( $variables as $variable => $value ) {
echo '$' . $variable . ':' . $value . ';';
}
$scss = ob_get_clean(); // Store output in a variable, then flush the buffer
$directory = "../assets/styles/main";
file_put_contents($directory . '/_kirki_variables.scss', $scss, LOCK_EX);
scss_server::serveFrom($directory);
?>`

I don't get it...
If Kirki is installed as a plugin and activated, then you should be able tyo simply do something like this:
add_action( 'customize_save_after', function() {
  // Your code here
});

Oh I see, I was trying to get the Kirki variables in my compiler file. I didn't realize I should do that from the Wordpress functions file. I tried your suggestion and it's working now. Thank you so much!


HHH-13500 Fix audit strategy sub-query return incorrect results

https://hibernate.atlassian.net/browse/HHH-13500

Thanks @Naros


Fix: GPR curation for subsystems related with amino acid

Main improvements in this PR:
As proposed in #891

Remove ENSG00000134333 from MAR04287;
Remove ENSG00000133048 from MAR08375;
Remove ENSG00000159423 from MAR00088;
Remove ENSG00000181652 from MAR03995;
Remove ENSG00000165672 from MAR04120;
Remove ENSG00000138801, ENSG00000198682 from MAR07128;
Remove ENSG00000165996, ENSG00000206527 from MAR05288;
Remove ENSG00000128683 from MAR04174;
Remove ENSG00000006695 from MAR05337;
Remove ENSG00000181652 from the model as it's not connected with any reactions after this curation.

I hereby confirm that I have:

[X] Tested my code on my own computer for running the model
[X] Selected develop as a target branch
[ ] Any removed reactions and metabolites have been moved to the corresponding deprecated identifier lists

LGTM!


fix: zero-fee block feerate graph not rendering

The feerate graph would previously not render for blocks with zero-fee
transactions. Zero values don't work with the y-axis log scale.
closes https://github.com/0xB10C/miningpool-observer/issues/27

before:

after:


Where to store metadata related to the email account and/or folder

The standard doesn't seem to make clear where to store metadata related to the email account and/or folder that may be important to understanding the contents. For example:

The history of name changes of the account
The history of mail aliases of the account
The history of mail forwarding of the account
The history of users of the account (for role-based accounts)
...

It's probably outside of the scope of the document to specify a format for this metadata, but it should acknowledge the existence of the metadata and describe where it should be stored / linked to.

Addressed by #9


docs(webpack): remove api key related sections from ui-toolkit

PR Checklist

[ ] Leverages formatting as provided by https://squidfunk.github.io/mkdocs-material/reference/abbreviations/
[ ] Have viewed and verified edits in rendered form ensuring proper formatting

What are you changing?

-Removed api key related details from the webpack configuration document
Anything the reviewer should know when reviewing this PR?

We'll hold these to v1.4 is ready


add link to a-frame

Not sure if this is appropriate, just thought this might be a relevant resource to get started.

No complaints here!


Loading error with RSpec 3

I get a load error when using this gem with RSpec 3
/Users/pivotal/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.3/lib/rspec/core/formatters/base_formatter.rb:1:in `<top (required)>': uninitialized constant RSpec::Support (NameError)
	from /Users/pivotal/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-rerun-0.1.3/lib/rspec-rerun/formatters/failures_formatter.rb:1:in `<top (required)>'

Looks like a new version of an old problem, popping back up due to changes in RSpec 3. Other gems are having similar problems.
I worked around it using the original solution from that old issue:
gem 'rspec-rerun', require: false
and
require 'rspec/core/rake_task'
require 'rspec-rerun'

This should have been fixed on HEAD, please try.


Serenity/JS should support WebdriverIO 9

What's the problem you're trying to solve?
WebdriverIO 9 is now stable, and Serenity/JS should support it.
However, the WebdriverIO team will support WebdriverIO 8 until August 2025, so it would be great if Serenity/JS could support both WebdriverIO 8 and 9 simultaneously.
Apart from new features, WebdriverIO 9 introduces several significant breaking changes that prevent Serenity/JS from supporting both v8 and v9 using the same @serenity-js/webdriverio module:

element retrieval now requires an explicit call to getElement()
devtools module is removed, and so is the browser.isDevTools property
@wdio/types has changed the type definitions describing configuration properties

How would you like to solve it?

[ ] Introduce a new @serenity-js/webdriverio-8 module to continue supporting WebdriverIO 8 installation
[ ] Migrate the existing @serenity-js/webdriverio module to work with WebdriverIO 9
[ ] Migrate Serenity/JS Project Templates for WebdriverIO to use v9

Are there any alternatives?
The alternative to introducing a separate module to support WebdriverIO 8 would be to drop support for WebdriverIO 8 altogether, but a significant majority of WebdriverIO users still use v8.
How can we make it happen?

[X] work on this myself (with Serenity/JS team guidance)
[ ] hire the Serenity/JS team to build it for me
[ ] add it to the Serenity/JS backlog and wait for a volunteer

WebdriverIO 9 migration notes
Configuration
- import { WebdriverIOConfig } from '@serenity-js/webdriverio';
+ import { WithSerenityConfig } from '@serenity-js/webdriverio';

export const config: WebdriverIO.Config & WithSerenityConfig = {

-  automationProtocol: 'devtool', // no longer supported

}


Inaccurate Presence for users with multiple sessions

I experienced some weird behaviour with presence.
In my test setup, I have a little app where I can login using username/password, defined in the users.yml file. I use a single DS instance (2.0.1) without any connectors.
I opened the app in two browser tabs on the same device and browser and:

logged in on tab 1 -> presence listener gets triggered with the login
logged in on tab 2 -> presence listener does nothing
logged out on tab 1 -> presence listener gets triggered with the logout
logged out on tab 2 -> presence listener does nothing

So, in reality, after step 3, I am still logged in on tab 1 but DS thinks I am logged out.
It's not only the listener. When I request the full list of logged in users after step 3, it's empty too.

This should have been fixed in 2.1.0, can you confirm?

Yep, working all fine since that release!


PoC: Map based IP ingress filter in XDP

A standalone BPF program that can run in XDP mode that drops packets based on a list of disallowed IP prefixes. The purpose is to shield a node running cilium from DDoS attacks in an environment where malicious IPs are known.
Phase 1:

The configuration of disallowed source IPs occurs via a BPF map

Later phases (post PoC):

Destination IPs are limited to entries in local endpoint map or local node IPs

If destination IP is local endpoint, source is limited based on ingress CIDR rules or allowed source identities.

(PoC and measurements done and pushed out.)

Will make separate one for cilium.


add example:docker moderate-nginx-https-letsencrypt-certificate

add missing task 34 add example:docker moderate-nginx-https-letsencrypt-certificate of docker examples

I will be merged after the test. Thank you.


Missing jobs from site peviitor.ro, company "allengra"

URL: https://peviitor.ro/
browser: Chrome
device: Computer
OS: windows

Steps to reproduce

Open the company recruitee page: https://allengra.eu/career.php
Pay attention that are showed four jobs
Open peviitor URL
Put the name "allengra" in the search field
Press the enter button
Pay attention that is displayed only a job "RTL Design Engineer".

Expected results

It should displayed on peviitor.ro site all the jobs from "allengra" site.

Actual results

There is displayed only a job on peviitor.ro

Fixed can you retest?

Retest.


Implement writing data to semantic web

Currently, you can only read data from the semantic web, but there needs to be a way to write data to the semantic web, too

[ ] Implement writing data to RDF server using PUT-REST-requests

As described here: https://www.w3.org/TR/sparql11-protocol/ there exists a SPARQL-update operation, with which to update content on the semantic web. Can this also be used for adding content?

"2.2.3 Specifying an RDF Dataset
SPARQL Update requests are executed against a Graph Store, a mutable container of RDF graphs managed by a SPARQL service. The WHERE clause of a SPARQL update DELETE/INSERT operation [UPDATE] matches against data in an RDF Dataset, which is a subset of the Graph Store. The RDF Dataset for an update operation may be specified either in the operation string itself using the USING, USING NAMED, and/or WITH keywords, or it may be specified via the using-graph-uri and using-named-graph-uri parameters.
It is an error to supply the using-graph-uri or using-named-graph-uri parameters when using this protocol to convey a SPARQL 1.1 Update request that contains an operation that uses the USING, USING NAMED, or WITH clause.
A SPARQL Update processor should treat each occurrence of the using-graph-uri=g parameter in an update protocol operation as if a USING  clause were included for every operation in the SPARQL 1.1 Update request. Similarly, a SPARQL Update processor should treat each occurrence of the using-named-graph-uri=g parameter in an update protocol operation as if a USING NAMED  clause were included for every operation in the SPARQL 1.1 Update request."

The update method would be supported in Apache Jena Fuseki: https://jena.apache.org/documentation/fuseki2/index.html

From https://www.w3.org/TR/sparql11-update/#insertData
Example 1: Adding some triples to a graph
This snippet describes two RDF triples to be inserted into the default graph of the Graph Store.
PREFIX dc: http://purl.org/dc/elements/1.1/
INSERT DATA
{
http://example/book1 dc:title "A new book" ;
dc:creator "A.N.Other" .
}
Data before:
Default graph
@prefix dc: http://purl.org/dc/elements/1.1/ .
@prefix ns: http://example.org/ns# .
http://example/book1 ns:price 42 .
Data after:
Default graph
@prefix dc: http://purl.org/dc/elements/1.1/ .
@prefix ns: http://example.org/ns# .
http://example/book1 ns:price 42 .
http://example/book1 dc:title "A new book" .
http://example/book1 dc:creator "A.N.Other" .


Release Google.Cloud.Recommender.V1 version 2.8.0

Changes in this release:
New features

Recommendation Priority / Insight Severity (commit 48d865e)
Recommendation xor_group_id (commit 48d865e)
Recommendation security projection (commit 48d865e)

Created release for Google.Cloud.Recommender.V1-2.8.0


MultiSelect.Filterable : clears the filter after one selection, not allowing multi select.

Detailed description

Describe in detail the issue you're having.

When using MultiSelect.Filterable, we are able to filter the items and display filtered list based on filter string, but the filter is cleared just after one selection.

Is this a feature request (new component, new icon), a bug, or a general issue?

Bug

Is this issue related to a specific component?

MutliSelect

What did you expect to happen? What happened instead? What would you like to see changed?

Expectation is to allow user to select multiple items in the filtered list .

What version of the Carbon Design System are you using?

6.39.3
Steps to reproduce the issue

Have a list with items as " item 1", "list 1", "item 2", "list 2"
Filter in MultiSelect component for filter string "2"
Select item2, then the filter is cleared, before we select the list 2.

Hi 👋  tagging @IBM/carbon-designers to see if this is the recommended pattern they would expect.

Yes, I think it fine to have the filter stay after selection. However, I think the filter should still clear after the menu is closed.

Hi, any updates on when this bug will be fixed.

Hi @sandhya-r-reddy this is isn't currently prioritized in our upcoming sprints for the year. However, we always welcome PRs and fixes if this is something you or someone on your team would like to take on.


add timestamp640, pulse_gen640

add 2 modules

pulse_gen640 cannot be simulated... it includes an interface from xilinx.

Now it is available: https://github.com/Xilinx/XilinxUnisimLibrary ?

XilinxUnisimLibrary requires SecureIP which is bundle with vivado


fix: verify TokenSource exists in TokenExpiration()

Change Description
Updates TokenExpiration() to return a zero value if TokenSource is unset.
Checklist

[x] Make sure to open an issue as a
bug/issue
before writing your code!  That way we can discuss the change, evaluate
designs, and agree on the general idea.
[x] Ensure the tests and linter pass
[x] Appropriate documentation is updated (if necessary)

Relevant issues:

Fixes #640

Fixes my issue! Thanks


Improve matches with known ASIN

Some cover from Amazon have different aspect ratio compared to "Comixology" cover which ruins the matching of the image matching by a ton.
Example:

1044446: B0D3NKP23D, (UJPDoHs and VJPDoHs)

I've started adding a new field to the search results called asin which mapped to Amazon ASIN. If you know some ID to ASIN mapping please comment on this issue.
Relevant commit: https://github.com/noaione/cmx-ermitteln/commit/b65e6823bc35d71469c9f8219358f7d93125f257

The example only have 1 typo but Meili somehow not returning with my typo tolerance settings? I adjusted oneWord to 7 and twoWords to 7 and it works now.


allow getting arakoon config from another arakoon

ok, but we might want to push through on the client config.


Change of wanted_words resulting very low recognition accuracy (only 24%)

Hi, there, I changed several wanted_words in "train.py" as:
"up,down,left,right,stop,go,follow,forward,backward,on,off"
I then trained ds_cnn_s model using instructions in "train_commands.txt"
"python train.py --model_architecture ds_cnn --model_size_info 5 64 10 4 2 2 64 3 3 1 1 64 3 3 1 1 64 3 3 1 1 64 3 3 1 1 --dct_coefficient_count 10 --window_size_ms 40 --window_stride_ms 20 --learning_rate 0.0005,0.0001,0.00002 --how_many_training_steps 10000,10000,10000 --summaries_dir work/DS_CNN/DS_CNN1/retrain_logs --train_dir work/DS_CNN/DS_CNN1/training"
I changed the wanted_words in "test.py" to the same ones above and
"python test.py --model_architecture ds_cnn --model_size_info 5 64 10 4 2 2 64 3 3 1 1 64 3 3 1 1 64 3 3 1 1 64 3 3 1 1 --checkpoint=/Users/michaelhe/ml/asr/ML-KWS-for-MCU/work/DS_CNN/DS_CNN1/training/best/ds_cnn_9294.ckpt-27200"
INFO:tensorflow:set_size=33946
INFO:tensorflow:Confusion Matrix:
[[2837    0    0    0    0    0    0    0    0    0    0    0    0]
[  60 2174    0    0    0    0    0  654    0    0    0    0    0]
[ 163 1902   22    0    0    0    0  800    0    0    0    3    0]
[  48 1225    0   35    0    0    0 1909    0    0    0    0    0]
[  52 2636    0    0   12    7    0  409    0    0    0    0    0]
[  36 2420    0    0    0  345    0  180    0    0    0    0    0]
[  86 1204    0    0    0    0    0 1750    0    0    0    0    0]
[  34  190    0    0    0    0    0 2884    0    0    0    0    0]
[  42  811    0    0    0    0    0  364   72    0    0    0    0]
[  23  989    0    0    0    0    0  181    4    1    0    0    0]
[  17 1257    0    0    0    0    0   98    0    0    0    0    0]
[  55 2400    0    0    0    0    0  486    0    0    0  136    0]
[ 122 1668    0    0    0    0    0 1141    0    0    0    1    1]]
INFO:tensorflow:Training accuracy = 25.10% (N=33946)
INFO:tensorflow:set_size=3999
INFO:tensorflow:Confusion Matrix:
[[334   0   0   0   0   0   0   0   0   0   0   0   0]
[  4 251   0   0   0   0   0  79   0   0   0   0   0]
[ 19 220   1   0   0   0   0 110   0   0   0   0   0]
[  3 102   0   4   0   0   0 268   0   0   0   0   0]
[  6 304   0   0   1   1   0  40   0   0   0   0   0]
[  4 302   0   0   0  36   0  21   0   0   0   0   0]
[ 12 128   0   0   0   0   0 210   0   0   0   0   0]
[  3  30   0   0   0   0   0 339   0   0   0   0   0]
[  1  80   0   0   0   0   0  44   7   0   0   0   0]
[  0 118   0   0   0   0   0  27   0   1   0   0   0]
[  3 140   0   0   0   0   0  10   0   0   0   0   0]
[  7 272   0   0   0   0   0  75   0   0   0   9   0]
[ 13 209   1   0   0   0   0 149   0   0   0   1   0]]
INFO:tensorflow:Validation accuracy = 24.58% (N=3999)
INFO:tensorflow:set_size=4492
INFO:tensorflow:Confusion Matrix:
[[375   0   0   0   0   0   0   0   0   0   0   0   0]
[  5 300   0   0   0   1   0  69   0   0   0   0   0]
[ 25 274   2   0   0   0   0 124   0   0   0   0   0]
[  6 160   0   4   0   0   0 236   0   0   0   0   0]
[  5 352   0   0   0   0   0  55   0   0   0   0   0]
[  3 331   0   0   0  20   0  42   0   0   0   0   0]
[ 11 165   0   0   0   0   0 235   0   0   0   0   0]
[  5  28   0   0   0   0   0 369   0   0   0   0   0]
[  2 124   0   0   0   0   0  40   6   0   0   0   0]
[  3 135   0   0   0   0   0  16   1   0   0   0   0]
[  2 146   0   0   0   0   0  17   0   0   0   0   0]
[  9 297   0   0   0   0   0  73   2   0   0  15   0]
[ 13 227   0   0   0   0   0 161   1   0   0   0   0]]
**### **INFO:tensorflow:Test accuracy = 24.29% (N=4492)
24.29% accuracy seems very low.****
### Did I make any mistake somewhere in the process?
Thank you so much.

@yanyanem @saichand07
Thanks guys, it works well now.
Really appreciated.
[[375   0   0   0   0   0   0   0   0   0   0   0   0]
[  2 248   4  26  12  11   6  35   3  10   4   9   5]
[  3  10 371   1  10   1   7   3   1   0   2   2  14]
[  4  14   1 373   3   0   0   8   1   0   1   0   1]
[  2  17   4   2 382   1   2   0   0   0   2   0   0]
[  2  28   2   0   6 352   2   0   0   0   0   1   3]
[  2   4   6   2   0   1 386   4   0   0   0   0   6]
[  5  28   4  29   1   0   4 325   3   0   0   0   3]
[  0   5   0   0   1   0   5   9 127  15   0   8   2]
[  3  13   0   1   0   0   0   6   6 115   5   3   3]
[  2  23   1   0   5   2   1   0   0   0 131   0   0]
[  4  12   4   4   0   0   0   1   7   1   0 342  21]
[  1   2  19   0   5   0   2   6   4   2   0   9 352]]
INFO:tensorflow:Test accuracy = 86.35% (N=4492)

Hello @yanyanem
It would be really helpful if I could get an answer from you,
D:\KWS-for-MCU\Deployment\kws_realtime_test>mbed compile -m DISCO_F746NG -t GCC_ARM \ --source . --source ..\Source --source ..\Examples\realtime_test / --source ..\CMSIS_5\CMSIS\NN\Include --source ..\CMSIS_5\CMSIS\NN\Source / --source ..\CMSIS_5\CMSIS\DSP\Include --source ..\CMSIS_5\CMSIS\DSP\Source / --source ..\CMSIS_5\CMSIS\Core\Include / --profile ..\release_O3.json -j 8
[mbed] Working path "D:\KWS-for-MCU\Deployment\kws_realtime_test" (program)
WARNING: MBED_ARM_PATH set as environment variable but doesn't exist
usage: make.py [-h] [-m MCU] [--custom-targets CUSTOM_TARGETS_DIRECTORY]
[-t TOOLCHAIN] [--color] [--cflags CFLAGS]
[--asmflags ASMFLAGS] [--ldflags LDFLAGS] [-c]
[--profile PROFILE] [--app-config APP_CONFIG]
[-p PROGRAM | -n PROGRAM | -L | -S [{matrix,toolchains,targets}]]
[-j JOBS] [-v] [--silent] [-D MACROS] [-f GENERAL_FILTER_REGEX]
[--stats-depth STATS_DEPTH] [--automated] [--host HOST_TEST]
[--extra EXTRA] [--peripherals PERIPHERALS]
[--dep DEPENDENCIES] [--source SOURCE_DIR]
[--duration DURATION] [--build BUILD_DIR] [-N ARTIFACT_NAME]
[--ignore IGNORE] [-b BAUD] [--rpc] [--usb] [--dsp] [--testlib]
[--build-data BUILD_DATA] [-l LINKER_SCRIPT]
make.py: error: unrecognized arguments: \ / / / /
[mbed] ERROR: "c:\python27\python.exe" returned error.
Code: 2
Path: "D:\KWS-for-MCU\Deployment\kws_realtime_test"
Command: "c:\python27\python.exe -u D:\KWS-for-MCU\Deployment\kws_realtime_test\mbed-os\tools\make.py -t GCC_ARM -m DISCO_F746NG --profile ..\release_O3.json --source . --source ..\Source --source ..\Examples\realtime_test --source ..\CMSIS_5\CMSIS\NN\Include --source ..\CMSIS_5\CMSIS\NN\Source --source ..\CMSIS_5\CMSIS\DSP\Include --source ..\CMSIS_5\CMSIS\DSP\Source --source ..\CMSIS_5\CMSIS\Core\Include --build .\BUILD\DISCO_F746NG\GCC_ARM-RELEASE_O3 \ / / / / -j 8"
Tip: You could retry the last command with "-v" flag for verbose output
I can't able to fix this problem.
Thank you very much


LinearProgress  later works

CircularProgress quickly triggered than LinearProgress

You mean when it's deterministic?

when it's indeterminate.

I see!
When it's a bug indeed. thank you.

@alitaheri : Were we able to fix this or is anyone working on this one?

@tintin1343 I think we can close it since it's not very easy to reproduce. I don't think it would be easy to solve since it's pretty much a matter of preference and hard to notice.


Search gets stuck when copilot is activated

Type: Bug
When copilot is activated and I search something by adding a path to 'files to include' part, search does not stop. The clock symbol keeps staying there. Before the last update(i updated today) after the 'search with include option and clear the 'files to include' part', search could not give me any results. It was showing the total number of results but bottom of it was empty and I could not see the results. With the latest update it seems this is fixed but search still keeps searching.
 Does this happen on all repos?

Hi, sorry I just saw your response. It seems it is fixed with the latest updates. Don't happen anymore. Thanks