Need option to propagate sensor errors

I propose an enhancement to read-margin-temp.
It needs the option to propagate sensor errors.
Currently, read-margin-temp skips over any malfunctioning sensor, when read-margin-temp is collecting all of the sensor readings to find the combined worst-margin value.
Some designs require behavior that is intentionally less tolerant of errors. Namely, some designs require the fans be thrown into failsafe mode whenever a temperature sensor fails. Because there is no way to know how hot the component is, the system must assume the worst, and run the fans at high speed. This will also have the beneficial side effect of getting the operator's attention, as the noise from high speed fans might tell them a component has failed internally.
So, what I propose is this: When collecting sensors, report the final value over D-Bus as floating-point "NaN" if there is any error. Then, clients of this value, such as the phosphor-pid-control program for managing fan speed, can detect this "NaN" and use it to know to put the fans into failsafe mode. Since the program is already using floating-point values, this gives it the ability to indicate "none of the above" with "NaN", which is cleaner than indicating a false hardcoded value of 0 or -1 or 99 or other sentinel value that could actually be a valid reading under some circumstances.
There are at least these conditions that should result in error propagation:

File IO error from open() of a sensor file on the filesystem
File IO error upon read() of a sensor file on the filesystem
Parsing error when trying to convert the file text to a floating-point number
D-Bus error upon trying to read a sensor value over D-Bus
The resulting floating-point number is not numeric (+Inf, -Inf, NaN)

To avoid breaking existing clients, this behavior will be optional. The default will be to silently ignore errors, as before. A command line such as --strict or --brittle will be used, to get this error propagation behavior (I am open to naming suggestions). Your thoughts?

Sound good, this will be useful in some situation. I will try to implement this function. Thanks.

Sound good, this will be useful in some situation. I will try to implement this function. Thanks.

Hi Krellan,
Current phosphor-pid-control seems not detect "HostSensor" failed. Because when I create the HostSensor via pid-control, and set NaN value to the HostSensor dbus. phosphor-pid-control not into failsafe mode to 100% immediatly but increase PWM duty slowly.
After view the source code, looks like didn't implement getFailed() function in host.cpp, so when getFailed() in pid/zone.cpp([https://github.com/openbmc/phosphor-pid-control/blob/master/pid/zone.cpp#L378]), it will return false ([https://github.com/openbmc/phosphor-pid-control/blob/master/sensors/sensor.hpp#L47]). After I add the code below, when I set the NaN value to HostSensor dbus, phosphor-pid-control is into failsafe mode immediatly.
bool HostSensor::getFailed(void)
{
if (!(std::isfinite(_value)))
{
return true;
}
else
{
return false;
}
}

Hi Krellan,
Current phosphor-pid-control seems not detect "HostSensor" failed. Because when I create the HostSensor via pid-control, and set NaN value to the HostSensor dbus. phosphor-pid-control not into failsafe mode to 100% immediatly but increase PWM duty slowly.
After view the source code, looks like didn't implement getFailed() function in host.cpp, so when getFailed() in pid/zone.cpp([https://github.com/openbmc/phosphor-pid-control/blob/master/pid/zone.cpp#L378]), it will return false ([https://github.com/openbmc/phosphor-pid-control/blob/master/sensors/sensor.hpp#L47]). After I add the code below, when I set the NaN value to HostSensor dbus, phosphor-pid-control is into failsafe mode immediatly.
bool HostSensor::getFailed(void)
{
if (!(std::isfinite(_value)))
{
return true;
}
else
{
return false;
}
}

Nice, your commit looks good. I didn't think of checking the Functional property of sensors, so that's good. Our work will not overlap. I'm checking for errors in other ways (mentioned in the bullet-points in my original proposal above).
As for phosphor-pid-control, good catch about host sensors. I don't use host sensors, I only use D-Bus passive sensors. You should send that in to phosphor-pid-control Gerrit, as a change. It will be useful to those who use host sensors.
FYI, I have some other patches that do some other miscellaneous cleanups in phosphor-pid-control but they have not been accepted upstream yet. You might want to look at them, some might be helpful. Here are the patches: https://gerrit.openbmc-project.xyz/q/project:openbmc/phosphor-pid-control+author:krellan%2540google.com+status:open

Nice, your commit looks good. I didn't think of checking the Functional property of sensors, so that's good. Our work will not overlap. I'm checking for errors in other ways (mentioned in the bullet-points in my original proposal above).
As for phosphor-pid-control, good catch about host sensors. I don't use host sensors, I only use D-Bus passive sensors. You should send that in to phosphor-pid-control Gerrit, as a change. It will be useful to those who use host sensors.
FYI, I have some other patches that do some other miscellaneous cleanups in phosphor-pid-control but they have not been accepted upstream yet. You might want to look at them, some might be helpful. Here are the patches: https://gerrit.openbmc-project.xyz/q/project:openbmc/phosphor-pid-control+author:krellan%2540google.com+status:open

Thanks, I will push a commit to phosphor-pid-control Gerrit.
Additionally, I have a question about phosphor-pid-control. The current dbusconfiguration.cpp, it seems not support "margin" type, only detect type "fan" and "temp" in entity-manager json. Is there any reason to not support "margin" type?

Thanks, I will push a commit to phosphor-pid-control Gerrit.
Additionally, I have a question about phosphor-pid-control. The current dbusconfiguration.cpp, it seems not support "margin" type, only detect type "fan" and "temp" in entity-manager json. Is there any reason to not support "margin" type?

OK, I saw your commit in Gerrit. Sorry for not checking commit before asking question.

OK, I saw your commit in Gerrit. Sorry for not checking commit before asking question.

I have added this pull request: https://github.com/quanta-bmc/read-margin-temp/pull/12
Take a look at the TODO items in the commit message. I think this pull request will stack nicely with your other change. I like how you added a proper command-line parser in your change.

I have added this pull request: https://github.com/quanta-bmc/read-margin-temp/pull/12
Take a look at the TODO items in the commit message. I think this pull request will stack nicely with your other change. I like how you added a proper command-line parser in your change.

I push the new branch which merge your PR. Is that fit the requirements? Or have something that I forgot to add?
Thanks.

Thanks for merging it! I looked over it and wrote some comments here.
https://github.com/quanta-bmc/read-margin-temp/commit/9d4847a9d1a080a0f5a32cd1c5aa2ed6968c3d0f#
Basically, my only concern is that "debugEnabled" got lost. It needs to be
a variable. Instead, constant DEBUG is still in use, which was from an
older version.
Thanks!
Josh
Josh Lehan | Software Engineer |<EMAIL_ADDRESS>| +1<PHONE_NUMBER>
On Fri, Feb 5, 2021 at 1:14 AM Harvey Wu<EMAIL_ADDRESS>wrote:

I push the new branch which merge your PR. Is that fit the requirements?
Or have something that I forgot to add?
Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/quanta-bmc/read-margin-temp/issues/11#issuecomment-773902511,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABC2G2PU2CNSJDCWKNEDYLTS5OZHLANCNFSM4VZ55DZQ
.

Hi Krellan, I have been commit the newest PR #13 .

Nice, thanks! I looked at
https://github.com/quanta-bmc/read-margin-temp/pull/13 and left some review
comments.
Josh
Josh Lehan | Software Engineer |<EMAIL_ADDRESS>| +1<PHONE_NUMBER>
On Sun, Feb 7, 2021 at 7:11 PM Harvey Wu<EMAIL_ADDRESS>wrote:

Hi Krellan, I have been commit the newest PR #13
https://github.com/quanta-bmc/read-margin-temp/pull/13 .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/quanta-bmc/read-margin-temp/issues/11#issuecomment-774836437,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABC2G2JCCH7JNUO64IL2RL3S55I5RANCNFSM4VZ55DZQ
.


Problems encountered when setting up the "Stream headset microphone"

Description

I am trying to setup the headset microphone streaming without the "Virtual Audio Cables" driver. My PC uses an audio interface with multiple input and output channels. I would like ALVR to act as an audio output software that takes the audio from the headset's microphone and outputs it to the audio output channel I specified. Then I could route the audio in my audio interface to wherever I desired. However, after I set it up in ALVR, it kept warning me that "Game Audio and Microphone cannot point to the same device".
At this point, I set the "Virtual microphone input" in ALVR to the WDM device corresponding to Channel 3-4 and the output of Channel 3-4 is routed to the input of Channel 1-2 in the audio interface driver so that other software would capture the audio from Channel 1-2 inputs. Besides, I also made the corresponding settings of "Virtual microphone output" in the ALVR. Afterwards, when I tried to connect my headset to the PC, the ALVR client raised the error "Connection Error: ent/src/connection.rs:168: At alvr/sockets/src/control_so", and the server reported the warning mentioned above. The screenshot is shown below.

In addition, I've also noticed that ALVR appears to try to automatically set up my default audio input and output devices, which sometimes breaks the audio routing of my system while I am not on VR. I may have accidentally triggered something to let the ALVR try to change my settings. Therefore I wonder if I can disable this feature and only set the audio output of the software, then I can set up the rests manually.
I would appreciate any help and guidance.
Thanks in advance!
General Troubleshooting

[x] I carefully followed the instructions in the README and successfully completed the setup wizard
[x] I read the ALVR Wikis here and here

Environement
Hardware
Note: for Linux, an upload to the hw-probe database is preferred: hw-probe -all -upload
CPU: AMD Ryzen 7 3800X
GPU: NVIDIA GeForce GTX 1080 Ti
Audio: ESI MAYA22 USB
Installation
ALVR Version: 18.2.3
SteamVR Version: 1.21.12
Install Type:

[x] Packaged (exe, deb, rpm, etc)
[ ] Portable (zip)
[ ] Source

OS Name and Version (winver on Windows or grep PRETTY_NAME /etc/os-release on most Linux distributions):
Windows 11 Pro 21H2

