[Bug]: Speculative sampling does not excatly maintain the distribution

Your current environment

The output of `python collect_env.py`
Collecting environment information...
PyTorch version: 2.4.0+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.6 LTS (x86_64)
GCC version: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Clang version: Could not collect
CMake version: version 3.30.2
Libc version: glibc-2.31

Python version: 3.10.14 | packaged by conda-forge | (main, Mar 20 2024, 12:45:18) [GCC 12.3.0] (64-bit runtime)
Python platform: Linux-5.15.0-1052-aws-x86_64-with-glibc2.31
Is CUDA available: True
CUDA runtime version: 12.1.105
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration:
GPU 0: NVIDIA A10G
GPU 1: NVIDIA A10G
GPU 2: NVIDIA A10G
GPU 3: NVIDIA A10G
GPU 4: NVIDIA A10G
GPU 5: NVIDIA A10G
GPU 6: NVIDIA A10G
GPU 7: NVIDIA A10G

Nvidia driver version: 535.104.12
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Byte Order:                         Little Endian
Address sizes:                      48 bits physical, 48 bits virtual
CPU(s):                             192
On-line CPU(s) list:                0-191
Thread(s) per core:                 2
Core(s) per socket:                 48
Socket(s):                          2
NUMA node(s):                       2
Vendor ID:                          AuthenticAMD
CPU family:                         23
Model:                              49
Model name:                         AMD EPYC 7R32
Stepping:                           0
CPU MHz:                            3276.100
BogoMIPS:                           5599.99
Hypervisor vendor:                  KVM
Virtualization type:                full
L1d cache:                          3 MiB
L1i cache:                          3 MiB
L2 cache:                           48 MiB
L3 cache:                           384 MiB
NUMA node0 CPU(s):                  0-47,96-143
NUMA node1 CPU(s):                  48-95,144-191
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Mitigation; untrained return thunk; SMT enabled with STIBP protection
Vulnerability Spec rstack overflow: Mitigation; safe RET
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Retpolines, IBPB conditional, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr rdpru wbnoinvd arat npt nrip_save rdpid

Versions of relevant libraries:
[pip3] numpy==1.26.4
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] pyzmq==26.1.0
[pip3] torch==2.4.0
[pip3] torchvision==0.19.0
[pip3] transformers==4.44.0
[pip3] triton==3.0.0
[conda] numpy                     1.26.4                   pypi_0    pypi
[conda] nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
[conda] pyzmq                     26.1.0          py310h7d2b5bf_0    conda-forge
[conda] torch                     2.4.0                    pypi_0    pypi
[conda] torchvision               0.19.0                   pypi_0    pypi
[conda] transformers              4.44.0                   pypi_0    pypi
[conda] triton                    3.0.0                    pypi_0    pypi
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.4@4db5176d9758b720b05460c50ace3c01026eb158
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0    GPU1    GPU2    GPU3    GPU4    GPU5    GPU6    GPU7    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      PHB     PHB     PHB     PHB     PHB     PHB     PHB     0-191   0-1             N/A
GPU1    PHB      X      PHB     PHB     PHB     PHB     PHB     PHB     0-191   0-1             N/A
GPU2    PHB     PHB      X      PHB     PHB     PHB     PHB     PHB     0-191   0-1             N/A
GPU3    PHB     PHB     PHB      X      PHB     PHB     PHB     PHB     0-191   0-1             N/A
GPU4    PHB     PHB     PHB     PHB      X      PHB     PHB     PHB     0-191   0-1             N/A
GPU5    PHB     PHB     PHB     PHB     PHB      X      PHB     PHB     0-191   0-1             N/A
GPU6    PHB     PHB     PHB     PHB     PHB     PHB      X      PHB     0-191   0-1             N/A
GPU7    PHB     PHB     PHB     PHB     PHB     PHB     PHB      X      0-191   0-1             N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

🐛 Describe the bug
At temperature 0, I would expect that a model with and without speculative decoding results in exactly the same generation. At least the theory suggests that and I did not see a warning that the implementation would not.
But in the example below (which is close to the example in the documentation), the output actually differs (marked in bolt where it starts to differ).
Target model alone:
from vllm import LLM, SamplingParams
llm = LLM(
    model="facebook/opt-6.7b",
    tensor_parallel_size=1,
    use_v2_block_manager=True,
)

sampling_params = SamplingParams(temperature=0, ignore_eos=True, max_tokens=128)

prompts = [
    "I am at KDD conference in Barcelona. After the conference tutorial today I will",
]
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Generated text: {generated_text!r}")

generates

Generated text: ' be presenting a paper on the topic of “The role of the brain in the development of the human body”. The paper is based on my PhD thesis, which I defended in December.\n\nThe paper is about the role of the brain in the development of the human body. The brain is the most complex organ in the human body. It is the organ that controls the body’s functions. The brain is also the organ that is most difficult to study.\n\nThe brain is the organ that controls the body’s functions.\n\nThe brain is also the organ that is most difficult to study.'

With SD
from vllm import LLM, SamplingParams
llm = LLM(
    model="facebook/opt-6.7b",
    tensor_parallel_size=1,
    speculative_model="facebook/opt-125m",
    num_speculative_tokens=4,
    use_v2_block_manager=True,
)

sampling_params = SamplingParams(temperature=0, ignore_eos=True, max_tokens=128)

prompts = [
    "I am at KDD conference in Barcelona. After the conference tutorial today I will",
]
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Generated text: {generated_text!r}")

generates

Generated text: ' be presenting a paper on the topic of “The role of the brain in the development of language”. The paper is based on my PhD thesis, which I defended in December.\n\nThe paper is about the role of the brain in the development of language. I will present the results of my research on the role of the brain in the development of language. I will present the results of my research on the role of the brain in the development of language.\n\nThe paper is about the role of the brain in the development of language. I will present the results of my research on the role of the brain in the'

@cadedaniel is this known / expected?

Hi @jmkuebler. Thanks for trying it out and sharing your results.
The expectation in vLLM is that the distribution mostly matches the target distribution. This can be split out into three different layers:

Theoretical losslessness -- what are the theoretical guarantees of speculative decoding
vLLM algorithmic losslessness -- what are the guarantees of speculative decoding in vLLM given vLLM's fwd pass implementation
vLLM logprob stability -- what are the guarantees provided by vLLM's fwd pass implementation

