Propagating sign-in/-out information

@bklebel writes:
According to the latest state of the PR #38 (and my latest comments therein, e.g. this comment), I think we should boil down the Control Messages to

SIGN-IN
SIGN-OUT
SEND_DIRECTORY - a request for the Directory of a Coordinator, subject to change of the message type signature, possibly we would prefer sth like "GET" or "REQ" over "SEND"(please). What do you think? Or was this the CO_TELL_ALL?
CO_UPDATE - a Coordinator sending its local and global Directory

In the comments to #38, relating to the discussion in #44, I proposed to simplify the messages so that Coordinators do not announce individual SIGN_IN/OUT actions, but simply send their Directory to all connected Coordinators when it changes.

If a sign-in/-out happened within the local Namespace, the respective Coordinator sends the now updated local Directory (and its current global Directory) to all connected remote Coordinators: CO_UPDATE
If a SEND_DIRECTORY request is received by a Coordinator, they reply with their Directories in the CO_UPDATE message.
Coordinators should only consider changes to their own global Directories which come from Coordinators of the corresponding Namespace, i.e. if Co1, Co2 and Co3 (with Namespaces N1, N2, and N3, respectively) are present in the leco network, and Co1 sends a CO_UPDATE message to Co3 which contains updates within the N2 Namespace which Co3 does not have yet, Co3 should, rather than trusting Co1 blindly, at least ask Co2 again for its Directory.
Whenever a Coordinator receives a CO_UPDATE message, it updates its Directories, global and local, and possibly starts to sign-in to new remote Coordinators, as discussed

Originally posted by @bklebel in https://github.com/pymeasure/leco-protocol/issues/29#issuecomment-1428145358

Coordinators should only consider changes to their own global Directories which come from Coordinators of the corresponding Namespace, i.e. if Co1, Co2 and Co3 (with Namespaces N1, N2, and N3, respectively) are present in the leco network, and Co1 sends a CO_UPDATE message to Co3 which contains updates within the N2 Namespace which Co3 does not have yet, Co3 should, rather than trusting Co1 blindly, at least ask Co2 again for its Directory.

On this I have to ask "why?" (hopefully answered elsewhere) -- why do we stop trusting our coordinators? If Co3 does not trust Co1 about its Directory, what does it trust Co1 about, and why? (If Co2 had

Let us start with the requirements:

Coordinators have to route messages, so they need a list of connected Components with their identities (local Directory)
Coordinators shall provide a list of all Components in the Network (global Directory)
All Coordinators have to have an up-to-date global Directory copy, so:

They need an initial version of either one global Directory or all local Directories, in order to start their own global Directory
They need to have an update, whenever a Component signs in or out

A few messaging options:

We can have a single "directory" message, which sends the global Directory of a Coordinator. This is also used during Component sign-in. Advantage: We do not need regular exchanges of Directories (each sign-in keeps all Directories in an up-to-date version).
We have the full "directory" message and "differential updates", this invites for regular exchanges of the directories among the Coordinators, just in case.
We have a "local_directory" message (destined for communication between Coordinators), an "update" message, and a "global_directory" message (for Components)

A few updating options (how does a Coordinator update its global Directory):

It uses whatever global Directory it gets (which might be outdated regarding some other Coordinator)
It uses only the local Directory (or the corresponding part of the global Directory) of the sending Coordinator

I'm for option 2 ("distrusting other Coordinators") due to timing issues. For example:

Component CA signs in to Coordinator 1, which updates its global Directory
Coordinator 1 sends its changed global Directory to Coordinators 2 and 3
In the meantime, Coordinator 2 has an update of its own and send its changed version (still without CA) to Coordinators 1 and 3
Coordinator 3 receives the version of Co1 first, adding CA, then Co2's directory (without CA) arrives, such that CA is removed from the global Directory.

In order to keep it simple and reliable, I vote that only a Node's Coordinator is a source of truth regarding that Node's Components.
Whether that information is extracted from that Coordinator's global Directory or a special "local directory" message, is secondary.

[ ] How do we transmit the Coordinator addresses (at Coordinator sign-in)? They do not fit into the normal Directory list, as they contain additional information (address)
[ ] Where do we put these Coordinator addresses: local or global Directory? In a new Directory ("Coordinator Directory")

My proposal:

Add that new "Coordinator Directory" (or "backbone Directory") as its own term (as it is needed on the technical side anyways)
Send this new Directory as well, when the local or global Directory (in the current PR) is sent
Use "updating option 2": Only use the Component information of the relevant Coordinator
Regarding amount of message types: I'm open for any solution. At one hand, I like the smallness of diff updates, on the other hand, I like the simplicity of sending always the (local) directory, preventing another "heartbeat" style.

In order to keep it simple and reliable, I vote that only a Node's Coordinator is a source of truth regarding that Node's Components.

thank you for the illustrative example. I agree with this point.

How do we transmit the Coordinator addresses (at Coordinator sign-in)? They do not fit into the normal Directory list, as they contain additional information (address)
Where do we put these Coordinator addresses: local or global Directory? In a new Directory ("Coordinator Directory")

I think both can be done in one sweep: the local directory already is, according to your definition above, a

list of connected Components with their identities

So, in essence, a dictionary/key-value store.  Above you already say that coordinator addresses are  "currently part of local Directory". This looks like it solves the problem? :shrug:

I'd rather move towards fewer directory types, not more. >.<
We could have one "dictionary" directory with full names in the keys and coordinator addresses/local Component identities/nothing as values as appropriate.
We trivially can filter out local entries (all starting with <localNamespace>.), coordinators (all ending with .COORDINATOR), or global entries (the rest).
Note: this is already moving a bit toward specifying implementation. How about we specify a set of behaviours/requirements, and let the implementation(s) hash out how they solve it?

One final point: If we only trust coordinators with information about their local components, but not about global components (because of the timing issue you bring up), we don't need to distribute the global directory at all, only the coordinator information and local names.

Let's frame it differently: we want to use the information with the least intermediaries.
I always thought, we exchange the local information among Coordinators and they offer the global information to end users.
Regarding the content: For the Coordinator, the local Directory contains the identities. That information does not matter to anybody else, therefore, even the transmitted local directory does not contain more, than the names.
Only the Coordinators need addresses transferred.
Let us define the Directories without the identity (implementation detail). That is even in the direction of discoupling the transport layer from the message layer (you could build a tcp transport layer without those identities).

Sounds good! (whole comment).

Let's frame it differently: we want to use the information with the least intermediaries.

"May", "Should" or "Must"? :stuck_out_tongue_winking_eye:


How to login in docker registry from docker machine

I've running a docker registry in Artifactory on https://server/artifactory.
When I bypass the reverse proxy I'm able to login on the registry using:
$ docker login http://server:8081
Now it's forbidden to bypass the reverse proxy. So I need to trust the cert inside my docker machine before I can login in my docker registry.
$ docker login https://server/artifactory
Error response from daemon: Get https://server/v2/: x509: certificate signed by unknown authority

Now I've created a folder certs:  /var/lib/boot2docker/certs/ and copied my rootca.pem in it. Rebooted the machine:
Now I get the following error after a docker login:
Error response from daemon: login attempt to https://server/v2/ failed with status: 404 Not Found
Same error happens when I try to import my ca.crt inside /etc/docker/certs.d/hostname-registry/ca.crt
Where do I have to import my root CA? Is this enough to accept the certs and to make authenticating possible?

+1

If you are using artifactory SAAS then you need to login as follows:
docker login ${server-name}-{repo-name}.jfrog.io
e.g. if my repo is called 'docker' and my server name is 'servername', I would do:
docker login servername-docker.jfrog.io


Network jitter、gcc

is there any strategy to deal with network jitter by webrtc? video is played unsmooth on my local wifi.

It's built-in to browser code and can't be changed.


Integration Test Failure Caused by Database Rules

Integration test suite may sometimes fail with the following error:
FIREBASE WARNING: set at /blocked failed: permission_denied
[FAILURE] nonNullApp.database().ref("blocked").set(): Error: PERMISSION_DENIED: Permission denied

This happens when there are custom rules in the realtime database. Changing the rules back to defaults usually fixes the issue:
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
  }
}

The integration test suite should not depend on a specific rules configuration. If such a dependency is needed, the test suite should update the rules config during the setup phase (Java and Python SDKs do this already).

This has been implemented. Integration tests overwrite the database rules with the defaults now. If this is deemed too invasive, we can implement a warning+prompt mechanism in the future.


Capture dynamic elements

hi
how can i capture dynamic html elements?
it's seems html2canvas can't capture dynamic elements generated by jquery
tnx for replay

no anybody idea?


Handle Remote Modules and Fix HCL Parsing

This does a variety of things that hopefully help out.
Change from using pyhcl to using python-hcl2
From my understanding terraform, by default, uses hcl2 now. The readme of pyhcl mentions that it does not support hcl2 (and therefore modern terraform). Changing to hcl2 seemed to clear up a lot of the unexpected X errors as well. However, there's still a goofy one when using : in place of = such as this:
app_settings = {
    "SOME_VAR": "SOME VALUE"
}

but this is an easy fix to just change the colons to equals
Improve error handling when parsing hcl
I changed up the way the tf files are loaded so that each file is loaded individually rather than creating a big combined one and then saving that to the Terraform.config. This way, we can throw an exception that's a little more indicative of where the problem is.
For example, if my file for the issue with colons described above is called myfunc.tf then when that is loaded, the exception thrown will read:
Traceback (most recent call last):
...
RuntimeError: Exception occurred while parsing /path/to/myfunc.tf

