Bicep Community Call - April '23

We are hosting our April Bicep Community Call next Thursday, April 27th at 2PM PST!
(We will switch off from 9AM to 2PM PST every other month to accommodate for different time zones)
Use this issue to address topics you would like to discuss, questions you have for our team, further demos you would like to see, and any high or low points you would like to share. This is an open space for our users to discuss any topics they would like to talk about with our team.
You can list topics of discussion in this thread OR you can ask questions during the Q&A portion of the call.
Please sign up here to get an invite to the call. See you there!

My current process is deploying automation accounts into a resource group using bicep through Azure DevOps. I have the runbook code hosted on DevOps as well, but there doesn't seem to be an easy way to get this code through to a bicep uploaded runbook without adding it to a public url or storage account with an key. Is there any different way to get local DevOps code pushed to a runbook deployed with bicep? Or is there a best practice around doing this in a nice workflow?

Always eager to hear regular updates about the current state of custom types, cross-module imports, resources as outputs and any potential ETAs for delivery of each! Thanks!

#645 - wanted to ask if there's any plans to include that sometime in the near future

My current process is deploying automation accounts into a resource group using bicep through Azure DevOps. I have the runbook code hosted on DevOps as well, but there doesn't seem to be an easy way to get this code through to a bicep uploaded runbook without adding it to a public url or storage account with an key. Is there any different way to get local DevOps code pushed to a runbook deployed with bicep? Or is there a best practice around doing this in a nice workflow?

@josh-bennett-cubesys -- I would open a separate "Discussion" topic for this one. I don't think there is anything we can do on the Bicep side to make this easier. The Automation Resource Provider team would need to support pulling from DevOps/GitHub/etc. as a feature of their service.

We didn't talk about these today for lack of a QA, but I'm leaving them here as a note to bring up next month to seek updates on then:

Add index parameter to lambda map function
https://github.com/Azure/bicep/issues/9462

Add index parameter to lambda reduce function
https://github.com/Azure/bicep/issues/9244

Ability to use resources in outputs instead of passing around lookup identifiers all over the place

Will we be able to create/update AAD apps via the AAD extensibility provider?

Thanks for the time today!


Create Header sort function - Language

All columns on Language table to be sortable.

See discussion at ISDCF/registries#87


Render problem under high DPI monitor

VSCode Version: 1.1.0-insider,
OS Version: Win10 Pro

I got two different text render styles, one is blurry, and another is clear.

You can see middle window is more blurry than both left and right window.
My monitor size is 13 inches, with 1920x1080 resolution. Display zoom level is 125%, and I've set up Code - Insiders.exe's compatible settings, and checked 'Disable display zoom under high DPI' (may be this, as I'm using a Chinese edition).
My settings:

Is this related to #1896?

Duplicate of #1896 👍


Icon syntax doesn't match docs

In the documentation, <Icon /> takes a name (presumably without the svg suffix?), and an optional path. In the current implementation, it looks like it takes a file with a relative path and svg extension, which appears to need to be wrapped with a require:
Current (based on the HN app implementation):
<Icon file={require('reapp-kit/icons/check.svg')} size='38px' color='#FFFFFF' />

I'm guessing from the documentation the intention for name= was:
<Icon name='check' size='38px' color='#FFFFFF' />

(With an optional path= to locate non-standard icons.)
In any case having to wrap the file='path/to/file.svg' in require seems clunky.

It may seem clunky but it has a big upside which is that it allows us to do inline icons. Inline is necessary for mobile because otherwise you will see delay while the icon loads externally unless you do clever optimizations. Inline also is the only way you can control the color of an svg fill, external icons you can't change with CSS.
We could add another dynamic require as an option but it would be more code and add another warning to the webpack build like the routes warning currently. I'll leave this open for now, but I like the require as it is explicit, and also performant.

If there was a way to surpress the webpack warnings then a dynamic require would be ideal, but if that's not possible, then consider this a docs issue request. :wink:

Updated docs today :)


Add wizard to update settings to match Inbox (density, keyboard shortcuts, inbox, etc)

A wizard would be nice, but until then do you have a list of recommended settings that could possibly get put in the README?


When using overrides without specifying a footer, footer theme is set to default

When presenting a file with overrides set, the lack of a footer key is interpreted as an empty footer, which is parsed as the default footer, which overrides the theme's footer.
Reproduction:

presenterm examples/demo.md (see progress bar)
Edit header of demo.md to include:theme:
 override:
   default:

presenterm examples/demo.md (see 1/9 in footer)

Thanks for the report! This should be fixed now, but let me know otherwise.


Boxart

Hello, is it possible to somehow make a metadata editor in the arcos firmware so that you do not need to manually write where the cover of the game is, but what can be selected manually using a file manager, since it is organized on amberelec?
Also, on the r36s console, the latest update does not run the button test.

Just hit select then edit metadata on the game you want to edit its metadata on.


Prompt gets garbled when fixing and need to pick for multiple imports

From @lencioni on January 18, 2016 23:18
If I am working on a file that needs a lot of new modules fixed, and I run fix imports on it for the first time, and multiple modules have multiple matches, the prompt gets a bit garbled. Here's an example:
ImportJS: Imported `react` (0.0s)
ImportJS: Pick JS module to import for 'Foo':
1: ../../foo/foo
2: ./Foo
Type number and <Enter> or click with mouse (empty cancels): 2ImportJS: Pick JS module to import for 'Bar':
1: ../../apps/bar
2: ../../foo/bar

Notice the line: Type number and <Enter> or click with mouse (empty cancels): 2ImportJS: Pick JS module to import for 'Bar':.
Copied from original issue: Galooshi/import-js#137

From @trotzig on January 19, 2016 12:5
Interesting. I'm assuming the prompt gets more garbled as you go along, picking modules to import (since that's handled synchronously).

We should move this issue to the vim-import-js repo


Migrate application off of Beanstalk and onto ECS via EC2 launch type

Issue #, if available:
Description of changes:

Changed README instructions to reflect new procedures to run the application on ECS/ECS or locally
Removed all Beanstalk-related files
Updated Scorekeep Application with 'master' branch
Added Dockerfiles to run Scorekeep in containers
Adds Makefiles to support setting up Cloudformation, building Docker
images, and publishing to ECR
Restructures Repository to separate Frontend and API Dockerfiles
Added a Cloudformation template to create the following resources for the Scorekeep's new platform: ECS Cluster and resources, ECS Task Definition, IAM resources, EC2 resources, SNS/DynamoDB resources, AutoScaling group, and Load balancer resources.

The two files that mainly need reviewing are the README.md and cloudformation/cf-resources.yaml files.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

LGTM!


Update to new JobQueue Package and Neos Release

As been merged in https://github.com/ttreeagency/Flowpack.ElasticSearch.ContentRepositoryQueueIndexer/tree/3.0
Thanks for the help


Should type of variants be wrapped with upcast?

So that we might automatically upcast our variants to any possible enums.

Yup, it looks super cool now.
function f1(): {a: [A | B]} {
    return {a: A}
}


chore(contrib): add myself as a contributor

Information

Type
Breaking change

Chore
No

Since I contributed with this pr: https://github.com/tsedio/tsed/pull/2183
I forgot to add myself as a contributor
Todos

[x] Tests
[x] Coverage
[x] Example
[x] Documentation

:tada: This PR is included in version 7.51.0 :tada:
The release is available on:

v7.51.0
GitHub release

Your semantic-release bot :package::rocket:


Fishing Spot indicator for Mogres

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always
frustrated when [...]
Ominous fishing spots are almost impossible to see, especially if you're on mobile.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Any chance fishing spot icon and overlay colour to tile for throwing explosives in can be added?

It seems ominous fishing spots are always on the same tiles.
I'm thinking marking these tiles with the Ground Markers plugin should do the trick, at least in the mean time.
You can use the plugin by shift-right-clicking on the spots and selecting Mark Tile.

Fishing plugin assumes that fishing spot is NPC, but Ominous sptots are quite exceptional - they're seen as Objects - should the plugin be refactored or should it be separate plugin?

Given that you literally can't fish at these spots, I'm not sure this should be part of the fishing plugin.


add -o HostName option to ssh command if :host_name key exist in ssh_options

When I set :host_name in config/deploy/sandbox.rb:
server 'sandbox-server01', user: 'user01', roles: %w{web app db}, ssh_options: { host_name: 'x.x.x.x' }

cap sandbox rails:console failed as follows:
ssh: Could not resolve hostname sandbox-server01: Name or service not known

This pull request adds -o HostName="x.x.x.x" option to ssh command and fixes this problem.

Thanks for your PR.
There are way too many options for ssh :smile:

Thanks.


Compatibility with OpenSearch 2.17.1

Description
We need to ensure the compatibility with the next version of OpenSearch v2.17.1.
This update is still being discussed, but we need to be aware of potential issues.
For that, we need to:

[x] Port our changes on top of OpenSearch's reporting plugin v<IP_ADDRESS> tag. Follow the Maintainers Guide.

Issues

List here the detected issues

#!/bin/bash

export base="<IP_ADDRESS>"
export os_tag="<IP_ADDRESS>"
export from_branch="master"
export to_branch="${from_branch}-${os_tag}"
export pr_branch="migrate-${from_branch}-to-${os_tag}"

# Download latest changes from remotes
git fetch --all --tags

# Create temporal branches off the OpenSearch’s tag
git branch $to_branch refs/tags/$os_tag
git branch $pr_branch refs/tags/$os_tag

# Push the new branches to origin
git push -u origin $to_branch
git push -u origin $pr_branch

# ======= #

# Move to the working branch
git checkout $pr_branch

# Migrate the commits
git cherry-pick $base..$from_branch

# Check the number of commits before and after the migration is equal
previous=$(git rev-list $base..$from_branch --abbrev-commit | wc -l)
current=$(git rev-list $os_tag..$pr_branch --abbrev-commit | wc -l)

if [ "$current" -ne "$previous" ]
then
    echo "Commits count before and after the migration are not equal. Migration failed!"
    exit 1
fi


Clarify the ramifications of "mounting" a local data folder

I mounted a data folder with >10GB of image data, and it seemed to work fine, but... it is not clear to me exactly what is getting uploaded to the remote server when, and under what circumstances files will be downloaded back to the local. I also don't know how performant this is... does it always redownload everything, or is smart about only downloading things that have changed. For deletions, does it delete local files if they were deleted on the remote? What if something goes wrong during the initial upload of files to the server—are my local files at risk of being inadvertently deleted since they then appear to be "missing" from the remote? As you can see, I have many questions. :sweat_smile:
So I'm wondering if it makes sense to:

Add a clearer explanation, perhaps hidden under a collapsed Details pane, about what happens when you mount a folder.
Add the ability to mount two separate folders: an input/read-only folder and an output/read-write folder, to ensure original data cannot be corrupted if the chatbot loop goes in an unexpected direction (if so, perhaps this idea should be a separate issue).
Add an explicit Sync button (or even two buttons, Upload vs Download) to give the user more control about when data is transferred to/from the chatbot.

What do you think?

Hi, thanks for the question, these are really good ones, which we kind of naturally assume users will know.
For your question, the data remains in your browser, it won't be uploaded anywhere (although the browser warns the upload), and the code interpreter runs entirely in your browser too, so no data files will be uploaded or downloaded when processing. Nevertheless, the print messages from the code interpreter will be send to the chatbot server to decide the next step or create a response to the user.
I just added a message which will show up when the mounting data folder feature is enabled: https://github.com/bioimage-io/bioimage.io/commit/ac196cc575c573b89461ef24c1237eeae3ac3317
Including a warning about making backup before mounting data folder. Normally, data loss should not happen, however, because it's the LLM controls the code, it may make mistake and cause data loss, so I think the best way forward is to warn the user anyway that their data may lose so they need to always keep a backup.
What do you think?

