Emit initialization commands only if prompt is ready

Fixes #77

Is it possible to add a test for this?

@ccordoba12 We could add a test for this one if we emit a signal back to Qt that indicates that the prompt is ready to receive commands

Neh, too much for this release. Please merge it and keep up the good work! :-)


Maximum number of samples and Time to Process

Hello SRY team,
Thank you for creating an useful tool. I am currently trying to use it to assemble a better genome that includes sex chromosomes. I was curious about few things that I couldn't find in the readme/documentation. Could you share some insights please?

Could I use 100 samples (50 males and 50 females) when I run SRY program?
What is the relationship between the number of the samples, the size/quality of the genome and time taken to identify the Y chromosome reads?

Context:
I have a genome of a non-model organism with about ~450 contigs of which 21 are chromosome level scaffolds. This genome is from a male sample and is a heterogametic system (XY). Ideally. I would like to identify and stitch the sex chromosomes if possible. The genome was assembled using Hi-Fi and Hi-C data. I have Whole Genome Resequencing data from Illumina at ~30X coverage for about 50 males and 50 females .

Hi,
As the sample number increases, the speciality is up but slow when larger than ~5 in human (see the biorxiv paper), and the sensitivity is down yet. So for good result and shorter running time, I suggest 10 samples (10 M and 10 F).  The script SRY sorts ONT or PB reads, without HiFi. You can stop the SRY when the SRY_kmer.txt is generated and then deliver it to the script SRY_contig. The HiFi sorting function will be added in SRY latter.

Sorry to bother, but I ran with 8 males and 7 females with 80 cores, it's been 5 days. I want to speed up, is there any suggestions?

Sorry, I'm not very familiar with computers and can't provide assistance on speeding up your computation.
At 2024-06-04 09:43:40, "johnsonz" @.***> wrote:
Sorry to bother, but I ran with 8 males and 7 females with 80 cores, it's been 5 days. I want to speed up, is there any suggestions?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>


IDEA: Price indicator on display

This may be not strictly an issue but I would like some help to add the Bitcoin price in dollars on the display of the RaspiBlitz (Once fully synced)
I am not expert on bash programming, but I took as reference the following:
https://github.com/84adam/wink.sh/blob/master/wink.sh
https://github.com/8go/coinbash
The ideal would be that the price is automatically updated every 15 minutes or so.

In the mid term we will change from the LCD ASCII mode to the LCD graphics mode with maybe even more info. This could be part of that.

please close this. @raulcano started this, but now maybe the lcd wont work. Also, webui will solve this much easier.


[0.24] KafkaChannel dispatcher offset checking improvements

Fixes #

Proposed Changes

Fixing some issues created during https://github.com/knative-sandbox/eventing-kafka/pull/886
Applying the fixes from https://github.com/aliok/eventing-kafka/pull/1 (that was on main)
Change offset checking loop
Requeue channel when there's a failure in the loop

Release Note

- 🐛  Fixed an issue with the offset checking in the dispatcher so that the reconciliation is more proper

Docs

@googlebot I consent.

/test pull-knative-sandbox-eventing-kafka-unit-tests

/test pull-knative-sandbox-eventing-kafka-unit-tests
=== RUN   TestEnableSaramaLogging
==================
WARNING: DATA RACE

I think this test is disabled in later branches

/test pull-knative-sandbox-eventing-kafka-upgrade-tests
It is stuck


feat: add scheduler traffic metrics

Signed-off-by: Gaius<EMAIL_ADDRESS>
Description

Add scheduler traffic metrics.

Related Issue

Motivation and Context

Screenshots (if appropriate)
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[x] Code compiles correctly.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #1143 (2eec56c) into main (0976cf2) will increase coverage by 45.92%.
The diff coverage is 25.00%.

:exclamation: Current head 2eec56c differs from pull request most recent head 9f0ad7b. Consider uploading reports for the commit 9f0ad7b to get more accurate results

@@            Coverage Diff            @@
##           main    #1143       +/-   ##
=========================================
+ Coverage      0   45.92%   +45.92%
=========================================
  Files         0      130      +130
  Lines         0    10042    +10042
=========================================
+ Hits          0     4612     +4612
- Misses        0     4907     +4907
- Partials      0      523      +523

Flag
Coverage Δ

unittests
45.92% <25.00%> (?)

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

Impacted Files
Coverage Δ

scheduler/service/service.go
86.91% <25.00%> (ø)

cdn/supervisor/cdn/storage/disk/disk.go
14.18% <0.00%> (ø)

client/daemon/transport/transport.go
51.38% <0.00%> (ø)

pkg/gc/logger_mock.go
100.00% <0.00%> (ø)

client/daemon/peer/peertask_reuse.go
84.04% <0.00%> (ø)

pkg/util/hostutils/host_utils.go
60.00% <0.00%> (ø)

pkg/container/list/sorted_unique_list.go
100.00% <0.00%> (ø)

client/daemon/upload/upload_manager.go
57.14% <0.00%> (ø)

pkg/container/set/safe_set.go
100.00% <0.00%> (ø)

cdn/supervisor/cdn/downloader.go
48.38% <0.00%> (ø)

... and 121 more


Code to load weights

The code in models.py constructs the graph in a very sleek way. Is it possible to see how you transformed the weights into mlstm_ns.pt too?

This is the code I used to load the weight from numpy files :+1:
embed.weight.data = torch.from_numpy(np.load("embd.npy"))
rnn.h2o.weight.data = torch.from_numpy(np.load("w.npy")).t()
rnn.h2o.bias.data = torch.from_numpy(np.load("b.npy"))
rnn.layers[0].wx.weight.data = torch.from_numpy(np.load("wx.npy")).t()
rnn.layers[0].wh.weight.data = torch.from_numpy(np.load("wh.npy")).t()
rnn.layers[0].wh.bias.data = torch.from_numpy(np.load("b0.npy"))
rnn.layers[0].wmx.weight.data = torch.from_numpy(np.load("wmx.npy")).t()
rnn.layers[0].wmh.weight.data = torch.from_numpy(np.load("wmh.npy")).t()

Thx for reverse engineering and sharing!

I haded the lm.py file allowing to retrain the model on new data. It was used to create the model and load the weights.

I tried to map the the original TF variables to the original .npy files to your .npy files. Is this mainly correct? Also, I wouldn't know how 14 and 15.npy would be used if they were (b0?) and which file corresponds to gmh in the pytorch version.
#Embedding for ASCII one-hot
embd = 0.npy = embed.npy

#State
wh = 1.npy = wh.npy
wmx = concat(2:6.npy) = wmx.npy
wmh = empty? = wmh.npy

gx = empty
gh = empty
gmx = empty
gmh = 7.npy = ?

wx = 8.npy = wx.npy
wh = 9.npy = wh.npy
wmx = 10.npy = wmx.npy
wmh = 11.npy = wmh.npy

#Fully connected
w = 12.npy = w.npy

Things are more complicated than this, because the tf model is using l2 regularization. Pytorch handles this differently. This is why I had to hack the tensorflow model to produce the different npy files.

Interesting, I assume you extracted the variables from a live TF graph then. I also found that L2 is added in pytorch's optimizer (usually?) and suspect that was the difference you talk about. Thanks!

Forgive me, it is not L2 regularization but weights normalization which is the problem. And yes, I extracted the variables with tf code.


type inference for 'var' variables doesn't distinguish between getters and setters

To reproduce, copy into DartPad:
class Foo {
  get bar => 1;
}

void main() {
  var foo = new Foo();
  print(foo.bar);
  foo.bar = 2; // no hint
}

There is no hint when setting bar because a getter exists.

Minor correction. There is no hint when setting bar. Not sure whether it's because there is a getter (and the hint is wrong) or because we have not implemented that hint yet.

If you remove the getter then it does display a hint. So, it is using the presence of a getter to decide whether to display the hint.

Also if you change var foo = ... to Foo foo = ..., you now get the hint "No setter named 'bar' in class 'Foo'". https://dartpad.dartlang.org/8383fcd70fd55320a8a3

Note: same applies if you do final bar = 1 in the Foo class and/or you do final foo = new Foo() in main.

The analyzer now correctly reports an error for the example:

No setter named 'bar' in class 'Foo'.


Bump OSX_VERSION_MIN to 10.15 and Rust to 1.77.0 (builders 0019)

Seems like this does the job.
Closes #513

I just published 0019 to DockerHub


Publisher.publish - Reducing log level for individual publishes

There seems to be excessive number of INFO level log messages when publishing messages.  Revisit and reduce the log levels where appropriate.

+1 on this one, I noticed a lot of unnecessary info messages that seems to belong into the DEBUG level.
INFO 58619 --- [l-10-thread-326] c.g.c.pubsub.spi.v1.MessageDispatcher    : Scheduling next alarm time: 2017-03-10T19:12:58.628Z, last alarm set to time: 292278994-08-17T07:12:55.807Z
is another example


buck2: unstable-2024-03-15 -> unstable-2024-05-15

Description of changes

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[X] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Supercedes https://github.com/NixOS/nixpkgs/pull/303473.
cc: @thoughtpolice


Bad gateway/cf_bad_gateway/null on long token request

Describe the bug
I'm working on a school project to test the differences in content created by GPT-3 vs. 4, but to get the quantity for testing, I need to run a script that creates the content for me and saves it to a JSON file. But it doesn't seem like GPT-4 is handling big requests very well.
When I try to get a request from OpenAI with GPT-4, it seems to timeout even when I've increased the timeout 600 seconds.
I get "null" on the content, and oftentimes I also get "null" on the error message.
The few times I was able to produce an error message, I got "502 cf_bad_gateway".
To Reproduce
The title and the outline are generated by OpenAI with GPT-4 before this final request is made.
I run the below code with the following parameters:
keyword = expensive champagne
title = The Ultimate Guide to the Top 10 Most Expensive Champagnes: Is It Worth the Splurge?
outline = 1. Introduction to Expensive Champagne
1.1 - The allure of luxury champagne
1.2 - The role of expensive champagne in celebrations and special events

Factors Contributing to the High Price of Champagne
2.1 - Production process and limited availability
2.2 - Prestigious brand reputation
2.3 - Aging and maturation

Top Expensive Champagne Brands
3.1 - Dom Pérignon
3.2 - Krug
3.3 - Louis Roederer Cristal
3.4 - Armand de Brignac
3.5 - Moët & Chandon

The Taste of Luxury: What Sets Expensive Champagne Apart
4.1 - Flavor profile and complexity
4.2 - Fine bubbles and mouthfeel
4.3 - Pairing expensive champagne with food