Session Log
02:11:11.620686800 [INFO] #{"id":"SessionUpdated"}#
02:11:11.620903900 [INFO] #{"id":"Session","data":{"serverVersion":"18.2.3","setupWizard":false,"locale":"system","openvr_config":{"universe_id":2,"headset_serial_number":"1WMGH000XX0000","headset_tracking_system_name":"oculus","headset_model_number":"Miramar","headset_driver_version":"1.55.0","headset_manufacturer_name":"Oculus","headset_render_model_name":"generic_hmd","headset_registered_device_type":"oculus/1WMGH000XX0000","eye_resolution_width":1824,"eye_resolution_height":1920,"target_eye_resolution_width":1824,"target_eye_resolution_height":1920,"seconds_from_vsync_to_photons":0.005,"force_3dof":false,"tracking_ref_only":false,"enable_vive_tracker_proxy":false,"aggressive_keyframe_resend":false,"adapter_index":0,"codec":1,"refresh_rate":120,"use_10bit_encoder":false,"sw_thread_count":0,"encode_bitrate_mbs":30,"enable_adaptive_bitrate":true,"bitrate_maximum":200,"latency_target":12000,"latency_use_frametime":false,"latency_target_maximum":30000,"latency_target_offset":0,"latency_threshold":3000,"bitrate_up_rate":1,"bitrate_down_rate":3,"bitrate_light_load_threshold":0.7,"controllers_tracking_system_name":"oculus","controllers_manufacturer_name":"Oculus","controllers_model_number":"Miramar","render_model_name_left_controller":"oculus_quest2_controller_left","render_model_name_right_controller":"oculus_quest2_controller_right","controllers_serial_number":"1WMHH000X00000_Controller","controllers_type_left":"oculus_touch","controllers_type_right":"oculus_touch","controllers_registered_device_type":"oculus/1WMHH000X00000_Controller","controllers_input_profile_path":"{oculus}/input/touch_profile.json","controllers_mode_idx":7,"controllers_enabled":true,"position_offset":[0.0,0.0,0.0],"tracking_frame_offset":0,"controller_pose_offset":-1.0,"serverside_prediction":false,"linear_velocity_cutoff":0.01,"angular_velocity_cutoff":10.0,"position_offset_left":[-0.0065,0.002,-0.051],"rotation_offset_left":[40.0,0.0,0.0],"haptics_intensity":1.0,"haptics_amplitude_curve":0.4,"haptics_min_duration":0.01,"haptics_low_duration_amplitude_multiplier":2.5,"haptics_low_duration_range":0.5,"use_headset_tracking_system":false,"enable_foveated_rendering":true,"foveation_center_size_x":0.4,"foveation_center_size_y":0.35,"foveation_center_shift_x":0.4,"foveation_center_shift_y":0.1,"foveation_edge_ratio_x":4.0,"foveation_edge_ratio_y":5.0,"enable_color_correction":true,"brightness":0.0,"contrast":0.0,"saturation":0.5,"gamma":1.0,"sharpening":0.0,"enable_fec":true,"linux_async_reprojection":false},"clientConnections":{"0473.client.alvr":{"displayName":"Oculus Quest 2","manualIps":[],"trusted":true}},"sessionSettings":{"video":{"adapterIndex":0,"renderResolution":{"scale":1.0,"absolute":{"width":2880,"height":1600},"variant":"scale"},"recommendedTargetResolution":{"scale":1.0,"absolute":{"width":2880,"height":1600},"variant":"scale"},"preferredFps":120.0,"codec":{"variant":"HEVC"},"clientRequestRealtimeDecoder":true,"use10bitEncoder":false,"swThreadCount":0,"encodeBitrateMbs":30,"adaptiveBitrate":{"enabled":true,"content":{"bitrateMaximum":200,"latencyTarget":12000,"latencyUseFrametime":{"enabled":false,"content":{"latencyTargetMaximum":30000,"latencyTargetOffset":0}},"latencyThreshold":3000,"bitrateUpRate":1,"bitrateDownRate":3,"bitrateLightLoadThreshold":0.7}},"secondsFromVsyncToPhotons":0.005,"foveatedRendering":{"enabled":true,"content":{"centerSizeX":0.4,"centerSizeY":0.35,"centerShiftX":0.4,"centerShiftY":0.1,"edgeRatioX":4.0,"edgeRatioY":5.0}},"colorCorrection":{"enabled":true,"content":{"brightness":0.0,"contrast":0.0,"saturation":0.5,"gamma":1.0,"sharpening":0.0}}},"audio":{"linuxBackend":{"variant":"alsa"},"gameAudio":{"enabled":true,"content":{"deviceId":{"name":"","index":1,"variant":"default"},"muteWhenStreaming":true,"config":{"averageBufferingMs":50,"batchMs":10}}},"microphone":{"enabled":true,"content":{"inputDeviceId":{"name":"MAYA22 Virtual CH 3-4 (ESI Audio Device (WDM) - Maya22 USB)","index":2,"variant":"name"},"outputDeviceId":{"name":"MAYA22 CH 1-2 (ESI Audio Device (WDM) - Maya22 USB)","index":1,"variant":"name"},"sampleRate":44100,"config":{"averageBufferingMs":50,"batchMs":10}}}},"headset":{"modeIdx":2,"universeId":2,"serialNumber":"1WMGH000XX0000","trackingSystemName":"oculus","modelNumber":"Miramar","driverVersion":"1.55.0","manufacturerName":"Oculus","renderModelName":"generic_hmd","registeredDeviceType":"oculus/1WMGH000XX0000","trackingFrameOffset":0,"positionOffset":[0.0,0.0,0.0],"force3dof":false,"trackingRefOnly":false,"enableViveTrackerProxy":false,"controllers":{"enabled":true,"content":{"modeIdx":7,"trackingSystemName":"oculus","manufacturerName":"Oculus","modelNumber":"Miramar","renderModelNameLeft":"oculus_quest2_controller_left","renderModelNameRight":"oculus_quest2_controller_right","serialNumber":"1WMHH000X00000_Controller","ctrlTypeLeft":"oculus_touch","ctrlTypeRight":"oculus_touch","registeredDeviceType":"oculus/1WMHH000X00000_Controller","inputProfilePath":"{oculus}/input/touch_profile.json","poseTimeOffset":-1.0,"clientsidePrediction":false,"serversidePrediction":false,"linearVelocityCutoff":0.01,"angularVelocityCutoff":10.0,"positionOffsetLeft":[-0.0065,0.002,-0.051],"rotationOffsetLeft":[40.0,0.0,0.0],"hapticsIntensity":1.0,"hapticsAmplitudeCurve":0.4,"hapticsMinDuration":0.01,"hapticsLowDurationAmplitudeMultiplier":2.5,"hapticsLowDurationRange":0.5,"useHeadsetTrackingSystem":false}},"extraLatencyMode":false},"connection":{"clientDiscovery":{"enabled":true,"content":{"autoTrustClients":false}},"webServerPort":8082,"streamProtocol":{"throttledUdp":{"bitrateMultiplier":1.5},"variant":"tcp"},"streamPort":9944,"aggressiveKeyframeResend":false,"onConnectScript":"","onDisconnectScript":"","enableFec":true},"extra":{"theme":{"variant":"systemDefault"},"clientDarkMode":false,"revertConfirmDialog":true,"restartConfirmDialog":true,"promptBeforeUpdate":true,"updateChannel":{"variant":"stable"},"logToDisk":true,"notificationLevel":{"variant":"warning"},"excludeNotificationsWithoutId":false,"patches":{"removeSyncPopup":true,"linuxAsyncReprojection":false}}},"advanced":false}}#
02:11:11.660526700 [INFO] Instance version: 0x4030c9
02:11:11.660543700 [INFO] Enabling device properties2
02:11:11.663068800 [INFO] Adapter Vulkan AdapterInfo { name: "NVIDIA GeForce GTX 1080 Ti", vendor: 4318, device: 6918, device_type: DiscreteGpu, backend: Vulkan }
02:11:11.754870600 [INFO] Adapter Dx12 AdapterInfo { name: "NVIDIA GeForce GTX 1080 Ti", vendor: 4318, device: 6918, device_type: DiscreteGpu, backend: Dx12 }
02:11:11.754907100 [INFO] Adapter Dx12 AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: Cpu, backend: Dx12 }
02:11:11.755334200 [INFO] #{"id":"SessionUpdated"}#
02:11:11.755405100 [INFO] #{"id":"Session","data":{"serverVersion":"18.2.3","setupWizard":false,"locale":"system","openvr_config":{"universe_id":2,"headset_serial_number":"1WMGH000XX0000","headset_tracking_system_name":"oculus","headset_model_number":"Miramar","headset_driver_version":"1.55.0","headset_manufacturer_name":"Oculus","headset_render_model_name":"generic_hmd","headset_registered_device_type":"oculus/1WMGH000XX0000","eye_resolution_width":1824,"eye_resolution_height":1920,"target_eye_resolution_width":1824,"target_eye_resolution_height":1920,"seconds_from_vsync_to_photons":0.005,"force_3dof":false,"tracking_ref_only":false,"enable_vive_tracker_proxy":false,"aggressive_keyframe_resend":false,"adapter_index":0,"codec":1,"refresh_rate":120,"use_10bit_encoder":false,"sw_thread_count":0,"encode_bitrate_mbs":30,"enable_adaptive_bitrate":true,"bitrate_maximum":200,"latency_target":12000,"latency_use_frametime":false,"latency_target_maximum":30000,"latency_target_offset":0,"latency_threshold":3000,"bitrate_up_rate":1,"bitrate_down_rate":3,"bitrate_light_load_threshold":0.7,"controllers_tracking_system_name":"oculus","controllers_manufacturer_name":"Oculus","controllers_model_number":"Miramar","render_model_name_left_controller":"oculus_quest2_controller_left","render_model_name_right_controller":"oculus_quest2_controller_right","controllers_serial_number":"1WMHH000X00000_Controller","controllers_type_left":"oculus_touch","controllers_type_right":"oculus_touch","controllers_registered_device_type":"oculus/1WMHH000X00000_Controller","controllers_input_profile_path":"{oculus}/input/touch_profile.json","controllers_mode_idx":7,"controllers_enabled":true,"position_offset":[0.0,0.0,0.0],"tracking_frame_offset":0,"controller_pose_offset":-1.0,"serverside_prediction":false,"linear_velocity_cutoff":0.01,"angular_velocity_cutoff":10.0,"position_offset_left":[-0.0065,0.002,-0.051],"rotation_offset_left":[40.0,0.0,0.0],"haptics_intensity":1.0,"haptics_amplitude_curve":0.4,"haptics_min_duration":0.01,"haptics_low_duration_amplitude_multiplier":2.5,"haptics_low_duration_range":0.5,"use_headset_tracking_system":false,"enable_foveated_rendering":true,"foveation_center_size_x":0.4,"foveation_center_size_y":0.35,"foveation_center_shift_x":0.4,"foveation_center_shift_y":0.1,"foveation_edge_ratio_x":4.0,"foveation_edge_ratio_y":5.0,"enable_color_correction":true,"brightness":0.0,"contrast":0.0,"saturation":0.5,"gamma":1.0,"sharpening":0.0,"enable_fec":true,"linux_async_reprojection":false},"clientConnections":{"0473.client.alvr":{"displayName":"Oculus Quest 2","manualIps":[],"trusted":true}},"sessionSettings":{"video":{"adapterIndex":0,"renderResolution":{"scale":1.0,"absolute":{"width":2880,"height":1600},"variant":"scale"},"recommendedTargetResolution":{"scale":1.0,"absolute":{"width":2880,"height":1600},"variant":"scale"},"preferredFps":120.0,"codec":{"variant":"HEVC"},"clientRequestRealtimeDecoder":true,"use10bitEncoder":false,"swThreadCount":0,"encodeBitrateMbs":30,"adaptiveBitrate":{"enabled":true,"content":{"bitrateMaximum":200,"latencyTarget":12000,"latencyUseFrametime":{"enabled":false,"content":{"latencyTargetMaximum":30000,"latencyTargetOffset":0}},"latencyThreshold":3000,"bitrateUpRate":1,"bitrateDownRate":3,"bitrateLightLoadThreshold":0.7}},"secondsFromVsyncToPhotons":0.005,"foveatedRendering":{"enabled":true,"content":{"centerSizeX":0.4,"centerSizeY":0.35,"centerShiftX":0.4,"centerShiftY":0.1,"edgeRatioX":4.0,"edgeRatioY":5.0}},"colorCorrection":{"enabled":true,"content":{"brightness":0.0,"contrast":0.0,"saturation":0.5,"gamma":1.0,"sharpening":0.0}}},"audio":{"linuxBackend":{"variant":"alsa"},"gameAudio":{"enabled":true,"content":{"deviceId":{"name":"","index":1,"variant":"default"},"muteWhenStreaming":true,"config":{"averageBufferingMs":50,"batchMs":10}}},"microphone":{"enabled":true,"content":{"inputDeviceId":{"name":"MAYA22 Virtual CH 3-4 (ESI Audio Device (WDM) - Maya22 USB)","index":2,"variant":"name"},"outputDeviceId":{"name":"MAYA22 CH 1-2 (ESI Audio Device (WDM) - Maya22 USB)","index":1,"variant":"name"},"sampleRate":44100,"config":{"averageBufferingMs":50,"batchMs":10}}}},"headset":{"modeIdx":2,"universeId":2,"serialNumber":"1WMGH000XX0000","trackingSystemName":"oculus","modelNumber":"Miramar","driverVersion":"1.55.0","manufacturerName":"Oculus","renderModelName":"generic_hmd","registeredDeviceType":"oculus/1WMGH000XX0000","trackingFrameOffset":0,"positionOffset":[0.0,0.0,0.0],"force3dof":false,"trackingRefOnly":false,"enableViveTrackerProxy":false,"controllers":{"enabled":true,"content":{"modeIdx":7,"trackingSystemName":"oculus","manufacturerName":"Oculus","modelNumber":"Miramar","renderModelNameLeft":"oculus_quest2_controller_left","renderModelNameRight":"oculus_quest2_controller_right","serialNumber":"1WMHH000X00000_Controller","ctrlTypeLeft":"oculus_touch","ctrlTypeRight":"oculus_touch","registeredDeviceType":"oculus/1WMHH000X00000_Controller","inputProfilePath":"{oculus}/input/touch_profile.json","poseTimeOffset":-1.0,"clientsidePrediction":false,"serversidePrediction":false,"linearVelocityCutoff":0.01,"angularVelocityCutoff":10.0,"positionOffsetLeft":[-0.0065,0.002,-0.051],"rotationOffsetLeft":[40.0,0.0,0.0],"hapticsIntensity":1.0,"hapticsAmplitudeCurve":0.4,"hapticsMinDuration":0.01,"hapticsLowDurationAmplitudeMultiplier":2.5,"hapticsLowDurationRange":0.5,"useHeadsetTrackingSystem":false}},"extraLatencyMode":false},"connection":{"clientDiscovery":{"enabled":true,"content":{"autoTrustClients":false}},"webServerPort":8082,"streamProtocol":{"throttledUdp":{"bitrateMultiplier":1.5},"variant":"tcp"},"streamPort":9944,"aggressiveKeyframeResend":false,"onConnectScript":"","onDisconnectScript":"","enableFec":true},"extra":{"theme":{"variant":"systemDefault"},"clientDarkMode":false,"revertConfirmDialog":true,"restartConfirmDialog":true,"promptBeforeUpdate":true,"updateChannel":{"variant":"stable"},"logToDisk":true,"notificationLevel":{"variant":"warning"},"excludeNotificationsWithoutId":false,"patches":{"removeSyncPopup":true,"linuxAsyncReprojection":false}}},"advanced":false}}#
02:11:11.759765800 [INFO] Serial Number: 1WMGH000XX0000
02:11:11.759788000 [INFO] Model Number: Miramar
02:11:11.759795500 [INFO] Render Target: 3648 1920
02:11:11.759805300 [INFO] Seconds from Vsync to Photons: 0.005000
02:11:11.759812900 [INFO] Refresh Rate: 120
02:11:11.790063300 [INFO] Using NVIDIA GeForce GTX 1080 Ti as primary graphics adapter.
02:11:11.790095900 [INFO] OSVer: MajorVersion=10 MinorVersion=0 Build=22000
02:11:18.262645100 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:19.452493800 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:30.411192800 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:31.989494500 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:33.018755900 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:34.077268300 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:35.163790100 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:36.289369800 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:37.410488400 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:38.674165000 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:39.868085800 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:41.000839400 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:42.031663100 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:43.150520000 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:44.283093900 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:45.371467400 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:46.427061200 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:47.553486800 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:48.686768400 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:49.806164100 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:50.932452200 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:52.058671200 [WARN] Handshake: Game audio and microphone cannot point to the same device!
02:11:53.185522300 [WARN] Handshake: Game audio and microphone cannot point to the same device!

