example/rdma_performance 运行问题

Describe the bug (描述bug)
在运行server和client之后有时测试会失败，不知这是否是正常的
To Reproduce (复现方法)
按照rdma文档配置
./server 2333 -rdma_memory_pool_initial_size_mb=512
./client <IP_ADDRESS>:2333 -rdma_memory_pool_initial_size_mb=512
我本机按默认内存1024MB会分配内存失败
Versions (各种版本)
RoCE ubuntu 虚拟机
lfw@lfw-vm:~$ rdma link show link rxe_0/1 state ACTIVE physical_state LINK_UP netdev ens33
Additional context/screenshots (更多上下文/截图)
可以看到client的运行情况有时出现Fail to write into Socket，有时出现<IP_ADDRESS>:43942(no auth) requests for profiling
lfw@lfw-vm:~/dev_libs/brpc/example/rdma_performance/build$ ./client <IP_ADDRESS>:2333 -rdma_memory_pool_initial_size_mb=512
I1130 14:30:14.397691  7844 /home/lfw/dev_libs/brpc/src/brpc/rdma/rdma_helper.cpp:483] RDMA device: rxe_0
I1130 14:30:14.397779  7844 /home/lfw/dev_libs/brpc/src/brpc/rdma/rdma_helper.cpp:485] RDMA LID: 0
I1130 14:30:14.398254  7844 /home/lfw/dev_libs/brpc/src/brpc/rdma/rdma_helper.cpp:490] RDMA GID Index: 2
I1130 14:30:14.399389  7844 /home/lfw/dev_libs/brpc/src/brpc/rdma/block_pool.cpp:145] Start extend rdma memory 512MB
I1130 14:30:14.899498  7844 /home/lfw/dev_libs/brpc/src/brpc/server.cpp:1158] Server[DummyServerOf(./client)] is serving on port=8001.
I1130 14:30:14.899661  7844 /home/lfw/dev_libs/brpc/src/brpc/server.cpp:1161] Check out http://lfw-vm:8001 in web browser.
[Threads: 1, Depth: 1, Attachment: 1B, RDMA: yes, Echo: no]
Avg-Latency: 94, 90th-Latency: 151, 99th-Latency: 436, 99.9th-Latency: 7205, Throughput: 0.00920648MB/s, QPS: 9k, Server CPU-utilization: 52%, Client CPU-utilization: 54%
[Threads: 2, Depth: 1, Attachment: 1B, RDMA: yes, Echo: no]
Avg-Latency: 170, 90th-Latency: 274, 99th-Latency: 1295, 99.9th-Latency: 8885, Throughput: 0.0117301MB/s, QPS: 12k, Server CPU-utilization: 63%, Client CPU-utilization: 66%
[Threads: 4, Depth: 1, Attachment: 1B, RDMA: yes, Echo: no]
W1130 14:31:14.673439  7853 /home/lfw/dev_libs/brpc/src/brpc/policy/http_rpc_protocol.cpp:967] Fail to write into Socket{id=204 fd=1035 addr=<IP_ADDRESS>:54334:8001} (0x7f707c1a0640): Got EOF
Avg-Latency: 185, 90th-Latency: 287, 99th-Latency: 856, 99.9th-Latency: 12160, Throughput: 0.0210091MB/s, QPS: 22k, Server CPU-utilization: 80%, Client CPU-utilization: 83%
[Threads: 8, Depth: 1, Attachment: 1B, RDMA: yes, Echo: no]
Avg-Latency: 232, 90th-Latency: 380, 99th-Latency: 1351, 99.9th-Latency: 12113, Throughput: 0.0327759MB/s, QPS: 34k, Server CPU-utilization: 81%, Client CPU-utilization: 85%
[Threads: 16, Depth: 1, Attachment: 1B, RDMA: yes, Echo: no]
I1130 14:31:45.528819  7849 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:664] <IP_ADDRESS>:43942(no auth) requests for profiling cpu for 10 seconds
Avg-Latency: 294, 90th-Latency: 481, 99th-Latency: 1480, 99.9th-Latency: 12775, Throughput: 0.054297MB/s, QPS: 56k, Server CPU-utilization: 91%, Client CPU-utilization: 98%
[Threads: 1, Depth: 1, Attachment: 4B, RDMA: yes, Echo: no]
I1130 14:31:57.393738  7853 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:666] <IP_ADDRESS>:43942(no auth) requests for profiling heap
I1130 14:31:59.362359  7849 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:666] <IP_ADDRESS>:43942(no auth) requests for profiling growth
I1130 14:32:00.629607  7849 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:664] <IP_ADDRESS>:43942(no auth) requests for profiling contention for 10 seconds
W1130 14:32:10.643670  7849 /home/lfw/dev_libs/brpc/src/brpc/policy/http_rpc_protocol.cpp:967] Fail to write into Socket{id=306 fd=1035 addr=<IP_ADDRESS>:43942:8001} (0x7f706453d270): Got EOF
Avg-Latency: 105, 90th-Latency: 162, 99th-Latency: 524, 99.9th-Latency: 11196, Throughput: 0.033814MB/s, QPS: 8k, Server CPU-utilization: 52%, Client CPU-utilization: 55%
[Threads: 2, Depth: 1, Attachment: 4B, RDMA: yes, Echo: no]
Avg-Latency: 155, 90th-Latency: 205, 99th-Latency: 730, 99.9th-Latency: 13380, Throughput: 0.0507197MB/s, QPS: 13k, Server CPU-utilization: 73%, Client CPU-utilization: 75%
[Threads: 4, Depth: 1, Attachment: 4B, RDMA: yes, Echo: no]
Avg-Latency: 150, 90th-Latency: 245, 99th-Latency: 664, 99.9th-Latency: 9576, Throughput: 0.0982212MB/s, QPS: 25k, Server CPU-utilization: 81%, Client CPU-utilization: 86%
[Threads: 8, Depth: 1, Attachment: 4B, RDMA: yes, Echo: no]
I1130 14:33:00.590817  7849 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:664] <IP_ADDRESS>:42982(no auth) requests for profiling contention for 10 seconds
I1130 14:33:01.721333  7854 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:666] <IP_ADDRESS>:59130(no auth) requests for profiling growth
I1130 14:33:02.307785  7847 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:666] <IP_ADDRESS>:59130(no auth) requests for profiling heap
I1130 14:33:04.926424  7847 /home/lfw/dev_libs/brpc/src/brpc/builtin/hotspots_service.cpp:664] <IP_ADDRESS>:59130(no auth) requests for profiling cpu for 10 seconds
W1130 14:33:10.596240  7847 /home/lfw/dev_libs/brpc/src/brpc/policy/http_rpc_protocol.cpp:967] Fail to write into Socket{id=8589934796 fd=1036 addr=<IP_ADDRESS>:42982:8001} (0x7f707c1a0640): Got EOF
Avg-Latency: 219, 90th-Latency: 373, 99th-Latency: 1198, 99.9th-Latency: 10803, Throughput: 0.144094MB/s, QPS: 37k, Server CPU-utilization: 81%, Client CPU-utilization: 86%
[Threads: 16, Depth: 1, Attachment: 4B, RDMA: yes, Echo: no]
Avg-Latency: 272, 90th-Latency: 452, 99th-Latency: 1311, 99.9th-Latency: 12194, Throughput: 0.21416MB/s, QPS: 56k, Server CPU-utilization: 89%, Client CPU-utilization: 93%

@Tuvie  麻烦看看，谢谢


WIP: Add keep_forever field for session

Codecov Report

Merging #224 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #224      +/-   ##
==========================================
- Coverage   62.66%   62.64%   -0.03%
==========================================
  Files          40       40
  Lines        3056     3057       +1
  Branches      363      363
==========================================
  Hits         1915     1915
+ Misses       1050     1049       -1
- Partials       91       93       +2

Impacted Files
Coverage Δ

vmmaster/cleanup.py
0% <ø> (ø)
:arrow_up:

core/db/models.py
82.81% <100%> (+0.13%)
:arrow_up:

core/auth/custom_auth.py
65.21% <0%> (-2.18%)
:arrow_down:

vmpool/clone.py
58.13% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

!test

!test

!test

!test

!test

!test

!test


Verify Delete all BMC dump

Update test to delete all dump when this code is merged
https://gerrit.openbmc-project.xyz/#/c/6611/

Code merged and fixed in another commit


Add volume list and delete for torusblk. Fixes #206