The Role of Expensive Champagne in Popular Culture
5.1 - Iconic moments in movies and television
5.2 - Celebrity endorsements and collaborations
5.3 - Expensive champagne in music and lyrics

Investing in Expensive Champagne
6.1 - Collecting and storing champagne
6.2 - The potential for appreciation in value
6.3 - Risks and rewards of investing in champagne

The Experience: Sipping on Expensive Champagne
7.1 - Champagne etiquette and rituals
7.2 - Best glassware for enjoying luxury champagne
7.3 - Creating memorable moments with expensive champagne

Conclusion: The Enduring Appeal of Expensive Champagne
8.1 - The timeless nature of luxury
8.2 - The joy of indulging in life's finer pleasures

Code snippets
function get_article_content($open_ai, $article_outline, $article_title, $keyword) {
    $model = 'gpt-4';
    $retry = false;
    $content_chat_decoded = null;
    $error_message = null;

    do {
        $open_ai->setTimeout(300);
        $content_chat = $open_ai->chat([
            'model' => $model,
            'messages' => [
                [
                    "role" => "system",
                    "content" => "You're AI article writer and SEO expert, you write the most amazing content.
            Each article you write should contain the following:
            - The article should be at least 1500 words, ideally 2000 words in total.
            - Start the article with an introduction. The introduction should not have a heading."
                ],
                [
                    "role" => "user",
                    "content" => "{$article_outline}
            Title: {$article_title}
            SEO keyword: {$keyword}
            Write the article:"
                ],
            ],
            'temperature' => 0.7,
            'max_tokens' => 4000,
            'frequency_penalty' => 0,
            'presence_penalty' => 0,
        ]);

        $content_chat_decoded_raw = json_decode($content_chat);
        $content_chat_decoded = $content_chat_decoded_raw->choices[0]->message->content;

        // Check for any error in the response
        if (isset($content_chat_decoded_raw->error)) {
            $retry = true;
            $model = 'gpt-4-0314';

            // Store the error message
            $error_message = $content_chat_decoded_raw->error->message;
        } else {
            $retry = false;
        }

    } while ($retry);

    return [$content_chat_decoded, $error_message];
}

// 3. Write out the article, keeping in mind to SEO optimize for the keyword
list($content_chat_decoded, $error_message) = get_article_content($open_ai, $article_outline, $article_title, $keyword);
$article_content = $content_chat_decoded;

OS
Ubuntu 20
PHP version
PHP 7.1.1-1
Library version
openai v3.0.1

Could you please post this question on our Discord Server? This area is intended for Library-related inquiries. Thank you.


feat: add comparison utils in Relocatable and MaybeRelocatable

Fix: #126

I've added a few small comments here. After unit tests this seems good to me.

added tests, please rereview @tcoratger


Binary Ninja Crashes When Loading ntoskrnl.exe After 10-15 Seconds

Version and Platform (required):

Binary Ninja Version: 4.1.5339-dev Personal and 4.0.4958-stable Personal
OS:  Windows 11
OS Version: 10.0.22631 N/A Build 22631
CPU Architecture: x64

Bug Description:
Binary Ninja crashes when loading ntoskrnl.exe after 10-15 seconds.
Steps To Reproduce:

Go to "File"
Click on "Open"
Select ntoskrnl.exe
Wait for Binary Ninja to crash

Expected Behavior:
The expected behavior is that it should not crash.
Additional Information:
Stack trace output from WinDbg on version: 4.1.5339-dev
This exception may be expected and handled.
binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x1b09e:
00007ffa`31006aae 498b4f50        mov     rcx,qword ptr [r15+50h] ds:00000000`00000050=????????????????
0:046> k
 # Child-SP          RetAddr               Call Site
00 00000020`155fe290 00007ffa`31009943     binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x1b09e
01 00000020`155fe6c0 00007ffa`30ffe94b     binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x1df33
02 00000020`155feaa0 00007ffa`307d07d8     binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x12f3b
03 00000020`155fee00 00007ffa`3100855e     binaryninjacore+0x5607d8
04 00000020`155fef00 00007ffa`3100828d     binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x1cb4e
05 00000020`155ff040 00007ffa`3118355b     binaryninjacore!BNRegisterGlobalFunctionRecognizer+0x1c87d
06 00000020`155ff1a0 00007ffa`30f3f646     binaryninjacore!BNGetHighLevelILVariables+0x31c7b
07 00000020`155ff5c0 00007ffa`30f0fb9e     binaryninjacore!BNSetFlowGraphNodeLines+0xf7926
08 00000020`155ff720 00007ffa`315e821e     binaryninjacore!BNSetFlowGraphNodeLines+0xc7e7e
09 00000020`155ff750 00007ffa`3178e4a8     binaryninjacore!BNTagTypeSetVisible+0x4f2e
0a 00000020`155ff7e0 00007ffa`31789201     binaryninjacore!BNWriteWebsocketClientData+0x85b8
0b 00000020`155ff930 00007ffb`07679333     binaryninjacore!BNWriteWebsocketClientData+0x3311
0c 00000020`155ff960 00007ffb`093e257d     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x93
0d 00000020`155ff990 00007ffb`0a0caa48     KERNEL32!BaseThreadInitThunk+0x1d
0e 00000020`155ff9c0 00000000`00000000     ntdll!RtlUserThreadStart+0x28

I have tried on both Windows and macOS, and cannot reproduce this. @memN0ps do you have any plugins that could interfere with this? How much RAM do you have on your computer?

You can also try https://docs.binary.ninja/guide/troubleshooting.html#troubleshooting-plugins which will show how to test without plugins or settings to see if those are involved.

I'm not running any plugins and I have the same issue. This happens ntoskrnl every time but also occurs with other binaries.
Unfortunately I cannot find any pattern as of why this happens but its extremely frustrating and has been happening to me for a while.

Hey all,
Thanks for getting back to me.
Sorry for not reporting this earlier. This issue has been happening across different Binary Ninja builds and various Windows 10 and 11 versions.
I have tried a fresh install of Binary Ninja in a new VM and different builds of ntoskrnl.exe. Here are the specifications for my PC:

Processor: Intel i9-13900k
RAM: 128GB

I've tried this on my server as well with specifications:

Processor: Intel i9-14900k
RAM: 128GB

I can confirm that there are no crashes when loading ntoskrnl.exe on my MacBook Pro using Binary Ninja (4.0.4958). Here are the specs for the MacBook:

Processor: Apple M2
OS: 14.4.1 (23E224)
RAM: 24GB

Hey all,
Thanks for getting back to me.
Sorry for not reporting this earlier. This issue has been happening across different Binary Ninja builds and various Windows 10 and 11 versions.
I have tried a fresh install of Binary Ninja in a new VM and different builds of ntoskrnl.exe. Here are the specifications for my PC:
* Processor: Intel i9-13900k

* RAM: 128GB

* GPU: RTX 4090

I've tried this on my server as well with specifications:
* Processor: Intel i9-14900k

* RAM: 128GB

* GPU: RTX 4070

I can confirm that there are no crashes when loading ntoskrnl.exe on my MacBook Pro using Binary Ninja (4.0.4958). Here are the specs for the MacBook:
* Processor: Apple M2

* OS: 14.4.1 (23E224)

* RAM: 24GB

Could you test it with a Windows VM that has a moderate amount of CPU cores and RAM? I figured that might be the case that you have so many CPU cores, and it is a race condition that is hard to reproduce with lower CPU cores. The RAM is probably not related, but lowering it to 32GB might be reasonable.

I'm not running any plugins and I have the same issue. This happens ntoskrnl every time but also occurs with other binaries. Unfortunately I cannot find any pattern (binary size, dll/exe, etc) as of why this happens but its extremely frustrating and has been happening to me for a while.
CPU: Intel 13900k x64 OS: Windows 10 22H2 Build: 4.0.4958 Personal (ddff9339)

Hi, @notpidgey, thx for letting us know. Do you have a binary that can reproduce it? Also, can you share with us a stack trace at the crash?

Hi everyone,
I can confirm that Binary Ninja version 4.0.4958 (Stable) successfully loads ntoskrnl.exe without crashing under the following conditions:
OS Information:

Name: Microsoft Windows 10 Home
Version: 10.0.19045 (Build 19045)

VM Settings: (see screenshot below)

@xusheng6 appears to be correct.
Thanks.

Hey,
Is there any ETA to fix this issue? It's a bit annoying not being able to use it on the host OS given it's paid software.

We have no ETA at this time. Without a local reproduction it's much more difficult to fix. It sounds like we've at least identified a work-around in the near-term? Just limiting the number of cores?
In the future, please file other issues under a separate issue as opposed to just adding on to this thread.
Fedora Linux has a known incompatibility with the QT version we're using. If you download the latest dev branch, the fix is already landed there. (You can use https://binary.ninja/recover/ and switch the drop-down to "dev" to get that installer)

Hi @psifertex,
Thanks for getting back to me.
I just downloaded the latest dev branch on the host OS Linux fedora 6.8.10-300.fc40.x86_64 and loaded the same ntoskrnl.exe file and can confirm it's working fine on the server with the specifications mentioned here: https://github.com/Vector35/binaryninja-api/issues/5449#issuecomment-2130672715
Cheers.

Great. So it sounds like it's specific to high thread count and windows and that particular file. That makes more sense why it hasn't been reported before.
You can also try changing the worker thread count too on windows instead of having to use a VM or boot into Linux:
https://docs.binary.ninja/guide/settings.html#analysis.limits.workerThreadCount
Hopefully we can get a good reproduction or resolve it without that soon.

I'm not running any plugins and I have the same issue. This happens ntoskrnl every time but also occurs with other binaries. Unfortunately I cannot find any pattern (binary size, dll/exe, etc) as of why this happens but its extremely frustrating and has been happening to me for a while.
CPU: Intel 13900k x64 OS: Windows 10 22H2 Build: 4.0.4958 Personal (ddff9339)

Hi, @notpidgey, thx for letting us know. Do you have a binary that can reproduce it? Also, can you share with us a stack trace at the crash?

I apologize for the late response.
 I was able to reproduce it with another binary but I'm not sure if it would be appropriate to upload (please let me know I can also share it privately if this is a concern).

@notpidgey please feel free to share with us the file in private, either via<EMAIL_ADDRESS>or our public slack https://slack.binary.ninja/.
It seems like your issue is very similar to the original one. So please keep replying to this thread until we triage and understand the issue further

