[FEA] Write the rest of the scale test queries

Is your feature request related to a problem? Please describe.
This would come after the initial set of queries are done. https://github.com/NVIDIA/spark-rapids/issues/8814 Just so that it can unblock others from being able to run tests and understand what is happening.
It is okay to do the following as multiple different PRs, just because it is a lot of queries. Again I am doing pseudo SQL below. It is not meant to be a copy/paste. Some of these may need to be updated so that the names of the results can be written out to a parquet or ORC file.
q4: Left anti-join lots of ride along columns.
SELECT c_data.* FROM c_data LEFT ANTI JOIN a_facts WHERE primary_a = c_foreign_a

q5: Left semi-join lots of ride along columns.
SELECT c_data.* FROM c_data LEFT SEMI JOIN a_facts WHERE primary_a = c_foreign_a

q6: Exploding inner large key count equi-join followed by min/max agg.
SELECT c_key2_*, COUNT(1), MIN(c_data_*), MAX(d_data_*) FROM c_data JOIN d_data WHERE c_key2_* = d_key2_* GROUP BY c_key2_*

q7: Exploding full outer large key count equi-join followed by min/max agg.
SELECT c_key2_*, COUNT(1), MIN(c_data_*), MAX(d_data_*) FROM c_data FULL OUTER JOIN d_data WHERE c_key2_* = d_key2_* GROUP BY c_key2_*

q8: Exploding left outer large key count equi-join followed by min/max agg.
SELECT c_key2_*, COUNT(1), MIN(c_data_*), MAX(d_data_*) FROM c_data LEFT OUTER JOIN d_data WHERE c_key2_* = d_key2_* GROUP BY c_key2_*

q9: Left semi large key count equi-join followed by min/max agg.
SELECT c_key2_*, COUNT(1), MIN(c_data_*) FROM c_data LEFT SEMI JOIN d_data WHERE c_key2_* = d_key2_* GROUP BY c_key2_*

q10: Left anti large key count equi-join followed by min/max agg.
SELECT c_key2_*, COUNT(1), MIN(c_data_*) FROM c_data LEFT ANTI JOIN d_data WHERE c_key2_* = d_key2_* GROUP BY c_key2_*

q11: No obvious build side inner equi-join. (Shuffle partitions should be set to 10)
SELECT b_key3_*, e_data_*, b_data_* FROM b_data JOIN e_data WHERE b_key3_* = e_key3_*

q12: No obvious build side full outer equi-join. (Shuffle partitions should be set to 10)
SELECT b_key3_*, e_data_*, b_data_* FROM b_data FULL OUTER JOIN e_data WHERE b_key3_* = e_key3_*

q13: No obvious build side left outer equi-join. (Shuffle partitions should be set to 10)
SELECT b_key3_*, e_data_*, b_data_* FROM b_data LEFT OUTER JOIN e_data WHERE b_key3_* = e_key3_*

q14: both sides large left semi equi-join. (Shuffle partitions should be set to 10)
SELECT b_key3_*, b_data_* FROM b_data LEFT SEMI JOIN e_data WHERE b_key3_* = e_key3_*

q15: Both sides large left anti equi-join. (Shuffle partitions should be set to 10)
SELECT b_key3_*, b_data_* FROM b_data LEFT ANTI JOIN e_data WHERE b_key3_* = e_key3_*

q16: Extreme skew conditional AST inner join.
SELECT a_key4_1, a_data_(1-complexit/2), f_data_(1-complexity/2) FROM a_facts JOIN f_facts WHERE a_key4_1 = f_key4_1 && (a_data_low_unique_1 + f_data_low_unique_1) = 2

q17: Extreme skew conditional AST full outer join.
SELECT a_key4_1, a_data_(1-complexit/2), f_data_(1-complexit/2) FROM a_fact FULL OUTER JOIN f_fact WHERE a_key4_1 = f_key4_1 && (a_data_low_unique_1 + f_data_low_unique_1) = 2

q18: Extreme skew conditional AST left outer join.
SELECT a_key4_1, a_data_(1-complexity/2), f_data_(1-complexity/2) FROM a_fact LEFT OUTER JOIN f_fact WHERE a_key4_1 = f_key4_1 && (a_data_low_unique_1 + f_data_low_unique_1) = 2

q19: Extreme skew conditional AST left anti join.
SELECT a_key4_1, a_data_*, FROM a_fact LEFT ANTI JOIN f_fact WHERE a_key4_1 = f_key4_1 && (a_data_low_unique_1 + f_data_low_unique_1) != 2

q20: Extreme skew conditional AST left semi join.
SELECT a_key4_1, a_data_* FROM a_fact LEFT SEMI JOIN f_fact WHERE a_key4_1 = f_key4_1 && (a_data_low_unique_1 + f_data_low_unique_1) = 2

q21: Extreme skew conditional NON-AST inner join.
SELECT a_key4_1, a_data_(1-complexity/2), f_data_(1-complexity/2) FROM a_fact JOIN f_fact WHERE a_key4_1 = f_key4_1 && (length(concat(a_data_low_unique_len_1, f_data_low_unique_len_1))) = 2

q22: Group by aggregation, not a lot of combining, but lots of aggregations, and CUDF does sort agg internally.
SELECT b_key3_*, complexity number of aggregations that are SUMs of 2 or more numeric data columns multiplied together or MIN/MAX of any data column FROM b_data GROUP BY b_key3_*.

q23: Reduction with with lots of aggregations
SELECT complexity number of aggregations that are SUMs of 2 or more numeric data columns multiplied together or MIN/MAX of any data column FROM b_data.

q24: Group by aggregation with lots of combining, lots of aggs, and CUDF does hash agg internally
SELECT g_key3_*, complexity number of aggregations that are SUM/MIN/MAX/AVERAGE/COUNT of 2 or more byte columns cast to int and added, subtracted, multiplied together. FROM g_data GROUP BY g_key3_*

q25: collect set group by agg
select g_key3_*, collect_set(g_data_enum_1) FROM g_data GROUP BY g_key3_*

q26: collect list group by agg with some hope of succeeding.
select b_foreign_a, collect_list(b_data_1) FROM b_data GROUP BY b_foreign_a

q27: Running Window with skewed partition by columns, and single order by column with small number of basic window ops (min, max, sum, count, average, row_number)
select {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4), row_number} over (UNBOUNDED PRECEDING TO CURRENT ROW PARTITION BY g_key3_* ORDER BY g_data_row_num_1)

q28: Ranged Window with large range (lots of rows preceding and following) skewed partition by columns and single order by column with small number of basic window ops (min, max, sum, count, average)
select {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4)} over (RANGE BETWEEN 1000 * scale_factor PRECEDING AND 5000 * scale_factor FOLLOWING PARTITION BY g_key3_* ORDER BY g_data_row_num_1)

q29: unbounded preceding and following window with skewed partition by columns and single order by column with small number of basic window op (min, max, sum, count, average)
select {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4)} over (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING PARTITION BY g_key3_* ORDER BY g_data_row_num_1)

q30: running window with no partition by columns and single order by column with small number of basic window ops (min, max, sum, count, average, row_number)
select {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4)} over (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ORDER BY g_data_row_num_1)

q31: ranged window with large range (lots of rows preceding and following) no partition by columns and single order by column with small number of basic window ops (min, max, sum, count, average)
select {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4)} over (RANGE BETWEEN 1000 * scale_factor PRECEDING AND 5000 * scale_factor FOLLOWING ORDER BY g_data_row_num_1)

q32: unbounded preceding and following window with no partition by columns and single order by column with small number of basic window ops (min, max, sum, count, average)
select  {min(g_data_1), max(g_data_1), sum(g_data_2), count(g_data_3), average(g_data_4)}  over (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ORDER BY g_row_num_1)