H


Pre_install_check: Syntax error in example commands for Known Issues

The 2nd command should be "pod", not "pos"
Suggested commands to delete resources before running the tool again:
kubectl -n  delete replicaset.apps/hello-world-6665cf748b
kubectl -n  delete pos/hello-world-6665cf748b-5x2jq
kubectl -n  delete pod/hello-world-6665cf748b-tkq79

Addressed in release 1.4.0


Standalone Server API Gateway creates unconfigurable and open Redis instance

Environment details:

standalone deployment, native ubuntu
Docker version 18.09.2, build 6247962
Description:    Ubuntu 16.04.5 LTS

Steps to reproduce the issue:

Build standalone server ./gradlew :core:standalone:build
Run with API gateway java -jar ./bin/openwhisk-standalone.jar --api-gw --api-gw-port 4569
Notice a Redis docker instance is created

Provide the expected results and outputs:
Custom configuration overriding standalone.conf redis settings allows mounting custom redis.conf to the container, changing the docker host port, or just a setting password on Redis
Provide the actual results and outputs:
API GW uses default Redis port and provides no way to override it or redis any config
Additional information you deem important:

This open Redis is a security vulnerability

Standalone mode is recommended only for local development and not production uses. Does the redis bounds to all interfaces in your case or it is only bound to localhost

I am using it for local development but it's running on an internet-facing server.
Per the redis docker info the server launched has no security and is accessible from non-localhost sources. https://hub.docker.com/_/redis/

Setting a password on the redis server would be a good enhancement. @aFuerst would you be interested in contributing a pull request?

@rabbah I would if I had the time, which wouldn't be for several more months at least

Thanks @aFuerst - I am interested in doing this so one of us will get to it.


Translation for Hooks : useReducer

Hello, I just finished the translation. This is my first time translating, sorry if there are any word mistakes.
Page : https://id.react.dev/reference/react/useReducer
Closes #407

I'll review again later.


empty results breaks cloudwatch put_metric_data

After boot, my first results read is empty, causing the looper to break while calling put_metric_data on cloudwatch client with the following error:
The parameter MetricData is required. (Aws::CloudWatch::Errors::MissingParameter)

Released in v0.4.1 Thanks!

Thanks for the quick response @tongueroo, but I discover that for me it's crashing on other conditions. I will investigate further and see how can I increase the looper resilience. Do you have any hint?

Interesting, unsure.


Components - Enable AWS KMS/SecretManager integration

@yaron2 can you assign this to me, i will work on this one.

Thanks!

Done


[Proposal] Sprite Tree Inheritance

In Dissonance, we had it so Sprites had a linear inheritance path. A PhysicsSprite was a WaypointSprite and a AnimatedSprite. A AbstractWaypointSprite was a AnimatedSprite, ect..
While this is perfectly fine, there are cases where you want a physics on a sprite that isn't animated.
Each class do not really depend on each other, so making different versions of the class that inherit from a different base class shouldn't be to hard. Sure not all of them will be used so it will waste space, but it will allow for easier scripting and better expandability.
For example, the PhysicsSprite class should have 2 forms of itself:
AnimatedPhysicsSprite
PhysicsSprite

AnimatedPhysicsSprite inherits from AnimatedSprite and PhysicsSprite inherits from Sprite.
I want everyone thoughts on this..because I'm unsure myself on whether to do this or not. And if we don't decide to do this, how should the engine solve the original problem? Or should it not?
there are cases where you want a physics on a sprite that isn't animated

This solution has been replaced with the ModuleSprite class, and specific modules can be used instead (such as the AnimationModule). Closing


Typo

Hello @sendgrid-gists,Thank you for the PR! We will be reviewing this PR soon, in the mean                                              time, if you have not, please be sure to                                                                                sign our CLA so that we can merge your changes. Thanks again!                                             Team DX


The Port format is invalid

when trying to add Pterodactyl WHMCS module it is coming up with The port Format is Invalid can anyone help me with what i need to do.
Thanks

Remove "https://" from your host name.


Missing postback property on Telegram Bot

Please use GitHub issues only to report bugs. To ask a general question or request assistance/support, please use the Claudia.js Gitter Chat instead.
To report a bug or a problem, please fill in the sections below. The more you provide, the better we'll be able to help.

Expected behaviour:
I've been playing with telegram bot. In the message schema defined in the documentation, I can see there is a postback property. When I try to access it is always undefined, but it should be set when replying to a command (for telegram bot when callback_query property exists in the response message object).

What actually happens:
It is not set.

Which bot engine (facebook, skype...):
telegram

Link to a minimal, executable project that demonstrates the problem:

https://github.com/claudiajs/claudia-bot-builder/blob/master/lib/telegram/parse.js#L32
As I understand it, the line below should include a property postback: true.

Steps to install the project:

Steps to reproduce the problem:

postback property was originally used by Facebook only, to detect the button click. I think we added it for Slack too, but I don't think we can add it for Telegram, as it doesn't tell us if something was a button click or typed text.
If Telegram updated its API to return that info feel free to send PR to fix it, otherwise I don't think we can have postback info for that platform.

Hey @stojanovic - Thanks for your reply.
I'm not an expert on the subject. Though reading at the docs, it does feel like callback_query property acts like the postback property.
https://core.telegram.org/bots/api#callbackquery


Psycasts"Word of Love"Not work

Word of Love increases the relationship by +40 in Vanilla, but could not be confirmed with Rim Threaded installed.

Use Word of Love.
Check the social tab of the Pown you used.
Psychic love by +40 in Vanilla, but could not be confirmed with Rim Threaded installed.

Save file
I checked this save file in developer mode, but I can check it as well after the game progresses.
https://drive.google.com/file/d/1MEfQcrZkhlNUyq1jTEpWglyqigWFzuae/view?usp=sharing
Screenshots
Vanilla

Rim Threaded

**Mod list (For vanilla report, it has to be same as below list.)

Harmony
Core
Royalty
HugsLib
RimThreaded

Since I am Japanese, the above sentence was created using google translate.

this issue is reported as fixed on the latest steam release


Update http4s-client, http4s-dsl to 0.23.0-RC1

Updates

org.http4s:http4s-client
org.http4s:http4s-dsl

from 0.23.0-M1 to 0.23.0-RC1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-pre-release

Superseded by #392.


#180 remove update() from initialize()

It's inappropriate to call the update() before scene readies.

I investigated it later, I found that this code is inappropriate.
I want to cancel this pull request.
So please don't marge.
I am very sorry.

OK, closed without merging.


Adds "default_token_type" configuration parameter to optionally work around certain invalid implementations.