For (1), the sampling is lossless up to hardware numerics, see "Modified Rejection Sampling" from Accelerating Large Language Model Decoding with Speculative Sampling. This means that floating-point error can accumulate differently and cause differences in the output distribution. This may be enough to cause the difference in your two completions, but I suspect it's actually in (3).
For (2), we have tests that validate vLLM's algorithmic implementations of speculative decoding perform as expected. Specifically, we have two categories of tests:
a. Test that verifies samples from the rejection sampler converge to the target distribution. Introduced in https://github.com/vllm-project/vllm/pull/2336. This verifies that vLLM's rejection sampler provides a lossless guarantee. Code https://github.com/vllm-project/vllm/blob/47b65a550866c7ffbd076ecb74106714838ce7da/tests/samplers/test_rejection_sampler.py#L252
b. Test that verify greedy sampling with speculative decoding is equal to greedy sampling without speculative decoding. This verifies that vLLM's speculative decoding framework, when integrated with the vLLM forward pass and the vLLM rejection sampler, provides a lossless guarantee. Code: Almost all of the tests in this directory verify this property: https://github.com/vllm-project/vllm/tree/b67ae00cdbbe1a58ffc8ff170f0c8d79044a684a/tests/spec_decode/e2e, assertion implementation: https://github.com/vllm-project/vllm/blob/b67ae00cdbbe1a58ffc8ff170f0c8d79044a684a/tests/spec_decode/e2e/conftest.py#L291
With both (a) and (b), we have reasonable confidence that vLLM's implementation of the algorithmic components in speculative decoding are lossless when temp=0. However, I've seen cases where changing the batch size can introduce small changes to the sampled tokens. This brings us to (3). (also this is noted here https://github.com/vllm-project/vllm/blob/47b65a550866c7ffbd076ecb74106714838ce7da/tests/spec_decode/e2e/test_multistep_correctness.py#L28-L34)
For (3), vLLM does not currently provide stable logprobs for the same prompt. Specifically they may change slightly as the batch size changes. I am not sure if this is due to a bug in the implementation or simply the numeric instability of torch operations like torch.bmm, as explained in "Numerical accuracy".
In summary, I believe the behavior you observe is expected as vLLM does not have stable logprobs over different batch sizes. It could also be a bug in the algorithmic implementations, which you can validate with the tests listed above.
P.S.

One testing gap in vLLM's speculative decoding implementation is verifying losslessness when sampling parameters are used, such as freq_penalty/topk/topp. We can add more tests here. But it doesn't seem related to the divergence you observe.
If you really need stable generation, I believe you can use request-seeds here https://github.com/vllm-project/vllm/pull/6034. But they have some impact on latency (not optimized).

@jmkuebler this looks like typical precision-related variance, i.e. the numeric instability that @cadedaniel referred to. When the same requests are batched differently, whether this is due to other concurrent requests being processed or the expanded batches used in spec decoding, the results aren't guaranteed to be identical even if they should be from a theoretical / math pov.
These precision differences manifest as slightly different logit/logprob values at each step, which at some point can result in a different token taking the top spot as you observed. Once a different token is chosen then further divergence is inevitable.
Try setting the dtype to float32 for both of these and the variance should be significantly reduced (but will need double the mem of course). If you're using bfloat16 you can switch to float16 which should be much more stable (but still less stable than float32).
Using seed shouldn't make any difference to greedy/temp=0 generation, but the above applies similarly when using a seed with temp>0.

@cadedaniel Would it be possible to formalize what you wrote here into the docs as opposed to just linking to youtube videos?

Sure, let me convert this issue into a documentation issue. I will try to get to it in the next few weeks. also cc @sroy745 .

@cadedaniel Thank you so much for the fast and detailed answer!
After reading your reply I agree that this is solely a documentation issue. It's not a practical problem, I was just surprised by the observation because I did not have the numerical aspects in mind.

@cadedaniel I think your explanation hits the root cause. I read out the logprobs for my prompt (only possible for target model alone as it is not possible for the multi-step worker used for SpecDec). Here is the  top 2 logprobs for the token at which the deviation happens:
 {5: Logprob(logprob=-3.157238483428955, rank=2, decoded_token=' the'),
  2777: Logprob(logprob=-3.157238483428955, rank=1, decoded_token=' language')},

I have checked, they are actually exactly the same floating point numbers! So therefore, greedy decoding would actually be ambiguous.
Curiously, for this particular token, the first entry in the logprob dict is rank=2 while usually rank=1 goes first. But that might not mean anything.

@cadedaniel there might actually be a slight inconsistency:
without speculative decoding the rank is computed as with an > (https://github.com/vllm-project/vllm/blob/baaedfdb2d3f1d70b7dbcde08b083abfe6017a92/vllm/model_executor/layers/sampler.py#L801)
whereas with SD it seems it is done via an >= (https://github.com/vllm-project/vllm/blob/baaedfdb2d3f1d70b7dbcde08b083abfe6017a92/vllm/spec_decode/util.py#L46)
Could that be there reason and be sth we would want to align?

that could be a bug. but it is not used in the lossless algorithm, only in what is returned to the user. feel free to open an issue and/or pr!

@cadedaniel I did some further investigation.
I realize that this in fact has nothing to do with Speculative decoding, but it is numerical aspects.
I can track down the deviation to a single token. And apparently it makes a difference whether you push the last token through the model alone or with a larger batch (either in case of specdec above or by adding it to the prefil)
from vllm import LLM, SamplingParams
llm = LLM(
    model="facebook/opt-6.7b",
    tensor_parallel_size=1,
    use_v2_block_manager=True,
)

sampling_params = SamplingParams(temperature=0, ignore_eos=True, max_tokens=2, top_k=1)

prompts = [
        'I am at KDD conference in Barcelona. After the conference tutorial today I will be presenting a paper on the topic of “The role of the brain in the development',
]
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Generated text: {generated_text!r}")

sampling_params = SamplingParams(temperature=0, ignore_eos=True, max_tokens=1, top_k=1)

prompts = [
        'I am at KDD conference in Barcelona. After the conference tutorial today I will be presenting a paper on the topic of “The role of the brain in the development of',
]

outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Generated text: {generated_text!r}")

Gives:
Generated text: ' **of** language'

Generated text: ' **the**'

That's all happening also without Speculative decoding.

Nice find. Yep this is exactly what @njhill is talking about.

I've seen something similar with Medusa as well when using BF16: https://github.com/vllm-project/vllm/pull/4978/files#r1627603023. Might be related.

The root cause was identified to be numerics rather than a bug and documentation was added. Hence closing this issue.


Interop Issue: unable to find interpreter for launching Windows .exe files using Interop

Environment
Windows build number: Microsoft Windows [Version 10.0.19613.1005]
Your Distribution version: Release:        18.04
Whether the issue is on WSL 2 and/or WSL 1:Linux version 4.19.104-microsoft-standard (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Feb 19 06:37:35 UTC 2020

Steps to reproduce

Attempt to run Windows .exe that are in my WSL path:
~$ which code
/mnt/c/Users/gfinn/AppData/Local/Programs/Microsoft VS Code/bin/code

~$ code
run-detectors: unable to find an interpreter for /mnt/c/Users/gfinn/AppData/Local/Programs/Microsoft VS Code/Code.exe
Expected behavior
Windows executable would launch
Actual behavior
Error message shown above:
run-detectors: unable to find an interpreter for /mnt/c/Users/gfinn/AppData/Local/Programs/Microsoft VS Code/Code.exe

Maybe the contents of /proc/sys/fs/binfmt_misc/WSLInterop are relevant:
~$ cat /proc/sys/fs/binfmt_misc/WSLInterop
enabled
interpreter /tools/init
flags: F
offset 0
magic 4d5a
/tools/init does not exist
instead, init is in /
trying a cheap hack of creating /tools and symlinking to /init , or copying /init to /tools did not help.

This started after a Visual Studio Code upgrade.

/tools/init does not exist

That interpreter /tools/init is normal and correct, just nonobvious because of mount namespaces. It was a good avenue of attack though, so props for that.

This started after a Visual Studio Code upgrade.

Does notepad.exe launch, or do you get the same unable to find an interpreter error message? If notepad.exe fails too, it isn't the VS Code upgrade, it just felt like that.
No guesses for you off the cuff. If it really is just code then do a purge and reinstall of VS Code. If notepad.exe doesn't work either, this gets more curious.

Univeral problem, with the interop interpreter. cmd.exe, notepad.exe do not work, same error message. So, right, nothing to do with code.

Might have uncovered something:
$ mount | grep binfmt_misc
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1307)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)

systemd-1 on /proc/sys/fs/binfmt_misc type autofs

WSL isn't going to inject anything systemd related, anywhere. You probably have critically missing steps in the repro. To test that hypothesis, install a clean 20.04 (only because you're on 18.04 not for the upgrade), see if notepad.exe works.

I also have the similar issue starting today, I am unable to run any windows related executables.
I am using Linux 4.19.121-microsoft-WSL2-standard, Windows 10 20150.1000
Close docker for Windows(WSL2 backend) actually helps me, so it is possibly a docker related issue

so it is possibly a docker related issue

That data point helps a lot. Can you do the same mount | grep binfmt_misc as grogzoid did above and see if you have the mysterious systemd-1 in there also.

I've realized my issue is probably a self-inflicted wound from adding a
hack to get system working a few weeks ago. Should I close this?
On Wed, Jun 24, 2020 at 9:17 AM therealkenc<EMAIL_ADDRESS>wrote:

so it is possibly a docker related issue
That data point helps a lot. Can you do the same mount | grep binfmt_misc
as grogzoid did above and see if you have the mysterious systemd-1 in
there also.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/WSL/issues/5466#issuecomment-648920171, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADC4BYCNK4BGFG7MNQE4SG3RYIRIFANCNFSM4OFI6SNQ
.

@grogzoid If you are good on a clean install yes close.
@patrick330602 If you think you've got a "possibly docker related issue" open that up under a different cover. Try to narrow it down as much as you can first though. I run Windows docker with the WSL backend (as do thousands) and haven't encountered a "run-detectors: unable to find an interpreter: " error, but that doesn't mean there isn't something going on in your specific scenario.

Having two instances of the binfmt_misc filesystem mounted is going to cause issues.  I would try to determine where the second one is coming from.

I just wanted to mention I had this same problem, and none of the troubleshooting steps from above added any clues on how to solve.  But I had recently apt installed some things and went through those to see what I could see.  Turns out nuget added some libmono stuff that broke my interopability.   As soon as I removed that package, everything starting working again.
But I would add, the error message is a bit cryptic out-of-context.  Maybe it should mention something about WSL for those of us who are plain, old uninitiated mortals?

@jdknox I can't fix this problem by executing the following command:
sudo update-binfmts --disable cli

I am on a relatively fresh copy of ubuntu 20.04 in wsl2. I noticed it having this issue last night. I do not that I never installed docker inside the wsl environment, and enabled the wsl feature in docker for windows. When running some of the above commands I get these outputs:
❯ mount | grep binfmt_misc
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

libmono
❯ apt search libmono | grep -i installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libmono-btls-interface4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 amd64 [installed,automatic]
libmono-corlib4.5-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-i18n-west4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-i18n4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-security4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-configuration4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-core4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-numerics4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-security4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-xml4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]

I know I have been able to run say vscode through wsl before and worked fine. I discoverd the issue when trying to run it again and got the same error
❯ code-insiders .
run-detectors: unable to find an interpreter for /mnt/c/Users/shawn/AppData/Local/Programs/Microsoft VS Code Insiders/Code - Insiders.exe

If I run command in https://github.com/microsoft/WSL/issues/5466#issuecomment-695155716
sudo update-binfmts --disable cli

will that disable running the windows applications from the wsl cli?

restarting wsl with power shell > wsl --shutdown helped.

restarting wsl with power shell > wsl --shutdown helped.

thank you!

https://github.com/microsoft/WSL/issues/5466#issuecomment-741607590
This worked 100% for me.

restarting wsl with power shell > wsl --shutdown helped.

@jdknox I can fix this problem by executing the following command:
sudo update-binfmts --disable cli

This totally worked for me!

I am on a relatively fresh copy of ubuntu 20.04 in wsl2. I noticed it having this issue last night. I do not that I never installed docker inside the wsl environment, and enabled the wsl feature in docker for windows. When running some of the above commands I get these outputs:
❯ mount | grep binfmt_misc
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

libmono
❯ apt search libmono | grep -i installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libmono-btls-interface4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 amd64 [installed,automatic]
libmono-corlib4.5-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-i18n-west4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-i18n4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-security4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-configuration4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-core4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-numerics4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-security4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system-xml4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]
libmono-system4.0-cil/focal,now <IP_ADDRESS>+dfsg-2 all [installed,automatic]

I know I have been able to run say vscode through wsl before and worked fine. I discoverd the issue when trying to run it again and got the same error
❯ code-insiders .
run-detectors: unable to find an interpreter for /mnt/c/Users/shawn/AppData/Local/Programs/Microsoft VS Code Insiders/Code - Insiders.exe

If I run command in #5466 (comment)
sudo update-binfmts --disable cli

will that disable running the windows applications from the wsl cli?
EDIT: I tried the above command anyways, and it fixed the issue for me.

This fixed it for me after a libmono install. I installed glade which installed half of the Ubuntu repos in return. Happened to see libmono scroll by. Thanks for spotting that!

so it is possibly a docker related issue