The new explanations and warning look great! Very helpful.


add new test examples

Codecov Report

Merging #128 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #128   +/-   ##
=======================================
  Coverage   94.89%   94.89%
=======================================
  Files          49       49
  Lines        1587     1587
=======================================
  Hits         1506     1506
  Misses         81       81

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 e14e200...7008620. Read the comment docs.


Registry: Implement withdraw

Add protobuf model: WithdrawEvent (or WithdrawTransaction)
Add Verifier.cs: WithdrawEventVerifier
Add tests

WithdrawEvent success
Failed Event after WithdrawEvent


Support for getters/setters in applyMixins function.

Hello, with the applyMixins function I have made the following additions:

Added missing semi-colon.
Do not copy the constructor over.
Added support for getters/setters in addition to methods.

I do not think this is needed. the idea is to explain how you can define types flowing in/out of a mix-in function, and not to provide a full-fledged mix-in implementation. the current implementation, though does not handle accessors, is simpler to read.

Ok, that makes sense if that's the goal. Might be good to still add the missing semi-colon though.
Please close this issue if you think it should be closed.

Adding the semicolon is fine off course.


chore(master): release 0.3.0

:robot: I have created a release beep boop
0.3.0 (2023-07-06)
Features

bindings: support <c-t> as navigateBack (#827) (1cd8afb)
bindings: z fold bindings for lists (incl. files explorer) (#1250) (a86bd36)

Bug Fixes

bindings: {count}gt command not jumping to correct tab #670 (a2c9b03)
mode: cmdline mode bindings #1298 (#1299) (6f4b9a0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/vscode-neovim/vscode-neovim/releases/tag/v0.3.0 :sunflower:


Point at released docs.

Short-lived until we get the new site up, but at least people don't
see the docs with the hazard signs at the top until then.

@thockin

LGTM except kubecfg  :)
OK to merge

fixed.

we should change this to release-1.0 instead ov v1.0.0, but OK for now.
Merging.


IndexOutOfBoundsException, Packet ID 0 ?

What is the output link of /viaversion dump?
Uhmmm not sure. Forgot to enable that permission on bungeecord.
Are you using any additional software like BungeeCord? If so, what software and version? (Please list your plugins as well)
Came from BungeeCord using viaversion
How does this error happen? login? Using an item?
First time I've seen it, I think.
Is there an error in the console? Use pastebin.com. Is there a kick message?
https://gist.github.com/colinrgodsey/f5e17a343aa27984371fe6f3989100c7

Please fill out the issue fully or we're unable to assist you, the dump command can be run from the console.

didnt have permissions so cant dump without restarting bungee, assuming that also would destroy the dump. so, nothing to be done here

Issue is still coming up, including dump this time

I believe this error to be rather harmless, BaseProtocol is the ping stage of the Minecraft protocol. This means something is sending bad packet data to your server, you should be fine to ignore this. (You may want to lookup the IP that is doing this, perhaps a server list?)
We don't hide the error because sometimes we do slip up and need to see this kind of error, but in this case it seems to be something sending bad data.


pl.path.normpath bug

The rule "A/foo/../B -> A/B" implemented in pl.path.normpath is not correct when we have more than two patterns "/../" concatenated.
path.normpath( path.currentdir() ..  '/../../') will return the correct path but path.normpath(path.currentdir() ..   '/../../../') will return a path corresponding to './../' .
This will also produce a bug in path.abspath when called with path.abspath('./../../../').

I believe this is fixed with PR #130.

Thanks.


Support for Dynamically Allocated Executor

The current statically allocated task system works well for many projects, but I’ve encountered challenges when trying to implement more complex functionality:
1. Static Task Allocation Tightly Couples Code with Embassy
Currently, all tasks must be defined within the root application using Embassy, making it impossible for libraries to create tasks. In my project, the core logic is housed in a separate crate that is hardware-agnostic and independent of any executor, allowing me to test the logic on a PC without hardware. However, due to the limitation of not being able to create tasks within the crate, I’ve had to rely on join! macros to handle over 30 futures, which has led to significant performance issues (reference).
2. Static Task Allocation Cannot Handle Generics (#2454)
From what I understand, static tasks inherently cannot support generics because the task size must be known at compile time. In my case, the crate depends on generic drivers passed in at runtime, so even if Embassy allowed task definitions within a crate, generics would still present a limitation.
3. Inefficient Memory Usage When Only One Task Runs at a Time
Consider a device with multiple operating modes, where only one mode is active at any given time. Defining separate tasks for each mode would unnecessarily reserve memory for all tasks, even though only one will run. While combining all modes into a single task and using conditionals can mitigate this (allowing the Rust compiler to optimize task size), this solution becomes unmanageable when dealing with more complex task combinations.
Downsides of Dynamic Task Allocation
While dynamic allocation introduces common issues such as heap fragmentation and unpredictable performance, the flexibility it provides could solve the problems I’m facing with static tasks.
Proposal & Implementation

The task arena in Embassy already functions somewhat like a dynamic executor, albeit with (intentional?) limitations. Technically, adding support for fully dynamic task allocation shouldn’t be too difficult.
I recognize that part of Embassy's design philosophy is the guarantee that "if it compiles, it works" and a dynamic executor might compromise that simplicity. I also understand that this feature might not align with Embassy's long-term goals.
Regardless, I’m interested in exploring this feature for my project. Any guidance on where to start in the codebase or potential pitfalls would be greatly appreciated.

As I know, one of the design goals of Embassy is no dynamic memory allocation. In other words, No alloc crate.
Maybe add alloc features?

What I typically do is to have library fn's expose some toplevel 'task' fn, and then have an equivalent non-generic variant in the main application with the embassy task macro. In the tests I used join!() macros or whatever appropriate (sometimes tokio or futures-rs executors). Yes, there's some duplication, but in my experience the benefits outweighs the downsides for the embedded applications I've written so far.
I think the best way forward here is that you provide some proof of concept of this if you're interested to work on it. I imagine that some parts of embassy-executor can be re-used. Whether it's better to use alloc features or a separate embassy-alloc-executor crate for this, depends a bit on how it ends up.

@lulf thanks, I'll give proof of concept a try

Related to the above.
I'm developing for esp32s3 and I'm very short on memory to the point where I can't extend my application any longer and yet I have lots of PSRAM available through alloc. Embassy arena now requires close to 64K which is required by other libraries that can use only internal ram (those for technical reasons can't use the PSRAM).
Is there a way to get the arena to reside, even as a single large chunk as it expects to, on an alloc memory block?
It also looks like with nightly feature the allocations are done in some way one by one, I couldn't figure the code exactly so might be wrong. Is it possible to hook into those allocations to get them to use alloc?

I've completed a proof of concept in my personal fork.
The current poc gives the executor the ability to spawn permanently running tasks on the heap. The reason to limit the tasks to be permanently running are:

It's actually very hard to deallocate an embassy task. The executor expects all the tasks to exist forever and take advantage of that in the inner workings of the executor.
Permanently running tasks already fixes all 3 points i mentioned in the initial issue.
By only spawning tasks at the beginning of the program (which I assume is the most common use case for a permanently running task), the effect of heap fragmentation and unpredictable performance can be minimized.

Example Code
https://github.com/PegasisForever/embassy-alloc-executor-example/blob/dc3d4e92bbb30b4d3b45ebac9f2f5fb4c9eb6f02/src/main.rs#L23-L49

I was referred to

https://github.com/card-io-ecg/card-io-fw/blob/main/embassy-alloc-taskpool/src/lib.rs as a starting point for dynamically allocated tasks. I didn't check it out since I was able
https://github.com/card-io-ecg/card-io-fw/blob/main/macros/src/lib.rs

Which together provide some kind of replacement for embassy task and allocation of memory for tasks.
Haven't looked into it yet since I was able to free memory in other ways, but it seemed interesting in case anyone wants to explore.

I was referred to

https://github.com/card-io-ecg/card-io-fw/blob/main/embassy-alloc-taskpool/src/lib.rs
https://github.com/card-io-ecg/card-io-fw/blob/main/macros/src/lib.rs

Which together provide some kind of replacement for embassy task and allocation of memory for tasks.
Haven't looked into it yet since I was able to free memory in other ways, but it seemed interesting in case anyone wants to explore.

I was about to link these as I didn't really have to touch those bits for more than a year at this point. There is no need to modify embassy-executor, and it's possible to mix statically and dynamically allocated tasks. Also I believe it's not necessary to require that tasks never return - they aren't freed, but the storage may be reused.

I was about to link these as I didn't really have to touch those bits for more than a year at this point. There is no need to modify embassy-executor, and it's possible to mix statically and dynamically allocated tasks. Also I believe it's not necessary to require that tasks never return - they aren't freed, but the storage may be reused.

heh - you were the one to direct me there, what a small world (more like small github) 😄
I didn't notice you also wrote it.
This solution may not modify embassy-executor but I think it does duplicate quite some code from there, so if something would change in embassy-executor in those areas it will stop working, no?
So it would be better if embassy would allow to hook into these parts and only supply the allocator.


fix #617: Use correct css style for pre-wrapping white-space

Hey! Can you base this on the devel branch? We are currently working there towards beta 4. There's also a new table implementation (WIP) based on the new isolated nodes feature.

The issue is fixed in the devel branch. Thanks! Closing this now.


GenerateMips missing support for a few formats

GenerateMips (the DirectCompute implementation of auto-gen mips for DirectX 12) currently supports the following DXGI formats:
    case DXGI_FORMAT_R32G32B32A32_FLOAT:
    case DXGI_FORMAT_R32G32B32A32_UINT:
    case DXGI_FORMAT_R32G32B32A32_SINT:
    case DXGI_FORMAT_R16G16B16A16_FLOAT:
    case DXGI_FORMAT_R16G16B16A16_UINT:
    case DXGI_FORMAT_R16G16B16A16_SINT:
    case DXGI_FORMAT_R8G8B8A8_UNORM:
    case DXGI_FORMAT_R8G8B8A8_UINT:
    case DXGI_FORMAT_R8G8B8A8_SINT:
    case DXGI_FORMAT_R32_FLOAT:
    case DXGI_FORMAT_R32_UINT:
    case DXGI_FORMAT_R32_SINT:
    case DXGI_FORMAT_R16_FLOAT:
    case DXGI_FORMAT_R16_UINT:
    case DXGI_FORMAT_R16_SINT:
    case DXGI_FORMAT_R8_UNORM:
    case DXGI_FORMAT_R8_UINT:
    case DXGI_FORMAT_R8_SINT:
    case DXGI_FORMAT_B8G8R8A8_UNORM:
    case DXGI_FORMAT_B8G8R8X8_UNORM:
    case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
    case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
    case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:

This is a lot of formats, but there are a few more formats that were required for DirectX 11 drivers to implement for D3D11_FORMAT_SUPPORT_MIP_AUTOGEN that are missing from this list:
DXGI_FORMAT_R16G16B16A16_UNORM
DXGI_FORMAT_R16G16B16A16_SNORM
DXGI_FORMAT_R32G32_FLOAT
DXGI_FORMAT_R10G10B10A2_UNORM
DXGI_FORMAT_R11G11B10_FLOAT
DXGI_FORMAT_R8G8B8A8_SNORM
DXGI_FORMAT_R16G16_FLOAT
DXGI_FORMAT_R16G16_UNORM
DXGI_FORMAT_R16G16_SNORM
DXGI_FORMAT_R8G8_UNORM
DXGI_FORMAT_R8G8_SNORM
DXGI_FORMAT_R16_UNORM
DXGI_FORMAT_R16_SNORM
DXGI_FORMAT_R8_SNORM
DXGI_FORMAT_A8_UNORM
DXGI_FORMAT_B5G6R5_UNORM

And these were optional for DirectX 11 drivers to support for D3D11_FORMAT_SUPPORT_MIP_AUTOGEN:
DXGI_FORMAT_R32G32B32_FLOAT
DXGI_FORMAT_B5G5R5A1_UNORM
DXGI_FORMAT_B4G4R4A4_UNORM

Based on the formats that support D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD |  D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE for Feature Level 11.0, it looks like I can add the following to the UAV compatible case:
DXGI_FORMAT_R16G16B16A16_UNORM
DXGI_FORMAT_R16G16B16A16_SNORM
DXGI_FORMAT_R32G32_FLOAT
DXGI_FORMAT_R10G10B10A2_UNORM
DXGI_FORMAT_R11G11B10_FLOAT
DXGI_FORMAT_R8G8B8A8_SNORM
DXGI_FORMAT_R16G16_FLOAT
DXGI_FORMAT_R16G16_UNORM
DXGI_FORMAT_R16G16_SNORM
DXGI_FORMAT_R8G8_UNORM
DXGI_FORMAT_R8G8_SNORM
DXGI_FORMAT_R16_UNORM
DXGI_FORMAT_R16_SNORM
DXGI_FORMAT_R8_SNORM
DXGI_FORMAT_A8_UNORM

The restrictions in the code are covered in detailed on Microsoft Docs. The original list are the only required UAV typed format supports. Any additional formats would require a specific optional support test for each format. Technically the code is currently written such that it requires D3D12_FEATURE_DATA_D3D12_OPTIONS.TypedUAVLoadAdditionalFormats.

Turns out I can easily support most of these on devices that support the matching typed UAV. This approach does not support DXGI_FORMAT_R32G32B32_FLOAT which is never supported as a typed UAV, but otherwise it covers all the cases that could be supported by DX11.
And due to the dependency on D3D12_FEATURE_DATA_D3D12_OPTIONS.TypedUAVLoadAdditionalFormats I can't really avoid the complexity for the feature checking anyhow.

Fixed in this pull request


Improve summary when parent module is not called

This addresses #9. See my comment there also for some thoughts.
Basically I now store the parent hierarchy when creating the hooks and later fallback to using these if the parent has not been called already. I switched to a pre_hook, so that summary_list is in the right order. I think this simplifies the tree code.
This should work for nested modules, and independently of whether a container is called (like Sequential) or just iterated over (like ModuleList). It will not assign an id to containers which have not been called.

I fixed the tests. For me two tests failed.
The first was related to this change: The order of the output is changed when an exception happened, and since I think the new order is arguably more intuitive I changed the test output to match the new one.
The second only happened on my machine, where CUDA is available. The test_pack_padded fails, because inside PackPaddedLSTM the tensors created inside forward will always be created on the cpu. So I fixed it by creating them on the same device as the provided batch.

I've added two small test modules which use Sequential (by looping and by calling it) and ModuleList and added a normal test and an output test.


COME UP WITH A NAME FOR THE GAME

As in the title!

I'm happy to run a couple of rounds of polls to brain storm ideas for this?

New Name!
RoC-Ex: Robotic Cave Explorer
Unearth the truth about what happened in cave system #0393


Clean up demo videos.

Add a single quickstart video to the home page.
Fixes https://github.com/GoogleContainerTools/kpt/issues/1654
Demo at https://kpt-dev-ee2a9--quickstart-29gxcglr.web.app/

when I press play the video resizes.

when I press play the video resizes.

Addressed and the demo has been updated.

LGTM

The video looks good to me. Do we have a way to run e2e tests on the original script for the video so we can make sure it doesn't become stale? We can do that separately, but we should probably keep the original issue open until we have that in place.

The video looks good to me. Do we have a way to run e2e tests on the original script for the video so we can make sure it doesn't become stale? We can do that separately, but we should probably keep the original issue open until we have that in place.

No tests for the script yet but I do agree that should be tracked. It should probably be in a different issue, however, tracking an enhancement for these casts.

preview page doesn't work.

preview page doesn't work.

Updated URL.

Several issues:

https://screenshot.googleplex.com/4F8bwgMjVYHWXSK
IMO, The video is too long and slow. Some suggestions:

We don't need to demo the entire quick start guide
Speed up playback speed

Consider moving into a separate page with a call-to-action link from the overview

FYI, this is not a high priority issue (it's an good-to-have M4), so don't spend too much time on it in M3.

can we merge what we have and just create an issue for other follow ups or keep this issue open?

This requires more work, IMO it's not emphasizing the right aspects. e.g.:

render is missing
we're not showing the Kptfile pipeline
eval is glossed over
etc.

Given it's not a blocker, I suggest putting the issue on the backlog.

can we just merge this and iterate?

This is a good-to-have so we don't need to rush it before addressing the comments.

Reopening and changing scope to just deleting unused videos.


Expected ";" when using laravel mixing.

https://github.com/creativetimofficial/vue-material-kit/blob/7b4e77fc392a98a1b85990e42ab65dacfdd4f8df/src/assets/scss/material-kit/_mixins.scss#L15

Hi, @danjob! Thank you for using our products. Yes, you are right we will fix it in the next update.
Regards,
Dragos


propose ResourceAccessReview: which users can perform this action

Existing authorization does not provide a way to know which users and groups have rights to perform an action.  ResourceAccessReview is a  way to determine the full list of of all users and groups who can do something.  This capability is useful when trying to answer questions like: which users have rights to my namespace.
cc @derekwaynecarr @smarterclayton @liggitt

Who implements this endpoint?  The authorization engine backing authz decisions?  How would someone implement this outside of Kube?

This is related to #3730

This needs more detail about the why in the change.  The questions above are things that should be answered in the update to the authorization.md design.

Both this and subject-access-review could be implemented outside of the
apiserver by a "policy helper service" which watches all the policy objects
stored on the api server, and then is able to answer SubjectAccessReview
and ResourceAccessReview types of questions.
In general, I think we have a sort of tacit agreement that we will avoid
putting functionality into the apiserver that can easily be implemented out
of it.  If openshift wants to bundle the "policy helper service" in the
same binary as a bunch of other stuff, and even run it in the same process
as other things, like the scheduler and control loops, that's fine too.
On Thu, Jan 22, 2015 at 1:22 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:

This needs more detail about the why in the change. The questions above
are things that should be answered in the update to the authorization.md
design.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3732#issuecomment-71101413
.

superseded by #3759


Array Concatenation snippet is useless and example is wrong

const ArrayConcat = (arr, ...args) => arr.concat(...args);  is useless in the sense that it's not doing any valuable work, it's wrapping a function, leaving the exact same behaviour. Array.concat() doesn't mutate the array.
Also, the example result is wrong.

I didn't test, I though it was working, seemed simple enough. The idea was to duplicate lodash's concat behavior. Any suggested fixes or improvements?

Ok, I just fixed the example to show what it should.

Right, the only advantage of Lodash's concat is safety. arr can be a non-array value and the function would not throw an error. The ArrayConcat examples doesn't provide this safety, so essentially it is identical to Array.concat in terms of behaviour, functionality and safety.

Great point! I am reading lodash's concat and I see what you mean. We should improve our arrayConcat to provide the same functionality. PR anyone?

So what I'm hearing is that we want a ternary to type check for .concat()?

@skatcat31 sounds like it! If you want/can, PR it at some point. I want this resolved asap.

@darrenscerri  this will do the trick right?
const arrayConcat = (arr, ...args) => [].concat(arr, ...args);
this creates a new array and no error thrown the arr is not an array

@sabareeshkk
arrayConcat({}, {}) // [{},{}]

There are many other odd edge cases with that sort of thing. maybe just let it crash. If the developer tried to concat something without type checking it, wouldn't the best option be to let the error bubble in proper design?

To be honest, don't think adding safety to native APIs is the scope of this repo. Thoughts @Chalarangelo ?

I wrote the snippet to implement lodash's concat which in itself is something between a polyfill and a method that deals with some corner cases. I wouldn't mind keeping the improved snippet, just to showcase the technique, but we might not actually need it in the long run. I'll probably merge the PR with the change and let it sit for a while untagged while we discuss this further.

This was resolved (as far as I can tell) in #148.


Open questions

Do I really need the landing page? Should I go directly to the project page? if so, should I add a nice visual there? seems a bit jarring. Or make a compelling graphic for the existing landing page
How much content for the case studies?
Default to Gallery?

Add two hero images on landing page from featured projects (links to respective projects)


i18n fallback broken when "mount_at_root: false" since v4.4.0

Expected behavior and actual behavior
Since middleman 4.4.0, ruby-i18n version 1.6.0 is used (was 0.9.0) which introduces a breaking change where default locale fallback has to be specified ("en" is not used a default fallback no more). #2507 added a fix for this but it doesn't take into account mount_at_root: false, disabling localization fallback when this option is set.
So, if locales are:
---
en:
  path1: Path 1
  missingTrans: This was localized with helper t(...)

---
es:
  path1: Ruta 1

The generated spanish HTMLs will show:

Ruta 1

translation missing: es.missingTrans

Steps to reproduce the problem (from a clean middleman installation)
I added a missing translation to this test repository on the spanish locale which can be seen at /es/path1.html.
Additional information

Ruby version: ruby 2.6.8p205 (2021-07-07 revision 67951) [x86_64-linux]
Middleman version: since 4.4.0 and master
OS version: Ubuntu 20.04.1

I confirm that the issue is fixed.


[Unity] RealizeVDevice pass

This pr adds RealizeVDevice pass as mentioned in #15101

This is awesome work! Thanks @yongwww!


Made the class open so it can be subclassed.

Hi,
I will change the public access to open today
Thanks,

fix to https://github.com/Digipolitan/collection-view-left-align-flow-layout/releases/tag/v1.0.3


cmd/compile: compilation of a package >100x slower with 1.20rc3

The package in question is https://github.com/benoitkugler/textlayout/fonts/glyphsnames in v0.3.0, with go 1.19:
$ go version
go version go1.19.1 linux/amd64
$ time go build

real	0m4,086s
user	0m5,970s
sys	0m0,447s

with go 1.20rc3 I got bored of waiting after 10 minutes, so it's at least 100x slower, but possibly a lot more (for all I know it could be in an infinite loop).
The code in question seems to have some very large (and very questionable) switch statements.

GitHub source perma-link: https://github.com/benoitkugler/textlayout/tree/1c82cb9ca5cf9a53eecdd817414498959685547c/fonts/glyphsnames
The API looks small: https://pkg.go.dev/github.com/benoitkugler/textlayout/fonts/glyphsnames

there's a 12000 line / 6000 case switch in there

Possibly https://go-review.googlesource.com/c/go/+/414894 .

Nope. Looks like the compiler is stuck/slow in prove. I think it is https://go-review.googlesource.com/c/go/+/410336
@wdvxdr1123 @cuonglm

Looks like all the OR operations are added for string equality - we do things like load 4 bytes, build a 32-bit value using shifts and ORs, then do a comparison with a 32-bit constant.
(The loads get combined into a single 32-bit load, but not until after the prove pass.)

Marking as a tentative release blocker.

Reverting CL 410336 is probably the simplest way forward. I'll do that tomorrow if no better ideas surface today.

@randall77 could we use v.AuxInt to indicate that prove should ignore the value instead of updating to fact table?

@cuonglm Maybe, but I'd rather not. There's then this weird semantic-free mark that we'd have to ensure makes it to the prove pass. Can we CSE an OR with and without the mark? Do all rewrite rules have to propagate that mark? e.g.
(Or64 (Const64 <t> [c]) (Or64 (Const64 <t> [d]) x)) => (Or64 (Const64 <t> [c|d]) x)

If anything, maybe we could figure out when we don't need to prove anything about a value during the prove pass itself. Maybe if the result of an OR is only used in subsequent ORs and shifts, then don't record anything about it.  Or something like that.
Or just make prove good enough to handle recording lots of facts without a big slowdown.

This is fixed at tip. Milestoning for 1.20 for the backport.


Installing dependencies (bash install_dependencies.sh

Hi,
Notably, I've previously installed the pipeline and it has worked fine.
This time the install_dependencies.sh step is failing to complete (see attached).
When I try to go ahead and run the pipeline it fails at the atacqc step with an import numpy array error. I'm assuming the problem indeed stems from the dependencies installation.
I've tried uninstalling and re-installing and clearing my bashrc to no avail.
Let me know if I can provide anymore info. Thanks!
output.txt

This has already been fixed in this commit https://github.com/kundajelab/atac_dnase_pipelines/commit/d110085fcb3d0fdfdf486c94afbdf8aec93ad0e6#diff-46df23ddb8dc0e0db77265566b265050.
Please git pull the latest pipeline and try again. Also, this repo has been deprecated. Please try our new pipeline https://github.com/ENCODE-DCC/atac-seq-pipeline/.


GAP-2973: word count validation

Description
Ticket # and link
adds default word count validation to text / textarea questions
https://technologyprogramme.atlassian.net/jira/software/projects/GAP/boards/216?selectedIssue=GAP-2397
Related pr: https://github.com/cabinetoffice/gap-find-admin-backend/pull/169
Type of change
Please check the relevant options.

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[ ] This change requires a documentation update.

How Has This Been Tested?
Please describe the tests that you ran to verify your changes:

[ ] Unit Test

[ ] Integration Test (if applicable)

[ ] End to End Test (if applicable)

Screenshots (if appropriate):
Please attach screenshots of the change if it is a UI change:
Checklist:

[ ] If I have listed dependencies above, I have ensured that they are present in the target branch.
[ ] I have performed a self-review of my code.
[ ] I have commented my code in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation where applicable.
[ ] I have ran cypress tests and they all pass locally.

I've read on stack overflow that it's 1GB - https://stackoverflow.com/questions/12632871/size-limit-of-json-data-type-in-postgresql so we should be good. Wish I had a better source but i can't see anything about a size limit in the docs


Bug: Add missing Istio relation to Seldon

PR: Add Istio Pilto relation to Seldon Core Operator
Work tracked in
https://github.com/canonical/seldon-core-operator/issues/18
and
https://github.com/canonical/seldon-core-operator/issues/20
Summary of changes:

Implemented istio relation handling in charm's code.
Added unit and integration tests.
Bumped version in .github/workflow/
Added istio gateway lib.

Outcomes
Seldon should be deployed with Istio in the same model and relation should be successful.
Testing
To verify proper relation handling, deploy Istio Pilot and Istio Gateway with relation. Deploy Seldon Core Operator. Then relate Seldon Core Operator with Istio Pilot. The corresponig relation should be established,
juju bootstrap microk8s test
juju add-model seldon-istio-test
juju deploy istio-pilot --trust --channel latest/edge --config default-gateway=my-gateway
juju deploy istio-gateway istio-ingressgateway --trust --channel latest/edge --config kind=ingress
juju relate istio-pilot istio-ingressgateway
charmcraft pack
juju deploy ./seldon-core_ubuntu-20.04-amd64.charm seldon-controller-manager --trust --resource oci-image="docker.io/seldonio/seldon-core-operator:1.14.0"
juju relate seldon-controller-manager istio-pilot
juju status --relations
Relation provider         Requirer                                Interface           Type
istio-pilot:gateway-info  seldon-controller-manager:gateway-info  istio-gateway-info  regular
istio-pilot:istio-pilot   istio-ingressgateway:istio-pilot        k8s-service         regular

Discard this pull request due to invalid branch name.


editor broken

We have written the needed data into your clipboard because it was too large to send. Please paste.

/needsMoreInfo
Could you check if you have Centered editor layout enabled in Settings?


Any RelativeLayout sample with RelativeToView?

Hello all! I am in need of RelativeLayout sample with constraint related to view.  Fabulous samples have only RelatedToParent cases, which is interesting, but not so useful in my case.

Use a viewRef?

Use a viewRef?

Unfortunately, viewref is usually available on the next layout pass. And i think, that is not a case for view ref


Allow legend to be "selected" from a property/class/state.

I want to be able to control the legend ( active/hovered item ) using react or redux state.
This task is simple with AreaSeries, and I suspect much of the Series components as well.
I cannot find a way to do this for the legend, and if there is one I must have missed it.
The only work around I've been able to control is if I pass react components into the items property and control their style with state, but I cannot make it uniform to the actual hovering of the component, since I cannot control anything outside of the passed in component without investigating DOM manipulation.

Right now the discrete color legend items can be disabled or not. We could give them extra props (highlighted, active, ...). They can already capture interaction. They just don't have different looks corresponding to different statuses themselves.

What I mean, is when you hover over the individual legend items within the legend component, it applies a style to the item.  I want to be able to apply that same style to the legend items from outside the of the legend component.  That that effect you can hover over the AreaSeries associated with a legend item, and the legend item looks as if you've hovered over it.
I cannot find any access to the items underlying elements to which the classes are applied in order to apply it without doing some creative DOM manipulation.  The only thing I've been able to do without DOM manipulation is disable the legend item hover interactions using react's event capture, and preventing the default event from bubbling, and triggering my own event which only applies style to the react components I pass into the items property of the legend component.


perf(Scope): $postDigestWatch

Currently, directives that do nothing more than watch an expression and update the dom in response use $watch (for the most part).
This subjects them to repeated dirty checks every $digest cycle and might even trigger multiple dom updates.
Since they will never update the scope themselves, there should be another kind of $watch that will execute exactly once after the scope has stabilized in a $digest.

@DavidSouther $evalAsync forces a digest.

Interestingly this is kind of what happens now for $onChanges hooks. We implemented an onChangesQueue that allows directives to schedule calls to $onChanges. This is then flushed in the $$postDigest, causing a maximum of one call to each controller's $onChanges hook per digest.
Perhaps we could think about abstracting this out of the $compile service?


feat: tests for remaining EVM opcodes

What ❔
This PR adds the code necessary to perform the tests of the rest of the opcodes added on this PR

Why ❔
The Before case for the tests was added because when you tried to write a test that needed to create a contract, since the Template and Full share the vm instance, they both created the same contract, so the decommiter failed since it already knew the hash, that's why the Before test was added, in order to run the contract creation in it before Template and Full, so that the gas comparisons were still correct (instead of creating the contract on Template and not in Full, since that way a specific opcode gas would not be tested)

Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[x] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[ ] Code has been formatted via cargo fmt and checked with cargo clippy.

Please save the LOG tests somewhere.
I'm OOO today, but will help to handle them later.

Please save the LOG tests somewhere. I'm OOO today, but will help to handle them later.

Sure, i created a branch log-tests with them

@gianbelinche merged!
Please change the submodule back, and I'll merge this one.

@gianbelinche merged! Please change the submodule back, and I'll merge this one.

Done!


server group icons

As of now it only shows server admins icons etc... is there any is there any way to get channel icons and custom server groups to shows also? I am willing to donate

Custom group icons are shown if you put the icon file in the folder /img/default/group_<Group ID>.png. But display custom channel icons is not yet implemented.
Currently I have no time to work on it, sorry, Maybe you'll find someone else.

I like to add that some icons are not displayed. It shows 4 of my like 10 custom icons...

This is likely fixed by #3.


Support forget inode ops

We define a ForgetInodeOp, but don't currently ever issue it. Start issuing it. Things:

Give up on the idea of reference counting within the fuse package and just send the count through to the user. They can naturally track counts in their inode structure.

Be very precise in the documentation about what increments the count.

Still to do:

Write a file system called forgetfs. Same structure as flushfs. It maintains the reference count according to the documentation. It has a public method that panics if any inodes are left with a reference count. It also panics on negative reference count.

Write a test that exercises various methods of forgetfs. TearDown unmounts as usual and then calls the check method.


[pytorch] Disable autograd when engine start

Change-Id: I7d27aa8df9b75ca005223f095557d1ea80643f2a
Description
Brief description of what this PR is about

If this change is a backward incompatible change, why must this change be made?
Interesting edge cases to note here

Codecov Report

Merging #1872 (ec03046) into master (bb5073f) will decrease coverage by 2.36%.
The diff coverage is 64.62%.

@@             Coverage Diff              @@
##             master    #1872      +/-   ##
============================================
- Coverage     72.08%   69.72%   -2.37%
- Complexity     5126     5547     +421
============================================
  Files           473      527      +54
  Lines         21970    24510    +2540
  Branches       2351     2667     +316
============================================
+ Hits          15838    17090    +1252
- Misses         4925     6108    +1183
- Partials       1207     1312     +105

Impacted Files
Coverage Δ

api/src/main/java/ai/djl/modality/cv/Image.java
69.23% <ø> (-4.11%)
:arrow_down:

...rc/main/java/ai/djl/modality/cv/MultiBoxPrior.java
76.00% <ø> (ø)

...rc/main/java/ai/djl/modality/cv/output/Joints.java
71.42% <ø> (ø)

.../main/java/ai/djl/modality/cv/output/Landmark.java
100.00% <ø> (ø)

...main/java/ai/djl/modality/cv/output/Rectangle.java
72.41% <0.00%> (ø)

...i/djl/modality/cv/translator/BigGANTranslator.java
21.42% <0.00%> (-5.24%)
:arrow_down:

...odality/cv/translator/BigGANTranslatorFactory.java
33.33% <0.00%> (+8.33%)
:arrow_up:

...nslator/InstanceSegmentationTranslatorFactory.java
14.28% <0.00%> (-3.90%)
:arrow_down:

.../cv/translator/SemanticSegmentationTranslator.java
0.00% <0.00%> (ø)

.../cv/translator/StyleTransferTranslatorFactory.java
40.00% <ø> (ø)

... and 423 more

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


chore: release 1.7.1

Describe your changes

update versions
change sample training script to run for 0.0.1 epochs for easy demoing

Checklist before requesting a review

[x] I updated CHANGELOG.MD with a description of my changes
[x] If the change was to a module, I ran the code validation script (scripts/validate.sh)
[x] If the change was to a module, I have added thorough tests
[x] If the change was to a module, I have added/updated the module's README.md
[x] If a module was added, I added a reference to the module to the repository's README.md
[x] I verified that my code deploys successfully using seedfarmer apply

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: AIOpsModuleTestsInfrastruct-doMLXEYsnmxr
Commit ID: 3c06c2a284b78e040e4179f6d69f29b8f32de2e0
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


About time cost

Hi! When using Nuscenes full dataset to pretrain ViDAR , How many frames of data are there in total? And how long does it take with 8*A100 GPUs? Thanks.

NuScenes train set + nuScenes test set, maybe (28k + 6k in total). About 1 week to finish on 8xA100 GPUs.


Autorun

is it possible to make this program to autorun after booting up the pi?

If you're using the regular version with the mic, you can auto run it with a cron job. I posted the solution in another comment, pasting it here too:

You can run the script on startup with crontab. Here's some documentation on crontab: https://www.raspberrypi.org/documentation/linux/usage/cron.md
At the very bottom, there's an example of how to use the @reboot command. This will start something whenever the pi is started.
So in your case, it would be something like:
sudo crontab -e

That will run crontab as root, then add this line:
@reboot python3 /home/pi/dancyPi-script-location/python/visualization.py scroll &

Substitute "scroll" for whichever visual you want as default.
I use crontab for my more permanent setups and it works pretty well. Good luck!


Create a New 3D Scene: "Layer cannot be added"

Follow the steps at https://github.com/Esri/geodev-hackerlabs/blob/gh-pages/design/create_a_new_3d_scene/lab.md to create a new 3D scene. Step 4.i. says to add a layer with the URL http://services.arcgis.com/uCXeTVveQzP4IIcx/arcgis/rest/services/PDX_Rail_Lines/FeatureServer/0 . But that layer is not added to the scene, and an error message appears:

Layer cannot be added: PDX Rail Lines
Unable to load http://services.arcgis.com/uCXeTVveQzP4IIcx/arcgis/rest/services/PDX_Rail_Lines/FeatureServer/0?f=json status: 0 http://services.arcgis.com/uCXeTVveQzP4IIcx/arcgis/rest/services/PDX_Rail_Lines/FeatureServer/0

I get a similar error message for http://services.arcgis.com/uCXeTVveQzP4IIcx/arcgis/rest/services/PDX_Rail_Stops/FeatureServer/0 .

OK. Here's what I think is happening. Your org is probably forcing you to run over HTTPS and the URLs above are only HTTP so Chrome is complaining because it breaks Chrome's rules. I'll update the lab to reference HTTPS URLs. Thanks for catching this!

@nixta, yes, it looks like that's all it is. If I use the same service URL but with HTTPS instead of HTTP, it works. I should have thought of that. #facepalm


StoryTeller layout off

Image is running to browser edge
image size and stacking is off.

Live: https://www.esri.com/en-us/artificial-intelligence/overview
Test: https://main--esri-eds--esri.aem.live/en-us/artificial-intelligence/overview

Right on time, latest specs form Design have come in. I can use those to clean up a lot of issues.


new engine has issue downloading block

Describe the bug
Hi, we recently received feedback from the community regarding an issue where two blocks are being added to the chain simultaneously during synchronization.

As shown in the image above, when a user subscribes to headers for BSC, two blocks are sent simultaneously.
So I added logs to the code to find out the cause:
2024-11-19T11:31:13.120522Z  INFO Send download block request: 0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243
2024-11-19T11:31:16.107017Z  INFO Received single full block, buffering block=NumHash { number: 44145043, hash: 0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243 }
2024-11-19T11:31:16.108570Z  INFO Send download block request: 0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2
2024-11-19T11:31:16.108626Z  INFO Received forkchoice updated message when syncing head_block_hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 safe_block_hash=0x2f5506d5e29909a0776cdbdf573cafeaffc789c3a7369fc9ef8d239daa12bd69 finalized_block_hash=0x834bb65dc92c07aedd83ff0bfeb331346c3dbeb42845ac463733c5adca8aed26
2024-11-19T11:31:16.109018Z  INFO Received single full block, buffering block=NumHash { number: 44145044, hash: 0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 }
2024-11-19T11:31:16.289155Z  INFO Block added to canonical chain number=44145043 hash=0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243 peers=11 txs=137 gas=17.90 Mgas gas_throughput=99.22 Mgas/second full=12.8% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=180.412479ms
2024-11-19T11:31:16.459900Z  INFO Block added to canonical chain number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 peers=11 txs=188 gas=13.41 Mgas gas_throughput=78.62 Mgas/second full=9.6% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=170.58106ms
2024-11-19T11:31:16.460665Z  INFO Canonical chain committed number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 elapsed=669.425µs

From the log above, we can see that the request was sent at 11:31:13, but the block was received at 11:31:16.
I suspect the issue might be related to the poll logic. It seems the block might have been downloaded but not processed properly by the engine. Have you encountered a similar issue before, or could you provide some insights on this? Thanks!
Steps to reproduce
You can refer to the above log
Node logs

Platform(s)
Linux (ARM)
What version/commit are you on?
v1.1.0
What database version are you on?
v1.1.0
Which chain / network are you on?
BSC
What type of node are you running?
Archive (default)
What prune config do you use, if any?
No response
If you've built Reth from source, provide the full command you used
No response
Code of Conduct

[x] I agree to follow the Code of Conduct

As shown in the image above, when a user subscribes to headers for BSC, two blocks are sent simultaneously.

no idea what this represents, please elaborate.

As shown in the image above, when a user subscribes to headers for BSC, two blocks are sent simultaneously.

no idea what this represents, please elaborate.

hi, you can just check the log:
2024-11-19T11:31:13.120522Z  INFO Send download block request: 0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243
2024-11-19T11:31:16.107017Z  INFO Received single full block, buffering block=NumHash { number: 44145043, hash: 0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243 }
2024-11-19T11:31:16.108570Z  INFO Send download block request: 0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2
2024-11-19T11:31:16.108626Z  INFO Received forkchoice updated message when syncing head_block_hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 safe_block_hash=0x2f5506d5e29909a0776cdbdf573cafeaffc789c3a7369fc9ef8d239daa12bd69 finalized_block_hash=0x834bb65dc92c07aedd83ff0bfeb331346c3dbeb42845ac463733c5adca8aed26
2024-11-19T11:31:16.109018Z  INFO Received single full block, buffering block=NumHash { number: 44145044, hash: 0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 }
2024-11-19T11:31:16.289155Z  INFO Block added to canonical chain number=44145043 hash=0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243 peers=11 txs=137 gas=17.90 Mgas gas_throughput=99.22 Mgas/second full=12.8% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=180.412479ms
2024-11-19T11:31:16.459900Z  INFO Block added to canonical chain number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 peers=11 txs=188 gas=13.41 Mgas gas_throughput=78.62 Mgas/second full=9.6% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=170.58106ms
2024-11-19T11:31:16.460665Z  INFO Canonical chain committed number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 elapsed=669.425µs

I add log Send download block request in the below line:
https://github.com/paradigmxyz/reth/blob/1ba631ba9581973e7c6cadeea92cfe1802aceb4a/crates/engine/tree/src/download.rs#L108
and Received single full block in the below line:
https://github.com/paradigmxyz/reth/blob/1ba631ba9581973e7c6cadeea92cfe1802aceb4a/crates/engine/tree/src/download.rs#L205
You can find out that the request was sent at 11:31:13, but the block was received at 11:31:16.

sorry, you have to be a bit more specific about what exactly you're measuring

should not be the case that it takes 3 seconds to get the block

get the block how/where?
still unclear what the image represents

the event with the new chain is only emitted here

2024-11-19T11:31:16.460665Z  INFO Canonical chain committed number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 elapsed=669.425µs

Hi, in the log above, we processed two blocks: 44145043 and 44145044.

Block 44145043 should have been added at 11:31:13.
Block 44145044 should have been added at 11:31:16.

However, the actual scenario was different. We sent the request for block 44145043 at 11:31:13 but only received it at 11:31:16, at which point it was added to the chain. Ideally, the block should have been received and processed at 11:31:13. I suspect the delay is related to the poll mechanism, as it shouldn't take 3 seconds to retrieve a block if everything is functioning correctly.
For block 44145044, the request was sent and the block was received at 11:31:16. This caused both blocks to be added to the chain simultaneously, as seen in the log.
2024-11-19T11:31:16.289155Z  INFO Block added to canonical chain number=44145043 hash=0x0e19996504a7dbc4da03aac008abb9c0e787ccc69284a96be8bd491ade69e243 peers=11 txs=137 gas=17.90 Mgas gas_throughput=99.22 Mgas/second full=12.8% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=180.412479ms
2024-11-19T11:31:16.459900Z  INFO Block added to canonical chain number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 peers=11 txs=188 gas=13.41 Mgas gas_throughput=78.62 Mgas/second full=9.6% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=170.58106ms

So if the user subscribes to headers via ws, the user will receive two blocks at the same time. But block 44145043 should be received at 11:31:13 not 11:31:16.
Hope I make it clearer, thanks for your help ~

the event with the new chain is only emitted here

2024-11-19T11:31:16.460665Z  INFO Canonical chain committed number=44145044 hash=0x5513a8bb7731018d5e197492e7374353340dc2269094c907229a55c37382a8f2 elapsed=669.425µs

hi, I added more logs as you mentioned above, I also add a log after the below line in ChainOrchestrator:
https://github.com/paradigmxyz/reth/blob/0db10a13a53bf477777f4af7fba2bed805c915cf/crates/engine/tree/src/chain.rs#L75
Let me explain the logs below:
line 1: we finished block 45788833 and next block is 45788834
line 17: the BasicBlockDownloader sent out the block request for block 45788834
line 21: after we sent out the block request at 07:27:23, the ChainOrchestrator get polled the first time at 07:27:26 and 3 seconds elapsed
line 46: we got block 45788834 at 07:27:26
line 68: we got block 45788835 at 07:27:26
Hi, I've added more logs as you mentioned above, including a log after the following line in ChainOrchestrator:
https://github.com/paradigmxyz/reth/blob/0db10a13a53bf477777f4af7fba2bed805c915cf/crates/engine/tree/src/chain.rs#L75
Here's an explanation of the logs:

Line 1: We finished block [########], and the next block is [########].
Line 17: The BasicBlockDownloader sent out the block request for block [########].
Line 21: After sending the block request at 07:27:23, the ChainOrchestrator was polled the first time at 07:27:26, and 3 seconds had elapsed.
Line 46: We received block [########] at 07:27:26.
Line 68: We received block [########] at 07:27:26.

1. 2024-11-20T07:27:20.986684Z  INFO Canonical chain committed number=45788833 hash=0xdb6ff25d881492ce127c72b2c6272f5de91a03770eb3463335935f24b772fd6b elapsed=55.836µs
2. 2024-11-20T07:27:23.221349Z  INFO ChainOrchestrator: enter poll next event
3. 2024-11-20T07:27:23.221380Z  INFO ChainOrchestrator: enter poll next event and poll the handler
4. 2024-11-20T07:27:23.221390Z  INFO ChainHandler: enter poll
5. 2024-11-20T07:27:23.221396Z  INFO ChainHandler: start the poll loop
6. 2024-11-20T07:27:23.221413Z  INFO ChainHandler: start the poll loop
7. 2024-11-20T07:27:23.221429Z  INFO ChainHandler: enter the poll loop and before the downloader poll
8. 2024-11-20T07:27:23.221442Z  INFO ChainHandler: poll return pending
9. 2024-11-20T07:27:23.221983Z  INFO ChainOrchestrator: enter poll next event
10. 2024-11-20T07:27:23.222003Z  INFO ChainOrchestrator: enter poll next event and poll the handler
11. 2024-11-20T07:27:23.222011Z  INFO ChainHandler: enter poll
12. 2024-11-20T07:27:23.222018Z  INFO ChainHandler: start the poll loop
13. 2024-11-20T07:27:23.222036Z  INFO ChainOrchestrator: enter poll next event
14. 2024-11-20T07:27:23.222054Z  INFO ChainOrchestrator: enter poll next event and poll the handler
15. 2024-11-20T07:27:23.222067Z  INFO ChainHandler: enter poll
16. 2024-11-20T07:27:23.222085Z  INFO ChainHandler: start the poll loop
17. 2024-11-20T07:27:23.222096Z  INFO BasicBlockDownloader: Send download block request: 0xb147f7b7759e02fd97895259651a5039f2d12fc99462f781cc46c94faec9eb37
18. 2024-11-20T07:27:23.222105Z  INFO Start downloading full block hash=0xb147f7b7759e02fd97895259651a5039f2d12fc99462f781cc46c94faec9eb37
19. 2024-11-20T07:27:23.222115Z  INFO ChainHandler: enter the poll loop and before the downloader poll
20. 2024-11-20T07:27:23.222128Z  INFO ChainHandler: poll return pending
21. 2024-11-20T07:27:26.341360Z  INFO ChainOrchestrator: enter poll next event
22. 2024-11-20T07:27:26.341394Z  INFO ChainOrchestrator: enter poll next event and poll the handler
23. 2024-11-20T07:27:26.341404Z  INFO ChainHandler: enter poll
24. 2024-11-20T07:27:26.341412Z  INFO ChainHandler: start the poll loop
25. 2024-11-20T07:27:26.341429Z  INFO ChainHandler: start the poll loop
26. 2024-11-20T07:27:26.341447Z  INFO ChainHandler: enter the poll loop and before the downloader poll
27. 2024-11-20T07:27:26.341499Z  INFO ChainHandler: poll return pending
28. 2024-11-20T07:27:26.342611Z  INFO ChainOrchestrator: enter poll next event
29. 2024-11-20T07:27:26.342643Z  INFO ChainOrchestrator: enter poll next event and poll the handler
30. 2024-11-20T07:27:26.342657Z  INFO ChainHandler: enter poll
31. 2024-11-20T07:27:26.342668Z  INFO ChainHandler: start the poll loop
32. 2024-11-20T07:27:26.342689Z  INFO ChainOrchestrator: enter poll next event
33. 2024-11-20T07:27:26.342707Z  INFO ChainOrchestrator: enter poll next event and poll the handler
34. 2024-11-20T07:27:26.342719Z  INFO ChainHandler: enter poll
35. 2024-11-20T07:27:26.342727Z  INFO ChainHandler: start the poll loop
36. 2024-11-20T07:27:26.342734Z  INFO BasicBlockDownloader: Send download block request: 0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3
37. 2024-11-20T07:27:26.342750Z  INFO Start downloading full block hash=0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3
38. 2024-11-20T07:27:26.342773Z  INFO ChainHandler: enter the poll loop and before the downloader poll
39. 2024-11-20T07:27:26.342782Z  INFO ChainHandler: poll return pending
40. 2024-11-20T07:27:26.342798Z  INFO Received forkchoice updated message when syncing head_block_hash=0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3 safe_block_hash=0x38fd309250c26d99eb57ca13f9bb164e06777ea5a17a6f9fec907c2bf8f15432 finalized_block_hash=0xc5a1ca61d53be761cbe4ef152d429ff10c76773279c6326e29eb57ce06605d43
41. 2024-11-20T07:27:26.409311Z  INFO ChainOrchestrator: enter poll next event
42. 2024-11-20T07:27:26.409350Z  INFO ChainOrchestrator: enter poll next event and poll the handler
43. 2024-11-20T07:27:26.409359Z  INFO ChainHandler: enter poll
44. 2024-11-20T07:27:26.409366Z  INFO ChainHandler: start the poll loop
45. 2024-11-20T07:27:26.409374Z  INFO ChainHandler: enter the poll loop and before the downloader poll
46. 2024-11-20T07:27:26.409483Z  INFO Received single full block, buffering block=NumHash { number: 45788834, hash: 0xb147f7b7759e02fd97895259651a5039f2d12fc99462f781cc46c94faec9eb37 }
47. 2024-11-20T07:27:26.410311Z  INFO ChainHandler: enter the downloader poll and downloader poll is ready
48. 2024-11-20T07:27:26.410331Z  INFO ChainHandler: Downloaded block: 0xb147f7b7759e02fd97895259651a5039f2d12fc99462f781cc46c94faec9eb37
49. 2024-11-20T07:27:26.410355Z  INFO ChainHandler: start the poll loop
50. 2024-11-20T07:27:26.410375Z  INFO ChainHandler: enter the poll loop and before the downloader poll
51. 2024-11-20T07:27:26.410390Z  INFO ChainHandler: poll return pending
52. 2024-11-20T07:27:26.429184Z  INFO ChainOrchestrator: enter poll next event
53. 2024-11-20T07:27:26.429216Z  INFO ChainOrchestrator: enter poll next event and poll the handler
54. 2024-11-20T07:27:26.429225Z  INFO ChainHandler: enter poll
55. 2024-11-20T07:27:26.429232Z  INFO ChainHandler: start the poll loop
56. 2024-11-20T07:27:26.429260Z  INFO ChainOrchestrator: enter poll next event
57. 2024-11-20T07:27:26.429279Z  INFO ChainOrchestrator: enter poll next event and poll the handler
58. 2024-11-20T07:27:26.429291Z  INFO ChainHandler: enter poll
59. 2024-11-20T07:27:26.429298Z  INFO ChainHandler: start the poll loop
60. 2024-11-20T07:27:26.429313Z  INFO ChainHandler: enter the poll loop and before the downloader poll
61. 2024-11-20T07:27:26.429346Z  INFO ChainHandler: poll return pending
62. 2024-11-20T07:27:26.429372Z  INFO Block added to canonical chain number=45788834 hash=0xb147f7b7759e02fd97895259651a5039f2d12fc99462f781cc46c94faec9eb37 peers=3 txs=5 gas=931.80 Kgas gas_throughput=49.79 Mgas/second full=0.9% base_fee=0.00gwei blobs=0 excess_blobs=0 elapsed=18.715478ms
63. 2024-11-20T07:27:26.478610Z  INFO ChainOrchestrator: enter poll next event
64. 2024-11-20T07:27:26.478648Z  INFO ChainOrchestrator: enter poll next event and poll the handler
65. 2024-11-20T07:27:26.478658Z  INFO ChainHandler: enter poll
66. 2024-11-20T07:27:26.478665Z  INFO ChainHandler: start the poll loop
67. 2024-11-20T07:27:26.478673Z  INFO ChainHandler: enter the poll loop and before the downloader poll
68. 2024-11-20T07:27:26.478727Z  INFO Received single full block, buffering block=NumHash { number: 45788835, hash: 0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3 }
69. 2024-11-20T07:27:26.479999Z  INFO ChainHandler: enter the downloader poll and downloader poll is ready
70. 2024-11-20T07:27:26.480018Z  INFO ChainHandler: Downloaded block: 0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3
71. 2024-11-20T07:27:26.480033Z  INFO ChainHandler: start the poll loop
72. 2024-11-20T07:27:26.480043Z  INFO ChainHandler: enter the poll loop and before the downloader poll
73. 2024-11-20T07:27:26.480051Z  INFO ChainHandler: poll return pending
74. 2024-11-20T07:27:26.503252Z  INFO ChainOrchestrator: enter poll next event
75. 2024-11-20T07:27:26.503287Z  INFO ChainOrchestrator: enter poll next event and poll the handler
76. 2024-11-20T07:27:26.503297Z  INFO ChainHandler: enter poll
77. 2024-11-20T07:27:26.503304Z  INFO ChainHandler: start the poll loop
78. 2024-11-20T07:27:26.503333Z  INFO ChainOrchestrator: enter poll next event
79. 2024-11-20T07:27:26.503345Z  INFO ChainOrchestrator: enter poll next event and poll the handler
80. 2024-11-20T07:27:26.503353Z  INFO ChainHandler: enter poll
81. 2024-11-20T07:27:26.503363Z  INFO ChainHandler: start the poll loop
82. 2024-11-20T07:27:26.503378Z  INFO ChainOrchestrator: enter poll next event
83. 2024-11-20T07:27:26.503385Z  INFO ChainOrchestrator: enter poll next event and poll the handler
84. 2024-11-20T07:27:26.503391Z  INFO ChainHandler: enter poll
85. 2024-11-20T07:27:26.503396Z  INFO ChainHandler: start the poll loop
86. 2024-11-20T07:27:26.503403Z  INFO ChainHandler: enter the poll loop and before the downloader poll
87. 2024-11-20T07:27:26.503400Z  INFO Block added to canonical chain number=45788835 hash=0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3 peers=3 txs=8 gas=584.22 Kgas gas_throughput=25.45 Mgas/second full=0.6% base_fee=0.00gwei blobs=1 excess_blobs=0 elapsed=22.954039ms
88. 2024-11-20T07:27:26.503412Z  INFO ChainHandler: poll return pending
89. 2024-11-20T07:27:26.503430Z  INFO Canonical chain committed number=45788835 hash=0x4eb334d5809f9e239538ea068764c27d859a162a777df69471b982a354e476b3 elapsed=76.487µs

okay, I think I've finally understood what the issue is.
this looks indeed pretty consistent.
if you have a way to reproduce this I'd appreciate if you could sprinkle a few more traces at various places in the poll loop
reth/crates/engine/tree/src/engine.rs
Line 82 in 0db10a1
loop {
like enter, pending and
reth/crates/engine/tree/src/engine.rs
Line 116 in 0db10a1
if let Poll::Ready(outcome) = self.downloader.poll(cx) {
reth/crates/engine/tree/src/engine.rs
Line 116 in 0db10a1
if let Poll::Ready(outcome) = self.downloader.poll(cx) {
logs from the net target would also help

2024-11-20T07:27:23.222115Z  INFO ChainHandler: enter the poll loop and before the downloader poll

where's this log?, could you please reference the instrumented files, otherwise this is hard to follow

The issue here is that the request might not be processed promptly, as it depends on when it gets polled again.

where is that modification?

The issue here is that the request might not be processed promptly, as it depends on when it gets polled again.

where is that modification?

We haven’t made changes to the new engine. I’m just unsure whether we can reliably get the block promptly with the new engine. Could you clarify or share any insights on this? Thanks!

ah yes, you're on an outdated version of the ChainHandler impl
this exact bug has been fixed here https://github.com/paradigmxyz/reth/pull/11981

ah yes, you're on an outdated version of the ChainHandler impl
this exact bug has been fixed here #11981
https://github.com/bnb-chain/reth/blob/3948b4b2cd557a63a4dff71428c6fe0ec922e5e8/crates/engine/tree/src/engine.rs#L120

Great to know that, I will check this out and get you back~ Thanks for your help~

ah yes, you're on an outdated version of the ChainHandler impl
this exact bug has been fixed here #11981
https://github.com/bnb-chain/reth/blob/3948b4b2cd557a63a4dff71428c6fe0ec922e5e8/crates/engine/tree/src/engine.rs#L120

Hi, I think this issue has been resolved. I'm going to close it now. Thanks for your kind help!


An exception detected by VertxTestContext is not being informed to Junit5's ExtensionContext object in an beforeAll method

Describe the feature
Junit5 allows multiple extensions to work together inside one test class. Those extensions can share data and errors through the ExtensionContext object.
Any extension can use the method extensionContext.getExecutionException().isPresent() to detect when an error have occurred in any of other used extensions and took a properly path. In my case, to prevent the running of an unnecessary code.
The problem I'm facing is when executing a vert.x future inside a beforeAll() method and the test class is using a @TestInstance(Lifecycle.PER_CLASS).
An exception thrown by the future is not being rethrown by the VertxExtension in this case, it is only rethrowing an exception in the joinActiveTestContexts method (not reached in beforeAll methods).
Contribution
I'm willing in providing a PR for this, but I want to be sure if this is desired by the people that are responsible for vertx-junit5 before putting my hands on it.

Thanks for the report.
Would you have a reproducer to highlight the problem?


Stutter even though FPS indicates solid 60

Hello,
Not sure if this will get answered as this patch was made 2 years ago, but I am having a hard time finding a solution (if one exists).
Issue: I am using the latest release (v0.9.2) and have the "Patch renderer synchronization code to prevent framerate drops" set to: Enable = 1. MSI Afterburner is indicating that I have a solid 60 fps at all times, however, it will randomly "stutter/jitter" and appears to be briefly dropping down to what 30 FPS looks like despite being locked at 60. I notice this the most when turning the camera, but it can happen when running down a straight path (i.e. running through the alley after exiting the restroom in the beginning of the game).
I have tried combos of vsync enabled/disabled both within the ini and through the Nvidia control panel, but nothing seems to remedy the stutter.
Any tips would be appreciated, thanks!
GTX 1080
I7 5930k @ 4.5ghz
EVGA X99 Classified
32GB Corsair Dominator Platinum @ 2800mhz
Windows 10 Professional (64bit)

MSI Afterburner framerate sampling frequency may not be high enough to detect short framerate drops, which cause jittery animations (see https://github.com/07151129/sh3proxy/wiki/On-FixJitter-and-lag-compensation for more details).


Addition of multiple authors at once

Just found a small issue.
[screen-capture (9).webm](https://user-images.githubusercontent.com/54287612/234543598-6659c2a7-fe99-4be2-b864-

CLosing in favour of PR #1103


Training time?

Looking to know what training time to expect for what GPUs?
(Thanks for the library)

About 1 week using 8xV100 GPUs.


Metric mock test

What this PR does / why we need it:
Mock test for lvm metric driver .
Collected sample output from host and using this data as the cli output to validate.
Special notes for your reviewer:
Earlier test code was just to call driver methods with no mock values, with which we can't validate  actual vs expected results. Now we can validate all values except timestamp( timesamp is generated by driver collection)

@xing-yang @skdwriting @wisererik @leonwanghui @rhsprakash

Coverage increased (+0.02%) to 30.262% when pulling 7f3fa1bd67ec049d21aa8ae2df741d806ee25c64 on NajmudheenCT:metric_mock_test into 27549b9eecbad7dfb76abfc1993d37edb7fd49e7 on opensds:development.

Coverage increased (+0.02%) to 30.262% when pulling 7f3fa1bd67ec049d21aa8ae2df741d806ee25c64 on NajmudheenCT:metric_mock_test into 27549b9eecbad7dfb76abfc1993d37edb7fd49e7 on opensds:development.


New Contribution

Contributor: [contributor information - Optional]
SSH Public key: [contributor SSH public key (if you don't have one, submit the issue to receive instructions)"- Required]
Attestation: [any form of attestation for contribution (e.g., signature) - Optional]

I did the firs step

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICyC1Re9GYbpNGiTdAQfaiqLjANVeDzCGIpXpQ/Yhh3g

Bug, I can not accomplish it
Vào Th 6, 21 thg 6, 2024 vào lúc 05:04 zvorcuit @.***>
đã viết:

Hello, contributions period will soon come to an end and we will not be
able to process your contribution in time.
If you still want to contribute, please add comment before the
contribution period ends to the next random contribution
https://github.com/zircuit-labs/ceremony/issues/50, where we gather
community-generated randomness and we compute a verifiable contribution
from it.
The content of your comment will be used as part of input to verifiable
contribution.
Thank you.
—
Reply to this email directly, view it on GitHub
https://github.com/zircuit-labs/ceremony/issues/212#issuecomment-2181633031,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6QA5LSL4UZ3UE6RBTI24JLZINGYPAVCNFSM6AAAAABJABDVKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBRGYZTGMBTGE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add a deriveSecret API on the key pair API

Rather than creating a separate library for ECDH keys that would duplicate almost everything here except provide a deriveSecret API instead of sign and verify, expose a deriveSecret API on the key pair interfaces here.

Addressed by #21.


Duke, Q4 interviewing

Interviewees:  Startup founders and NGO/community leaders
Number of people: 10
Interview hours: 5
Fee: $250

NB number of interviews updated from 5 due to initial error

Done 3 Interviews, and should be wrapping up the other 7 before Christmas
Duke has yet to DM Esther his email address so she can invite him to a folder to put his interviewds in - he will do that


Improve workload types error message

Fixes #178

It should comply with black now.

Thanks a lot for this contribution @sokratisvas


convert combineReducers test to typescript

This PR converts the combineReducers test to typescript. The changes are mostly typing of parameters, but also requires 2 major additions to the typings. The first is export of __DO_NOT_USE__ActionTypes and the second is a change to the definition of replaceReducers which also requires a small change to createStore
The change to createStore is duplicated in PR #3507, which is against master, whereas this PR is against ts-conversion

I'm fine with adding the __DO_NOT_USE to the types temporarily. That'll just go in the src files whenever we move the typedefs inline.


Document how to view gathered metrics from e2e tests

#2705 added gathering metrics for e2e tests. We should document how to view these metrics and what to look for when tests are flaky.

@sttts can we use the OCP solution for metrics from tests here?

@stevekuznetsov I found the spot where we snapshot metrics in OCP, it's part of the gather-extra suite: https://github.com/openshift/release/blob/0da1c1404ba699a67c653a061947fee7b8dabdd6/ci-operator/step-registry/gather/extra/gather-extra-commands.sh#L208-L240

OCP though snapshots in-cluster monitoring only, kcp metrics won't be part of that. We have two possibilities:

enable user workload monitoring (https://docs.openshift.com/container-platform/4.12/monitoring/enabling-monitoring-for-user-defined-projects.html), gather kcp metrics there, and snapshot that prometheus.
deploy our own Prometheus instance, and snapshot that database

Once we have any prometheus instance running, we can leverage the gather-extra script above to dump metrics data.

@s-urbaniak option 2 (our own Prom) sounds like the winner here -  we're running in-process, remember, not on any k8s :)

done:

https://github.com/kcp-dev/kcp/pull/2774
https://github.com/openshift/release/pull/36509
https://github.com/vrutkovs/promecieus/pull/16
https://kubernetes.slack.com/archives/C021U8WSAFK/p1676975581816679

oh, not so fast, we need a bit of documentation as well as the title says 😅


⚠ ClamAV has degraded performance

In 31d18fe, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 211 ms

Resolved: ClamAV performance has improved in e38a639.


Projects can be ordered by name

What?
Projects can also be ordered by the name field.
Why?
Because API consumers want to be able to receive a sorted project list without having to implement it on their side.
Dependencies

https://github.com/teambox/Teambox-hosted/pull/4362

:+1:

:+1:

:+1:


Update jwt-circe to 9.1.1

Updates com.github.jwt-scala:jwt-circe from 9.0.6 to 9.1.1.
GitHub Release Notes - Changelog - 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!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.jwt-scala", artifactId = "jwt-circe" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.github.jwt-scala", artifactId = "jwt-circe" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #1094.


fixing invalid comment copy-pasted from another method

Again, not much of a code improvement but noticed invalid comment when I needed to use the class for something else.

Thank you for your contribution.


Changes to install correct hive config files on all worker nodes

Currently default config files are getting installed on worker nodes resulting in hive actions ending up using local Derby DB instead of the common mysql metastore. This is a fix for the chef-bcpc issue #338.

looks good

I tested this on VM cluster and hive-config seems to have run on vm3: /etc/hive/conf structure and content is same as that on vm2. Not sure what to verify to make sure hive is working correctly.


api.text_magnifier.text_magnifier.0_test golden image is flaky

See image history here: https://flutter-gold.skia.org/search?corpus=flutter&include_ignored=false&left_filter=name%3Dapi.text_magnifier.text_magnifier.0_test&max_rgba=0&min_rgba=0&negative=true&not_at_head=false&positive=true&reference_image_required=false&right_filter=&sort=descending&untriaged=true
Each differently colored dot is a unique image result.
We are skipping this test for now as it is keeping the tree red generating unique images as commits are landing.

PR to disable: https://github.com/flutter/flutter/pull/144351

Strange, it looks like the problem is with the text itself and not the magnifier.


Update Delegator Docs

Needs to update orakl-docs

LGTM! The changes are not propagated to docs.orakl.network because of Gitbook sync issue.


SAML and SAML2 Extensibility Testing: Audience

SAML and SAML2 Extensibility Testing: Audience

Adjusted previous JWT audience extensibility work to match the work done on issuer extensibility testing
Added exception handling for the audience validation delegates on SAML and SAML2, in case an override were to throw.
Added extensibility tests for issuer validation to SAML and SAML2.

Note: This PR will remain in draft until the issuer one goes in due to dependencies (https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/2997). Once the issuer PR is merged, the modified files in this one will be simplified.
Part of #2711

Re-issuing extensibility PRs with better alignment.


Added More Tests for Command and Command Response Messages

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Adds 15 More Test Cases in order to cover more combinations for Command and Command Response messages by using also Global and Local MetaData Channels.
-modified 4 Test VIs name in order to be clear they refer to Global MetaData Channels
-updated setUp and TearDown methods in order to include the startup and closing of TCP HeartBeat
-small front panel changes for TCP Listener
-updated CD System Test file to include new test messages
-update the Common System Tests lvclass with the new VIs
Why should this Pull Request be merged?
In order to have more System Coverage for Testing Purposes.
What testing has been done?
The new added tests have been executed successfully using VI tester.

Recommendation (no changes required): whenever you have an array with a small number of elements, scale it to have n+1 visible slots, so that its size is also inferrable from a visual diff:


How to extract the multiplicity between two selected vertices?

I want  to out put the number of edges between two vertices with no idea how.

but the point is which object do you want to attach to? All the edges from vertex A and vertex B?

The multiplicity of a multigraph mg between v1 and v2 can be access with mg.adjmx[v1, v2].
But now there is no API for this. We will add this later.

got it
G=Multigraph(4);  add_edge!(G,1,2,2)  add_edge!(G,3,2,2)  add_edge!(G,1,4,1)  add_edge!(G,4,3,2) length(collect(edges(G))[1])
this is what i want.


Magisk Canary 26.4 (26404) (65207f96) breaks move AdGuard certificate to system

After updating Magisk Canary from 26.4 (26403) (d7750b72) to 26.4 (26404) (65207f96) AdGuard certificate disappeared from the system store. Reinstalling the certificate and reflashing the latest magisk module didn't help.

MODDIR=/data/adb/modules/adguardcert
AG_CERT_HASH=0f4ed297

readIFS=. -r
left right

read -r left right
sort -nr
ls /data/misc/user/0/cacerts-added/0f4ed297.0
echo 0 /data/misc/user/0/cacerts-added/0f4ed297.0
read -r left right
echo /data/misc/user/0/cacerts-added/0f4ed297.0
AG_CERT_FILE=/data/misc/user/0/cacerts-added/0f4ed297.0
'[' -e /data/misc/user/0/cacerts-added/0f4ed297.0 ]
rm -f '/data/misc/user//cacerts-removed/0f4ed297.'
cp -f /data/misc/user/0/cacerts-added/0f4ed297.0 /data/adb/modules/adguardcert/system/etc/security/cacerts/0f4ed297.0
chown -R 0:0 /data/adb/modules/adguardcert/system/etc/security/cacerts
set_context /system/etc/security/cacerts /data/adb/modules/adguardcert/system/etc/security/cacerts
getenforce
'[' Enforcing '=' Enforcing ]
default_selinux_context=u:object_r:system_file:s0
ls -Zd /system/etc/security/cacerts
awk '{print $1}'
selinux_context=u:object_r:system_security_cacerts_file:s0
'[' -n u:object_r:system_security_cacerts_file:s0 ]
'[' u:object_r:system_security_cacerts_file:s0 '!=' '?' ]
chcon -R u:object_r:system_security_cacerts_file:s0 /data/adb/modules/adguardcert/system/etc/security/cacerts
'[' -d /apex/com.android.conscrypt/cacerts ]
rm -f /data/local/tmp/adg-ca-copy
mkdir -p /data/local/tmp/adg-ca-copy
mount -t tmpfs tmpfs /data/local/tmp/adg-ca-copy
cp -f /apex/com.android.conscrypt/cacerts/01419da9.0 /apex/com.android.conscrypt/cacerts/04f60c28.0 /apex/com.android.conscrypt/cacerts/0d69c7e1.0 /apex/com.android.conscrypt/cacerts/10531352.0 /apex/com.android.conscrypt/cacerts/1ae85e5e.0 /apex/com.android.conscrypt/cacerts/1b0f7e5c.0 /apex/com.android.conscrypt/cacerts/1df5a75f.0 /apex/com.android.conscrypt/cacerts/1e1eab7c.0 /apex/com.android.conscrypt/cacerts/1e8e7201.0 /apex/com.android.conscrypt/cacerts/1ec40989.0 /apex/com.android.conscrypt/cacerts/1f58a078.0 /apex/com.android.conscrypt/cacerts/219d9499.0 /apex/com.android.conscrypt/cacerts/23f4c490.0 /apex/com.android.conscrypt/cacerts/252252d2.0 /apex/com.android.conscrypt/cacerts/2add47b6.0 /apex/com.android.conscrypt/cacerts/2d9dafe4.0 /apex/com.android.conscrypt/cacerts/302904dd.0 /apex/com.android.conscrypt/cacerts/304d27c3.0 /apex/com.android.conscrypt/cacerts/31188b5e.0 /apex/com.android.conscrypt/cacerts/33ee480d.0 /apex/com.android.conscrypt/cacerts/35105088.0 /apex/com.android.conscrypt/cacerts/399e7759.0 /apex/com.android.conscrypt/cacerts/3ad48a91.0 /apex/com.android.conscrypt/cacerts/3c860d51.0 /apex/com.android.conscrypt/cacerts/3c899c73.0 /apex/com.android.conscrypt/cacerts/3c9a4d3b.0 /apex/com.android.conscrypt/cacerts/3e7271e8.0 /apex/com.android.conscrypt/cacerts/41a3f684.0 /apex/com.android.conscrypt/cacerts/455f1b52.0 /apex/com.android.conscrypt/cacerts/48a195d8.0 /apex/com.android.conscrypt/cacerts/4be590e0.0 /apex/com.android.conscrypt/cacerts/4c3982f2.0 /apex/com.android.conscrypt/cacerts/5046c355.0 /apex/com.android.conscrypt/cacerts/52b525c7.0 /apex/com.android.conscrypt/cacerts/53a1b57a.0 /apex/com.android.conscrypt/cacerts/583d0756.0 /apex/com.android.conscrypt/cacerts/5a3f0ff8.0 /apex/com.android.conscrypt/cacerts/5acf816d.0 /apex/com.android.conscrypt/cacerts/5f47b495.0 /apex/com.android.conscrypt/cacerts/5f9a69fa.0 /apex/com.android.conscrypt/cacerts/5fdd185d.0 /apex/com.android.conscrypt/cacerts/60afe812.0 /apex/com.android.conscrypt/cacerts/6187b673.0 /apex/com.android.conscrypt/cacerts/63a2c897.0 /apex/com.android.conscrypt/cacerts/69105f4f.0 /apex/com.android.conscrypt/cacerts/6b03dec0.0 /apex/com.android.conscrypt/cacerts/6f7454b3.0 /apex/com.android.conscrypt/cacerts/75680d2e.0 /apex/com.android.conscrypt/cacerts/76579174.0 /apex/com.android.conscrypt/cacerts/7892ad52.0 /apex/com.android.conscrypt/cacerts/7a7c655d.0 /apex/com.android.conscrypt/cacerts/7a819ef2.0 /apex/com.android.conscrypt/cacerts/81b9768f.0 /apex/com.android.conscrypt/cacerts/82223c44.0 /apex/com.android.conscrypt/cacerts/83e9984f.0 /apex/com.android.conscrypt/cacerts/85cde254.0 /apex/com.android.conscrypt/cacerts/86212b19.0 /apex/com.android.conscrypt/cacerts/869fbf79.0 /apex/com.android.conscrypt/cacerts/8794b4e3.0 /apex/com.android.conscrypt/cacerts/882de061.0 /apex/com.android.conscrypt/cacerts/88950faa.0 /apex/com.android.conscrypt/cacerts/89c02a45.0 /apex/com.android.conscrypt/cacerts/8d6437c3.0 /apex/com.android.conscrypt/cacerts/9282e51c.0 /apex/com.android.conscrypt/cacerts/9339512a.0 /apex/com.android.conscrypt/cacerts/93851c9e.0 /apex/com.android.conscrypt/cacerts/9479c8c3.0 /apex/com.android.conscrypt/cacerts/9576d26b.0 /apex/com.android.conscrypt/cacerts/9591a472.0 /apex/com.android.conscrypt/cacerts/95aff9e3.0 /apex/com.android.conscrypt/cacerts/9685a493.0 /apex/com.android.conscrypt/cacerts/985c1f52.0 /apex/com.android.conscrypt/cacerts/99e1b953.0 /apex/com.android.conscrypt/cacerts/9aef356c.0 /apex/com.android.conscrypt/cacerts/9d6523ce.0 /apex/com.android.conscrypt/cacerts/a2c66da8.0 /apex/com.android.conscrypt/cacerts/a3896b44.0 /apex/com.android.conscrypt/cacerts/a716d4ed.0 /apex/com.android.conscrypt/cacerts/a81e292b.0 /apex/com.android.conscrypt/cacerts/a9d40e02.0 /apex/com.android.conscrypt/cacerts/ab5346f4.0 /apex/com.android.conscrypt/cacerts/ab59055e.0 /apex/com.android.conscrypt/cacerts/b0ed035a.0 /apex/com.android.conscrypt/cacerts/b0f3e76e.0 /apex/com.android.conscrypt/cacerts/b30d5fda.0 /apex/com.android.conscrypt/cacerts/b3fb433b.0 /apex/com.android.conscrypt/cacerts/b74d2bd5.0 /apex/com.android.conscrypt/cacerts/b7db1890.0 /apex/com.android.conscrypt/cacerts/b872f2b4.0 /apex/com.android.conscrypt/cacerts/b92fd57f.0 /apex/com.android.conscrypt/cacerts/b936d1c6.0 /apex/com.android.conscrypt/cacerts/bc3f2570.0 /apex/com.android.conscrypt/cacerts/bd43e1dd.0 /apex/com.android.conscrypt/cacerts/bdacca6f.0 /apex/com.android.conscrypt/cacerts/bf64f35b.0 /apex/com.android.conscrypt/cacerts/c44cc0c0.0 /apex/com.android.conscrypt/cacerts/c491639e.0 /apex/com.android.conscrypt/cacerts/c559d742.0 /apex/com.android.conscrypt/cacerts/c7f1359b.0 /apex/com.android.conscrypt/cacerts/c90bc37d.0 /apex/com.android.conscrypt/cacerts/cb1c3204.0 /apex/com.android.conscrypt/cacerts/ccc52f49.0 /apex/com.android.conscrypt/cacerts/cf701eeb.0 /apex/com.android.conscrypt/cacerts/d06393bb.0 /apex/com.android.conscrypt/cacerts/d16a5865.0 /apex/com.android.conscrypt/cacerts/d16a5865.1 /apex/com.android.conscrypt/cacerts/d18e9066.0 /apex/com.android.conscrypt/cacerts/d39b0a2c.0 /apex/com.android.conscrypt/cacerts/d41b5e2a.0 /apex/com.android.conscrypt/cacerts/d4c339cb.0 /apex/com.android.conscrypt/cacerts/d59297b8.0 /apex/com.android.conscrypt/cacerts/d7746a63.0 /apex/com.android.conscrypt/cacerts/d96b65e2.0 /apex/com.android.conscrypt/cacerts/da7377f6.0 /apex/com.android.conscrypt/cacerts/dbc54cab.0 /apex/com.android.conscrypt/cacerts/dbff3a01.0 /apex/com.android.conscrypt/cacerts/dc99f41e.0 /apex/com.android.conscrypt/cacerts/dfc0fe80.0 /apex/com.android.conscrypt/cacerts/e13665f9.0 /apex/com.android.conscrypt/cacerts/e442e424.0 /apex/com.android.conscrypt/cacerts/e48193cf.0 /apex/com.android.conscrypt/cacerts/e7c037b4.0 /apex/com.android.conscrypt/cacerts/e8651083.0 /apex/com.android.conscrypt/cacerts/ed39abd0.0 /apex/com.android.conscrypt/cacerts/edcbddb5.0 /apex/com.android.conscrypt/cacerts/ee532fd5.0 /apex/com.android.conscrypt/cacerts/f013ecaf.0 /apex/com.android.conscrypt/cacerts/f058632f.0 /apex/com.android.conscrypt/cacerts/f0cd152c.0 /apex/com.android.conscrypt/cacerts/f459871d.0 /apex/com.android.conscrypt/cacerts/f8fc53da.0 /apex/com.android.conscrypt/cacerts/fb5fa911.0 /apex/com.android.conscrypt/cacerts/fd08c599.0 /apex/com.android.conscrypt/cacerts/fde84897.0 /data/local/tmp/adg-ca-copy/
cp -f /data/misc/user/0/cacerts-added/0f4ed297.0 /data/local/tmp/adg-ca-copy
chown -R 0:0 /data/local/tmp/adg-ca-copy
set_context /apex/com.android.conscrypt/cacerts /data/local/tmp/adg-ca-copy
getenforce
'[' Enforcing '=' Enforcing ]
default_selinux_context=u:object_r:system_file:s0
ls -Zd /apex/com.android.conscrypt/cacerts
awk '{print $1}'
selinux_context=u:object_r:system_security_cacerts_file:s0
'[' -n u:object_r:system_security_cacerts_file:s0 ]
'[' u:object_r:system_security_cacerts_file:s0 '!=' '?' ]
chcon -R u:object_r:system_security_cacerts_file:s0 /data/local/tmp/adg-ca-copy
ls -1 /data/local/tmp/adg-ca-copy
wc -l
CERTS_NUM=135
'[' 135 -gt 10 ]
mount --bind /data/local/tmp/adg-ca-copy /apex/com.android.conscrypt/cacerts
umount /data/local/tmp/adg-ca-copy
rmdir /data/local/tmp/adg-ca-copy

adguardcert.txt
magisk_install_log_2023-12-28T13.53.50.log
AdGuard 4.4.1 (NIGHTLY)
Pixel 7 Pro, Android 14
Magisk Canary 26.4 (26404) (65207f96)
Magisk (65207f96) (26404) changes:
[SEPolicy] Update libsepol to properly set some policy config bits
[MagiskBoot] Support compressing  init  so Magisk is installable on devices with small boot partitions
[ResetProp] Add new wait for property feature  resetprop -w
Diffs to v26.4
[Zygisk] Introduce new code injection mechanism
[Zygisk] Support new signature introduced in U QPR2
[SEPolicy] Update libsepol to properly set some policy config bits
[MagiskBoot] Support compressing  init  so Magisk is installable on devices with small boot partitions

I saw this on Alpha a good few versions ago and got no help. Github is almost completely inactive.

I saw this on Alpha a good few versions ago and got no help. Github is almost completely inactive.
As far as I can see the module is moving the certs to the right folder but the app is unable to detect this.

I don't expect any help from them beyond the usual "no issue here" or "can't reproduce" but still thought it'd be wise to let others know that there's a problem.
Btw. if the certificate was moved correctly then it should be present in system store, right? But it's not there.

I think it's symlinked or something because I can get it to "work" on Delta but the certs aren't on that list either.

@innit86 Android 14 blocks modification of system certificates, even as root
but you can try this module
https://github.com/WindSpiritSR/CustomCACert

@innit86 @privacyguy123 Can you try new beta?
https://github.com/AdguardTeam/adguardcert/releases/tag/v2.1-beta1

@innit86 @privacyguy123 Can you try new beta?
https://github.com/AdguardTeam/adguardcert/releases/tag/v2.1-beta1

It works.

Works over here too,

New module version v2.1 is out with this fix