@beh9540 Hey, thanks for the contribution. This would be a great PR, except I was working on it simultaneously today (in #272) and decided to go the other direction with #206 -- bring all the manipulations into torusctl and let torusblk be purely the mount/aoe/nbd tool.  And the commands are correct -- just really bad timing by chance.
If you want to grab another low hanging fruit, please do, and add a comment or assign yourself. Or ask questions if it's a bit unclear what the issue means!
Thanks again!


cargo test error in windows

Problem
While running cargo test in nightly, it failed with
error: test failed, to rerun pass `--lib`

Caused by:
  process didn't exit successfully: `my_path.exe` (exit code: 0xc0000135, STATUS_DLL_NOT_FOUND)

I 'm in nightly build, and my test code is:
 #[test]
 fn success() {
     assert_eq!(1, 1);
 }

my config.toml:
[build]
rustflags = "-Cdebuginfo=2 -Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort"
# rustflags = "-Cinstrument-coverage"
incremental = false

[env]
LLVM_PROFILE_FILE = "test-%p-%m.profraw"

Steps
Run "cargo test" can trigger this problem in nightly build.
Possible Solution(s)

Put it into visual studio and debug it
visual studio show that it miss "mrmsupport.dll"
copy the "mrmsupport.dll" which located in "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64" to the path that "my_path.exe" located and it works well

Notes
No response
Version
cargo 1.69.0-nightly (e84a7928d 2023-01-31)
release: 1.69.0-nightly
commit-hash: e84a7928d93a31f284b497c214a2ece69b4d7719
commit-date: 2023-01-31
host: x86_64-pc-windows-msvc
libgit2: 1.5.0 (sys:0.16.0 vendored)
libcurl: 7.86.0-DEV (sys:0.4.59+curl-7.86.0 vendored ssl:Schannel)
os: Windows 10.0.22621 [64-bit]

Unfortunately I am unable to reproduce this issue with what is given. You may want to check if you have any environment variables set that may influence the build. mrmsupport.dll seems related to some Windows app package resource support, which is not something that Rust would use by default.
Unfortunately we are unable to provide support here for helping with issues.  I suggest you try one of the user forums such as https://users.rust-lang.org/ to see if someone can help.

Closing since it doesn't look like an issue of Rust itself, and there has been no response for a period. If you figure out it is very likely a bug of Rust or Cargo, please share an example that can reproduce on people's machines. Thank you.


[5.6] [stdlib] Implement the Indic grapheme breaking rules

This implements the Indic grapheme breaking rule found in the CLDR to keep compatibility with ICU.
(Cherry pick of https://github.com/apple/swift/pull/40746 for 5.6)

@swift-ci please test


⚠ Samsung has degraded performance

In 139a3bb, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2667 ms

Resolved: Samsung performance has improved in df05886.


Test interop of vDVS with vCD

Verify whether vDVS works out of the box with vCD.
Container Host OS - Photon

Should be able to decide also if its preferred to have a backend for the vDVS client plugin to interface with VCD directly vs. with a per host-based service on each node.

Results of this exercise need to be formally included in vDVS documentation.


Suggestion: Change artifact name

Could be Artifact of choice or something simple but Artifact of Multishop Terminals just doesnt quite roll off the tongue haha.
Btw, format for icons is 512x512, 8x gaussian blur, #e7c7e7 selected, #473e44 deselected :)
Also would it be possible to add a config to increase trishop costs? would just be to balance it out a little lol

Changed in v1.0.0


Roll engine 2e8e96fad1ad..7ec1d211e4ae (3 commits)

https://github.com/flutter/engine/compare/2e8e96fad1ad...7ec1d211e4ae
git log 2e8e96fad1ad..7ec1d211e4ae --no-merges --oneline
7ec1d211e Compute maxIntrinsicWidth based on the width of styled runs added to the line breaker (flutter/engine#6281)
2b25fd7da Don't use unix or win namespaces (flutter/engine#6277)
60c5bb86d Return null instead of throwing if an instance method is passed to PluginUtilities.getCallbackHandle (flutter/engine#6260)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Updated s3 create step

Regions outside of us-east-1 require the appropriate LocationConstraint

set chart version to 1.0.1


add retry action on build step

Actually the usage of GitVersionTask nuget package can resolve into a FileLockedException during build. ~To avoid this flaky step, implement https://github.com/nick-invision/retry~
Use directory.build.props https://github.com/GitTools/GitVersion/issues/1381#issuecomment-708401889

closed as GitversionTask is replaced by Gitversion.Msbuild


remove old and outdated provisioner rook-ceph provisioner

use rook-ceph-default instead
Signed-off-by: Michael Henriksen<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

@rmohr yeah that change was unsaved in my vscode buffer

Thanks.
/lgtm
/approve


Message backoff of up to max_timeout on failure

This adds boto3 support, and also does an eventual backoff to max_timeout on re-processing the message.

Just a few comments on a method name and some literal numbers.


Extract CN from certificate to rename keys

Use the certificate where possible to include the actual CommonName of the subject to rename the key file appropriately.

Fixed by #4


Using with react-datepicker

There are components like react-datepicker where their onChange handler is not passing the event object as the first argument. For example, in ReactDatepicker's case, the onChange handler is something like: (Date, event) => void.
So when the form handler is trying to access the e.target.value, it's going to throw an error, because target is undefined.
Maybe the ability to override the onChange handler or to manually set a value would resolve this issue.

All these forms for onChange should be supported:
onChange(e)
onChange(e, value)
onChange(value)

Does this work? (Adopted from the readme's advanced input section). The functions here are basically just spreading an object into the component with all of the things (value, id, etc) the input needs. Here's a list of the props DatePicker takes, if they're not called the same you might have to wrap the text function and remap some of the property names?
 <DatePicker
        {...text({
          onChange: date => doTheThing(date) /* or (e, value) => {...}, or... */,
          onBlur: () => {} /* Dunno if you'd need to "no op" this */ ,
        })}
      />

Remapping should be as simple as defining a mapProps function that looks like:
function mapProps({prop1, prop2 /* (and so on) */ }) {
  return { newName1: prop1, newName2: prop2, ... } // and so on
}

and then using it like <input {...mapProps(text(...))}.

No it doesn't. As I said, the problem is that useFormState's handler tries to get the value from e.target.value while in this example e is undefined. And the onChange handler for helpers like text() is not overriding the default onChange behavior, it's just there to help us do side effects.

Ahh, I see now. Sorry for misreading. I thought the onChange was for overriding it, but looking at the source I can see where I missed that. It seems to me that having the onX handlers override things would be the most intuitive approach. But the default handler looks quite tightly coupled to the internal mechanisms of the hook... I don't see an immediately obvious fix for that, unfortunately.

I was looking at this exact problem, too (although in my case, the library is react-select).
It seems like one solution to this would be to do add some handlers for "raw" types.  Something along the lines of:
export default function SignUpForm() {
  const [formState, { text, raw }] = useFormState();
  return (
    <form onSubmit={() => console.log(formState)}>
      <input {...text('name')} />
      <DatePicker {...raw('date')} />
    </form>
  );
}```

So `raw()` would return, to use some typescript annotation, a:

```ts
interface Raw<T> {
    onChange(date: T): void;
    value: T;
    onBlur(): void;
}

?

Although, since I bring up typescript, if we did this, the typescript for the return value of useFormState will be... not fun.

Or,
export default function SignUpForm() {
  const [formState, { text, raw }] = useFormState();
  return (
    <form onSubmit={() => console.log(formState)}>
      <input {...text('name')} />
      <DatePicker {...date('date', {raw: true})} />
    </form>
  );
}

Although this doesn't work as nicely for this example, since DatePicker gives us an actual Date, not a string.


Make sure we always flush window update frames in AbstractHttp2StreamChannel

Motivation:
Under certain read patters the AbstractHttp2StreamChannel can fail to
flush, resulting in flow window starvation.
Modifications:

Ensure we flush if we exit the doBeginRead() method.
Account for the Http2FrameCodec always synchronously finishing writes
of window update frames.

Result:
Fixes #10072

@netty-bot test this please

@normanmaurer, presuming this gets accepted, what are the odds we could get a release relatively soon? I know this just missed the 4.1.46 release but this is a show stopper for us and looks to affect both clients and servers using the MultiplexHandler/MultiplexCodec API's.

I think a release could be done within a week or so :)

@netty-bot test this please

Fixed the order of static. I suppose I should have tested it before pushing. 🤦♂

@netty-bot test this please

@bryce-anderson thanks a lot! nice work...


Three links in body of Code Styleguides Overview page return 404 error

The three links in the body of this page:
http://esri.github.io/calcite-web/guides/code/
... don’t work.  I’m referring to the numbered list in the body, not the side nav (which works as expected).

Thanks @JasonHine I'll try to get a fix in for this


⚠ Bofrost.be has degraded performance

In b3f838a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1756 ms

Resolved: Bofrost.be performance has improved in 27d0d69.


adds sessionClaims to auth object on request.

Fixes #826
Type of change

[x] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[ ] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[ ] @clerk/clerk-js
[ ] @clerk/clerk-react
[ ] @clerk/nextjs
[x] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[ ] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/clerk-sdk-node
[ ] @clerk/shared
[ ] @clerk/fastify
[ ] gatsby-plugin-clerk
[ ] build/tooling/chore

Description

[x] npm test runs as expected.
[x] npm run build runs as expected.

@SokratisVidros does this look ok?

Hello @nicksrandall let me take a look and come back to you. Until then could you please update the commit message based on : https://github.com/clerkinc/javascript/blob/main/docs/MONOREPO.md#a-note-on-commit-messages

@dimkl I made this PR with the GitHub UI so I don't know how to change the commit message. Perhaps you can squash & merge this PR and set the proper commit message then?

Hello @nicksrandall 👋 . Thank you for opening this PR. I made a few more changes. Closing this PR in favor of https://github.com/clerkinc/javascript/pull/843


Error when building through terraform

Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "CatalogSource" in version "operators.coreos.com/v1alpha1", unable to recognize "": no matches for kind "OperatorGroup" in version "operators.coreos.com/v1", unable to recognize "": no matches for kind "Subscription" in version "operators.coreos.com/v1alpha1", unable to recognize "": no matches for kind "Vizier" in version "px.dev/v1alpha1"]

@sturman It actually worked for me later. Previously, I was trying to deploy the helm chart without installing the CRD files which they mentioned. After deploying those it worked.
kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/crd/base/px.dev_viziers.yaml -n monitoring-newrelic
kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/helm/crds/olm_crd.yaml -n monitoring-newrelic

Solved

Why these aren't added to helm chart nor manifest? Is that any reason for that?


"Download Screenshot" doesn't work on IE

Repro step:

Navigate to https://pxt.microbit.org/beta on IE
Right click on Blocks editor->Download Screenshot

Expect result:
"Download Screenshot" can capture images
Actual result:
There is not responding

cannot repro. Please give more detailed instructions.

I believe this is a known issue. Right click in Blockly -> Download screenshot doesn't work in IE.
This is because there isn't SVG to PNG support in IE. We should not show that option in IE.

Dupe of #557


set MediaPlayer.Rate=-2 didn't work

I have an issue / a question (pick one) about Vlc.DotNet.
Generic information

Vlc.DotNet version : (3.0)
Vlc.DotNet project used : (WPF)
libvlc version : (x64) + nuget
.net version : (4.5.2)
Project language : (C#)
Project build architecture : (AnyCPU/AnyCPU (prefer 32bits))
Operating system : (Windows ...) (x64)

Summary
set MediaPlayer.Rate=-2 didn't work

[ ] I confirm that my issue doesn't happen in VLC itself.

Logs? Code?
Can't help you much with a one sentence report.

Also, please tell us what kind of stream are you trying to play. Some streams can't be played backwards. Did you try in VLC?

Also, please tell us what kind of stream are you trying to play. Some streams can't be played backwards. Did you try in VLC?
here is my code:
` public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var vlcLibDirectory = new DirectoryInfo(System.IO.Path.Combine(@"D:\Test\WpfApp1\packages\VideoLAN.LibVLC.Windows.3.0.6\build", IntPtr.Size == 4 ? "x86" : "x64"));
var options = new string[]
{

        };
        this.video.SourceProvider.CreatePlayer(vlcLibDirectory, options);
    }

    private void Play(object sender, RoutedEventArgs e)
    {
        FileInfo fileInfo = new FileInfo(@"D:\2.mpg");
        video.SourceProvider.MediaPlayer.Play(fileInfo, null);
    }

    private void Stop(object sender, RoutedEventArgs e)
    {
        ThreadPool.QueueUserWorkItem(_ => video.SourceProvider.MediaPlayer.Stop());
    }

    private void Pause(object sender, RoutedEventArgs e)
    {
        video.SourceProvider.MediaPlayer.Pause();
    }

    private float _rate = 0;
    private void Forward(object sender, RoutedEventArgs e)
    {
        _rate++;
        video.SourceProvider.MediaPlayer.Rate = _rate;// can work
    }

    private void Backward(object sender, RoutedEventArgs e)
    {
        _rate--;
        video.SourceProvider.MediaPlayer.Rate = _rate;//can't work
    }
}`

xmal:
    <Grid>         <Grid.RowDefinitions>             <RowDefinition></RowDefinition>             <RowDefinition Height="auto"></RowDefinition>         </Grid.RowDefinitions>         <vlc:VlcControl x:Name="video" Grid.Row="0"></vlc:VlcControl>         <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="10">             <Button Content="play" Margin="10,0" Click="Play"></Button>             <Button Content="stop" Margin="10,0" Click="Stop"></Button>             <Button Content="pause" Margin="10,0" Click="Pause"></Button>             <Button Content="forward" Margin="10,0" Click="Forward"></Button>             <Button Content="backward" Margin="10,0" Click="Backward"></Button>         </StackPanel>     </Grid>

negative rates seem ignored. What you're probably looking for is a rate between 0 and 1 (to slow down playback).

Closing as this seems like a libvlc issue and not a Vlc.DotNet issue.


[MAT-1124] Valueset code check

Updating the warning check. Data Elements will only be added to the warning list if all of its codes are not supported. When one or more codes in a Data Element are present in ANY value set supported by the measure, then it will be not be displayed in the warning list.
Pull requests into Bonnie require the following. Submitter and reviewer should :white_check_mark: when done. For items that are not-applicable, note it's not-applicable ("N/A") and :white_check_mark:.
Submitter:

[x] This pull request describes why these changes were made.
[x] This PR is into the correct branch.
[x] JIRA ticket for this PR: MAT-1124
[ ] JIRA ticket links to this PR
[ ] Code diff has been done and been reviewed (it does not contain: additional white space, not applicable code changes, debug statements, etc.)
[ ] If UI changes have been made, google WAVE plug-in has been executed to ensure no 508 issues were introduced.
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass (remember to update Gemfile when applicable)
[ ] Test fixtures updated and documented as necessary ( see internal wiki )
[ ] Code coverage has not gone down and all code touched or added is covered.

In rare situations, this may not be possible or applicable to a PR. In those situations:

Note why this could not be done or is not applicable here:
Add TODOs in the code noting that it requires a test
Add a JIRA task to add the test and link it here:

[ ] Automated regression test(s) pass

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA test links:
[ ] Justification for using JIRA tests:
[ ] JIRA tests have been added to sprint

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA tests have been run and pass
[ ] You agree with the justification for use of JIRA tests or have provided input on why you disagree

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

If JIRA tests were used to supplement or replace automated tests:

[ ] JIRA tests have been run and pass
[ ] You agree with the justification for use of JIRA tests or have provided input on why you disagree

Updating the warning check. Data Elements will only be added to the warning list if all of its codes are not supported. When one or more codes in a Data Element are present in ANY value set supported by the measure, then it will be not be displayed in the warning list.

How about custom codes? if I enter codes manually and they are not in measure would/should that be flagged as well?

Updating the warning check. Data Elements will only be added to the warning list if all of its codes are not supported. When one or more codes in a Data Element are present in ANY value set supported by the measure, then it will be not be displayed in the warning list.

How about custom codes? if I enter codes manually and they are not in measure would/should that be flagged as well?

From talking with the SME's, this check is intended to notify users that the valueset versions have changed, think same value with a new code, and therefore is only applied when all the codes are unsupported. It's not worded or expected to be displayed whenever a single code is not supported.

thanks for clarification!


Fix database creation if not exists

Error:
Chimera could not connect to the database, because it is not automatically created if not existing.
Mitigation:
Add ?createDatabaseIfNotExist=true to database urls so that they are created if they don't exist.

@marhew @m0r13 I checked your docker_deploy script again and the fix should also work there, because it does not affect the replacement of the env vars.
BTW: Unicorn does it in the same way.

The PR looks fine for me.

Ok, waiting for a PR approval then merging.


RC - Loading depth seems to be misplaced

When invoking loading overlay to be shown inside a sub-page it does not appear on top of the sub-page but instead it appear on top of the root page. Seems like the z-index is messed up somewhere.
Code
let loading = this._loadingController.create({             content: "Message..."         });         loading.present()

I also discovered that it only happens when this sub-page is pushed in from the action sheet.

I found a workaround which is to use navController reference acquired in root page rather than in action sheet page when pushing in a sub page from action sheet. This issue is also related to #8477.

Hello, thanks for opening an issue with us! Could you post a repo that I can use to reproduce this issue? Thanks!

@jgw96 here's a repo you can use to reproduce the issue: https://github.com/msalcala11/loading-bug

The same issue appears when opening a Modal from within a Modal and then opening a Loading.
First Modal has z-index 9999 by default I think, second one gets 10000 (+1) which is fine, but the Loading will get a "z-index" of 9999 and therefore will be hidden by the second modal.


Eloquent Model returns false positive from GuardsAttributes::isGuarded()

Laravel Version: 8.29.0
PHP Version: 8.0.0
Database Driver & Version: n/a

Description:
There's a typo in the Illuminate\Database\Eloquent\Concerns\GuardsAttributes::isGuarded() method.
The line 208 should not use a negation operator.
Steps To Reproduce:
class Test extends \Illuminate\Database\Eloquent\Model
{
	protected $guarded = ['id'];
}

dd((new Test(['test' => 'abc']))->getAttributes());

An empty array [] is being dumped instead of the ['test' => 'abc'] one

Previous duplicate issues: https://github.com/laravel/framework/issues/35172, https://github.com/laravel/framework/issues/35297
Declined pull request: https://github.com/laravel/framework/pull/36253
That line isn't a typo. There is a test case written that documents it works as intended (the Foo key isn't guarded but it also isn't fillable):
https://github.com/laravel/framework/blob/2446a91a4529ef4c4174bfd6c4a1a0bf4727820b/tests/Database/DatabaseEloquentModelTest.php#L1104-L1121
If the $guarded array contains at least one key, then that Eloquent Model goes into a strict mode where it can only be filled with values for valid database columns.
In your sample code, the test database column isn't found in the tests table, so the Test@fill() call (through Test's constructor) is noop. If a model wishes to set such an attribute, the forceFill() method can be used.


Waiting for Hydra Services exited with code 1

Im not abelt to start storefront, everytimg trying to start docker getting exited with code 1 :
test:example-storefront Mohammad$ sudo docker-compose up -d && docker-compose logs -fPassword:Starting example-storefront_web_1 ... done Attaching to example-storefront_web_1 web_1  | fix-volumes: Fixing all volumes to be owned by '1000:1000' web_1  | fix-volumes: Skipping volume /home/node/.cache/yarn. Already owned by 1000:1000 web_1  | fix-volumes: Skipping volume /usr/local/src/app/node_modules. Already owned by 1000:1000 web_1  | Installing dependencies... web_1  | (Using Yarn because there is a yarn.lock file) web_1  | yarn install v1.21.1 web_1  | warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json. web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 0.93s. web_1  | Running './bin/start' as user node in Docker container... web_1  | yarn install v1.21.1 web_1  | warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json. web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 1.01s. web_1  | Operation timed out web_1  | Waiting for Hydra service...  fix-volumes: Fixing all volumes to be owned by '1000:1000' web_1  | fix-volumes: Skipping volume /home/node/.cache/yarn. Already owned by 1000:1000 web_1  | fix-volumes: Skipping volume /usr/local/src/app/node_modules. Already owned by 1000:1000 web_1  | Installing dependencies... web_1  | (Using Yarn because there is a yarn.lock file) web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 0.95s. web_1  | Running './bin/start' as user node in Docker container... web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 0.90s. web_1  | Operation timed out web_1  | Waiting for Hydra service...  fix-volumes: Fixing all volumes to be owned by '1000:1000' web_1  | fix-volumes: Skipping volume /home/node/.cache/yarn. Already owned by 1000:1000 web_1  | fix-volumes: Skipping volume /usr/local/src/app/node_modules. Already owned by 1000:1000 web_1  | Installing dependencies... web_1  | (Using Yarn because there is a yarn.lock file) web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 1.18s. web_1  | Running './bin/start' as user node in Docker container... web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 1.19s. web_1  | Operation timed out web_1  | Waiting for Hydra service...  fix-volumes: Fixing all volumes to be owned by '1000:1000' web_1  | fix-volumes: Skipping volume /home/node/.cache/yarn. Already owned by 1000:1000 web_1  | fix-volumes: Skipping volume /usr/local/src/app/node_modules. Already owned by 1000:1000 web_1  | Installing dependencies... web_1  | (Using Yarn because there is a yarn.lock file) web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 0.97s. web_1  | Running './bin/start' as user node in Docker container... web_1  | yarn install v1.21.1 web_1  | [1/4] Resolving packages... web_1  | success Already up-to-date. web_1  | Done in 0.90s. web_1  | Operation timed out **web_1  | Waiting for Hydra service...  example-storefront_web_1 exited with code 1**
Any idea about the reason?

Got the same problem. Did you solve it?

Got the same problem. Did you solve it?

Got the same problem. Did you solve it?

no dear, i just removed it.

Got the same problem. Did you solve it?

no dear, i just removed it.


Add a part about Quinoa

@melloware would you contribute this?
So my idea but we can easilly change would be:
Part 4: Challenge Accepted - Porting a SPA to Quarkus
After impressing your friend with your skills in building a CMS and a blog, they’re curious if you could help with their next project—a Single Page Application (SPA). Right now, their app is set up as two separate services: one for the frontend and another for the backend REST API.
Confident in your abilities, you tell your friend, “I can port your entire setup to Quarkus in under 15 minutes.”
Naturally, they’re skeptical. Challenge accepted?

I think @lmagnette that your recently met on a Quinoa contrib might be interested in helping on that one.

As a user you would get as input a Spring (or whatever Rest Api) and a directory with a SPA, goal is to convert it to Quarkus

I like this idea. Let me know how I can help!

I like the idea too.

If we go from SpringBoot crud app, you can migrate to Quarkus quite easily using the quarkus-spring extensions and I think in less than 10min you have an application running with quinoa.
We could even go further, either by converting the Spring stuff to Quarkus and see the live reload magic. Or if the SPA works with the web bundler, you can then migrate from quinoa to the web-bundler and removing all the node configuration.

i like the idea of migrating to native quarkus code vs using the Quarkus Spring Extensions but both use cases are compelling!


Generate all metric for official release, also new func

@hanahmily I want to info you, the sumfunc has been separated to sum and count. sum is for the aggregation of value field, count is for the aggregation
of row number.
@peng-yongsheng @hanahmily my generation codes are based on the following scripts, review this will be much easier. :)
FYI @ascrutae

// All scope metric
all_p99 = from(All.latency).p99(10);
all_p95 = from(All.latency).p95(10);
all_p90 = from(All.latency).p90(10);
all_p75 = from(All.latency).p75(10);
all_p50 = from(All.latency).p50(10);
all_heatmap = from(All.latency).thermodynamic(100, 20);

// Service scope metric
service_resp_time = from(Service.latency).longAvg();
service_sla = from(Service.*).percent(status == true);
service_cpm = from(Service.*).cpm();
service_p99 = from(Service.latency).p99(10);
service_p95 = from(Service.latency).p95(10);
service_p90 = from(Service.latency).p90(10);
service_p75 = from(Service.latency).p75(10);
service_p50 = from(Service.latency).p50(10);

// Service relation scope metric for topology
service_relation_client_cpm = from(ServiceRelation.*).filter(detectPoint == DetectPoint.CLIENT).cpm();
service_relation_server_cpm = from(ServiceRelation.*).filter(detectPoint == DetectPoint.SERVER).cpm();
service_relation_client_call_sla = from(ServiceRelation.*).filter(detectPoint == DetectPoint.CLIENT).percent(status == true);
service_relation_server_call_sla = from(ServiceRelation.*).filter(detectPoint == DetectPoint.SERVER).percent(status == true);
service_relation_client_resp_time = from(ServiceRelation.latency).filter(detectPoint == DetectPoint.CLIENT).longAvg();
service_relation_server_resp_time = from(ServiceRelation.latency).filter(detectPoint == DetectPoint.SERVER).longAvg();

// Service Instance Scope metric
serviceInstance_resp_time= from(ServiceInstance.latency).longAvg();
service_instance_cpm = from(ServiceInstance.*).cpm();

// Endpoint scope metric
endpoint_Avg = from(Endpoint.latency).longAvg();
endpoint_sla = from(Endpoint.*).percent(status == true);
endpoint_p99 = from(Endpoint.latency).p99(10);
endpoint_p95 = from(Endpoint.latency).p95(10);
endpoint_p90 = from(Endpoint.latency).p90(10);
endpoint_p75 = from(Endpoint.latency).p75(10);
endpoint_p50 = from(Endpoint.latency).p50(10);

// Endpoint relation scope metric
endpoint_relation_cpm = from(EndpointRelation.*).filter(detectPoint == DetectPoint.SERVER).cpm();
endpoint_relation_resp_time = from(EndpointRelation.rpcLatency).filter(detectPoint == DetectPoint.SERVER).longAvg();

// JVM instance metric
instance_jvm_cpu = from(ServiceInstanceJVMCPU.usePercent).doubleAvg();
instance_jvm_memory_heap = from(ServiceInstanceJVMMemory.max).filter(isHeap == true).longAvg();
instance_jvm_memory_noheap = from(ServiceInstanceJVMMemory.max).filter(isHeap == false).longAvg();
instance_jvm_young_gc_time = from(ServiceInstanceJVMGC.time).filter(phrase == GCPhrase.NEW).longAvg();
instance_jvm_old_gc_time = from(ServiceInstanceJVMGC.time).filter(phrase == GCPhrase.OLD).longAvg();
instance_jvm_young_gc_count = from(ServiceInstanceJVMGC.count).filter(phrase == GCPhrase.NEW).sum();
instance_jvm_old_gc_count = from(ServiceInstanceJVMGC.count).filter(phrase == GCPhrase.OLD).sum();

Coverage decreased (-0.8%) to 14.455% when pulling f1419eb66f84b97654899822a69264d3a846082d on real-metric-script into 2bad786e798eb9c2fbf26c58aeadc91dc21d4880 on master.


Smtp email port fix

add AbstractMailerTest base on smtp_email_port_fix branch of @sathish316

Please reference the existing PR on which yours bases.

Please describe the PR in more details in your change description.

#395

1.add EmailerTest  and AbstractMailerTest for test smtp.port
2. remove the author information in the code of AbstractMailerTest.java
base on PR #395

Thanks for your quick response.
Please update your branch.

Thanks for your quick response and help. @HappyRay
1.AbstractMailer  add getMailPort function
2.modify  2014  to 2017 in AbstractMailerTest
3.change EmailerTest(Emailer load Props from config file)

Manually tested the default port in a test environment.

add send email  manually in MailerTest
move load properties for resource file in MailerTest

perfect annotation for testSendEmail of Emailer.

Thanks!


Reasoning behind updating route53 records instead of creating new ones

Is your feature request related to a problem? Please describe.
We are running a multi-dc cluster setup having the need to order certificates through cert-manager from different locations. Now issuing certificates for the same domain through different cert-manager instances is causing an issue as it uses "ChangeActionUpsert" for creating the TXT records through the route53 provider.
I'd be interested in the reasoning why ChangeActionUpsert is being used instead of ChangeActionCreate?
The DNS Records created are cleaned up after successfully issuing a certificate so there seems to be no necessity to update/overwrite existing ones, is there?
If something went wrong and a challenge is not being removed that's probably something I should take care of and cleanup manually, is it?
Describe the solution you'd like
I'd like to be able to use ChangeActionCreate instead of ChangeActionUpsert at https://github.com/jetstack/cert-manager/blob/master/pkg/issuer/acme/dns/route53/route53.go#L168
This may come through a configuration of "overwrite existing records" or similar.
Alternative Ideas
It may also help if you could configure a "timeout" for challenges so a DNS challenge gets retried when hitting the timeout and after another random sleep. So if the race happens it autosolves itself over time.
Additional context
The current behaviour makes it impossible to run cert-manager in a multi-dc setup where the same certificate is being used in different locations. There's always the possibility of race-conditions happening that cause a challenge not to be successfully issued.
Oh and last but not least: Thanks a lot for providing the cert-manager!
/kind feature

Just a small update:
Doing some tests with using ChangeActionCreate it seems that the AWS API allows a txt record to be created only once (with multiple values being specified in a single request).
So this causes the request to fail and be requeued.
This behaviour IMHO is totally fine as it causes all requests to succeed eventually and causes no "stuck" challenges.


IE asks to download JSON file -- Demo

When doing an upload in IE (tested in 10, 9) the browser responds with asking if you want to download the returning JSON file. Is this an issue with the demo or the plugin in general?

try to add content type 'text/html' in your http response; it helped me to solve this issue in my django-project:
return HttpResponse('', content_type='text/html')


Update logo

Coverage remained the same at 100.0% when pulling 631b79ab7f401c847746cacb75fa714f4a3ad072 on chore-update-logo into 0a080bec53c7a5a556b846c24f5c0ca8b60435da on master.


validateLineBreak() function in CSV File does not check for Mac Line Breaks

It is not clear why Mac line breaks are allowed at
https://github.com/keboola/php-csv/blob/eb77f51e22d3e13a8e14a5d5a0b588cf9e8c56c5/src/CsvFile.php#L183-186
yet they are not included in the validation at
https://github.com/keboola/php-csv/blob/eb77f51e22d3e13a8e14a5d5a0b588cf9e8c56c5/src/CsvFile.php#L408

PR https://github.com/keboola/php-csv/pull/30


[WIP Hold] See note: V02 changes

broke some things, changed names in issue, still reorganizing changes will push more soon.
I wanted to just start the draft so we have it open.

May be superseded by #131

@jhrehanoaa Will you check to see if any of this still needs to be integrated?

this is plenty old. I believe everything important has been moved over to different PRs or already integrated.


Transitioning between components fails when component's root node has v-if="false"

Version
2.4.4
Reproduction link
https://jsfiddle.net/by4bfduo/
Steps to reproduce
Click radio "B".
What is expected?
Should switch to component "B".
What is actually happening?
Doesn't switch to "B".

In real scenario, when a user navigates to a new view, I want to load the remote data (in created hook) and set the root node's v-if to true to switch the component in. But when data hasn't been load for some reason, the dynamic component is stuck and can't go anywhere.

I don't think we currently have defined how <transition> should act if there was no element provided to begin with, so I wouldn't classify this a a bug, but there's certainly room for improvement.
At the very least, the transition should be skipped and the component-b should be rendered.

But if I wrap a div, the transition won't take effect when data is loaded.
https://jsfiddle.net/80sksyv5/

...true. Then use v-if

I'm pretty sure we had an error in the past if you tried to use v-if for the root node, (the same as using multiple root nodes)

I found a very ugly solution: add an empty <div v-else></div>, in every router view component that needs to wait data.
https://jsfiddle.net/vckb4ok5/


Release v4.1

Hey! Im trying to use the current release (v4.1)
When running the data_management/databases/classification/make_classificiation_dataset.py it tries to locate a create_tfrecords_v3 which is seems by the comments to be a script to create tfrecords when using python 3 or higher.
However, this create_tfrecords_v3 does not seem to exist.
I am using the environment-detector.yml conda setup.

Thanks for your interest, and sorry you're having trouble running the classification pipeline.
I'm having trouble finding any references to create_tfrecords_v3; do you have a line number or stack trace?  Confirm you're using the current version of the repo?
Also a caveat that this script is a bit of an island; our current classification pipeline:
https://github.com/microsoft/CameraTraps/tree/master/classification
...is based on PyTorch, and this script (make_classification_dataset.py) reflects an experimental TF fork.  Are you using that script alongside other tools in our repo, or did you just come across it as a handy way of creating TF-friendly datasets, separate from anything related to camera traps?

Closing this issue for lack of activity.


Environment creation has now started to take ages

We're started to get hit by env creation being painfully slow - even for nightly builds and for a lot of recent push triggered tests, GA tests solve the environment creation elegantly and fast even for Python=3.6 by using conda env update instead of conda env create, I'll test this for Circle tests too - this is something that will speed up the env creation by the looks of it, and esmvalcore now in conda-forge will add to this speed-up too

@zklaus There was an issue with mamba not respecting the channel priority https://github.com/mamba-org/mamba/issues/65, but it looks like it's solved now. However, I think it is crucial that our CI follows the exact same steps as we recommend our users do in our documentation, to make sure those actually work. Therefore we cannot just switch from conda to mamba on CI without updating the documentation everywhere and for that, we would need to be really sure that mamba works correctly. See also #1907.

@bouweandela indeed! I am now testing the conda env update route, see if that speeds up the env creation as in the GA tests, if that does the trick then I will open a PR where I have modified both Circle calls and the documentaion; I would stay away from mamba for now, at least where the env gets created, mamba looks safe to be used at the installation straight from conda though as in #2125


Fix log scale calculations

I think the image test best demonstrates what was wrong before and how it has changed.
datasets: [{
	data: [10, 100, 10, 100],
	backgroundColor: '#ff0000'
}, {
	data: [100, 10, 0, 100],
	backgroundColor: '#00ff00'
}],

Since this is a log scale, each 10x multiple is basically one tick. On this chart, there's only two orders of magnitude. So 10 should go half way up the chart and 100 should be about at the top (the top value is 200 (it's a stacked chart so 100 + 100) and log 200 = 2.3 and log 100 = 2)