That data point helps a lot. Can you post the output of mount | grep binfmt_misc as grogzoid did above and see if you have the mysterious systemd-1 and/or duplicate binfmt_misc entries.

I have the same issue without using docker, seems like dublicate files. am just trying to run manually vs code wis Ubuntu 20.04
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

I confirm Mono breaks it somehow. I just installed it and it broke my config.

man update-binfmts is helpful in answering the question about what sudo update-binfmts --disable cli will do.  update-binfmts --display cli -- It's the mono-runtime cli.

This also worked for me

restarting wsl with power shell > wsl --shutdown helped.

restarting wsl with power shell > wsl --shutdown helped.

This also worked for me

Yeah no idea why, but starting a PoweShell and then restarting a WSL shell allowed me back access to git lfs etc.

Thanks
update-binfmts --disable cli
Solved my problem 😁

It should be caused by the conflict with systemd.
Please check the file /etc/wsl.conf and see if the systemd = true flag was added under [boot] settings as shown below. If so, please switch it to false.

For more info, please refer to https://learn.microsoft.com/en-us/windows/wsl/wsl-config#per-distribution-configuration-options-with-wslconf

Uninstalling the mono-runtime package via sudo apt remove mono-runtime also resolves the issue.
See https://github.com/microsoft/WSL/issues/9257#issuecomment-1352443162

@jdknox I can fix this problem by executing the following command:
sudo update-binfmts --disable cli

For future info: After installing "mono-complete" on my WSL2, for dotnet programming in vscode, i had this same issue, and this command fixed it.

Thanks

update-binfmts --disable cli

Solved my problem.

solves the Problem just temporary... after windows reboot the Problem occurs again

Permanently solved by uninstalling mono-runtime.


When devise uses timeoutable there is a session error authenticating a stimulus web socket.

Bug Report
Describe the bug
When using devise with :timeoutable enabled via devise :database_authenticatable, :timeoutable warden throws an error trying to access the session to check last_request_at.
To Reproduce
Follow the directions for setting up devise with StimulusReflex.
Then add :timeoutable to the list of devise modules enabled in the model, in my case user.rb
Expected behavior
I expected it to only throw an error when last_request_at was too big when comparing it to the devise.rb config.
Screenshots or reproduction
# frozen_string_literal: true

module ApplicationCable
  # Default connection for ActionCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      Current.user = find_verified_user
      logger.add_tags 'ActionCable', Current.user.id
      self.current_user = Current.user
    end

    # this checks whether a user is authenticated with devise
    protected def find_verified_user
      verified_user = env['warden'].user
      return reject_unauthorized_connection if verified_user.blank?

      verified_user
    end
  end
end

# frozen_string_literal: true

# Application wide Reflex behavior
class ApplicationReflex < StimulusReflex::Reflex
  #
  # Example:
  #
  #   # If your ActionCable connection is: `identified_by :current_user`
  delegate :current_user, to: :connection
  delegate :render_with_signed_in_user, to: ApplicationController
  #
  # Learn more at: https://docs.stimulusreflex.com
end

E, [2021-02-01T16:15:13.832533 #31862] ERROR -- : [ActionCable] [2ede8d32-50b8-48c3-96ef-8da2dbac1a8a] StimulusReflex::Channel Failed to invoke CartsReflex#update_cart! http://infrared-test.lvh.me:3000/ undefined method `[]' for nil:NilClass /Users/foobar/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/proxy.rb:246:in `session'

If applicable, add screenshots (errors, example of the behavior, etc.) to help explain your problem or post a link to a repository that replicates the issue.
Versions
StimulusReflex

Gem: 3.3.0
Node package: 3.3.0

External tools

Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
Rails: Rails 6.1.1
Node: v15.4.0

Browser

Browser chrome
Version 88.0.4324.96 (Official Build) (x86_64)

Hi Evan,
This is a new one for me!
First: I urge you to upgrade to SR 3.4.1. It won't fix your problem, but it's so much better. :)
I'm going to need a bit more information about when and where this error is happening:

The error mentions the update_cart! action method. Could you please attach your Reflex class?
Is this error happening right away after you login, or does it only start after the timeout eg. if you come back to your page

I'm curious: how does timeoutable usually work with Turbolinks? Are you using Turbolinks? I am assuming that it tries to send you back to the login screen, but of course ActionCable has no idea wtf is going on...
I'm trying to figure out if there's any kind of callback possible from the timeoutable module that we could use to tell ActionCable to disconnect someone who's been logged out.

Here's how I would attack this...
https://github.com/heartcombo/devise/blob/master/lib/devise/hooks/timeoutable.rb
I would put a copy of timeoutable.rb in your config/initializers. Then on line 27, before Devise.sign_out_all_scopes, I would add this:
ActionCable.server.remote_connections.where(current_user: record).disconnect

After you restart puma, you should see that any connections are disconnected if the user goes to a new page and is logged out due to inactivity.

Hey @hadees, could you let me know how it went with my suggestions? I don't want to leave you hanging!

I don't like to close issues without knowing that they're resolved, but please know that we're here for you if this is somehow still a problem - we can always reopen later.


Blob Encryption bottleneck

It was reported that Blob Encryption was a bottleneck for publishing large files. For encryption we use Pycrypto which provides python interfaces for encryption algorithms written in C.
Quick improvements can likely be made by improving the lbrynet python code that calls Pycrypto by following some basic optimization tips https://wiki.python.org/moin/PythonSpeed/PerformanceTips.
This class is responsible for encrypting and decrypting blobs: https://github.com/lbryio/lbry/blob/master/lbrynet/cryptstream/CryptBlob.py
We could also consider alternative encryption algorithms that are faster than what we are using now (AES-128 CBC). Profiling along with research on the potential disadvantages should be considered.
This PR https://github.com/lbryio/lbry/pull/733 adds unit tests for CryptBlob.py in tests/unit/cryptstream/test_cryptblob.py which can be used as reference for writing tests for Encryption speed.
Currently I'm getting that it takes roughly 0.012 seconds to encrypt a blob (which is 2 megabytes) on my 6th gen i5 laptop. This means that it has a throughput of about 166 megabytes/second.  In this test, I did not write the blob to disk , which could be the actual bottleneck depending on the system.
Another point to note that improving performance of CryptBlob.py may not necessarily solve the bottleneck isssue. Their could be problems / inefficiencies in code that is using/calling CryptBlob.py.

Thanks I sent to wolf0

It would help if I could get some test code for the publish process which I can use to benchmark and identify possible speed improvements.

You could either look at the functional tests https://github.com/lbryio/lbry/blob/master/tests/functional/test_misc.py#L395 which sets up the minimum classes required to test upload/download
Or look at lbry-in-a-box https://github.com/lbryio/lbry-in-a-box which uses docker to setup everything required to run lbry in a single machine, more specifically, look at the integration testing we run on lbry-in-a-box where we test publishing:
https://github.com/lbryio/lbry-in-a-box/blob/master/integration_testing.py#L290

@akinwale please post your benchmark findings.  Thank you

Next step: profile encryption algo, figure out where the actual bottleneck is

@finer9 I was able to benchmark using the functional test at https://github.com/lbryio/lbry/blob/master/tests/functional/test_streamify.py#L117, particularly the create_stream function at https://github.com/lbryio/lbry/blob/master/tests/functional/test_streamify.py#L163
Using the default test value at ~50MB, I get the following results:
genfile took 0ms
create_lbry_file took 793ms
publish_sd_blob took 9ms

Using a value of 681,574,400 (~650MB) which is the size of a random 30-minute 1080p Youtube video I downloaded, I get the following results:
genfile took 0ms
create_lbry_file took 12788ms
publish_sd_blob took 30ms

It does appear that the create_lbry_file  method is creating the blobs serially, based on my observation of the log output from the _blob_finished  callback. Due to my limited familiarity with the architecture of the application at this point, and my limited experience with Python, I am unable to identify where the blobs are split and individually created, but I believe that if the process can be refactored to run in parallel, using multiple I/O threads or by forking the running process, this would definitely reduce the execution time.

I took a look at your code and did a similar test as @akinwale with a ~600MB file and a profiler (plop). Results can be seen here: http://imgur.com/a/KHkFZ
I used encrypt_blob.py script, which I fixed for splitting. Will do a PR if you agree it is broken (it was generating a single blob and stopping, instead of the whole thing).
If you modify BLOB_SIZE on conf.py to a huge value, then you will notice a time decrease. Here are my numbers for 601MB:

With BLOB_SIZE of 1000 MB, 8.3s
With default blob size of 2 MB, 13,96s

Decreasing the BLOB_SIZE to 1MB gave me another jump in time (18s). So the splitting overhead isn't just crypto and disk. From the profile pasted, it looks like you have too many components interacting in this tight loop with many instantiations. For a 600MB, that's 300 chunks. Some interesting part I found is this: https://github.com/lbryio/lbry/blob/906e6b238e737429f063ad5eaba369c98bd1148f/lbrynet/cryptstream/CryptStreamCreator.py#L77 which can be improved to create the writers in threads as suggested, but instead it is writing directly, blocking the caller (the reader).
There is also another side, the read size. It's controlled today by FileSender, which has a CHUNK_SIZE of 2**14, you can check it here.
On the next weekend or earlier (when I get some free time) I will try to dig deeper and optimize it. I still feel that the overhead is somewhere in the interaction between CryptStreamCreator, CryptBlob and HashBlob.
Now, some questions:

Why AES-CBC and SHA384? AES-GCM can provide integrity on the cipher itself, which also uses hardware acceleration on AES-NI devices. So you would remove the hashing overhead.
Does the blob creation always go disk->disk? Or there is a scenario where it's streamed to a server directly? If it's just disk->disk then I think a small script in pure python would be better. You could also use Cython to make this simpler loop faster.
Why do you use pycryptopp if Twisted already depends on cryptography library? This library also provides pbkdf2, which is in another dependency (although I can't see it being used).

Btw, that's my branch with encrypt_blob.py generating all blobs: https://github.com/shyba/lbry/tree/update_scripts
You can use it to profile, like this (supposing you already are in virtualenv):

pip install plop
cd scripts
python -m plop.collector encrypt_blob.py /tmp/test '61616161616161616161616161616161' '69696969696969696969696969696969'
python -m plop.viewer

Great comment, well written! @jackrobison and @kauffj prob should comment on this, i think we should keep the blob size small so we easily can get from multiple peers faster ( just my own thought )

Merged in https://github.com/lbryio/lbry/pull/898


Support projects with custom modules projectDir settings

Context
Some projects, for better organization, adds modules in the settings.gradle file with a custom projectDir. This allows better organization as we can add similar context modules to a common folder inside the parent project.
For example, you can use this:
fun includeModule(module: String, path: String? = null) {
    val moduleName = ":$module"
    include(moduleName)
    project(moduleName).apply {
        buildFileName = "$module.build.gradle.kts"
        path?.run {
            projectDir = File(path)
        }
    }
}

function to add new modules in the settings.gradle.kts file.
Problem description
Currently, the way that paparazzi-plugin works to find a path of a module on modulePath() is not aware that a module could be inside a sub-folder or using other custom gradle module folder configuration.
Solution (suggestion)
One simple way to fix this is to, instead the current implementation of get the first segment of the relative path of the file argument, we can actually search where the file is inside the Project.modules, and than, extract the module path with getModuleDir():
/**
 * Get the test module path that contains the file, searching in all project test modules.
 */
internal fun Project.modulePath(file: VirtualFile): String? {
    return modules
        .asSequence()
        .filter { it.isTestModule }
        .firstOrNull { File(it.getModuleDir()).walk().find { it.path == file.path } != null }
        ?.getModuleDir()
}

I wasn't able to push a Pull Request pointing to your main branch (main). Are you allowing Pull Request for it or do you have another branch that we should use for contributions?

I will take a look at this.
You should be able to contribute to the main branch. Just fork this repo, make the changes and raise a PR against the main branch.

@thsaravana Done!


fix build error on Ubuntu 14.04

libssl-dev is needed to be installed on Ubuntu or the build won't be succeed.

libssl-dev is needed to be installed on Ubuntu or the build won't be succeed.

Duplicate #126 :smile:

Oh my bad, it seems you fixed it just with libssl-dev and it work without libffi-dev.
Maybe your fix is better actually :+1:

@xcompass Is this ok for you ? :) It seems that no one could build Mattermost database image without this fix.

Sorry for the delay. I'm travelling right now and have limited internet access.
@FingerLiu
Per the CONTRIBUTING.md file displayed when you created this pull request, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
This is a standard procedure for many open source projects. Your form should be processed within 24 hours and reviewers for your pull request will be able to proceed.
Please let us know if you have any questions.
We are very happy to have you join our growing community!
Once you signed, I can merge your PR. Thanks for the contribution.

@pichouk I'm affraid both are needed. libffi-dev is required as well.

@bagage Have you more precision on this. Actually I just saw that it work without libffi-dev, I didn't know how this part works.

@pichouk It's strange behavior -- on one computer I had to add libffi-dev even after having added libssl-dev, while on another one only the latter was needed.

After some investigation, seems that libffi-dev is required.
You can see it on this build :
https://travis-ci.org/mattermost/mattermost-docker/jobs/233240904
The build failed with this :
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o
build/temp.linux-x86_64-2.7/_openssl.c:434:30: fatal error: openssl/opensslv.h: No such file or directory
 #include <openssl/opensslv.h>
                                  ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

This is fixed by adding libssl-dev.
But there is also another error :
Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fZZri7/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" clean --all:
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
 #include <ffi.h>

Which can be fixed by adding libffi-dev
So @bagage is right, we should add libffi-dev
@xcompass Considering this you can merge the initial pull request #126 and close this one. Or, if @FingerLiu added libffi-dev, merge this one and (re)close #126 :)

@pichouk ok, I will  do this toady.

@xcompass I added myself to the list of approved contributors . ^ ^

Thanks both! @pichouk @FingerLiu


Small tooltip changes

Changed the tooltip of the alphabetical sorting of the method list to be a little more descriptive.
Added periods to the tooltips in the Filesystem dock, as well as giving its search bar a placeholder.

Conflicts fixed, good to go!

@djrm should this be merged now?

yes, my PR was merged.


Unable to sync after enabling two factor authentication and cleaning up access tokens