Use os.path.join
Noticed a comment in terraform.py about using path.join instead of the concat by addition so I changed that up
Handle remote module
Probably the pièce de résistance of this PR. Added the ability to handle remote modules (at least I think this should handle most cases). Since we require the terraform config to be init'd, we can assume all remote modules are found under .terrform of the topmost dir of the config. From here it's just about getting the right path out of the source description which a simple enough regex does the trick to split things. I tried this on a handful of sources including:

local modules (just to make sure nothing broke)
terraform registry
git using ssh
github.com

Make viewer usable on parsing failure
Even if the server fails, I personally want to be able to move around the graph it creates even if I don't get the full functionality, so I did just that. When the server fails to parse, the chart is still semi usable and an alert is added to the navbar to indicate that a server exception occurred

I can confirm that this fixes my immediate "broken-ness" using blastradius with TF 0.12.26

I can confirm that this fixes my immediate "broken-ness" using blastradius with TF 0.12.26

Awesome to hear! Did you have an open issue for what was broken? If so, can you link it here please? If not, could you elaborate on the "broken-ness" a little please? This way we can gather a little on what this fixes since I included quite a bit into this PR

Same as some other issues floating around... UNEXPECTED <INSERT THING HERE> in parsing TF files.
[2020-09-18 15:12:51,269] ERROR in app: Exception on /graph.json [GET]
Traceback (most recent call last):
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/blastradius/server/server.py", line 61, in graph_json
    tf = Terraform(os.getcwd())
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/blastradius/handlers/terraform.py", line 26, in __init__
    self.config = hcl.load(config_io)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/hcl/api.py", line 62, in load
    return loads(fp.read(), export_comments=export_comments)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/hcl/api.py", line 81, in loads
    return HclParser().parse(s, export_comments=export_comments)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/hcl/parser.py", line 643, in parse
    s, lexer=Lexer(export_comments=export_comments), debug=DEBUG
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/hcl/ply/yacc.py", line 503, in parse
    tok = self.errorfunc(errtoken)
  File "/home/nmhugh2/dev/tf-rks/envs/prod/rancher/env/lib64/python3.7/site-packages/hcl/parser.py", line 634, in p_error
    raise ValueError(msg)
ValueError: Line 9, column 245: unexpected QMARK; expected COMMA, IDENTIFIER, STRING, COMMENT, MULTICOMMENT, MINUS, NUMBER, FLOAT, $end, RIGHTBRACE, RIGHTBRACKET, COLON, RIGHTPAREN

This is now 2 years stale, closing this


[FLINK-13637][docs] Fix problems of anchors in document(building.md, common.md, queryable_state.md)

What is the purpose of the change
This pull request fixes problems of anchors in documents(building.md, common.md, queryable_state.md).
The format should be:
[create an anchor](#anchors-in-markdown)

Add - characters between each word in the heading and wrap the value in parens
All letters should be lowercase.

Brief change log

Change letters to lowercase in queryable_state.md and common.md.
Add - characters between each word for the anchors in building.md.

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)

Good catch! +1

@dianfu Thank you. I'll merge this...
@flinkbot approve all


Fixed robot.data["names"] not giving any names

Description:
Fixes #147. Previously, data["names"] would return only empty strings.
Fix:
I added a quick utility to grab the names of each body joint and assign it to each ArticulationUnit:

Test Coverage:
Added a new test to verify that the stretch joint names are pulled correctly.

Duplicated w/ https://github.com/empriselab/RCareWorld/pull/146


lightbot Problem

i tried to run your example code & i succesfully created the bot but on serial monitor i am it is saying "Unable to connect to telegram server" i have tried changing library version and Pin configuration but still the error is same. Can you please look into it ?

Hi @muk3shb
When you get error  Unable to connect to telegram server it is not related to pin configuration.
Please attach the following information:

Full serial output.
Your code.
For which device you are trying to compile the code?

We will fix your problem :)

code :

/*
Name:        lightBot.ino
Created:     26/03/2021
Author:      Tolentino Cotesta<EMAIL_ADDRESS>Description: a simple example that do:
1) parse incoming messages
2) if "LIGHT ON" message is received, turn on the onboard LED
3) if "LIGHT OFF" message is received, turn off the onboard LED
4) otherwise, reply to sender with a welcome message
*/
/*
Set true if you want use external library for SSL connection instead ESP32@WiFiClientSecure
For example https://github.com/OPEnSLab-OSU/SSLClient/ is very efficient BearSSL library.
You can use AsyncTelegram2 even with other MCUs or transport layer (ex. Ethernet)
With SSLClient, be sure "certificates.h" file is present in sketch folder
*/
#define USE_CLIENTSSL false
#include <AsyncTelegram2.h>
// Timezone definition
#include <time.h>
#define MYTZ "CET-1CEST,M3.5.0,M10.5.0/3"
#ifdef ESP8266
#include <ESP8266WiFi.h>
BearSSL::WiFiClientSecure client;
BearSSL::Session   session;
BearSSL::X509List  certificate(telegram_cert);
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiClient.h>
#if USE_CLIENTSSL
#include <SSLClient.h>
#include "tg_certificate.h"
WiFiClient base_client;
SSLClient client(base_client, TAs, (size_t)TAs_NUM, A0, 1, SSLClient::SSL_ERROR);
#else
#include <WiFiClientSecure.h>
WiFiClientSecure client;
#endif
#endif
AsyncTelegram2 myBot(client);
const char* ssid  =  "";     // SSID WiFi network
const char pass  =  "";     // Password  WiFi network
const char token =  "*********************************************";  // Telegram token
const uint8_t LED = LED_BUILTIN;
void setup() {
// initialize the Serial
Serial.begin(115200);
Serial.println("\nStarting TelegramBot...");
// set the pin connected to the LED to act as output pin
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH); // turn off the led (inverted logic!)
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
delay(500);
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(500);
}
#ifdef ESP8266
// Sync time with NTP, to check properly Telegram certificate
configTime(MYTZ, "time.google.com", "time.windows.com", "pool.ntp.org");
//Set certficate, session and some other base client properies
client.setSession(&session);
client.setTrustAnchors(&certificate);
client.setBufferSizes(1024, 1024);
#elif defined(ESP32)
// Sync time with NTP
configTzTime(MYTZ, "time.google.com", "time.windows.com", "pool.ntp.org");
#if USE_CLIENTSSL == false
client.setCACert(telegram_cert);
#endif
#endif
// Set the Telegram bot properies
myBot.setUpdateTime(1000);
myBot.setTelegramToken(token);
// Check if all things are ok
Serial.print("\nTest Telegram connection... ");
myBot.begin() ? Serial.println("OK") : Serial.println("NOK");
Serial.print("Bot name: @");
Serial.println(myBot.getBotName());
}
void loop() {
// local variable to store telegram message data
TBMessage msg;
// if there is an incoming message...
if (myBot.getNewMessage(msg)) {
String msgText = msg.text;
if (msgText.equals("/light_on")) {                 // if the received message is "LIGHT ON"...
  digitalWrite(LED, LOW);                          // turn on the LED (inverted logic!)
  myBot.sendMessage(msg, "Light is now ON");       // notify the sender
}
else if (msgText.equals("/light_off")) {           // if the received message is "LIGHT OFF"...
  digitalWrite(LED, HIGH);                          // turn off the led (inverted logic!)
  myBot.sendMessage(msg, "Light is now OFF");       // notify the sender
}
else {                                              // otherwise...
  // generate the message for the sender
  String reply;
  reply = "Welcome " ;
  reply += msg.sender.username;
  reply += ".\nTry /light_on or /light_off ";
  myBot.sendMessage(msg, reply);                    // and send it
}

}
}

I am compiling for ESP-32 WROOM board

@muk3shb If you are using the latest ESP32 Arduino core 2.0.2, revert to the previuos 2.0.1 due to a bug in core libraries or set this to true:
#define USE_CLIENTSSL false

@muk3shb If you are using the latest ESP32 Arduino core 2.0.2, revert to the previuos 2.0.1 due to a bug in core libraries or set this to true:
#define USE_CLIENTSSL false

This is simimal to issue https://github.com/cotestatnt/AsyncTelegram2/issues/33

Thankyou so much!! I changed the core to 2.0.1 and it is working with little changes. And i aslo tried to defint the CLIENTSSL TO TRUE but an error was being occurred because I don't know the depth of it.
Can you please give some tips to understand the working of this code. I am a beginner and yet learning. Thankyou so much. Once again.

Shure, feel free to ask whatever you need to undarstand better.
Regarding ClientSSL maybe you miss the library.

Yes i found that library missing, How can we implement TOTP on our bot ?

Shure, feel free to ask whatever you need to undarstand better.
Regarding ClientSSL maybe you miss the library.

YES!! I found that library missing, Thanks. How can we implement TOTP on bot ?


onColumnResize example

Hi there,
Another naive question:
onColumnResize

onColumnResize?: (column: GridColumn, newSize: number) => void;
onColumnResize is called when the user is resizing a column. newSize is the new size of the column. Note that you have change the size of the column in the GridColumn and pass it back to the grid in the columns property.

According to the doc, I need to " pass the column back to the grid in the columns property."
I am quite not sure how to do it.
  const onColumnResize = (column, newSize) => {
    console.log(column)
    console.log(newSize)
    column.width = newSize;

    return column;
  };