Just to provide more information to this -- there was a specific intel i9 13900k/14900k crash in games earlier this year, could that be related? https://www.theverge.com/2024/4/9/24125036/intel-game-crash-13900k-14900k-fortnite-unreal-engine-investigation

I have sent over an email with the issue number tagged.
Another thing I noticed is that this issue is more common if I try to open multiple files at once. Seems to guarantee a crash for me.
I will try these soon:
https://www.theverge.com/2024/4/9/24125036/intel-game-crash-13900k-14900k-fortnite-unreal-engine-investigation
https://www.pcgamesn.com/intel/stop-games-crashing-core-i9-unreal-engine

@memN0ps @notpidgey Could you please try and see if the crash also happens in the free version or not? https://binary.ninja/free/

I just tried and I was unable to reproduce it on free.

I just tried and I was unable to reproduce it on free.

Thx. The free version has some thread count limit so it probably affects it. If you have other computers, can you test if you can reproduce it with the regular (personal/commercial) version binja? I am still trying to figure out the factors that affect the bug

@notpidgey  I still cannot reproduce it with the newly provided binaries. Also, could you please try and see if the issue still happens if you set analysis.limits.workerThreadCount to a lower number?

@notpidgey I still cannot reproduce it with the newly provided binaries. Also, could you please try and see if the issue still happens if you set analysis.limits.workerThreadCount to a lower number?

Changing it to 4 seems to work and for reference my default is 31.
Tested this multiple times changing it back and forth to confirm.

@notpidgey I still cannot reproduce it with the newly provided binaries. Also, could you please try and see if the issue still happens if you set analysis.limits.workerThreadCount to a lower number?

Changing it to 4 seems to work and for reference my default is 31. Tested this multiple times changing it back and forth to confirm.

Could you try something in between, like 8, 16, or 24?

Could you try something in between, like 8, 16, or 24?
8 - No crash
16 - Crash (Took a few tries)
24 - Crash (First try)

If this is an issue with multi threading I'm assuming its possible for it to crash with lower amount of threads but its just less likely. However, I could not get this to happen but I could try more if you would like.

The user shared multiple crash dumps with us. Below is a representative one (binaryninja.exe.25144.dmp):
0:052> k
 # Child-SP          RetAddr               Call Site