q33: Lead/Lag window with skewed partition by columns and single order by column.
select {lag(g_data_1, 10 * scale_factor, lead(g_data_2, 10 * scale_factor)} OVER (PARTITION BY g_key3_* ORDER BY g_data_row_num_1)

q34: Lead/Lag window with no partition by columns and single order by column.
select {lag(g_data_1, 10 * scale_factor, lead(g_data_2, 10 * scale_factor)} OVER (ORDER BY g_data_row_num_1)

q35: Running window with complexity/2 in partition by columns and complexity/2 in order by columns.
select {min(c_data_1), max(c_data_2)} over (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW PARTITION BY c_key2_(1 to complexity/2) ORDER BY c_key2_(complexity/2 to complexity)

q36: unbounded to unbounded window with complexity/2 in partition by columns and complexity/2 in order by columns.
select {min(c_data_1), max(c_data_2)} over (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING PARTITION BY c_key2_(1 to complexity/2) ORDER BY c_key2_(complexity/2 to complexity)

q37: Running window with simple partition by and order by columns, but complexity window operations as combinations of a few input columns
select {complexity aggregations mins/max of any column or SUM of two or more numeric columns multiplied together} over (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW PARTITION BY c_foreign_a ORDER BY c_data_row_num_1

q38: Ranged window with simple partition by and order by columns, but complexity window operations as combinations of a few input columns
select {complexity aggregations mins/max of any column or SUM of two or more numeric columns multiplied together} over (RANGE BETWEEN 10 PRECEDING AND 10 FOLLOWING PARTITION BY c_foreign_a ORDER BY c_data_row_num_1

q39: unbounded window with simple partition by and order by columns, but complexity window operations as combinations of a few input columns
select {complexity aggregations mins/max of any column or SUM of two or more numeric columns multiplied together} over (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING PARTITION BY c_foreign_a ORDER BY c_data_row_num_1

q40: COLLECT SET WINDOW (We may never really be able to do this well)
select array_sort(collect_set(f_data_low_unique_1)) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW PARTITION BY f_key4_* order by f_data_row_num_1)

q41: COLLECT LIST WINDOW (We may never really be able to do this well)
select collect_list(f_data_low_unique_1) OVER (ROWS BETWEEN complexity PRECEDING and CURRENT ROW PARTITION BY f_key4_* order by f_data_row_num_1)

Hi @revans2 , when dealing with q22: SELECT b_key3_*, complexity number of aggregations that are SUMs of 2 or more numeric data columns multiplied together or MIN/MAX of any data column FROM b_data GROUP BY b_key3_*.
I got trouble at part  SUMs of 2 or more numeric data columns multiplied together or MIN/MAX of any data.
Now the b_data columns are defined at https://github.com/NVIDIA/spark-rapids/blob/branch-23.10/datagen/src/main/scala/com/nvidia/rapids/tests/scaletest/TableGenerator.scala#L118-L119 using a function to generate random column types. But it contains some non-numeric types that cannot be applied by SUM and it's random so I cannot write SUM(...) correctly.
I'm going to split the 10 data columns into something like 6 numeric columns plus 4 non-numeric columns, so that I know the 1st to 6th column can be used for SUM.
Do you have any suggestions on it?

@wjxiz1992
It is option 1 sum(b_data_1 * b_data_2). Some example code for this is
val permuteCols = List("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m")
val numAggs = complexity
val sumOps = permuteCols.combinations(4).take(numAggs).map(f => f.mkString("SUM(", " * ", s") as sum_${f.mkString("_")}")

Here we just need to select a number of combinations that is large enough to make at least numAggs aggregations.

Also for splitting the columns up that is fine. You could also scan all of the columns in b_data and see what the types are and just pick the ones that are numeric. But either way works for me.

Actually to solve the number problem you could just append them all together up to some ridiculous complexity limit.
 (2 until permuteCols.length).map(permuteCols.combinations).reduce(_ ++ _).take(numAggs).map(f => f.mkString("SUM(", " * ", ")"))

Just be ware that we will need at least 9 input columns to get up to a complexity of 300. Shooting for 10 or 15 input columns might be good to give us a lot of extra space.


Make gil handling in completion queue more robust

It turns out that the code generation for "with gil" is a bit more
complicated than the logic for re-obtaining the gil at the end of
"with nogil." This is because PyGILState_Ensure seems to, during
interpreter finalization, think it needs to call a new thread
(resulting in a call to cpython new_threadstate) which then segfaults.
Because "with nogil" knows that, prior to executing, it already had
the gil, it doesn't need to set up as much state, and thus the segfault
does not occur.
To avoid this, we just only use "with nogil" within the infinite loop,
and then end the "nogil" block before we check signals. This avoids
needing any "with gil" call at all.
I was able to reliably reproduce the segfault within a few minutes
before the patch by running a binary in a loop (with py3) while
maxing out my machines cpu usage. After the patch, I have not
been able to reproduce the segfault after two hours.
 However, we want to avoid a segfault
on failure to close because this isn't a good user error and makes it
hard to debug.

Thank you for your pull request. Before we can look at your contribution, we need to ensure all contributors are covered by a Contributor License Agreement.
After the following items are addressed, please respond with a new comment here, and the automated system will re-verify.

User @jhance isn't covered by a CLA. They will need to complete the form at https://identity.linuxfoundation.org/projects/cncf

Regards,
CLA GitHub bot

Signed CLA.

cc @lidizheng: we have seen crashes with Python3 in our internal tests without this patch

@jhance @mehrdada Thank you for contributing this change. I personally haven't see the segfault you mentioned (probably because we always clean up channels), but the fix looks pretty smart. BTW, can you provide the way of reproducing the segfault, so we can add it as one of our unit test?

Hmm, I can look if I can find a non-internal method of reproducing this later.
The basic setup is just that I use python3, create a channel, and don't close it. Then the interpreter exits. I simultaneously run all the mypy unit tests in a loop on my laptop to force my CPU to be overloaded enough to hit the race condition more easily, and run the python3 script in a loop (in this case it was a test running with pytest)

@lidizheng Did you manage to repro this upstream?

@mehrdada @jhance Apologies for the delay, I did the tests in PY2 for 1200+ times and haven't seen it, doing the same test for PY3 200+ times and haven't seen it. I keep all of my cores busy with yes command, and spin up a channel, connect to a server, exit the interpreter without closing the channel.


Opening interactive shells via exec subcommand is unresponsive

When attempting to open an interactive shell session via the devcontainer exec sub-command, the resulting shell becomes unresponsive after invoking the first command in that shell, as can be viewed via this screen recording:
https://github.com/devcontainers/cli/assets/2293573/01d460d3-a3d2-4f72-863b-6af03ff66631

Dev Container CLI Version:

$ devcontainer --version
0.58.0

VSCode Version:

Version: 1.88.0
Commit: 5c3e652f63e798a5ac2f31ffd0d863669328dc4c
Date: 2024-04-03T13:25:57.039Z
Electron: 28.2.8
ElectronBuildId: 27744544
Chromium: 120.0.6099.291
Node.js: 18.18.2
V8: 12.0.267.19-electron.0
OS: Linux x64 6.5.0-26-generic

Local OS Version: Linux x64 6.5.0-26-generic
Remote OS Version: Linux x64 6.5.0-26-generic
Remote Extension/Connection Type: Containers (v0.354.0)
Docker Version:

$ docker version
Client: Docker Engine - Community
 Version:           26.0.0
 API version:       1.45
 Go version:        go1.21.8
 Git commit:        2ae903e
 Built:             Wed Mar 20 15:17:48 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.0.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       8b79278
  Built:            Wed Mar 20 15:17:48 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Steps to Reproduce:

Using the minimal config file as below included in $(pwd)/.devcontainer/devcontainer.json
devcontainer build
devcontainer up
devcontainer exec whoami to test that container is running with vscode printed to stdout
devcontainer exec bash or use sh to spawn an interactive shell
enter any valid shell command and not that it immediately becomes unresponsive
Choice of shell, terminal emulator, or host machine seems to make no difference

{
	"name": "Ubuntu",
	"image": "mcr.microsoft.com/devcontainers/base:jammy"
}

Note: when attempting to paste commands via CRTL+SHIT+V or move the cursor, one can view the raw escape sequence values for bracketed paste mode or arrow keys presses rendered on the client shell.
ruffsl@box:~/ws/devcontainer_cli_bug$ devcontainer exec bash
vscode ➜ /workspaces/devcontainer_cli_bug $ ^[[200~whoami^[[201~
^C

Hi 👋
Thanks for opening a detailed issue.

Choice of shell, terminal emulator, or host machine seems to make no difference

Interesting that I wasn't able to reproduce the issue with @devcontainers/cli 0.58.0. However, my machine configuration is different than yours which could make a difference 👇

@devcontainers/cli 0.58.0. Node.js v16.18.0. darwin 23.4.0 arm64.

Note: when attempting to paste commands via CRTL+SHIT+V or move the cursor, one can view the raw escape sequence values for bracketed paste mode or arrow keys presses rendered on the client shell.

It seems like the terminal is not interpreting the pasted command correctly, and instead is printing the raw escape sequences. This could be due to a misconfiguration in your terminal settings (especially with terminal emulator)
@ruffsl Does the issue reproduce only for mcr.microsoft.com/devcontainers/base:jammy image? Can you test with other images as well? (eg. mcr.microsoft.com/devcontainers/base:bullesye / mcr.microsoft.com/devcontainers/base:focal / ubuntu:latest etc)

Can you test with other images as well?

@samruddhikhandale: Yes, this issue persists for those images, as well as my own custom images from ubuntu:24.04, so I'm don't think the base image for the dev container is the common denominator here.

I only get this issue when i use the devcontainer command found at /usr/local/bin/devcontainer on my machine. Presumably the one installed from vscode?

@Restraint: Good find. Yep, this only seems to exhibit itself in the binaries provided by VSCode. If if build the main branch from source, and use that CLI binary instead, the exec sub command works as expected.
~/git/devcontainers/cli$ devcontainer exec bash
node ➜ /workspaces/cli (main) $ whoami
^C
~/git/devcontainers/cli$ node devcontainer.js --version
0.60.0
~/git/devcontainers/cli$ node devcontainer.js exec --workspace-folder . bash
node ➜ /workspaces/cli (main) $ whoami
node
node ➜ /workspaces/cli (main) $ ls
CHANGELOG.md  CONTRIBUTING.md  README.md              azure-pipelines.yml  devcontainer.js  docs        example-usage  node_modules  scripts  tsconfig.base.json  tsfmt.json
CODEOWNERS    LICENSE.txt      ThirdPartyNotices.txt  build                dist             esbuild.js  images         package.json  src      tsconfig.json       yarn.lock

Update: This issues seem to persist with with the latest CLI binaries installed with the latest version of VSCode:
$ devcontainer --version
0.59.1

@samruddhikhandale any update on this? Thanks!

Yep, this only seems to exhibit itself in the binaries provided by VSCode.

In my testing, I was using the CLI installed with https://www.npmjs.com/package/@devcontainers/cli. No wonder I wasn't able to reproduce 😅  Thanks @Restraint for pointing out that difference.
@chrmarti Do you know why the CLI behaves differently when installed with NPM versus when it is available in the VS Code library? I wonder if the binaries people are referring to are installed via the Dev Containers Extension, where there might be some special casing with VS Code.
@Restraint @ruffsl Can you both use https://www.npmjs.com/package/@devcontainers/cli to unblock yourselves? Using the CLI installed with the NPM package should ideally be the right way of consuming the CLI. Thanks!

This appears to be a bug in the wrapper we have in the Dev Containers extension.

Update: Issues still persists with with the latest CLI binaries installed with the latest version of VSCode:
$ code --version
1.90.0
89de5a8d4d6205e5b11647eb6a74844ca23d2573
x64

$ devcontainer --version
0.62.0

same here
bash not working

Update: Issue seem to be resolved as of writing while using:
$code --version
1.95.3
f1a4fb101478ce6ec82fe9627c43efbf9e98c813
x64

$ devcontainer --version
0.71.0

$ devcontainer exec --workspace-folder ./ bash
ubuntu@8471421174d0:~$ echo foo
foo
ubuntu@8471421174d0:~$ echo bar
bar

Thanks!


Http2ConnectionHandler does not close the stream 1 (HTTP_UPGRADE_STREAM_ID)

Http2ConnectionHandler creates the stream 1, but it doesn't seem to close it anywhere. As a result, a cleartext HTTP/2 connection is never closed even if all streams but the upgrade stream have been closed.
If I understood correctly, the upgrade stream should be closed as soon as the upgrade response is sent/received. Am I correct?

Given that the upgrade stream can't be used for any other purpose then receiving the upgrade response and we send the upgrade response without going through the HTTP/2 code path, it's perhaps just fine not to create it at all?

/cc @Scottmitch @nmittler

@trustin - I think we need the stream as it is supposed to carry a response [1][2]. However it looks like we have a bug in that we create the stream in the half closed state on the server. I think it should only be half closed on the client [2]. Also note that you can protect against a "mis-behaving" peer that does not close all streams by using gracefulShutdownTimeoutMillis.
[1] https://tools.ietf.org/html/rfc7230#section-6.7

The capabilities and nature of the application-level communication
after the protocol change is entirely dependent upon the new
protocol(s) chosen.  However, immediately after sending the 101
(Switching Protocols) response, the server is expected to continue
responding to the original request as if it had received its
equivalent within the new protocol (i.e., the server still has an
outstanding request to satisfy after the protocol has been changed,
and is expected to do so without requiring the request to be
repeated).

[2] https://tools.ietf.org/html/rfc7540#section-3.2

The HTTP/1.1 request that is sent prior to upgrade is assigned a
stream identifier of 1 (see Section 5.1.1) with default priority
values (Section 5.3.5).  Stream 1 is implicitly "half-closed" from
the client toward the server (see Section 5.1), since the request is
completed as an HTTP/1.1 request.  After commencing the HTTP/2
connection, stream 1 is used for the response.

@trustin - I originally said there may be a bug because the server's stream is half closed. I though it was half closed local...which it is not...so disregard this.
Do you have a unit test that demonstrates the issue? Are you sending a response back with the EOS flag set?

@Scottmitch I'm using it via HttpToHttp2ConnectionHandler and just writing a plain FullHttpResponse. Is there a way to set the EOS flag in this case?

Actually the upgrade response is sent by HttpServerUpgradeHandler

So.. the right fix would be:

Make server close the stream 1 in HttpServerUpgradeHandler once the upgrade response is sent.
Make client close the stream 1 in HttpClientUpgradeHandler once the upgrade response is received.

But.. IIRC, HttpClientUpgradeHandler handles the response and then configures the pipeline for HTTP, so it seems to me that the stream 1 is supposed to be closed already when upgraded from HTTP/1 cleartext?

So.. the even righter fix would be:

Make server close the stream 1 in HttpServerUpgradeHandler once the upgrade response is sent.
Do not create the stream 1 in Http2ClientUpgradeCodec.upgradeTo().

However, I'm not sure if this will affect the preface-based upgrade, which is defined in https://tools.ietf.org/html/rfc7540#section-3.5 (Do we ever support this?)

@trustin no, we currently don't support preface-based upgrade, but we probably should.  It a recent discussion, it turns out that Jetty H2C supports this.
@Scottmitch WDYT?

@nmittler @trustin - I would have to look in more detail but it sounds like our upgrade code may be a bit off. We should be responding to the upgrade request in the "new protocol" [1].
Here is what I think the upgrade sequence should be roughly like (some steps may be OK out of order).

Client HTTP/1.x Upgrade request (see [2] if body present) ->
Assume server accepts upgrade...
Server creates stream 1 half closed remote
<- Server HTTP/1.x 101 & upgrade response response
<- Server send HTTP/2 frames to respond to original request on stream 1
Server closes stream when finished writing response (because it is opened half closed remote)
Client receives 101 then opens stream 1 half closed local
Client receives HTTP/2 frames from server on stream 1, sees EOS, and closes stream (because it opened the stream in half closed local).

[1] https://tools.ietf.org/html/rfc7230#section-6.7

The capabilities and nature of the application-level communication
after the protocol change is entirely dependent upon the new
protocol(s) chosen.  However, immediately after sending the 101
(Switching Protocols) response, the server is expected to continue
responding to the original request as if it had received its
equivalent within the new protocol (i.e., the server still has an
outstanding request to satisfy after the protocol has been changed,
and is expected to do so without requiring the request to be
repeated).

[2] https://tools.ietf.org/html/rfc7540#section-3.2

Requests that contain a payload body MUST be sent in their entirety
before the client can send HTTP/2 frames.  This means that a large
request can block the use of the connection until it is completely
sent.

Do we need to rework the upgrade code?

Client receives HTTP/2 frames from server on stream 1, sees EOS, and closes stream (because it opened the stream in half closed local).

If I understood correctly, the stream 1 is a special stream which represents the pre-upgrade phase HTTP/1 connection. What server writes to the stream 1 is not an HTTP/2 frame but an HTTP/1 response; no translation or whatsoever is needed.

Do we need to rework the upgrade code?

The beauty of HttpServerUpgradeHandler is that it works for any protocols. We might want to write a special upgrade handler for HTTP/2, but I guess we don't need to do that if we just close the stream 1 as soon as the upgrade response is sent/received?

@nmittler What would be a good place to decode the preface? Our HTTP/1 decoder?

If I understood correctly, the stream 1 is a special stream which represents the pre-upgrade phase HTTP/1 connection. What server writes to the stream 1 is not an HTTP/2 frame but an HTTP/1 response; no translation or whatsoever is needed.

Can you explain why you think this (see [3] below). Also [1] from https://github.com/netty/netty/issues/4210#issuecomment-140922890 calls out the upgrade mechanism as defined by the HTTP/1.x RFC specifies the response to the actual request is completed in the "new protocol".
[3] https://tools.ietf.org/html/rfc7540#section-3.2

Stream 1 is implicitly "half-closed" from
the client toward the server (see Section 5.1), since the request is
completed as an HTTP/1.1 request.  After commencing the HTTP/2
connection, stream 1 is used for the response.

I think @Scottmitch's interpretation of the HTTP/1.x->HTTP/2 upgrade is correct.
@trustin (regarding https://github.com/netty/netty/issues/4210#issuecomment-140977943) I think HTTP/2 preface decoding should still be done by the Http2 handler as it is today.  However, in the case of cleartext, the server's HTTP/1.x->HTTP/2 upgrade handling may want to inspect the beginning of the request to see if it starts with PRI * HTTP/2.0 (i.e. preface-based upgrade), but then hand off the entire preface to the Http/2 handler.
Just to enumerate the protocol upgrade options:

TLS upgrade.  In this case, we rely on ALPN/NPN negotiation to agree on h2. We currently don't have a class that handles the upgrade. It is up to the application to inspect the result of the ALPN/NPN protocol in the SslHandler.
Cleartext. There are 2 flavors:

upgrade via 101. This is currently handled by Http2ClientUpgradeCodec and Http2ServerUpgradeCodec.
Preface-based upgrade, where the server inspects the request to see if it's HTTP/2. We don't currently support this, but should.  I was initially suspecting that this type of upgrade would be allowed for both cleartext and TLS (as a way of not requiring ALPN), but the spec is very explicit that it's only allowed for cleartext: This only affects the establishment of HTTP/2 connections over cleartext. TCP implementations that support HTTP/2 over TLS MUST use protocol negotiation in TLS.

For both TLS and Cleartext, a pipeline could be configured to assume HTTP/2 without any sort of upgrade ... I suppose our stance on this would be that we don't prevent it, but we don't recommend it (i.e. no examples).

@nmittler - Agreed we could support preface-based upgrade. Seems like an additional decoder in codec-http that looks for the explicit preface and if detected hands off call some abstract method/factory that can return a Http2ConnectionHandler (or just delegate to handoff the pipeline). This decoder would also remove itself.
@trustin - Would this solve the use case you are looking for (initializing the pipeline to be http/1.x, but upgraded to http/2 if the preface is detected)?

somewhat related to https://github.com/netty/netty/issues/4438

@trustin @nmittler - Any interest in fixing this for 4.1.0?

@trustin @nmittler @Scottmitch any takers ?

no cycles at the moment


"Custom Options"  not support

https://developers.google.com/protocol-buffers/docs/proto#customoptions
Custom Options
Protocol Buffers even allow you to define and use your own options.
For example:
import "google/protobuf/descriptor.proto";

extend google.protobuf.MessageOptions {
  optional string my_option = 51234;
}

message MyMessage {
  option (my_option) = "Hello world!";
}

Here we have defined a new message-level option by extending MessageOptions. When we then use the option, the option name must be enclosed in parentheses to indicate that it is an extension. We can now read the value of my_option in C++ like so:
string value = MyMessage::descriptor()->options().GetExtension(my_option);

Here, MyMessage::descriptor()->options() returns the MessageOptions protocol message for MyMessage. Reading custom options from it is just like reading any other extension.
Similarly, in Java we would write:
String value = MyProtoFile.MyMessage.getDescriptor().getOptions()
  .getExtension(MyProtoFile.myOption);

In Python it would be:
value = my_proto_file_pb2.MyMessage.DESCRIPTOR.GetOptions()
  .Extensions[my_proto_file_pb2.my_option]

Just checking in, this issue has been open for over a year. Is there any timeline for completing this?

Just checking in, this issue has been open for over a year. Is there any timeline for completing this?

This is actually fixed (by emitting a binary version of the descriptor) in the google-internal version protobuf.
@iinozemtsev do you have cycles to export this (cl/302638810)?

This is actually fixed (by emitting a binary version of the descriptor) in the google-internal version protobuf.
@iinozemtsev do you have cycles to export this (cl/302638810)?

Yes, I'll prepare a PR (most likely just finish #406) early next week

Yes, I'll prepare a PR (most likely just finish #406) early next week

Oh - you are already on this! Thanks!

Oh - you are already on this! Thanks!

The change is merged, @sigurdm could you publish it?

The change is merged, @sigurdm could you publish it?

Done


F/missingvalues2

Have to close PR #85, Becuase the problem

fix #82
the mongo search may not include the checked values.
1.when no checked values are missing from the First search the search result is the result from first search
2. when there are missed values run the second search.
3. if the value still missing (not able to get the checked value from search) run the third search.
when 2 or 3 happens. the final result is the combination of 1st,2nd, and 3rd search

Fails

:no_entry_sign:
Please assign someone to merge this PR, and optionally include people who should review.

Warnings

:warning:
The README has not been updated. Please update the README.

:warning:

Branch being merged does not follow Git Flow

:warning:
You should add at least 1 more reviewer to the PR

Messages

:book:
We were able to automatically fix some formatting issues in this PR for you!

:book:
Could not find any browser results.

Some things that were possibly fixed:

Code that could be fixed via the --fix flag
Formatting that could be fixed by prettier

Take a look at this commit to see what happened in detail: 947fa50d37f296cc3975690021f21c90690be827
And look at this wiki page to see the reasoning behind the ESLint rules: https://github.com/smartprocure/eslint-config-smartprocure/wiki/Rules-and-Why-We-Chose-Them

  Generated by :no_entry_sign: dangerJS against d661ef6deaf4a6d692cd7aa2df457a6e26095095


internal/ui: Access Denied in SetProcessDpiAwareness

One of my players is unable to launch the game using OpenGL, application panics at init with comment:
panic: glfwwin: SetProcessDpiAwareness failed: Access is denied.
goroutine 1 [running]:
github.com/hajimehoshi/ebiten/v2/internal/ui.init.2()
        C:/Users/Erexo/go/src/github.com/erexo/ebiten/internal/ui/ui_glfw.go:151
 +0xa8

His specs are:
OS: Win8
CPU: Intel(R) Pentium(R) CPU N3540  @ 2.16Ghz
RAM: 4gb
GPU: Intel(R) HD Graphics
and the app was build using:
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build
I'm not really sure what caused this and how "Access denied" should be treated here

Thanks, I'll take a look.
Does this happen when the screen is locked?
Similar issue: https://github.com/hajimehoshi/ebiten/commit/47c65a92aeff143933761b3a9689f13c6c728ad9

I'm not sure and sadly I can't ask that player anymore since he stopped gaming.
I doubt it because he claimed that he just download the client and it was not working out of the box

https://github.com/hajimehoshi/ebiten/blob/f6c4b29a3ddb0bee5a6e2001229f21bf6bc2559d/internal/glfwwin/win32init_windows.go#L249
There is already a code to handle this error. Hmm?

Oh, the error handling doesn't seem correct...
ERROR_ACCESS_DENIED                                                       syscall.Errno = 5

while E_ACCESSDENIED is 0x80070005

I'll check all the usages of windows.ERROR_* later.

I think this should fix the issue:
go get github.com/hajimehoshi/ebiten/v2@2b261c63149abebb81b4588e361472618b3a8d4c

Thank you for reporting this!

Have you confirmed the fix? (If might no longer be possible to confirm, but I'm asking just in case)

sadly no, it would be hard for me now to confirm it. I think we can mark this issue as resolved :)

I got it. Thanks!


Parsing issues

@rachx reporting some parsing issues that should be fixed ASAP. Collecting them here.

Closing, dup of #202


CLI Updates

Some CLI updates related to:

Install
Upgrade
Publishing migration guide
Publishing cookbooks

This update may have some dependency on https://github.com/dendronhq/dendron/issues/2516 due to an example I use for the CLI


FIP-22 - Retire

This PR updates the retire action with new logic that burns tokens from the different account locks and circulating supply. It is to be used only for testing and security auditing while in draft stage.
please refer to the FIP-22 for design and implementation details
https://github.com/fioprotocol/fips/blob/master/fip-0022.md
This implementation is dependent on FIP-21 Staking. FIP-21 must be merged FIRST! https://github.com/fioprotocol/fio.contracts/pull/124

New PR:
https://github.com/fioprotocol/fio.contracts/pull/208


FR: Published URL in YAML

Please add an option for the published URL to be added to a url:  field in the frontmatter when the Publish command is invoked.

big +1. Having the fine name be used as the URL is convenient, but highly encouraging of breaking the URLs.

@kianenigma if you want a stable URL for a note, you can use the dg-permalink attribute.
See: https://dg-docs.ole.dev/advanced/note-specific-settings/


Learn.md

Learn repos should have a LEARN.md file to teach student how to build your project step by step. You can explain how to build your project with text, code snippets, images, or even short (5 minute) long video lessons. As the maintainer of a Learn repo, the LEARN.md file requires you to think critically about how to explain the building of your project and how to also make it engaging. We don't expect you to be an expert teacher, but we would like you to reflect on how difficult it was to get to your level of knowledge, and then provide friendly guidance to help other students to learn.
Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/blob/main/Learn.md

Hi @sanjay-kv @aswinikalyan30, I would like to write the Leran.md file. Please assign this issue to me.

Sure @Passionatelytoooadorable


Get-DbaHelpIndex Added tests

Type of Change

[ ] Bug fix (non-breaking change, fixes #)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[X] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose

Added unit and integration tests

Added tests for Get-HelpIndex, missing per #3350

:bananadance:  thank you! will merge once the test passes. just had to remove some trailing spaces

thanks!!


log and panic

Hi this is something like a feature request
If code panics its not logged to log4rs, AFAIK there is nothing log4rs can do about this.
panic!("message")  -< "message" is lost.
I discovered this trick that might be useful in log4rs...
/// causes an error to be printed via log4rs, then panics.
/// For some reason I don't understand `fatal!();` must be terminated with a semicolon or we get very strange syntax errors
#[macro_export]
macro_rules! fatal {
    () => {
        log::error!("config panic");
        panic!()
    };
    ($msg:expr) => {
        log::error!($msg);
        panic!()
    };
    ($msg:expr,) => {
        log::error!($msg);
        panic!()
    };
    ($fmt:expr, $($arg:tt)+) => {
        let msg = format!($fmt, $($arg)+);
        log::error!("{}", &msg);
        panic!()
    };

}

This enables log4rs aware code to call fatal!() that will log and panic.

@teknopaul this definitely seems like a useful macro, im just not sure it belongs in log4rs, since the rest of the log macros reside in the log crate, seems like if anything this should be located there right?

I see your point, probably should be in core.Once things are up in the github issues they are locatable :if anyone else has that need they can copy paste from the closed issue. 06.10.2020, 18:51, "estk"<EMAIL_ADDRESS>@teknopaul this definitely seems like a useful macro, im just not sure it belongs in log4rs, since the rest of the log macros reside in the log crate, seems like if anything this should be located there right?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.


[BUG] [JDBC] Unable to execute the following query

What is the bug?
Following query throws an error from OpenSearch driver
"SELECT totalNumberOfRegStatusSouryo, totalNumberOfStatusInUse, kpi, planName, totalNumberOfRegStatusTime, totalNumberOfService, planCode, timeStamp, totalNumberOfStatusStop, provider, totalNumberOfPacketControlInActive AS qoy7xkytwlidx5faegzhqzetxrvndq, totalNumberOfRegStatusDefault, totalNumberOfRegStatusTimerOn, totalNumberOfTurboOff, totalNumberOfTurboOn, pipeName, totalNumberOfCountfree, totalNumberOfPacketControlActive AS t3z99fh8qzoq956ejs44nevinye4s6\nFROM plan_statistics_information\nLIMIT 1000"
Is this query malformed in any way? Why would it not return the 1000 rows as expected?
What is the expected behavior?
Query executed successfully and gives us the rows back
What is your host/environment?

OS: [e.g. iOS]
Version [e.g. 22]
Plugins

Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
Add any other context about the problem.

can you run this and post the error msg, and reopen the issue thanks


User should have the ability to suppress TooManyAttempts message in PromptConfirm Dialog

Bot Info
SDK Platform: .NET
SDK Version: 3.14.0
Deployment Environment: Azure Bot Service
Channels: All
Issue Description
The text in TooManyAttempts is always sent when PromptConfirm Dialog attempts are exhausted. There is no way to suppress this message.
Code Example
https://github.com/Microsoft/BotBuilder/blob/b7d9b2e2bf26e918dc507167d3c868ee0e8d2b43/CSharp/Library/Microsoft.Bot.Builder/Dialogs/PromptDialog.cs#L1178
Expected Behavior
As a consumer of the SDK, I would prefer that the SDK not send messages unless I choose that they be sent. There is no way for me to disable this message informing the user that they have exceeded the attempt count. I can customize it, but not get rid of it entirely.
As a workaround, at the moment I had to copy the file and make a new PromptConfirm dialog which overrides the MessageReceivedAsync method linked above so that the TooManyAttempts message is never sent.

Feel free to submit a pull request to modify the PromptDialog class to do what you would like, or in the spirit of open source, you can use your own modified version of PromptDialog that exhibits the behavior you would like to see.

Great - happy to do that, figured I'd file this first to see if there was interest / willingness to accept a PR. Thanks for the response!

Honestly, at this point when we are actively working on releasing the V4 version of the SDK, we are not really looking to add features to V3.  It is probably just best to use your own custom PromptDialog.  Additionally, FWIW I have been here for about a year and this is the first request I have seen on the subject.

Looks like a few weeks before I joined the team there was a feature request for this #2717 that didn't gain much traction.  going to close this issue and reference in that one.


Image uploads failing

Ghost: master
Keep ending up in a state where cover image uploads fail, nothing in the console or the terminal. Happens after deleting / adding new image / repeat

When I refresh - there is an image there. Not sure if it's the old one or the new one

I can confirm this bug. I wasn't able to reproduce in intentionally yet, but I got this issue a couple of times.

Steps to reproduce this issue:

Make sure, no image file is uploaded, needs to be in the saved state where you see the Upload image button.
Upload an image (icon, logo or cover) and don't save
Delete the uploaded image immediately (again, don't save)
Upload the image (or a different one, but same 'category' as the one deleted before) again and see, how it doesn't update

Doing some more research on this, it seems that uploading the same image twice is causing this issue. I found this
https://github.com/thefrontside/emberx-file-input#resetting-the-input
which sounds like a possible solution, but wasn't able to implement it/test it successfully.


[WIP] Travis testing - DO NOT MERGE

Using this branch as a place to debug the Travis caching issue qz-3637.

Closing in favor of #3458


Show layer names on Send

When having multiple streams in the same document, it's difficult to know what layers were selected for what stream.
The only way to know is to open up the stream view.

This would apply to any DUI-based connectors that use layers.

I think this had already been closed some time ago


Requesting for Filipino translations

I would like to ask if you accept filipino translation for this repository.

Currently we aren't internationalizing openpilot.


make speed density independent

Hi @DanielMartinus!
I noticed in my project that devices with low pixel density had much higher particle velocity than I had developed for and realized that this is because velocity is in terms of pixels and not dip in the library. Here is a comparison between 5 inch ldpi and xxhdpi devices with no change on the simple demo:
LDPI:  XXHDPI:
as you can see the particles on the ldpi device are traveling 4x as fast as the xxhdpi device. Here is a comparison after the change:
LDPI:  XXHDPI:
I would expect that velocity remaining constant across pixel densities is desired behavior, but if you think that some might not want this I would be happy to update the PR so that this is an option passed to the particle system (something like setSpeedPixelIndependent()).  Thanks for the great library!

Hey @cmt218, my bad for not responding earlier to this PR. Thanks a lot for this contribution.

I would expect that velocity remaining constant across pixel densities is desired behavior

You're absolutely right, this is expected behavior to ensure the same effect and experience across different form factors.

but if you think that some might not want this I would be happy to update the PR so that this is an option passed to the particle system (something like setSpeedPixelIndependent()).

Since this behavior is in the library for a long time already I can imagine this would definitely change the desired behavior for some apps since it could change the effect a little bit. If we only do an update with this change and also add setSpeedPixelIndependent it would give other developers some extra time to tweak their animation if any other important updates (such as bug fixes) would follow.

@DanielMartinus no worries! Updated this to be configurable via setSpeedDensityIndependent LMK what you think 😄

@cmt218 tested it and works great!
About the default value for setSpeedDensityIndependent. I was thinking, maybe we should set it by default to true.
The argument for that is that we're sure that everyone implementing it in the future will have the same behavior across all different form factors. The argument against would be that everyone updating could change their desired behavior. However, they can easily opt-out.
However, I'm against making unbreakable changes that will have visible changes especially since Konfetti is often implemented in places that don't get tested every day so it can go unnoticed when people update to the latest version.
Option three would be to deprecate setSpeed for now and also offer another function setSpeedIndependent that will later replace setSpeed to make sure it will at some point break for everyone who implemented Konfetti so that they are aware something visibly changes when moving to the new function.
Just writing down my thought process here, what do you think of that?
To summarise: Instead of setSpeedDensityIndependent, deprecate setSpeed and add another function setSpeedIndependent that wil later replace setSpeed in a later version breaking Konfetti and forcing people to think about a visible change.

@DanielMartinus I agree with you 100% that deprecating setSpeed for setSpeedIndependent  would be the most ideal to help developers realize that this subtle change in behavior has been made. I actually tried this as my initial approach, but ran in to the problem that acceleration is also affected by device pixel density (even if velocity is scaled to density, the particles on the LDPI device would end up moving noticeably faster than on the XXHDPI device by the time they reach the bottom of the screen).
I could not come up with a satisfying way to also account for acceleration with a new setSpeedIndependent function and found the speedDensityIndependent boolean to be the cleanest approach since it allows us to scale by density in just one place. I do agree that defaulting setSpeedDensityIndependent to true would be best so that everyone has the consistent behavior by default moving forward 👍. What do you think about sticking with this approach, defaulting to true, and calling the behavior change out in notes for the new release? 🤔

I see, let's go for what you're suggesting indeed and keep it with the boolean but indeed instead defaulting it to true 👍

Updated! 😄


I don't find the implementation of the IQL

Hello，Thank you for your efforts for this implementations.
I want to find the implementation of the IQL, unfortunately，I don't find it.(but I find the iql_smac.yaml file in config folder) Would you mind tell me where is it?
Thank you!

Are you looking for the q_learner file?
https://github.com/oxwhirl/pymarl/blob/master/src/learners/q_learner.py
With IQL, the mixer is set to None.

@kasimte  Thinks for your answer.
But I get this error

ValueError: Mixer None not recognised

using this command

python3 src/main.py --config=iql --env-config=sc2 with env_args.map_name=2s3z

Good point. I've reproduced your error and here is the full traceback:
Traceback (most recent calls WITHOUT Sacred internals):
  File "src/main.py", line 35, in my_main
    run(_run, config, _log)
  File "/Users/Kasim/Projects/ml/pymarl/src/run.py", line 48, in run
    run_sequential(args=args, logger=logger)
  File "/Users/Kasim/Projects/ml/pymarl/src/run.py", line 114, in run_sequential
    learner = le_REGISTRY[args.learner](mac, buffer.scheme, logger, args)
  File "/Users/Kasim/Projects/ml/pymarl/src/learners/q_learner.py", line 26, in __init__
    raise ValueError("Mixer {} not recognised.".format(args.mixer))
ValueError: Mixer None not recognised.

I suggest trying removing the "None" in the config file like so:
https://github.com/kasimte/pymarl/pull/1/commits/fa6f1c87249c5339b9c818106c9d09830ea90cd3
And then running it again.

It works. Thanks for your replay.

Just merged in a fix for this (https://github.com/oxwhirl/pymarl/pull/41), so it should be fixed in the main repo now (Same fix as suggested by kasimte).
I accidentally set the mixer to None instead of leaving it blank in the yaml file when doing the latest updates.


SBOM cataloger packages have empty type

Please provide a set of steps on how to reproduce the issue
syft  cgr.dev/chainguard/wolfi-base:latest
NAME                    VERSION      TYPE
apk-tools               2.12.10
apk-tools               2.12.10-r0   apk
busybox                 1.35.0
busybox                 1.35.0       binary
busybox                 1.35.0-r4    apk
...

What happened:
Reported in the community slack, scanning an image with an SBOM results in the package type being empty.
What you expected to happen:
The package type is set if there is enough information to determine an accurate type.
Environment:

Output of syft version: v0.63.0
OS (e.g: cat /etc/os-release or similar): macOS / all

We could attempt to get the type if the SBOM has a PURL.

Looks in syft version: 0.71.0 all good
syft  cgr.dev/chainguard/wolfi-base:latest
 ✔ Loaded image
 ✔ Parsed image
 ✔ Cataloged packages      [23 packages]

NAME                    VERSION      TYPE
apk-tools               2.12.11-r2   apk
busybox                 1.36.0       binary
busybox                 1.36.0-r0    apk
ca-certificates-bundle  20220614-r4  apk
glibc                   2.36-r6      apk
glibc-locale-posix      2.36-r6      apk
libcrypto3              3.0.8-r0     apk
libssl3                 3.0.8-r0     apk
wolfi-base              1-r3         apk
wolfi-baselayout        20230201-r0  apk
wolfi-keys              1-r5         apk
zlib                    1.2.13-r3    apk

Thanks for following up @dautovri! I had a look at the latest wolfi image and I think this may still be an issue. It looks like the SBOMs being included have corrected versions that match APK, e.g. with -r# suffixes. This definitely needs a bit more investigation.

@kzantow I think we have the same issue here as well
syft lfedge/eve
A lot of alpine packages don't have a right type.


bump contracts & add more networks

Closes #1053

but why the need to change bases for some random reason? can we be consistent? will the next chain id be in base64?

please use the same base, it is very confusing to change bases randomly

fixed

superseded by #1059


Clicking again on the default scene clears it

Bloom 2.11
Neo4j: 5.15
Chrome : 123.0.6312.107
Sometimes, you click on a scene again, and everything is just gone.
It seems to have something to do with the first default scene.

Hello, are you using the Bloom Plugin? Do you have this effect when you are clicking fast the Scene? When you perform a search are you waiting until the layout is stabilised and the Scene is updated (see the number of nodes and relatioships) before moving to another Scene?
We are going to work on Perspective and Scenes soon so thanks for reporting the issue

Thanks for reaching out
Honestly, I tried to reproduced the issue but wasn't able to do so, so i
guess we could classify it as not priority, I think it was only happening
with the first (default) scene but not sure, I just click on it at some
point, switching from scene to scene, then what was in the first scene was
gone. I'm aware it's an extrêmely poor description to debug the potential
issue, but that's all I can remember.
If it happens again and provided a reproducible step by step by step.
On Mon, Apr 22, 2024 at 10:04 AM Claudio Gallina @.***>
wrote:

Hello, are you using the Bloom Plugin? Do you have this effect when you
are clicking fast the Scene? When you perform a search are you waiting
until the layout is stabilised and the Scene is updated (see the number of
nodes and relatioships) before moving to another Scene?
We are going to work on Perspective and Scenes soon so thanks for
reporting the issue
—
Reply to this email directly, view it on GitHub
https://github.com/neo4j-devtools/neo4j-bloom/issues/76#issuecomment-2069567902,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHIBVDNL54PSS3INEFCCLFTY6UKH5AVCNFSM6AAAAABGFUXNE6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRZGU3DOOJQGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


run Gratipay 144

143

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/9225780-run-gratipay-144?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github).

Reviewed 18 (14) accounts.

Droplet spun up and updated.

Backup taken and verified.

Script started.

Script ran for 14 minutes (0:14:08.923324).

Log downloaded and droplet destroyed.

Pinned https://twitter.com/Gratipay/status/573496435469062144.

Escrow shuffled.

MassPay done and posted back for 90 users.

Logs uploaded in https://github.com/gratipay/logs/commit/9093bdf565ef157a0fe9de6cf80eac26e976e663.


Display all smallest test cases

In the event of a tie in the size comparison, only one framework will be shown as "smallest":

Credit goes to @mmedal for the discovery.

Thanks for contributing @scott113341, LGTM :)


'$'-delimited in-line math example fails in syntax.md

The $-delimited math on line 352 of syntax.md doesn't render properly at build.
Other instances of $-delimited inline math in the file seem to work though, not sure why this particular instance is not working.
N.B. switching to the myst-role syntax {math}... works fine.

Thanks @rossbar I'll look into it

Are bug reports along these lines valuable? I'm in the process of translating some open-source text book material into myst format (which is fantastic BTW) for testing and I'm sure I will come across other issues. I can open issues here to keep things centralized, but I don't want to spam the repo with a bunch of potentially-low-priority issues. I'm happy to keep issues in a different repo/fork. LMK your preference!

Are bug reports along these lines valuable?

Oh yeh they are super useful thanks 😄

I don't want to spam the repo with a bunch of potentially-low-priority issues

If you go to add an issue now you will see options for adding 'Bug Reports' or 'Feature Requests', these will auto categorize the issues etc, so they are easier to deal with. Spam away!

@rossbar this should be fixed in the last commit, but please reopen if you still encounter a problem

@chrisjsewell it appears I can't re-open the issue so I'll just comment: line 365 from doc/using/syntax.md is still not properly rendering the in-line, '$'-delimited math in the html as of 1a1cd05

@rossbar actually fixed now!


[DO NOT MERGE] Play with NUI

I don't intend this PR to get merged.
I'm just playing around to see if nui.nvim's tree block has got everything covered for real world usage.

Out of curiousity: Who do you open up a draft PR if you do not intend for it to be merged?

Out of curiousity: Who do you open up a draft PR if you do not intend for it to be merged?

Hmm... 🤔 Didn't really think about that. But if somebody ask question about a similar use-case I can now point them to this PR...
Not sure where you're coming from, but I don't see any harm in doing this (unless the maintainer is annoyed with it) 🤷🏼♂

Having a PR open just to have a PR is not useful at all. If you were going to end up actually contributing to the project it would have been useful. It just a waste of the contributors time.

I'm still don't get why you're being so negative. But alrighty! Sorry for wasting your time man. 😂 (I thought I'm the one wasting my time playing around with stuffs.)
If the maintainer or other contributor wants to replace the UI with an external library (no reason for doing so, very little to gain), the codes will still be here. So even if I didn't intend this PR to get merged, doesn't mean it's not a contribution. Peace... ✌🏼


Make sure internal development docs are current; remove or indicate which sections are obsolete

By "internal development docs", I mean the ones found here:
https://github.com/criblio/appscope/tree/master/docs


chia init only fully completes 1 drive when attempting multiple partition and formats

sudo ./chiainit --fstype ext4 --init sdy sdab sdw sdu sds sdq sdz sdx sdaa sdv sdt sdr
Operation Summary
Drives     : sdy sdab sdw sdu sds sdq sdz sdx sdaa sdv sdt sdr
Excluded   :
Filesystem : ext4
Actions    : init
Do you want to continue? (Y/n)
Y
WARNING: You have selected a destructive action (wipe, format, or init).

YES I SACRIFICE THIS DATA
Drive /dev/sdy:
Wiping /dev/sdy...
/dev/sdy: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdy: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdy: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdy: calling ioctl to re-read partition table: Success
Formatting /dev/sdy...
mke2fs 1.47.0 (5-Feb-2023)
/dev/sdy1 contains a zfs_member file system labelled 'mmcuplot2'
Creating filesystem with<PHONE_NUMBER> 4k blocks and 1907744 inodes
Filesystem UUID: c226291a-5ae3-4e4c-b4a5-eb71c9dab9be
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544,<PHONE_NUMBER>
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
Labeling /dev/sdy1...
Serial Number: R5GG0AUV
UUID: UNKNOWN
New label:
Drive /dev/sdab:
Wiping /dev/sdab...
/dev/sdab: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdab: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdab: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdab: calling ioctl to re-read partition table: Success
Formatting /dev/sdab...
Labeling /dev/sdab1...
Serial Number: R5G9WN2V
UUID: UNKNOWN
New label:
Drive /dev/sdw:
Wiping /dev/sdw...
/dev/sdw: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdw: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdw: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdw: calling ioctl to re-read partition table: Success
Formatting /dev/sdw...
Labeling /dev/sdw1...
Serial Number: R5GEN2VV
UUID: UNKNOWN
New label:
Drive /dev/sdu:
Wiping /dev/sdu...
/dev/sdu: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdu: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdu: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdu: calling ioctl to re-read partition table: Success
Formatting /dev/sdu...
Labeling /dev/sdu1...
Serial Number: R5GEJMBV
UUID: UNKNOWN
New label:
Drive /dev/sds:
Wiping /dev/sds...
/dev/sds: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sds: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sds: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sds: calling ioctl to re-read partition table: Success
Formatting /dev/sds...
Labeling /dev/sds1...
Serial Number: R5GBLVZV
UUID: UNKNOWN
New label:
Drive /dev/sdq:
Wiping /dev/sdq...
/dev/sdq: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdq: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdq: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdq: calling ioctl to re-read partition table: Success
Formatting /dev/sdq...
Labeling /dev/sdq1...
Serial Number: R5G1HRKV
UUID: UNKNOWN
New label:
Drive /dev/sdz:
Wiping /dev/sdz...
/dev/sdz: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdz: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdz: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdz: calling ioctl to re-read partition table: Success
Formatting /dev/sdz...
Labeling /dev/sdz1...
Serial Number: R5GEU6AV
UUID: UNKNOWN
New label:
Drive /dev/sdx:
Wiping /dev/sdx...
/dev/sdx: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdx: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdx: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdx: calling ioctl to re-read partition table: Success
Formatting /dev/sdx...
Labeling /dev/sdx1...
Serial Number: R5GBLSLV
UUID: UNKNOWN
New label:
Drive /dev/sdaa:
Wiping /dev/sdaa...
/dev/sdaa: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdaa: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdaa: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdaa: calling ioctl to re-read partition table: Success
Formatting /dev/sdaa...
Labeling /dev/sdaa1...
Serial Number: 7HK1E73F
UUID: UNKNOWN
New label:
Drive /dev/sdv:
Wiping /dev/sdv...
/dev/sdv: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdv: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdv: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdv: calling ioctl to re-read partition table: Success
Formatting /dev/sdv...
Labeling /dev/sdv1...
Serial Number: R5GBW83V
UUID: UNKNOWN
New label:
Drive /dev/sdt:
Wiping /dev/sdt...
/dev/sdt: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdt: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdt: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdt: calling ioctl to re-read partition table: Success
Formatting /dev/sdt...
Labeling /dev/sdt1...
Serial Number: R5GBPL1V
UUID: UNKNOWN
New label:
Drive /dev/sdr:
Wiping /dev/sdr...
/dev/sdr: 8 bytes were erased at offset 0x00001000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdr: 8 bytes were erased at offset 0x74702555000 (gpt): 45 46 49 20 50 41 52 54
/dev/sdr: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
/dev/sdr: calling ioctl to re-read partition table: Success
Formatting /dev/sdr...
Labeling /dev/sdr1...
Serial Number: R5GG7BVV
UUID: UNKNOWN
New label:
Operation complete for all specified drives.

as the above shows. only 1 drive went through the whole process. I did receive Python errors during install. (see below)
error: externally-managed-environment
× This environment is externally managed
mq> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
error: externally-managed-environment
× This environment is externally managed
mq> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

any help would be appreciated.

Hi Mathis436, thanks for you feedback.
I have just installed the lastest version on a test system here and did not get the error you mentionned.
chiainit does not have any dependencies on python, so we can skip the errors you got during installation (at least for now).
Could you show the output of lsblk, please?
What kind of system are you running this on?
Are you running the latest version of chiagarden?

Lsbk is not copying correctly from the terminal.
it is a Ubuntu server 22.04 just freshly loaded
approximately 180 hdd split by 15 per array
the drives in question were apart of a zfs pool about 12 per pool
latest version of chia garden

if I run the script with 1 drive at a time all is good

These are the drive sets I will be working with:
william@harvester56:~$ blkid | grep -E mmcuplot3
/dev/sdds2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="15875005551098520552" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="c3bf6088-1b7d-4459-bd60-dc22947666b6"
/dev/sddq2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="18188458188632961107" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="5434c876-f7b5-4acc-8f7e-7d86d92c373d"
/dev/sddn2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="9183859404714344735" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="fde8f798-3902-4608-b42e-4d3792f1bcc3"
/dev/sddv2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="8198670406398713545" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="3305e013-7fa8-4c4b-97fa-6cb92193e581"
/dev/sddt2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="4874665968607209161" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="b5ea83c5-891f-4a66-9013-caf958b89d48"
/dev/sddr2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="1443365415624434724" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="e5a1584a-d384-4b60-b282-d09998856415"
/dev/sddp2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="12082118715416661166" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="7407cc8e-95af-46a2-b400-6258832a0486"
/dev/sddy2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="8771935977194457155" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="c52814f8-c334-485f-935e-4dcb9a107d20"
/dev/sddo2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="17416634591345524616" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="94852135-9529-49b7-ba8d-455ed217a21c"
/dev/sddw2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="14491296879361635987" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="b16cc2f9-5cd9-4825-86fd-b0375e38a2f2"
/dev/sddm2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="5196215417963777085" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="c4dcab04-c0e6-48b3-8154-e967f0967256"
/dev/sddu2: LABEL="mmcuplot3" UUID="731586632537411585" UUID_SUB="9364638646207385226" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="c81d9488-ddaa-42dc-9d8b-525272aae876"
william@harvester56:~$ blkid | grep -E mmcuplot4
/dev/sdei2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="6747168187267872197" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="993d4907-6f9c-49f5-954a-62b360403983"
/dev/sdeg2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="3357397129131831856" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="753cdbc5-7169-44c6-8f3a-95f61aa9e7ed"
/dev/sdee2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="14906228786015713968" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="41057ab1-f818-4059-bd21-dccc534a994e"
/dev/sden2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="7016490663483222203" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="a581ddbf-9f53-4a72-aded-aeace3a06a84"
/dev/sdec2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="9910297281975193445" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="d3b8210f-7249-4e41-8fba-54b29a0ce818"
/dev/sdel2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="11841322529742156781" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="782b1267-9661-4840-8128-21a34297b0ee"
/dev/sdej2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="6071811071664839850" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="a2e30de8-f579-4b86-ab3f-50acbe9df8d8"
/dev/sdeh2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="11856261972681364045" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="cab581b2-a1dd-4128-b98d-d0e75b2c7b4b"
/dev/sdef2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="10455415265497263325" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="76a9064a-84e6-4ec8-aca0-3f66fbe55b60"
/dev/sded2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="3492747265520844990" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="65bfc961-beb3-4105-91e1-514c4d5b927b"
/dev/sdeb2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="14204935648313710617" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="a0a82c0b-0704-463c-bcbc-34f06bf2e590"
/dev/sdek2: LABEL="mmcuplot4" UUID="12257070796734361074" UUID_SUB="16560546347906069205" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="0e350908-8639-4bab-8a85-48f66486d2d9"
william@harvester56:~$ blkid | grep -E mmcuplot6
/dev/sdfi2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="9500366803252952534" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="db8c8948-4026-4077-ad4e-26ba614407d0"
/dev/sdfq2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="14514779525521540965" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="8fcda900-94e0-4761-9a0a-c61449261c81"
/dev/sdfg2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="11414995663284118089" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="a2e65b5f-8342-4c4b-942a-a881c0ee74e0"
/dev/sdfn2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="2107388543361531863" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="0a361b93-bca7-4f64-a493-b21b1bd3ebc8"
/dev/sdfl2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="8794879725291272290" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="075a613e-6248-4eac-8b30-3d17deb4e04e"
/dev/sdfj2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="5890401749611128605" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="c3412e79-8f8b-4c0b-92cf-faeb699546cd"
/dev/sdfr2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="2253073252408298285" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="9adddd00-d881-4521-82c6-4f664cf91c92"
/dev/sdfh2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="3783095676991772588" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="84fbffe2-69ea-492a-a5c9-0f947490143b"
/dev/sdfp2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="430937743258217499" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="f0437943-0ec8-40a6-8f21-a3b88021cdb9"
/dev/sdff2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="15948115014804191267" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="2ce57c9f-3cc8-4acc-8db2-66dc3eb89395"
/dev/sdfo2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="4204737998571487521" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="4c25c09d-3d5d-442e-bf3f-5eb51f4146d1"
/dev/sdfm2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="13880043201164852661" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="9593b255-a02a-4ac1-9e43-16b92b654bec"
/dev/sdfk2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="12786961627030989449" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="04cb832c-ed7a-4956-96e0-c0cc808ee934"
/dev/sdfs2: LABEL="mmcuplot6" UUID="5652974470699221253" UUID_SUB="10518637236739477654" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="353f1412-5fc1-49e7-87d5-e755b531fbce"

All seems to be working now. It is on the 4th drive and all is going as expected!
If all the drives Finnish without an issue i will close this issue.


feat(minfier): try fold and or operator

Port tryFoldAndOr.
Related test cases: testFoldLogicalOp.

Amazing work! Thank you!


Run the network using threads

Can we use a thread pool to run the layers of the network in parallel
Maybe we need a copy of the network from which to take inputs and switch between the current and dummy network

If it works this should be contained in the network structure

Having two network and running one or the other at each step is wierd. Need to switch the synapses at neuron level and need to change the link functions, because neurons need to be sync for the switching and is error prone

The easiest thing is just to have some threads and run them on portions of the layer, that's it, easy, clean and the construction of the network doesn't care, it can be done in every way the user/coder wants.


Type 'number[]' is missing the following properties from type '[any, any, ...any[]]': 0, 1

The following code, why the call to the incoming arr will give an error？
code:
var arr = [1, 2, 3, 4]
function someArr([num1, num2, ...others]) {
console.log(num1)
console.log(num2)
console.log(others)
}
someArr(arr)
error:

I've found a way to declare arrays and define variable types, and I don't know why I'm doing that, but I hope someone can explain why？
update code：
var arr: [number, number, ...any[]] = [1, 2, 3, 4] function someArr([num1, num2, ...others]) {   console.log(num1)   console.log(num2)   console.log(others) } someArr(arr)
success:

Duplicate of #30252.


New version infinity load

Donwloaded new version scrypt with proxy. Started via node
http://ip/  - invalid inspect structure, so it works
http://ip/?url=steam://rungame/730/76561202255233023/+csgo_econ_action_preview S76561199066344867A29964192308D4758666955283261401 - just infinity loading, or 404
have old csgofloat instance runing on other server, same link works, but need new instance with proxies supproting
lust console.log:
debug: Got unhandled GC message 9173
debug: Sending GC message ClientHello
debug: Sending hello, setting timer for next attempt to 2000 ms
debug: Got handled GC message ClientWelcome
debug: Unknown SO type 2 with 1 items
debug: Unknown SO type 7 with 1 items
debug: GC connection established
info: SlimyCumbersomeTiger60 CSGO Client Ready!
debug: Got unhandled GC message 9173
can't find anything in any logs

Your issue doesn't contain enough detail to help debug, closing.


processloader added

Issue reference:
Proposed changes:
Process loader added
Type of change:
index.html & index.css added
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings

Additional info (if any):

Thanks for the contribution @Nilammodh


go mod path

I use 6.1.1 update 6.2.0
go get<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>parsing go.mod:
module declares its path as: github.com/cenkalti/backoff/v4
but was required as: gopkg.in/cenkalti/backoff.v4

I use go1.14
go get gopkg.in/rethinkdb/rethinkdb-go.v6
go: gopkg.in/rethinkdb/rethinkdb-go.v6 upgrade => v6.2.0
go get<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>parsing go.mod:
module declares its path as: github.com/cenkalti/backoff/v4
but was required as: gopkg.in/cenkalti/backoff.v4

go get gopkg.in/cenkalti/backoff.v4
go get<EMAIL_ADDRESS>parsing go.mod:
module declares its path as: github.com/cenkalti/backoff/v4
but was required as: gopkg.in/cenkalti/backoff.v4

should be fixed in 6.2.1
https://github.com/rethinkdb/rethinkdb-go/pull/485


update vcpkg

Please leave a description message so that anyone reviewing this PR can understand what it is about and why we're doing it.
Thanks


pub get seems to fail after update to Dart Editor

This issue was originally filed by<EMAIL_ADDRESS>
What steps will reproduce the problem?

Run pub get from either command line or Dart Editor pubspec.yaml
Failure to run pub get, Dart Editor says to fill this out.
3.

What is the expected output? What do you see instead?
pub get to succeed
What version of the product are you using?
Dart Editor version 1.5.8.release (STABLE)
Dart SDK version 1.5.8
On what operating system?
OS X 10.9.4
What browser (if applicable)?
Chromium
Please provide any additional information below.

Attachment:
pub_get_error.txt (5.84 KB)

This issue has been moved to dart-lang/pub-dartlang#288.


just prepping for eventing upgrade

Fixes #

Proposed Changes

Downstream tests are failing so just putting this PR together in preparation for it dropping to make sure things work after it.

Release Note

Docs

https://github.com/knative/eventing/pull/5201

@vaikas Can you rebase? I wrongly merged the update deps before this one


Use selector-observer to run parse-backticks

On request by https://github.com/sindresorhus/refined-github/pull/3290#issuecomment-659262450
Part of #3084
Edited the title and it stil runs well!!! 😋 (though there's about 2 seconds' delay)

We have to test the selectors and narrow scope down since they are now global

Grouped/merged related selectors
Replace some generic selectors with more specific selectors
Add detailed comments

Not sure if you fixed this but

Yeah it's parsed

Isn't the selector for that place is already there before this PR?

Funny it was not working for me before

Should we make a line break in between each unique page type? (Ex: isWiki isDashboard) I think it will make it a drop easier to read.

I don't think there's any way to make it any more readable. It's a list of wildly different selectors, it's just what it is

Looks great! Possible additions:

use selector-observer in https://github.com/sindresorhus/refined-github/blob/master/source/features/linkify-code.tsx (this would fix https://github.com/sindresorhus/refined-github/issues/2091)
remove parse backticks from https://github.com/sindresorhus/refined-github/blob/master/source/features/format-conversation-titles.tsx
either rename format-conversation-titles back to linkify-titles or merge it into linkify-code

This is awesome!! https://github.com/tanmayrajani/notifications-preview-github is now parsed too!!

Is it https://github.com/sindresorhus/refined-github/pull/3397/files#diff-7b0a2c8650978a85cebddd08a46e40baR31? I don't have the extension

Yes.
You should get it, its an awesome extension.


custom properties for groups

Hello, great tools.
I want to create groups with custom_properties, but the group class does not accept the custom_properties argument, unlike the node class. Is there a reason for this choice? Is there another way to achieve the same result? If not, is it possible to add this feature? If you are interested, I could submit a working implementation I have done (mostly replicating what you do for nodes).

Howdy !
Allow me to say that I'm the individual who introduced custom properties for Nodes/Edges end last year.  At that time I personally had no business needs to implement this feature for NodeGroups.  So we can not consider this as an issue.  I am convinced your feature request could be instituted.  However please be warned that there will be no distinction between GroupNode and Group Custom Properties scope.  This is caused by the fact that yEd considers GroupNodes as  ... Nodes.
The attached pic should provide more insight.  If you can live with this behaviour  I am willing to spent some time on it when resources permit.

Hello @bockor
Thanks a lot for your answer.
Your solution seems acceptable to me.
I created a pull request with a modification I attempted in this direction.
I hope this pull request can help.
Let me know if I need to modify something.

I have merged the PR and published a new release to PyPi: this feature should be working in version 1.5.0.


Embedded redis fails to start on port <1025

From time to time our builds on agents fail with the message from redis container:

Could not create server TCP listening socket *:1015: bind: Permission denied

Running locally with Windows host on port 1000 has no issues, so this might be that build servers have additional security settings in place that deny the usage of privileged ports.
Looking at the code the port selection logic will choose any port from 1000 to 10000
https://github.com/PlaytikaOSS/testcontainers-spring-boot/blob/495079ec1ff0ddf28dc00808669b4fc02b30e0d3/embedded-redis/src/main/java/com/playtika/test/redis/RedisProperties.java#L32-L36
Tested on latest available version (2.2.11, testcontainers 1.17.5)
As a fix I suggest to start port lookup from 1025, since there is no need to take up a privileged port

Thanks for contribution


Runchecker failure: no-sm3

Fails in test_evp

This is most probably the same failure as  #14962 and thus fixed by the recent encoder/decoder fix.

I.E., it is not reproducible with current master anymore.


Wrong total in aggregate report

I get the wrong total in an aggregate report:
Wednesday 25 March 2020 (8h 39m 10s)
        bf090fd  07:00 to 08:28   1h 27m 40s  redacted  [a]
        0055576  09:00 to 09:43      43m 32s  redacted  [b]
        18835d8  11:04 to 11:17      12m 58s  redacted  [c]
        9ecf7fa  14:00 to 15:55   1h 55m 21s  redacted  [c]
        6da0ed4  16:20 to 18:29   2h 08m 19s  redacted  [c]
        87ee03f  22:24 to 00:35   2h 11m 20s  redacted  [c]

Wed 25 March 2020 - 6h 27m 50s
  redacted - 6h 27m 50s
        [a  1h 27m 40s]
        [b     43m 32s]
        [c  4h 16m 38s]

This is probably intended. I'm using it wrong..

:wave: @LarsJK ! This has been recently fixed in #277 but not released yet. Stay tuned!
Duplicate of #248.

I can duplicate the same wrong calculation issue in version 1.10.0. Is this released?

@jmaupetit, @jbarnoud, May I ask to re-open this bug? I also tested for today that if the edit/add might lead to the difference but that's not true as I today with only one segment the result between watson log and watson aggregate differ:
Log:
Thursday 10 December 2020 (3h 06m 53s)
                2fd6g93  00:48 to 3:55   3h 06m 53s  test
Aggregate:
Thu 10 December 2020 - 3h 25m 15s
       test - 3h 25m 15s

@mizhozan aggregate and log commands do not behave exactly the same. For example, the former will split frames that cross day boundaries while the latter will not. Do you have any other information that could be useful to debug the issue?


Fix to Bug 66061 - Refine the log message in DefaultSamplerCreator  from the state of in progress to complete

Description and Motivation
Hello,
While viewing the https://issues.apache.org/jira/browse/MAPREDUCE-4262, I found that the logging statements might give inaccurate messages.
I also find that in the line 420 of the file DefaultSamplerCreator.java, the log messages says "setting path...". However, the path should have already been set in previous lines of code.
Would it be better if we change the verb "setting" to "finished setting" to indicate the action is completed? Or can we move the logging statement to the begining of the method? Since when there was an exception in previous lines, the logging message would not be printed, which may be not good for debugging.
Bug URL: https://bz.apache.org/bugzilla/show_bug.cgi?id=66061
How Has This Been Tested?
logging message changed, no need to test
Types of changes

Bug fix (non-breaking change which fixes an issue)

Checklist:

[ x] My code follows the code style of this project.
[ ] I have updated the documentation accordingly.

Hi @pmouawad @FSchumacher ,
Thanks for approving the comments. Really hope my contribution can make Jmeter more perfect, though the contribution is incremental.
Based on the feedback, I further reviewed some source code and logging messages and found the following inaccurate expression of the relation between the logging statement and its corresponding action in the source code. Meanwhile, I also proposed some suggestions. Could you please help me figure out whether they are appropriate or not? I can make a PR later.

Logging statement:
https://github.com/apache/jmeter/blob/659c1ff5eaea941eb7ad0638b58e904dcc06d961/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java#L512
Suggestion: Change setting port to finished setting port
Reason: The logging statement is placed after the function setPort() indicting the function has been successfully executed.

Logging statement:
https://github.com/apache/jmeter/blob/659c1ff5eaea941eb7ad0638b58e904dcc06d961/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java#L988
Suggestion: Change superseded by to will be superseded by
Reason: The logging statement is placed before the target function setCacheManagerProperty() indicting the function will be executed.

Logging statement:
https://github.com/apache/jmeter/blob/659c1ff5eaea941eb7ad0638b58e904dcc06d961/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java#L1006
Suggestion: Change superseded by to will be superseded by
Reason: The logging statement is placed before the target function setProperty() indicting the function will be executed.

Logging statement:
https://github.com/apache/jmeter/blob/659c1ff5eaea941eb7ad0638b58e904dcc06d961/src/jorphan/src/main/java/org/apache/jorphan/collections/Data.java#L144
Suggestion: Move the logging statatement one line above, before the method  setCurrentPos(index);
Reason: The logging statement is placed before the function setCurrentPos() indicting the function will be executed.


Tabular: Fixed CatBoost iterations value after training

Issue #, if available:
Description of changes:
Fixed CatBoost iterations value after training, previously was 1 too few. Caused _FULL models to train for 1 fewer iterations than expected.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Job PR-343-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-343/1/index.html


Clarity & Monaco Editor in a Form

[x] bug
[ ] feature request
[ ] enhancement

Expected behavior
Set Cursor to last position on line, if click on an empty Area in line.
Actual behavior
Nothing happend when click on a line...
Works correct in Firefox!
The Problem only exists on Chrome.
Reproduction of behavior
Working example without clarity -> https://jsfiddle.net/c4Lb9ybb/
Not Working exampe with clarity -> https://jsfiddle.net/9vqz2x0c/
It does also works in Chrome if i remove the
Environment details

Clarity version: 0.10.0

OS and version:

Browser: Chrome 61.0.3163.100

@windischb: I believe this issue is because inside of Clarity forms, we target the span selector directly. You can do this in your app CSS for now:
.view-line span {
 display: block
}

to resolve the issue. But this will be resolved with #932.
Closing the issue based on the above info. Please feel free to reopen the issue if you have any more questions.

Many thanks!


Use database-id

Can you clarify?

This might look familiar. Just part of the process of breaking up rhyolite stuff into smaller reusable chunks.


Update endpoints.ts

Closes https://github.com/kodadot/nft-gallery/issues/8705

done in

https://github.com/kodadot/nft-gallery/pull/8719


Update 1-pager for Stack Status Spec

This updates resourceConditionPaths --> printerColumns and related changes
Related PRs to make followup changes to stack repos:
https://github.com/crossplaneio/sample-stack/pull/5
https://github.com/crossplaneio/stack-aws/pull/93
https://github.com/crossplaneio/stack-azure/pull/86
https://github.com/crossplaneio/stack-gcp/pull/124
https://github.com/crossplaneio/stack-rook/pull/34

Really love this improvement, thanks @rathpc! One thing I am wondering is if we can actually formalize the conditions as code and generate these ui-schema files as part of code generation. This would allow stack builders to annotate the ui-schema printer columns in code similar to how we do with k8s printer columns. It makes me somewhat uncomfortable to be writing these by hand, and I recently experienced some confusion as to how the files should be formatted, etc. when adding a new type to stack-gcp. Don't think we need to block on this, but wanted to get your thoughts :)

Thanks Dan! I think I follow but let's chat later this week about it 👍


Update eslint and eslint-config-stylelint dependancies

Lgtm.
I'm going step back from this config now, so in the future feel free to merge yourself.

No problems, thanks for the tremendous effort and work you have done to get it to where it is today :+1:


Make ReadonlyArray iterable.

In the same vein as #9996.
ReadonlyArray<T> should be considered iterable too.

Hi @joshaber, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

:+1:


Recognition disorder of Arabic

#648

Output file examination of "ara.pdf" that you was posted in comment

Wrong sentence order:
some sentences are over-stepping their location in the paragraph, I discovered that this was caused by the software used to view the pdf, in my case Chrome, but after using Windows Reader the problem was solved.

Repetitive mistakes:
( لا ) is wrongly represented as ( ال ) , which is actually opposite to the correct spelling, which I understand that Ray is currently working on it.
( ، ) is the Arabic Comma, is wrongly represented as ( ء ) or ( , ) or ( . ) or ( » )
( اً ) is represented by only ( ا ) , which is missing (  ً   )
some rare cases of multiple combined words, there are 2 separate cases ( مرحامستبشرا ) and( منالناس ) ,    should be ( مرحاً مستبشرا ) and ( من الناس )

Rare Case:
When I copied the text to Microsoft Word, most of the font was in Arial font except of a couple of ( . ) full-stops which were in Calibri font, a weird thing to see.

Conclusion:
Altogether, except for the mistakes that I stated earlier, the recognition rate was very good in this sample.
Note that in the Arabic language, the state of ( لا ) is frequently used, so-much that if this misrepresentation of it as ( ال ) is continued, it would degrade the recognition rate drastically.


Arch. microservices figure 4-10: Inconsistent entity names

Following entity names should be pluralized in the picture to be consistent with the rest of the entity names:

Conferences Management > Country
Orders and Registration > Reservation

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

ID: a29b58eb-8681-1a9b-93bb-431e3d7c68c8
Version Independent ID: 3c121eca-c7e7-b0a6-3db0-c7ddbb14fb0a
Content: Identifying domain-model boundaries for each microservice
Content Source: docs/standard/microservices-architecture/architect-microservice-container-applications/identify-microservice-domain-model-boundaries.md
Product: dotnet
GitHub Login: @CESARDELATORRE
Microsoft Alias: wiwagn

Thanks for your suggestion @bartlannoeye. @CESARDELATORRE can you take a look at this request?

Will be included in the next PR.

Included in the PR waiting for the merge.


Wrote up a conclusion

Literary Masterpiece.

I do like the conclusion, but I wonder if it the contrast between the writing style from the rest of the paper will seem to be too stark a contrast?
If everyone else likes it I think its fine. Im willing to wrap this up.

While it has a different style, I enjoy that it adds charm to the paper. I feel it will be fine to leave it with a story-like ending.


proposal: os: access to ELF auxiliary vector

Proposal Details
like os.Args and os.Environ, I was wondering why there is neither an API to get ELF auxiliary vector nor Aux type. C does provide them in Elf.h

so, in the current state of art, is there no way to get the full aux vector?

As far as I know there is not.

so, in the current state of art, is there no way to get the full aux vector?

Not from Go. In C you can usually derive it from the address of the environ symbol, but it may be non-portable.

I see runtime has an internal sysauxv which x/sys/cpu hooks into, falling back to /proc/self/auxv. Is the proc file sufficient?

/proc/self/auxv

could you provide a minimal example on how to retrieve auxv values?

see https://go.googlesource.com/sys/+/9a28524796a519b225fedd6aaaf4b1bf6c06c002/cpu/hwcap_linux.go#26

https://github.com/golang/go/issues/68089 advocated to expose runtime.getAuxv() and make it a public API. Exposing the auxiliary vector via os was not considered as a viable option, as os should be more of a higher level layer with cross OS compatability.
But adding a public API, like runtime.Getauxv(), would also introduce some kind of OS specifics into runtime.
An alternative, also mentioned in https://github.com/golang/go/issues/67839#issuecomment-2150542705 and go.dev/cl/458256, could be an exposure of the  auxiliary vector via golang.org/x/sys. golang.org/x/sys is OS specific and perfect fit. The unknown for me in this approach is how golang.org/x/sys can get access to something, that only runtime knows about, without techniques like //go:linkname.

golang.org/x/sys/cpu already reaches into the runtime to fetch the auxiliary vector, using go:linkname.   Adding an exported function in golang.org/x/sys/unix isn't going to make matters better or worse.
Reaching in from packages in x/sys is better than reaching in from arbitrary external packages, because we can change the x/sys packages ourselves, and then drop the support in runtime when we no longer support older versions of the x/sys packages.

Thanks, may as well wait for the proposal process.

Is the proc file sufficient?

/proc is tricky because it has additional permission checks and interacts with capabilities. See https://dxuuu.xyz/filecaps.html. Using auxv from the runtime really is a lot less error prone.

Is there something I can help with to get feedback on this proposal or continue with the proposal process?

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

We should drop the "Get" but func Auxv() []uintptr in x/sys/unix seems fine?

Auxv is a sequence of key/value pairs, so I'd lean toward a slightly more structured API: func Auxv() [][2]uintptr


Add compliance score to frameworks

Add averageControlsScore field to PostureFrameworkSummary which will hold the average of the compliance scores of all controls in this framework

How do we calculate the average score? And why is it sent and not calculated in the BE side?

We calculate the score in score package of opa-utils, as the score was calculated until now. See here how


[3/3] WIP Examples use Ray argument passing instead of command lines.

[x] Forked repo is synced with upstream -> github shows no code delta outside of the desired.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
[x] Tests are passing? https://github.com/microsoft/DeepGNN/blob/main/CONTRIBUTING.md#run-tests
[x] Changelog and documentation updated.
[X] PR is labeled using the label menu on the right side.

Previous Behavior
Examples use command line arguments.
New Behavior
Examples now use ray argument passing.

This is much better but the reason I cannot remove the weird dataset stuff and the checkpoint fn, ... is because of we still need to support the unit test.


Use with paranoia gem ?

Can this be used with the paranoia gem ?

I'd be really surprised if it did. Gems that modify default_scope normally
don't play well with others. The bulk updates that closure tree does all
over the place, for example, won't know to do updates rather than deletes.
It wouldn't be hard to spin up a rails console with both configured and
just try it out though. On a backup. With a fire extinguisher nearby.

That was my thoughts as well. Thank you for quick reply.


Data Generation

Thanks for your great work!
I'm trying to regenerate data using gen_burgers1.m, and I find I have no chebfun, I have no idea
what it is. Could you tell me what it is?
Thank you very much!

And spinop in burgers1.m, thx!

Got the same problem and fix it by downloading chebfun and add into Matlab.

Yes, you may need to download the chebfun package in Matlab.

Thank you, I got it.


Documentation corrupted

Hey - It's look like the JavaDoc about the Logger class is damaged:
https://tinylog.org/javadoc/org/pmw/tinylog/Logger.html
And I have a feature request for your tinylog. What do you think about a option in the configuration file to filter a stacktrace. At the moment I filter (print only informations about special packages) the stacktrace extern in a own class before I give them to the Logger.
A other thing - If you imp!ement this, can you add a feature to hide the 'caused by' information from exceptions? Currently you just print the stacktrace and limit them with a option. That's not enought for me :D

Thank you for your issue for the missing HTML page for the logger class! I have upload the Javadoc again and it should be complete now.
Your feature request is welcome :-) I have already thought about some advance features for removing nondescript stack trace elements. Could you create a separate issue for your feature request?