I am just trying to return the column in the onColumnResize handler.
Any lights on this would be huge for me.
Thanks.

Think of it like the value property for an <input> element. When you get an onChange event you must update the value you pass to the input on the next render or it wont actually show the update. Same rule applies to resizing columns. When a onColumnResize event happens, it gives you the new size for the column, you must re-render the grid, but now the columns property should have a list of columns one of which is the resized column at its new size.

Thanks for your reply. I understand how to update a value for an input property.
class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {value: ''};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleChange(event) {
    this.setState({value: event.target.value});
  }

  handleSubmit(event) {
    alert('A name was submitted: ' + this.state.value);
    event.preventDefault();
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" value={this.state.value} onChange={this.handleChange} />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

But I really couldn't get how to re-render the grid with the changed column width. A simple example would be of huge help.
Also if you can share the source code of all your storybook thing, it could have saved a lot of time for you. Or if you have already shared the storybook source code somewhere, please let me know.
Many thanks!!

I have figured it out after looking into the examples here:
https://github.com/glideapps/glide-data-grid/tree/main/packages/core/src/data-editor/stories
Basically, I have to use a state variable to hold the columns and send it to the DataEditor via it's columns property so that we can update it to make the Grid re-render. I kept forgetting about the state variables as I kept using normal javascript variables.
const onColumnResize = useCallback((column, newSize) => {
setColumns(prevCols => {
    const index = _.findIndex(prevCols, { id: column.id });
    const newCols = [...prevCols];
    newCols.splice(index, 1, {
        ...prevCols[index],
        width: newSize,
    });
    return newCols;
});
}, []);

<DataEditor
  getCellContent={getCellContent}
  ref={dataEditor}
  columns={columns}
  headerHeight={50}
  rowHeight={50}
  rows={20}
  onColumnResize={onColumnResize}
  overscrollX={10}
  overscrollY={10}
  onCellEdited={onCellEdited}
  onVisibleRegionChanged={onVisibleRegionChanged}
  getCellsForSelection={true}
  smoothScrollX={true}
  smoothScrollY={true}
  rowMarkers={"both"}
/>

The online examples [1, 2] let me double click the edge of a column header to auto-size their width to fit content, but when I try it myself using onColumnResize the same as faheemhameed above or the storybook files, double clicking does nothing. I don't see anything about auto-sizing on double click in the API docs, how can I enable that?

The online examples [1, 2] let me double click the edge of a column header to auto-size their width to fit content, but when I try it myself using onColumnResize the same as faheemhameed above or the storybook files, double clicking does nothing. I don't see anything about auto-sizing on double click in the API docs, how can I enable that?

Same issue here, any ideas how to solve?

I believe this is working reliably now.


contect discord

i sant discord invitation requast to you, can you accapt it?
cuz i have bunch of question to ask
or i can just ask here

can you gave me the website to install the virtualenv? i did find it myself but i don't want to download the worng one
thanks
i just start learning codes

the name from my discord is called Brandon允凱

@Brandon981026 you must install virtual env using pip install virtualenv in command prompt (Make sure you have python installed and added to path)


[1.12] - Revert accidental push directly to release/1.12

I accidentally pushed my backport before checking out a new branch

:tada: This PR is included in version 2.25.12 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


MST: fixed expired incoming state logic

Signed-off-by: Mikhail Boldyrev<EMAIL_ADDRESS>

Description of the Change
This change removes a very strange line the rationale behind which was not found:
https://github.com/hyperledger/iroha/blob/6c77597ab55163667931591e774f6a04d91b403b/irohad/multi_sig_transactions/impl/mst_processor_impl.cpp#L104
...and adds early removal of expired batches from incoming MstState. Also move semantics get used.

Benefits
see above

Possible Drawbacks
There remains a possibility that the removed line of code was helpful...

Usage Examples or Tests [optional]
Regarding the removed line, it broke no tests when it was commented out.
Regarding the outdated batches, please see mst_processor_test MstProcessorTest.receivedOutdatedState test.

Alternate Designs [optional]

The possible drawback is scaring me.

scaring you is a real drawback...

Reopened in https://github.com/hyperledger/iroha/pull/56


Update signatory to v0.20

Updates:
signatory v0.19 => v0.20

Any idea why this fails on nightly with:
 Downloading crates ...
  Downloaded abscissa_core v0.5.2
error: failed to parse manifest at `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/abscissa_core-0.5.2/Cargo.toml`
##[error]failed to parse manifest at `/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/abscissa_core-0.5.2/Cargo.toml`
Caused by:
  readme file with name '../README.md' was not found
##[error]The process '/usr/share/rust/.cargo/bin/cargo' failed with exit code 101

??

@Liamsi hrmm, that's how Abscissa packages its README.md, but it's both unrelated and I'm surprised it's causing build issues. They must've changed something upstream. As it were, it renders fine here: https://crates.io/crates/abscissa_core


[BUG] Enabling "Show Agent Reasoning" disables file upload

Describe the bug
When enabling "Show Agent Reasoning", it immediately disables file upload.
To Reproduce
Steps to reproduce the behavior:

Create an agent/assistant/chatflow
Enable file upload from the configurations
Save
Go to share chatbot
Make public
Enable "Show Agent Reasoning"
7- Visit public link
8- File upload is disabled

Screenshots

Setup

Installation [cloud]

fix merged! https://github.com/FlowiseAI/Flowise/pull/3713


Fixing minor issues

This p/r includes below canges:

Updating ES-2.0.0 carbon.xml template to remove 'mgt' profile check for mgt_hostname.
Updating IS-5.1.0 sso-idp-config.xml file  service Provider acs with proxy port.
Adding sso-idp-config.xml for ES-2.0.0
Formatting secure vault templates in ES, ESB, G-REG and IS

Merged. Thanks!


Update scala-repl-pp, ... to 0.1.95

About this PR
📦 Updates

com.michaelpollmeier:scala-repl-pp
com.michaelpollmeier:scala-repl-pp-server

from 0.1.87 to 0.1.95
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.michaelpollmeier" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.michaelpollmeier" }
}]

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

Superseded by #4962.


Tag 01V4 has a render issue

The equation has a special labeling or something.

This is caused because data-marker cannot deal with mathematics. I don't think there's any good solution to this in plasTeX or Gerby.
@aisejohan Are you okay with changing this in the TeX code for the Stacks project? Anything not involving $'s would be good.

OK, I changed this particular one, but there are about 28 others... Let me take a look at how bad it would be to change those.

You can use * without $'s around it.

Is it OK to have \item[] with plastex?

Yes. Though there are some improvements that I need to be making to it...

I mean with [] empty! In other words, nothing between the square brackets... Still OK?

Yes, should be fine I think. The problem is not plasTeX, it's the way we render things in HTML. There is no nice way of dealing with mathematics in list markers there. If \item[] is broken, then that is a plasTeX bug.

OK, done


added container option for store retrieved fields in object inside userData

I create a simple functionality for enable a option to save retrieved fields in a object inside the session.userData. I needed this for cleanly the session.userData object and retrieve all facebook fields in a simply way.
I think that can be a usefull option and is optional.
thanks!

@skal88, sorry I missed this one. Thanks for your contribution! 👍


Update license information

Type: Incorrect
Summary:
Update license information
Details:
The Eclipse IP Team has determined that the license is Apache-2.0 AND (CDDL-1.1 or GPL-2.0-with-classpath)
Resolution:
Updates the declared license and source URL.
Affected definitions:

javax.servlet-api 3.1.0

@waynebeaton - thank you for your curation.  I am finding CDDL-1.0 in the sources jar.  I think this is "CDDL-1.0 OR GPL-2.0-only WITH Classpath-exception-2.0."  And where do you see the Apache-2.0 license?  Thank you

Right. That SPDX identifier has been retired (we reviewed this content a while ago). I'll update our records and this PR.
There are 49 files that reference the Apache License:

This file incorporates work covered by the following copyright and

permission notice:

Copyright 2004 The Apache Software Foundation

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

e.g.,
./javax/servlet/ServletRequestAttributeEvent.java: * Licensed under the Apache License, Version 2.0 (the "License");
./javax/servlet/FilterConfig.java: * Licensed under the Apache License, Version 2.0 (the "License");
./javax/servlet/Servlet.java: * Licensed under the Apache License, Version 2.0 (the "License");
./javax/servlet/FilterChain.java: * Licensed under the Apache License, Version 2.0 (the "License");
./javax/servlet/Filter.java: * Licensed under the Apache License, Version 2.0 (the "License");
...

@waynebeaton - OK, thanks.  We have been curating the declared license as the license that governs the whole component (unless otherwise stated on specific files).  And then if only specific files have a license different from the project's overall license, that should show up in the discovered license field.  I will update the declared license field to CDDL-1.0 OR GPL-2.0-only WITH Classpath-exception-2.0. Thank you


Sufficient number of tests to pass when contributing