00 000000e5`a10fc818 00007ff9`e529bea0     ntdll!NtWaitForMultipleObjects+0x14
01 000000e5`a10fc820 00007ff9`e529bd9e     KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000e5`a10fcb10 00007ff9`e5e1f93a     KERNELBASE!WaitForMultipleObjects+0xe
03 000000e5`a10fcb50 00007ff9`e5e1f376     kernel32!WerpReportFaultInternal+0x58a
04 000000e5`a10fcc70 00007ff9`e536da19     kernel32!WerpReportFault+0xbe
05 000000e5`a10fccb0 00007ff9`e7ab5570     KERNELBASE!UnhandledExceptionFilter+0x3d9
06 000000e5`a10fcdd0 00007ff9`e7a9ca06     ntdll!RtlUserThreadStart$filt$0+0xa2
07 000000e5`a10fce10 00007ff9`e7ab247f     ntdll!_C_specific_handler+0x96
08 000000e5`a10fce80 00007ff9`e7a614b4     ntdll!RtlpExecuteHandlerForException+0xf
09 000000e5`a10fceb0 00007ff9`e7ab0f8e     ntdll!RtlDispatchException+0x244
0a 000000e5`a10fd5c0 00007ff9`de951a74     ntdll!KiUserExceptionDispatch+0x2e
0b 000000e5`a10fdcd8 00007ff8`bc545ce2     VCRUNTIME140!memset+0x1d4 [D:\a\_work\1\s\src\vctools\crt\vcruntime\src\string\amd64\memset.asm @ 325]
0c 000000e5`a10fdce0 000000e5`a10fdd70     binaryninjacore+0x495ce2
0d 000000e5`a10fdce8 00000000`00000008     0x000000e5`a10fdd70
0e 000000e5`a10fdcf0 00000000`00000000     0x8

binaryninjacore is loaded at 0x7ff8bc0b0000
00007ff8`bc0b0000 00007ff8`c5304000   binaryninjacore T (no symbols)

The user is using Build: 4.0.4958 Personal (ddff9339)
Note, not all of the crash dump starts from binaryninjacore+0x495ce2, though. Some of them are from a different address, and some of them suffer from severe stack corruption and the stack trace is not very useful.

@notpidgey @notpidgey can you monitor the RAM usage when the crash happens? Could it be a OOM?

@xusheng6 Doesn't seem to be an OOM issue.

Is there anything I could do to help? Would a TTD be of any use?

I have asked my colleauges to try to reproduce it, so far no progress yet.
As for a TTD recording, we will be shipping a feature that lets you do a TTD recording within BN directly. Which I think might be helpful because you can make the trace file smaller by starting the recording later on, rather than from the launch of binja. This feature is not originally intended to be used as such -- it is just an coincidence. I will try to update on this no later than next Monday

One of the offending ntoskrnel binary:
ntoskrnl(1).exe.zip

This doesn't repro for me on 4.1.5422-dev, win10, 5950x, 32GB memory, default settings and no plugins

Hi @notpidgey, the TTD recording in binja will be delayed a bit. So I suggest you do a recording with Windbg following their docs: https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/time-travel-debugging-record. I suggest you do first launch binaryninja.exe, wait for it to become stable, then attach to the process, and start recording. This way, you can avoid doing the tracing during binja initialization. Once you get a trace file, it is probably very large, we have seen trace files of size 20GB or even more. Please upload it to the Internet and share a link with me in private (since the trace file may contain your private info)

After looking at the TTD trace, I am now suspecting that this is a stack overflow. The crash happens in a deep recursive function where there seems no other obvious reasons to crash. The binaryninja.exe we ship has 1MB stack size, which could be exhausted.
@notpidgey would you like to try patching the binaryninja.exe and give it a higher stack size? You can do it using binja itself -- just set the sizeOfStackReserve to a larger value, e.g., to 0x1000000 (16MB), or even larger. Might also wish to try it for sizeOfHeapReserve if it does not help.

Opening Binja in Binja causes a crash for me as well. Was able to patch it in a different way but even a stack reserve of 256MB I get a crash. I could send another TTD if that helps.

@notpidgey yes, a TTD replay after the patch would be helpful!

The user reproduced the bug with a debugger attached to BN:
EXCEPTION_DEBUG_INFO:
           dwFirstChance: 0
           ExceptionCode: C0000409 (STATUS_STACK_BUFFER_OVERRUN)
          ExceptionFlags: 00000001
        ExceptionAddress: binaryninjacore.00007FF970B929C1
        NumberParameters: 1
ExceptionInformation[00]:<PHONE_NUMBER>000002
Last chance exception on 00007FF970B929C1 (C0000409, STATUS_STACK_BUFFER_OVERRUN)!

Another user with i9-13900K and 32GB of RAM running windows helped test this and got no crash

All evidence continues to point to this being a specific bug with the latest Intel hardware. We'll leave this open for now and re-visit it once Intel releases a potential fix.

Just adding that I also faced this crash on 4.1.5560-dev with Win11 i9-14900k, 64GB ram when re-analysing an old .bndb, and reducing the worker thread count to 4 as instructed above allowed the .bndb to be analysed fully without the crash.
The stack trace was wildly different every crash, @glenns has more details, thanks to him for all the help.

FYI I was also experiencing crashes with one particular game, a thread suggested updating my BIOS which has fixed both the game and the loading of the .bndb that was crashing mentioned above. This is back on a worker thread count of 31 with 4.1.5575-dev.

I ordered a replacement processor yesterday so this is actually some unfortunate timing...
I updated my BIOS as well and it seems to have worked. Along with the BIOS update a lot of my motherboard default settings got changed. I'm sure its hardly relevant but here is the list in case someone runs into this issue.
BCLK Frequency 100.00 -> Auto
DRAM Frequency Auto -> DDR5-6000MHz
DRAM CAS Latency Auto -> 36
DRAM RAS to CAS Delay Read Auto -> 36
DRAM RAS to CAS Delay Write Auto -> 36
DRAM RAS PRE Time Auto -> 36
DRAM RAS ACT Time Auto -> 96
DRAM VDD Voltage Auto -> 1.35
DRAM VDDQ Voltage Auto -> 1.35

Thanks for the updates, glad it's resolved! We'll add a note to our troubleshooting documentation shortly.


Empty sessions saved in cache

We've noticed that play-pac4j saves creates session for every request and, if empty, they are saved in the cache. We use a redis cache and this behaviour would mean that we would fill up our cache really quick with essentially empty sessions. Is this something you are interested in looking into?

Can you elaborate on this? What PlaySessionStore? ...

We are using the PlayCacheSessionStore.

OK. "play-pac4j saves creates session for every request": what do you mean by that?
A session should only be created by play-pac4j when there is something to put in it (the set method).

I looked more into it and if we're accessing the site with an anonymous client, and no other client authorizes me, then it saves something in the cache, but the session cookie is not saved. Which means that the session, or profile, for every request that succeeds, gets saved in the cache. In our cache, since the cache is a db, this coupled with multiple offline page views, results in our database to potentially overflow. I can take a deeper dive into it so I can be even more precise, if you'd like :)

I see several times in the logs: "generated sessionId: xxx", which may be the root cause. The sessionId should be generated only once per request. I'll investigate...

Great! However, I'm thinking that this might still not be enough. Even though the sessionId is not recreated for the same session, it still means that an anonymous session is saved in the cache. Is it possible to not save the anonymous sessions in the cache?

As a first step, can you try play-pac4j v9.0.0-RC4-SNAPSHOT and see if only one session is generated per request? Thx

yes, of course, thank you for the quick fix.

Hmm...that wasn't it. It's still saving new objects in the cache everytime I refresh the same view (so it should be the same session). I will take a closer look at it to see the component that's causing this behaviour. And I set the version of play-pac4j to 9.0.0-RC4-SNAPSHOT.

So after some more debugging, I verified that when using the anonymous client, the PLAY_SESSION cookie is not set in the browser, and so, I assume, it results in the creation of different pac4jSessionIds.
Afterwards, I tried to login and then logout. The PLAY_SESSION cookie remained set with the sessionId I was given and there were no new sessionIds created until I removed the cookie by hand. Hope this give you some insight into where to look into, when you have the time, of course :smile:  Thank you for your time for now. I will look into it more tomorrow.

I had the same issue: every refresh of the page generated a new sessionId. I just committed one more improvement to deal with that. You may need to use the supplementResponse method on the result if you create your own PlayWebContext.

Hi Jerome,
After some fiddling today, I found out that the session is still being recreated. We are not creating our own PlayWebContext.
I found out that the object that's being put in the cache, for every request, with a new sessionId, is the pac4jCsrfToken.

OK. So this is generated by the default matchers configuration which is crsfToken. Can you switch to none? Thx

I tried not adding the crsfToken to the cache. That solved the problem with caching filling up when called with the anonymous Client,but now, we're getting a [CompletionException: org.pac4j.core.exception.TechnicalException: State parameter is different from the one sent in authentication request. Session expired or possible threat of cross-site request forgery].
This tells me that the token is needed in the cache, but then, the underlying problem of the sessionId recreating itself is still something we have to address.
The PLAY_SESSION cookie is not set when not logged in and browsing/refreshing the pages via the anonymous client, is this potentially a bug,or is it intended behaviour?

The state parameter is something different from the CSRF token, but both are stored in the session so you need the session in some login processes.
Are you sure you tested with the latest play-pac4j v9.0.0-RC4-SNAPSHOT?
I use the following demo for my tests: https://github.com/pac4j/play-pac4j-java-demo and the sessionId is no longer re-generated when refreshing the index page. with the latest 9.0.0-RC4-SNAPSHOT.

Yes, I am sure I was using the latest  play-pac4j v9.0.0-RC4-SNAPSHOT because I pulled the latest changes from the repository and added some custom logging and saw them in my output.
We are not creating our own PlayWebContext as you are in the play-pac4j-demo. I will try to implement that throughout our project and see if it helps.

I was looking at the comments and noticed that I forgot to mention that we're implementing play-pac4j in Scala.

I made some changes to the play-pac4j-demo project to mimic the behaviour that we experience with sessionIds that we've been discussing :)
Please check this pull request:
https://github.com/pac4j/play-pac4j-scala-demo/pull/79

We cannot use the PlayCacheCookieStore because the size of the cookie gets larger than 4KB, as described here:
https://www.playframework.com/documentation/2.7.x/ScalaSessionFlash#How-it-is-different-in-Play

I tested in Java and didn't see the issue. Now I can reproduce your problem with the Scala demo. I will investigate...

OK. I got it. Things are a bit tricky. By default, the PlayWebContext holds the data (cookies, session, ...) necessary for the response. A call is needed to the supplementResponse method to add that data to the Result.
This only happens when the pac4j framework returns a Result. With the AnonymousClient, the request is passed through by the Secure function (notice the request is also supplemented) and pac4j does not return a Result.
So for each call on the AnonymousClient URL, a new session would be generated and lost.
Since play-pac4j v9.0.0-RC4-SNAPSHOT, the session id is also saved as a request attribute and saved as the request is supplemented. If you create a new PlayWebContext and calls the SessionStore the session id from the request is restored in the session and the Result can be correctly supplemented.
To make it short, you need to add this code:
    val webContext = new PlayWebContext(request, playSessionStore)
    val sessionStore = webContext.getSessionStore().asInstanceOf[SessionStore[PlayWebContext]]
    sessionStore.getOrCreateSessionId(webContext)
    webContext.supplementResponse(Ok(views.html.index(...)).asJava).asScala

OK. I got it. Things are a bit tricky. By default, the PlayWebContext holds the data (cookies, session, ...) necessary for the response. A call is needed to the supplementResponse method to add that data to the Result.
This only happens when the pac4j framework returns a Result. With the AnonymousClient, the request is passed through by the Secure function (notice the request is also supplemented) and pac4j does not return a Result.
So for each call on the AnonymousClient URL, a new session would be generated and lost.
Since play-pac4j v9.0.0-RC4-SNAPSHOT, the session id is also saved as a request attribute and saved as the request is supplemented. If you create a new PlayWebContext and calls the SessionStore, the session id from the request is restored in the session and the Result can be correctly supplemented.
To make it short, you need to add this code:
    val webContext = new PlayWebContext(request, playSessionStore)
    val sessionStore = webContext.getSessionStore().asInstanceOf[SessionStore[PlayWebContext]]
    sessionStore.getOrCreateSessionId(webContext)
    webContext.supplementResponse(Ok(views.html.index(...)).asJava).asScala

Shouldn't this be a native part of play-pac4j?

I wish so, but I don't see any solution. The design of the Secure function is to pass the request, w don't have access to the Result as far as I know.
I'm working on another solution, which does not rely on knowing the intricates of play-pac4j...

If you use the latest play-pac4j v9.0.0-SNAPSHOT and pac4j v4.0.0-SNAPSHOT, you have now a better solution:
You can define that you don't want to load the profiles from the session for the AnonymousClient:
public class CustomProfileStorageDecision <C extends WebContext> implements ProfileStorageDecision<C> {

    @Override
    public boolean mustLoadProfilesFromSession(final C context, final List<Client> currentClients) {
        return isEmpty(currentClients) || currentClients.get(0) instanceof IndirectClient;
    }

    @Override
    public boolean mustSaveProfileInSession(final C context, final List<Client> currentClients,
                                            final DirectClient directClient, final UserProfile profile) {
        return false;
    }
}

and then use it in your configuration:
    val logic = new DefaultSecurityLogic
    logic.setProfileStorageDecision(new CustomProfileStorageDecision[WebContext])
    config.setSecurityLogic(logic)

That way, no profile will be retrieved from the session and no session will be created for the AnonymousClient.

Hi Jerome. Interesting solution...but... We can still see sessions being created with the csrfToken stored in them. These sessions are saved in the cache and since we use a db cache, we are filling up our db with new sessions with, I guess, new csrfTokens for each request.

You must also disable the CSRF tokens with matchers = "none".

Can you point me in the right direction? This is a little vague for me.

Yes! The matchers="none" fixed our recurring sessions in the db
Thank you very much!

What is the implication of having the matchers="none" ? For now, we can see that our login didn't break and everything still seems to work as expected,but we are curious about that question :)

By default, matchers are securityHeaders,csrfToken. It means that security headers will be added to the request and that the CSRF token will be computed. none means nothing happens.
You could just use securityHeaders in fact.
http://www.pac4j.org/docs/matchers.html


Limit size of messages received by the server from island

Is there an option like maxMessageSize to limit the size of messages sent to the server? Is there an option for this from javascript?

Nope this is not done yet. How does ws do this? What's the option name?

ws does it with the option 'maxPayload', but I'm not sure the option is documented.

It's called maxPayload https://github.com/websockets/ws/blob/master/lib/WebSocketServer.js#L40
Ws discards messages >maxPayload length. I wrote the

I know that it maintains a "buffer" that keeps track of how large the message is, but I don't know if it does it only for fragmented messages, or if it reads the frame sizes as well, discarding them immediately if they're too big.

@seapunk it does it for compressed/fragmented messages as well https://github.com/websockets/ws/blob/master/lib/PerMessageDeflate.js#L14

@alexhultman you had a similar option for lws I think.

This is now in master. Truncation currently, might change to drop the frame completely.

Great job!


Implement Access Key Rotation Procedure for Enhanced Security

User Story
As a MP engineer,
I want to enforce a procedure that requires users to rotate their access keys every 90 days, so that we can maintain compliance with security guidelines and reduce the risk associated with long-term use of the same access keys.
Value / Purpose
Implementing this access key rotation procedure will enhance our security posture by ensuring that access keys are regularly updated, reducing the potential for unauthorized access. This change will also align with best practices for security management.
Useful Contacts
No response
Additional Information

The process will require users to create new access keys if their existing keys are 90 days old or more, regardless of their usage status.
This procedure will apply to superadmins and collaborators users.
Currently, access keys are deleted only if the user has been inactive for 90 days or more. This new procedure will introduce an additional security layer by enforcing regular key rotation.

Definition of Done

[x] The process is automated to delete access keys that are 90 days old.
[x] The key rotation procedure is successfully applied to all users, including superadmins.
[x] The change is tested and verified
[x] Notify users (as a one off) in slack channels that this will be happening every 90 days
[x] Update/create documentation

Reviewed- all criteria in the definition of done have been met and the documentation in our user guide regarding access key management can be found here: https://user-guide.modernisation-platform.service.justice.gov.uk/user-guide/access-key-management.html#access-key-management


Error at open project or add dependency

Hi
When i try to open the Folio Reader project, i get the following error message
Error:Cause: com/android/build/gradle/internal/model/DefaultAndroidProject : Unsupported major.minor version 52.0
When i try to add the dependency  compile 'com.folioreader:folioreader:0.2.3' to a sample project i get the following message
Error:(7, 13) Failed to resolve: com.folioreader:folioreader:0.2.3
What could be the problem?
Regards

Were you connected to internet when you sync gradle after adding FolioReader dependency?
also use latest FolioReader version 0.2.4?

Hi, yes i have internet connection.
I try with the following version: com.folioreader:folioreader:0.2.4 , com.folioreader:folioreader:0.2.5 and get the same error.
Then i try:   compile 'com.folioreader:folioreader:+',  This way I could use your library and it is functional.
Regards.

@djinnjuank there seems to be some problem with jcenter.. Library has stopped syncing with jcenter for some reason.. Have contacted jcenter support.

fixed


Issue with /docs/getting-started-guides/kops/

This is a...

[ ] Feature Request
[ x] Bug Report

Problem:
The eu-west-2 (london az) is not yet known to kops.
Running:
kops create cluster --zones=eu-west-2 eu-west-2.dev.mydomain.com
Fails with the following result:
unable to infer CloudProvider from Zones (is there a typo in --zones?)
Proposed Solution:
Add the eu-west-2 az to kops.

This is a bug that is filed upstream and in the kops repo.  Thanks for the error report!

@tomweston Thanks for opening this issue.
@chrislovecnm Do the docs need to be updated, or can we close this issue?

@zacharysarah this should be fixed!  Please close, and @tomweston please re-open if you need to!

@chrislovecnm Thanks!


Progress is not updating instantly

I am implementing circleProgressView in swift but I can't update progress instantly.
Could you please assist here?

Hi jimAnderson007,
Can you please provide an example of your issue? I'm afraid I'm having some trouble figuring out what you're experiencing.
Thanks!

@jimAnderson007 Please ensure that you are updating progress on the main thread.

I agree with the jim
Even with code below, its nor updating smoothly:
dispatch_async(dispatch_get_main_queue()) {
self.circleProgressView.setProgress(self.barPercent,animated: true)
}
Can you please help

I'm experiencing the same behaviour. Sometimes it takes several seconds for indicator to animate progress, sometimes it happens almost instantly.

Im taking a look at may be due to the CADisplayLink needing to fire on the next runloop execution. Looking for an alternative.

I'm experiencing this issue too. Has anyone figured out a fix?

Fixed with PR 29.

Updated with new pod version 1.0.10


Title character spacing

Problem
The negative % character spacing (-1%) on Title SM, Title MD and Title LG is causing strange rendering on iOS and Android devices. This was clearly evident on the CardSummary and may display awkwardly on other devices.
Proposed Solution
To address this issue, we propose removing the character spacing. This should prevent further rendering issues and ensure consistent display across devices.

I will take care of the changes :)

Thanks @hcourthias :)


Refreshing issue while returning from another tabs

Hi John,
Good Work!!
This is a nice board with good options.
But, I have some loading issue with drawing board, when i open other tabs in the browser and returning to the board. The board is completely becoming empty when i return from another tabs to board. Can you please let me know how to fix this issue. If i try to reload the URL then only the complete board is displaying as it is before.

I assume some disconnect logic needs adding.  See if a socket disconnect event is fired and/or reconnect and add some logic to reload the board on reconnect.

Due to Chrome tab discarding. As a workaround, you can disable it in Chrome https://productforums.google.com/forum/m/#!topic/chrome/9mmeqjl5BvA

Hey @shilpabuddha4, what browser are you using? If using chrome, are you still having the issue (if you have upgraded to the latest version)

I've had the same issue, for some time, as well.  I just reload--not ideal, however.

Yeah, it's been an issue for quite a long time. Hopefully, I'll get a little bit of time to look at this.


Flash usage with Slim 4 and Twig

I'm having an issue where I can add flash messages from a Controller or Service class and confirm the messages are in flash storage with a debug of the getFlash() method, but then they don't appear in the Twig template.
General usage of the get and set methods is working OK. For example I can authenticate a user and store their information in the session for subsequent page views.
Environment:
odan/session: 6.1.0
slim: 4.12.0
slim/twig-view: 3.2.0
php-di: 6.3.4
php-di/slim-bridge: 3.4.0
My relevant container definitions:
use Odan\Session\{
    PhpSession,
    SessionInterface,
    SessionManagerInterface
};
use Slim\Views\{
    Twig,
    TwigMiddleware
};
use Twig\TwigFunction;

SessionManagerInterface::class => function (ContainerInterface $container) {
    return $container->get(SessionInterface::class);
},

SessionInterface::class => function (ContainerInterface $container) {
    $options = $container->get('settings')['session'];
    return new PhpSession($options);
},

Twig::class => function (ContainerInterface $container) {
    # truncated start of definition
    $environment = $twig->getEnvironment();
    $session = $container->get(SessionInterface::class);
    $environment->addGlobal('flash', $session->getFlash());
    # truncated rest of this definition
},

TwigMiddleware::class => function (ContainerInterface $container) {
    return TwigMiddleware::createFromContainer($container->get(App::class), Twig::class);
},

In a Twig partial I have:
{%- set errors = flash.get('errors') -%}
{% if errors|length > 0 %}
    {% for message in errors %}
    <div class="alert alert-danger">
        {{ message|raw }}
    </div>
    {% endfor %}
{% endif %}

Then in a Controller method:
private SessionInterface $session;

private Responder $responder;

public function __construct(
    SessionInterface $session,
    Responder $responder
) {
    $this->session = $session;
    $this->responder = $responder;
}

public function index(
    ServerRequestInterface $request,
    ResponseInterface $response
) {
    $this->session->getFlash()->add('errors', 'Oops!');
    dd($this->session->getFlash()); # enable this line to debug

    return $this->responder
        ->withTemplate(
            $response,
            'account/index.twig'
        );
}

That debug (dd) call shows the message in storage:
Odan\Session\Flash Object
(
  [storage:Odan\Session\Flash:private] => Array
    (
      [_flash] => Array
        (
          [errors] => Array
            (
              [0] => Oops!
            )

        )
    )
)

But if I remove the debug call and let the Twig template load, it doesn't display the message.
I thought there might be an issue with scope of included Twig partials, so tried debugging directly in index.twig: {{ debug(flash) }} shows it's a Flash object, but it appears to be empty:
Odan\Session\Flash Object
(
    [storage:Odan\Session\Flash:private] => Array
        (
        )

    [storageKey:Odan\Session\Flash:private] => _flash
)

I've also tried this with setting a flash message on one page and redirecting to another, but the same thing happens.
I realize this might be an issue with my PHP-DI configuration, but I've tried a lot of variations and haven't had luck. I wanted to ask here in case you have any examples of Slim+PHP-DI+Twig implementations of this. I checked your slim-skeleton package and didn't see it there.
Oh, almost forgot. I did try changing the order of middleware but that doesn't seem to have an impact. Initially I had:
return function (App $app) {
    $app->addBodyParsingMiddleware();

    # truncated ...

    $app->add(SessionStartMiddleware::class);

    // The RoutingMiddleware should be added after our CORS middleware so routing is performed first
    $app->addRoutingMiddleware();

    $app->add(TwigMiddleware::class);

    $app->add(ErrorHandlerMiddleware::class);

    // The ErrorMiddleware should always be the outermost middleware
    $app->addErrorMiddleware(true, true, true);
};

And I tried moving the SessionStartMiddleware below the TwigMiddleware:
    $app->add(TwigMiddleware::class);
    $app->add(SessionStartMiddleware::class);

Thanks for any pointers you might have!

The DI container is not tied to a specific HTTP request context, whereas the Session instance is specific to the HTTP context. Therefore, if you instantiate Twig before the SessionStartMiddleware initiates the actual session handler, both the session and its flash storage in Twig will be empty. This is because the session hasn't been started when the DI container is being defined.

To correctly load the Flash reference in Twig, you must pass the flash variable within the HTTP-specific context.
Implement a middleware to achieve this:
First, remove Session (and Twig-Environment) -specific lines from the DI container definition:
$environment = $twig->getEnvironment();
$session = $container->get(SessionInterface::class);
$environment->addGlobal('flash', $session->getFlash());

Next, add a middleware to set the appropriate Flash instance as a global variable in Twig:
File: src/Middleware/TwigFlashMiddleware.php
<?php

namespace App\Middleware;

use Odan\Session\SessionInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Slim\Views\Twig;

final class TwigFlashMiddleware implements MiddlewareInterface
{
    private Twig $twig;
    private SessionInterface $session;

    public function __construct(Twig $twig, SessionInterface $session)
    {
        $this->twig = $twig;
        $this->session = $session;
    }

    public function process(
        ServerRequestInterface $request,
        RequestHandlerInterface $handler
    ): ResponseInterface {
        $flash = $this->session->getFlash();
        $this->twig->getEnvironment()->addGlobal('flash', $flash);

        return $handler->handle($request);
    }
}

Then add the TwigFlashMiddleware::class before the SessionStartMiddleware::class.
// ...
$app->add(TwigFlashMiddleware::class);
$app->add(SessionStartMiddleware::class);
// ...

I hope this helps.

Thanks so much! I'll try this out.

That worked a charm!

Next, add a middleware to set the appropriate Flash instance as a global variable in Twig:

This is super helpful and should be in the docs under Twig section.


invalid audio data info on a specific mp3 with id3v2

Wrong bitrate, sample rate and duration reported on a specific file.

fixed by ff132dfac2ed09e1351ba9ca46ed96bed2698530


⚠ Bofrost.at has degraded performance

In 91a36a2, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1983 ms

Resolved: Bofrost.at performance has improved in 9ec8713.


Handling Oracle's missing ILIKE operator

Oracle does not have the ILIKE operator, which makes the pure usage of wlNext.caseSensitive flag not possible.
Here's what I found out and what my change is based on. Setting wlNext.caseSensitive: true produces a plain LIKE query, which makes perfect sense.
Setting wlNext.caseSensitive: false produces an ILIKE query. This case throws an error when using with Oracle, because Oracle does not have the ILIKE operator.
My solution above was twofold. First, I fixed the DRY violation on the wlNext.caseSensitive flag checking. Second, I added a new flag wlNext.forceLike with which one can indicate that the database requires LIKE to be used, instead of ILIKE.

Hello @cope!,
Thanks for your patch!


Using Value prop on useAutocomplete hook breaks text input

[ x] The issue is present in the latest release.
[x ] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

Providing a partial or empty array to useAutocomplete hook value prop breaks the text input. If you pass in an array with all the options the text input works.
I have also experienced issues with the Value prop when using in a higher order component. Passing an array with all options when used in a higher order component still doesn't work.
Expected Behavior 🤔

Providing a partial or empty array to useAutocomplete hook should allow you to still enter text in the input.
Using the useAutocomplete hook in a Higher Order Component with the value prop should not break the text input.
Steps to Reproduce 🕹

https://codesandbox.io/s/material-demo-forked-d2xs4?file=/demo.js
Steps:

Provide partial or empty array to value prop
Try to enter text in the input

Steps:

Provide any array to value prop when used in HOC
Try to enter text in the input

Context 🔦

Your Environment 🌎
Can't finish combobox with custom listbox

`npx @material-ui/envinfo`
  Don't forget to mention which browser you used.
  Output from `npx @material-ui/envinfo` goes here.

@TonyVeigel Why did you close?

@oliviertassinari I don't know if it's the intended behavior but right after I submitted the issue I wondered if it wasn't working because I wasn't using state to manage the array . So I tried putting the array in state and it worked. Still doesn't work in the other instances which seems odd. My use case was passing in selected options from a parent component. Now I pass in the selected options from parent and set them in state then use the state variable for the value prop.

@TonyVeigel Yes, correct. You create a new value at each render. When a new value is provided the autocomplete clears the input. So it's completely frozen.


[SDK] Fix: Add JSDoc documentation for getSocialIcon function

CNCT-2324

PR-Codex overview
This PR enhances the documentation for the getSocialIcon function, providing a detailed JSDoc comment that explains its purpose, parameters, return value, and includes usage examples.
Detailed summary

Added a JSDoc comment for the getSocialIcon function.
Described the function's purpose, parameters, return value, and provided usage examples.
Changed the return type of getSocialIcon to explicitly specify it returns a string.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Merge activity

Nov 12, 2:56 PM EST: The merge label 'merge-queue' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


Fixing loaders again. Resolves #47.

See #47

Released in https://github.com/single-spa/single-spa-layout/releases/tag/v1.0.0-beta.4


fix(curriculum): Corrected test which allowed wrong solution to pass

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Fixes a bug in the challenge Adjust the Height of an Element Using the height Property that allowed user to not specify the px unit after the value 25.  Also, made the test more flexible by stripping white space before test and allowing no semi-colon if height property is specified at end of class definition.
Also, rewrote the sibling challenge Adjust the Width of an Element Using the width Property with similar assert statement.
Closes #17628

Thanks for fixing that @RandellDawson, this LGTM now!


Tls

add example:docker moderate-wordpress-stack-production and tls

It consists of your docker example commit either. Could you separate it?


HA Warning - Does not set FanEntityFeature

Looks like this integration needs to be updated to comply with the fan entity requirements:
2024-08-10 03:15:07.217 WARNING (MainThread) [homeassistant.components.fan] Entity None (<class 'custom_components.dyson_local.fan.DysonPureCoolEntity'>) does not set FanEntityFeature.TURN_OFF but implements the turn_off method. Please create a bug report at https://github.com/libdyson-wg/ha-dyson/issues
2024-08-10 03:15:07.217 WARNING (MainThread) [homeassistant.components.fan] Entity None (<class 'custom_components.dyson_local.fan.DysonPureCoolEntity'>) does not set FanEntityFeature.TURN_ON but implements the turn_on method. Please create a bug report at https://github.com/libdyson-wg/ha-dyson/issues

Ah, sure. Thanks. I didn't catch that from the title of that other issue :)

@danielgoepp I owe you an apology actually! #128 was a different set of logs that looked REALLY similar. I didn't realize this until just now though, after I opened up #183.
You beat me to the punch! Thanks for this, and sorry for not looking at it more closely.


Update to vanilla Botan 3 with own release scripts

https://plancksecurity.atlassian.net/browse/CORE-421
Use Botan 3 with updated CI scripts for our purposes.

If we are not adding anything to botan-3, why don't we use the system OS package manager to install it? On ubuntu is as easy as sudo apt-get install botan or something like that.
I know this is still on draft, but I haven't been paying attention to botan 3 efforts.


OpenSSL 3.0.8 Bug in EVP_get_digestbynid

Hello OpenSSL-Experts,
I think i found an issue when calling EVP_get_digestbynid with sha384 (nid= 673). I tried it with OpenSSL 3.0.8 which failed. But OSSL 3.0.2 did not fail.
As example:
int main(){

    const EVP_MD *type = EVP_get_digestbynid(673);
    if(type == NULL){
        std::cout << "Error in " << std::hex << OpenSSL_version_num() << std::endl;
        return -1;
    }
    return 0;

}

Expected Behavior:
Main returns 0.
Current Behavior:
Main returns -1 using OpenSSL 3.0.8.

That is very strange. This works perfectly for me against 3.0.8.
Where did you get your version of 3.0.8? Did you compile it yourself? What platform are you on?

Hi, yes the library is compiled by myself, i got it from GitHub regular 3.0.8 version. Platform is linux and compiled with clang14.

After quick testing, unfortunately i used the same build commands for Openssl 1.1.1. Some of the compile options may have been deprecated as i assume. I am closing this issue.


Switch dchousing to pull csv directly

From #194:
Flagging a future issue we'll run into using the endpoint you set up for dchousing. ESRI by default limits the API calls to 1,000 records, as we found in #198 . Using the geojson endpoint but swapping .geojson for .csv will return the full api data already formatted as .csv.
Change the data download method for the DCHousing.py - instead of using geojson and converting, download as a CSV file directly, the way is done in opendata.py. OR, simply add dchousing data source to the opendata.py class and adjust meta.json to match.

Note, this will only be an issue if the dchousing data set reaches greater than 1,000 records; the current code works as-is. This will help us future-proof the data collection process.

Completed and merged in PR #378 - closing ticket


Use AsRef<str> for sysctl bits

I was randomly looking at another PR, and noticed that in about
half the cases, we heap allocate a String, but then use as_str()
to borrow it briefly.  In other places we directly use &str.
It maximizes flexibility for the caller to use AsRef<str>; then
we don't need a .as_str() dance, we can just directly pass ownership
of the string into the function.
To pick one other random real world example of this, see:
https://github.com/rust-lang/rust/blob/9bb77da74dac4768489127d21e32db19b59ada5b/compiler/rustc_errors/src/diagnostic_builder.rs#L198

Compile test is complaining, code otherwise LGTM

Fixed, I think I made that typo accidentally when I went to re-commit to do the signoff

/lgtm
/approve


v2.3.0 missing from changelog

There was a recent v2.3.0 release, but that's not listed in CHANGES.rst (and thus also isn't in the changelog on RTD).

Fixed, thanks for catching.

v2.4.0 seems to be missing again...

Looks like @gaborbernat fixed this in e438af25e1d682d09794f33fa64e60d175304395 (for v2.4.0 as well).


Getting error when publishing to Azure

source link:
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-windows-containers-custom-fonts
I configure as the article said,
docker.file:
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
RUN ${source:-obj/Docker/publish/InstallFont.ps1}

and i configure the registry, and it pops up an error:
2019/8/2 15:21:49
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.WebTools.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass43_0.b__3()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__205.MoveNext()
---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.<---
System.Exception: Build failed. Check the Output window for more details.
===================

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

ID: 046582d4-a031-1e6a-fbdd-ff6f59245266
Version Independent ID: e73b7c20-3f12-5ab5-1def-460df469d16e
Content: Build ASP.NET app with Windows container (Preview) - Azure App Service
Content Source: articles/app-service/app-service-web-tutorial-windows-containers-custom-fonts.md
Service: app-service-web
GitHub Login: @cephalin
Microsoft Alias: cephalin

@Pancat007 Thank you very much for bringing this issue to our attention. We are reviewing the tutorial and investigating the possible root cause.

@Pancat007 There are many common issues that have the standard error code, "System.AggregateException: One or more errors occurred". Can you please check the output window to see if you can obtain a more specific error on the matter? We look forward to your reply.

@BryanTrach-MSFT
Thank you for your support, I think it's probably becaused I haven't started the docker container service before adding
RUN ${source:-obj/Docker/publish/InstallFont.ps1}
I re-do the whole process, and when i inserted the code, it automatically began to download some components. After a few moments, it was successfully built, and i got the success page as the end of the tutorial shown.
and btw, offering a suggestion, i think the tutorial page need to be update, including a "notice" about the container service must be started before adding the code, and the "create web app" step should be updated due to the Azure portal has changed and is not what it used to be.

@Pancat007 Thank you for the feedback. We have assigned the item to the doc author.
@cephalin We verified that the portal experience has changed compared to what is shown in the doc. We are unable to update pictures in articles. Is this something you can look at. There is also a suggestion to call out that the doc should point out that the container should be started before adding the code.

@Pancat007 Sorry for the delay. Portal steps changed and suggested note added. It should be published sometime today. Thank you. #please-close


Add Org Type, and bring back Lookup ID as Student/Staff ID for schools

As a school, I want to be able to look up students using their student ID so that they are easier to find and I can join the SimpleReport data with my other data about them.
Description
As a part of https://github.com/CDCgov/prime-simplereport/issues/290 we removed the Lookup ID because it was confusing, no one used it, and we were worried users would put SSNs in there. However, we've gotten strong feedback from universities and K12 schools that they would really like to use it to be able to lookup students by their ID and to join SimpleReport data to their other data.
No other user type has expressed interest in using this field. Rather than have it generic and available to everyone, instead we will only make it available to schools.
TODO:

[ ] Create an Organization Type field on the Organization settings page with options: K12 School, University, Nursing Home, Assisted Living, Urgent Care/ER, Clinic, Mobile Testing Site, Group Home, Other Congregate Setting, Other

[ ] If the Organization type is K12 school or University- show the lookup ID field.

[ ] Change the Lookup ID label to say "Student/Staff ID"

From an implementation side it seems like an organization preference that we're setting implicitly when we set the org type. That seems fine from a UX standpoint, but probably we should make the API more explicit.

We did this for student ID... #1170 & its PR #1213. Are we looking to add Staff ID at this time, or is this ticket just mispaced?


double-beep: Blacklist ameliaalby

double-beep requests the blacklist of the username ameliaalby. See the MS search here and the Stack Exchange search here.

ameliaalby has been seen in 12 true positives, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


Fixes wrong provider name in error message

Description of your changes
This PR fixes displaying the wrong provider name (grafana -> keycloak) in the error message, when an error occurs with the provider/providerConfig.

I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable test to ensure this PR is ready for review.

thx!


Make kivy work with new wheels.

This adds a kivy/deps namespace (https://pythonhosted.org/setuptools/setuptools.html#namespace-packages). Using this namespace binary deps are installed and made available to kivy.
What this pr does
During import, kivy imports all the packages it find in kivy/deps and those packages are responsible for making sure their binaires are available. For us on windows using the wheels, this means adding the bin of the wheel to the dll search path as described at https://github.com/numpy/numpy/wiki/windows-dll-notes#python-dlls.
The other change in this pr is hat if during compiling sdl inlcudes are not provided in an env variable, add python/include to the path. SImilarly, we also look for pkgconfig in python/lib/pkgconfig.
With this, our wheels that will be auto generated with appveryor or manually using (https://github.com/kivy/kivy-sdk-packager/tree/wheels) will work.
How to test this and wheels with a clean python

download and install python and make sure you have the latest pip, wheel and setuptils pip install --upgrade pip wheel setuptools.
open a command prompt.
Make sure that both python.exe and  python/Scripts is on the path.
create the python/ib/distutils/distutils.cfg file and add the two lines, [build] and compiler = mingw32.
do pip install -i https://pypi.anaconda.org/carlkl/simple mingwpy.
do pip install cython.
download all the wheels from (https://www.dropbox.com/sh/x87fl6g2j5letrl/AADJBbiOAV-ncvB5DSgSqQ15a?dl=0) and add them to python/ so you can do wheel install kivy.deps.glew_dev-0.1.0-py2-none-any.whl kivy.deps.glew-0.1.0-py2-none-any.whl kivy.deps.gstreamer_dev-0.1.0-py2-none-any.whl kivy.deps.gstreamer-0.1.0-py2-none-any.whl kivy.deps.sdl2_dev-0.1.0-py2-none-any.whl kivy.deps.sdl2-0.1.0-py2-none-any.whl.
do set USE_SDL2=1 and set USE_GSTREAMER=1.
finally do pip install pygments docutils https://github.com/matham/kivy/archive/deps.zip.
to test do python share\kivy-examples\demo\kivycatalog\main.py.
finally, cry with joy for not needing to download anymore kivy's portable package rather then using your existing python.

Closing this for https://github.com/kivy/kivy/pull/3804.


Assertion `!(srcMmaLayout && dstMmaLayout && !srcMmaLayout.isAmpere()) && "mma -> mma layout conversion is only supported on Ampere"' failed

