Do we send try to send message to ourself?

Running the federation with with RUST_LOG=none,net::peer=trace ./scripts/tmuxinator.sh.
I was wondering about the following lines in the fedimintd logs:
2023-04-06T19:59:22.711811Z TRACE net::peer: sending message to list of peers=[PeerId(0), PeerId(1), PeerId(2), PeerId(3)]
2023-04-06T19:59:22.711833Z TRACE net::peer: Sending message to peer_id=PeerId(0)
2023-04-06T19:59:22.711840Z TRACE net::peer: Not sending message to unknown peer (maybe banned) peer=PeerId(0)
2023-04-06T19:59:22.711845Z TRACE net::peer: Sending message to peer_id=PeerId(1)
2023-04-06T19:59:22.711895Z TRACE net::peer: Sending message to peer_id=PeerId(2)
2023-04-06T19:59:22.711942Z TRACE net::peer: Sending message to peer_id=PeerId(3)

Aren't we/I the guardian with PeerId(0)? So, the connection state machine is trying to send a message to myself but can find the PeerConnection as it was never opened (we filter it out)
Do we need our own id (identity) in NetworkConfig::peers here or could we remove our own PeerId from the peers list when building the NetworkConfig so we don't need to filter out our own PeerId, for example.
PR #2159 has some additional tracing logs.

more context
$ tail -n +0 -F $FM_LOGS_DIR/fedimintd-0.log
tail: cannot open '/tmp/nix-shell.lOwFde/fm-ulMs/logs/fedimintd-0.log' for reading: No such file or directory
tail: '/tmp/nix-shell.lOwFde/fm-ulMs/logs/fedimintd-0.log' has appeared;  following new file
2023-04-06T20:26:34.693565Z TRACE net::peer: Creating new PeerConnection id=PeerId(1)
2023-04-06T20:26:34.693736Z TRACE net::peer: Creating new PeerConnection id=PeerId(3)
2023-04-06T20:26:34.693802Z TRACE net::peer: Creating new PeerConnection id=PeerId(2)
2023-04-06T20:26:34.693917Z TRACE net::peer: Started running io thread for peer=PeerId(1)
2023-04-06T20:26:34.693931Z TRACE net::peer: Started running io thread for peer=PeerId(3)
2023-04-06T20:26:34.693973Z TRACE net::peer: Started running io thread for peer=PeerId(2)
2023-04-06T20:26:34.694039Z DEBUG net::peer: Scheduling reopening of connection disconnect_count=1 peer=PeerId(3) delay_secs=1.393466048
2023-04-06T20:26:34.694042Z DEBUG net::peer: Scheduling reopening of connection disconnect_count=1 peer=PeerId(1) delay_secs=1.7501030549999999
2023-04-06T20:26:34.694064Z TRACE net::peer: Running peer connection state machine with peer=PeerId(3)
2023-04-06T20:26:34.694059Z DEBUG net::peer: Scheduling reopening of connection disconnect_count=1 peer=PeerId(2) delay_secs=3.8888318269999997
2023-04-06T20:26:34.694078Z TRACE net::peer: Running peer connection state machine with peer=PeerId(2)
2023-04-06T20:26:34.694076Z TRACE net::peer: Running peer connection state machine with peer=PeerId(1)
2023-04-06T20:26:35.865040Z TRACE net::peer: sending message to list of peers=[PeerId(0), PeerId(1), PeerId(2), PeerId(3)]
2023-04-06T20:26:35.865058Z TRACE net::peer: Sending message to peer_id=PeerId(0)
2023-04-06T20:26:35.865066Z TRACE net::peer: Not sending message to unknown peer (maybe banned) peer=PeerId(0)
2023-04-06T20:26:35.865071Z TRACE net::peer: Sending message to peer_id=PeerId(1)
2023-04-06T20:26:35.865118Z TRACE net::peer: Sending message to peer_id=PeerId(2)
2023-04-06T20:26:35.865147Z TRACE net::peer: Sending message to peer_id=PeerId(3)
2023-04-06T20:26:35.865358Z TRACE net::peer: Queueing outgoing message id=MessageId(1)
2023-04-06T20:26:35.865458Z TRACE net::peer: Queueing outgoing message id=MessageId(1)
2023-04-06T20:26:35.865598Z TRACE net::peer: Queueing outgoing message id=MessageId(1)
2023-04-06T20:26:35.920000Z TRACE net::peer: sending message to list of peers=[PeerId(1)]
2023-04-06T20:26:35.920025Z TRACE net::peer: Sending message to peer_id=PeerId(1)
2023-04-06T20:26:35.920101Z TRACE net::peer: sending message to list of peers=[PeerId(2)]
2023-04-06T20:26:35.920107Z TRACE net::peer: Sending message to peer_id=PeerId(2)
2023-04-06T20:26:35.920167Z TRACE net::peer: sending message to list of peers=[PeerId(3)]
2023-04-06T20:26:35.920173Z TRACE net::peer: Sending message to peer_id=PeerId(3)
2023-04-06T20:26:35.920220Z TRACE net::peer: sending message to list of peers=[PeerId(0), PeerId(1), PeerId(2)]
2023-04-06T20:26:35.920231Z TRACE net::peer: Sending message to peer_id=PeerId(0)
2023-04-06T20:26:35.920222Z TRACE net::peer: Queueing outgoing message id=MessageId(2)
2023-04-06T20:26:35.920237Z TRACE net::peer: Not sending message to unknown peer (maybe banned) peer=PeerId(0)
2023-04-06T20:26:35.920244Z TRACE net::peer: Sending message to peer_id=PeerId(1)
2023-04-06T20:26:35.920280Z TRACE net::peer: Sending message to peer_id=PeerId(2)
2023-04-06T20:26:35.920309Z TRACE net::peer: sending message to list of peers=[PeerId(3)]
2023-04-06T20:26:35.920315Z TRACE net::peer: Sending message to peer_id=PeerId(3)
2023-04-06T20:26:35.920421Z TRACE net::peer: Queueing outgoing message id=MessageId(2)

</details

Would be interesting to know if this comes from broadcasts or not. I doubt HBBFT would sent itself messages, much more likely we accidentally included ourselves in broadcasts.


Tikv OOM

Bug Report
What version of TiKV are you using?
7.5.0
What operating system and CPU are you using?
CPU:
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz

OS
$ cat /etc/*release
AlmaLinux release 9.1 (Lime Lynx)
NAME="AlmaLinux"
VERSION="9.1 (Lime Lynx)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.1"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.1 (Lime Lynx)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

Steps to reproduce
run with  cluster with 6 store physical machine ( NVMe ssd, each node with 256G or 384G)  for 24h with following config:

What did you expect?
run steadily, no OOM.
What did happened?
OOM  happend on tikv node.
we compared heap from 17:10 ~ 18:00 and got report as follow(may be helpful).
jeprof --text --base 1710.heap /var/lib/k8s/tidb-deploy/tikv-20160/bin/tikv-server 1810.heap

jeprof_pdf.pdf

From the jeprof, the OOM may be caused by unlimited txn requests which we have harden (#16234) in the nightly release (will be included in v8.0.0).
If you have a test cluster, could you try the nightly release?

OOM still occured using the nightly release.
we also observed that pending tasks is steady while "memory leaking"


lib/trees: introduce Trie

A trie (or prefix tree) is a datastructure used to perform prefix searches.
The trie uses an arborescent datastructure to perform searches on a prefix.
With this version of the trie, you can link data to nodes so the trie can
be used as a kind of Map by prefix.
# Associate some integers to Map keys
var trie = new Trie[Int]
trie["foo"] = 1
trie["fooo"] = 2
trie["foooo"] = 3
trie["bar"] = 4
trie["baz"] = 5

# Get stored values by key
print trie.has_key("foo")
print trie["foo"] == 1

# Get stored values by prefix
assert trie.has_prefix("fo")
assert not trie.has_prefix("z")
assert trie.find_by_prefix("foo") == [1, 2, 3]
assert trie.find_by_prefix("bar") == [4]
assert trie.find_by_prefix("z").is_empty

Signed-off-by: Alexandre Terrasa<EMAIL_ADDRESS>

+1
I'm not sure why is in trees since no code seems shared

Because it's some kind of arborescent tree, I had to put it somewhere, I figured that it can be a match.

+1


Removed unused bundle args

#103
#102  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CatChen and the rest of your teammates on  Graphite


Add a primary content (e.g. avatar, name, job, contacts, intro, etc.) in the primary content template

Add a primary content (e.g. avatar, name, job, contacts, intro, etc.) here.
Commit small steps, add meaningful messages.

How to add an avatar?

Changes made!


Homebrew installs Fails - misinterprets Git version as < 2.7.0

brew config output
N/A

brew doctor output
N/A

Verification

[X] I ran brew update and am still able to reproduce my issue.
[X] I have resolved all warnings from brew doctor and that did not fix my problem.

What were you trying to do (and why)?
Install Homebrew on Fedora Linux 34
What happened (include all command output)?
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
The version of Git that was found does not satisfy requirements for Homebrew.
Please install Git 2.7.0 or newer and add it to your PATH.

# git --version
git version 2.34.1

# which -a git
/usr/bin/git
/bin/git

# /usr/bin/git --version
git version 2.34.1

# /bin/git --version
git version 2.34.1

As you can see from the above output, the Git version is 2.34.1, definitely more than the minimum required Git 2.7.0.
What did you expect to happen?
Install to progress
Step-by-step reproduction instructions (by running brew commands)
docker run -ti fedora:34
yum install -y curl git
git --version
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

I came here for a similar issue.
Here are two suggestions
When you run ./install.sh, add git location to PATH:
PATH=/usr/bin:${PATH} ./install.sh

My opinion is that last /bin/bash call is too fancy.  Just download install.sh chmod +x, then run it.
You can try setting the environment variable
export HOMEBREW_NO_ENV_FILTERING=1

especially when you try to run brew.  Your behaviour is different than mine, so I can't be sure the above will work.

 When I run the commands you posted, two things happen:

It errors out further in the script (pouring the vendored Ruby bottle).
There's no which binary in the Docker container, so which -a git fails.


User registration and user login page

Add Login / Logout button.

Proposed flow:

From any page, a user can click on log in

User is met with a login page consisting of a username and password field, a "forgot password" link. Below everything, there is a registration button
After a successful login, the user is sent to the previous or main page

From the login page, a user can click on the registration button

User is met with a registration page that consists of username, email and password fields. Below everything, there is a "Confirm Registration" button
After clicking on Confirm Registration, the data checked and registered and logged in

(?) If the user is logged in, the login button becomes logout.

DONE!


Browser Extensions: Remotely loading code & Manifest v3

Summary
The days of remotely loading JS files is coming to an end with manifest v3 (on browser extensions). Since Stripe does remote loading of JS code anyway - it would be good to have an alternative way to load Stripe from a static JS file that can be bundled inside a packaged browser extension.
I totally understand the benefits of remotely loading JS files (like loading the latest stable version), but as new security policies are implemented, this will not always be an option for every platform to load code remotely. There are also performance benefits of having a simple static JS file, while using remotely loaded json for any additional configuration (if needed).
Other information

Info about this change:
https://developer.chrome.com/docs/extensions/mv3/intro/mv3-overview/#remotely-hosted-code

👋  Hi @pbreah,
Thank you for flagging this manifest v3 update with us. I've added a ticket for us to consider the implications of this change internally.
I'm going to close this ticket out for now, as I don't anticipate having near-term updates for how we'll support this. We can update this issue with any relevant updates that come from our internal discussions on the topic.

@tylersmith-stripe any updates so far?
The removal date is drawing nearer for manifest v2 support. By the end of this year (2022) everyone using manifest v2 will need to migrate to manifest v3 (preventing stripe-js from loading remotely). Not sure if your team will be able to make it possible to load stripe-js from a local JS file before then, but it would be good to know if there are any updates from your internal discussions on this topic. Thanks.

Are there any updates for Stripe supporting manifest v3? A lot of developers are going to need this very soon or else they are going to lose their ability to monetize their extensions.

Just bumping this up once again. Looking for any updates as end of 2022 looms...

We need this!!! Please help Stripe.

It's possible to download the <script src="https://js.stripe.com/v3" async></script> script and import it manually in your index.html file

I'm stuck here, is this allowed? "Always load Stripe.js directly from js.stripe.com to remain PCI compliant"

Hi all, we won't be able to support bundling Stripe.js into extensions. When you load Stripe.js, it inserts several iframes into the page which load additional code from js.stripe.com. The fact that this code comes from js.stripe.com and that it is isolated from your page via an iframe with a separate origin is an essential part of what allows Stripe to take on much of requirements around PCI compliance.
What you can do instead is include a link in your extension that opens a normal webpage (not part of the extension). That webpage can load Stripe.js as usual, as its code is outside the extension.
The other solution that you might try is loading that webpage within the extension UI by using an iframe. I'm not sure this would work (not an expert on Chrome extensions), but it's worth a shot.


Add sample notebook to demo weaviate memory store

Motivation and Context

Why is this change required?
To show users how to use the WeaviateMemoryStore memory store
What problem does it solve?
Users don't know how to config and use the WeaviateMemoryStore memory store
What scenario does it contribute to?
Users want to learn how to config and use the WeaviateMemoryStore memory store
If it fixes an open issue, please link to the issue here.
NA

Description

Add a notebook to show users how to config and use the WeaviateMemoryStore memory store in a few examples.
Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows SK Contribution Guidelines (https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
[x] The code follows the .NET coding conventions (https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) verified with dotnet format
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

@hsm207 Thank you for this PR! Can you create this under samples/notebooks/python/third_party
And rename this to weaviate-persistent-memory.ipynb?
We want to start highlighting examples coming from other open-source projects and put them in their own location.
@awharrison-28 @mkarle

@hsm207 Thank you for this PR! Can you create this under samples/notebooks/python/third_party
And rename this to weaviate-persistent-memory.ipynb?

@alexchaomander done!

@alexchaomander @awharrison-28 this PR is ready for review

Please add the following block in the setup code

done!

@awharrison-28 @alexchaomander we've addressed all your feedback

@alexchaomander just pending your review 😀

@alexchaomander thanks for the review. does this still need someone else's approval? The status of the actions is "6 workflows awaiting approval, This workflow requires approval from a maintainer".


Feature: How do I insert a component on the line where the caret is located?

I want to display a button next to the text editor that follows the line where the caret is located.
I see that there is an insertText function in the RangeSelection obtained from const selection = $getSelection();, but it doesn't seem to be able to insert complex things like React components.
Is there any other smart solution?
I am considering building a UI like the one shown in the attached video.

Did you look at selection.insertNodes?


Update support and compatibility docs for 3.20 EP1

Product Version(s):
Calico Enterprise
Issue:
Update support and compatibility
Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

@Glen-Tigera  FYI

LGTM!


Mac users can't see own profiles

Two mac users were getting 404 when accessing their own profiles on both Safari and Chrome. They were able to search and find their names. They were also able to look at other profiles.

Same problem with Windows.

Keycloaked a user. Successfully viewed and edited visibility of a grant and a work, and then reversed it. Confirmed changes in Elements.


gforth: override swig, not swig3

Description of changes
Removes one of two remaining usages of the top-level swig3 expression. (The other comes from older LLDB versions.)
Also removes use of overrideDerivation in favour of preferred overrideAttrs.
Unfortunately gforth still needs a custom fork of swig 3.0.9, but if absolutely necessary we could perhaps remove the swig dependency altogether, at the cost of some C interface support (I don't exactly understand what is lost by removing support from the compiler vs removing access to a standalone Forth-compatible swig, though).
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

I’m wondering if the better approach wouldn’t be to get rid of the old LLDBs (cc @RossComputerGuy), and then move just pkgs/development/tools/misc/swig/3.x.nix into the Gforth directory and specialize it to this version. Though if we think the SWIG derivation will continue being compatible with this old version going forward this could be fine too, especially since the 3.x and 4.x derivations are pretty duplicated currently.

Okay actually apparently the patch to fix old LLDB versions is really simple: https://github.com/swig/swig/issues/2377. So let’s just do that.

And actually the patch was upstreamed as of LLVM 16: https://github.com/llvm/llvm-project/commit/f0a25fe0b746f56295d5c02116ba28d2f965c175. So only LLDB 12–15 would need patching or dropping.

LLDB 12 and 13 are already broken (on aarch64-linux at least); 14–17 work with SWIG 4 with no code changes. I don’t entirely understand why given the upstream patch, but it seems like we can just remove the conditional entirely and be left with no SWIG 3 users other than Gforth.
(Sorry for the only tangentially‐related noise on this PR. If you think the override approach here is the most maintainable thing going forward, let’s do that.)

I’m wondering if the better approach wouldn’t be to get rid of the old LLDBs (cc @RossComputerGuy), and then just move pkgs/development/tools/misc/swig/3.x.nix into the Gforth directory and specialize it to this version. Though if we think the SWIG derivation will continue being compatible with this old version going forward this could be fine too, especially since the 3.x and 4.x derivations are pretty duplicated currently.

I don't mind the current overriding - swig seems fairly stable and this seems a bit cleaner than copying it over, and this one package does not really deserve a swig refactoring. (The weird pcre2 = pcre can just be solved by renaming the variable in swig4 if we care.)


Unity plugin disconnects on loop when a Unity action tile is added in the Stream Deck software

Expected Behavior
I expect the console log to say "Connected" and stay connected to the Stream Deck plugin.
Actual Behavior
Once a Unity action tile is added to the layout on the Elgato software, Unity reports that it disconnected, and will attempt and fail on loop
Steps to Reproduce

Open Unity
Watch the console say Connected
Add any tile to the layout that is from the Unity Plugin
Watch the console say Disconnected, and fail repeatedly

Specifications

Unity Version: 2022.3.1f1
Platform (Windows or Mac): Mac (Apple Silicon Version)

Failure Logs
Attached are the logs for the incident, and a video showcasing the issue (apologies for the low quality, GitHub only allows a maximum of 10MB per uploaded file). The log seen in the video is the one attached.
This issue seems to be the same as https://github.com/nicollasricas/unity-deck/issues/5
pluginlog.log
https://github.com/user-attachments/assets/5c380250-103d-421c-aa6e-15a05a261fd6

Hey,
Try this temporary fix and let me know if it works.
https://github.com/nicollasricas/unity-deck/files/11952570/CodingDeckUnityNet21Pos2021.zip

That's actually the package I'm using right now because of the import issue seen here https://github.com/nicollasricas/unity-deck/issues/14
I can try and use the current actual release shown on the repository (the issue with imports is the fact that the unity package contents did not make folders, but instead files with \ in the file name) by manually uncompressing and recompressing it.


bug: attempt to index field icons (a boolean value)

Did you check docs and existing issues?

[X] I have read all the trouble.nvim docs
[X] I have updated the plugin to the latest version before submitting this issue
[X] I have searched the existing issues of trouble.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.10.1
Operating system/version
Fedora 40
Describe the bug
Sometimes I receive the following message and can't go forward:
`...share/nvim/lazy/trouble.nvim/lua/trouble/view/render.lua:136: attempt to index field 'icons' (a boolean value)
Steps To Reproduce
Run one the trouble commands
Expected Behavior
Show the trouble window with relevant data

I also encounter the same mistake today and I was able to fix it by changing my setup command for trouble from
            require("trouble").setup({
                  icons=false
            })

to
            require("trouble").setup({
                   icons={}
            })

And that fix my problem

That worked for me too. However, it seems like the problem is somehow in the defaults because I had nothing set previously.
Thanks for the help

Just check the docs. icons=false is simply not a valid option...

I don't know if you were talking to me, but I would like to illustrate my situation:

Here is a screenshot of the plugin with its defaults:

And here is a screenshot of the plugin with @coleYab's suggestion:


Deployment Failed

I've been following this guide and everything worked fine until step 5 above; when I upload the sppkg created by the gulp package-solution --ship command it overwrites, I click on 'Deploy' (SharePoint Online is showing) but there is a message saying 'Deployment Failed';
Deployment failed.  Correlation ID: a91dbb9e-20e2-7000-6eae-95464a4bfc32

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

ID: e911c86d-76ea-3a23-f98e-7ad7b804a408
Version Independent ID: 9c7748a8-3e63-19ed-4e69-15136603f302
Content: Host your client-side web part from Office 365 CDN (Hello World part 4)
Content Source: docs/spfx/web-parts/get-started/hosting-webpart-from-office-365-cdn.md
Product: sharepoint
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Hi Andrew,
Yes I believe the O365 CND is enabled;

Just to be sure I used
Set-SPOTenantCdnEnabled -CdnType Public
again this morning to accept the prompts.
Here is my project in a Repository; https://github.com/uhudlukey/HelloWorldWebPart

The gulp build command is missing from the tutorials so I got a but excited there but alas it still won't depoy. I am presuming I don't actually need this if I am just building and deploying solutions to our own tenancy?

You definitely need to run gulp build. The command gulp serve does this for you as indicated in step 4's explanation of what it does here in step 2 of the tutorial: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/connect-to-sharepoint#get-access-to-page-context

Following up on this, as it was referenced from another bug.  You do need to bundle and package, even if it is only for your tenancy.

Hello,
I am also facing the same issue. The issue is not at all consistent in my scenario. This is what I am doing: -
I am uploading a sppkg file in the site collection app catalog using OfficeDevPnP. My function is suppose to upload the same package to 5 different site collection app catalog. Out of the 5 site collection it is uploading to 2 or 3 site collection. Each time it is failing for one or many site collection. The same package if I try to upload again deploys successfully sometimes and sometimes it doesn't.
Not able to understand what is causing this issue. Following are my details: -

Can you send me your tenant url?  my user name at microsoft.com.  Also - you should open up a new issue, since this seems different than the closed issue.

@patmill thank you for replying. I have opened a new issue #4022. Also I have sent out an email to you.


How to save instantiated PTAs

I really think we need to come up with some way to be able to save and re-load instantiated PTA instances like pta.save(outfile) and then re-load with pta = load_pta(infile). I'm not sure exactly how to do this but it would be a huge time saver and also allow us to know exactly what model was run for each analysis.

I tried my idea of changing the name of classes to be different from their class factories:
def Normal(...):
    class NormalParam(Parameter):
        ...

    return NormalParam

This still does not let you pickle the PTA.  There are several problems.  First, the dynamically generated classes still share the same name.  Each Normal parameter is it's own unique class with a common name.
Even if we were to fix this, there would still be a second problem that is common to using pickle with dynamically generated classes.  When pickle tries to reconstruct the object it looks for the definition in the source code.  Dynamically generated class don't have such a definition, and the process will fail.


make test fails for tests 128 (MPI) and 195 (numerical discrepancy)

Hi,
When compiling Ginkgo and then running make test, the following two tests fail (all others work fine):
99% tests passed, 2 tests failed out of 205

Total Test time (real) =  75.06 sec

The following tests FAILED:
        128 - core/test/mpi/base/bindings (Failed)
        195 - test/matrix/dense_kernels_omp (Failed)
Errors while running CTest

Error in the test 128 seems to be related to the MPI_Win_flush call, as suggested by the output below. I have not seen such an error on my system before, but it is possible that this is related to my Easybuild installation of OpenMPI/4.1.1.
[icx-00:26873] *** An error occurred in MPI_Win_flush
[icx-00:26873] *** reported by process [633077761,0]
[icx-00:26873] *** on win rdma window 4
[icx-00:26873] *** MPI_ERR_RMA_SYNC: error executing rma sync
[icx-00:26873] *** MPI_ERRORS_ARE_FATAL (processes in this win will now abort,
[icx-00:26873] ***    and potentially your MPI job)

Error in the test 195 seems to be related to the minor numerical discrepancies, as suggested by the output:
[ RUN      ] Dense.ComputeDotIsEquivalentToRef
/home/l00568700/tmp/bug_report/ginkgo/test/matrix/dense_kernels.cpp:1013: Failure
Relative error between ddot and dot_expected is 2.7026992280801769e-15
        which is larger than r<vtype>::value (which is 2.2204460492503131e-15)
ddot is:
        11.173298884336093
dot_expected is:
        11.173298884336063
component-wise relative error is:
        2.7026992280801765e-15

[  FAILED  ] Dense.ComputeDotIsEquivalentToRef (0 ms)
[ RUN      ] Dense.ComputeDotWithPreallocatedTmpIsEquivalentToRef
[       OK ] Dense.ComputeDotWithPreallocatedTmpIsEquivalentToRef (17 ms)
[ RUN      ] Dense.ComputeDotWithTmpIsEquivalentToRef
[       OK ] Dense.ComputeDotWithTmpIsEquivalentToRef (17 ms)
[ RUN      ] Dense.ComputeConjDotIsEquivalentToRef
/home/l00568700/tmp/bug_report/ginkgo/test/matrix/dense_kernels.cpp:1063: Failure
Relative error between ddot and dot_expected is 2.7026992280801769e-15
        which is larger than r<vtype>::value (which is 2.2204460492503131e-15)
ddot is:
        11.173298884336093
dot_expected is:
        11.173298884336063
component-wise relative error is:
        2.7026992280801765e-15

[  FAILED  ] Dense.ComputeConjDotIsEquivalentToRef (0 ms)

Regarding my setup, I was able to reproduce this issue on both Intel and ARM machines (machines do not have accelerators). I am using Ubuntu 18.04 LTS and GCC 10.3, and I have cloned develop branch (commit 75b2557763) on 28.06.2022. Please let me know if more info about my system is necessary.
This error is not critical for my usage of Ginkgo, but I report it here since I thought it might be useful for the developers and the community.
Best,
Luka from Huawei Munich Research Center

The test error for 195 is not an issue, we just need to relax the error bounds slightly, it was probably tripped since we have two values instead of a single value, so the error bounds are sqrt(2) too small. @pratikvn can you take a look at the MPI issue?

Unfortunately, I cannot seem to reproduce this. I also installed openmpi-4.1.1 and openmpi-4.1.4 and tested it with both. All tests pass for me.

The numerical issue was fixed by #1083

No, I am not using a virtual machine. I was able to reproduce this issue on both ARM and Intel machines, running with Ubuntu 18.04 LTS and GCC 10.3. My OpenMPI 4.1.1 is coming from Easybuild.

I see. Thanks. If possible could you share your easybuild config, so that I can try and reproduce the problem ?

We forked from develop branch of Easybuild around one year ago. In comparison to today's config of the same package, I can see that only 2 CUDA related patches were added, which should not have any impact on our setup as we do not use accelerators on these machines. Here is the config used on our machines:
name = 'OpenMPI'
version = '4.1.1'

homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""

toolchain = {'name': 'GCC', 'version': '10.3.0'}

source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_BZ2]
patches = [
    'OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch',
    'OpenMPI-4.0.6_remove-pmix-check-in-pmi-switch.patch',
    'OpenMPI-4.1.0-1-pml-ucx-datatype-memleak.patch',
]
checksums = [
    'e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda',  # openmpi-4.1.1.tar.bz2
    # OpenMPI-4.1.1_fix-bufferoverflow-in-common_ofi.patch
    'a189d834506f3d7c31eda6aa184598a3631ea24a94bc551d5ed1f053772ca49e',
    # OpenMPI-4.0.6_remove-pmix-check-in-pmi-switch.patch
    '8acee6c9b2b4bf12873a39b85a58ca669de78e90d26186e52f221bb4853abc4d',
    # OpenMPI-4.1.0-1-pml-ucx-datatype-memleak.patch
    'a94a74b174ce783328abfd3656ff5196b89ef4c819fe4c8b8a0f1277123e76ea',
]

builddependencies = [
    ('pkg-config', '0.29.2'),
]

dependencies = [
    ('zlib', '1.2.11'),
    ('hwloc', '2.4.1'),
    ('libevent', '2.1.12'),
    ('UCX', '1.10.0'),
    ('libfabric', '1.12.1'),
    ('PMIx', '3.2.3'),
]

# disable MPI1 compatibility for now, see what breaks...
# configopts = '--enable-mpi1-compatibility '

# to enable SLURM integration (site-specific)
# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr'

moduleclass = 'mpi'


SNPE with NSF fails when sampling with MCMC

This occurs in a very particular setting: SNPE inference with NSF density estimator and sample_with_mcmc=True (no matter which type of MCMC.

it works with sample_with_mcmc=False,
and it works with SNLE!

I tried to chase it down, but no success so far. You can reproduce it locally by running
pytest -s tests/linearGaussian_snpe_test.py::test_c2st_snpe_external_data_on_linearGaussian

and setting
https://github.com/mackelab/sbi/blob/6b5ed7be1d7522546b06c39aec1f206a354cc2ef/tests/linearGaussian_snpe_test.py#L286
to True.

I was about to post the same issue.
In my case, I'm using NSF with SNPE_C. Setting sample_with_mcmc=False it works for most of the real observations, but it crashes in some of them (they are difficult and boundary cases, but I can't identify any numerical instability in them), suggesting to switch to sample_with_mcmc=True. Finally, after a while, it crashes in the same rational_quadratic.py function:
Drawing 200 posterior samples:   0%|          | 0/200 [00:00<?, ?it/s]WARNING:root:Only 0% posterior samples are within the
                        prior support. It may take a long time to collect the remaining
                        200 samples. Consider interrupting (Ctrl-C)
                        and switching to `sample_with_mcmc=True`.
Drawing 200 posterior samples:   0%|          | 0/200 [39:10<?, ?it/s]Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 15, in decorate_context
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/sbi/utils/sbiutils.py", line 176, in sample_posterior_within_prior
    candidates = posterior_nn.sample(sampling_batch_size, context=x).reshape(
  File "/usr/local/lib/python3.8/site-packages/nflows/distributions/base.py", line 65, in sample
    return self._sample(num_samples, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/flows/base.py", line 54, in _sample
    samples, _ = self._transform.inverse(noise, context=embedded_context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 60, in inverse
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 60, in inverse
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 60, in inverse
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 119, in inverse
    transform_split, logabsdet_split = self._coupling_transform_inverse(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 197, in _coupling_transform_inverse
    return self._coupling_transform(inputs, transform_params, inverse=True)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 211, in _coupling_transform
    outputs, logabsdet = self._piecewise_cdf(inputs, transform_params, inverse)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 492, in _piecewise_cdf
    return spline_fn(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py", line 45, in unconstrained_rational_quadratic_spline
    ) = rational_quadratic_spline(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py", line 134, in rational_quadratic_spline
    assert (discriminant >= 0).all()
AssertionError
python-BaseException

(i.e., discriminant has, at least, 1 negative value.).
However, when I switch to sample_with_mcmc=True, it breaks for any observation (even for those ones where sample_with_mcmc=False worked properly), returning the following error:
Tuning bracket width...:   2%|▏         | 1/50 [00:04<03:43,  4.57s/it]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3417, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-29-30b05a893c71>", line 4, in <module>
    s = posterior_nsf.sample((200,), x=data_brain[i, j] / mean_b0vols[i, j], sample_with_mcmc=True)  # , 0.3, th1+th[i], ph1+ph[j]]))
  File "/usr/local/lib/python3.8/site-packages/sbi/inference/posteriors/direct_posterior.py", line 330, in sample
    samples = self._sample_posterior_mcmc(
  File "/usr/local/lib/python3.8/site-packages/sbi/inference/posteriors/base_posterior.py", line 326, in _sample_posterior_mcmc
    samples = self._slice_np_mcmc(
  File "/usr/local/lib/python3.8/site-packages/sbi/inference/posteriors/base_posterior.py", line 389, in _slice_np_mcmc
    posterior_sampler.gen(int(warmup_steps))
  File "/usr/local/lib/python3.8/site-packages/sbi/mcmc/slice_numpy.py", line 84, in gen
    self._tune_bracket_width(rng)
  File "/usr/local/lib/python3.8/site-packages/sbi/mcmc/slice_numpy.py", line 134, in _tune_bracket_width
    x[i], wi = self._sample_from_conditional(i, x[i], rng)
  File "/usr/local/lib/python3.8/site-packages/sbi/mcmc/slice_numpy.py", line 158, in _sample_from_conditional
    while Li(lx) >= logu and cxi - lx < self.max_width:
  File "/usr/local/lib/python3.8/site-packages/sbi/mcmc/slice_numpy.py", line 147, in <lambda>
    Li = lambda t: self.lp_f(np.concatenate([self.x[:i], [t], self.x[i + 1 :]]))
  File "/usr/local/lib/python3.8/site-packages/sbi/inference/posteriors/direct_posterior.py", line 471, in np_potential
    target_log_prob = self.posterior_nn.log_prob(inputs=theta, context=self.x,)
  File "/usr/local/lib/python3.8/site-packages/nflows/distributions/base.py", line 40, in log_prob
    return self._log_prob(inputs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/flows/base.py", line 39, in _log_prob
    noise, logabsdet = self._transform(inputs, context=embedded_context)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 56, in forward
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 56, in forward
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 56, in forward
    return self._cascade(inputs, funcs, context)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/base.py", line 50, in _cascade
    outputs, logabsdet = func(outputs, context)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 84, in forward
    transform_split, logabsdet = self._coupling_transform_forward(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 194, in _coupling_transform_forward
    return self._coupling_transform(inputs, transform_params, inverse=False)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 211, in _coupling_transform
    outputs, logabsdet = self._piecewise_cdf(inputs, transform_params, inverse)
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/coupling.py", line 492, in _piecewise_cdf
    return spline_fn(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py", line 45, in unconstrained_rational_quadratic_spline
    ) = rational_quadratic_spline(
  File "/usr/local/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py", line 77, in rational_quadratic_spline
    if torch.min(inputs) < left or torch.max(inputs) > right:
RuntimeError: operation does not have an identity.

Version of packages:
python 3.8
sbi 0.13.2
nflows 0.12
torch 1.6.0

@josepman
This seems to be an issue with the bound of the NSF: during bracket tuning of the MCMC sampler theta close to the NSF bound (default 3.0) are evaluated. Because they are outside of the bounds, the inputs to the spline are empty (see bottom of first stack trace) and we get the error.
The fix could be to change the NSF evaluation to check for empty inputs and to handle this case in some way, e.g., return empty result.
We will come up with a minimal example to confirm this hypothesis and then suggest a fix in nflows.

This is the minimal example:
from nflows import distributions as distributions_
from nflows import flows, transforms
from nflows.nn import nets
from torch import Tensor, nn, relu, tanh
import torch

def create_alternating_binary_mask(features, even=True):
    """
    Creates a binary mask of a given dimension which alternates its masking.

    :param features: Dimension of mask.
    :param even: If True, even values are assigned 1s, odd 0s. If False, vice versa.
    :return: Alternating binary mask of type torch.Tensor.
    """
    mask = torch.zeros(features).byte()
    start = 0 if even else 1
    mask[start::2] += 1
    return mask

def build_nsf_() -> nn.Module:

    x_numel = 3
    y_numel = 3

    transform = transforms.CompositeTransform(
        [
            transforms.CompositeTransform(
                [
                    transforms.PiecewiseRationalQuadraticCouplingTransform(
                        mask=create_alternating_binary_mask(
                            features=x_numel, even=(i % 2 == 0)
                        ),
                        transform_net_create_fn=lambda in_features, out_features: nets.ResidualNet(
                            in_features=in_features,
                            out_features=out_features,
                            hidden_features=50,
                            context_features=y_numel,
                        ),
                        num_bins=10,
                        tails="linear",
                        tail_bound=3.0,
                        apply_unconditional_transform=False,
                    ),
                    transforms.LULinear(x_numel, identity_init=True),
                ]
            )
            for i in range(5)
        ]
    )

    distribution = distributions_.StandardNormal((x_numel,))
    neural_net = flows.Flow(transform, distribution)

    return neural_net

nsf = build_nsf_()
nsf.log_prob(inputs=3.01*torch.ones(1,3), context=torch.zeros(1,3))

Here's the full error:
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-117-4de2f5f83456> in <module>
     45
     46 nsf = build_nsf_()
---> 47 nsf.log_prob(inputs=3.01*torch.ones(1,3), context=torch.zeros(1,3))

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/distributions/base.py in log_prob(self, inputs, context)
     38                     "Number of input items must be equal to number of context items."
     39                 )
---> 40         return self._log_prob(inputs, context)
     41
     42     def _log_prob(self, inputs, context):

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/flows/base.py in _log_prob(self, inputs, context)
     37     def _log_prob(self, inputs, context):
     38         embedded_context = self._embedding_net(context)
---> 39         noise, logabsdet = self._transform(inputs, context=embedded_context)
     40         log_prob = self._distribution.log_prob(noise, context=embedded_context)
     41         return log_prob + logabsdet

~/anaconda3/envs/sbi/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/base.py in forward(self, inputs, context)
     54     def forward(self, inputs, context=None):
     55         funcs = self._transforms
---> 56         return self._cascade(inputs, funcs, context)
     57
     58     def inverse(self, inputs, context=None):

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/base.py in _cascade(inputs, funcs, context)
     48         total_logabsdet = torch.zeros(batch_size)
     49         for func in funcs:
---> 50             outputs, logabsdet = func(outputs, context)
     51             total_logabsdet += logabsdet
     52         return outputs, total_logabsdet

~/anaconda3/envs/sbi/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/base.py in forward(self, inputs, context)
     54     def forward(self, inputs, context=None):
     55         funcs = self._transforms
---> 56         return self._cascade(inputs, funcs, context)
     57
     58     def inverse(self, inputs, context=None):

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/base.py in _cascade(inputs, funcs, context)
     48         total_logabsdet = torch.zeros(batch_size)
     49         for func in funcs:
---> 50             outputs, logabsdet = func(outputs, context)
     51             total_logabsdet += logabsdet
     52         return outputs, total_logabsdet

~/anaconda3/envs/sbi/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    720             result = self._slow_forward(*input, **kwargs)
    721         else:
--> 722             result = self.forward(*input, **kwargs)
    723         for hook in itertools.chain(
    724                 _global_forward_hooks.values(),

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/coupling.py in forward(self, inputs, context)
     82
     83         transform_params = self.transform_net(identity_split, context)
---> 84         transform_split, logabsdet = self._coupling_transform_forward(
     85             inputs=transform_split, transform_params=transform_params
     86         )

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/coupling.py in _coupling_transform_forward(self, inputs, transform_params)
    192 class PiecewiseCouplingTransform(CouplingTransform):
    193     def _coupling_transform_forward(self, inputs, transform_params):
--> 194         return self._coupling_transform(inputs, transform_params, inverse=False)
    195
    196     def _coupling_transform_inverse(self, inputs, transform_params):

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/coupling.py in _coupling_transform(self, inputs, transform_params, inverse)
    209             transform_params = transform_params.reshape(b, d, -1)
    210
--> 211         outputs, logabsdet = self._piecewise_cdf(inputs, transform_params, inverse)
    212
    213         return outputs, torchutils.sum_except_batch(logabsdet)

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/coupling.py in _piecewise_cdf(self, inputs, transform_params, inverse)
    490             spline_kwargs = {"tails": self.tails, "tail_bound": self.tail_bound}
    491
--> 492         return spline_fn(
    493             inputs=inputs,
    494             unnormalized_widths=unnormalized_widths,

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py in unconstrained_rational_quadratic_spline(inputs, unnormalized_widths, unnormalized_heights, unnormalized_derivatives, inverse, tails, tail_bound, min_bin_width, min_bin_height, min_derivative)
     43         outputs[inside_interval_mask],
     44         logabsdet[inside_interval_mask],
---> 45     ) = rational_quadratic_spline(
     46         inputs=inputs[inside_interval_mask],
     47         unnormalized_widths=unnormalized_widths[inside_interval_mask, :],

~/anaconda3/envs/sbi/lib/python3.8/site-packages/nflows/transforms/splines/rational_quadratic.py in rational_quadratic_spline(inputs, unnormalized_widths, unnormalized_heights, unnormalized_derivatives, inverse, left, right, bottom, top, min_bin_width, min_bin_height, min_derivative)
     75     min_derivative=DEFAULT_MIN_DERIVATIVE,
     76 ):
---> 77     if torch.min(inputs) < left or torch.max(inputs) > right:
     78         raise InputOutsideDomain()
     79

RuntimeError: operation does not have an identity.

This will be fixed by https://github.com/bayesiains/nflows/pull/25


a aws instance is running, but the supstcribtion status is pending

[Build]
docker 17.7 2018/06/11
[Steps to reproduce]
login as Technical Provider "TP1"
import a TechnicalService_AWS
define a marketable service  "AWS" and publish on marketplace
subcribe to service "AWS"
[Expected result]
instance will be created and subscription will be show  status "ready"
[Observed result]
instance is running on aws!!, but a mail is send
"Notification of Catalog Manager about the provisioning process for subscription 'AWS' failed."
and the status of subscription "AWS" is pending
[Details]
The error occurs if the Technical provider organisation  of the service is not the PLATFORM_OPERATOR

This issue is depending on #100 (which I see major rather than this).
In fact the technical provider of the AWS service must match the organization configured in APP. However the error handling is weak at this point. Better the provisioning service should somehow check the proper assignment in before hand in order to avoid that administrators can run into this trap after setting up such integration. Well, we'll need to think it some further...

the same for vmware


cri-containerd doesnt successfully reboot kubelet

Description

Steps to reproduce the issue:
start master, wait until all pods are started, poweroff and restart. In ~<10% it reboots successfully
Describe the results you received:
kubelet log
kubelet.sh: kubelet already configured
kubelet.sh: waiting for /etc/kubernetes/kubelet.conf
kubelet.sh: /etc/kubernetes/kubelet.conf has arrived
I1213 19:31:02.058981     572 feature_gate.go:156] feature gates: map[]
I1213 19:31:02.059026     572 controller.go:114] kubelet config controller: starting controller
I1213 19:31:02.059031     572 controller.go:118] kubelet config controller: validating combination of defaults and flags
I1213 19:31:02.075793     572 feature_gate.go:156] feature gates: map[]
W1213 19:31:02.075912     572 server.go:289] --cloud-provider=auto-detect is deprecated. The desired cloud provider should be set e
xplicitly
I1213 19:31:02.079398     572 manager.go:149] cAdvisor running in container: "/sys/fs/cgroup/cpu"
W1213 19:31:02.080964     572 manager.go:153] Unable to connect to Docker: Cannot connect to the Docker daemon. Is the docker daemo
n running on this host?
W1213 19:31:02.082506     572 manager.go:157] unable to connect to Rkt api service: rkt: cannot tcp Dial rkt api service: dial tcp
[::1]:15441: getsockopt: connection refused
W1213 19:31:02.082564     572 manager.go:166] unable to connect to CRI-O api service: Get http://%2Fvar%2Frun%2Fcrio.sock/info: dia
l unix /var/run/crio.sock: connect: no such file or directory
I1213 19:31:02.082950     572 fs.go:139] Filesystem UUIDs: map[d358f4da-8808-4f6c-8b8a-fcc647914e7d:/dev/sda1]
I1213 19:31:02.082962     572 fs.go:140] Filesystem partitions: map[shm:{mountpoint:/dev/shm major:0 minor:18 fsType:tmpfs blockSiz
e:0} tmpfs:{mountpoint:/run major:0 minor:15 fsType:tmpfs blockSize:0} /dev/sda1:{mountpoint:/var/lib major:8 minor:1 fsType:ext4 b
lockSize:0}]
I1213 19:31:02.091136     572 info.go:51] Couldn't collect info from any of the files in "/etc/machine-id,/var/lib/dbus/machine-id"

I1213 19:31:02.093083     572 manager.go:216] Machine: {NumCores:1 CpuFrequency:3400022 MemoryCapacity:4574240768 HugePages:[{PageS
ize:2048 NumPages:0}] MachineID: SystemUUID:D740F169-85BB-4FD2-9F1E-A81CED65D3FD BootID:799bdd7f-4d34-4d88-9189-c376c589bf85 Filesy
stems:[{Device:shm DeviceMajor:0 DeviceMinor:18 Capacity:2287120384 Type:vfs Inodes:558379 HasInodes:true} {Device:tmpfs DeviceMajo
r:0 DeviceMinor:15 Capacity:457424896 Type:vfs Inodes:558379 HasInodes:true} {Device:/dev/sda1 DeviceMajor:8 DeviceMinor:1 Capacity
:8386961408 Type:vfs Inodes:524288 HasInodes:true} {Device:overlay DeviceMajor:0 DeviceMinor:49 Capacity:2287120384 Type:vfs Inodes
:558379 HasInodes:true}] DiskMap:map[43:0:{Name:nbd0 Major:43 Minor:0 Size:0 Scheduler:none} 43:3:{Name:nbd3 Major:43 Minor:3 Size:
0 Scheduler:none} 43:5:{Name:nbd5 Major:43 Minor:5 Size:0 Scheduler:none} 43:9:{Name:nbd9 Major:43 Minor:9 Size:0 Scheduler:none} 8
:0:{Name:sda Major:8 Minor:0 Size:8589934592 Scheduler:deadline} 43:15:{Name:nbd15 Major:43 Minor:15 Size:0 Scheduler:none} 43:2:{N
ame:nbd2 Major:43 Minor:2 Size:0 Scheduler:none} 43:7:{Name:nbd7 Major:43 Minor:7 Size:0 Scheduler:none} 43:8:{Name:nbd8 Major:43 M
inor:8 Size:0 Scheduler:none} 43:10:{Name:nbd10 Major:43 Minor:10 Size:0 Scheduler:none} 43:4:{Name:nbd4 Major:43 Minor:4 Size:0 Sc
heduler:none} 43:12:{Name:nbd12 Major:43 Minor:12 Size:0 Scheduler:none} 43:13:{Name:nbd13 Major:43 Minor:13 Size:0 Scheduler:none}
 43:14:{Name:nbd14 Major:43 Minor:14 Size:0 Scheduler:none} 43:6:{Name:nbd6 Major:43 Minor:6 Size:0 Scheduler:none} 43:1:{Name:nbd1
 Major:43 Minor:1 Size:0 Scheduler:none} 43:11:{Name:nbd11 Major:43 Minor:11 Size:0 Scheduler:none}] NetworkDevices:[{Name:eth0 Mac
Address:82:3f:cf:43:6d:fc Speed:-1 Mtu:1500} {Name:ip6tnl0 MacAddress:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 Speed:0 Mtu:1
452} {Name:tunl0 MacAddress:00:00:00:00 Speed:0 Mtu:1480}] Topology:[{Id:0 Memory:0 Cores:[{Id:0 Threads:[0] Caches:[{Size:32768 Ty
pe:Data Level:1} {Size:32768 Type:Instruction Level:1} {Size:4194304 Type:Unified Level:2}]}] Caches:[{Size:16777216 Type:Unified L
evel:3}]}] CloudProvider:Unknown InstanceType:Unknown InstanceID:None}
I1213 19:31:02.099803     572 manager.go:222] Version: {KernelVersion:4.9.62-linuxkit ContainerOsVersion:LinuxKit Kubernetes Projec
t DockerVersion:Unknown DockerAPIVersion:Unknown CadvisorVersion: CadvisorRevision:}
I1213 19:31:02.122241     572 container_manager_linux.go:257] Creating Container Manager object based on Node Config: {RuntimeCgrou
psName: SystemCgroupsName: KubeletCgroupsName: ContainerRuntime:remote CgroupsPerQOS:false CgroupRoot: CgroupDriver:cgroupfs Protec
tKernelDefaults:false NodeAllocatableConfig:{KubeReservedCgroupName: SystemReservedCgroupName: EnforceNodeAllocatable:map[] KubeRes
erved:map[] SystemReserved:map[] HardEvictionThresholds:[{Signal:memory.available Operator:LessThan Value:{Quantity:100Mi Percentag
e:0} GracePeriod:0s MinReclaim:<nil>} {Signal:nodefs.available Operator:LessThan Value:{Quantity:<nil> Percentage:0.1} GracePeriod:
0s MinReclaim:<nil>} {Signal:nodefs.inodesFree Operator:LessThan Value:{Quantity:<nil> Percentage:0.05} GracePeriod:0s MinReclaim:<
nil>}]} ExperimentalQOSReserved:map[] ExperimentalCPUManagerPolicy:none ExperimentalCPUManagerReconcilePeriod:10s}
I1213 19:31:02.124036     572 container_manager_linux.go:288] Creating device plugin handler: false
I1213 19:31:02.124167     572 kubelet.go:273] Adding manifest file: /etc/kubernetes/manifests
I1213 19:31:02.124211     572 kubelet.go:283] Watching apiserver
E1213 19:31:02.127909     572 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:422: Failed to list *v1.Node: Get https://
<IP_ADDRESS>:6443/api/v1/nodes?fieldSelector=metadata.name%3Dlinuxkit-823fcf436dfc&resourceVersion=0: dial tcp <IP_ADDRESS>:6443: g
etsockopt: connection refused
E1213 19:31:02.167876     572 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:413: Failed to list *v1.Service: Get https
://<IP_ADDRESS>:6443/api/v1/services?resourceVersion=0: dial tcp <IP_ADDRESS>:6443: getsockopt: connection refused
E1213 19:31:02.167939     572 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Get h
ttps://<IP_ADDRESS>:6443/api/v1/pods?fieldSelector=spec.nodeName%3Dlinuxkit-823fcf436dfc&resourceVersion=0: dial tcp <IP_ADDRESS>:6
443: getsockopt: connection refused
W1213 19:31:02.260304     572 kubelet_network.go:62] Hairpin mode set to "promiscuous-bridge" but container runtime is "remote", ig
noring
I1213 19:31:02.263340     572 kubelet.go:517] Hairpin mode set to "none"
I1213 19:31:02.263547     572 remote_runtime.go:43] Connecting to runtime service unix:///var/run/cri-containerd.sock
2017/12/13 19:31:02 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial unix
 /var/run/cri-containerd.sock: connect: no such file or directory"; Reconnecting to {/var/run/cri-containerd.sock <nil>}
E1213 19:31:02.282627     572 remote_runtime.go:69] Version from runtime service failed: rpc error: code = Unavailable desc = grpc:
 the connection is unavailable
E1213 19:31:02.282857     572 kuberuntime_manager.go:160] Get runtime version failed: rpc error: code = Unavailable desc = grpc: th
e connection is unavailable
error: failed to run Kubelet: failed to create kubelet: rpc error: code = Unavailable desc = grpc: the connection is unavailable

cri-containerd
I1213 19:31:00.959698     535 cri_containerd.go:100] Run cri-containerd &{Config:{ContainerdConfig:{RootDir:/var/lib/containerd Sna
pshotter:overlayfs Endpoint:/run/containerd/containerd.sock Runtime:io.containerd.runtime.v1.linux RuntimeEngine: RuntimeRoot:} Cni
Config:{NetworkPluginBinDir:/var/lib/cni/opt/bin NetworkPluginConfDir:/var/lib/cni/etc/net.d} SocketPath:/var/run/cri-containerd.so
ck RootDir:/var/lib/cri-containerd StreamServerAddress: StreamServerPort:10010 CgroupPath: EnableSelinux:false SandboxImage:gcr.io/
google_containers/pause:3.0 StatsCollectPeriod:10 SystemdCgroup:false OOMScore:-999 EnableProfiling:true ProfilingPort:10011 Profil
ingAddress:<IP_ADDRESS>} ConfigFilePath:/etc/cri-containerd/config.toml}
I1213 19:31:00.961008     535 cri_containerd.go:104] Start profiling server
I1213 19:31:00.961020     535 cri_containerd.go:108] Run cri-containerd grpc server on socket "/var/run/cri-containerd.sock"
I1213 19:31:00.966705     535 service.go:155] Get device uuid "d358f4da-8808-4f6c-8b8a-fcc647914e7d" for image filesystem "/var/lib
/containerd/io.containerd.snapshotter.v1.overlayfs"
time="2017-12-13T19:31:00Z" level=info msg="CNI network weave (type=weave-net) is used from /var/lib/cni/etc/net.d/10-weave.conf"
time="2017-12-13T19:31:00Z" level=info msg="CNI network weave (type=weave-net) is used from /var/lib/cni/etc/net.d/10-weave.conf"
I1213 19:31:00.977500     535 service.go:182] Start cri-containerd service
I1213 19:31:00.977526     535 service.go:184] Start recovering state
I1213 19:31:02.346005     535 service.go:190] Start event monitor
I1213 19:31:02.346016     535 service.go:194] Start snapshots syncer
I1213 19:31:02.346028     535 service.go:203] Start streaming server
I1213 19:31:02.346032     535 service.go:214] Start grpc server
I1213 19:31:02.346127     535 events.go:94] TaskExit event &TaskExit{ContainerID:rngd,ID:rngd,Pid:636,ExitStatus:1,ExitedAt:2017-12
-13 19:31:01.834075925 +0000 UTC,}
E1213 19:31:02.346164     535 events.go:100] Failed to get container "rngd": does not exist
I1213 19:31:02.347662     535 events.go:94] TaskExit event &TaskExit{ContainerID:kubelet,ID:kubelet,Pid:572,ExitStatus:1,ExitedAt:2
017-12-13 19:31:02.300502105 +0000 UTC,}
E1213 19:31:02.347679     535 events.go:100] Failed to get container "kubelet": does not exist

Describe the results you expected:
running kubelet
Additional information you deem important (e.g. issue happens only occasionally):
I could reproduce this back to at least f9a2a31

I can actually ctr t delete kubelet && ctr t start kubelet. The var/run/cri-container.sock is there

Does this still happen with Kube 1.9 (just merged via #33)? I think I saw some improvements in this area.
If not then please open an issue against kubernetes or cri-containerd (whichever seems more appropriate, and assuming there isn't already one) since they should be more robust at startup time. My guy feeling is that it is kubernetes which should be more robust to waiting for CRI than vice versa, so a kube issue would seem the way to go.

I just built and booted current master (d39e6ba85fa46a19e77668e436c9e02da8c03850), booted and ran kubeadm-init.sh waited for the pods to all come up then powered off with poweroff. I then booted again with the same persistent disk and again waited for the pods (they did).
I repeated the poweroff, boot and check 5 times and was successful each time (compared with your previous <10% success rate). I also did one iteration with poweroff -f and one with reboot for good measure, still no failures.
So either this is fixed in 1.9.0 or the odds of hitting the problem have changed dramatically, or perhaps something is different in your environment (perhaps just timings).

I tried restarting the master 3 times with no problems but could reproduce it after setting up some nodes and pods :/. From what I know Systemd usually handles Socket Activation.


unused_variables warning when building with filesystem_watcher feature disabled

Objective
Fix unused_variables warning produced by bevy_asset when building as a local dependency with the filesystem_watcher feature disabled.
https://github.com/bevyengine/bevy/blob/main/crates/bevy_asset/src/io/file_asset_io.rs#L125-L143
For some reason this warning doesn't seem to be produced when using the crates.io dependency - I only observed it with a local copy of bevy 0.10

@sarkahn can you try rebasing this? CI appears to be stuck.

something like #[cfg_attr(not(feature = "filesystem_watcher"), allow(unused_variables) would be more exact. I don't remember the exact syntax though


fix: accelerator_configs var validation

I think there was a mistake in the validation of the accelerator_configs variable, and it’s necessary to check each element of the list.

@paalomnikdev thx for the PR. Can you plz fix lint issues? follow this doc.

/gcbrun

/gcbrun

@paalomnikdev can u plz add a random id at the end of this bucket name in local variable. Test is failing cos bucket name is taken.
https://github.com/GoogleCloudPlatform/terraform-google-vertex-ai/blob/355df1710a92813cc5dda59e20c7628a6fc673c7/examples/workbench_complete_example/main.tf#L20

sure, I saw that the code already has random_id.suffix, so I decided to use this resource instead of creating a new one

/gcbrun

/gcbrun


Cannot chmod directories created with COPY in Dockerfile

I'm pretty sure that this is an updated report of an existing bug, and it may be related to #9608, except that 9608 is marked fixed so I thought I should report it.  I couldn't find the other bug I thought related to this.
Docker: 1.4.1 installed as lxc-docker from ubuntu
Kernel: 3.13.0-37-generic
OS: Ubuntu 14.04
Base Image: Ubuntu:precise
Summary: if a directory is created using COPY in the image build, permissions on the directory (root-only) cannot be changed.
Dockerfile:
COPY setup /setup
Terminal:
root@6853a5fc183d:/# cd /setup
root@6853a5fc183d:/setup# ls -l
total 16
-rwx--x--x 1 root root 1308 Jan  2 05:37 dbprep.sh
-rwx--x--x 1 root root 1094 Jan  2 20:18 package_install.sh
drwx------ 2 root root 4096 Aug 27  2013 pgbench
drwx------ 5 root root 4096 Jan  2 05:27 postgres
root@6853a5fc183d:/setup# chmod -R +rx *
root@6853a5fc183d:/setup# ls -l
total 16
-rwxr-xr-x 1 root root 1308 Jan  2 05:37 dbprep.sh
-rwxr-xr-x 1 root root 1094 Jan  2 20:18 package_install.sh
drwxr-xr-x 2 root root 4096 Jan  2 20:55 pgbench
drwxr-xr-x 8 root root 4096 Jan  2 20:55 postgres
root@6853a5fc183d:/setup# su - postgres
postgres@6853a5fc183d:~$ cd /setup
postgres@6853a5fc183d:/setup$ cd postgres
-su: cd: postgres: Permission denied
postgres@6853a5fc183d:/setup$

This is likely related to the storage driver. Can you provide the output of docker info? (it's good practice to provide docker info and docker version when reporting issues)

Containers: 2
Images: 37
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 41
Execution Driver: native-0.2
Kernel Version: 3.13.0-43-generic
Operating System: Ubuntu 14.04.1 LTS
CPUs: 4
Total Memory: 3.749 GiB
Name: Radegast
ID: YNMB:HM2S:ULL5:5EZN:MF7J:4XPR:74QB:2RM6:OFOK:MQJ3:FPWF:FCQ4
Username: jberkus
Registry: [https://index.docker.io/v1/]
WARNING: No swap limit support
FYI, I've seen this issue before, and it's always an Ubuntu container on an Ubuntu host.

dup of https://github.com/docker/docker/issues/783 and known issue see https://docs.docker.com/release-notes/#known-issues


Error getting node pricing - AWS GovCloud

Noticed that the pricing was off for nodes, then dug into the logs for cost-model and saw there were some errors in getting the node pricing.
Setup:

Cloud: AWS GovCloud West
Kubernetes Distro/Management: EKS
Instance Types: On-Demand
Prometheus: custom
helm chart: cost-analyzer-1.70.0

I1210 12:58:11.712174       1 costmodel.go:892] Error getting node pricing. Error: Invalid Pricing Key "us-gov-west-1,g4dn.xlarge,linux"
I1210 12:58:11.712214       1 costmodel.go:892] Error getting node pricing. Error: Invalid Pricing Key "us-gov-west-1,m5.4xlarge,linux"
I1210 12:58:11.712235       1 costmodel.go:892] Error getting node pricing. Error: Invalid Pricing Key "us-gov-west-1,m5.4xlarge,linux"
I1210 12:58:11.712256       1 costmodel.go:892] Error getting node pricing. Error: Invalid Pricing Key "us-gov-west-1,m5.4xlarge,linux"
I1210 12:58:11.712277       1 costmodel.go:892] Error getting node pricing. Error: Invalid Pricing Key "us-gov-west-1,g4dn.xlarge,linux"

Pricing sheet successfully loaded:
I1210 12:54:09.655920       1 awsprovider.go:592] starting download of "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-gov-west-1/index.json", which is quite large ...
I1210 12:54:11.221794       1 awsprovider.go:724] done loading "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-gov-west-1/index.json"
I1210 12:54:11.221818       1 awsprovider.go:853] Finished downloading "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-gov-west-1/index.json"

Looking at the UI -> Asserts -> Cluster -> Node
Pricing is still being generated, albeit not matching the pricing sheet
data points:

instance-type
reported
actual

m5.4xlarge
0.76566
0.968

g4dn.xlarge
0.03200
0.663

p2.xlarge
0.01794
1.08

Let me know if any more info is needed!

Thanks for reporting, @adl2db! Sounds like you installed via helm chart... if so, would you be able to capture and share a bug report? You can send to<EMAIL_ADDRESS>or share in our Slack directly if that works for you.

Fixed in #651 ! Expected in our release this week.

Fixed in #651 ! Expected in our release this week.

@adl2db just let us know if you have any additional questions here!

@adl2db just let us know if you have any additional questions here!


Can I download information about blockchain jobs?

I am applying the code to obtain information about blockchain jobs. But it gives me information back

from linkedin_jobs_scraper.query import Query, QueryOptions, QueryFilters
from linkedin_jobs_scraper.filters import RelevanceFilters, TimeFilters, TypeFilters, ExperienceLevelFilters,
OnSiteOrRemoteFilters, IndustryFilters
query = Query(
query='Blockchain',
options=QueryOptions(
locations=['United States'],
apply_link=True,
skip_promoted_jobs=True,
limit=5,
filters=QueryFilters(
relevance=RelevanceFilters.RECENT,
time=TimeFilters.MONTH,
type=[TypeFilters.FULL_TIME, TypeFilters.INTERNSHIP],
experience=[ExperienceLevelFilters.INTERNSHIP, ExperienceLevelFilters.MID_SENIOR],
on_site_or_remote=[OnSiteOrRemoteFilters.REMOTE],
industry=[IndustryFilters.IT_SERVICES],
)
)
)

Do you get any results when you run this exact same search on the website?

Hi, not sure what do you mean by it gives me information back.
Btw I have tried the following query, it gave some results:
Query(
            query='Blockchain',
            options=QueryOptions(
                locations=['United States'],
                skip_promoted_jobs=True,
                limit=10,
            )
        )


Modbus Serial Master resource release failure. (IDFGH-3984)

Environment

Development Kit:      ESP32 Nodemcu (Clone) (Self-made but used the same schematics)
Module or chip used:  ESP32-WROOM-32D
IDF version (run git describe --tags to find it):
v4.1
Build System:         idf.py
Compiler version (run xtensa-esp32-elf-gcc --version to find it):
xtensa-esp32-elf-gcc (crosstool-NG esp-2020r2) 8.2.0
Operating System:     Windows
(Windows only) environment type: PowerShell
Using an IDE?: No
Power Supply:         USB

Problem Description
I have a self-made board which is a copy to esp32 nodemcu but with some additional hardware. I tried the modbus_master code for trial and it compiles and runs but there bit problem with its strange working.
With Modbus Slave Software, it works well without any issue and it prints the data well with the same resister address and data format. (Same code in example "esp-idf/examples/protocols/modbus/serial/mb_master/")
With the actual device which is Secure Elite 440 MFM Meter, it not shows any data. (Same code as above)
Expected Behavior
Output of Modbus Slave Windows Software

I (559) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.
I (3609) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.
I (6659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.
I (9719) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.
I (12769) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.
I (15829) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 244.100006 (0x4374199a) read successful.

Actual Behavior
Output of Secure Elite 440 MFM Meter

E (649) MB_CONTROLLER_MASTER: mbc_master_get_parameter(111): SERIAL master get parameter failure error=(0x107) (ESP_ERR_TIMEOUT).
E (649) MASTER_TEST: Characteristic #0 (Voltage RN) read fail, err = 263 (ESP_ERR_TIMEOUT).
E (659) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.
I (3659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 0.000000 (0x0) read successful.
E (3839) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.
I (6659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 0.000000 (0x0) read successful.
E (6939) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.
I (9659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 0.000000 (0x0) read successful.
E (9949) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.
I (12659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 0.000000 (0x0) read successful.
E (12839) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.
I (15659) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 0.000000 (0x0) read successful.
E (15819) MB_PORT_COMMON: vMBMasterRunResRelease(172): vMBMasterRunResRelease: resource release failure.

Steps to reproduce

With my device rs485 port, I connect a 2 device as per picture. On the right side meter from which I want to read data. On a top, I put an RS485 to TTL converter which is connected to ttl to USB converter so that I can monitor the packet send by esp to meter and meter response.
Also with USB to RS485 converter I can read the same resister data from Modbus Slave software too with the same communication setting along with resister address and data type.
###Code File
master.txt

Thanks for reporting, we will look into.

Hello @bhavikbhansali,
Thanks for this issue. Could you provide more information needed to reproduce the issue:

I need the documentation for the device you are going to read. Is this correct link to the manual?
https://www.umsmeters.co.uk/app/download/23259059/Elite+440+Technical+Reference+Manual+R11.pdf
Could you set logging verbosity to debug and send me Modbus log from your master application (See below)?

Could you send the captured log from your RS485-USB converter?

Thank you.

Hello @bhavikbhansali,
Thanks for this issue. Could you provide more information needed to reproduce the issue:

I need the documentation for the device you are going to read. Is this correct link to the manual?
https://www.umsmeters.co.uk/app/download/23259059/Elite+440+Technical+Reference+Manual+R11.pdf
Could you set logging verbosity to debug and send me Modbus log from your master application (See below)?

Could you increase the response time from a slave in Modbus configuration?

Could you send the captured log from your RS485-USB converter?

Thank you.

@alisitsyn Thanks for the replay.
Changing the things and after changing the value as mentioned on point it works for me. Below is the output from the monitor.

I (1804) MASTER_TEST: Start modbus test...
D (1804) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (1814) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (1814) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (1824) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (1834) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (1834) MB_MASTER_SERIAL: MB_uart[2] event:
D (1834) MB_MASTER_SERIAL: uart rx break.
D (1834) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (1984) MB_MASTER_SERIAL: MB_uart[2] event:
D (1984) MB_MASTER_SERIAL: Receive data, len: 9.
D (1984) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (1984) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (1994) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (1994) POLL RCV buffer:: 03 04 15 39 43 68
D (2004) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (2014) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (2014) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (2024) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (2024) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (2034) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.082901 (0x43681539) read successful.
D (4044) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (4044) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (4044) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (4044) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (4054) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (4064) MB_MASTER_SERIAL: MB_uart[2] event:
D (4064) MB_MASTER_SERIAL: uart rx break.
D (4064) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (4364) MB_MASTER_SERIAL: MB_uart[2] event:
D (4364) MB_MASTER_SERIAL: Receive data, len: 9.
D (4364) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (4374) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (4374) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (4384) POLL RCV buffer:: 03 04 3b 25 43 68
D (4384) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (4394) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (4394) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (4404) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (4414) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (4424) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.231033 (0x43683b25) read successful.
D (6434) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (6434) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (6434) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (6434) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (6444) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (6454) MB_MASTER_SERIAL: MB_uart[2] event:
D (6454) MB_MASTER_SERIAL: uart rx break.
D (6454) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (6594) MB_MASTER_SERIAL: MB_uart[2] event:
D (6594) MB_MASTER_SERIAL: Receive data, len: 9.
D (6594) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (6604) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (6604) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (6614) POLL RCV buffer:: 03 04 32 80 43 68
D (6614) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (6624) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (6634) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (6634) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (6644) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (6654) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.197266 (0x43683280) read successful.
D (8664) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (8664) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (8664) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (8664) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (8674) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (8684) MB_MASTER_SERIAL: MB_uart[2] event:
D (8684) MB_MASTER_SERIAL: uart rx break.
D (8684) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (8954) MB_MASTER_SERIAL: MB_uart[2] event:
D (8954) MB_MASTER_SERIAL: Receive data, len: 9.
D (8954) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (8954) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (8964) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (8974) POLL RCV buffer:: 03 04 2f c4 43 68
D (8974) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (8984) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (8984) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (8994) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (9004) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (9014) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.186584 (0x43682fc4) read successful.
D (11024) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (11024) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (11024) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (11024) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (11034) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (11044) MB_MASTER_SERIAL: MB_uart[2] event:
D (11044) MB_MASTER_SERIAL: uart rx break.
D (11044) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (11184) MB_MASTER_SERIAL: MB_uart[2] event:
D (11184) MB_MASTER_SERIAL: Receive data, len: 9.
D (11184) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (11194) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (11194) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (11204) POLL RCV buffer:: 03 04 48 bb 43 68
D (11204) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (11214) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (11224) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (11224) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (11234) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (11244) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.284103 (0x436848bb) read successful.
D (13254) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_TRANSMIT
D (13254) MB_PORT_COMMON: eMBMasterRTUSend: Port enter critical.
D (13254) MB_PORT_COMMON: eMBMasterRTUSend: Port exit critical
D (13254) MB_PORT_COMMON: vMBMasterPortTimersRespondTimeoutEnable Respond enable timeout.
D (13264) MB_MASTER_SERIAL: MB_TX_buffer sent: (9) bytes.
D (13274) MB_MASTER_SERIAL: MB_uart[2] event:
D (13274) MB_MASTER_SERIAL: uart rx break.
D (13274) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_FRAME_SENT
D (13414) MB_MASTER_SERIAL: MB_uart[2] event:
D (13414) MB_MASTER_SERIAL: Receive data, len: 9.
D (13414) MB_MASTER_SERIAL: Received data: 9(bytes in buffer)
D (13424) MB_PORT_COMMON: eMBMasterRTUReceive: Port enter critical.
D (13424) MB_PORT_COMMON: eMBMasterRTUReceive: Port exit critical
D (13434) POLL RCV buffer:: 03 04 86 ed 43 68
D (13434) MB_PORT_COMMON: eMBMasterPoll: Packet data received successfully (0).
D (13444) MB_PORT_COMMON: eMBMasterPoll:EV_MASTER_EXECUTE
D (13454) MB_PORT_COMMON: vMBMasterCBRequestSuccess: Callback request success.
D (13454) MB_PORT_COMMON: eMBMasterWaitRequestFinish: returned event = 0x40
D (13464) MB_CONTROLLER_MASTER: mbc_serial_master_get_parameter: Good response for get cid(0) = ESP_OK
I (13474) MASTER_TEST: Characteristic #0 Voltage RN (Volt) value = 232.527054 (0x436886ed) read successful.
I (15484) MASTER_TEST: Destroy master...
D (15484) MB_PORT_COMMON: eMBMasterRTUStop: Port enter critical.
D (15484) MB_PORT_COMMON: eMBMasterRTUStop: Port exit critical

@alisitsyn I used to do coding the esp32 with Arduino as it works for me but now want to move ahead and want to utilize the power of the controller can you suggest me some good tutorial from where I can understand the ESP-IDF more properly.
Current documentation is a bit difficult for me to understand.
Thank You.

@bhavikbhansali,
Good to hear it helps. Please try the book mentioned here: https://www.esp32.com/viewtopic.php?t=5217
It is good to start.
In spite of the release/v4.1 works for you now there are some known issues that can come later. Could you apply the patch below to release/v4.1 and test it with your environment?
patch_drv_modbus_v41.zip
Please check it, let me know about the results of the testing, and send me your logs. This would help you to avoid issues later and contribute to testing.
Thanks.

@alisitsyn Sure will go through it. Please allow me for some time to test with the current setup as well as release/v4.1 too.
Thanks for the quick and amazing support.

Hello, @alisitsyn Thanks for the help. and suggestion for book.
Currently, my issue is to resolve and want to close this issue. In the future when I face any issue and need help from your guys will raise again with the details.
Thanks.
Bhavik

@bhavikbhansali,
Ok. Please let me know, If you have any issues or there are results related to patch. Thanks.

Hello Guys,
I hope all of you are doing well.
Is there any good tutorial available instead of a book to learn how to use ESP-IDF with windows (maybe with VS Code)?

@bhavikbhansali This might help you: Quick User Guide on Youtube for VS Code: https://youtu.be/Lc6ausiKvQM


V2.0.16 code folding function disabled.

After disabling the  Vue - Official
plugin, the folding function can be used again

also:
Version: 1.89.0 (system setup)
Commit: b58957e67ee1e712cebf466b995adf4c5307b2bd
Date: 2024-05-01T02:09:22.859Z
Electron: 28.2.8
ElectronBuildId: 27744544
Chromium: 120.0.6099.291
Node.js: 18.18.2
V8: 12.0.267.19-electron.0
OS: Windows_NT x64 10.0.22621

@CTRGKA25 Also has this issue recently....when the folding feature is gone, you will also lost features such as Symbol location, I think the Vue LSP is just stopped working, I tried to switch between inside and regualr version of vscode, all with this issue, but not able to reproducable constantly

code folding is working under v2.0.14

I can confirm that it does work under 2.0.14. It broke with 2.0.15.

Guys, fixed in 2.0.17. Now this issue can be closed.


Pagination with custom pipe

Hey,
Is anyone having issue with custom pipe?
Here is my custom pipe
import { Pipe } from '@angular/core';

// Tell Angular2 we're creating a Pipe with TypeScript decorators
@Pipe({
    name: 'showfilter',
    pure: false
})

export class ShowPipe {
    transform(value) {
        return value.filter(item => {
            return item.visible == true;
        });
    }
}

Component
import { ShowPipe } from '../pipes/show.pipe';
import { PaginatePipe, PaginationControlsCmp, PaginationService } from 'ng2-pagination';

@Component({
    selector: 'results',
    templateUrl: 'app/templates/results.html',
    pipes: [PaginatePipe, ShowPipe]
})

HTML
<flights *ngFor="let item of items | showfilter | paginate: { itemsPerPage: 10, currentPage: p }">
</flights>

When I have showfilter and paginate, no results are shown.
If I change HTML to
<flights *ngFor="let item of items | showfilter">
</flights>

Everything is working.
Now if I change HTML to
<flights *ngFor="let item of items | paginate: { itemsPerPage: 10, currentPage: p }">
</flights>

Pagination works.
Is there a way to have custom pipe working with paginate like the example on your website: http://michaelbromley.github.io/ng2-pagination/ (Full example)

Hi,
Could be related to https://github.com/michaelbromley/ng2-pagination/issues/23 - if the pipe is not pure (as in your example), the PaginatePipe starts to run many, many times and eventually will crash the browser window. Looking into exactly why that happens...

Just published a new version, 0.3.4. Try it out and let me know if it fixes your issue.

thanks i think 0.3.4 fixed the issue.
However now I found another issue.
When im on page 10 then change a filter to limit the items down to 5 pages of results. It will error out showing
ORIGINAL EXCEPTION: Expression has changed after it was checked. Previous value: ''. Current value: '[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]'

i had to do enableProdMode( ), not sure if thats a good idea or not thou.

@tonywong625 Thanks for the report. Enabling prod mode "fixes" things, but not really.
In dev mode, Angular runs change detection twice, one to update values, and the second just to ensure that nothing changed after the first pass (which would be bad and breaks the data flow model). That's why you get the exception. In production, checking twice would slow things down, so they only do the first pass and assume you ironed all of the issues out in dev mode.
So yeah, this is an issue which I will take a look at.

@tonywong625 Can you provide a reproduction Plunker of the issue with the change detection?

I had the same problem (Expression has changed after it was checked)
A workaround in the component fixed it.
Instead of
onPageChange(page: number): void {
    this.currentPage = page;
}

I did:
onPageChange(page: number): void {
    setTimeout(() => {
        this.currentPage = page;
    }, 3);
}


Implement es-next wait actions (part of #240)

\cc @inikulin @AlexanderMoskovkin

Unstable iOS test failed :disappointed:

Unstable iOS test failed :disappointed:

We are working on this :muscle:

\r-

\r-

FPR

lgtm

lgtm
/cc @VasilyStrelyaev

\r-

FPR

lgtm

FPR

lgtm

lgtm


[addon-info] No propTypes defined! on prop table in build mode

Reproduce the bug
https://github.com/storybooks/storybook/issues/5251
in version 5 it still not work! but my issues was closed without come fix! it saddens me

Reopening #5251


WIP: Import fix for vscode integration

Have you try : import * as Web3 from 'web3' ?

It gives us typescript compil error.
src/deployer.ts:4:23 - error TS2497: This module can only be referenced with ECMAScript imports/exports by turning on the 'esModuleInterop' flag and referencing its default export.

4 import * as Web3 from 'web3';

And yeah "esModuleInterop": true, is already set to tsconfig.

I think this is a problem specific to Web3 library. We might want to get ride of it at some point and fallback to ethers.

Yes there are so many weird problems with Web3 library, when used with Typescript.


Change Container to be thread-safe

Actually this will deadlock if you try to resolve something inside of a resolve. Which does happen on our project. Will have to re-think this.

Or rather, I just added some more locking to make the entry instance creation be thread-safe (which I have not yet pushed up). And that causes the deadlock.

Ok, I have fixed the re-entrancy issue by changing to use NSRecursiveLock.


Use Standard Library IO Abstractions in Parquet

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
The parquet crate has a number of IO abstractions that at least on the surface appear very similar to those in the Rust standard library.
The major distinction appears to concern mutability, with various components using a mixture of TryClone and RefCell internally to placate the borrow checker. This makes the code fairly hard to reason about, as cloned file descriptors share the same seek position. Additionally it prevents creating readers from &mut File or similar.
At a more holistic level, I'm not really sure of the use-case for non-exclusive IO, but I could be missing something here?
A non-exhaustive list of potential candidates for replacement:

Postition - std::io::seek(SeekFrom::Current(0))
Length - std::io::seek(SeekFrom::End(0))
ChunkReader - std::io::Read
SliceableCursor - std::io::Cursor
ParquetReader - std::io::Seek + std::io::Read
ParquetWriter - std::io::Seek + std::io::Write
FileSink - BufWriter<File>
FileSource - BufReader<File>

Describe the solution you'd like
I would ideally like to be able to create a parquet reader with anything implementing std::io::Seek and std::io::Read.
Similarly I would like to be able to create parquet writer with anything implementing std::io::Seek and std::io::Write.
These are standard traits within the Rust ecosystem and supporting them will simplify inter-operation with other crates, and reduce cognitive load on users and contributors.
The blanket implementations on these traits will for free allow using mutable references, instead of owned values.
Describe alternatives you've considered
Preserve the current behaviour

I think the difference I have observed in the past was that the parquet abstractions also allow Clone -- as I recall it was to allow clients to read from different columns concurrently (each column would get its own Clone of the I/O object -- aka it would get its own file descriptor) so they could be read / advanced concurrently
There may well be a better way to handle this

FWIW I think it would be great to avoid all the custom abstractions 👍

Aah yes, the FileReader API expects to be able to give out RowGroupReader which in turn give out PageReader. These are all owned constructs and so expect to be able to pass around Arc<FileReader>.
However, looking at the code I'm not sure it can actually be used concurrently. It doesn't appear to have any synchronisation, and yet is using the same underlying file descriptor. I think it might be possible to make the code race if used in such a way... Some testing is needed :thinking:

I had a brief play around with this and found the following.
The write side is serial, and so it should be possible to use standard library abstractions. The current trait topology will likely require using Rc<RefCell<W>> or similar. I tried using mutable borrows, but this runs into issues as the types need to be boxed in order to be used in traits (due to lack of GATs) but by value trait methods (i.e. fn close(self)) aren't object safe, which makes the ergonomics of such an API suck as you need to manually std::mem::drop.
The read side is more complicated, the problem can be seen in SerializedRowGroupReader::get_column_page_reader. This wants to return a Box<dyn PageReader> which can be used asynchronously (although not concurrently) with respect to others from the same row group. This is what requires FileSource, we want buffered reads on a shared file descriptor.
It occurs to me that one of the things an async API able to support object stores will need is a sparse file abstraction, ultimately this is what the read path wants. I'll therefore park this for now, and see what shakes out of that.

Also related https://github.com/apache/arrow-rs/issues/937

Hi @tustvold ! I am the weird mind who introduced the ChunkReader 😄.
The main benefit compared to a regular reader is that you can specify the size of the chunk you plan to read, which enables you to set the right range when you call GET on the object store. Not sure how we could achieve this with plain std::io::Read. But I ended up offloading the download scheduling to a separate module anyway, and I think that this is what you will want to do in most cases to optimize your link with the object store (this is also what is done in IOx, isn't it?).
Another initial goal was indeed to try to achieve parallelism between columns, but I never succeeded because the entire structure of the parquet reader was against it, and I didn't have enough Rust experience to fight it 😉.

Hi @rdettai, I realize I never responded directly to your comment. I have been documenting my experiments on the parquet API in #1473, which I think overlaps a fair deal with the points you raise about the object store interface and introducing more parallelism into the parquet reader. I would be very interested in hearing any thoughts you might have

Coming back to this, we now have OffsetIndex integration which lets us read pages without requiring buffered reading. With #2478 this integrates very nicely with in-memory data.
If it is acceptable to pre-fetch the entire column chunk in the absence of an OffsetIndex, which FWIW is what we do with async IO, then we can likely greatly simplify the implementation

If it is acceptable to pre-fetch the entire column chunk in the absence of an OffsetIndex, which FWIW is what we do with async IO, then we can likely greatly simplify the implementation, removing FileSource, etc...

The results in https://github.com/tustvold/access-log-bench/pull/2 would definitely suggest this idea may have merit


Inheritance of workflow interfaces is not supported

  @WorkflowInterface
  public interface CustomerWorkflow {

    @WorkflowMethod
    void execute(Customer customer);

  }

  @WorkflowInterface
  public interface CustomerWorkflowWithSignal extends CustomerWorkflow {

    @SignalMethod(name = "setCustomer")
    void setCustomer(Customer customer);
  }

Registering two classes that implement the interfaces above should be possible, the second implementation should have a CustomerWorkflowWithSignal name.
Instead, it causes "java.lang.IllegalStateException: CustomerWorkflow workflow type is already registered with the worker".
Special consideration should be put into maintaining compatibility during the fix as it may change the workflow names for some users.

This is supported:
  public interface CustomerWorkflow {

    @WorkflowMethod
    void execute(Customer customer);

  }

  @WorkflowInterface
  public interface CustomerWorkflowWithSignal extends CustomerWorkflow {

    @SignalMethod(name = "setCustomer")
    void setCustomer(Customer customer);
  }

Currently any interface annotated with @WorkflowInterface defines a workflow type. I don't think a user would really want to have two separate workflow types CustomerWorkflow and CustomerWorkflowWithSignal in this case.
See https://docs.temporal.io/docs/java/workflows#workflow-interface-inheritance

This is supported:
  public interface CustomerWorkflow {

    @WorkflowMethod
    void execute(Customer customer);

  }

  @WorkflowInterface
  public interface CustomerWorkflowWithSignal extends CustomerWorkflow {

    @SignalMethod(name = "setCustomer")
    void setCustomer(Customer customer);
  }

The objective of the issue is "Inheritance of workflow interfaces is not supported". In your snippet, CustomerWorkflow is not a WorkflowInterface.

I don't think a user would really want to have two separate workflow types CustomerWorkflow and CustomerWorkflowWithSignal in this case.

^ This is how I would expect it to behave.
This should be either supported or explicitly non-supported. So, this either should work as described in the description of the issue OR it should throw an exception like "Inheritance of workflow interfaces is not supported".
What definitely shouldn't happen and it happens now, when a user register CustomerWorkflowWithSignal workflow, actually a workflow CustomerWorkflow gets registered. It's confusing and misleading.


Cannot enter other languages except English in the edit box

Cannot enter other languages except English in the edit box

What edit box are you refererring to?

I wan to input chiness,but

I just published version 2.12.4 in which I have set IME mode to ON on both the DAX expression editor and the advanced scripting textbox. Could you let me know if this solves the issue? Thanks!

The version 2.12.4 had sloved my problem.Thanks!


Fix instructions wk8 Logical OR operator

https://backend.codecrafters.io/admin/site_feedback_submissions/6f065695-507b-412b-9086-a5bf6311ae0f

Thanks, @thesamet, for highlighting the issue!