Visual Studio Code Version : [ 1.10.2 ]
Code Settings Sync Version : [ 2.6.1 ]
Operating System : [ Windows 10 ]
Occurs On: [Help Configuring ]
Proxy Enabled: [  No ]
Debug console message:
extensionHost.ts:282[Extension Host] {"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}
I have the Gist ID and the access token for the settings sync Gist, and it's working fine from two different computers against the same Gist. However, after cleaning up personal access tokens and enabling two factor authentication on GitHub, I can't get it to sync on this other computer.
I tried resetting the settings in Settings Sync. After doing so, I'm prompted for the Gist Id when trying to sync. However, it fails with the same message after pressing Enter. It seems like a different token is being used when accessing the Gist from this computer. It suppose the issue could be solved by granting that token permissions on the Gist, but I can't find any options for that on the Gist web page.
The other option would be to change VS Code to use the personal access token which does have permissions, but I`m not prompted for the access token after resetting the Settings Sync Extension settings.
I'm sure there is an easy solution for this, but I`m stuck...any ideas?

U need to create new Token with GIST permission from github and then enter it.

The other option would be to change VS Code to use the personal access token which does have permissions, but I`m not prompted for the access token after resetting the Settings Sync Extension settings

When you reset the extension token and gist were removed, to download the settings you can enter your GIST ID. once you download your settings from that GIST then hit upload settings for one, it will ask for token at that time, but wont ask for GIST and upload the settings to that GIST using new token you have created.

Ah, that worked...thanks!


Add toggle to highlight owned squares on canvas

The user should have an option to easily highlight all their owned squares on the flatland
States:

Off: No change to current flatland behaviour
On: Squares owned by the user are given a border

I'm marking this done for now but there are a few things to consider:

Where should the element fit on the page
Is the ToggleButton component the best component for the job (visually and functionally)
Inverted colours have not been used but rather a gold highlight... Not sure if this is the right approach
There will be issues around selecting and deselecting squares which are highlighted (are these scenarios common enough to create work arounds?)


synching up a bit with containerd Makefile

Just modifying the containerd/cri Makefile so it has more synergy with the containerd/containerd Makefile
First PR doing some working on #1174
Signed-off-by: Mike Brown<EMAIL_ADDRESS>

LGTM


Test p2p node discover, p2p messages, gossip

Test all functionality related to DHT node discovery and p2p messages based on an approved test plan.
This epic also includes all automation issues that are required for running the test plan.
Done criteria:

All QA cycles are passing besides bugs that aren't considered as blockers (below certain majority level - TBD).

Sorry, didn't meant to close this issue.

@y0sher are all of these already being tested by our existing p2p system test?

Well, test plan was more elaborative than what haa been done so far. Currently we have happy flow tests. This issue doesn't represent this but we need more adversarial tests like dropping nodes/messages in the middle of the test and understanding the impact of it on propagation delay and cover.


nefcon: Add version 1.2.1

Windows device driver installation and management CLI tool.

[x] I have read the Contributing Guide.

/verify


Add number of contributions to graph

Overview
Right now, the contribution graph doesn't state the number of contributions. However, profile contribution graphs do.
Extra Detail
Screenshots

Reasoning
This would make the graph more accessible to those who may not be able to see the visual but still wish to feel the impact of the number of contributions.
How to Contribute

[ ] Comment on this issue if you'd like to work/collaborate on it!
[ ] Fork the repository.
[ ] Use the GitHub Flow to make changes to your fork. This is a refresher course if you're unsure about how to make a change on GitHub.
[ ] Push your changes to your repository.
[ ] Submit a Pull Request

Base Dropdown: github/training-kit
Compare Dropdown: Your fork

Testing Locally
If you'd like to make and test changes locally (and see how they would look if merged), do the following:

In your command line:

Install Git
Install Ruby
[ ] Run script/setup
[ ] Run script/server.

When successful, the script will initiate a local server at http://<IP_ADDRESS>:4000{{site.baseurl}}.

Questions?

@hectorsector since you started the contribution graph, do you have any thoughts on this? Also pinging @JasonEtco & @github/services-training for help.

This should be a fairly simple thing to implement, @brianamarie. Feel free to move it to my column!


Implement forward_volume and reverse_volume properties in Surface

This PR adds forward_volume and reverse_volume properties in the Surface class, which in turn rely on a lower-level surf_sense property. There was also a small bug in the get_volumes() method that is now fixed.

Looking at the original Surface.get_volumes method again, using a get_parent_meshsets call feels a little silly to me when the data is also stored as part of the sense tag. Maybe that's more to do with the file spec really as the information exists in both places, but only the sense tag maintains the ordering needed to determine which volume has a forward or reverse sense wrt the surface.
Just throwing this out there, what if we replace the Surface.get_volumes method with something like Surface.parent_volumes that always returns a list of two Volume classes with the forward/reverse ordering by querying the sense tag data rather than the meshset parent-child relationships? That way the sense information is always provided. The forward_volume and reverse_volume properties are still good IMO as they're more explicit, so we could keep those too.

@pshriwise Comments have been addressed -- let me know if anything further is needed


docs: fix formatting nits in comments

Pulling in suggestions from @VoltrexMaster in https://github.com/nodejs/node/pull/42675

This looks like a subset of the ones raised/applied upstream. Not sure if you are planning to maintain in parallel, or copy-paste down? (i.e. is it worth doing more PR here or will a future sync catch up?)

This looks like a subset of the ones raised/applied upstream. Not sure if you are planning to maintain in parallel, or copy-paste down?

I'm trying to keep things so that we can just copy and paste the code from here into the Node.js PR. So let's make changes in this repo, and I'll periodically sync the upstream PR.


Independent ASP

Hello,
I'm using makei cvtsrcpf mylib command  but it can't find the library.
The library actually is on an Independent ASP .
It works fine for libraries on *SYSBAS
Best regards,
Giovanni

Hello Giovanni,
make cvtsrcpf is a PASE command.  You will want to run it in a job with has the SETASPGRP() command run so that the iASP is online and the library can be found.
From PASE you could do
SETASPGRP(<YOURASP>) && makei cvtsrcpf <SRCPF> <LIBRARY>
Alternatively you could from 5250 run the SETASPGRP and then `QSH CMD(' /QOpenSys/pkgs/bin/makei cvtsrcpf ...

Hello Edmund ,
thank you for your reply.
I'm on V7R4.
Unfortunately both 5250 and PASE environment are still not working and showing same error.
I'm going to copy library outside independent ASP.
This is what I've done.
5250
From Command line (outside pdm)
SETASPGRP ASPGRP(IASP01)
then
QSH CMD('/QOpenSys/pkgs/bin/makei cvtsrcpf QSRC BMS71L_SRC')
Error Message
[92m> /QOpenSys/pkgs/lib/bob/scripts/cvtsrcpf QSRC BMS71L_SRC [0m
cvtsrcpf: Library BMS71L_SRC doesn't exist.  Exiting.


WAL directory does not respect disk limits

What did you do?
Prometheus is running with --storage.tsdb.retention.size set to about 90 % of the disk space of the --storage.tsdb.path and with a --storage.tsdb.retention.time higher than it can fit in that size. Normally the wal directory takes about 1 % of the disk space and the total disk usage fluctuates between some 70 and some 93 %.
What did you see instead? Under which circumstances?
I don't understand why, but out of two identical Prometheus VMs, which were upgraded from 2.39 to 2.45 a few weeks ago, one run out of disk space (only 20 KB left). All scrapes failed with an error about WAL failure.
The data directory turned out to have zero data in the usual chunk directories of the kind 01HA46SY5B91N8Q62VT77ZX5F8, while the wal directory used 100 % of the disk space with thousands of 128 MB files, the oldest being from 10 days before; it contained a checkpoint.00384569 directory while the earliest file was 00384570. A restart failed immediately. Removing some files from the wal directory, and copying the checkpoint directory to a higher number, allowed the WAL replay to start. The process ended very quickly after discarding the entire WAL on disk, so all the data was lost.
The problematic Prometheus instance had this disk space usage pattern:

While the sister instance which had no issues respected the minimum disk space while displaying larger swings presumably due to deletion of bigger chunk directories:

(The problematic instance is missing the characteristic peak and drop in disk space usage every 2 hours, presumably corresponding to the WAL being turned into chunks.)
What did you expect to see?
Ideally the WAL wouldn't have failed to persist to chunks, but otherwise it should have stopped writing to disk well before running out of disk space and an error should have been logged.
System information
Linux 3.10.0-1160.81.1.el7.x86_64 x86_64 (CentOS 7)
Prometheus version
$ prometheus --version
prometheus, version 2.45.0 (branch: HEAD, revision: 8ef767e396bf8445f009f945b0162fd71827f445)
  build user:       root@920118f645b7
  build date:       20230623-15:09:49
  go version:       go1.20.5
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels

### Prometheus configuration file

```yaml
N/A

Alertmanager version
N/A

Alertmanager configuration file
N/A

Logs
No response

Recovering from the issue might have been easier with https://github.com/prometheus/prometheus/issues/12286


Errors about mismatched types when trying to use the latest version

I updated my Cargo.toml file, ran cargo update playdate, cargo clean, and cargo check
    Checking playdate-graphics v0.4.0 (https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439c)
    Checking playdate-sound v0.4.1 (https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439c)
error[E0308]: mismatched types
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/sound/src/sample.rs:281:4
    |
276 |               -> unsafe extern "C" fn(data: *mut u8,
    |  ________________-
277 | |                                     format: SoundFormat,
278 | |                                     sampleRate: u32,
279 | |                                     byteCount: c_int,
280 | |                                     shouldFreeData: c_int) -> *mut AudioSample {
    | |______________________________________________________________________________- expected `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32, i32) -> *mut AudioSample` because of return type
281 |               self.0.newSampleFromData.expect("newSampleFromData")
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
    |
    = note: expected fn pointer `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32, i32) -> _`
               found fn pointer `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32) -> _`

error[E0308]: mismatched types
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/sound/src/sample.rs:335:4
    |
330 |               -> unsafe extern "C" fn(data: *mut u8,
    |  ________________-
331 | |                                     format: SoundFormat,
332 | |                                     sampleRate: u32,
333 | |                                     byteCount: c_int,
334 | |                                     shouldFreeData: c_int) -> *mut AudioSample {
    | |______________________________________________________________________________- expected `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32, i32) -> *mut AudioSample` because of return type
335 |               *sys::api!(sound.sample.newSampleFromData)
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incorrect number of function parameters
    |
    = note: expected fn pointer `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32, i32) -> _`
               found fn pointer `unsafe extern "C" fn(*mut u8, SoundFormat, u32, i32) -> _`

error[E0609]: no field `getBitmapPixel` on type `&playdate_graphics`
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/bitmap/api.rs:177:23
    |
177 |         *sys::api!(graphics.getBitmapPixel)
    |                             ^^^^^^^^^^^^^^ unknown field
    |
    = note: available fields are: `video`, `clear`, `setBackgroundColor`, `setStencil`, `setDrawMode` ... and 55 others

error[E0609]: no field `getBitmapTableInfo` on type `&playdate_graphics`
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/bitmap/table.rs:239:24
    |
239 |             *sys::api!(graphics.getBitmapTableInfo)
    |                                 ^^^^^^^^^^^^^^^^^^ unknown field
    |
help: a field with a similar name exists
    |
239 |             *sys::api!(graphics.newBitmapTable)
    |                                 ~~~~~~~~~~~~~~

error[E0308]: mismatched types
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/api.rs:381:3
    |
380 |     fn set_draw_mode(&self) -> unsafe extern "C" fn(mode: LCDBitmapDrawMode) -> LCDBitmapDrawMode {
    |                                ------------------------------------------------------------------ expected `unsafe extern "C" fn(LCDBitmapDrawMode) -> LCDBitmapDrawMode` because of return type
381 |         self.0.setDrawMode.expect("setDrawMode")
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `LCDBitmapDrawMode`, found `()`
    |
    = note: expected fn pointer `unsafe extern "C" fn(LCDBitmapDrawMode) -> LCDBitmapDrawMode`
               found fn pointer `unsafe extern "C" fn(LCDBitmapDrawMode)`

error[E0609]: no field `setPixel` on type `&'static playdate_graphics`
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/api.rs:489:10
    |
489 |         self.0.setPixel.expect("setPixel")
    |                ^^^^^^^^ unknown field
    |
    = note: available fields are: `video`, `clear`, `setBackgroundColor`, `setStencil`, `setDrawMode` ... and 55 others

error[E0308]: mismatched types
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/api.rs:589:3
    |
588 |     fn set_draw_mode(&self) -> unsafe extern "C" fn(mode: LCDBitmapDrawMode) -> LCDBitmapDrawMode {
    |                                ------------------------------------------------------------------ expected `unsafe extern "C" fn(LCDBitmapDrawMode) -> LCDBitmapDrawMode` because of return type
589 |         *sys::api!(graphics.setDrawMode)
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `LCDBitmapDrawMode`, found `()`
    |
    = note: expected fn pointer `unsafe extern "C" fn(LCDBitmapDrawMode) -> LCDBitmapDrawMode`
               found fn pointer `unsafe extern "C" fn(LCDBitmapDrawMode)`

error[E0609]: no field `setPixel` on type `&playdate_graphics`
   --> /Users/py/.cargo/git/checkouts/playdate-dc26075b1966a65a/43f5439/api/gfx/src/api.rs:692:101
    |
692 |     fn set_pixel(&self) -> unsafe extern "C" fn(x: c_int, y: c_int, c: LCDColor) { *sys::api!(graphics.setPixel) }
    |                                                                                ^^^^^^^^ unknown field
    |
    = note: available fields are: `video`, `clear`, `setBackgroundColor`, `setStencil`, `setDrawMode` ... and 55 others

For more information about this error, try `rustc --explain E0308`.
error: could not compile `playdate-sound` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
Some errors have detailed explanations: E0308, E0609.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `playdate-graphics` (lib) due to 6 previous errors

My Cargo.toml contains playdate = { git = "https://github.com/boozook/playdate.git", rev = "43f5439cb7a778da56b61dab362ce1fab15fd667" } but I get the same errors with playdate = "*".
My Cargo.lock file contains:
[[package]]
name = "playdate"
version = "0.2.1"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-controls",
 "playdate-display",
 "playdate-fs",
 "playdate-graphics",
 "playdate-lua",
 "playdate-menu",
 "playdate-scoreboards",
 "playdate-sound",
 "playdate-sprite",
 "playdate-sys",
 "playdate-system",
]

[[package]]
name = "playdate-bindgen"
version = "0.1.11"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "bindgen",
 "playdate-bindgen-cfg",
 "playdate-build-utils",
 "semver",
]

[[package]]
name = "playdate-bindgen-cfg"
version = "0.1.7"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "clap",
]

[[package]]
name = "playdate-build-utils"
version = "0.3.2"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "dirs",
 "windows-registry",
]

[[package]]
name = "playdate-color"
version = "0.2.4"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
]

[[package]]
name = "playdate-controls"
version = "0.3.5"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
 "playdate-system",
]

[[package]]
name = "playdate-display"
version = "0.3.6"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
]

[[package]]
name = "playdate-fs"
version = "0.2.8"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
]

[[package]]
name = "playdate-graphics"
version = "0.4.0"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-color",
 "playdate-fs",
 "playdate-sys",
]