Hi, I'm running the code generation command and reporting an error.
The triton version is consistent with the warehouse version. When I tried to upgrade the version, I still reported the same error. What's going on here, please?
Commands:
python -m lcb_runner.runner.main --model "codellama/CodeLlama-13b-Instruct-hf" --local_model_path /home/zhengyongk/model/CodeLlama-13b-Instruct-hf --dtype float16 --tensor_parallel_size 2 --scenario codegeneration
Error:
Processed prompts:   0%|                                                                                | 0/400 [00:00<?, ?it/s]python: /project/lib/Analysis/Allocation.cpp:43: std::pair<llvm::SmallVector<unsigned int>, llvm::SmallVector<unsigned int> > mlir::triton::getCvtOrder(mlir::Attribute, mlir::Attribute): Assertion!(srcMmaLayout && dstMmaLayout && !srcMmaLayout.isAmpere()) && "mma -> mma layout conversion is only supported on Ampere"' failed.
*** SIGABRT received at time=1714379639 on cpu 2 ***
PC: @     0x7f89a00bfe87  (unknown)  raise
@     0x7f89a0c29980  (unknown)  (unknown)
@ 0x4173257325203a75  (unknown)  (unknown)
[2024-04-29 08:33:59,929 E<PHONE_NUMBER>27] logging.cc:365: *** SIGABRT received at time=1714379639 on cpu 2 ***
[2024-04-29 08:33:59,930 E<PHONE_NUMBER>27] logging.cc:365: PC: @     0x7f89a00bfe87  (unknown)  raise
[2024-04-29 08:33:59,934 E<PHONE_NUMBER>27] logging.cc:365:     @     0x7f89a0c29980  (unknown)  (unknown)
[2024-04-29 08:33:59,939 E<PHONE_NUMBER>27] logging.cc:365:     @ 0x4173257325203a75  (unknown)  (unknown)
Fatal Python error: Aborted`

Hi, it seems that prefix caching is not supported on Ampere GPUs (https://github.com/vllm-project/vllm/issues/2729).
I have made it optional now, hope it works out!

Hi, it seems that prefix caching is not supported on Ampere GPUs (vllm-project/vllm#2729). I have made it optional now, hope it works out!

Effective, thank you very much.

Hi, it seems that prefix caching is not supported on Ampere GPUs (vllm-project/vllm#2729). I have made it optional now, hope it works out!

Effective, thank you very much.

@Naman-ntc @kartikzheng
so how to solve this problem？


Nodes hitting max-volume limit still considered eligible for pods by Karpenter?

Version

Karpenter: v0.10/1

Kubernetes: v1.22.6-eks-7d68063
Background
We have certain workloads that mount a lot of PVCs to our EC2 nodes. Because these EC2 nodes are Nitro nodes, they share their "attachment limits" between ENI and EBS volumes. To try to minimize the situation where we run out of ENIs because of EBS volume mounts, we pass in --volume-attach-limit=15 to our aws-ebs-csi-driver chart, expecting that the chart will set the "attachable-volumes-aws-ebs" status on the nodes to 15. However, as I have reported in https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/1258, we still see that value set to 39.
Expected Behavior
To some extent, I expect that Karpenter should be able to monitor for all reasons why a pod may not be scheduled onto a host ... and once it has not been scheduled for long enough, it should try to launch new hardware if one of the provisioners matches the general requirements for the pod.
In this specific case, I expect Karpenter to fully understand the way the aws-ebs-csi-driver works and honor whatever max-volume setting we have applied.
Actual Behavior
When our nodes have available CPU and Memory, but have hit the 15 volume limit, we expect that Karpenter will understand this and know that it needs to scale up new hardware. However, instead we see the controller go into a loop where it just keeps indicating that these pods should be scheduled against the "existing  capacity":
2022-06-02T00:24:18.865Z	INFO	controller	Batched 15 pod(s) in 10.000533501s	{"commit": "10fc37b"}
2022-06-02T00:24:18.875Z	INFO	controller	0 pod(s) will schedule against new capacity, 15 pod(s) against existing capacity	{"commit": "10fc37b"}
2022-06-02T00:24:18.875Z	INFO	controller	Waiting for unschedulable pods	{"commit": "10fc37b"}

Here is the pod-event log:
Warning  FailedScheduling   6s (x2 over 22s)  default-scheduler   0/13 nodes are available: 1 Too many pods, 1 node(s) had taint {kubernetes.io/arch: arm64}, that the pod didn't tolerate, 1 node(s) were unschedulable, 5 node(s) exceed max volume count, 5 node(s) had taint {nd.group-name: kube-system}, that the pod didn't tolerate.

After trying this out for a few hours and poking around, we had to roll back to allowing our partner (spot.io) to launch hardware and temporarily disable Karpenter.
Steps to Reproduce the Problem

Use EKS 1.22, Karpenter v0.10.6, and Bottlerocket v1.7.2 AMIs to spin up a Kubernetes cluster.
Install the aws-ebs-csi-driver chart, and set the max-volume limit to something low (say, 5)
Install Karpenter with provisioning that allows it to launch very large hosts that have plenty of CPU/Memory.
Spin up a bunch of pods with PVC requirements ... but with very low CPU/Memory requirements.
Watch Karpenter decide not to scale up the hardware.

cc @tzneal

Related to #919

@tzneal,
Regarding the scheduling... as I understand the documentation, Karpenter only schedules pods on to hardware that it launched. If I understand that correctly, then in this case the log messages that Karpenter is printing out are a little misleading ... they imply that Karpenter is trying to schedule the pod onto existing hardware, but I think it's actually trying to let the kube-scheduler do that, right?
It seems like after some timeout period, we could let Karpenter go ahead and scale up ... eg, if a pod is unscheduled for more than XX minutes (obviously configurable), then if Karpenter thinks it can launch new hardware to solve the problem, it should do that. Would that be a reasonable short term fix?
Another short-term fix would be to take a configuration parameter (env variable, etc) that lets us tell Karpenter how many volumes can be assigned to a node. Since AWS has already decided that automatically determining that is hard**, it seems reasonable to have the same decision here for a cluster administrator.
** Nitro Nodes make life pretty difficult here... because ENIs and EBS volumes pull from the same capacity pool, so the actual dynamic value of capacity is very complicated to deal with because it is always changing. Yet, Nitro nodes are the standard for all new EC2 types at this time, and so I don't see this pattern changing any time soon. Given that, a hard-coded setting that we can apply to set the max-volume-limit per node seems like a reasonable approach to me.

@tzneal Any further thoughts here? This issue is preventing us from being able to roll out Karpenter unfortunately. We have it all set up and ready to go to do some side by side testing in our production clusters, but we can't with this issue in place. :/

Sorry @diranged , I was on vacation and out last week. I'll be looking into this issue in more detail.

No worries at all, hope it was a good one! Thanks for getting back to me..

:+1: awesome, thank you!


Consenting to Attribute Release

https://wiki.jasig.org/display/CAS/CAS+4.2+Roadmap#CAS4.2Roadmap-ConsentingtoAttributeRelease
Provide an optional webflow to allow CAS to display a list of attributes that may be released to the application. Provide an option for the user to accept the release and a way to CAS to remember the user's choice.

Shouldn't we rely on OAuth support for that?

I think we should possibly refactor OAuth to delegate to this new screen. Folks that run OAuth could use consent, but those that don't cant rely on OAuth. We are turning this into a CAS feature, and not so much an OAuth feature.

Deferring to #514  for now.


WIP: Merge Flags and Configs

Merge the flags and configs so that a user can override any config setting on the command line.  For example if the lab config file contained
[mr_foo]
clioption = false
then by default, 'lab mr fool' would have clioption 'false' unless '--clioption true' was specified.

This explicitly depends on the changes in https://github.com/zaquestion/lab/pull/434

@zaquestion the codecov failures aren't as bad as they seem.  They occur because I'm adding a line of code to every command, and technically I'm only testing one command in my tests (mr show --comments).  I think that's enough FWIW to get adequate testing of the flags and configs merge code.

rebased for #434 and to separate out testing changes from last patch.

@zaquestion the codecov failures aren't as bad as they seem. They occur because I'm adding a line of code to every command, and technically I'm only testing one command in my tests (mr show --comments). I think that's enough FWIW to get adequate testing of the flags and configs merge code.

You must have resolved this, codecov is showing 94% diff coverage, and the tests you've added mostly seem to cover the new functionality


Xcode warning 'embedded dylibs/frameworks only run on iOS 8 or later'

Can we bump the framework deployment target from 7.0 to 8.0 to get rid of this annoying warning in Xcode? If you're using Snappy in iOS7, you're likely just using the source files directly rather than the embedded framework target in the app?

Done in develop.


Music discs exploit

Describe the Bug
When I throw one music disc into the chute, an infinite number of music discs fall out of the jukebox
Reproduction Steps

Place chute on the jukebox
Throw any music disk into the chute
And now there's one music disc in the jukebox, and one music disc in the chute.
If you take the music discs out of the jukebox, they will multiply endlessly

Expected Result
One music disc IN - one music disc OUT
Screenshots and Videos

Crash Report or Log
No response
Operating System
Windows 10
Mod Version
0.5.1f
Minecraft Version
1.20.1
Other Mods
fabric-api-0.92.0+1.20.1 only
Additional Context
No response

Please check if this occurs on forge aswell, if it does then this issue should be made on the forge repo instead

Please check if this occurs on forge aswell, if it does then this issue should be made on the forge repo instead

On the forge version, the music disc does not fall from the chute into the jukebox, but remains in the chute

Alright thanks, I'll take a look soon

This is a bug in Fabric API. there is nothing we can do about it. https://github.com/FabricMC/fabric/issues/3680

This bug has been fixed in FAPI in the latest version.

This bug has been fixed in FAPI in the latest version.

Once QFAPI updates to this aswell this can be closed.

it'll update eventually, we can close this


Add process subclasses related to storage objects

Additionally, to distinguish between the storage objects in Issue#1261, I would like to introduce the following classes:

adsorption with the parent class  process:

 Adsorption is a process that lead to an accumulation of a substance within a phase or at an interface between two phases.

desorption with the parent class  process:

 Desorption is a process that lead to a detaching of a substance that was accumulated within a phase or at an interface between two phases (for example by adsorption).

phase transitions with the parent class  process:

 A phase transition is a transformation of a medium from a solid, liquid, or gas state to a different state.

evaporating with the parent class  phase transitions:

 Evaporating is a phase transition from a liquid medium to their gaseous state.

melting with the parent class  phase transitions:

 Melting is a phase transition from a solid medium to their liquid state.

Originally posted by @Alex2448 in https://github.com/OpenEnergyPlatform/ontology/issues/1262#issuecomment-1249531381

I basically agree to those definition proposals. Minor adjustment: ... is a process that leads...
I am thinking about how to axiomatise these processes.
The suggest the following axioms:

'evaporating' ('has physical input' some 'portion of matter' 'has state of matter' value liquid) and ('has physical output' some 'state of matter' gaseous')
'melting' ('has physical input' some 'portion of matter' 'has state of matter' value solid) and ('has physical output' some 'state of matter' value gaseous')

However, these axioms do not yet reflect that it is the same type of matter. @OpenEnergyPlatform/oeo-general-expert-formal-ontology : Any ideas how to axiomatise that it is the same type of matter but only property changes?

@l-emele I want to implement the heat storages soon and I need these classes for that, so I propose to implement it as you suggested and open a new Issue for the discussion on how to reflect that it is the same type of matter. Is this fine for you?

The discussion on how to improve the axioms of melting and evaporating is continued in Issue#1364.


fixed streamline benchmarks

This PR fixes #1094. I have added the missing reference in benchmark/package.json.
I have also upgraded streamline to 2.0 and recompiled the files.
The streamline-callbacks bench is slower than before (and it is now slower than streamline-generators). This is because the streamline transform has been reimplemented with babel and the new transform uses regenerator instead of the original streamline algorithm.

Thanks! Is the code with all the switch/case the actual source code or a generated output?

The source is the streamline._js file. The file with the  big switch/case is produced by regenerator.
The old callbacks algorithm was generating code that looked a bit better and was closer to the original source, but I got lazy when I reimplemented with babel and I just applied the regenerator transform on top of streamline's generators transform. Anyway, every JS engine supports generators these days...

LGTM

It appears that streamline-callbacks.js is now using a deprecated module. I get the following when I run your code:
The regenerator/runtime module is deprecated; please import regenerator-runtime/runtime instead.

Should be ok now.


Enhancement

limit the cache for watched namespace only
introduce resources limit for memory
Add parameters for agent which will be using in future. We need to think over how to pass them in
support configure log-level for controller runtime log
upgrade configuration-policy-controller to adopt in new fixes.

/lgtm


issue after adding tracking number

Really liking this, after i add a tracking number with the given carrier the next screen is just a blank screen point to index.php. is the correct behavior for this? below is a screen shot of the blank screen i get

I just uploaded a new version a few minutes ago. Try with that one and see if you get the same error.

newest version seems to be missing carriers drop-down menu and the add button on the main homepage. im running php 7.3 not sure if that causes anything to mess up. i put a screenshot below of what im referring to

Which browser are you using?

firefox

Does https://belowland.com/parcelpony show up correct for you? (disregard the PHP errors)

yes it does

It's got to be the PHP version then. I developed this on a server running 7.2.18. Let me do some testing and see what's going on.

sure thing, in the mean time let me try a lower php version. thanks alot!

update: tried with php 7.2 still seeing the same screen as mentioned before. going to do some of my own troubleshooting. let me know if you make any breakthroughs

Haven't been able to repro this.

I have not, ive tried many different versions of ubuntu and also centos still with no luck. ive even tried MAC.....version 7.2 of php seems to cause the least amount of issues, the only issue i have is it not displaying the list of carriers in the drop down menu. see the screenshot for reference.

@jap88 That problem happens when the page either can't make a connection to the trackinghive site, or you haven't filled in the bearerToken on the index.php page.

Closing this issue since there hasn't been any updates on it in a while.


🐛 Bug:  No gap between buttons (in mobile view)

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Not enough gap between the buttons on mobile view

Expected Behavior
We can add a gap between the button.
Steps To Reproduce
None
Environment
- Platform:
- OS:
- Browser:
- Version:
- Screen Size(in inch)(Approx):

Anything else?
No response

We have already solved this issue and will soon update with the new commit.
Please make sure to discuss any issues first before creating any pull requests.
and, thank you for taking the time to check out Invoicetor, we hope you'll make valuable contributions to this project 🌱


lib.d.ts doesn't include lib.iterator.d.ts probably?

https://www.typescriptlang.org/play/?downlevelIteration=true&target=1#code/DYUwLgBA2gdHAeBdCBeCAidQ

These come from https://github.com/microsoft/monaco-typescript/blob/master/src/lib/lib.ts and look hand-cded

This is fine in the 3.7 playground - https://www.typescriptlang.org/play/?ts=3.7-Beta#code/DYUwLgBA2gdHAeBdCBeCAidQ


Correctly populate the system python path

Thank you for contributing to Pipenv!
The issue
Close #4311, Close #4315
The checklist

[x] Associated issue
[x] A news fragment in the news/ directory to describe this fix with the extension .bugfix, .feature, .behavior, .doc. .vendor. or .trivial (this will appear in the release changelog). Use semantic line breaks and name the file after the issue number or the PR #.

I think the python binary at least on Linux systems should be python3 if Python 3.x is used. If I just set the environment variable PIPENV_USE_SYSTEM=1 on a Python 3 only system with the current pipenv I still get an error because it tries to use /usr/bin/python which does not exist:
Installing dependencies from Pipfile.lock (63b55f)…
Failed to load paths: /bin/sh: /usr/bin/python: not found

I just added export PIPENV_USE_SYSTEM=1 to the Dockerfile mentioned in #4315 to test this.

@jandd thanks for catching this, can you test with the latest changes?

@frostming the applied patch set makes pipenv install --system --deploy work in the Alpine 3.12/Python 3.8 container


cert-manager-operater v0.15.3 fails to install

The operator fails to install because it can't find the image:
Failed to pull image "registry.connect.redhat.com/jetstack/cert-manager-operator-bundle@sha256:a7cb0f2a1b263c432727d1ffe7ec8d0be470fcca26e1b568eb9d0dc64e96373e": rpc error: code = Unknown desc = Error reading manifest sha256:a7cb0f2a1b263c432727d1ffe7ec8d0be470fcca26e1b568eb9d0dc64e96373e in registry.connect.redhat.com/jetstack/cert-manager-operator-bundle: manifest unknown: manifest unknown

This problem seems similar to #8 which was by fixing an update to OperatorHub.

@wallrj  Thank you for the quick answer. I'll use the community version.


[WIP][POC] Use a single agent binary

What does this PR do?
This PR allows to create a single binary for the different agents.

Motivation
There currently are a few different binaries for the base flavor of the agent: agent, process-agent, trace-agent, security-agent and system-probe. A significant part of the generated code is duplicated:

on disk
in RAM : as the code is slightly different (different build tags / optimizations) and not aligned the same way, Linux is unable to share the pages used to hold the code causing multiple pages to be used to hold the same code.

With this approach:

RPM package goes from 390M to 247M
On disk usage goes from 1,2G to 771Mo

Regarding the memory usage:

Multiple binaries

              total        used        free      shared  buff/cache   available
Mem:        3880180      494100      572028      202984     2814052     2922484
Swap:       2097148           0     2097148

Single binary

              total        used        free      shared  buff/cache   available
Mem:        3880180      531868     1007464      202980     2340848     2891056
Swap:       2097148           0     2097148

We can see that the memory used for the memory used by the buffer cache drops from 2,8G to 2,3G, which roughly amounts to the binary size decrease which may indicate that Linux is able to share most of the pages used for code. It results in 500M of spared memory on the host.

Additional Notes

Possible Drawbacks / Trade-offs
When running only one agent, this approach only improves the disk usage side - even causing a small increase of the number of anonymous pages (RssAnon in /proc//status) .The increase of RSS - RssFile - due to file backed pages may be irrelevant as Linux will only load the code when needed so the non executed code should not use any actual memory. That being said, having only one process seems to be pretty rare (as the install script enables the agent, process-agent and trace-agent services, it may also be the case when using Helm).
This increase of anonymous pages could be caused by things such as global variables but more investigation are required.

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

the number of shared pages increase from 550M to 1G

I don't see this in the free output, did you find this elsewhere?

@brycekahle You're right (by the way, it seems the shared column is not relevant any more). What we can see though is that the single binary version uses 462M less for the buffer cache.

of RSS - RssFile - due to file backed pages may be irrelevant as Linux
How big is the RssFile increase? Even if file backed, RSS counts the pages that were actually loaded, so it is relevant.

@vickenty The increase of RSSFile is rather small, around 15M, which probably comes from the fact that more init functions are called with the single binary, which cause more code to be loaded. So we may gain from removing these init and explicitely call them.
The problem with RSSFile is that it doesn't show the fact that pages are shared so the same RSSFile is shown for every running instance (agent, trace-agent, ...) of the single binary. If you cat /proc/<pid>/smaps though, and look at the PSS, you can clearly see that its divided by the number of running instances which shows that Linux is indeed able to effectively share the pages.

We would benefit from documenting the new task flag bundle and adding examples of invoking the tasks with the new flag. Also, do we need to update the documentation inside the /docs folder?

@hush-hush Thanks for the review ! Regarding the build tags, I did my best to check for incompatibilities (for instance, the registration of a collector or a check) but each team probably surely have better knowledge.

@GustavoCaso I added some documentation in docs/dev/agent_build.md

Has this been run in staging? I'd love to see some real-world impact numbers from a real deployment.

@brycekahle This has been running on staging for a few days and I shared some dashboards and results a few ago.
I'm in the process of redeploying this to oddish-b

/merge

@lebauce hey! In the Heroku buildpack, we remove the system-probe binary in the buildpack itself. Before merging this, can we make sure that system-probe is not included in the heroku_agent flavour, please?


python311Packages.griffe: 0.36.9 -> 0.38.0

Diff: https://github.com/mkdocstrings/griffe/compare/refs/tags/0.36.9...0.38.0
Changelog: https://github.com/mkdocstrings/griffe/blob/0.38.0/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.