Although RFC6749 4.2.2 correctly identifies that the token_type parameter is MANDATORY in the access token response, we've encountered some malformed implementations in the wild that omit this parameter.
To work around this, this branch introduces an OPTIONAL configuration option that allows one to make assumptions about the correct token_type (e.g. "Bearer") such that we can work around this issue in those cases.
Existing functionality and behaviour ONLY changes if this configuration option is set, and this default token type will only take effect if the authorization server responds with said malformed response.
Rspec tests are included, and if merged we'll add documentation to the github wiki so that users can utilise this functionality.

Hi,
Since defining token_type per client instances is safer than defining it via global variables, I've added OpenIDConnect::Client#force_token_type!(token_type) (actually it's defined in the parent rack-oauth2 gem).
If it's enough for your use-case, I'll close this pull request.
Thanks

@nov, this does seem to be a more robust implementation, happy to close this PR

thanks


Bug when trying to change Multitasking settings

Describe the bug
When trying to change the Multitasking settings in Files, I often face this bug where I choose an option among the 3, change the settings tab to any other part (say, the About window) and when I get back to Multitasking tab, it either would not remember the setting, or no option is selected.
To Reproduce
Steps to reproduce the behavior:

Go to Setting > Multitasking
Click on one of the non-selected options
Change to any other tab in settings, and then change back to Multitasking
See error

Expected behavior
It should remember which setting I had chosen.
Screenshots

Desktop (please complete the following information):

OS Version: e.g. Windows 10 20H2 19042.844
App version: <IP_ADDRESS>

Additional context
I have a video recording.
https://user-images.githubusercontent.com/51435948/109781870-4a310b00-7c2e-11eb-96ad-90bd1d071a58.mp4
Log file

No error was caught in the log files :/

Maybe #3088 is similar?

@yaichenbaum does #3798 fix this?

@yaichenbaum does #3798 fix this?

@gave92 It doesn't look like it, we can probably fix this by switching to a dropdown menu instead of radio buttons.

@Cyberdroid1 This issue should be resolved with #3849.


Impossible to configure fuse in NixOS

Issue description
It is impossible to configure fuse in 18.09 because fuse looks in the nix store for the fuse.conf file and not in /etc, so environment.etc."fuse.conf" doesn't work anymore. As a result, I am unable to set the user_allow_other option, which breaks my sshfs setup.
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.19.30, NixOS, 18.09.2436.395a543f360 (Jellyfish)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.1.3`
 - channels(marisa): `"nixos-18.09.1819.76aafbf4bf4, nixos-unstable-19.03pre168555.ce8c2436998, nixpkgs-unstable-19.03pre168583.0710c9fc25b"`
 - channels(alice): `""`
 - channels(root): `"nixos-18.09.2436.395a543f360, unstable-19.09pre173349.07b42ccf2de"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

https://github.com/NixOS/nixpkgs/pull/53074

Usually this just requires setting sysconfdir=/etc or something like that

Where do I set that?

This is Fuse 3 right? Could you verify this fixes the issue: #59043 - I can't remember how to use fusermount


Create angular service to manage time tracking data

Ripped out of my larger branch for the sake of smaller PRs! I'll be submitting two more PRs for the time-tracking branch, and then we can merge the entire branch in when we're ready.
I've manually tested things in the console and everything seems okay (can't wait for front-end testing), and when I PR the interfaces we can be sure!

Thanks for making a small PR!! 🎉
Done reviewing

Coverage increased (+0.003%) to 93.272% when pulling 8474ed713b9f3502bae435c8af174aa9e9805cd1 on timing-service into 7c7b0ea4fee98d17ec325bc0bffae2e8fcafadbc on time-tracking.

Coverage remained the same at 93.272% when pulling a6d495588f24174dcdfba3708af4bc619e1c369f on timing-service into 2ae48a2b1dd2e4d48903e24ff8bceefaeeb661a2 on time-tracking.


Adding logic to migrate to new javascript project experience

Same PR as #2456, but with squashed commits

Merging now b/c insertion has already completed (the build has been tested, no regressions found). I'm going to move comments to a new PR.


path and registry shouldn't be mutually exclusive in dependency configurations

In multi-crate workspaces, dependencies to other crates in the workspace are specified with path when building locally, as well as version when the crate is pulled from a registry. If registry can't be used with path, then multi-crate workspaces that publish to a custom registry don't work.
cc @withoutboats

The check is made here: https://github.com/rust-lang/cargo/blob/868d37339117213fdef4ead8daf4a9557cc4ec89/src/cargo/util/toml/mod.rs#L930

Simply removing that restriction causes the registry field in the index entry to be the file path. It seems like the logic in https://github.com/rust-lang/cargo/pull/4568 is not quite right. The source ID of the dependency is going to be a file path here, which isn't right. cc @cswindle


DevTools Network Agent implementation

The Runtime will now expose __inspector object that contains methods for communicating directly with the DevTools frontend. JavaScript objects are constructed in compliance with the v8 inspector protocol and sent to the DevTools frontend when:

a request is about to be made to a url
a response is received from the server
a request is finished (normally right after a response is received)

Features:

making a request marks it on the Network tab Timeline, this allows you to select only those made in a certain period of the application's lifetime
Status codes and status text are displayed correctly for requests made from and to the device
requests show the headers they are sent with, as well as any data that is encoded in the request; requests also display headers from the response when they are completed
Image responses can be previewed; Text/documents can be expanded (when in a tree-like - xml, json format).

Current limitations:

for some reason the frontend doesn't always update the "timeline" with the time it took to complete the request. This directly affects the "Time" tab for the request, as it will show "Pending", though the response was received and the request was completed.

Associated issue: https://github.com/NativeScript/android-runtime/issues/715
Associated PRs:

https://github.com/NativeScript/NativeScript/pull/3796
https://github.com/NativeScript/tns-core-modules-widgets/pull/91

Part of the #563 effort
Demo images (Click to enlarge):

Overview
Request
Response

PR can be tested internally with the Groceries project:
git clone https://github.com/NativeScript/sample-Groceries/
cd sample-Groceries
git checkout master
tns plugin add tns-core-modules@next
tns plugin add nativescript-angular@next
tns platform add android --frameworkPath http://nsbuild01.telerik.com/build/job/tns-android-PR/1038/artifact/dist/tns-android-3.0.0-2<IP_ADDRESS>.tgz
tns debug android

@Plamen5kov addressed in https://github.com/NativeScript/NativeScript/pull/3867


Prysm Beacon Node

The beacon-chain node shipped with Prysm is the keystone component of the Ethereum proof-of-stake protocol. It is responsible for running a full Proof-of-Stake blockchain, known as a beacon chain, which uses distributed consensus to agree on blocks both proposed and attested on by validators in the network. Beacon nodes communicate their processed blocks to their peers via a P2P (peer-to-peer) network, which also manages the lifecycle process of active validator clients.

Can we import a validator account?


broken links

On https://canada-ca.github.io/a11y/
The Printable posters (PDF format):  do not open, looks like a broken link, error message being recived.
Designing for users on the autistic spectrum

Duplicate of #35

Duplicate of #35


loader/svg: Skip check for quotes inside quotes

Single or double quotation marks that occur before
closing the quotation mark are ignored.
related issue: https://github.com/thorvg/thorvg/issues/1892

LGTM


SOCKS Proxy support for contexts and NATS

Depends upon https://github.com/nats-io/jsm.go/pull/428

The logic when I first pushed this worked if the proxy were set in the context file, which is how I'd tested, but not if set via the command-line or environ.  The updates I've pushed fix that to actually work "normally".

thank you :)


increased/decreased circulating glucose AUC

If this is a request for a new term, please provide us with the following information.

Preferred term label (e.g., asplenia)

A. increased circulating glucose AUC
B. decreased circulating glucose AUC

Synonyms (e.g., absent spleen)

A. increased circulating glucose area under the curve
B. decreased circulating glucose area under the curve

Textual definition (the definition should be understandable even for non-specialists. Include a PubMed ID or URL(s) to refer to any relevant article(s) that provides information about the suggested term).

A. greater than the normal concentration in the blood of this major monosaccharide of the body over a specified time of measurement
B. less than the normal concentration in the blood of this major monosaccharide of the body over a specified time of measurement
PMID:10323602

Any additional notes to clarify the meaning or use of the term. Please provide a PubMed ID or URL(s) for the source of this information.

Suggested parent term (Please look in the hierarchy of the MP using the MP Browser or other browsers such as OLS and find the place in the MP where the new term best fits)

A. increased circulating glucose level (MP:0005559)
B. decreased circulating glucose level (MP:0005560)

If you would like a nanoattribution, please indicate your ORCID id or provide a label such as MGI:sbello (organization, first initial-last name)

ORCID:0000-0001-5256-8683

I think we don't want to add this to the MP. While we have some measurement specific terms these are generally where the measurement is the phenotype.


Translation things

I have added missing translations and I have added a translation function to emails/ticket.blade.php


Release: Gotham v0.4.0

This release of Gotham includes updates from Hugo v0.74.1.
There were no other significant changes to the code base.
Gotham v0.4.0 (compatible with Hugo v0.74.1/extended)

@felicianotech just updated the message. Does that look good?

Yup


OpenSemaphore 404 페이지를 찾을 수 없음

https://msdn.microsoft.com/en-us/library/ms684326(v=VS.85).aspx

Hi @knightofelf -- thank you for your feedback. Did you find a link to this page on one of our docs, or was this a page you had bookmarked?

@ginami - it looks like there is a redirect set for the MSDN page, but it just doesn't resolve to the correct destination on docs.

@GrantMeStrength can you help with this redirect issue? Thank you!


improve: make "Content Layout Max Width"  linked to " Page Layout Max Width"

Every user can set content layout width larger than page layout:

Maybe need to calculate content layout using set page width?

@Ampernic This is indeed blocking users to have a more straightforward way to understand how adjustment slider works when using enhanced readabilities plugin.
Short answer: It is possible to calculate.
Long answer: It is not quite easy to design how to "link" these two values together.
Pre-requirements knowledge:

VitePress's default theme offers several breakpoints (4 in total) for different screen sizes. By design of enhanced readabilities plugin, layout switch will only work at breakpoint 4 (largest one).
Default theme is maintained by VitePress and we cannot actually manipulate it easily.

Method 1
Let's say the "linking" method is to dynamically calculate and measure how wide the sidebars and viewport are, then calculate the available percentage of viewport for contents to scale.
Or we can write equations like this:
max value of Content Layout Max Width slider = (Viewport width - Sidebar width - Aside (Outline) width) / Viewport width
Then there are things to consider now:

Would querySelector and getClientRect capable enough to get the sidebar and outline width?
What if someone modified or override the Sidebar and Aside components?
What other scenarioes do we need to consider?
We have the max value now, how can we calculate the min value for slider?

In conclusion, method 1 is hard to maintain and cover the edge cases well enough to calculate the sizes of components, but offers users better flexibilities since they would have abilities to adjust it as much accurate as possible.
Method 2
Instead of full slider, can we make several presets that were tested carefully to prevent users to misconfigure it, but in a more controllable way. The sliders may remain as the same, but we can add one extra options to allow users to choose a preset from, the presets are another slider to take the Content and Sidebar width slider's place. Easy to setup and get it running.
If you'd like to prevent users to misplay the sliders completely, we can also add one extra option to drop out or hide options for users to choose from.
What do you think?

Thanks for fast response
After a little discussion with the team, we agreed that the second option sounds better.