[[package]]
name = "playdate-lua"
version = "0.1.1"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
]

[[package]]
name = "playdate-menu"
version = "0.2.4"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
 "playdate-system",
]

[[package]]
name = "playdate-scoreboards"
version = "0.1.2"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "erased_set",
 "playdate-sys",
]

[[package]]
name = "playdate-sound"
version = "0.4.1"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-fs",
 "playdate-sys",
]

[[package]]
name = "playdate-sprite"
version = "0.2.11"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-graphics",
 "playdate-sys",
]

[[package]]
name = "playdate-sys"
version = "0.4.2"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "arrayvec",
 "playdate-bindgen",
 "playdate-bindgen-cfg",
]

[[package]]
name = "playdate-system"
version = "0.3.12"
source = "git+https://github.com/boozook/playdate.git?rev=43f5439cb7a778da56b61dab362ce1fab15fd667#43f5439cb7a778da56b61dab362ce1fab15fd667"
dependencies = [
 "playdate-sys",
]

Seems to you using old SDK and bingen generated bindings for you and it is not compatible because breaking changes in SDK v2.5.0. Isn't it?
Here is new signature of newSampleFromData, and there is old.

That was it. Thanks!


Go 1.8.3 is broken on staging

Issue description
http://hydra.nixos.org/build/56796101
https://nix-cache.s3.amazonaws.com/log/4yscz4spx3vr3dl5nsbhf1bhxaq3nccw-go-1.8.3.drv
Technical details

Nixpkgs version: 29f91c107f5f605dac63552909cbe3c8f0c2e303

cc @Ericson2314, any idea what's going on?

Seems to build again.
b2608b8910 gave /nix/store/g9q7496wbm8wvyz0kdm11p93a2jr07bj-go-1.8.3


Document default values

A format like the following makes it easy for users to see the type and default value: https://github.com/gruntjs/grunt-contrib-sass#options

Addressed by 80992d1 via #728.


[Bug]: I can't load my Appsmith App using POST request

Is there an existing issue for this?

[X] I have searched the existing issues

Description
My request: is it possible to allow Appsmith apps to be loaded by POST request? I hope this won't open any security holes in future updates.
My case:
I'm using software (Bitrix24) that allows me to integrate an external page (Appsmith app in my case) inside an iframe so that it can interact with the internal software. The challenge here is that this software doesn't just load the app as a classic Iframe, it actually uses JS to load the page by a POST request where it sends specific queries to that page to be used.
What is creating a conflict with the Appsmith is that this software loads the Appsmith app by POST request and not GET request. Actually, if you try to send a POST request to any Appsmith app it will request a  "405 Not Allowed" response.

My App URL is: https://app.appsmith.com/applications/623c64644d9aea1b062b2c14/pages/623c64644d9aea1b062b2c17

Below is the actual request that Bitrix24 does when loading the Appsmith app page:
Request URL: https://app.appsmith.com/applications/623c64644d9aea1b062b2c14/pages/623c64644d9aea1b062b2c17?DOMAIN=ibht-engine.bitrix24.com&PROTOCOL=1&LANG=en&APP_SID=1ca972164c2f0479c77b34a76d1a9ed9
Request Method: POST
Status Code: 405
Referrer Policy: strict-origin-when-cross-origin

Steps To Reproduce
Easy, just send a POST request (instead of the GET) to any of your Appsmith app URLs and you will get a "405 Not Allowed" response.
Public Sample App
https://app.appsmith.com/applications/623c64644d9aea1b062b2c14/pages/623c64644d9aea1b062b2c17
Version
Cloud Latest

I found the solution for this!

can you elaborate more on how you handled post request?


[INTEL MKL] Added the feature to disable MKL support of TensorFlow by environment…

…al variable TF_DISABLE_MKL=1

closing as this has been submitted to the the public TF


$apply already in progress - tooltip

I am using $tooltipProvider.setTriggers()
I have created my custom triggers and am trying to use them, below is my code:
//app.js
app.config(['$tooltipProvider'], function($tooltipProvider){
    $tooltipProvider.setTriggers({
        'show' : 'hide'
    });
});

//html

text

//controller
$scope.checkCondition = function(event) {
    if(checking condition logic) {
        angular.element(event.target).trigger('show');
    }
};

$scope.destroyPopover = function(event){
    angular.element(event.target).trigger('hide');
};

On mouse enter I get the following error:
$apply already in progress at show (https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.1/ui-bootstrap-tpls.js:2615:23)
How can I use custom triggers inside Angular without interfering with the digest cycle your code is triggering?