How does it look like with data: [0, 1]?
I think you remove the part that was differentiating those values by font size.

How does it look like with data: [0, 1]?

I'm assuming you're talking about a completely new check with just this one dataset? The 0 bar would not show up and the 1 bar would go to the top. It would look exactly the same as a chart using the linear scale with this PR, which makes the behavior more consistent.

I think you remove the part that was differentiating those values by font size.

Yes, I think that was a strange behavior. To me, it would be unexpected to have values shifted because of the font I use on my labels. None of the other scales do that, which compounds the issue

Maybe it would be appropriate to 'skip` zero values in log chart.

Hmm, I'm not sure. That seems a bit unrelated to this PR though

These should look equal IMO (images by PR):
data: [0, 0.001, 0.02, 0.3, 4, 50, 600]

data: [0.001, 0.001, 0.02, 0.3, 4, 50, 600]

Second one is equal in master. First one by master (scale is ok, except for the offset that I agree on with you, and ticks are wrong):

So if we want to draw 0 (I think we do, its so common to have that in data)
I think the visually correct value for it would be Math.pow(10, Math.floor(log10(minNotZero)) - 1)

@kurkle can you clarify above what branch each of the three images above are from? (2.9, master, this PR, https://github.com/chartjs/Chart.js/pull/6903, etc.)

@kurkle can you clarify above what branch each of the three images above are from? (2.9, master, this PR, #6903, etc.)

this PR
this PR
master

Here's what I'd expect (with minBarLength: undefined for all):

data: [0, 0.001, 0.02, 0.3, 4, 50, 600] and beginAtZero: false - scale begins at 0 since 0 is a data point so second bar is visible
data: [0, 0.001, 0.02, 0.3, 4, 50, 600] and beginAtZero: true - scale begins at 0 both since 0 is a data point and beginAtZero: true so second bar is visible
data: [0.001, 0.001, 0.02, 0.3, 4, 50, 600] and beginAtZero: false - scale begins at 0.001 so first two bars aren't visible
data: [0.001, 0.001, 0.02, 0.3, 4, 50, 600] and beginAtZero: true - scale begins at 0 since beginAtZero: true first two bars are visible

To meet all those conditions, minPositive (or minNotZero) needs to be determined.

Sorry, my last few comments didn't make sense in retrospect. It's been about 20 years since I've done logarithms and forgot that log n is a negative number when n is [0, 1]. I updated my last comment. Does it make more sense now?
After brushing up on my math, I agree that filtering out zeros makes sense. (I knew log 0 was undefined but forgot that the limit of log n as n approaches 0 is negative infinity)

Closing in favor of https://github.com/chartjs/Chart.js/pull/6903


dns error logging to diags

Logs using SiteThrottled* version is helpful for noisy logs, being used here instead of print statements to help with the possible retries when a dns code occurs

[approve ci]

@fabikd : can you please run make -j8 format and commit and push the changes? That should satisfy the clang-format CI job.

[approve ci autest]

Right, I think it's a great idea to have @SolidWallOfCode look at it. I used the code from the master branch, https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1556
should I have used a different version? I’ve looked at the existing code in the master branch and these 3 labels did show goto Lerror: default, NOTIMP, NOTZONE, and my intent was to leave goto Lerror as is. I do not see goto Lerror on this version of the code https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1556 for FORMERR, NXDOMAIN, YXDOMAIN, YXRRSET, NXRRSET, NOTAUTH and it was not my intention to remove goto Lerror on any label.
As for the breaks, usually a switch statement has breaks after each case to avoid passing through the code under the next label. If I am using the correct version of the code, was the intention of it to not break and pass through all the named labels and use the last goto Lerror as a catch all?
https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1581
If so, I can add goto Lerror to FORMERR, NXDOMAIN, YXDOMAIN, YXRRSET, NXRRSET, NOTAUTH. Just let me know! Thank you!! (:

I used the code from the master branch, https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1556 should I have used a different version?

You're PR is correctly based on the master branch. Nothing to change there.

I’ve looked at the existing code in the master branch and these 3 labels did show goto Lerror: default, NOTIMP, NOTZONE, and my intent was to leave goto Lerror as is. I do not see goto Lerror on this version of the code https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1556 for FORMERR, NXDOMAIN, YXDOMAIN, YXRRSET, NXRRSET, NOTAUTH and it was not my intention to remove goto Lerror on any label.
As for the breaks, usually a switch statement has breaks after each case to avoid passing through the code under the next label.

Developers must intentionally break, return, goto, or not based on the flow of code they desire. Without statements such as these, the runtime path will "fall through" to the following case statements.

If I am using the correct version of the code, was the intention of it to not break and pass through all the named labels and use the last goto Lerror as a catch all? https://github.com/apache/trafficserver/blob/master/iocore/dns/DNS.cc#L1581 If so, I can add goto Lerror to FORMERR, NXDOMAIN, YXDOMAIN, YXRRSET, NXRRSET, NOTAUTH. Just let me know! Thank you!! (:

Correct. Unless break statements or the like are used, case statements fall through to next ones. Thus, in this block from master branch (before your change):
    case NOERROR:
    case NXDOMAIN:
    case 6:  // YXDOMAIN
    case 7:  // YXRRSET
    case 8:  // NOTAUTH
    case 9:  // NOTAUTH
    case 10: // NOTZONE
      Debug("dns", "DNS error %d for [%s]", h->rcode, e->qname);
      goto Lerror;

All of NOERROR, NXDOMAIN, etc., will fall through to that same Debug log line and goto Lerror. There's no need to repeat the Debug and goto Lerror statements for each case.
This can be seen with the following short example:
https://godbolt.org/z/cqodTTKvq
Thank you again for working on this.

It is also very standard (from the early days of C coding, which I remember personally) to omit break for cases that have completely identical code, as in this situation.
Also note that for C++17 there is now an standard keyword that should (must?) be used for fallthrough in switch statements. E.g.
switch (value) {
  case 0:
    // code ...
    [[fallthrough]];
  case 1:
    // code ...

See here. Note the style for case 1: and case 2: in the example.

That said, the errors are a bit odd, particularly this one
         - 502 https://<IP_ADDRESS>:``/ 2 0
         ?                       ^^

         + 502 https://<IP_ADDRESS>:61712/ 2 0
         ?                       ^^^^^

My understanding was the double back tick indicated "anything goes" for that token. So what is the failure, exactly? The cert checking logic is a bit dependent on DNS due to how TLS vs. TCP connection errors are handled. It might be that the changes in the query reply code handling is causing this problem.

This may be related to the problem:
On master -
    case NXDOMAIN:
    case 6:  // YXDOMAIN
    case 7:  // YXRRSET
    case 8:  // NOTAUTH
    case 9:  // NOTAUTH
    case 10: // NOTZONE
      Debug("dns", "DNS error %d for [%s]", h->rcode, e->qname);
      goto Lerror;

In the PR
    case NXDOMAIN:
      SiteThrottledNote("NXDOMAIN: DNS error %d for [%s]: Domain name does not exist.", h->rcode, e->qname);
      retry     = false;
      tcp_retry = false;
      goto Lerror;
      break;

Note the change in handling of retry and tcp_retry. This shouldn't happen for a PR that is only changing the logging.

I returned the switch to its original order instead of chronological order, removed all the breaks, and retry in order to allow for the original intention of allowing the fallthrough. In theory this will print the statement that it is selected as well as all the subsequent statements, that comes after it. example:

switch (1){     case 0: std::cout << 0;     case 1: std::cout << 1;     case 2: std::cout << 2;     case 3: std::cout << 3;
Output: 123

When researching the logs, it would be confusing to see 123 and have to know that the log that applies is the 1st one. Do we still want to print to log in this case?
Also, I believe I can add [[fallthrough]]; after the code in each label and it might build the failed tests on Rocky, Fedora, Debian, and AuTest.  Because the Diags.h file is flagging all the fall through and failing them.

I'm just a passerby, so I'm sorry if I'm missing some background or previous discussion, but it seems like to me that all the log messages have the same format and you could avoid the repeat. Since DNS RCODE is basically an integer from 0 to 23, I'd simply replace the current Debug lines with:
SiteThrottledNote("%s: DNS error %d for [%s]: %s", RCODE_NAME[h->rcode], h->rcode, e->qname, RCODE_DESCRIPTION[h->rcode]);

I guess using some macros, constexpr, or Lexicon from libswoc would make this a bit more efficient.
https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6

I'm just a passerby, so I'm sorry if I'm missing some background or previous discussion, but it seems like to me that all the log messages have the same format and you could avoid the repeat. Since DNS RCODE is basically an integer from 0 to 23, I'd simply replace the current Debug lines with:
SiteThrottledNote("%s: DNS error %d for [%s]: %s", RCODE_NAME[h->rcode], h->rcode, e->qname, RCODE_DESCRIPTION[h->rcode]);

I guess using some macros, constexpr, or Lexicon from libswoc would make this a bit more efficient.
https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6

Thank you for your feedback!! I will give it a try! (:

[approve ci autest]

Seems fine. A couple of notes, although not worth delaying the merge.
For the names, we might consider using Lexicon, although the utility is less because it's a one way conversion. I might be tempted to have an array of string pairs, to group the tag and description, but then the use site is more complex. This is pretty deep in the style weeds so take them as potential ideas for future work.


Left nav sometime can't scroll on Safari

🐛 Bug Report
(A clear and concise description of what the bug is)
Have you read the Contributing Guidelines on issues?
Yes
To Reproduce

Open Safari, make sure browser is vertically small
Go to https://docusaurus.io/docs/en/installation
Scroll the main area til the bottom
Try to scroll sidebar

Expected behavior
Sidebar scrolls
Actual Behavior
Main area scrolls instead (most of the time). This is a relatively known problem with Safari. I believe immutable.js used to have this problem. They've since switched to a static side bar (which funnily was what docusaurus used a while ago).
Reproducible Demo
See above.

Claimed by @sbansal3096

@sbansal3096 does not have a Mac (and thus Safari) to do this work.

Right sidebar too, see: https://github.com/facebook/jest/issues/7296#issuecomment-441169441

Hi! Is this stale? I tried to replicate this and I could not reproduce. @JoelMarcey @endiliey

I can’t reproduce this either.
If memory serves me well, this used to be a Safari bug, because I think I encountered this on other (non-Docusaurus) web pages as well.
So yes, I think you can close this issue!

@lensbart awesome! I guess we'll leave that to the folks who can do it. :]

Let's close it until someone else find this bug again.
Note: it's v1 so must be looked for in v1 websites :)


fix: Buttons still appearing in doc

Codecov Report
Attention: Patch coverage is 75.00000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 61.27%. Comparing base (79f4865) to head (44d0a31).

Files
Patch %
Lines

...tion_interface/backends/pyvista/widgets/measure.py
66.66%
1 Missing :warning:

..._interface/backends/pyvista/widgets/mesh_slider.py
75.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #97   +/-   ##
=======================================
  Coverage   61.27%   61.27%
=======================================
  Files          23       23
  Lines         736      736
=======================================
  Hits          451      451
  Misses        285      285

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add voting into Core UI

here is an example
https://github.com/Crowndev/crowncoin/commit/dbf67b297a00a76b9784741513838694a636da2f
https://github.com/Crowndev/crowncoin/commit/6f636ef3fb9790757885f1fc4ad6ab6ce17153e2

Released


Updating header rewrite section

@abshamsft : Thanks for your contribution! The author, @vhorne, has been notified to review your proposed change.

#sign-off

@abshamsft: I'm sorry - only the author of this article, @vhorne, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@GitHubber17 : Thanks for your contribution! The author, @vhorne, has been notified to review your proposed change.

@GitHubber17 : Thanks for your contribution! The author, @vhorne, has been notified to review your proposed change.


Apply changes to Photoshop legacy save as / open dialog boxes

The changes work for Windows Explorer windows, but the dialog boxes in Photoshop do not respect the changes. They do change in Photoshop, just not the same way as in Windows Explorer.

Is there any chance PhotoShop was still open when you ran WinSetView? Could it have still been running as a background process?

I tested PhotoShop 2023 and saw no problem at all. Even with PhotoShop open, the file open/save dialog view was changed to what I set in WinSetView.
Are you sure you don't have a separate view set for file dialogs in WinSetView? For example:

Also note that the file dialogs use code that provides a look and feel that is the same as the Windows 10 Explorer.
The Windows 11 Explorer has an updated look that only applies to Explorer. File dialogs retain the old style.

If you're still having an issue, please post a screenshot.

Closing. Can't duplicate. No replies from OP.


feat: syntactical support for lua 5.0

This PR is a first attempt at introducing support for Lua 5.0, a version that some older games remain stuck on. It adds a 5.0 LuaTarget that triggers the appropriate syntax for variadic arguments and length-checking and modulo operations.
Lua 5.0, while mostly similar to 5.1, is not forwards-compatible; it is not possible to write a transpiler that is simultaneously compatible with both 5.0 and 5.1 syntax. Hence, if you choose to accept support for 5.0, you might also need to rename the "Universal" target to something more descriptive, like "5.1+".
Next steps: Adding tests, adding the appropriate type annotations for the 5.0 standard library to the lua-types package, and updating lualib to be 5.0-compatible.

I guess for this PR it is not yet required. But in the future we will need to add 5.0 to our WASM bindings, that way we can run tests for 5.0 properly.

I've submitted the type declarations with pull request https://github.com/TypeScriptToLua/lua-types/pull/59.

Okay, so here's a status update on this porting effort:

[X] Added a 5.0 mode to TSTL.
[X] Added type declarations for the 5.0 standard library (https://github.com/TypeScriptToLua/lua-types/pull/59).
[X] Made lualib compatible with 5.0 (see my branch here; file another PR after merging this one?).

Still to do:

[ ] Lualib is currently only built for the universal target, which is not compatible with 5.0's syntax. We need to ship a second copy of lualib built for the 5.0 target.

Okay, so here's a status update on this porting effort:

[X] Added a 5.0 mode to TSTL.
[X] Added type declarations for the 5.0 standard library (https://github.com/TypeScriptToLua/lua-types/pull/59).
[X] Made lualib compatible with 5.0 (see my branch here; file another PR after merging this one?).

Still to do:

[ ] Lualib is currently only built for the universal target, which is not compatible with 5.0's syntax. We need to ship a second copy of lualib built for the 5.0 target.
[ ] Add bindings to test against the 5.0 interpreter (with @lolleko).
[ ] Update the documentation.

FYI: I added bindings for 5.0 a while back, you can bump the lua-wasm-bindings package in this repo to 0.2.3-rc.0. You have to adapt our test framework a little to also run tests for 5.0. Let me know if you need help with that.

Ok, so I've integrated my lualib changes and added a second lualib build specifically for 5.0. I've also made the necessary changes to the testing framework to run against the new 5.0 bindings.  With https://github.com/TypeScriptToLua/lua-wasm-bindings/pull/3 applied, most of these tests pass! And you can now run TSTL to transpile to 5.0-compatible code.
That means we have:

[x] Working syntax transpilation for 5.0
[x] Type declarations for 5.0
[x] Lualib ported to 5.0
[x] Lua bindings for 5.0 (including the ability to inject transpiled files, which in 5.0 has to happen via the _LOADED table rather than package.preload)
[x] The ability to output code for 5.0

So, we're almost at the finish line. All that's left to do is:

[ ] Investigate the remaining failing tests
[ ] Update the project documentation

Some of the failures seem to have something to do with a failing lualib import:
[string "local function __TS__ArrayIsArray(value)..."]:2598: `}' expected (to close `{' at line 2490) near `<eof>'

It's as if the last line of the lualib_bundle.lua file is cut off, because it loads just fine when fed to the real interpreter. Is the end of the string being corrupted when passed through the C API, somehow? I have spent some hours investigating to no avail.

All tests should pass with the latest commits.

I do not agree with this 'one lualib for all versions' setup. I much prefer the way it was set up before, where there was a separate src/lualib/lua50 directory with 5.0 specific lualib functions (if required). The transpiler can then decide which files (or which bundle) to emit based on the target.

I agree that ideally we wouldn't need to bother with any runtime checks, but I can't identify an easy way to switch between non-5.0 and 5.0 source code, while keeping import paths and other metadata intact. Lualib just isn't structured that way; I'll need more time to study the issue. In the meantime, I've replaced the exported constant with checks that use the built-ins with https://github.com/TypeScriptToLua/TypeScriptToLua/pull/1263/commits/fdcea36ba61659580a8f53c8734b97c391ba2104.

I managed to achieve different source files for different Lua targets with https://github.com/TypeScriptToLua/TypeScriptToLua/pull/1263/commits/f390622c5b7d50376cb5d121a957162c55f31657! I used tsconfig.json's rootDirs feature while also stripping the sub-directories from the output paths as they are passed through the build plugin. This way, we have no version-specific branches or runtime checks.

I've addressed all feedback and believe this is ready for a re-review.
You need https://github.com/TypeScriptToLua/lua-types/pull/75 and https://github.com/TypeScriptToLua/lua-wasm-bindings/pull/5 to get the tests to pass.


Api doc

Main object
Description
Pull request to autodoc repo from docstrings using Sphinx.
The current output of the build can be viewed at https://mhu-coder.github.io/AsSteroid/
The docstrings follow the google format (example available at https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html). In terms of content, it may be nice to settle on a clear idea before the code base becomes too large. What do you think?
The theme is read-the-doc, which can be changed and is independent of Sphinx.
There are few things I am not quite sure about in what I have written in the docstrings but we can, hopefully, solve that during the code review process.
How to build the doc locally
cd docs
make doc
make html

Then open docs/build/html/index.html with your favourite browser
How to build the docs on travis
.travis.yml has been modified to deploy the doc to github pages. However, you may need to set up an access token from github and name it GITHUB_PAGES on travis to allow travis to publish on github.
Token creation
On github, click on icon -> settings.
On the settings page, click on the Developper settings tab (in the left, possibly the one at the very bottom the the list)
Then click on the Personal access token tab on the left, then on the Generate new token button.
When selecting the scope repo --> public_repo is sufficient for travis to push to github.
Then click on Generate token at the bottom of the page.  Keep window open as you won't be able to access the token if you leave the window.
Add token on travis
Go to your project dashboard (the one displays the job logs) and click on More options --> settings.
In the section Environment variable, name the new variable GITHUB_PAGES and paste the value displayed on github to the Value field.
Minor doc-unrelated changes
Pylint
pylint has been added to requirement.txt.
pylintc has been created to limit line length to 80 chars and white list torch (I got errors for every single use of torch.mean, torch.sum, etc.
Numpy version
I had to freeze version of numpy to 1.16.4 to install pytorch-lightning <IP_ADDRESS> (as this specific version of numpy is required by pytorch-lightning).
PyPESQ
I had to remove pypesq from requirements.txt as pip install -r requirements.txt crashed with the error message:
ERROR: Command errored out with exit status 1:
   command: /Users/mathieu/anaconda/envs/assteroid/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/t_/bz57k6n56gv9wc910p_npgqm0000gn/T/pip-install-zdh6058_/pypesq/setup.py'"'"'; __file__='"'"'/private/var/folders/t_/bz57k6n56gv9wc910p_npgqm0000gn/T/pip-install-zdh6058_/pypesq/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/t_/bz57k6n56gv9wc910p_npgqm0000gn/T/pip-wheel-hu3wkctc --python-tag cp36
       cwd: /private/var/folders/t_/bz57k6n56gv9wc910p_npgqm0000gn/T/pip-install-zdh6058_/pypesq/
  Complete output (19 lines):
  running bdist_wheel
  running build
  running build_py
  file numpy.py (for module numpy) not found
  creating build
  creating build/lib.macosx-10.7-x86_64-3.6
  creating build/lib.macosx-10.7-x86_64-3.6/pypesq
  copying pypesq/__init__.py -> build/lib.macosx-10.7-x86_64-3.6/pypesq
  file numpy.py (for module numpy) not found
  running build_ext
  building 'pesq_core' extension
  creating build/temp.macosx-10.7-x86_64-3.6
  creating build/temp.macosx-10.7-x86_64-3.6/pypesq
  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/mathieu/anaconda/envs/assteroid/include -arch x86_64 -I/Users/mathieu/anaconda/envs/assteroid/include -arch x86_64 -I/Users/mathieu/anaconda/envs/assteroid/include/python3.6m -I/private/var/folders/t_/bz57k6n56gv9wc910p_npgqm0000gn/T/pip-install-zdh6058_/pypesq/.eggs/numpy-1.17.4-py3.6-macosx-10.7-x86_64.egg/numpy/core/include -c pypesq/pesq.c -o build/temp.macosx-10.7-x86_64-3.6/pypesq/pesq.o
  pypesq/pesq.c:2:25: fatal error: arrayobject.h: No such file or directory
   #include "arrayobject.h"
                           ^
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pypesq

Oh that's huge, thanks a lot !
I'll need some time to read all and approve all of it, sorry in advance for the delay.
Thanks a thousand

Seems ok for wav.py. Thanks @mhu-coder . Will try to keep the doc string consistent.

@mhu-coder thanks again, it's a lot of work.

I changed minor things on the docstrings and the external links.
I didn't go through the token creation yet, but the docs are looking great locally :-)
Didn't look into pylint yet either, will do.
I'm also looking into the pypesq installation problem on Mac. Hopefully I'll come up with the solution soon, it sounds familiar.
The new version of pytorch-lightning (which I will switch to very soon) remove the strictness on the numpy version.


Use fuzzy translations in compilemessages

The reason is that otherwise compilemessage is too strict. I just had
the situation where the string "Forgot password" was translated to
"Passwort vergessen?". Without fuzzy translations, this entry will be
ignored, because the original string doesn't end with ? but the
translated one does.

@schtibe and me decided to not merge this pull request because sometimes fuzzy strings are very bad translations.


WARNING (MainThread)

After the last update there are a lot of messages

22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Unknown option 'base_topic' for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'external_converters' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'devices' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'groups' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'homeassistant' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'permit_join' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'advanced' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'device_options' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'blocklist' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'passlist' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'queue' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'frontend' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'experimental' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'availability' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Unknown option 'base_topic' for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'external_converters' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'devices' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'groups' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'homeassistant' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'permit_join' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'advanced' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'device_options' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'blocklist' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'passlist' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'queue' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'frontend' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'experimental' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'availability' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Unknown option 'base_topic' for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'external_converters' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'devices' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'groups' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'homeassistant' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'permit_join' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'advanced' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)
22-04-01 13:45:52 WARNING (MainThread) [supervisor.addons.options] Option 'device_options' does not exist in the schema for Zigbee2mqtt (45df7312_zigbee2mqtt)

I can confirm
After update to V 1.25.0-1 i have several errors and problems

Like @salopette, numerous warnings in the supervisor log
10 IKEA LED1650R5 go offline
1 sonoff zigbee 3.0 usb dongle plus, flashed as router go offline

After that, i update the coordinator-firmware (also sonoff zigbee 3.0 usb dongle plus) with the new firmware from today, but the problems remain
@Koenkk what have we done false?

It seems to me that within the configuration tab of the 'Zigbee2MQTT' addon the following lines need to be present (and the rest removed):
data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: '-d -d'
  log: false
mqtt:
  server: mqtt://core-mosquitto:1883
serial:
  port: [your reference to the used usb port]

As you could have read in the zigbee1mqtt release notes there are breaking changes in this update. I'm having a hard time understanding the steps to be taking to get things up and running again

I read the breaking changes but i cant find in the three points a notice to this problems

sorry Gerd, I was responding to the topic starter.

⚠ Breaking changes
Most Zigbee2MQTT configuration is now done in Zigbee2MQTT directly (either via the UI or by modifying the configuration file, usually /config/zigbee2mqtt/configuration.yaml, directly).

As Zigbee2MQTT won't start with an MQTT server or serial adapter you must configure these through the add-on configuration page before you can start Zigbee2MQTT for the first time.
Existing installations should be able to safely remove the Zigbee2MQTT configuration from the add-on configuration as these values should have already been persisted to the configuration file.
It's everything. You simply have to delete from config this lines which you have error. It's now done by zigbee2mqtt itself.

It's everything. You simply have to delete from config this lines which you have error. It's now done by zigbee2mqtt itself.

I reduce the config-Code to
data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: '-d -d'
  log: false
mqtt:
  server: mqtt://core-mosquitto:1883
serial:
  port: /dev/ttyUSB0

I cant't delete the code completely, because then I get an error message:

But that doesn't solve the problem either

It seems to me that within the configuration tab of the 'Zigbee2MQTT' addon the following lines need to be present (and the rest removed):

data_path: /config/zigbee2mqtt

socat:

  enabled: false

  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777

  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5

  options: '-d -d'

  log: false

mqtt:

  server: mqtt://core-mosquitto:1883

serial:

  port: [your reference to the used usb port]

Can confirm that this works.

Stop the addon
Update it to 1.25
Change configuration as mentioned by ikke zelf
Start the addon
Worked well on my side

Thx works for me!

When i changed it to what is writen above my whole config is gone!

When i changed it to what is writen above my whole config is gone!

How do you mean, gone? Is the config.yaml file in /config/zigbee2mqtt gone? Is your addon config gone?

If I put this config in my zigbee2mqtt 1.25.0-1 and also the below in the config folder it doesn't work.
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
mqtt:
server: mqtt://core-mosquitto:1883
serial:
port: /dev/ttyACM0
And these is config.yaml in the zigbee2mqtt map
{
"external_converters": [],
"devices": [
"devices.yaml"
],
"groups": [
"groups.yaml"
],
"homeassistant": true,
"permit_join": false,
"mqtt": {
"base_topic": "zigbee2mqtt",
"server": "mqtt://core-mosquitto:1883",
"user": "mqtt",
"password": "XXXXXXXX"
},
"serial": {
"port": "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2225559-if00",
"adapter": "deconz"
},
"advanced": {
"log_level": "info",
"pan_id": 6754,
"channel": 11,
"network_key": [
1,
3,
5,
7,
9,
11,
13,
15,
0,
2,
4,
6,
8,
10,
12,
13
],
"availability_blocklist": [],
"availability_passlist": []
},
"device_options": {},
"blocklist": [],
"passlist": [],
"queue": {},
"frontend": {
"port": 8099
},
"experimental": {},
"availability": false
}
then i need to restore a backup from mosquitobroker.
And then restore the config in the configuration tab again as it was before the upgrade to 1.25.0-1 and restore it in the configuration tab to make it work again, otherwise my whole zigbee2mqtt is empty and all my devices are gone

If I put this config in my zigbee2mqtt 1.25.0-1 and also the below in the config folder it doesn't work.
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
mqtt:
server: mqtt://core-mosquitto:1883
serial:
port: /dev/ttyACM0
And these is config.yaml in the zigbee2mqtt map
{
"external_converters": [],
"devices": [
"devices.yaml"

],
"groups": [
"groups.yaml"

],
"homeassistant": true,
"permit_join": false,
"mqtt": {
"base_topic": "zigbee2mqtt",

"server": "mqtt://core-mosquitto:1883",

"user": "mqtt",

"password": "XXXXXXXX"

},
"serial": {
"port": "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2225559-if00",

"adapter": "deconz"

},
"advanced": {
"log_level": "info",

"pan_id": 6754,

"channel": 11,

"network_key": [

  1,

  3,

  5,

  7,

  9,

  11,

  13,

  15,

  0,

  2,

  4,

  6,

  8,

  10,

  12,

  13

],

"availability_blocklist": [],

"availability_passlist": []

},
"device_options": {},
"blocklist": [],
"passlist": [],
"queue": {},
"frontend": {
"port": 8099

},
"experimental": {},
"availability": false
}
then i need to restore a backup from mosquitobroker.
And then restore the config in the configuration tab again as it was before the upgrade to 1.25.0-1 and restore it in the configuration tab to make it work again, otherwise my whole zigbee2mqtt is empty and all my devices are gone

Wauw, you do not change your config.yaml file! Only change the config in the addon configuration tab. Al other data is entered and stored automatically from within the Z2M GUI.

i didn't change config.yaml that was all these before the upgrade
{
"external_converters": [],
"devices": [
"devices.yaml"
],
"groups": [
"groups.yaml"
],
"homeassistant": true,
"permit_join": false,
"mqtt": {
"base_topic": "zigbee2mqtt",
"server": "mqtt://core-mosquitto:1883",
"user": "mqtt",
"password": "XXXXXXXX"
},
"serial": {
"port": "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2225559-if00",
"adapter": "deconz"
},
"advanced": {
"log_level": "info",
"pan_id": 6754,
"channel": 11,
"network_key": [
1,
3,
5,
7,
9,
11,
13,
15,
0,
2,
4,
6,
8,
10,
12,
13
],
"availability_blocklist": [],
"availability_passlist": []
},
"device_options": {},
"blocklist": [],
"passlist": [],
"queue": {},
"frontend": {
"port": 8099
},
"experimental": {},
"availability": false
but it was always the same in my addon configuration tab.
And so I had now adjusted to what was above
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
mqtt:
server: mqtt://core-mosquitto:1883
serial:
port: /dev/ttyACM0
So when this is in my configuration addon tab it doesn't work and I don't see any devices anymore.

"port": "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2225559-if00"

In your original config your port is: "port": "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2225559-if00".
Maybe you should change this in the current addon config.

Already tried but it doesn't help.
Have it now also in both /dev/ttyACM0
So in my config.yaml it's also there and in the config tab too.
Both are now the same again.
So in my configuration tab in the add on there is now the long config and then everything works
Because with the small config in the configuration tab it doesn't work for me unfortunately

Already tried but it doesn't help.
Have it now also in both /dev/ttyACM0
So in my config.yaml it's also there and in the config tab too.
Both are now the same again.
So in my configuration tab in the add on there is now the long config and then everything works
Because with the small config in the configuration tab it doesn't work for me unfortunately

Hmm.. And if you try this in the addon config?:
serial: /path to adapter
adapter: deconz
https://www.zigbee2mqtt.io/guide/adapters/#recommended

Doesnt work!
in log is these
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x5c0272fffed9bf67/action_2_double/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x5c0272fffed9bf67/action_3_double/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/action_single/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/click_single/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/action_double/config', payload 'null'

Doesnt work!
in log is these
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x5c0272fffed9bf67/action_2_double/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x5c0272fffed9bf67/action_3_double/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/action_single/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/click_single/config', payload 'null'
Zigbee2MQTT:info  2022-04-02 01:01:49: MQTT publish: topic 'homeassistant/device_automation/0x00158d00067c4034/action_double/config', payload 'null'

Alright, with al due respect, I can't work with 'doesn't work'..
Please post the complete HA-addon config which is working and the complete config.yaml file which is working from /config/zigbee2mqtt.
In

HA adon config:
data_path: /share/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/dev/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
restartdelay: 1
initialdelay: 1
mqtt:
base_topic: zigbee2mqtt
server: mqtt://core-mosquitto:1883
user: mqtt
password: XXXXXXXX
serial:
port: /dev/ttyACM0
adapter: deconz
external_converters: []
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: false
advanced:
log_level: warn
pan_id: 6754
channel: 11
network_key:
- 1
- 3
- 5
- 7
- 9
- 11
- 13
- 15
- 0
- 2
- 4
- 6
- 8
- 10
- 12
- 13
availability_blocklist: []
availability_passlist: []
ikea_ota_use_test_url: true
lpog_level: info
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
port: 8099
experimental:
new_api: true
availability: false
And config.yaml
external_converters: []
devices:

devices.yaml
groups:
groups.yaml
homeassistant: true
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://core-mosquitto:1883
user: mqtt
password: Vernes_5213!
keepalive: 60
reject_unauthorized: true
version: 4
serial:
port: /dev/ttyACM0
adapter: deconz
advanced:
log_level: info
pan_id: 6754
channel: 11
network_key:

1
3
5
7
9
11
13
15
0
2
4
6
8
10
12
13
availability_blocklist: []
availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
port: 8099
experimental: {}
availability: false

Thanks mate. Gonna check this tomorrow in the afternoon to (hopefully) help you out. I'm now gonna take a nap.

Could somebody please update the documentation page of this addon. I think it shows all kind of configurations that no longer exists and the configuration that should be done after the breaking change is not documented at all. What a strange release.

Thanks mate. Gonna check this tomorrow in the afternoon to (hopefully) help you out. I'm now gonna take a nap.

Mate i found the problem.
if you reset to default values, there will be a wrong data_path with me. (I'm running homeassistant on a nuc and homeassistant is on it standalone no docker)
Default is: data_path: /config/zigbee2mqtt
But in my old tab it said: data_path: /share/zigbee2mqtt
Now I have modified the data_path like :
data_path: /share/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
mqtt:
server: mqtt://core-mosquitto:1883
serial:
port: /dev/ttyACM0
And now it works! :D

Thanks mate. Gonna check this tomorrow in the afternoon to (hopefully) help you out. I'm now gonna take a nap.

Mate i found the problem.
if you reset to default values, there will be a wrong data_path with me. (I'm running homeassistant on a nuc and homeassistant is on it standalone no docker)
Default is: data_path: /config/zigbee2mqtt
But in my old tab it said: data_path: /share/zigbee2mqtt
Now I have modified the data_path like :
data_path: /share/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: '-d -d'
log: false
mqtt:
server: mqtt://core-mosquitto:1883
serial:
port: /dev/ttyACM0
And now it works! :D

Good to hear that you found a fix! 😃


[SPARK-17071][SQL] Add an option to support for reading schemas in Parquet within driver-side without another Spark job

What changes were proposed in this pull request?
It seems Spark executes another job to figure out schema always (ParquetFileFormat#L739-L778).
However, it seems it's a bit of overhead to touch only a small number of files.
This PR make Parquet data source touch a small number of files to infer schema within driver-side without launching another Spark job with an new option, spark.sql.parquet.readSchemaLocalThreshold.
I ran a benchmark with the code below:
test("Benchmark for Parquet reader") {
  withTempPath { path =>
    Seq((1, 2D, 3L, "4")).toDF("a", "b", "c", "d")
      .write.format("parquet").save(path.getAbsolutePath)

    val benchmark = new Benchmark("Parquet - read schema", 1)
    benchmark.addCase("Parquet - read schema", 10) { _ =>
      spark.read.format("parquet").load(path.getCanonicalPath).schema
    }
    benchmark.run()
  }
}

with the results as below:

Before
Parquet - read schema:                   Best/Avg Time(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------
Parquet - read schema                           47 /   49          0.0    46728419.0       1.0X

After
Parquet - read schema:                   Best/Avg Time(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------
Parquet - read schema                            2 /    3          0.0     1811673.0       1.0X

It seems it became ~25X faster (although It is a small bit in total job run-time).
As a reference, it seems ORC is doing this within driver-side OrcFileOperator.scala#L74-L83.
How was this patch tested?
Existing tests should cover this

Test build #63828 has started for PR 14660 at commit e1214d5.

Test build #63828 has finished for PR 14660 at commit e1214d5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/63828/
Test PASSed.

cc @rxin and @liancheng , Could you take a look?

Thank you so much. I will try to address the comments.

Test build #63843 has started for PR 14660 at commit ed310e0.

Test build #63844 has started for PR 14660 at commit 24024f6.

Test build #63843 has finished for PR 14660 at commit ed310e0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/63843/
Test PASSed.

Merged build finished. Test PASSed.

Test build #63844 has finished for PR 14660 at commit 24024f6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/63844/
Test PASSed.

Test build #63895 has started for PR 14660 at commit 0130c39.

Test build #63895 has finished for PR 14660 at commit 0130c39.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/63895/
Test PASSed.

@rxin Let me try another benchmark to find out the proper default value if this looks good. Meanwhile, I would appreciate it if you take another look.

Test build #64063 has started for PR 14660 at commit 1297a91.

Test build #64063 has finished for PR 14660 at commit 1297a91.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64063/
Test PASSed.

ping @rxin and @liancheng

Gentle ping @liancheng

Hi @rxin @liancheng , could you take another look please?

gentle ping @liancheng

@liancheng Would there be other things maybe I should take care of?

Could you please take a look please @rxin and @liancheng?

(ping @liancheng ..)

ping ..

Is this worth doing, given it's only a small fraction of the total job's time?

@rxin, I thought reading a small file is a possible corner case. In this case, it would not be only a small fraction. Improving it without a regression might be a legitimate optimization by preventing to launch another job.
It is true that in such (or most cases) users would just tolerate the elapsed time but I guess we have added such improvements time to time to improve the performance in general bit by bit.
spark.sql.sources.parallelPartitionDiscovery.threshold might be the option for the similar cases.
I guess this PR does not introduce another a bunch of newly added codes to maintain more but just use the original codes.

(@rxin, gentle ping..)

Test build #75459 has started for PR 14660 at commit 8ec13c9.

@rxin, I think there are no downside vs what it improves. Do you mind if I ask reconsider this?
If you think it is still not worth being added, I will close, resolve the JIRA and leave some comments in the similar PRs proposing this change in the future.

Test build #75459 has finished for PR 14660 at commit 8ec13c9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/75459/
Test PASSed.

Merged build finished. Test PASSed.

@HyukjinKwon We do not want to introduce many SQLConf, if this is only a small fraction of a whole workload. Our current focus is on OLAP-like workloads. Could you first close this PR? We can revisit this later if more people realize this is a big performance issue.

Sure, I am closing this for now.