[Question] Where does the Azure DevOps Token Replacement Task get the sensitive values that will be replaced?

Release version
latest
Question Details
When comparing the Azure DevOps pipeline reference examples to that of the GitHub Actions we see some differences to how the secrets/env are passed to the token replacement task.   The nature of the 3rd party task is no-doubt part of that.  I'm hoping you can clarify how the Azure DevOps scenario operates.
In the Azure DevOps Pipeline Sample we see that a variable is explicitly seeded.   I'd imagine this can be done via VariableGroup or, perhaps a secret backend.
variables:   #setting the testSecretValue to the prod resource group name as an example   testSecretValue: $(RESOURCE_GROUP_NAME_Prod)
Then later, in the reusable pipeline, we see the token replacement task however, unlike the GitHub Actions example, the task itself doesn't seem that it takes an input argument to map any environment vars/secrets into the task.  So my assumption is that the task looks to do this implicitly rather than explicitly.
When we look at the sample configuration.prod there are tokens to be replaced on lines 16, 20 and 24.  Only line 16 seems to be referenced in the variables for the job.
Based on how the Token Replacement task is employed, as of V3 which you use (since superseded by 6.. but I see that upgrading is not yet planned by the ApiOps team), is the idea that you seed the Job w/ named Variables whose key matches that of the replacement token in the configuration file?
thanks!
Expected behavior
Just clarifying the Token Replacement Scenario
Actual behavior
N/A
Reproduction Steps
Seed Environment Variables to be used w/ Token Replacement

Here is a sample configuration.prod.yaml file which is expecting a namedvalue called testsecret (of type secret) to be overridden.

As you can see the testsecretvalue is passed in the run-publisher pipeline as a variable


changing error message to match aws api (stack update attempt with no updates)

When a stack exists and an update is attempted with the same parameters and template body the AWS api responds with a specific message which is injected into the ClientError generated by boto.
To reduce complexity we make some of our processes ignorant of whether an update constitutes changes to a stack by checking if this exact message is returned as part of a ClientError. Reflecting this message in moto will allow us test the components that use this in their processes while preserving the the updates provided in https://github.com/spulec/moto/pull/4351.

It looks like one of our tests expects the wrong value, and is now failing:
https://github.com/spulec/moto/actions/runs/3753624731/jobs/6377473172
Happy to merge once the build passes.

It looks like one of our tests expects the wrong value, and is now failing: https://github.com/spulec/moto/actions/runs/3753624731/jobs/6377473172
Happy to merge once the build passes.

My apologies, I missed updating the tests with the expected value. The most recent commit should solve the problem.

Codecov Report

Merging #5800 (32d470e) into master (3a10220) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #5800   +/-   ##
=======================================
  Coverage   96.19%   96.19%
=======================================
  Files         752      753    +1
  Lines       73938    73957   +19
=======================================
+ Hits        71123    71143   +20
+ Misses       2815     2814    -1

Flag
Coverage Δ

servertests
36.95% <ø> (+<0.01%)
:arrow_up:

unittests
96.13% <ø> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

moto/cloudformation/responses.py
96.38% <ø> (ø)

moto/ec2/responses/windows.py
100.00% <0.00%> (ø)

moto/dynamodb_v20111205/comparisons.py
100.00% <0.00%> (ø)

moto/ec2/models/windows.py
100.00% <0.00%> (ø)

moto/dynamodb_v20111205/models.py
93.72% <0.00%> (+0.02%)
:arrow_up:

moto/ec2/models/__init__.py
95.27% <0.00%> (+0.03%)
:arrow_up:

moto/dynamodb_v20111205/responses.py
95.45% <0.00%> (+0.04%)
:arrow_up:

moto/route53/models.py
96.75% <0.00%> (+0.20%)
:arrow_up:

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


ci: remove metronome integration due to the excessive errors reported

Codecov Report

Merging #175 (2977d08) into main (91dcb8c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #175   +/-   ##
=======================================
  Coverage   16.60%   16.60%
=======================================
  Files          73       73
  Lines        1036     1036
  Branches      363      363
=======================================
  Hits          172      172
  Misses        862      862
  Partials        2        2

Continue to review full report at Codecov.

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


Memory leak

Please fill out the sections below to help us address your issue.
What issue did you see ?
When I call the AWS interface in large numbers, and cannot connect to the corresponding area due to network reasons, an EndpointConnectionError is thrown. As time goes by, the memory occupied by my process will continue to increase, and the maximum observed is currently 6G. Using gc and pyrasite to check, it is found that gc.garbage is [], and the data type that takes up the most memory is str or unicode. The unicode description is the document description of DescribeInstancesRequest in service-2.json.
The library versions I use: boto3-1.12.24, botocore-1.15.24, urllib3-1.21.1
Steps to reproduce
If you have a runnable example, please include it as a snippet or link to a repository/gist for larger code examples.
Debug logs
Full stack trace by adding
import botocore.session
botocore.session.Session().set_debug_logger('')

to your code.

The way i get AWS client：
class AwsClient(object):

    def __init__(self, region='eu-central-1', server_name='ec2'):
        self.region = region
        self.server_name = server_name

    @property
    def client(self):
        return boto3.client(self.server_name,
                            region_name=self.region,
                            aws_access_key_id=ACCESS,
                            aws_secret_access_key=SECRET)

I used 2 process and multy green threads to make requests.

@itachaaa - Thank you for your post. It is recommended to create a resource instance for each thread / process in a multithreaded or multiprocess application rather than sharing a single instance among the threads / processes.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html?highlight=multithreading#multithreading-multiprocessing
Are you creating boto3 session from botocore session ? Can you please provide me your exact code sample that resulting in memory leak ?

Thanks for reply.
I use boto3.client() to get an instance and make requests.
And there is one process in my program, but with multy Coroutine rather than multy thread.
So there is one session for one process.

And only when there is throwning lots of exception the memory will increase, otherwise won't.

@itachaaa - Thanks for the reply. Is it possible for you to provide me a code sample so that i can try reproduce the issue ? Without looking at the code it is a little difficult for me to find out the exact cause.
Please make sure you are doing garbage collection as you are using multiple coroutine.

here is my test code：

and let it throw errors a lots such as EndpointConnectionError，then the memory will continue to increase.

@itachaaa - Thank you for providing me the sample code. Marking this as bug. I am able to reproduce the issue with this script:
import os
import boto3
import botocore
import resource
import psutil
from resource import *
import matplotlib.pyplot as pp
import sys
from botocore.config import Config
from eventlet.greenpool import GreenPool

used =[]

def get_data():
        client = boto3.client('ec2',config = Config(retries={'max_attempts':0},connect_timeout=5, read_timeout=5))
        client.describe_instances()

pool  = GreenPool(10000)
for i in range(100000):
        process = psutil.Process(os.getpid())
        memory = process.memory_info().rss/1024/1024
        used.append(memory)
        pool.spawn_n(get_data)

pp.plot(used)
pp.show()

I would like to ask if you have a situation where the network environment is not very good and sometimes throws an exception when you reproduce it.
Because at that time there were frequent printing of network-related anomalies, such as EndpointConnectError, ReadTimeoutError and so on.

I am also tracking down a memory leak.  tracemalloc pointed me to https://github.com/boto/botocore/blob/develop/botocore/client.py#L322
When running a Flask application and looping through gc.garbage after a gc.collect() I am left with boto docs. I currently am using boto3 and creating clients as client = boto3.client('sts') as an example.
Running in lambda the following is a graph of memory from cloudwatch metrics filter:

Is there an update or workaround for this problem?

Creating one session per thread and reusing them across ThreadPool mitigated the issue for us. Snippet for aiobotocore below:
import threading
from aiobotocore.session import AioSession, get_session

# NOTE: botocore has a memory leak in Session objects. Recommended workaround is to cache the session object locally per thread.
# See https://github.com/boto/botocore/issues/2047
_aio_session_cache = threading.local()

def _cached_session() -> AioSession:
    if not hasattr(_aio_session_cache, "session"):
        _aio_session_cache.session = get_session()
    return _aio_session_cache.session

I ran my FastAPI app and tracemalloc pointed me that python3.8/json/decoder.py file is leaking ~100MB every 15 minutes
looking into the tracebacks of that file I see that they are all being called by boto
File \"/opt/venv/lib/python3.8/site-packages/botocore/session.py\", line 787
  return self._internal_components.get_component(name)
File \"/opt/venv/lib/python3.8/site-packages/botocore/session.py\", line 1081
  self._components[name] = factory()
File \"/opt/venv/lib/python3.8/site-packages/botocore/session.py\", line 188
  endpoints = loader.load_data('endpoints')
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 142
  data = func(self, *args, **kwargs)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 454
  found = self.file_loader.load_file(possible_path)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 194
  data = self._load_file(file_path + ext, open_method)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 181
  return json.loads(payload, object_pairs_hook=OrderedDict)
File \"/usr/local/lib/python3.8/json/__init__.py\", line 370
  return cls(**kw).decode(s)
File \"/usr/local/lib/python3.8/json/decoder.py\", line 337
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File \"/usr/local/lib/python3.8/json/decoder.py\", line 353
  obj, end = self.scan_once(s, idx)