I had exactly the same issue.  Wrap in a $timeout to make the event asynchronous - that way it will play nice with the digest cycle. (You'll need to inject $timeout into your controller).
$scope.destroyPopover = function(event){
    $timeout(function () {
        angular.element(event.target).trigger('hide');
    }, 0);
};

Thanks so much for the advice!


OS#14980696: Minor refactoring to fix OACR error

Refactor PathTypeHandlerBase::UpdateAttributes and UpdateSetterSlots to take the size of the new type path instead of the new type path itself as an argument.  Not only does this explicitly indicate that these methods only use the path's size and not the full path, but it also allows OACR to conclude that a couple of array element accesses are always safe.

Ping?  I'd like to merge this today, if possible.


[Presence] Ensure onAnimationEnd when closing

Make sure that onAnimationEnd is fired for consumers, after the closing animation of a component.
Fixes: #1020

A completely different approach to solving #1020 would change the Presence component to receive an extra property onAnimationEnd (the same event handler that would otherwise have been passed to the component we are animating) and manually calling onAnimationEnd before we call flushSync.
This would require going through every usage of Presence in Radix and pass it the onAnimationEnd handler that was being passed to the animating component.
The biggest downside of this approach (besides the fact that we're complicating Presence) is that we'd have mismatched signatures for onAnimationEnd, since we're dealing with "real" events here, rather than synthetic ones, so we'd likely have to deal with that discrepancy somehow.
What are your thoughts? Do you have any other ideas on how to solve this? I'm leaving this PR here with this possible solution, but am happy to change the approach if you find it inadequate.


Dark mode is unstable.

The sitewide night mode is implemented using document cookies method. This results in site flashing every time page is loaded before the dark mode remembering cookies kicks in. I guess it can be troublesome in night while browsing.

I should use session storage or local storage


Download the psd file from the webui server to local.

Hi, thanks for the awesome plugin.
I'm currently using webui on a server. And this is a great plugin! But if you don't mind, I'd like to talk about a problem I'm having.
Since the created psd file is stored on the server and there is no way to download to client on webui, it is inconvenient to move it from the server every time. Images can be downloaded with a right-click in the webui, which is much easier.
I wish there was a way to save the psd files on client side.
Could you please implement this feature? thank you.

Closing since this has been merged at #15


Question about ConcurrentBag

The threadList cache connection is for improve effective,but if in spring project,spring will create a new thread for each request,so connectoin will get from sharedList(COW) by cas , but cas is low effective in high concurrency environment,and the threadList can't improve effective,looking forward to your reply,thx!

Why on earth would Spring create a new thread for each request, which is hugely expensive, rather than using a thread pool.  I don't believe it.  This sounds like a Spring (mis-)configuration issue.


I want to pass authToken in header with clientSocket to make successful connection.But getting error

ValueNotifier<GraphQLClient> clientFor({
      String uri =
          "http://staginggraphql-xxxxxx/graphql",
      String subscriptionUri =
          "ws://staginggraphql-xxxxxxx/graphql",
    }) {
      Link link = HttpLink(uri: uri) as Link;
      if (subscriptionUri != null) {
        final WebSocketLink websocketLink = WebSocketLink(
          url: subscriptionUri,
          config: SocketClientConfig(
            autoReconnect: true,
            inactivityTimeout: Duration(seconds: 30),
          ),
        );

        link = link.concat(websocketLink);
      }

      return ValueNotifier<GraphQLClient>(
        GraphQLClient(
          cache: InMemoryCache(),
          link: link,
        ),
      );
    }

Error:
I/flutter (24451): data: {type: connection_error, payload: {message: Cannot read property 'authToken' of undefined}}
I/flutter (24451): done
I/flutter (24451): Disconnected from websocket.
I/flutter (24451): Scheduling to connect in 5 seconds...

I am making this websocket  for subscription.
Really frustrated.
please help;

@anirudhsharma392 If it's not particularly simple,I think it provides a minimal reproducible Repositories being useful.

Please see https://stackoverflow.com/a/4361358/1326678

only the path and protocol field can be specified (to connect to a websocket, not headers)

So, do i need make connection open. I mean without any authentication for connection.

Can i sending it as part of a query parameter in URL or  send the authToken within payload.

How would have you done it with a webapp/JavaScript file?

i got this just need to pass in  init payload,Thanks though
final WebSocketLink socketLink = WebSocketLink(
url:'ws://staginggraphql-xxxxxxx/graphql',
config: SocketClientConfig(
initPayload:{"authToken":"${centralstate.GraphQLToken}"},
autoReconnect: true,
inactivityTimeout: Duration(seconds: 30),
),
);
ValueNotifier<GraphQLClient> client = ValueNotifier(
  GraphQLClient(
      cache: InMemoryCache(), link: socketLink as Link),
);


[BUG] Link type annotations don't play well with static type checkers (pylance, mypy)

Describe the bug
Links to related documents annotated as Link[xx] get the type Link[xx], which gives type errors when trying to access e.g. obj.linkedobj.
To Reproduce
class ConversationMessage(Document):
    id: UUID4 = Field(default_factory=uuid4)
    conversation: Link["Conversation"]

# ... initialize db etc...

 async def get_message(
        message_id: UUID4, conversation_id: UUID4
    ) -> Optional[ConversationMessage]:
        return await ConversationMessage.find_one(
            ConversationMessage.id == message_id,
            ConversationMessage.conversation.id == conversation_id, # Gives Cannot access member "id" for type Link[Conversation]":  Member "id" is unknown
            fetch_links=True,
        )

Hi @ldorigo ,
Thank you for the catch!

Is there any way or workaround to currently type it properly? I'm having to add #type: ignore all over our codebase 😞

Yeah in general I would like typing system to look at a Link[T] and recognize it's actually more like a Union[T, Link[T]].

Just to mention that I've run into this issue as well, so I think the only workaround for now is to ignore the type check on these links or to do casting? That is, either
MyDocument.linked_type # type: ignore[attr-defined]

or
from typing import cast
cast(MyDocument.linked_type, UnderlyingType)

I'd rather have a more robust solution that was built in with Beanie. But I've had success doing the following as a temporary measure.
from typing import TypeAlias
from beanie import Link as BeanieLink

if TYPE_CHECKING:
    _T = TypeVar("_T", bound=Document)
    Link: TypeAlias = _T
else:
    Link = BeanieLink

What it does is when type checking it aliases Link to be the Document class it's wrapping.

Overriding Link with if TYPE_CHECKING does work pretty well, though I'd suggest using a union of the link type & the actual type, rather than just the above suggestion, as when the link isn't fetched, beanie does in fact return a link class. This way, the type checker will force you to check first.
e.g.:
from beanie import Link as BeanieLink

if TYPE_CHECKING:
    type Link[T] = T | BeanieLink[T]
else:
    type Link[T] = BeanieLink[T]


Implement interface quick fix should insert new interface implementation after constructor

From https://github.com/microsoft/vscode/issues/83662

TypeScript Version:  3.8.0-dev.20191026

Search Terms:

Quick fix
implement interface

Repo
For the code:
interface IFoo {
    bar(): void;
}

class Foo implements IFoo {
    private x: number = 1;
    constructor() {}
}

Run the implement interface quick fix on Foo

Expected behavior:
Added method bar is inserted after the constructor and properties:
interface IFoo {
    bar(): void;
}

class Foo implements IFoo {
    private x: number = 1;
    constructor() { }
    bar(): void {
        throw new Error("Method not implemented.");
    }
}

Actual behavior:
Added method is inserted before the constructor and properties:
interface IFoo {
    bar(): void;
}

class Foo implements IFoo {
    bar(): void {
        throw new Error("Method not implemented.");
    }
    private x: number = 1;
    constructor() {}
}

Removing priority label for now so that it shows up in the TS inbox tracking queries. This is important to some VS Code team members however

Thanks @mjbvz


Some test cases are wrong

The following test cases are wrong:
testcase_745.txt
testcase_755.txt
testcase_747.txt
testcase_748.txt
testcase_751.txt
testcase_713.txt
testcase_758.txt
testcase_749.txt
testcase_757.txt
testcase_709.txt

Only enabled test cases are downloaded now.


chore: bump basis-theory packages

Description

update basis-theory-js
update basis-theory/eslint-config

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

[x] Not Applicable

Rollback / Rollforward Procedure

[ ] Roll Forward
[x] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


HTML report does not show/support built-in k6 metrics like p(99), p(100)

Hello K6 reporter Team,
I faced a simple issue with k6 and HTML reporter.
Flow:
I use summaryTrendStats,

K6 supports p(99) and p(100), and after any run the k6 shows them like that:

Only the K6 Html reporter does not show them, namely p(99), p(100)
As you can see, the maximum columName is the "95th Percentile"

Would you be so kind as to extend the k6 HTML reporter to support all built-in metrics in k6?

Any update on this? 😞


updated documentation of code

Thank you for your contribution to Bloody-Buddy 🤩🤩

Please mention the following in order to get PR merged  🙌🏻🙌🏻

Kind of change this PR introduce :
Issue it resolves :
GitHub Page Link :

Creating PR without creating issues first.
Not following the PR template.

Closing the PR !


Document the release process

Here is an example: https://github.com/redhat-developer/service-binding-operator/blob/master/docs/community-release.md

Equivalent documentation for releasing chart-verifier has been written: https://github.com/redhat-certification/chart-verifier/blob/main/docs/helm-chart-release.md


install_linux_azcmagent.sh: error installing azcmagent (exit code: 100)

Describe the issue
I am trying to install the Arc-Enabled Server to run Azure Monitor Agent on Raspberry Pi 4 running ubuntu 22.04
and I receive the following error when running the installation script generated on Azure.
"
E: Unable to locate package azcmagent
/home/pi/install_linux_azcmagent.sh: error installing azcmagent (exit code: 100). See 'apt' command logs for more information.
sudo: azcmagent: command not found
"
I am able to install the Arc-Enabled Server to run Ubuntu 22.04, which has the x86_64 architecture. So I am aware that is a platform issue. However I am confused by the fact per Azure Monitor Agent documentation.:

Ubuntu 22 on ARM64 should be supported.
When did the issue occur?
The issue is relevant as of 06.03.2024.

There are two separate packages, Arc/Azcmagent and AMA. AMA supports ARM64, for example when installed on an ARM64 Azure VM. Arc does not yet have ARM64 support, but we're working on it.


Octopus Pipeline

Hello,
I've got this error when creating a DevOps Project through the generator.
The pipeline references a task called '179fac12-2402-486e-80cf-5a6a8571f7c0'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 3.*, job 'Phase_1', step 'OctopusPack1'.)
AB#3635

Hi there, thanks for reaching us.
Looks like you are using an older version of the Octopus task or task might be missing. Please install the octopus extension from  https://marketplace.visualstudio.com.
Also please refer the following lab document.
Thanks.


Example of dynamicRefinement to validate by dynamic constraints.

I have a scenario in which some validation constraints are fetched from a server. The proposed changes might solve the use case without introducing a "validation context" feature.
There is an evident performance tradeoff - I'm creating (potentially lots of) schemas dynamically during validation to keep the API as simple as possible. Nonetheless, I think there are cases when such a solution is sufficient. What do you think?
Thanks again for the lib!

A similar approach is now available in Zod 2 👍

Great news, I love it!


Set camera resolution and/or aspect ratio

Hello,
I tried Mediapipe examples on Ubuntu and noticed that the input resolution into Mediapipe was always smaller than the maximum resolution of the cameras that were used:

An integrated camera, max resolution 1280x720
A USB camera, max resolution 1920x1080
In both cases, the camera aspect ratio was 16:9, but the input resolution into Mediapipe was 640x480 (aspect ratio 4:3).

Can we set the input resolution or aspect ratio into Mediapipe arbitrary? I've tried v4l2-ctl --set-fmt-video=width=1280,height=720 before running the desktop examples but the input resolution into Mediapipe did not change.
Many thanks for your help!

Hi,
You can modify the live demo example to request opencv set different camera properties.
Find
cvx::namedWindow(kWindowName, /*flags=WINDOW_AUTOSIZE*/ 1);

and insert these lines right after:
    capture.set(cvx::CAP_PROP_FRAME_WIDTH, 1280);
    capture.set(cvx::CAP_PROP_FRAME_HEIGHT, 720);

This relies on opencv honoring that request; there is nothing mediapipe can do to control the camera resolution.
One thing to note is, for any mediapipe example that uses TFLite/TensorFlow, the first thing mediapipe graph does is to downsize the image into whatever the model expects (regardless of input image size).

Hi mcclanahoochie, it works - thank you so much!


Fuse.Nodes: do not try to perform layout every single frame

There's no point in polling the invalidation-state every frame. So let's instead insert an event on every invalidate instead.
This PR contains:

[ ] Changelog
[ ] Documentation
[ ] Tests

A tiny bit of backstory:
This fixes a bunch of tests on Android for me, that fails like this:
FAILED:  AllTests.Fuse.Elements.Test.LayoutAnimationTest.TransitionLayout
          Exception was thrown: Uno.Exception: no Action found to remove
   at Fuse.UpdateManager.RemoveAction(Uno.Action,[Fuse.UpdateStage])
   at Fuse.RootViewport.Uno.IDisposable.Dispose()
   at FuseTest.TestRootPanel.Uno.IDisposable.Dispose()
   at Fuse.Elements.Test.LayoutAnimationTest.TransitionLayout()
   at MainClass.Invoke___Fuse_Elements_Test_LayoutAnimationTest_TransitionLayout()
   at Uno.Testing.AbstractRunner.RunTest(Uno.Testing.NamedTestMethod)
   at Uno.Testing.AbstractRunner.Update()
   at Uno.Testing.TestSetup.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)

This doesn't really identify nor solve the underlying problem, just changes this code to be a bit less error-prone. I should probably try to find out why these tests fail in the first place also.

The reason this remained previously was for window size changes and device rotation -- we didn't accurately report them via events that would invalidate the layout.
I've tested OSX window resize and it still works.
On iOS I have the problem that the ManualTestApp doesn't rotate at all now! I'll file an issue for this (as I don't think it's actually related to this PR, but alas, I can't properly test this PR then).

@mortoray: To keep device-rotation working was the reason I changed OnResized also. I believe this should be how we ensure that this works. It seems to work fine on Android.

So, I can no longer reproduce the crash that motivated me to do this change, so it's hard to figure out why the problem happened in the first place. Perhaps I had a bad build of some sort. In either case, I think this would be a good move, if we can prove that iOS rotation still works (after it's been fixed on master, that is)

@mortoray: I've just verified that together with #700, device rotation on iOS works fine. Do I have your approval? :)


Rotate String 13 Characters Extension

Describe the extension
This extension adds an action that rotates all alphabetic characters in a string by 13 characters.
By passing a string to this expression, you can go from:

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

to

"NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"

This can be used for basic secrets, passwords, or very insecure encryption of data.
Checklist

[X] Extension has a proper name and description.
[X] Extension has tags (for example: "platform, brick, breakable").
[X] All behaviors have a description.
[X] All functions (actions, conditions, expressions) have descriptions.
[X] I confirm that this extension can be intergrated to this GitHub repository, distributed and MIT licensed.