❓ Questions & Help
Hi! I am looking to contribute to the pytorch_geometric codebase - specifically add an example script for inductive DeepGraphInfomax.
Before I start on my contribution I want to check my installation is correct so I ran the tests
python setup.py test
I fail 3 out of the 226 tests and have a reported code coverage of 86%. I was wondering if this is sufficient? In the contribution documentation it says a coverage of close to 100% is required however on the main README it is detailed that there is only 87% code coverage.
Here is the summary of the test
`
TOTAL                                                  7755   1060    86%
=========================== short test summary info ============================
FAILED test/transforms/test_to_superpixels.py::test_to_superpixels - ImportEr...
FAILED test/utils/test_convert.py::test_trimesh - ImportError: Package trime... FAILED test/utils/test_geodesic.py::test_geodesic_distance - ImportError: Pac... ==== 3 failed, 223 passed, 1 skipped, 498871 warnings in 288.09s (0:04:48) =====
I basically want to check if I need to do anything more before I start adding code/functionality.
Thank you in advance for your time.
Also LOVE the library!

Here is better formatting of test summary

Please do not worry about the test coverage when contributing. The test run looks fine to me but note that there are some tests that require additional packages such as trimesh.

Thank you for your speedy reply. That's great will get started right away. Is there a list of the extra packages required?

See here.


[HTML5] Use 64KiB chunk size in JS HTTPClient.

For consistency with the native one, and the documentation.

Thanks!

Cherry-picked for 3.4.

Cherry-picked for 3.3.1.


Fix usages of 'default' as reserved word

This fixes the JSSyntaxTest for the lory source by properly using
'default' since it's a reserved word

CR :moon:

Good job @kimarre !
CR 👍  (though let's wait on our syntax test passing)

Can you open a pull on the upstream repo too?

Oh, yes, I did that here.

Should this PR be closed since the mobile indicators one was based on the changes here and it merged?

Not closed, but merged :-)


Add radio button group and add theme select for ShortcutGuide

Summary of the Pull Request
Add radio button group setting UI element and use it to add theme select for ShortcutGuide:

PR Checklist

[x] Closes #339 and closes #451
[x] CLA signed. If not, go over here and sign the CLA

Validation Steps Performed
Manual

Tested. It works as expected, nice work!


OpenMP compression + serial decompression fails for large data

Team, We just found another bug which happens in the case of OpenMP compression and Serial Decompression (reproducible with zfp 0.5.5 release AND develop branch) with large data (>512^3) and num threads >= 4. Here are the numbers that we obtained for a float dataset of size 768^3

run ID
data size (n^3)
data type
compression ratio
serial
omp compression(4 threads)

1
768^3
float
2
2.61E-05
23.5862

2
768^3
float
4
5.65E-03
5.65E-03

3
768^3
float
8
1.15E-01
1.15E-01

This happens only at set OMP_THREAD_NUM=4 and beyond (pure CPU run).
The above numbers can be reproduced with this code gist: https://gist.github.com/data-panda/1f164852fbdadc7364f5cdf8a82ab065  (notice at line 155: openMP compression and line 168: serial decompression)
compile: icc -O3 -fopenmp simple_0bug_reproducer.c -lm -lzfp

Thanks for reporting this bug.  Unfortunately, I am not able to reproduce it.  Are you sure that the rates match between compression and decompression?  For future reference, note that the rate is a double, not an int.  Also, when submitting bug reports, we'd appreciate if the code reproducing the bug can be compiled once as a single program without requiring manual code edits (e.g., to change the rate, execution mode, number of threads, ...) to reproduce the bug.
In spite of not being able to reproduce the issue, I do see that there are potential problems in the OpenMP implementation for much larger arrays (>= 2 G array elements).  There are several computations that should be done using 64- instead of 32-bit integers.  I will update this code and push a fix to develop.  Perhaps that will address your issue.

@lindstro thanks very much for your comment. Maybe I overlooked something while giving the link to the reproducer code. Apologies!
Please try this gist: https://gist.github.com/data-panda/5b37c2823eb57696577105708875a721
Compile: icc -fopenmp -O3 omp_768_cr_2.c -lm -lzfp
Run1:
export OMP_NUM_THREADS = 2
./a.out

Run2:
export OMP_NUM_THREADS = 4
./a.out

You should observe the following rmse's:
run 1: 2.610459e-05
run 2: 2.358627e+01
Here is the serial compression and decompression gist: https://gist.github.com/data-panda/93d3ad48e098ade08f4154b016527dd3
Compile: icc -fopenmp -O3 serial_768_cr_2.c -lm -lzfp
Run: ./a.out
You should observe this rmse with serial compression and decompression at CR 2: 2.610459e-05
This is all with a double bits_per_value of 16.0 (resulting in a CR of 2.0). So int to double conversion is not helping + thanks for pointing that the rate must go as double.

I can now reproduce this issue.  I think I earlier may have used a zfp library that was compiled without OpenMP enabled (gotta check the return value of zfp_stream_set_execution).
I feel reasonably confident that this will be an easy bug to identify and fix.  I'll keep you updated on our progress.

Good news--it looks like the issue can be narrowed down to a single line of code: https://github.com/LLNL/zfp/blob/f668af3d54c52bec96ae94b2b631b1335d3704b5/src/share/parallel.c#L56.  Here block * stream->maxbits is computed as a 32-bit integer that can overflow when the start block for a given thread is large (the more threads you use, the larger the first block ID of the last thread is).  Changing the type of block to size_t fixes the problem in your example.
Looking over this code, additional changes are needed to address similar bugs that may occur with even larger arrays.  I will update this code and push a fix to develop in the next day or two.

Great Peter 🥳! We had a hint that, this is again linked with integer overflow. Will stay tuned to pull all those data type upgradations when you push the code changes. Meanwhile, I will change the line mentioned by you and test it out a bit.

The OpenMP bug has been fixed on develop.  Please reopen if this does not address your issue.


Cannot go to definition of RootDatabase.crate_graph in rust-analyzer

The code is:
https://github.com/rust-analyzer/rust-analyzer/blob/0960d4ebe2f493960296b21be45b06418919dd23/crates/ide/src/prime_caches.rs#L26

The database functions are pretty attribute heavy so most of them(all honestly) require rust-analyzer.experimental.procAttrMacros to be enabled for them to be resolvable for RA.

rust-analyzer.experimental.procAttrMacros

OH! It Works! Thank you.


TS AutoImport style config enhancement

I love the new TS autoimport, saves so much time having to manually type out imports, also getting auto complete for things not even in your file is amazing.
That being said, a few configuration options would be nice:

Our style guide means no semicolons, but the code automatically adds one (so I have to cursor up to delete it).
Additionally our style guide also calls for absolute imports to come before relative ones, but code just places it at the end (so I have to go and move it manually).

This issue was moved to Microsoft/TypeScript#20161


Exported TFACON_YAML_PATH doesn't work and complain about Config File "6D73TCAIDPAZ" Not Found in "[/tmp]"

Describe the bug
I tried to implement it with jenkins and have generated file from credentials and basically command looks like:
TFACON_YAML_PATH=/tmp/6D73TCAIDPAZ tfacon run --launch-id 399
You can see file exists as I paused the pipeline and checking the content of file.
$ cat /tmp/6D73TCAIDPAZ
project_name: "ocs"
auth_token: "Mytoken"
platform_url: "https://reportportal.com"
tfa_url: "https://endpoint.com:443/models/ddddddd/latest/model"
connector_type: "RPCon"
2021-12-03 15:31:36  + TFACON_YAML_PATH=/tmp/6D73TCAIDPAZ
2021-12-03 15:31:36  + tfacon run --launch-id 376
2021-12-03 15:31:36  Config File "6D73TCAIDPAZ" Not Found in "[/tmp]"
2021-12-03 15:31:36  Config File "6D73TCAIDPAZ" Not Found in "[/tmp]"
2021-12-03 15:31:36  Config File "6D73TCAIDPAZ" Not Found in "[/tmp]"
2021-12-03 15:31:36  Config File "6D73TCAIDPAZ" Not Found in "[/tmp]"
2021-12-03 15:31:36  --------------------------------------------------
2021-12-03 15:31:36  tfacon  1.0.0
2021-12-03 15:31:36  Copyright (C) 2021, Red Hat, Inc.
2021-12-03 15:31:36  -------------------------------------------------
2021-12-03 15:31:36
2021-12-03 15:31:36
2021-12-03 15:31:36  Initializing Defect Types...
2021-12-03 15:31:36  tfacon http handler crashed:Get "default%20val%20for%20platform%20url/api/v1//settings": unsupported protocol scheme ""
2021-12-03 15:31:36  created defect types failed, please use superadmin auth_tokenfalsetfacon http handler crashed:Get "default%20val%20for%20platform%20url/api/v1//item?filter.eq.issueType=ti001&filter.eq.launchId=376&filter.eq.status=FAILED&isLatest=false&launchesLimit=0": unsupported protocol scheme ""

If I use just regular:  tfacon.yml file without exporting TFACON_YAML_PATH  it works just fine.
To Reproduce
Steps to reproduce the behavior:

export env variable for TFACON_YAML_PATH pointing to config yaml file an run tfacon command

Expected behavior
If I export TFACON_YAML_PATH it should take that path and do not complain the file doesn't exist
Desktop (please complete the following information):

OS: centos 8

@petr-balogh  looking at it, will get back to you by the end of the week

Hi @petr-balogh , can you try, use absolute path like /home/hostname/tfacon_folder/tfacon.yml ? Same for tfacon.cfg. Also remember add the ext such as .yml and .cfg


No spaces in command prompt when using tmux

I pulled pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime from Docker Hub, and install tmux and zsh in this docker.
At first, after I start tmux, it displays an extra space in tmux, I added the following to ~/.zshrc:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

and added the following to .tmux.conf:
set -g utf8
set-window-option -g utf8 on

However, after I start tmux, there is no space in command prompt:

Are those locales installed? Run locale -a to check.

@mcornella
The results of running locale show below:

Try with
export LANG=en_US.utf8
export LC_ALL=en_US.utf8

If that doesn't fix it, it could be an issue with your terminal emulator: https://github.com/robbyrussell/oh-my-zsh/issues/6007.


Remember breaking change approvals in the context of a pull request

Okay given the feedback from this issue, we came to the following conclusion and plan:
We want to change the Approval functionality to "allowing" the breaking changes for the single schema check for all subsequent schema checks on the same pull request/branch.
On GitHub Actions, we will simply get the pull request/branch via the environment variables (when using hive schema:check --github). Once it is implemented, the only change required will be to upgrade the Hive CLI version.
However, for other environments as mentioned in https://github.com/kamilkisiela/graphql-hive/issues/3216#issuecomment-1787021128, it will be necessary to manually provide a context (pull request id or branch name) that is unique for the lifecycle of a pull request/branch via a parameter. E.g. hive schema:check --context "pr_12".
Then a schema check that shares the same "context" identifier will only fail if it contains breaking changes that have not yet been accepted for the given context identifier.
Thank you all for reaching out and sharing your concerns. We will prioritize these changes as they are crucial for a pleasant user experience.

Links

Internal discussion
https://github.com/kamilkisiela/graphql-hive/issues/2658

Closed via https://github.com/kamilkisiela/graphql-hive/pull/3359
Learn more: https://the-guild.dev/graphql/hive/product-updates/2023-11-16-schema-check-breaking-change-approval-context


Xargo not recognizing rust-src on nightly (8f02c429a 2016-12-15)

It seems that on the latest nightly xargo cannot find rust-src.
I made sure that everything was up-to-date with
rustup update

and
rustup component add rust-src
info: component 'rust-src' is up to date

However, if I try to compile a project that was compiling fine before I get:
xargo build --target src/libtms570/tms570 --verbose
error: `rust-src` component not found. Run `rustup component add rust-src`.
stack backtrace:
   0:     0x55817919e8fd - backtrace::backtrace::trace::h4f27741ec31c8869
   1:     0x55817919efc2 - backtrace::capture::Backtrace::new::h3416c1b891724916
   2:     0x558179182e28 - error_chain::make_backtrace::h97415d00ea7612fa
   3:     0x55817917a8c7 - xargo::sysroot::update_target_sysroot::h4803bfb4d7fea03c
   4:     0x55817917f777 - xargo::run::h98c387672443789b
   5:     0x55817917c69d - xargo::main::h6f768eebe9cc419e
   6:     0x5581791c318a - panic_unwind::__rust_maybe_catch_panic
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libpanic_unwind/lib.rs:98
   7:     0x5581791bca36 - std::panicking::try<(),fn()>
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panicking.rs:434
                         - std::panic::catch_unwind<fn(),()>
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/panic.rs:351
                         - std::rt::lang_start
                        at /buildslave/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libstd/rt.rs:57
   8:     0x7ffba0c8d3f0 - __libc_start_main
   9:     0x558179165729 - _start
  10:                0x0 - <unknown>

Those are the versions I am using
xargo --version
xargo 0.2.2
cargo 0.16.0-nightly (ddb5c32 2016-12-16)

rustc --version
rustc 1.15.0-nightly (8f02c429a 2016-12-15)

To confirm this bug I have reverted the rust toolchain to nightly-2016-12-06-x86_64-unknown-linux-gnu and everything compiles just fine.

Try Xargo 0.2.3 (just released). This should be fixed in that release.

It works. Thank you!


Support for using GET vars on js files

when loading a framework like scriptaculous.js its often used like this

<script type="text/javascript" src="/scriptaculous.js?load=effects"></script>

Upon doing this, with multiple JS files comma delimited, it seems to screw
up minify

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 11 May 2007 at 12:47

Original comment by<EMAIL_ADDRESS>on 28 Aug 2007 at 5:26

Changed state: Accepted

You'd probably have to maintain a patched scriptaculous.js. It probably has
code to
look for itself in the src attributes of all script elements. This code would
have
to be altered to match against your minify URLs.

Original comment by<EMAIL_ADDRESS>on 21 Sep 2007 at 4:56

Using v2 you could specify your files from PATH_INFO (with a custom script) and
call
Minify::serve() with the Files controller[1], allowing a URL like:

/m.php/prototype.js/scriptaculous.js?load=effects

[1]
http://code.google.com/p/minify/source/browse/trunk/lib/Minify/Controller/Files.
php

Original comment by<EMAIL_ADDRESS>on 29 Feb 2008 at 1:06

Changed state: WontFix
Added labels: Priority-Low
Removed labels: Priority-Medium


'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401

I tried to build as per the instructions and everytime when i go for query i am getting the error
========
oci.exceptions.ServiceError: {'opc-request-id': 'C81E4F83E7C74A74BED9B09D0160769E/984643E7E585D68F934783B3D2996B50/B6F90E9CB91F1F86CE3766875B6C55D1', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
INFO: Using Profile : DEFAULT
INFO: {'opc-request-id': '38755B011605417E82CD898E5E8341ED/1798A6426B668F4DC67ACA486FB784A5/9177618CC40FB813D3664DE5CD70F064', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
INFO: The required information to complete authentication was not provided or was incorrect.
ERROR: {'opc-request-id': '38755B011605417E82CD898E5E8341ED/1798A6426B668F4DC67ACA486FB784A5/9177618CC40FB813D3664DE5CD70F064', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/okit/okitweb/okitOci.py", line 191, in ociCompartment
tenancy = oci_tenancies.listCompartments()
File "/okit/visualiser/facades/ociTenancy.py", line 39, in listCompartments
tenancy_json = self.get(self.getTenancy())
File "/okit/visualiser/facades/ociTenancy.py", line 30, in get
tenancy = self.client.get_tenancy(tenancy_id=tenancy_id).data
File "/usr/local/lib/python3.6/site-packages/oci/identity/identity_client.py", line 4861, in get_tenancy
response_type="Tenancy")
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 272, in call_api
response = self.request(request)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 384, in request
self.raise_service_error(request, response)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 554, in raise_service_error
original_request=request)
oci.exceptions.ServiceError: {'opc-request-id': '38755B011605417E82CD898E5E8341ED/1798A6426B668F4DC67ACA486FB784A5/9177618CC40FB813D3664DE5CD70F064', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
INFO: Artifact : Compartment
INFO: Using Profile : DEFAULT
INFO: ---- Processing Compartment
INFO: {'opc-request-id': '174916CA8F5644409FCF37721A612AED/883EB74BCD4BEE16D4F05E7718582D21/B97F73ECBDCDCF4C2A70D4CF531707AA', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
INFO: The required information to complete authentication was not provided or was incorrect.
ERROR: {'opc-request-id': '174916CA8F5644409FCF37721A612AED/883EB74BCD4BEE16D4F05E7718582D21/B97F73ECBDCDCF4C2A70D4CF531707AA', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/okit/okitweb/okitOci.py", line 246, in ociArtifacts
response_json = oci_compartments.get(compartment_id=query_json['compartment_id'])
File "/okit/visualiser/facades/ociCompartment.py", line 40, in get
compartment = self.client.get_compartment(compartment_id=compartment_id).data
File "/usr/local/lib/python3.6/site-packages/oci/identity/identity_client.py", line 4088, in get_compartment
response_type="Compartment")
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 272, in call_api
response = self.request(request)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 384, in request
self.raise_service_error(request, response)
File "/usr/local/lib/python3.6/site-packages/oci/base_client.py", line 554, in raise_service_error
original_request=request)
oci.exceptions.ServiceError: {'opc-request-id': '174916CA8F5644409FCF37721A612AED/883EB74BCD4BEE16D4F05E7718582D21/B97F73ECBDCDCF4C2A70D4CF531707AA', 'code': 'NotAuthenticated', 'message': 'The required information to complete authentication was not provided or was incorrect.', 'status': 401}

=======
It was my mistake, i thought that my key was updated in OCI console. but somehow got deleted
i can able to login now

selft troubleshooting


Marcus/fix for overlapping events

Codecov Report

Merging #272 (397390e) into master (4843600) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #272   +/-   ##
=========================================
  Coverage     55.65%   55.65%
  Complexity      713      713
=========================================
  Files           115      115
  Lines          2907     2907
  Branches        447      447
=========================================
  Hits           1618     1618
  Misses         1093     1093
  Partials        196      196

Impacted Files
Coverage Δ
Complexity Δ

...in/java/seedu/address/logic/parser/ParserUtil.java
93.05% <ø> (ø)
23.00 <0.00> (ø)

...rc/main/java/seedu/address/model/util/Overlap.java
56.66% <0.00%> (ø)
12.00 <1.00> (ø)

Continue to review full report at Codecov.

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


chore: Update linked-hash-map to 0.5

Without this on newest rust this library is panicing
attempted to leave type linked_hash_map::Node<std::string::String, value::Value> uninitialized, which is invalid

up

This does not pass CI though

@dqsully and @trobro I think this was addressed by #24 so we can close it

Thanks, closing.


Fix Collision Course/Electro Drift

Tera type is now used instead of actual type if provided, fixing a bug where Collision Course gave its boost when supereffective against the original type.

I'm a bit confused why implementing the fix as a for loop broke the code, but it works now.

Did you test this?

Did you test this?

I can confirm that the primary type is being used for both types in the case of dual-type Pokémon in the live calculator.
I have also tested the code as implemented in the PR locally and it seems to work as intended.
If you'd like me to add tests ensuring Collision Course/Electro Drift work properly to the repository I can do that.

Did you test this?

I can confirm that the primary type is being used for both types in the case of dual-type Pokémon in the live calculator.
I have also tested the code as implemented in the PR locally and it seems to work as intended.
I'll add some tests in a bit.

Yes some tests would be awesome

Done. Let me know if the tests need to be adjusted. One thing that proved annoying was that any type changes are lost by clone,  otherwise I would have done all the testing on the same Mew.
The tests check for the presence or absence of a boost in various cases by comparing it to known baseline calculations. Let me know if you'd like me to adjust anything in the tests.

Thanks!


High memory use, possible leak when reading a MachO file

I recently tried to use MachO to read a large (1.3GB) Mach-O dSYM file, and found that it ended up using about 4GB of memory and didn't free that memory even when I tried to get it to be garbage collected. So, it seems like there may be two issues here, one of unnecessarily large memory usage, and the other of a memory leak. Is MachO not just collecting metadata? It seems like that would use almost no memory at all.

Hi, many thanks.
I assume the reason is that I tried to make things easier accessible, e.g. Strings. Therefore, they get copied at some places. I will look at that.


gptq  Qwen-7B-Chat-Int4 load_error

qwen.py", line 303, in load_weights
param = state_dict[name]
KeyError: 'transformer.h.0.attn.c_attn.g_idx'

CUDA_VISIBLE_DEVICES=3 python3 -m vllm.entrypoints.openai.api_server --model "/data/transformers/Qwen/Qwen-7B-Chat-Int4" --trust-remote-code --host <IP_ADDRESS> --port 50111

INFO 09-21 11:09:41 llm_engine.py:72] Initializing an LLM engine with config: model='/data/transformers/Qwen/Qwen-7B-Chat-Int4', tokenizer='/data/transformers/Qwen/Qwen-7B-Chat-Int4', tokenizer_mode=auto, revision=None, trust_remote_code=True, dtype=torch.float16, download_dir=None, load_format=auto, tensor_parallel_size=1, quantization=None, seed=0)
WARNING 09-21 11:09:42 tokenizer.py:64] Using a slow tokenizer. This might cause a significant slowdown. Consider using a fast tokenizer instead.
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/workspace/server/vllm/vllm/entrypoints/openai/api_server.py", line 624, in <module>
    engine = AsyncLLMEngine.from_engine_args(engine_args)
  File "/workspace/server/vllm/vllm/engine/async_llm_engine.py", line 486, in from_engine_args
    engine = cls(engine_args.worker_use_ray,
  File "/workspace/server/vllm/vllm/engine/async_llm_engine.py", line 270, in __init__
    self.engine = self._init_engine(*args, **kwargs)
  File "/workspace/server/vllm/vllm/engine/async_llm_engine.py", line 306, in _init_engine
    return engine_class(*args, **kwargs)
  File "/workspace/server/vllm/vllm/engine/llm_engine.py", line 105, in __init__
    self._init_workers(distributed_init_method)
  File "/workspace/server/vllm/vllm/engine/llm_engine.py", line 137, in _init_workers
    self._run_workers(
  File "/workspace/server/vllm/vllm/engine/llm_engine.py", line 685, in _run_workers
    output = executor(*args, **kwargs)
  File "/workspace/server/vllm/vllm/worker/worker.py", line 67, in init_model
    self.model = get_model(self.model_config)
  File "/workspace/server/vllm/vllm/model_executor/model_loader.py", line 100, in get_model
    model.load_weights(model_config.model, model_config.download_dir,
  File "/workspace/server/vllm/vllm/model_executor/models/qwen.py", line 312, in load_weights
    param = state_dict[name]
KeyError: 'transformer.h.0.attn.c_attn.g_idx'

same issue

Qwen-14B-Chat-Int4   same issue

Qwen-14B-Chat-Int4 same issue

same issue . is it not supprot gptq?

The error occurs only in the quantized version, not in FP16. However, FP16 consumes a significant amount of memory. How can I perform model quantization?

same issue, is anybody solved?

Mark

same issue, is anybody solved?

same issue
KeyError: transformer.h.27.mlp.gate_up_proj.bias

same issue
KeyError: transformer.h.27.mlp.gate_up_proj.bias

Qwen-14B-Chat-Int4 same issue

This works for me, I quantized a Qwen-72B model by myself, and I edited the config.json with an addition seems like the official repo
  "quantization_config": {
    "bits": 4,
    "group_size": 128,
    "damp_percent": 0.01,
    "desc_act": false,
    "static_groups": false,
    "sym": true,
    "true_sequential": true,
    "model_name_or_path": null,
    "model_file_base_name": "model",
    "quant_method": "gptq"
  },


Add containerd config in OperatingSystemConfig (I)

How to categorize this PR?

/area robustness
/kind enhancement
What this PR does / why we need it:
This PR adds containerd config to the OperatingSystemConfig API, mainly to configure registries and the sandbox image.
Gardener, as well as extensions (e.g. gardener-extension-registry-cache), may contribute to this section of the API and gardener-node-agent takes necessary steps on the node.
With this enhancement, it is now more structured and easy to add or remove OCI registries while earlier every extension needed to bring their own logic for this (e.g. via additional systemd units).
While working on this topic, we noticed that the container-initializer systemd service can entirely be replaced by logic in the gardener-node-agent, which is performed in this PR along the way.
Which issue(s) this PR fixes:
Part of #8929
Also see https://github.com/gardener-community/hackathon/tree/main/2024-05_Schelklingen#-type-safe-configurability-in-operatingsystemconfig-for-containerd-dns-ntp-etc.
Special notes for your reviewer:
The groundwork happened at the last Gardener Hackathon (ref).
As opposed to the procedure proposed in #8929, we decided against generic containerd patches mainly because:

It's easier for Gardener and extensions to contribute to a well structured API.
We needed to copy internal patching procedures from kind to do the same.
We don't see a need for generic patches because the changes in this PR and the following (see description below) cover most of the use-cases.

It is planned to add more configuration options related to container runtime (see types_operatingsystemconfig.go diff here).
/cc @MrBatschner @Gerrit91 @ialidzhikov
Release note:

Additional containerd registries can directly be added to the `OperatingSystemConfig`. Once specified, `gardener-node-agent` takes care about necessary steps to configure the container runtime. The generic control plane ensurer was enhanced along the way to simplify mutating the relevant part of the `OperatingSystemConfig` ((ref)[https://github.com/timuthy/gardener/blob/74390628e336b0954b3983ea8f4e0519b1ee5c0d/extensions/pkg/webhook/controlplane/genericmutator/mutator.go#L88]).

The `containerd-intializer` systemd unit has been deprecated and will remain functionless on existing nodes for compatibility reasons.

/test pull-gardener-e2e-kind

/assign

/test pull-gardener-e2e-kind

/test pull-gardener-e2e-kind-ha-single-zone-upgrade

/test pull-gardener-e2e-kind-ipv6

/test pull-gardener-e2e-kind-ipv6

/test pull-gardener-e2e-kind

/lgtm

/retest-required

@dimitar-kostadinov, as you already have the required adaptations for the registry-cache extension, can you double check that the latest revision of the PR satisfies the requirements from the registry-cache side? Maybe running our e2e tests locally would be enough.

The e2e test should create Shoot with registry-cache extension enabled with caches for Shoot system components, delete Shoot fails with following node-agent error:
Jul 10 11:02:04 machine-shoot--local--e2e-cache-ssc-local-68ccb-bdf6w gardener-node-agent[333]: {"level":"error","ts":"2024-07-10T11:02:04.594Z","msg":"Reconciler error","controller":"operatingsystemconfig","namespace":"kube-system","name":"gardener-node-agent-local-ee46034b8269353b","reconcileID":"a9021fe9-e4a8-47d6-8a4f-c996eb660c22","error":"failed reconciling containerd registries: retry failed with context deadline exceeded, last error: failed to reach registry http://<IP_ADDRESS>:5000 for upstream registry.k8s.io: Get \"http://<IP_ADDRESS>:5000\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\tsigs.k8s.io/controller-runtime@v0.17.5/pkg/internal/controller/controller.go:329\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tsigs.k8s.io/controller-runtime@v0.17.5/pkg/internal/controller/controller.go:266\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\tsigs.k8s.io/controller-runtime@v0.17.5/pkg/internal/controller/controller.go:227"}

The pods in kube-system namespace are Pending status and the machine pod is not ready:
% k -n kube-system get po -A
NAMESPACE     NAME                                                  READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-56f86cc77b-92dtc              0/1     Pending   0          29m
kube-system   calico-node-vertical-autoscaler-6cf9c8bf8d-w6qjr      0/1     Pending   0          29m
kube-system   calico-typha-deploy-5f6c5b7db-hdljm                   0/1     Pending   0          29m
kube-system   calico-typha-horizontal-autoscaler-78ff9f78d8-hftwn   0/1     Pending   0          29m
kube-system   calico-typha-vertical-autoscaler-7c87c474d6-2swcq     0/1     Pending   0          29m
...

% k -n shoot--local--e2e-cache-ssc get po machine-shoot--local--e2e-cache-ssc-local-68ccb-bdf6w
NAME                                                    READY   STATUS    RESTARTS   AGE
machine-shoot--local--e2e-cache-ssc-local-68ccb-bdf6w   0/1     Running   0          10m

All other e2e tests pass OK.

/test pull-gardener-integration

Thanks again for the thorough review and feedback @ialidzhikov and @dimitar-kostadinov. PTAL.

/test pull-gardener-e2e-kind


How to show 3D image from camera?

If I don't want to use assets image then how can I do it by picking an image from camera or gallery?

Hi @Muhammad-Ullah.
360 degree image view only works when we have a set of images for a particular item captured through different angles and from the  same axis.
You need to have the collection of images to show the experience expected from the package


⚠ Bofrost.lu has degraded performance

In 372c8d0, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1933 ms

Resolved: Bofrost.lu performance has improved in dbddaef after 9 minutes.


Fix #453 Move the platform-http component to Camel

This PR is waiting for https://github.com/apache/camel/pull/3357

When #471 is merged then we can do this

@ppalaga #471 has been merged

ok to test

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/camel-quarkus-pr/434/


Fix coordinate flipping

Thanks, @terliuk for bringing this issue back in https://github.com/XENONnT/WFSim/issues/47
This negligence of mine being carried all the way here.

Just a small question. I think @petergaemers mentioned that 1T simulations seemed to be fine. Did you check there as well?

Ah there it is!
@terliuk, 1T configuration doesn't use the interpolating map. It uses a krypton map so it doesn't call this function


Can't run a bot following the instructions

zulip server 1.6
OS: Ubunutu 16.04x64
Following the instructions on http://zulip.readthedocs.io/en/latest/bots-guide.html#how-to-run-a-bot
And at this instruction:
python run.py ../bots/<my-bot>/<my-bot>.py --config-file ~/.zuliprc substituted to:
python run.py ../bots/giphy/giphy.py --config-file ./giphyrc results in the following error
Traceback (most recent call last):
  File "run.py", line 15, in <module>
    from bot_lib import run_message_handler_for_bot
  File "/home/zulip/deployments/2017-07-13-01-41-15/api/bots_api/bot_lib.py", line 12, in <module>
    from typing import Any, Optional, List, Dict
ImportError: No module named typing

I think you need to either be using the virtualenv on the server or pip install zulip first.
We will likely want to update the documentation to clarify this, but can you test that?

pip install zulip
Fixes the problem

This is addressed in the documentation for this at https://chat.zulip.org/api/running-bots


[qna] switch to customizations

fixes #23505

API changes have been detected in azure-ai-language-questionanswering. You can review API changes here

API changes have been detected in azure-ai-language-questionanswering. You can review API changes here

/azp run python - cognitivelanguage - ci


Add onScroll prop

Fixes #563.
Should I add tests @mshwery @vadimdemedes?

Any chance we can get this merged  @mshwery @vadimdemedes?


Adding support for async memory pool allocations in the CUDA HAL.

These aren't actually async as the CUDA HAL is synchronous but will make use of CUDA's memory pooling features to reduce the alloc/free cost in a way more friendly to CUDA's memory management than just the normal allocator.

Hi @benvanik, could you break this into approachable steps, initially targeting an MVP of sorts as prove out? If this is more parcelable I may be able to staff it.

This is the first step! There's two failing tests for an unknown reason - if someone can help diagnose the internal driver error that'd unblock this landing and get us using memory pools. The stream-based execution we do seems to work but graph-based execution (--cuda_use_streams=false to iree-run-module & co) fails in cuGraphAddMemsetNode with CUDA_ERROR_INVALID_VALUE - lots of tests seem to work and they're likely doing the same thing, though, so I'm not sure what the root causes is in these two tests given that the parameters to the memset should be the same we use on the stream-based implementation. Maybe graphs perform additional validation or have stricter rules?
https://github.com/openxla/iree/actions/runs/4902664048/jobs/8754727897?pr=13440
e.g.
 561/1664 Test  #559: iree/tests/e2e/xla_ops/check_cuda_graph_convolution.mlir ...................................................***Failed    3.71 sec
[==========] Running 10 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 10 tests from module
[ RUN      ] module.conv2d_nopadding
[       OK ] module.conv2d_nopadding (677 ms)
[ RUN      ] module.conv2d_nopadding_batch_feature
[       OK ] module.conv2d_nopadding_batch_feature (345 ms)
[ RUN      ] module.conv2d_reorder_input_spatial
[       OK ] module.conv2d_reorder_input_spatial (345 ms)
[ RUN      ] module.conv2d_reorder_kernel
[       OK ] module.conv2d_reorder_kernel (325 ms)
[ RUN      ] module.conv2d_reorder_output
[       OK ] module.conv2d_reorder_output (312 ms)
[ RUN      ] module.conv2d_1452x3221_same
/work/tools/iree-check-module-main.cc:68: Failure
Value of: iree_vm_invoke(context_, function_, IREE_VM_INVOCATION_FLAG_NONE, nullptr, nullptr, nullptr, iree_vm_instance_allocator(instance_))
Expected: error code OK
  Actual: 0x21ca1ad, whose error code is INTERNAL: /work/runtime/src/iree/hal/drivers/cuda/graph_command_buffer.c:406: INTERNAL; CUDA driver error 'CUDA_ERROR_INVALID_VALUE' (1): invalid argument; cuGraphAddMemsetNode; while invoking native function hal.command_buffer.fill_buffer; while calling import;
[ 1]   native hal.command_buffer.fill_buffer:0 -
[ 0] bytecode module.conv2d_1452x3221_same:742 /work/tests/e2e/xla_ops/convolution.mlir:182:10
      at /work/tests/e2e/xla_ops/convolution.mlir:172:1
[  FAILED  ] module.conv2d_1452x3221_same, where GetParam() = 5 (265 ms)
[ RUN      ] module.conv2d_2451x2311_same
/work/tools/iree-check-module-main.cc:68: Failure
Value of: iree_vm_invoke(context_, function_, IREE_VM_INVOCATION_FLAG_NONE, nullptr, nullptr, nullptr, iree_vm_instance_allocator(instance_))
Expected: error code OK
  Actual: 0x2923a8d, whose error code is INTERNAL: /work/runtime/src/iree/hal/drivers/cuda/graph_command_buffer.c:406: INTERNAL; CUDA driver error 'CUDA_ERROR_INVALID_VALUE' (1): invalid argument; cuGraphAddMemsetNode; while invoking native function hal.command_buffer.fill_buffer; while calling import;
[ 1]   native hal.command_buffer.fill_buffer:0 -
[ 0] bytecode module.conv2d_2451x2311_same:736 /work/tests/e2e/xla_ops/convolution.mlir:221:10
      at /work/tests/e2e/xla_ops/convolution.mlir:208:1
[  FAILED  ] module.conv2d_2451x2311_same, where GetParam() = 6 (314 ms)
[ RUN      ] module.conv2d_no_padding2
[       OK ] module.conv2d_no_padding2 (360 ms)
[ RUN      ] module.conv2d_1452x2223_dilated_valid
[       OK ] module.conv2d_1452x2223_dilated_valid (377 ms)
[ RUN      ] module.depthwise_conv_non_1_channel_multiplier
[       OK ] module.depthwise_conv_non_1_channel_multiplier (367 ms)
[----------] 10 tests from module (3689 ms total)

[----------] Global test environment tear-down
[==========] 10 tests from 1 test suite ran. (3689 ms total)
[  PASSED  ] 8 tests.
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] module.conv2d_1452x3221_same, where GetParam() = 5
[  FAILED  ] module.conv2d_2451x2311_same, where GetParam() = 6

 2 FAILED TESTS
Test failed

Sorry for the delay. I can confirm the issue persists in cuda 12.0. Asking...

So far i have this hint:

Not sure if this applies in this situation, but the cuMemset* APIs return CUDA_SUCCESS for 0-byte memsets. cuGraphAddMemsetNode will return CUDA_ERROR_INVALID_VALUE for a 0-byte memset.

Are we sure the sizes are not trivially zero?

Ahh that may be it! I'll fix the code and give it a shot! Thank you!

Interesting, looks like there's a legit error happening and the device pointers we are passing in look bogus.
[ RUN      ] module.conv2d_2451x2311_same
copy_buffer
  srcDevice 0x7f0363200000
  srcXInBytes 0
  dstDevice 0x7f0363400000
  dstXInBytes 0
  WidthInBytes 3264
fill_buffer
  dst 0x302000000
  element size 1
  width 280
  height 1
  value 0 00000000
/work/tools/iree-check-module-main.cc:68: Failure
Value of: iree_vm_invoke(context_, function_, IREE_VM_INVOCATION_FLAG_NONE, nullptr, nullptr, nullptr, iree_vm_instance_allocator(instance_))
Expected: error code OK
  Actual: 0xe76b8d, whose error code is INTERNAL: /work/runtime/src/iree/hal/drivers/cuda/graph_command_buffer.c:417: INTERNAL; CUDA driver error 'CUDA_ERROR_INVALID_VALUE' (1): invalid argument; cuGraphAddMemsetNode; while invoking native function hal.command_buffer.fill_buffer; while calling import;

The 0x302000000 address shows up in all other failing tests - so something is corrupting it or the code path deriving it is busted.
This is only happening on the graph path and only for a few tests - I don't think we run CUDA + ASAN but I'll see if I can add more logging to track it down and audit the graph command buffer code.

(reproduced it locally, which helps a lot!)

Ok perfect. On our side we're out of ideas currently, but if you get new signals I'll relay.

Thanks! That tip was really helpful in tracking down the root cause - silly mistake on my part (was possible to end up issuing a cuMemFree after a cuMemFreeAsync, which is obviously bad :) and I'm going to rework things to prevent that. It's nice that graphs perform that validation and I'm excited to have those on by default so we can catch this kind of error earlier!

Uh oh, still hitting the issue. @pjannaty could you please check my understanding that calling cuMemAllocAsync and then using the resulting pointer when constructing a graph (as an arg to cuGraphAddMemsetNode) is legal? If I use streams things work fine but graphs explode even with the same pointers returned across process launches, same params to the node or cuMemsetD32Async call, and same execution order. I'd have expected the virtual address returned from the cuMemAllocAsync to be legal to encode in graphs even without synchronization but tried sprinkling inserting cuStreamSynchronize around to no avail. Allocations returned from cuMemAlloc work fine, and both async allocations from the default pool (cuMemAllocAsync) and my own (cuMemAllocFromPoolAsync) fail.
This memset passes with the params on the stream implementation with both sync and async allocations and on the graph implementation when using normal cuMemAlloc but not async:
  CUdeviceptr device_ptr_from_async_alloc = 0;
  cuMemAllocAsync(&device_ptr_from_async_alloc, 192, stream);
  // cuStreamSynchronize(stream); -- doesn't help
  CUDA_MEMSET_NODE_PARAMS params = {
      .dst = device_ptr_from_async_alloc,  //<PHONE_NUMBER>E00000, 192b
      .elementSize = 4,
      .pitch = 0,  // unused with height == 1
      .width = 144 / 4,  // element count = 36
      .height = 1,
      .value = 0,
  };
  // returns CUDA_ERROR_INVALID_VALUE
  cuGraphAddMemsetNode(NULL, graph, NULL, 0, &params, context);

I tried changing all the params (elementSize=1/width=1, elementSize=4/width=1, etc) and all returned the same error so I'm pretty sure it's the pointer being the issue.
Thoughts on what to try next? Everything else except memset seems to be fine so I'm at a loss as to why that particular call is having issues. I'm getting this issue on Windows CUDA 12.1 / driver 532.03 but we also see this on the A100 bot with CUDA 12.1 / driver 530.41.03.

We think passing phGraphNode as NULL is causing the explicit graph api to return the error invalid value.
Are you trying to add a new node to a captured graph? But how can you return a newly created node if he passed in NULL?
https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__GRAPH.html#group__CUDA__GRAPH_1g89dc8fc3743392777c0daa2c4aca40d3
Also the switch between the stream call there and the explicit graph api is weird. Also what do we mean by "allocations from cuMemAlloc work fine"? Because the invalid value should be coming from passing NULL for the return value of the graph node.

oh whoops sorry, that was just a typo in the example - in the real code it is passed a value but I was just trying to keep it simple:
  CUDA_RETURN_IF_ERROR(
      command_buffer->context->syms,
      cuGraphAddMemsetNode(&command_buffer->last_node, command_buffer->graph,
                           dep, numNode, &params,
                           command_buffer->context->cu_context),
      "cuGraphAddMemsetNode");

so unfortunately that's not the issue ;(

@benvanik, from a cuda-graph expert of ours:

Some validation logic inside cuGraphAddMemsetNode missed handling the non-graph async allocator case.
The logic works correctly for allocations that are part of the graph. The stream capture also doesn't hit this issue. The error only appears for asynchronous allocations made outside of the graph and then referenced by the cuGraphAddMemsetNode operation.
I've made a local reproducer & the fix should be pretty simple...

Wow, great! Thank you! I think for now since we don't have graphs enabled by default we could disable the tests so that we can get the stream ordered allocation goodness. Since users may be allocating buffers from code we don't control in the compiler being able to mix stream-ordered calls with graph calls will always be a thing, but knowing it'll work is more important than it working today. If at any point there's beta drivers on Windows I'm happy to run more tests for verification!

It'll take some time for us to confirm which version will have the fix. In the meantime, we have identified 3 potential WARs, one of which we are ready to share:
Essentially the WAR is to make the asynchronous allocation part of the graph. (eg. use cuGraphAddMemAllocNode). Although this appears as a design change, might as well be a better approach anyways.
Also created an internal bug that I'm recording the number here so I don't forget: 4151197.

Thanks for tracking this @pjannaty!
Reliably getting the allocations into the graphs isn't possible as the code doing the allocations may not even be our own, such as a user allocating a buffer to scribble numpy arrays into or something at the python level, vs. the code we control generated by the compiler where we can potentially get things fused together. There's still issues with that around lifetime management, graph reuse, child graphs, and allocations spanning multiple graphs, and multiple programs in the same process that may pass buffers between each other. I do think there's probably some we could absorb but for now since we can't solve all cases with that the workaround I went with is turning memset into kernel launches instead of using the graph nodes. That's probably throwing performance on the table (can't use the DMA engines, etc) but I haven't measured it yet. Thankfully very few of our programs need memset so this isn't too much of a loss today, but will be nice to roll back to using the proper CUDA primitives once an update is available! (tracking in #13984 because I tend to forget these things - I also forget issues, but there's a better chance of someone else reminding me :)


What does #False executing krun mean?

When executing krun on a sample program for a lambda calculus, I get #False as an output. What does this mean?

It's a little hard to answer this question without the context of the exact command you ran, but I can take a guess, and if I'm wrong, just let me know what the exact command was and I should hopefully be able to give you a better idea.
When you pass the --pattern command to krun, it is telling krun to filter its normal set of output states by whether or not they match some pattern. For example, I could say something like krun foo.lambda --pattern "<k> I:Int </k>" and it would return only the output states in which the K cell contained nothing but an integer. If no such output states exist, it would return #False, indicating that the mathematical meaning of your query is bottom, ie, the empty set of terms.

Ah. That is very useful. The pattern option is exactly what I need. I actually ran krun --search foo.lambda, and it returned False. By default, what pattern does search use? I thought it lists all terminal configurations. Why would it return false?

That is definitely odd. The default search pattern it uses is simply to return the entire configuration no matter what. I would not expect to see #False returned by a search unless you specified a search pattern. Can you provide me with a self contained example that reproduces the behavior so I can take a look?

Thanks! I will provide an example as soon as I can!

Here's a small example.
The K file test.k:
module TEST-SYNTAX
  imports DOMAINS-SYNTAX

  syntax Term  ::= "assert" Term                         [strict(1)]
                 | "fail"
                 | Val
		 > Term ";" Term                         [strict(1), right]
                 | "(" Term ")"                          [bracket]

  syntax Val    ::= Int | "()"
endmodule

module TEST
  imports TEST-SYNTAX
  syntax KResult ::= Val

  configuration <T>
                  <k> $PGM:Term </k>
	        </T>

  rule fail ~> _ => fail
  rule assert I:Int => () requires I =/=Int 0
  rule assert 0 => fail
  rule V:Val ; T2:Term => T2
endmodule

which I ran on program test.test:
assert( 0 );assert( 1 )

The output is #False.

I figured out why you're seeing this behavior. This is actually the correct behavior of krun for this scenario, although in this case it is occurring due to what I believe to be a bug in your semantics, which you should now be able to fix.
The problem here is the rule rule fail ~> _ => fail. This rule desugars into the following:
rule <T> <k> fail ~> Var1 ~> Var2 </k> </T> => <T> <k> fail ~> Var2 </k> </T>

In this case, if Var1 and Var2 are both .K, then this is equivalent to the following rule:
rule <T> <k> fail </k> </T> => <T> <k> fail </k> </T>

As you can see, this is rewriting the current term to itself. In this case, because the configuration is not changing at all, krun was able to detect that rewriting didn't terminate, and so it returned #False, indicating that there exist no output states for this input configuration. Perhaps there should be a nicer message here, but krun is technically behaving soundly.
I believe what you meant to write was the following:
 rule <k> fail ~> K:K => fail </k> requires K =/=K .K

Ah. I see. I was suspecting this, but wasn't sure if the output of krun was correct behaviour. I had originally fixed this bug with the rule fail ~> K:KItem => fail. What does .K mean in K =/=K .K?

On the topic of --search and --pattern:

when running --search, some results are of the form: isKResult ( V0 ) ==K true. What does this mean?
when running --search and --pattern "<k> X:KVar </k>", it doesn't output the whole configuration, but outputs something of the form X ==K _3 #Or  X ==K _6. Is there a way to output the whole configuration?
sometimes krun outputs #And instead of #Or. My understanding is that #Or means the configurations are separate paths. But how can different configurations occur with #And?

.K is the unit of the list type that the K sort represents whose cons operator is ~>. We allow users to write terms of sort K as if they were an associative list, but it's actually implemented as a cons list under the hood and matching elements off the tail is not supported (for that, you need the List sort).
I don't believe we have a way to output the entire configuration instead of a substitution, but if you write a pattern that completes to the top cell with no anonymous variables, you can of course infer the entire configuration from the substitution.
#And means that there are multiple variables in the substitution and the conjunction of all of them is a single search result. #True means that the pattern matched but generated the empty substitution. A term like isKResult(V0) ==K true in the substitution means that you have some symbolic term that ended up in the output substitution but was unable to be fully resolved.

Thanks for the reply! I'm closing this as it has been answered.