and
File \"/opt/venv/lib/python3.8/site-packages/botocore/client.py\", line 202
  json_model = self._loader.load_service_model(
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 142
  data = func(self, *args, **kwargs)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 417
  model = self.load_data(full_path)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 142
  data = func(self, *args, **kwargs)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 454
  found = self.file_loader.load_file(possible_path)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 194
  data = self._load_file(file_path + ext, open_method)
File \"/opt/venv/lib/python3.8/site-packages/botocore/loaders.py\", line 181
  return json.loads(payload, object_pairs_hook=OrderedDict)
File \"/usr/local/lib/python3.8/json/__init__.py\", line 370
  return cls(**kw).decode(s)
File \"/usr/local/lib/python3.8/json/decoder.py\", line 337
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File \"/usr/local/lib/python3.8/json/decoder.py\", line 353
  obj, end = self.scan_once(s, idx)

I'm using botocore==1.27.59 and can't upgrade it since aiobotocore is fixed to ^1.27


It is mobile based tool which is providing you this much features.....
If you are not satisfied you can try other tools

It is mobile based tool which is providing you this much features.....

@Abhi6722
It doesn't matter the problem is with the idea of the tool.

you can try other tools

There isn't... the permission ask pop up  is made for a reason.

lmao


Setting disable times dynamically with arrays does not clear previous disabled times

im trying to do dynamic time disabling, here is what i have
var allUserSchedules = [
    ["26 December, 2017", {from: [00,00], to: [01,00]}],
    ["29 December, 2017", {from: [16,00], to: [19,00]}]
];

var timePickerInput = $('#bookingTime').pickatime();

$('#bookingDate').on('change', function() {
    var timePicker = timePickerInput.pickatime('picker');
    var timeSlotTaken = [];
    var generateDate;
    generateDate = $('#bookingDate').val();
    for (i = 0; i < allUserSchedules.length; i++) {
        if (generateDate == allUserSchedules[i][0]) {
            timeSlotTaken.push(allUserSchedules[i][1]);
        }
    }

    console.log(timeSlotTaken);
    $('#bookingTime').show();
    timePicker.set('disable', timeSlotTaken);
    timePicker.set('interval', 60);
});

The flow is, user picks a date -> JS checks if there are same dates between input date and dates inside arrays and return those same dates -> from those same dates get the time slot taken
It is working as expected when i FIRST select a date, however, the next times i do it, the time slots taken from the first selected date is also there, it does not refresh. Anyone has experienced this before or has a solution to this issue ?

@wahablukman @shazzygh You could use the datepicker events.


add item with a parent

When attaching a file usin pyzotero API, one can specify an ID for a parent,
attachment_simple(files[, parentid])
I'd like to also allow for
create_items(items)
to have an optional parent id,
create_items(items[, parentid])
Is this already included in pyzotero? If not, is it possible within zotero API?

I think this is required for attaching notes as children of items (see https://www.zotero.org/support/dev/web_api/v3/write_requests about half-way down the page, under the "Both PUT and PATCH" header). When I try to create a note by manually adding the 'parentItem' property and setting it to the item ID, I get a 'circular reference detected' error.

Could you try this now?


Consolidate the more link into the schedule.

I was wondering if it's possible to instead of having the "X more" button in the top right corner. Have a schedule bar span from the start to end date. Which when clicked on just shows the same menu as the "X more" button would. The reason I am asking this is because user might miss the "X more".

At aaa.bapha.be I instead always show theMore button, but without number, if all items are shown.  I want as next to display the + underlined, so that it can be recognized as link.  This is a different appeoach for the Might have missed the X more.

At aaa.bapha.be I instead always show theMore button, but without number, if all items are shown. I want as next to display the + underlined, so that it can be recognized as link. This is a different appeoach for the Might have missed the X more.

How did you make it so it always shows?

I have modified tui.calendar for my wishes, by deleting 13028 lines and adding 1914 lines.  I first removed handlebars and then made the plus always appear.  This lead to a situations, where bugs are exposed/introduced, which are not visible upstream and to hard to apply in upstream changes.  I believe it is now a matter of applying semantically the changes listed below.
    In month view calculate the amount of pluses correctly

    especially when events for the previous day have ended at midnight.

diff --git a/src/js/view/weekday.js b/src/js/view/weekday.js
index 5f6e9543..c781a2b2 100644
--- a/src/js/view/weekday.js
+++ b/src/js/view/weekday.js
@@ -129,7 +129,7 @@ Weekday.prototype.getExceedDate = function(eventsInDateRange, range) {

                 datetime.range(
                     viewModel.getStarts(),
-                    viewModel.getEnds()
+                    datetime.convertStartDayToLastDay(viewModel.getEnds())
                 ).forEach(function(date) {
                     var ymd = datetime.format(date, 'YYYYMMDD');
                     exceedDate[ymd] += 1;

-----------------

    when ownEnds(the event end)==start(the rendered period) the event does not belong to the period

    See also https://github.com/nhn/tui.calendar/issues/704.

diff --git a/src/js/controller/viewMixin/core.js b/src/js/controller/viewMixin/core.js
index 4c8d880d..0ade7705 100644
--- a/src/js/controller/viewMixin/core.js
+++ b/src/js/controller/viewMixin/core.js
@@ -134,13 +134,12 @@ var Core = {
         return function(model) {
             var ownStarts = model.getStarts(),
                 ownEnds = model.getEnds();
-
             // shorthand condition of
             //
             // (ownStarts >= start && ownEnds <= end) ||
-            // (ownStarts < start && ownEnds >= start) ||
+            // (ownStarts < start && ownEnds > start) ||
             // (ownEnds > end && ownStarts <= end)
-            return !(ownEnds < start || ownStarts > end);
+            return ownEnds > start && ownStarts <= end;
         };
     },

--------
    monthview: print + on each day with schedules

diff --git a/src/js/view/month/weekdayInMonth.js b/src/js/view/month/weekdayInMonth.js
index 4340d28a..222f7e35 100644
--- a/src/js/view/month/weekdayInMonth.js
+++ b/src/js/view/month/weekdayInMonth.js
@@ -45,19 +45,19 @@ function replaceHandlebars2(v) {
 }

 function replaceHandlebars(v) {
     /* eslint-disable max-len, no-nested-ternary */
     var a = `<div class="weekday-border" style="border-top:${v.styles.borderTop}"></div><div class="weekday-grid">`, b, holiday, i;
     for (i = 0; i < v.dates.length; i += 1) {
         b = v.dates[i];
         holiday = b.day === 0 ? ' holiday-sun' : (b.day === 6 ? ' holiday-sat' : '');
-        a += `<div class="weekday-grid-line${holiday}${b.date !== 1 ? ' near-month-day' : ''}${b.isToday ? ' today' : ''}${b.isOtherMonth ? ' extra-date' : ''}" style="width:${b.width}%;left:${b.left}%;background-color:${b.backgroundColor};font-size:${v.styles.fontSize}${i !== v.dates.length - 1 ? `;border-right:${v.styles.borderLeft}` : ''}">
<span${b.isToday ? '' : ` style="color:${b.color}"`} class="weekday-grid-date${b.isToday ? ' weekday-grid-date-decorator' : ''}">${parseInt(b.date.split('-')[2], 10)}`;
-        if (b.hiddenSchedules) {
-            a += `<span class="weekday-exceed-in-month weekday-grid-more-schedules" data-ymd="${b.ymd}">+${b.hiddenSchedules}</span>`;
+        a += `<div style="width:${b.width}%;left:${b.left}%;background-color:${b.backgroundColor};font-size:${v.styles.fontSize}${i !== v.dates.length - 1 ? `;border-right:${v.styles.borderLeft}` : ''}" class="weekday-grid-line${holiday}${b.date !== 1 ? ' near-month-day' : ''}${b.isToday ? ' today' : ''}${b.isOtherMonth ? ' extra-date' : ''}"><div class="weekday-grid-header${b.schedules ? ` weekday-exceed-in-month" data-ymd="${b.ymd}` : ''}"><span${b.isToday ? '' : ` style="color:${b.color}"`} class="weekday-grid-date${b.isToday ? ' weekday-grid-date-decorator' : ''}">${parseInt(b.date.split('-')[2], 10)}</span>`;
+        if (b.schedules) {
+            a += `<span class="weekday-grid-more-schedules">+${v.renderLimitIdx < b.schedules + 1 ? b.schedules - v.renderLimitIdx + 1 : ''}</span>`;
         }
         /* eslint-enable max-len, no-nested-ternary */
         a += '

';
     }

     return a + '

';
 }

@@ -120,17 +120,17 @@ WeekdayInMonth.prototype._getRenderLimitIndex = function(panelHeight) {
  * @override
  * @param {object} viewModel - schedules view models
  */
 WeekdayInMonth.prototype.getBaseViewModel = function(viewModel) {
     var opt = this.options,
         gridHeaderHeight = opt?.grid?.header?.height || 0,
         gridFooterHeight = opt?.grid?.footer?.height || 0,
         renderLimitIdx = this._getRenderLimitIndex() + 1,
-        exceedDate = this.getExceedDate(renderLimitIdx, viewModel.eventsInDateRange, viewModel.range),
+        exceedDate = this.getExceedDate(viewModel.eventsInDateRange, viewModel.range),
         styles = this._getStyles(viewModel.theme);
     var baseViewModel;

     viewModel = Object.assign({
         exceedDate
     }, viewModel);

     baseViewModel = Weekday.prototype.getBaseViewModel.call(this, viewModel);

diff --git a/src/js/view/weekday.js b/src/js/view/weekday.js
index 52917824..96c875e2 100644
--- a/src/js/view/weekday.js
+++ b/src/js/view/weekday.js
@@ -94,44 +94,42 @@ Weekday.prototype.getBaseViewModel = function(viewModel) {
             var isToday = datetime.isSameDate(now, date);

             return {
                 date: datetime.format(date, 'YYYY-MM-DD'),
                 month: date.getMonth() + 1,
                 day,
                 isToday,
                 ymd,
-                hiddenSchedules: exceedDate[ymd] || 0,
+                schedules: exceedDate[ymd] || 0,
                 width: grids[index] ? grids[index].width : 0,
                 left: grids[index] ? grids[index].left : 0,
                 color: this._getDayNameColor(theme, day, isToday),
                 backgroundColor: this._getDayBackgroundColor(theme, day)
             };
         }, this)
     };
 };

 /* eslint max-nested-callbacks: 0 */
 /**
  * Make exceed date information
- * @param {number} maxCount - exceed schedule count
  * @param {Array} eventsInDateRange  - matrix of ScheduleViewModel
  * @param {Array.<TZDate>} range - date range of one week
  * @returns {object} exceedDate
  */
-Weekday.prototype.getExceedDate = function(maxCount, eventsInDateRange, range) {
+Weekday.prototype.getExceedDate = function(eventsInDateRange, range) {
     var exceedDate = this._initExceedDate(range);

     eventsInDateRange.forEach(function(matrix) {
         matrix.forEach(function(column) {
             column.forEach(function(viewModel) {
-                if (!viewModel || viewModel.top < maxCount) {
+                if (!viewModel) {
                     return;
                 }
-
                 // check that this schedule block is not visible after rendered.
                 viewModel.hidden = true;

                 datetime.range(
                     viewModel.getStarts(),
                     viewModel.getEnds()
                 ).forEach(function(date) {
                     var ymd = datetime.format(date, 'YYYYMMDD');


Added a limit for loaded pages in dev

Closes #7059

I don't think this is the correct solution to the issue. What if you have these pages open and they get disposed. It would cause a refresh on those pages as they get disposed, causing them to recompile, which causes more work to be done, which then cases OOM again.

@timneutkens if there's a wait to check for pages that are not opened, that should do it, right ?

Going to close this as we need to think about it more.


Automate Org Data Upload

Is there a way to automate the process of upload/map/validate for org data?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b0746231-3c38-d024-7a2c-48bb48bed59b
Version Independent ID: b2e61773-3f27-079f-647c-8d7e01f9e97b
Content: Upload organizational data to Workplace Analytics (subsequent uploads) - Workplace Analytics Office 365
Content Source: WorkplaceAnalytics/Setup/Upload-organizational-data.md
Product: wpa
GitHub Login: @paul9955
Microsoft Alias: v-midehm

Hello Todd,
Unfortunately, there is no way to automate this task other than to use the Workplace Analytics portal itself. You could conceivably write a script to validate your .csv file (check for correct format, non-null values, and so on) before you upload the file. But we don't recommend this because this kind of validation would essentially duplicate what Workplace Analytics does anyway, after upload.
Thank you,  - Workplace Analytics doc team


server killed

Hi , boringproxy was running boring and smoothly yesterday with 2 clients , then i tried to add another client the server was killed , first i was thinking maybe there is a number of connections limit , then i deleted one connection and tried again but no luck , server killed, then i started from fresh ;
setcap -r boringproxy-xxxxxx
deleted boringproxy.json
deleted boringproxy-xxxxxx
curl again boringproxy
chmod +x
setcap settings
aquire certificate and runs nicely , clients can connect without problems , but when i try to add a tunnel , on the terminal prints only "killed"
since there is no logs and no more info prints on the terminal someone know what ca be the problem??
now it`s really boring......... to get this works

I am having the same issue. I tried running the application with GDB, by recompiling myself with the latest commit.
Running it as a standard user didn't work (port 80 was not authorized), even though I set the setcap to gdb and the new binary.
So I ran it as root, and it's working fine now (but only as root). I don't know why though.

Humm thanks anyway i tried running both as root client and server, but the same error, the server prints "killed" and client prints connection to server ip:443 connection refused. i have disabled all firewalls also tried with client on a dmz zone but no luck.

Interesting, thanks for the report. Can you monitor your memory usage (with htop or whatever you prefer)? I suspect there's a memory leak causing the server to run out of memory and kill boringproxy.

Hello i have installed the boringproxy alone on a clean and basic vps instance just for this memory test, the vps as only 512MB memory currently as 3  tunnels running smoothly and i have no problems with memory see the screenshoot.
hope that helps

Oh wow. Look at mine. Same setup as yesterday evening when I wrote, but now I can't start one tunnel without it being killed.
This is the memory spike before it gets killed.

wtf... well maybe it depends from what kind of server are running trough the tunnel?
currently im serving a instance of  "searx" another witht "libreddit" and another with "cryptpad."

I'm on AWS EC2 t2.micro for the server. The client is on manjaro

I tried adding swap. I managed to start a tunnel (this time, using almost 2Go of ram)
Then, guess what, opening a second one (on the same client) resulted in similar results, it got killed again. This time I got a peekClientHello error though. Maybe that helps

so... after experiencing connections errors again, "server killed" i have changed to another tunnel "frpc" still dont realize on to enable the ssl but at least runs well, i will give a try on the boringproxy on new realeases.

same error, if i delete autorized_key file in .ssh it works again

same error, if i delete autorized_key file in .ssh it works again

Hi thanks for this however i tried this and now i get invalid domain parameter no matters what name i try to give to the subdomain.

@anderspitman In case that helps, my authorized_keys file on my tunnel server has 2162688 lines. I don't know the reason, I have nothing else running on it.

same issue here.
for time being fixed with
cp authorized_keys authorized_keys.bak
sort authorized_keys   | uniq > authorized_keys

same issue here. for time being fixed with
cp authorized_keys authorized_keys.bak sort authorized_keys | uniq > authorized_keys
Original was 360 meg 1.4K Jan 22 11:53 authorized_keys 360M Jan 22 11:51 authorized_keys.bak

Glad to hear it works for you now, if that helps since i run the proxy in another port than 22  over 1000 it runs always flawless.

Glad to hear it works for you now, if that helps since i run the proxy in another port than 22 over 1000 it runs always flawless.

Thanks - were is this configured?
in boringproxy_db.json I see "server_port": 22  - can this just be edited?
or is there an option when starting borign proxy?
or does sshd need started on a high port?
As a workaround I've just added a cron job to clear out the keys file each day.

Glad to hear it works for you now, if that helps since i run the proxy in another port than 22 over 1000 it runs always flawless.

Thanks - were is this configured?
in boringproxy_db.json I see "server_port": 22 - can this just be edited? or is there an option when starting borign proxy? or does sshd need started on a high port?
As a workaround I've just added a cron job to clear out the keys file each day.

Hi, no no
you need to edit the ssh server port on your /etc/ssh/ssh.config or depend your system sshd.conf
then restart:   sudo service sshd restart
afther that start the proxy client and the server like this:
(i changed my boringproxy executable to proxy to be more simple, and less boring )
CLIENT
./proxy client  -server your.server.domain -user admin -token your.token -client-name anyname  &> /dev/null &
SERVER
./proxy server -admin-domain  your.domain  -ssh-server-port 1337 &> /dev/null &
cheers

@carlostkd Thanks for that. Makes sense now I think about it. Getting off 22 will also slow down the multiple attempts from other large countries!


Add support 1.20.1

I noticed that your mod does not support version 1.20.1 please add this in the next version

Sir, yes sir! Currently trying to figure out how to do that, starting from 1.19 to 1.20.1, will be done soon probably

I have released the mod from 1.19 upto 1.20.1 (in theory).


AWS setup - deploy RStudio environment container

Distilled from #11
Documentation for how to do this can be found here.
Describe the solution you'd like

[ ] Deploy an RStudio environment container. This will allow a challenge solution submission to Synapse through the RStudio environment. The setup has some subtleties - @milen-sage estimates about 4-6 hours of work here (but hopefully the instructions speed that up).

From @BrunoGrandePhD:

The infrastructure deployed in https://github.com/Sage-Bionetworks/scicomp-provisioner/pull/478 requires an nginx reverse proxy to redirect HTTPS traffic (port 443) to RStudio (port 8787).
Update Dockerfile to use rocker/tidyverse:4.0.5, which builds on top of rocker/rstudio (i.e. it includes RStudio). This should speed up image building significantly since all of the tidyverse packages (and their OS-level dependencies) are pre-installed.

@linglp: I'll be monitoring this ticket as well in case you need any help!

ec2 instance has been set up and shared; adding students and testing remains

The following users have been added as admin:
Adding user thomasyu888 to groups rstudio-user,rstudio-admin
Adding user linglp to groups rstudio-user,rstudio-admin
Adding user jaeddy to groups rstudio-user,rstudio-admin
Adding user bgrande to groups rstudio-user,rstudio-admin
Adding user milen to groups rstudio-user,rstudio-admin
Adding user lopierra to groups rstudio-user,rstudio-admin

hi @linglp -- I see that this is marked Done on the project board, can this ticket be closed?

@ychae Yes. Thank you


Update account-creation-in-ae-cli.md

This is my wallet address:         ak_25TktXHGr5oQuMjr4bx9mAPf3XrSzJAtMq29e7jTPKNwWLE3Wf

I heard of a 150$ bounty on a succesfull merge

The additions of how to install nodejs seem out of scope for this tutorial, as they may be different on each machine. Also markdown style adjustments don't seem necessary at this point in time.

Would it help to include installation instructions for Mac and windows?
On Wed, Oct 23, 2019, 8:16 PM Philipp Piwo<EMAIL_ADDRESS>wrote:

The additions of how to install nodejs seem out of scope for this
tutorial, as they may be different on each machine. Also markdown style
adjustments don't seem necessary at this point in time.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/aeternity/tutorials/pull/57?email_source=notifications&email_token=ALHDPNPCBHFICV2FW4A526DQQCBFVA5CNFSM4JD7WP7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECCGDTY#issuecomment-545546703,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALHDPNLA2FBZN2QZTEYK2HTQQCBFVANCNFSM4JD7WP7A
.

@Muchstix I don't think this is neccessary, once nodejs is installed the workflow is the same on any platform

Node installation on windows is just fine. But there's an issue when it
comes to installing git. Aecli is not yot available in the npm repository.
So, in windows, I suggest steps be written for the installation of a Linux
distribution from the windows store. This would involve updating to the
latest windows 10 version and then enabling windows subsystem for Linux. A
Linux distro can be chosen, git and node installed. Then Aecli.
On Thu, Oct 24, 2019, 10:18 AM Philipp Piwo<EMAIL_ADDRESS>wrote:

@Muchstix https://github.com/Muchstix I don't think this is neccessary,
once nodejs is installed the workflow is the same on any platform
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aeternity/tutorials/pull/57?email_source=notifications&email_token=ALHDPNOI7YAYMDBQTSWH6ALQQFD43A5CNFSM4JD7WP7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECD7PMQ#issuecomment-545781682,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALHDPNI6IWH3VV5XZG2PEEDQQFD43ANCNFSM4JD7WP7A
.

My opinion is to leave out windows instructions, as there may come lots more issues as official support is "experimental"

Yo the boss
On Oct 24, 2019 11:22 AM, "Philipp Piwo"<EMAIL_ADDRESS>wrote:
My opinion is to leave out windows instructions, as there may come lots
more issues as official support is "experimental"
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aeternity/tutorials/pull/57?email_source=notifications&email_token=ALHDPNJ56RH3YI4WUTTW42TQQFLNLA5CNFSM4JD7WP7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECEFFMY#issuecomment-545804979,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALHDPNKSYE2ZPSDEK5IFHI3QQFLNLANCNFSM4JD7WP7A
.


Generate "body" methods and directly call them with arguments

This fixes the example from #322. I think there's probably more places where this optimisation can be used.

Can you rebase this PR with master? The updated script that should trigger eta-benchmarks is there.

According to @puffnfresh, performance gains don't seem to be as expected. Need to revisit this at a later time.

I had another go at this in the going-stackless branch and only a few benchmarks truly benefitted from this optimisation while the others had significant slow downs. Essentially, this optimisation works great when most of your program has function calls which are known at compile-time (which is not the common case in a lazy language).
Another thing to think about is whether the programs in nofib are true representatives of code you'd find it production, which I'm not sure is the case.
The plan of action to take this forward is add some benchmarks to eta-benchmarks with common subsets of "real-world" code and see how this optimisation affects those benchmarks.
Closing for now until we find an extremely common piece of code that could benefit from this optimisation.


external sub-command support

Making a new issue as per @jonboulle's request for continuing the discussion from https://github.com/coreos/rkt/pull/795.
I'd like to see a plugin system for fetching, as it would allow some nice reuse of components between rkt and acbuild.
I'm in favor of the suggestion where rkt fetch scheme://identifier translates to rkt-remote-scheme fetch identifier, with perhaps the caveat that the binary could be called ac-remote-scheme since acbuild is at the appc level of things.
For simplicity's sake I'd prefer it just exec the process, and have the new binary take over stdin/stdout/exit code/etc, but this would require each plugin to be able to understand and interact with rkt's cas.
It would improve code reuse between acbuild and rkt, and would allow for users to create specialized fetchers (GCS for example) if they want to access/store their ACIs somewhere we haven't considered.

Unless anyone disagrees with what I suggested above, I'm just going to make this and make a PR for it, and we can go from there.

@dgonyeo: I hope that the refactored image handling will make the task much easier.
Also, you cannot just do exec, because these fetchers would be invoked also when calling rkt run. So you'll have to resort to os.exec.Cmd I think. Unless I got something wrong.

Sorry, I did mean os.exec.Command.

On Dec 22, 2015, at 13:03, Krzesimir Nowak<EMAIL_ADDRESS>wrote:
@dgonyeo: I hope that the refactored image handling will make the task much easier.
Also, you cannot just do exec, because these fetchers would be invoked also when calling rkt run. So you'll have to resort to os.exec.Cmd I think. Unless I got something wrong.
―
Reply to this email directly or view it on GitHub.

Mea culpa for dropping that conversation - please loop in @ngorskig per the discussion in https://github.com/coreos/rkt/pull/795#issuecomment-157879212 onward

Once I get what rkt currently supports broken apart into plugins (so meta fetching, direct https links, ...), any chance you'd be willing to contribute a GCS plugin @ngorskig?

Derek is going to target this for 1.0.

Any progress?

None yet. I'll have time tomorrow to start digging into this, but I'm guessing that this won't make 1.0.

On Jan 26, 2016, at 11:32, Iago López Galeiras<EMAIL_ADDRESS>wrote:
Any progress?
—
Reply to this email directly or view it on GitHub.

:raising_hand:

I was waiting to see what happened with abd, I guess I'm now waiting to see what happens with OCI discovery. Would it still be worth me implementing this in rkt today? If so I'll stop putting this off :p

@s-urbaniak any opinion on this?

This is an interesting evolution, also in the context of https://github.com/coreos/rkt/issues/1585#issuecomment-184711873 and https://github.com/coreos/rkt/issues/2482. It would allow to better draw the line between privileged and un-privileged execution.
(Given the milestone-bumping here, and how far we are into 1.8.0 cycle, IMHO it would be honest to just de-milestone it, iron out the plan and then realistically enqueue it in the ROADMAP)

yes, sounds good
On 2 June 2016 at 11:12, Luca Bruno<EMAIL_ADDRESS>wrote:

This is an interesting evolution, also in the context of #1585 (comment)
https://github.com/coreos/rkt/issues/1585#issuecomment-184711873 and
#2482 https://github.com/coreos/rkt/issues/2482. It would allow to
better draw the line between privileged and un-privileged execution.
(Given the milestone-bumping here, and how far we are into 1.8.0 cycle,
IMHO it would be honest to just de-milestone it, iron out the plan and then
realistically enqueue it in the ROADMAP)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/rkt/issues/1831#issuecomment-223237756, or mute
the thread
https://github.com/notifications/unsubscribe/ACewN1K8anCqeh8ouoaM1sVuo5H3Y_bUks5qHp6JgaJpZM4GuTes
.


improve docs

Looks like some unit test checks are failing for some reason unrelated to the PR.

Yes, this is an update in aiohttp that broke the tests, I am approving this and merging it, as it will be fixed on a different PR.


fix documentation on choco_install_timeout

choco_install_timeout was replaced by choco_install_timeout_seconds

Thanks! I see there may be an issue with travis-ci but I haven't had a chance to look into it yet.

The error looks unrelated.

yep, this PR is only fixing documentation and should not change functionality.

Thanks again!


Conclusions?

Can you share your conclusions so far? Is there anything you miss in zig? Why did you need those conv_xxx() adapter functions?
I'm considering starting a project using vulkan and I guess I'll face similar problems...

Hi, I'm currently waiting on this bug to be resolved (only seems to happen on macOS though): https://github.com/ziglang/zig/issues/3211
The reason why I duplicated some structs in the Zig manually, along with those conv_ functions is mainly that I want the Zig wrapper module feels like it's been written in Zig from the outside. That means it should not expose the module user to any C types (like C strings or C functions). So structs which use such C types need a Zig 'mirror struct', and a conversion function which converts C types to Zig types.
But thankfully this isn't needed in most cases since most C types map identically to Zig types.
So in conclusion: the reason why there's a "manually augmented" Zig module instead of directly exposing the automatically imported C interface to the user is that I want to API user to feel like using a native Zig module, not an imported C module :)

Got it, thanks.


Checking subgraph health

When I deploy a local graph node, how to check subgraph health？

You mean like this https://thegraph.com/docs/deploy-a-subgraph#checking-subgraph-health? It's on port 8030.

You mean like this https://thegraph.com/docs/deploy-a-subgraph#checking-subgraph-health? It's on port 8030.

@leoyvens I use the command docker-compose up to start the graph node, but I request http://<IP_ADDRESS>:3030/index-node/graphql, and a 404 error is returned

@leoyvens I use the command docker-compose up to start the graph node, but I request http://<IP_ADDRESS>:3030/index-node/graphql, and a 404 error is returned

@mezz2020 the route you should use is :8030/graphql, no index-node

@mezz2020 the route you should use is :8030/graphql, no index-node

@leoyvens Thank you, the graph node service is running successfully

@leoyvens Thank you, the graph node service is running successfully


Class

Pull Request Test Coverage Report for Build 512

22 of 22 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 508:
0.0%

Covered Lines:
530

Relevant Lines:
530

💛  - Coveralls


Update deploy-chat-teams-channels-microsoft-teams-landing-page.md

https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/3886
Fixed abbreviation

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


Error while loading shared libraries: libcamera.so.0.0:

Which version are you using?
v1.1.1
Which operating system are you using?

[ ] Linux amd64 standard
[ ] Linux amd64 Docker
[ ] Linux arm64 standard
[ ] Linux arm64 Docker
[ x] Linux arm7 standard
[ ] Linux arm7 Docker
[ ] Linux arm6 standard
[ ] Linux arm6 Docker
[ ] Windows amd64 standard
[ ] Windows amd64 Docker (WSL backend)
[ ] macOS amd64 standard
[ ] macOS amd64 Docker
[ ] Other (please describe)

Describe the issue
Error thrown by mediamtx -
Describe how to replicate the issue
With the configuration set to rpiCamera, I get this when starting the mediamtx server.

Linux 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux
MediaMTX v1.1.1

start the server
publish with ...
read with ...

Did you attach the server logs?
2023/10/11 19:07:20 INF MediaMTX v1.1.1
2023/10/11 19:07:20 DEB [path cam] created
2023/10/11 19:07:20 DEB path manager created
2023/10/11 19:07:20 INF [path cam] [RPI Camera source] started
2023/10/11 19:07:20 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2023/10/11 19:07:20 INF [RTMP] listener opened on :1935
2023/10/11 19:07:20 INF [HLS] listener opened on :8888
2023/10/11 19:07:20 INF [WebRTC] listener opened on :8889 (HTTP)
2023/10/11 19:07:20 INF [SRT] listener opened on :8890 (UDP)
2023/10/11 19:07:20 ERR [path cam] [RPI Camera source] process exited unexpectedly
2023/10/11 19:07:25 ERR [path cam] [RPI Camera source] process exited unexpectedly
2023/10/11 19:07:27 INF shutting down gracefully
2023/10/11 19:07:27 INF [SRT] listener is closing
2023/10/11 19:07:27 INF [WebRTC] listener is closing
2023/10/11 19:07:27 INF [HLS] listener is closing
2023/10/11 19:07:27 INF [RTMP] listener is closing
2023/10/11 19:07:27 INF [RTSP] listener is closing
2023/10/11 19:07:27 DEB path manager is shutting down
2023/10/11 19:07:27 INF [path cam] [RPI Camera source] stopped: path is closing
2023/10/11 19:07:27 DEB [path cam] destroyed: terminated
2023/10/11 19:07:27 INF waiting for running hooks
...FROM A SEARCH FOR THE FILE NEEDED...
$ sudo find / -type f -name "libcamera*"
/usr/bin/libcamera-vid
/usr/bin/libcamera-jpeg
/usr/bin/libcamera-raw
/usr/bin/libcamera-hello
/usr/bin/libcamera-still
/usr/include/libcamera-apps/core/libcamera_encoder.hpp
/usr/include/libcamera-apps/core/libcamera_app.hpp
/usr/lib/arm-linux-gnueabihf/libcamera_app.so.1.2.1
/usr/lib/arm-linux-gnueabihf/libcamera-base.so.0.1.0
/usr/lib/arm-linux-gnueabihf/libcamera.so.0.1.0
/var/lib/dpkg/info/libcamera0.1:armhf.shlibs
/var/lib/dpkg/info/libcamera0.1:armhf.md5sums
/var/lib/dpkg/info/libcamera-ipa:armhf.list
/var/lib/dpkg/info/libcamera0.1:armhf.triggers
/var/lib/dpkg/info/libcamera-apps-lite.md5sums
/var/lib/dpkg/info/libcamera-apps-lite.triggers
/var/lib/dpkg/info/libcamera-ipa:armhf.md5sums
/var/lib/dpkg/info/libcamera-apps-lite.shlibs
/var/lib/dpkg/info/libcamera0.1:armhf.list
/var/lib/dpkg/info/libcamera-apps-lite.list

no
Did you attach a network dump?

no
The file I found on my system (DietPi Bookworm) is /usr/lib/arm-linux-gnueabihf/libcamera.so.0.1.0 when it looks like /usr/lib/arm-linux-gnueabihf/libcamera.so.0.0 is what is needed.
Not sure where to go with this. I thought the issue was fixed. Is there something I can do with my configuration to fix this?
Thanks

Hello, precompiled binaries are not compatible with DietOS Bookworm but only with Raspberry Pi OS Bullseye, as explicitly mentioned in the README. You can compile the server from source and generate a DietOS-compatible binary by following instructions here:
https://github.com/bluenviron/mediamtx#compile-from-source


RC Test: Number Line: Integers 1.0.1-rc.1

@KatieWoe and @kathy-phet - number-line-integers/1.1.0-rc.1 is ready for RC testing.  This release is phet brand
only.  This release is necessary because the recent release of the related Number Line: Operations sim caused some
strings to be moved to common code, so translations could get out of sync.  Also, it's just generally a good idea to
have closely related sims using the same code base.
The sim itself has not changed functionally, so this is primarily a regression test.  However, it will pick up common
code features that currently exist on master, such as pinch-and-zoom and the recently updated home screen button
behavior.  I would therefore recommend thinking of this as a regression test of the basic sim functionality and a
verification of relatively new common code features.  Testing should be done on all supported platforms.
Assigning to @KatieWoe and @kathy-phet for prioritization.

General RC Test

What to Test

Click every single button.
Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.

If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Test all query parameters on all platforms. (See QA Book
for a list of query parameters.)
Download HTML on Chrome and iOS.
Make sure the iFrame version of the simulation is working as intended on all platforms.
Make sure the XHTML version of the simulation is working as intended on all platforms.
Complete the test matrix.
Don't forget to make sure the sim works with Legends of Learning.
Test the Game Up harness on at least one platform.
Check this LoL
spreadsheet and notify AR or AM if it not there.
If this is rc.1 please do a memory test.
When making an issue, check to see if it was in a previously published version
Try to include version numbers for browsers
If there is a console available, check for errors and include them in the Problem Description.
As an RC begins and ends, check the sim repo. If there is a maintenance issue, check it and notify developers if
there is a problem.

Focus and Special Instructions
The focus for this testing should be on verifying that the issues found during testing of the most recent RC have been
adequately addressed.

Issues to Verify

[x] Mouse can be off set while dragging adjustable attraction values

Link(s)

Simulation
iFrame
XHTML
Test Matrix

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

@jbphet, @kathy-phet, this RC got ~3.5 hours of testing on the latest Apple platforms and it looks like it got ~10 hours of testing on Windows 10. @KatieWoe also did ChromeOS testing before she went on vacation. Only two issues have been found thus far. We've covered the latest versions of the major platforms. As long as we're comfortable sending it back to @jbphet without testing the older Apple platforms, QA is done.

Thanks QA team.  I'll address the individual issues and roll a new RC.  Closing.


Python3 Compability for latest version of Module Package

Description
ASN Recon only run with Python2. It's deprecated and it can't use latest version of pyOpenSSL and pyasn. When using Python3 it triggers raw_input() problem and pop from an empty set
Attachment

Same Here

same for me, tried to change raw_input() and input() as suggested for python3 but didn't work.

Same here.  Can't run this at all.

Same here change raw_input() and input(), fully error occurs.


Added VNux GNU/Linux Neofetch Logo

I'm done with the ASCII Art, @dylanaraps

Hey @dylanaraps , it's been 14 days, is this pull request fine or i do something wrong?

Just busy. Thanks for the PR.

Thank you, @dylanaraps