Extension file
Since Github doesn't allow uploading of json, I've renamed it to .txt
Rotate13.txt

Looks great, thanks!

No clue if people will find it useful or not, but I made it and found it useful for me, so might as well share.


Move GitRepository#url generation to the factory

Since a value is required and must match a regex, I'm moving this into the factory so that others do not need to specify a value.
The Faker gem is already in our bundle due to xclarity_client (0.6.7) requiring faker (~> 1.8.3).

Nitpicking here: Could we technically get away with just one /#{Faker::Internet.domain_word} here?

@NickLaMuro Not sure why I can't reply to this comment inline, but...
Most of the services that I have seen use this format, so yes we probably could get away with just one, but I think it's a more representative example with two.


Autocomplete inside of match statement not working

Tested versions

Reproducible in Godot 4.2.1

System information
Godot v4.2.1.stable - Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Laptop GPU (NVIDIA; <IP_ADDRESS>49) - AMD Ryzen 7 5800H with Radeon Graphics (16 Threads)
Issue description
When writing a match statement in GDScript, autocomplete doesn't work with enums
Steps to reproduce
extends CharacterBody2D

var state = PlayerState.IDLE

enum PlayerState {
	IDLE,
	WALKING
}

func handle_movement_state():
	match state:
		PlayerState.IDLE:
			print("player is idle")
		# try adding PlayerState.W - there will be no autocomplete/intellisense
		# but it should prompt you to enter WALKING

Minimal reproduction project (MRP)
N/A

Can you try this in 4.2.2.rc2?

Duplicate of #72328

Consolidating there :) Thank you for your report


[Bug, Report], Click, the, custom, menu, button, for, the, first, time, callback, function, tree, store.currentNode, attirbute, is, undefined

Element UI version
1.3.6
OS/Browsers version
Linux / Chrome 59.0.3071.109 (Official Build) (64-bit)
Vue version
2.3.4
Reproduction Link
Steps to reproduce
自定义renderContent，代码如官网所示，点击append的按钮时回调方法append里console.log(store.currentNode)为undefined。但是log(store)，在浏览器展开对象时currentNode为正确的node对象，因此BUG可能是传过来的时候Node对象的currentNode尚未成功赋值，在输出的时候对象被更改了就显示正确了
What is Expected?
正确输出node对象
What is actually happening?
对象属性不正确

For now it seems there is no good way to get store.currentNode in the button's click event listener, because currentNode is null until the click event bubbles up to the node itself. Using capture in the event listener might work, but unfortunately it's not supported in render functions. So setTimeout to the rescue: https://jsfiddle.net/6dwsn44h/


[Question] is it possible to add more custom controls?

I'm quite familiar with youtube/vimeo api. Is it possible to add custom controls to change quality, subs, make custom progress bar etc.?

I don't think this is possible based on the examples given.


[BM-666] Voice analysis analytics. User properties addition.

Task

JIRA

Description

Added firebase UserProperties .Handling VoiceAnalysisOption and AppState
Changed VoiceAnalysisOption enum names to be aligned with other enums
and user properties.

          6 Warnings

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/application/di/ApplicationModule.kt#L54 - The caught exception is swallowed. The original exception could be lost.

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/feature/server/ServerViewModel.kt#L27 - Class ‘ServerViewModel’ with ‘16’ functions detected. Defined threshold inside classes is set to ‘15’

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/feature/voiceAnalysis/AacRecorder.kt#L32 - This expression contains a magic number. Consider defining it to a well named constant.

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/feature/voiceAnalysis/AacRecorder.kt#L34 - This expression contains a magic number. Consider defining it to a well named constant.

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/feature/voiceAnalysis/AacRecorder.kt#L84 - This expression contains a magic number. Consider defining it to a well named constant.

:warning:
app/src/main/kotlin/co/netguru/baby/monitor/client/feature/voiceAnalysis/VoiceAnalysisController.kt#L72 - Multiple occurrences of the same string literal within a single file detected.

          1 Message

:book:
:link: BM-666

JaCoCO Code Coverage 14.95% :white_check_mark:

Class
Covered
Meta
Status

co/netguru/baby/monitor/client/data/DataRepository
33%
0%
:white_check_mark:

co/netguru/baby/monitor/client/data/communication/ClientEntity
60%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/settings/ConfigurationViewModel
54%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/settings/ClientSettingsFragment
0%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/server/ServerViewModel
50%
0%
:white_check_mark:

co/netguru/baby/monitor/client/application/di/ApplicationModule
0%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/voiceAnalysis/VoiceAnalysisController
0%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/voiceAnalysis/AacRecorder
0%
0%
:white_check_mark:

co/netguru/baby/monitor/client/data/client/ChildDataEntity
42%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/analytics/AnalyticsManager
0%
0%
:white_check_mark:

co/netguru/baby/monitor/client/feature/analytics/UserProperty
100%
0%
:white_check_mark:

APK file size

size

30.3MB

Number of method references

Dex file
count

classes.dex
46781

  Generated by :no_entry_sign: Danger


Dumping 64bit apex with 64 bit dumper works fine but trying to dump 32bit apex with 32bit dumper gives 'CANNOT LINK EXECUTABLE "./dump": "/data/data/com.termux/files/usr/lib/libtermux-exec.so" is 64-bit instead of 32-bit' error whyy??

Please fix it

I used lib injection it's okay now


Broken Windows Build

I am sure you are aware but the Windows build has been broken for over a months now, is there anything we can do to help fix it?

This is one of those "works on my machine" scenarios. It's just CI that is failing for unknown reasons

Awesome, thank you :)


Adding a Guide for Linux / Colab / paperspace?

Adding a step-by-step guide? To install on Linux. or a notebook to run on colab or paperspace system.

Both of these will be addressed in the new AIO version I am working on. I intend to push the update by Tuesday.

Both of these will be addressed in the new AIO version I am working on. I intend to push the update by Tuesday.

Thanks a lot for this repository! Could you tell us when should we expect a guide to install your repository on Linux?


Spatie permission dependent ?

Hi,
Does your package is spatie permission dependent?
https://spatie.be/docs/laravel-permission/v5/introduction
Regards

No, it has no composer dependencies, other than Nova, of course.


crashes on stop

hello,
the app records and stop but when the window comes up to Keep or Delete and you push delete, it crashes.
fatal error: unexpectedly found nil while unwrapping an Optional value
thanks
xcode 6.2.b4
iOS 8.1 and 8.2

That's because  self.recorder.deleteRecording() on line 384 of RecorderViewController.swift is nil.
It should just be the recorder parameter passed in:
recorder.deleteRecording()

Fixed.
I was setting self.recorder to nil in stop() for a reason that no longer exists

thanks


Theme support

I really like the functionality of this app, but I would like to change it's icons and how the software looks like to match my environment. So a theme support would be nice!

Yes, it is a bit dated, isn't it? 😄
I've been thinking about doing this for a while. This is actually something I've had in mind since the effective first commit when I named the main CSS file classic.css, before there was any functionality whatsoever.
Theoretically the layout stuff should all be in layout.css, but that's not entirely well defined and since there's only been one "theme" naturally some of it's ended up mixed in.
I would first want to get some visual regression testing in place and do some major CSS refactoring.

Thanks for looking into this! I would be interested in packing this in Electron and use as a paint substitute in my Linux machine. Being in js is a plus for me since I know more js than C and other languages.

I tried PhantomCSS, but the default engine was an outdated version of webkit that didn't support modern flexbox, and I tried the gecko version but it didn't work, it got some error (and considered it a PASS.)
Then I tried Ghost Inspector, and I created 25 tests, covering most of the UI surface, but in doing so I already used up 48 of my 100 free test runs per month.
At any rate, I started working on a new theme, and added an Extras menu that you can enable from the View menu, where you can switch themes as well as access other special features.

Are you still interested in this? I didn't finish making the theme functional (you can't see selection boxes or tell if you're dragging a component), and I haven't added new icons yet. What do you specifically want out of the theme?

Can you add "Main Window"?
For example for embedding paint to limited size workspace or creating themes withstand custom close/minimize/maximize buttons.
Just I wanted to create WinCE theme 😅.

@Zekfad Can you elaborate on what you're wanting to do? The more information the better.
I plan on implementing Main Windows in 98 (a partial recreation of the Win98 desktop), and then extracting the window code to a library. (So far I've just copied the window code from jspaint, which only has Subwindows, but I'll add the proper title bar buttons and such.)
I'm also planning on using Electron to package jspaint as a desktop app (#2), and once that's done I might add an option to use a themed window frame in place of the native one.

@1j01 I want to add Main Windows style and replace color and context menu. See bellow:

Click to expand image

@Zekfad Replacing the main UI color (for instance) would be really easy, but I see a lot of differences between that version of Paint and the normal (desktop) version that jspaint is based around:

The dialogs are "fullscreen" instead of in popup windows, and the ok button shows up in the top menu
There are shortcuts for toggling the toolbox and colors box alongside the menu buttons
not to mention different tools and tool options and menu options
and lots of little styling differences such as simpler borders on the buttons
the icons are, well, uglier (looks like they were limited to four colors per icon)

How many of these things are you wanting?

@1j01 i just want so much as possible relative positions. In relative u can just use top and bottom css tags for replace top and bottom.


Issue with CIF export

I tried exporting a CIF, and when importing in VESTA I get zero atoms.
The file is attached here (with .txt extension) for reference.
ASE seems to be able to read it, but I guess it has a very simple parser.
optimade_structure_11794.cif.txt
This checking tool should help: https://checkcif.iucr.org
I think a few pointers are that _atom_site_label should be unique (the error is An _atom_site_label occurs more than once in the atom list.). Moreover I think it is needed to have the fractional coordinates, rather than the cartesian (also because you are not defining a 3x3 cell, but just a, b, c and angles, so in principle one does not know how to orient the axes.

The converter is implemented in optimade-python-tools, I will forward the issue there.

Forwarded to Materials-Consortia/optimade-python-tools#271