Weaveworks net-plugin blocks network traffic between hosts after some time

What you expected to happen?
We expected that when installing and configuring the 'weaveworks/net-plugin' docker plugin it should work. It always works at the beginning but we expect the plugin to keep working.
What happened?
We installed the 'weaveworks/net-plugin' docker plugin on our Docker swarm cluster and initially this all works but after a while it starts breaking. As of now we have detected two scenario's in which all traffic between the two interfaces on multiple hosts fails when using the weaveworks/net-plugin as the docker overlay network:

When installing the weaveworks/net-plugin before joining the node to the swarm. In this case traffic will never work and we just have to uninstall and reinstall the plugin again. We have adapted our procedures to make sure that this can not happen anymore
The other scenario is a lot worse for us because this time we installed everything according to procedure and everything works but after a while or when for example updating the service that uses this network interface all traffic gets blocked on one of the multiple hosts in the cluster. This breaks the service because one host is no longer reachable for the other causing a lot of problems

It appears that several IPTables rules are added or deleted causing the traffic to break.
How to reproduce it?
The first scenario is fairly easy to reproduce:

Create a docker swarm cluster
Provision a new node and install the weaveworks/net-plugin on a new docker host
Join that host to the cluster

For the second one on the other hand we are not sure how to reproduce it as it just happens at random intervals. We have noticed that it happens a lot more often in our test environment on which the services are update more often. A way to reproduce it might be:

Create a docker swarm cluster and install the weaveworks/net-plugin
Provision a service using the weaveworks/net-plugin
Continuously trigger updates on the service and after a while it should break

Anything else we need to know?
The infrastructure is as follows;

Several docker swarm hosts on the Flatcar OS
Flatcar OS hosts are provisioned as VM's using VMWare
All docker swarm services are provisioned using a docker stack YAML file

Versions:
$ docker plugin inspect weaveworks/net-plugin:latest_release

[
    {
        "Config": {
            "Args": {
                "Description": "",
                "Name": "",
                "Settable": null,
                "Value": null
            },
            "Description": "Weave Net plugin for Docker",
            "DockerVersion": "19.03.8",
            "Documentation": "https://weave.works",
            "Entrypoint": [
                "/home/weave/launch.sh"
            ],
            "Env": [
                {
                    "Description": "Log level",
                    "Name": "LOG_LEVEL",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "Extra args to `weaver` and `plugin`",
                    "Name": "EXTRA_ARGS",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "Encryption password",
                    "Name": "WEAVE_PASSWORD",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "MTU",
                    "Name": "WEAVE_MTU",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "Enable multicast for all Weave networks",
                    "Name": "WEAVE_MULTICAST",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "The range of IP addresses used by Weave Net",
                    "Name": "IPALLOC_RANGE",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                }
            ],
            "Interface": {
                "Socket": "weave.sock",
                "Types": [
                    "docker.networkdriver/1.0"
                ]
            },
            "IpcHost": false,
            "Linux": {
                "AllowAllDevices": false,
                "Capabilities": [
                    "CAP_NET_ADMIN",
                    "CAP_SYS_ADMIN",
                    "CAP_SYS_MODULE"
                ],
                "Devices": null
            },
            "Mounts": [
                {
                    "Description": "",
                    "Destination": "/host/proc/",
                    "Name": "",
                    "Options": [
                        "rbind",
                        "rw"
                    ],
                    "Settable": null,
                    "Source": "/proc/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/var/run/docker.sock",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/var/run/docker.sock",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/host/var/lib/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/var/lib/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/host/etc/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/etc/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/lib/modules/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/lib/modules/",
                    "Type": "bind"
                }
            ],
            "Network": {
                "Type": "host"
            },
            "PidHost": false,
            "PropagatedMount": "",
            "User": {},
            "WorkDir": "",
            "rootfs": {
                "diff_ids": [
                    "sha256:cb20fb41d4e05b17c03185ccd0b8d21dba65cf6c9fdfed2565d5fb9d5eba84c6"
                ],
                "type": "layers"
            }
        },
        "Enabled": true,
        "Id": "c0c227b0f1645fc6a9d3deff138cb6f77f00c6f76581b775735ea3b8846fdaa9",
        "Name": "weaveworks/net-plugin:latest_release",
        "PluginReference": "docker.io/weaveworks/net-plugin:latest_release",
        "Settings": {
            "Args": [],
            "Devices": [],
            "Env": [
                "LOG_LEVEL=",
                "EXTRA_ARGS=",
                "WEAVE_PASSWORD=*********",
                "WEAVE_MTU=",
                "WEAVE_MULTICAST=1",
                "IPALLOC_RANGE=<IP_ADDRESS>/24"
            ],
            "Mounts": [
                {
                    "Description": "",
                    "Destination": "/host/proc/",
                    "Name": "",
                    "Options": [
                        "rbind",
                        "rw"
                    ],
                    "Settable": null,
                    "Source": "/proc/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/var/run/docker.sock",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/var/run/docker.sock",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/host/var/lib/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/var/lib/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/host/etc/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/etc/",
                    "Type": "bind"
                },
                {
                    "Description": "",
                    "Destination": "/lib/modules/",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/lib/modules/",
                    "Type": "bind"
                }
            ]
        }
    }
]
$ docker version
Client:
 Version:           20.10.11
 API version:       1.41
 Go version:        go1.17.5
 Git commit:        e8f1871b07
 Built:             Fri Dec 10 17:40:54 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.11
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.5
  Git commit:       f6348707ab
  Built:            Fri Dec 10 17:40:03 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.8
  GitCommit:        cde01e96ed658bc5050abe1bb601b4b4510ba7a2
 runc:
  Version:          1.0.3+dev.docker-20.10
  GitCommit:        e4bccdbd64361ac5ea8ba90bb8845add78f957a6
 docker-init:
  Version:          0.19.0de40ad007797e0dcd8b7126f27bb87401d224240
  GitCommit:
$ uname -a
Linux cordocker01.qa.****.be 5.10.84-flatcar #1 SMP Fri Dec 10 17:33:00 -00 2021 x86_64 Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz GenuineIntel GNU/Linux

Logs:
$ docker logs weave
Don't think it is possible to get logs from a docker plugin

Network:
$ ip route
default via <IP_ADDRESS> dev ens192 proto static
<IP_ADDRESS>/16 dev ens192 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/16 dev docker0 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/16 dev docker_gwbridge proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/25 dev ens256 proto kernel scope link src <IP_ADDRESS>

$ ip -4 -o addr
1: lo    inet <IP_ADDRESS>/8 scope host lo\       valid_lft forever preferred_lft forever
2: ens192    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global ens192\       valid_lft forever preferred_lft forever
3: ens256    inet <IP_ADDRESS>/25 brd <IP_ADDRESS> scope global ens256\       valid_lft forever preferred_lft forever
11: docker0    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global docker0\       valid_lft forever preferred_lft forever
12: docker_gwbridge    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global docker_gwbridge\       valid_lft forever preferred_lft forever

If you require anymore information, just give us a sign and we'll see what we can do
Thank you!

Hello
Has anybody been able to look at this issue.
This week it has happened over 3 times in each environment causing us to have to uninstall and reinstall the plugin after which it works again. It's very weird that traffic is blocked between containers when using this plugin.
All help is greatly appreciated!
Thank you!

Hello
Has anybody been able to look at this issue. This week it has happened over 3 times in each environment causing us to have to uninstall and reinstall the plugin after which it works again. It's very weird that traffic is blocked between containers when using this plugin.
All help is greatly appreciated!
Thank you!

Hi @JensVD,
First off, I am not part of the Weaveworks team, ok? Just a fellow dev trying to help out.
So...I've experience a similar issue recently. At first, services and containers deployed fine, and could communicate, and after a while they lost communications to each other. Turns out the problem happened when we scaled or updated a service, or one of its containers crashed and were brought back up by Swarm. They would come back up with an out-of-sync IP address. E.g.: when lookup up at docker network inspect , it states container A resolves to <IP_ADDRESS>, but at Swarms DNS it was resolving to something else, usually one number higher, i.e. <IP_ADDRESS>.
I figured the problem was being caused by the use of the --attachable flag when creating the network with the weaveworks/net-plugin driver. Just don't use --attachable and it should be fine. I don't know exactly why that happens, perhaps it's a bug, or simply it is so by design, I don't know.
In addition to that, depending on the version of your Docker Engine, you may or may not have to use a template network. When I started my project, I was on Docker Engine 19. Back then, in order for Weavenet to work properly, I had to declare a template network on each node, like this:
docker network create --config-only --subnet <IP_ADDRESS>/12 --driver weaveworks/net-plugin:2.8.1 --gateway <IP_ADDRESS> myTemplateNetwork
And only then create the actual network on the master node:
docker network create --config-from myTemplateNetwork --scope swarm myNetwork
Ever since I upgraded to Docker Engine 20+, not only I don't have to use the template, but also it won't even work even if I try to use it. But I can simply skip that part and define everything in the actual network without a template, and it works like a charm.
Hope I've been able to help.
PS: It is also a good thing to check the output of "weave report". That's the best way to find out what might be going wrong with your weave service. Also, be sure to allow the TCP port 6783 on your firewall.
Cheers!


Get-UserBriefingConfig not being replaced

Hello, I'm a writer for the Workplace Analytics & MyAnalytics products. I've received word from one of my PMs that there is an error on this page (https://docs.microsoft.com/en-us/powershell/module/exchange/get-userbriefingconfig?view=exchange-ps). He said that we need to remove the Note near the top of the page that states "This cmdlet is being replaced by the Get-MyAnalyticsFeatureConfig cmdlet."
If you need more info from this PM, you can reach him at<EMAIL_ADDRESS>Thank you,

Paul Schafer<EMAIL_ADDRESS>

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

ID: 90ba71df-1342-b487-af8b-b95780cd01de
Version Independent ID: a373b836-a5e6-4755-eb9f-df4cdddd8026
Content: Get-UserBriefingConfig (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/Get-UserBriefingConfig.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@paul9955, if you have a GitHub account (which you do, because you submitted this issue), then you can remove the offending text. Editing directly on the web is super simple (click the Edit pencil on the topic on docs, then click the Edit pencil again on the topic on GitHub). This is all explained here: https://github.com/MicrosoftDocs/office-docs-powershell/blob/master/README.md#quickly-update-an-article-using-githubcom.
Also, you likely want to remove the same offending text from the Set-UserBriefingConfig topic.

@paul9955, if you have a GitHub account (which you do, because you submitted this issue), then you can remove the offending text. Editing directly on the web is super simple (click the Edit pencil on the topic on docs, then click the Edit pencil again on the topic on GitHub). This is all explained here: https://github.com/MicrosoftDocs/office-docs-powershell/blob/master/README.md#quickly-update-an-article-using-githubcom.
Also, you likely want to remove the same offending text from the Set-UserBriefingConfig topic.

Thank you Chris, I'll give that a try!

Thank you Chris, I'll give that a try!

@chrisda Thank you very much for sharing this explanation. @paul9955 Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Set the function attribute for indicator and use AVG function to be t…

…he default value.

Coverage decreased (-0.008%) to 14.169% when pulling 926534bbe82206cee3d8e5b81838f7aa9c9eaa04 on peng-yongsheng:fixed/bugs into 474b25e768bf710395f7e84654eecef04e2b9510 on apache:master.


Build Multi-Arch Images

What this PR does / why we need it:
This PR builds arm64 binaries for Linux and Darwin.
Additionally, the the CI pipeline publishes multi-arch images with support for linux/amd64 and linux/arm64 now.
Which issue(s) this PR fixes:
Fixes #280
Special notes for your reviewer:
If I understood .ci/update-release.py script correctly the new binaries should be added to the release automatically.
Release note:

Docforge release includes docforge binaries for `arm64` architecture on `Linux` and `Darwin` now.
Docker images are published with multi-arch support for `linux/amd64` and `linux/arm64` now.

/cc @Kristian-ZH


How to configure to always offer src/path/to/file before lib/path/to/file

When I type file, fzf rightly suggests both src/path/to/file and lib/path/to/file. However, the latter is always auto-selected, while the former is almost always the file I need to edit. Is there a way to make fzf always promote src ahead of lib? Thanks.

Both matches will have the same score, so fzf will simply point to the one that came before the other.
fzf --query file << EOF
src/path/to/file
lib/path/to/file
EOF

fzf --query file << EOF
lib/path/to/file
src/path/to/file
EOF

What you can do is to preprocess the input list based on your preferences before feeding it to fzf.


release: fetch aws lambda zip file from a google storage bucket

What

Reenable the stages from the AWS publishing
Disable the stages until the AWS publishing
Override the release version to help with the debugging.
Fetch lambda zip file from the google storage bucket

Follow ups

Reenable the disables stages
Remove the env variables with the release version
Try again from scratch

Release pipeline, so it's not executed as part of the main pipeline, so we can proceed with the merge to test this out

:grey_exclamation: Build Aborted

There is a new build on-going so the previous on-going builds have been aborted.

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-03-22T11:11:37.453+0000

Duration: 16 min 1 sec

Steps errors
Expand to view the steps failures

mvn install

Took 2 min 29 sec . View more details here
Description: ./mvnw clean install -DskipTests=true -Dmaven.javadoc.skip=true

mvn install

Took 4 min 4 sec . View more details here
Description: ./mvnw clean install -DskipTests=true -Dmaven.javadoc.skip=true

Error signal

Took 0 min 0 sec . View more details here
Description: untar: step failed with error null

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run benchmark tests : Run the benchmark tests.

run jdk compatibility tests : Run the JDK Compatibility tests.

run integration tests : Run the Agent Integration tests.

run end-to-end tests : Run the APM-ITs.

run windows tests : Build & tests on windows.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


Bug on TagValidator

When editing a question, always error occurs validating the tags even when nothing is changed in them. (guj.com.br)

I think the problem is the regular expression validation.
tags.sanitizer.regex = [a-zA-Z0-9-]

https://github.com/caelum/mamute/blob/48321d522612a24a07c53691a15fab4058b2a3a0/src/main/resources/mamute.properties#L18
When does the replace, it does not remove the commas of the tags, so it falls in the exception.
https://github.com/caelum/mamute/blob/1d62cafe0037dfa9174845346e47b0d286f173e9/src/main/java/org/mamute/validators/TagsValidator.java#L39
Apparently the bug appeared in this commit: https://github.com/caelum/mamute/commit/30ede66930e2b03e163d606cb77ea03c8a943616
Or can also be in TagsSplitter.

The problem actually is on the javascript. Right now the char that split tags is configurable through mamute.properties (tags.splitter.regex and tags.splitter.char), but the jquery plugin that we use for the tags input widget works only with ',' char to split tags. I guess this is broken since https://github.com/caelum/mamute/commit/5ba6d75d61886ce00f73d78d9a121f0e65729647
I think we would need to customise this plugin to make it configurable. As a quick workaround we could simply remove these two properties and force all users to use ',' as the separator of tags. I think this won't be a problem since guj.com.br should be only site using this configuration.

guj.com.br is using ' ' (blank space) separator.

that makes more sense than my patch.  but could you please look at it (below)?   the issue that i was seeing is that the first submit of a new question gets "tag not found" error, even when env.supports("feature.tags.add.anyone").  then i submit a second time and it works (hence your solution makes more sense).  but can you explain why the patch below is incorrect?
diff --git a/src/main/java/org/mamute/validators/TagsValidator.java b/src/main/java/org/mamute/validators/TagsValidator.java
index 4eec8ae..6769ffe 100644
--- a/src/main/java/org/mamute/validators/TagsValidator.java
+++ b/src/main/java/org/mamute/validators/TagsValidator.java
@@ -39,7 +39,7 @@ public class TagsValidator {
String replace = name.replaceAll(env.get("tags.sanitizer.regex"), "");
if (replace.length() != 0) {
validator.add(messageFactory.build("error", "tag.errors.illegal_char", name, replace));

                  } else if (!isPresent(name, found)) {

                  } else if (!isPresent(name, found) && !env.supports("feature.tags.add.anyone")) {
                          validator.add(messageFactory.build("error", "tag.errors.doesnt_exist", name));
                  }
          }


Number of modes calculation

I have a questions about these lines in calculator_base:
    def get_ells(self):
        return np.unique(np.geomspace(2, 2000, 128).astype(int)).astype(float)

    def get_dlog_ell(self):
        return np.log(2000/2)/128

Is the second function consistent with the first?  If the first function just returned np.geomspace(2, 2000, 128) it would be close (but should be /127 instead of /128?)
However, with the rounding to the nearest integer, values of dlog_ell are non-uniform and quite a bit larger at low ell:
ells = np.unique(np.geomspace(2, 2000, 128).astype(int)).astype(float)
dlog_ell = np.gradient(ells)/ells
plt.plot(ells, dlog_ell, 'r.')
plt.axhline(np.log(2000/2)/127)

Since dlog_ell is used to calculate the number of modes per ell, which feeds directly into the final chisq calculation, are we perhaps downweighting ell < 10 too much?

You're absolutely right. I coded that up too quickly. Will fix ASAP

You're absolutely right. I coded that up too quickly. Will fix ASAP

@dkirkby the number of modes calculation should be correct now. Thanks for raising this

@dkirkby the number of modes calculation should be correct now. Thanks for raising this

After the fix in #21, the relative chisq weights at low ell look good:

However, the NEW/OLD ratio at high ell is around 5 instead of 1.  Just checking that this is intended, since it increases the chisq values quite a bit (from 7.4 to 20.5 for the Limber approx).

After the fix in #21, the relative chisq weights at low ell look good:

However, the NEW/OLD ratio at high ell is around 5 instead of 1.  Just checking that this is intended, since it increases the chisq values quite a bit (from 7.4 to 20.5 for the Limber approx).

That plot is:
T = n5k.N5KCalculatorTester('tests/config_tester.yml')
T.setup()
dlog_ell = np.log(2000/2)/128 # was T.get_dlog_ell()
oldmodes = (T.ls+0.5) * T.fsky * dlog_ell * T.ls
newmodes = T.get_nmodes()
plt.plot(T.ls, newmodes / oldmodes, '.')
plt.axhline(5.2, c='r', ls='--')

That plot is:
T = n5k.N5KCalculatorTester('tests/config_tester.yml')
T.setup()
dlog_ell = np.log(2000/2)/128 # was T.get_dlog_ell()
oldmodes = (T.ls+0.5) * T.fsky * dlog_ell * T.ls
newmodes = T.get_nmodes()
plt.plot(T.ls, newmodes / oldmodes, '.')
plt.axhline(5.2, c='r', ls='--')

ah, right, but newmodes is missing the fsky factor, right?

ah, right, but newmodes is missing the fsky factor, right?

(there is a missing factor of 1/2 in the new calculation which I missed -- gonna fix that now -- but I think the extra factor is due to fsky)

(there is a missing factor of 1/2 in the new calculation which I missed -- gonna fix that now -- but I think the extra factor is due to fsky)

Yes, you're right, I took the method name too literally :-)  With fsky included, there is just a factor of 2 discrepancy.

Yes, you're right, I took the method name too literally :-)  With fsky included, there is just a factor of 2 discrepancy.

Perhaps include fsky in get_nmodes() or rename to get_nmodes_allsky()?

Perhaps include fsky in get_nmodes() or rename to get_nmodes_allsky()?

OK, I'll reopen until we fix this (in #23)

OK, I'll reopen until we fix this (in #23)


[BUG] Xp obelisk dupe of experience

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
"Retrieve buttons" dont remove xp when pressed
Expected Behavior
When pressed to pickup some xp it need to remove the amount
Steps To Reproduce

obtain xp
place xp obelisk
put all xp inside xp obelisk
press a button like "retrieve all levels of xp"
look inside xp obelisk or on vanilla xp bar and see that xp still duplicated

Environment
- OS: Windows 10
- Java version: 17.0.8
- Minecraft version: (Forge) 1.20.1
- Version: 6.0.21-alpha

Anything else?
after placed: 0 levels on xp bar

after clicked: all levels on xp bar and same amount on xp obelisk

[modlist (custom) , maybe can be useful to replicate or not]
Exploration Fabrique-1.2.zip

I have added measures for this in #547 which rewrites how the transactions between the BE and player happens.
Keep open till that is merged and in not reproducible anymore.

6.0.22-alpha has now been released, please let us know if this still happens, thanks!

6.0.22-alpha has now been released, please let us know if this still happens, thanks!
[edit. I have try to recreate on a new wolrd due the crash and I have found that was caused only when xp was pulled]
Now if used without "pull/push" it work perfectly , when added like a tank on top with a liquid xp (from mod cyclic) it lock to pickup xp from the gui


feat(dsp): transfer suspension

What this PR changes/adds
First part of the "suspension" feature, particularly, implements a way to suspend a transfer, but not a way to "restart" it.
The behavior is documented in the TransferStreamingEndToEndTest.
The suspension of a transfer is possible through a /suspend endpoint on the transferprocesses management endpoint that will change the status to SUSPENDING
The manager will take care to send the message to the counter part. The data flow will be actually stopped by the provider.
For the data-plane, the suspension is not different from a termination.
The implementation is based on the data-plane-signaling feature, there is no point to make it work with the deprecated flow controllers.
Why it does that
dsp completion
Further notes

refactored streaming e2e tests to use a testcontainers kafka instance

Linked Issue(s)
Part of #3350
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

What this PR changes/adds
First part of the "suspension" feature, particularly, implements a way to suspend a transfer, but not a way to "restart" it. The behavior is documented in the TransferStreamingEndToEndTest.
The suspension of a transfer is possible through a /suspend endpoint on the transferprocesses management endpoint that will change the status to SUSPENDING The manager will take care to send the message to the counter part. The data flow will be actually stopped by the provider. For the data-plane, the suspension is not different from a termination.

With data plane signaling, the suspension should be distinguished from termination. For example, a suspension may pause a topic/queue/channel in a messaging system while a termination will potentially remove it.

What this PR changes/adds
First part of the "suspension" feature, particularly, implements a way to suspend a transfer, but not a way to "restart" it. The behavior is documented in the TransferStreamingEndToEndTest.
The suspension of a transfer is possible through a /suspend endpoint on the transferprocesses management endpoint that will change the status to SUSPENDING The manager will take care to send the message to the counter part. The data flow will be actually stopped by the provider. For the data-plane, the suspension is not different from a termination.

With data plane signaling, the suspension should be distinguished from termination. For example, a suspension may pause a topic/queue/channel in a messaging system while a termination will potentially remove it.

yes, maybe I didn't explain it correctly, the actual "transfer" (understood as source-to-sink transfer) is terminated, but the DataFlow status will become SUSPENDED and it will remain alive in the DataPlaneManager


Issue #1007 - Enable simple CORS

Enable permissive CORS to support in-browser AWS JS SDK

Coverage decreased (-0.2%) to 92.766% when pulling 28d68bfa92e8af41be12c27e365bae030b4b38c5 on yzach:master into 66dafc6679e979c8ad102c0a782d9731179945c6 on spulec:master.

Coverage decreased (-0.2%) to 92.766% when pulling 28d68bfa92e8af41be12c27e365bae030b4b38c5 on yzach:master into 66dafc6679e979c8ad102c0a782d9731179945c6 on spulec:master.

Travis says `ModuleNotFoundError: No module named 'flask_cors'
Fix tests and i'll merge

This has now been implemented by #3316, so I'll close this one.


Python java examples page fixes

See: https://trello.com/c/afGMBCvP/50-remove-onlyowned-docstring-from-omero-python-examples-page
and https://trello.com/c/0q8yyo3E/71-java-training-examples-link-needs-to-be-added-to-java-bindings-page
Added Java MapAnnotation example from https://github.com/openmicroscopy/openmicroscopy/pull/5601

Can you add crossreferences to the Map Annotation example to developers/Model/StructuredAnnotations.rst and developers/Model/KeyValuePairs.rst please?

@hflynn Links added.

Changes look good. Looks good to merge, according to me.

java example PR has now been merged


GCP label naming style error on pulumiLabels.% after upgrading to v7.2.1

What happened?
After upgrading from Pulumi 6.67.0 to 7.2.1, we aren't able to deploy our Cloud Run services anymore. This is the error we're getting:
At least one label does not conform to GCP naming style. Label key 'pulumiLabels.%' violates format constraints. The key must start with a lowercase character, can only contain lowercase letters, numeric characters, underscores and dashes. The key can be at most 63 characters long. International characters are allowed.
Any ideas how to solve this?
Example

Create a Cloud Run service with Pulumi 6.67.0
Upgrade to 7.2.1
run pulumi up

Output of pulumi about
➜  pulumi pulumi about
CLI
Version      3.92.0
Go Version   go1.21.3
Go Compiler  gc

Plugins
NAME    VERSION
aiven   6.7.2
gcp     7.2.1
nodejs  unknown

Host
OS       darwin
Version  13.0.1
Arch     arm64

This project is written in nodejs: executable='/Users/mroloux/.nvm/versions/node/v18.13.0/bin/node' version='v18.13.0'

Backend
Name           pulumi.com
URL            https://app.pulumi.com/mroloux
User           mroloux
Organizations  mroloux, seatsio
Token type     personal

Dependencies:
NAME            VERSION
@pulumi/aiven   6.7.2
@pulumi/gcp     7.2.1
@pulumi/pulumi  3.94.2
@types/node     20.10.3

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @mroloux. I'm really sorry to hear that. Can you please post a Pulumi Program that reproduces this bug?

I am also getting this error where I wasn't a few days ago with the same config. Do you know what label is causing this?
package main

import (
	"github.com/pulumi/pulumi-docker/sdk/v3/go/docker"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/cloudrun"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		projectID := "projectId"
		region := "region"
		appName := "appname"
		garPublishAddress := pulumi.Sprintf("%s-docker.pkg.dev/%s/%s/api", region, projectID, appName)

		// Build and publish the Docker image for the Go application
		appImage, err := docker.NewImage(ctx, appName, &docker.ImageArgs{
			Registry:  docker.ImageRegistryArgs{},
			ImageName: garPublishAddress,
			Build: &docker.DockerBuildArgs{
				Context:    pulumi.String("./"),
				Dockerfile: pulumi.String("./Dockerfile"),
			}})
		if err != nil {
			return err
		}

		// Deploy the Docker image to Cloud Run
		_, err = cloudrun.NewService(ctx, appName, &cloudrun.ServiceArgs{
			AutogenerateRevisionName: pulumi.Bool(true),
			Location:                 pulumi.String(region),
			Name:                     pulumi.String(appName),
			Project:                  pulumi.String(projectID),
			Template: &cloudrun.ServiceTemplateArgs{
				Spec: &cloudrun.ServiceTemplateSpecArgs{
					Containers: cloudrun.ServiceTemplateSpecContainerArray{
						&cloudrun.ServiceTemplateSpecContainerArgs{
							Image: appImage.ImageName,
							Ports: cloudrun.ServiceTemplateSpecContainerPortArray{
								&cloudrun.ServiceTemplateSpecContainerPortArgs{
									Name:          pulumi.String("http1"),
									ContainerPort: pulumi.Int(8080),
								},
							},
							Resources: &cloudrun.ServiceTemplateSpecContainerResourcesArgs{
								Limits: pulumi.StringMap(map[string]pulumi.StringInput{
									"cpu":    pulumi.String("1"),
									"memory": pulumi.String("512Mi"),
								}),
							},
						},
					},
				},
				Metadata: &cloudrun.ServiceTemplateMetadataArgs{
					Annotations: pulumi.StringMap(map[string]pulumi.StringInput{
						"run.googleapis.com/cloudsql-instances": pulumi.String("cloudsql-instance"),
					}),
				},
			},
			Traffics: cloudrun.ServiceTrafficArray{
				&cloudrun.ServiceTrafficArgs{
					Percent:        pulumi.Int(100),
					LatestRevision: pulumi.Bool(true),
				},
			},
		})

		if err != nil {
			return err
		}

		// Export the URL of the Cloud Run service
		ctx.Export("url", service.Statuses.Index(pulumi.Int(0)).Url())
		return nil
	})
}

Thanks for posting @adam-heat1. I'm still unable to repro. I have successfully deployed a cloud run service on v6.67.0 and upgraded to v7.2.1. This was the program I used:
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudrun"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() { pulumi.Run(Main) }

func Main(ctx *pulumi.Context) error {
	_, err := cloudrun.NewService(ctx, "default", &cloudrun.ServiceArgs{
		Location: pulumi.String("us-central1"),
		Template: &cloudrun.ServiceTemplateArgs{
			Spec: &cloudrun.ServiceTemplateSpecArgs{
				Containers: cloudrun.ServiceTemplateSpecContainerArray{
					&cloudrun.ServiceTemplateSpecContainerArgs{
						Image: pulumi.String("gcr.io/cloudrun/hello"),
					},
				},
			},
			Metadata: &cloudrun.ServiceTemplateMetadataArgs{
				Annotations: pulumi.StringMap(map[string]pulumi.StringInput{
					"run.googleapis.com/cloudsql-instances": pulumi.String("instance:aeoi:zoi"),
				}),
			},
		},
		Traffics: cloudrun.ServiceTrafficArray{
			&cloudrun.ServiceTrafficArgs{
				Percent:        pulumi.Int(100),
				LatestRevision: pulumi.Bool(true),
			},
		},
	})

	return err
}

Seems to work fine in v7.4.0

We experienced this issue when upgrading from 6.62.0 -> 7.5.0 on one service in a pre-production environment. We did not experience the issue in our development, non-production, or production environments.
We resolved the issue by deleting and recreating the service

I can confirm this issue is happening on 7.5.0
  gcp:cloudrun:Service ($serviceName):
    error: 1 error occurred:
        * updating urn:pulumi:staging::vigil::gcp:cloudrun/service:Service::$serviceName: 1 error occurred:
        * Error updating Service "locations/$region/namespaces/$project/services/$serviceName": googleapi: Error 400: metadata.labels: At least one label does not conform to GCP naming style. Label key 'pulumiLabels.%' violates format constraints. The key must start with a lowercase character, can only contain lowercase letters, numeric characters, underscores and dashes. The key can be at most 63 characters long. International characters are allowed.
    Details:
    [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "description": "At least one label does not conform to GCP naming style. Label key 'pulumiLabels.%' violates format constraints. The key must start with a lowercase character, can only contain lowercase letters, numeric characters, underscores and dashes. The key can be at most 63 characters long. International characters are allowed.",
            "field": "metadata.labels"
          }
        ]
      }
    ]

@dipasqualew Can you open a new issue with a repro? Are you saying that upgrading gcp 6.67.0 7.5.0 brakes on the repro I gave in https://github.com/pulumi/pulumi-gcp/issues/1387#issuecomment-1857494542?

We have continued to see this failure ~1 time a week on a random service deployment. I have been unable to create standalone reproducer.

@alexgartner-bc Are you seeing a rare but deterministic error, or a nondeterministic error?

@iwahbe I have the rare issue reliably, it just came up after simply adding a cloud run iam member to make a single service public
all my cloud run services now fail with:
...googleapi: Error 400: metadata.labels: At least one label does not conform to GCP naming style. Label key 'pulumiLabels.%' violates format constraints. The key must start with a lowercase character, can only contain lowercase letters, numeric characters, underscores and dashes. The key can be at most 63 characters long. International characters are allowed.
it's happening every time, and running a preview --diff only results in listing out my cloudrun services (with no changes) + the new member.  Before adding the iam member, i had re-deployed dozens of times
I can open an issue, but I don't have a clue how I created the problem in the first place

for what it's worth, i upgraded to the go gcp package 7.7.1 (via go get ./... in my pulumi directory)
still failed, but then did pulumi up --refresh and it worked
so, something funky going on
noticed in refresh mode it also created some things that I thought were already there (but maybe I was wrong)

I'm going to take another look at reproducing this bug.

@iwahbe Thanks!
I'm upgrading us to 7.9.0 right now and will update if I notice any change.

@jjhuff If you get in the stuck state again, I would love to see a copy of the stack's state before you tear it down.

@iwahbe I'm in this state at the moment, I got in to the funky state, then upgraded to 7.9.0 also and that didn't fix it.
happy to share the state file if you'd like, what's the best way to get it to you?

also, here's a non-stuck stack for the exact same code pulumi code (different env)
"outputs": {
                        "__meta": "{\"..redacted..\":{\"create\":1200000000000,\"delete\":1200000000000,\"update\":1200000000000},\"schema_version\":\"2\"}",
                        "autogenerateRevisionName": false,
                        "id": "locations/us-central1/namespaces/..redacted../services/..redacted..",
                        "location": "us-central1",
                        "metadata": {
                            "annotations": {},
                            "effectiveAnnotations": {
                                "run.googleapis.com/ingress": "all",
                                "run.googleapis.com/ingress-status": "all",
                                "run.googleapis.com/operation-id": "..redacted..",
                                "serving.knative.dev/creator": "..redacted..",
                                "serving.knative.dev/lastModifier": "..redacted.."
                            },
                            "effectiveLabels": {
                                "cloud.googleapis.com/location": "us-central1"
                            },
                            "generation": 10,
                            "labels": {},
                            "namespace": "..redacted..",
                            "pulumiLabels": {},
                            "resourceVersion": "AAYRc5YYcVE",
                            "selfLink": "/apis/serving.knative.dev/v1/namespaces/..redacted../services/..redacted..",
                            "uid": "..redacted.."
                        },
                        "name": "..redacted..",
                        "project": "..redacted..",

I have a pretty good idea of what is going wrong here. I'm working on a fix now.

@iwahbe Perfect timing! We hit this on our prod deploy this morning. Upgraded, and it deployed cleanly. Thanks!


Request: Autodispose subscriptions when disposing an IStreamStore instance.

Problem space
At the moment, when one disposes a stream store instance, subscriptions find out about this fact when they try to read the next page from the specified stream store instance. The end users using the IAllStreamSubscription SubscribeToAll(long? continueAfterPosition, AllStreamMessageReceived streamMessageReceived, AllSubscriptionDropped subscriptionDropped = null, HasCaughtUp hasCaughtUp = null, string name = null) part of the API to set up these subscriptions, get notified about this via the AllSubscriptionDropped callback, which has the following signature delegate void AllSubscriptionDropped(IAllStreamSubscription subscription, SubscriptionDroppedReason reason, Exception exception = null). The SubscriptionDroppedReason is StreamStoreError in this particular case, not Disposed, which is reserved for dropping the subscription itself (AFAICT). In order to figure out whether one should resubscribe, one has to inspect - next to the reason - the exception and figure out whether it is an ObjectDisposedException with an ObjectName property that matches the name of the specific IStreamStore implementation. It should go without saying that this is a bit leaky and difficult to figure out.
In essence, it should be clear and easy to figure out when resubscribing is appropriate and when it is not.
Solution space

IF a stream store were to track and dispose of its subscriptions, the SubscriptionDroppedReason could become Disposed again, since that is effectively what would be going on.
A simpler, short term solution might be to make the SubscriptionDroppedReason less ambiguous, namely:

  public enum SubscriptionDroppedReason
  {
    SubscriptionDisposed,
    StreamStoreDisposed,
    SubscriberError,
    StreamStoreError,
  }

I like. Thanks for writing this up @yreynhout

If I understand you right, when the store is disposed and it disposes of the subscriptions SubscriptionDroppedReason.Disposed is fine? You don't see a need for StreamStoreDisposed even when tracking is done?

Indeed, if tracking and auto dispose is done by the store, we don't need need the short term solution.

Whether the subscription is being disposed implicitly or explicitly seems less interesting.

Agreed. While trivial to do this now, I'll wait for a use case.


Allow passing of Slack API URL to App Constructor

Summary
If in testing phase and targeting an alternate Slack API URL, there is no way to pass this in
Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Misread #228 - this is a duplicate of that one, and that one has further benefits. Closing.


infeasibility fix and mccormick bound parameters

This PR includes the following:

a set of parameters generating the McCormick bounds that solved all 15-year WM problems with PTC & ITC
updated parameters in lower-level LP problems to improve feasibility
@HaleyRoss I reversed the repeat([[]], 24)... because I don't think it's working properly. When I was checking, for example, ipp.eta_L_vec, it has other vectors in addition to eta_L. Could you please look into that?

Merged in by hand.


Test: Relax assertions in ValidatorRecurringEnrollment

to hopefully make it less flakey.

So, some enrollments are not making it to the blocks and the validator is not enrolled for one or more block ?

So, some enrollments are not making it to the blocks and the validator is not enrolled for one or more block ?

Yep, it tests gaps in enrollment essentially.

Any way we can wait for enrollment propagation instead of working around it ? Similar to how we do it with TXs.

Any way we can wait for enrollment propagation instead of working around it ? Similar to how we do it with TXs.

I wouldnt say this is a workaround. This can happen in a real life scenario and what those assertions test still fully verifies our intented behaviour. Waiting for propagation sounds more like a workaround IMHO.


Good idea for EncodingStrategy/DecodingStrategy swagger json

Good idea for use keyEncodingStrategy for swagger. If use model in snake_case then swagger doesn't work? but if use camelCase swagger work. Maybe in future you could add support for other EncodingStrategy/DecodingStrategy

@gulivero1773 since 4.3.0 you can write
import SwiftOpenAPI

KeyEncodingStrategy.default = .convertToSnakeCase

also there is DateEncodingFormat


[Feature]: Re-Authenticate from CLI less

What area(s) will this request affect?
Theme, Running your code locally, Other
What type of change do you want to see?
New feature
Overview
I'm not sure it's really a feature, I just wanted to throw something out there for the maintainers.
In an 8-hour day, I have to re-authenticate at minimum, 4 times, sometimes more. It's not a deal breaker but it does get annoying, considering I work with the CLI every day. I'm not certain what is controlling authentication, but I've had it de-authenticate a session despite the dev never being stagnant.
Motivation
The 4th re-authentication today.

Hi @joncarr, are you using the latest version of the CLI? This was fixed a couple of releases ago. Please try with version 3.31.1 and let us know if it still happens to you :)

Hi @joncarr , I'm glad the solution proposed by my partner @isaacroldan has worked for you. This issue is now going to be closed. Please, open other issue in case you experience any problem related with this one or other topic.


Modularize networking-dependent components

See https://github.com/dusk-network/dusk-blockchain/pull/802#discussion_r546754391

This should include both the incoming as well as outgoing message processors. Ideally, when using Kadcast we should still just disseminate messages through the Gossip topic.


Introspect does not pull tables

What version of drizzle-orm are you using?
Latest
What version of drizzle-kit are you using?
0.19.12
Describe the Bug
I granted all permissions to a drizzle user like this
GRANT ALL PRIVILEGES ON SCHEMA public TO prisma;

But when I try to introspect with this connection string
postgresql://drizzle:[password]@db.[db_url].supabase.co:5432/postgres?searchpath=public

I get this
[✓] 0  tables fetched
[✓] 0  columns fetched
[✓] 12 enums fetched
[✓] 0  indexes fetched
[✓] 0  foreign keys fetched

It only fetches enums but no tables, I know there are tables and the user should have access to it
drizzle-kit v0.19.12
Expected behavior
Expected to see my tables pulled in
Environment & setup
Macos, supabase postgres database

I saw this happening to me today too on 0.19.13 with pg
I tested a few versions back to 0.19.0 and wasn't able to find a version that works.
Trying further back then that gives me an error about not running the latest version.

having the same problem as well, can't pull tables that have a schema. it just returns zero tables

it should be fixed in latest (starting from 0.21.0) version of drizzle-kit. If you still the the issue - feel free to reopen this ticket

I have just run into this issue with drizzle-kit 0.22.1. This is my first time using drizzle and I'm attempting to migrate a Prisma project using this guide https://orm.drizzle.team/learn/migrate/migrate-from-prisma
Running npx drizzle-kit introspect only pulls enums and no tables.


weathermap crash cannot enable anymore

I disabled weathermap a while ago while troubleshooting some poller overruns and just tried to re-enable.  fresh reset --hard to current and reconfigured with new path location for configs and output.
crash on first attempt to create a map.
2024-12-24 15:27:17 - CMDPHP ERRORS DETECTED - DISABLING PLUGIN 'weathermap'
2024-12-24 15:27:17 - PHP ERROR Backtrace: (CactiShutdownHandler())
2024-12-24 15:27:17 - ERROR PHP ERROR in Plugin 'weathermap': Uncaught Error: Found unconstructed IntlDateFormatter in /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php:1947 Stack trace: #0 /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php(1947): IntlDateFormatter->format() #1 /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php(2043): WeatherMap->{closure}() #2 [internal function]: WeatherMap->{closure}() #3 /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php(2045): preg_replace_callback() #4 /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php(2053): WeatherMap->strftime() #5 /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php(3646): WeatherMap->DrawTimestamp() #6 /var/www/html/cacti/plugins/weathermap/lib/poller-common.php(461): WeatherMap->DrawMap() #7 /var/www/html/cacti/plugins/weathermap/setup.php(1233): weathermap_run_maps() #8 /var/www/html/cacti/lib/plugins.php(243): weathermap_poller_bottom() #9 /var/www/html/cacti/lib/plugins.php(97): api_plugin_run_plugin_hook() #10 /var/www/html/cacti/poller.php(991): api_plugin_hook() #11 {main} thrown in file: /var/www/html/cacti/plugins/weathermap/lib/WeatherMap.class.php on line: 1947
2024-12-24 15:27:16 - POLLER: Poller[Main Poller] PID[261075] ERROR: Process being killed due to timeout! (weathermap, master, 0, Process 4073243, Time<PHONE_NUMBER>, Timeout 300, Timestamp<PHONE_NUMBER>)

intl is installed:
php-intl is already the newest version (2:8.3+95+ubuntu22.04.1+deb.sury.org+1).
that is about the extent of my php troubleshooting knowledge unfortunatly.
This can wait until after xmas  and new years!   Have a great holiday!

Don't use the development tag it's under heavy work and quite broken right now use the previous tag.

that works.  sorry i should have tried that first.

Glad you worked it out.  I'll get it fixed in the new year.


Documentation: Clarification of TYPO3 version

One thing I stumbled across: The project is getting version 11.x and it's working so far. Is functionality with v10 actually possible? If not, I would add something to the documentation at the beginning that it is currently still running under v11.
An adaptation to v10 would presumably mean that all examples etc. would have to be updated as well?

We do not have a version for 10 as we started with 11 right away. And also we have neither manpower nor funds to provide funtctionality for Version 10 right now. I think the composer.json clearly states so?

Here too: No problem ;-) I would then create a PR to add this note in the documentation.

I added the hint to #238, so I close this issue.


CLAMAV memory

im running the v7 mailserver on raspberry pi 4 on ubuntu 20.04. all seems fine except that using clamav increases the memory requirement by almost 1GB  ... does that sound about right to you?

Yes unfortunately, see FAQ. ClamAV reads the virus database into memory and it is almost 1G.


add alwaysInline option to always have closing tag inline

For a while I was switching to sublime when working with html because I couldn't find an html autocompletion package I liked, but I really like this one. My one suggestion would be to add an option to always add the closing tag inline. I decided to throw something together myself to see what you guys thought of it. This functionality isn't completely necessary, and really I could just adapt to use the current implementation, but I thought it's a nice-to-have feature and after using this change myself I thought I'd submit a PR for it.
Thanks for the awesome package!

This would fix #3 and #51.
Any chances to have this merged?

I'd also like to see this option. At the moment I have almost every tag in the always inline section due to adding a new line being so much easier than deleting 3.

I'm glad other people would use this!
For what it's worth, I've since adapted to use the default atom HTML snippets. It still doesn't put every closing tag inline, but it's easy to make your own snippets to override the package defaults. You'd just have to get used to skipping the < when typing the name of the tags.

@davidspiess @timlyo @AEgan With 0.20.0 you can use "*" for the Force Inline option to accomplish this. Sorry it took so long.

No problem, thanks for adding this! :+1:


Does smart card redirection work?

I need smart card redirection in order to use certificates for 2 factor auth.
This issue https://github.com/neutrinolabs/xrdp/issues/471 talks about support for pcsc, but the issue is still "Open" and doesn't really say if it's working.
Does pcsc support work?  How do I verify it's working?
thanks!

#963 should be working now

@johnarnold can you test?

To test
git clone --branch pcsc --recursive git://github.com/jsorg71/xrdp
Just build with no special configure options and compile and install.
get pcsc-tools installed if debian based.  Not sure what EL package is called.
Connect with mstsc and smart card and run pcsc_scan in session or whatever you smart card app is.

If you test it soon, we can ship it to the next release in December.

Let's ship it to the next March release. Maybe cannot be well tested.

it would be nice to get this in.  I think this release(December) will be what goes in Ubuntu 18.04 LTS

Good point. I'll also test it.

Testing the new code with Microsoft's RDP client (mstsc.exe), I can see the smart card reader on pcsc_scan and even identify the connected smart card:

https://gist.github.com/jsribeiro/e7b5af3110c45c66b08a97bc55854088

On this gist you can find the output for two different cards, using the same reader.
The pcsc_scan utility hangs at the end of the shown output, and it's necessary to do a Ctrl-C or kill the process.
The opensc-tool -l tool (which should list the smart card reader and smart card) just hangs when executing.
I'm using CentOS on the server. By the way, the package which contains pcsc_scan is also called pcsc-tools (on the EPEL repository).

By the way, using the old code (xrdp master branch), the behavior is similar with a few differences:

pcsc_scan doesn't hang after giving info on the smart cards (it cycles and reports future changes like card removal and insertion of different card);
opensc-tool -l doesn't hang and show correct card reader information (card reader name and card presence);
opensc-tool -n correctly identifies some cards (eg. "Cryptoflex 32K e-gate") but fails to identify others (eg. "Portuguese ID Card"), showing "Failed to connect to card: Internal error";

Summarizing, the old code wasn't working completely, but the new code seems to miss some of the things the old code was doing correctly.
Also, with the old code, the "Portuguese ID Card" application (QT app to use some card functionalities, link) can communicate with the card without apparent problems. With the new code, it doesn't even open (hangs at startup).

Looks like issues, let's not hold off release.  I can work on these issues and do another release later for just smart card improvements.

Sorry I had to disappear for a bit. I'm back.  What's next step?

Time's up for v0.9.5. We can make another release to be in time for Ubuntu 18.04 LTS.

Has this been resolved yet?

Not yet.

Excuse me. Is there any release information with smart card redirection support? Maybe in 1.0.0? :-). In April ?

My project has moved to a DevOps system that requires smart card authentication.  I work in a Linux VM, so I'm interested in this capability.  Looked at @jsorg71's fork which is now several version behind.  Haven't had luck getting a GNOME session to start with his version--probably a configuration issue.
The changes make a lot of sense, in particular exposing a socket for pcsc.  I can't find another workable solution to forwarding a smart card to a Linux VM at the moment.  Any chance this could get merged into the mainline soon?

@bazcoIndustries - we've looked into this a few times in the past, but at the moment we don't have the architecture sorted out correctly, in a way which will give us a maintainable solution. @zorgluf has done some more work on this (see #1825) which may be of interest to you.


Switch

#24 > #23
Story
As a developer developing the application, I want a form switch field named Switch, so that it can be used to capture date.
Description
A form switch field is a user interface (UI) element commonly used in forms, applications, and websites. It typically consists of a small rectangular or circular control that can be toggled between two states, usually "on" and "off" or "enabled" and "disabled," by clicking or tapping it.
Details
I'd like for you to implement a form switch field component, this field will capture the input as is without validation or any other processing.
In addition, this component should not accept any props instead it should derive the props from FieldContext #77.
Acceptance Criteria

Project builds with no warning

Definition of Done

#4

Sub Tasks

[ ] Unit tests written
[ ] Integration test passing
[ ] Storybook stories written
[ ] Code peer-reviewed
[ ] Tested on supported devices/browser
[ ] Any configuration changes documented

Linked issues

Relates to
Linking type that allows you to establish a relationship between two issues.

#24

Blocked By
Issues or tasks that are blocking the progress of the issue.

#77

@wycliffepeart I added a description


Poor Rendering Performance caused by CSS blur filter

Problem
UI rendering performance is very poor and there are a lot of dropped frames when scrolling the page.
Root Cause
This is happening because filter: blur CSS is used to create the Aurora effect.
filter: blur filter is extremely taxing on CPU/GPU and should be avoided for creating Aurora effect ( because that requires applying the blur on a large element with a large blur radius )
If we remove the filter:blur CSS - rendering issues get resolved
See the attached video:
https://user-images.githubusercontent.com/22043396/205436880-744b5634-27d2-4b63-8ee1-d5e125648720.mp4
Solution
Instead of creating the blur at runtime with CSS - just use an image
See https://cosmos.network/ for example

Tested on
Hardware: Macbook Pro 16" (2021) (M1 Pro)
Browser: Chrome 107

good find, would happily accept a PR that solves this while keeping the visuals the same / compatibly similar

@jnsdls I created an aurora image using Figma and a react sandbox to try it out
Check out this Sandbox ( Code )
What do you think?

@MananTank looks good! my only concern would be the possibility of the image "popping in" but it seems like you've largely solved that. I also think depending on how large the aurora is we may be able to prioritize the loading of it / embed it as base64 if absolutely necessary (or mark it as needing to be pre-loaded at least)
do you want to take a stab at making a PR to replace the css blur gradient with your aurora png approach?

@jnsdls
In the sandbox, the Image loading is quite slow because the request is sent after JS execution. I wanted to preload the image in the sandbox but I couldn't do it because Codesandbox changes the URL of the image request sent via JS compared to the one preloaded in the HTML file. The Image would be loaded much earlier in the Thirdweb's Next.js app. Also, the image I have used is not perfect - it's quite large (~500kB) and should be optimized to improve image loading
I have created an optimized image. If you check the sandbox's public folder - there are two versions of the image - a WebP (~100kB) and a PNG (~500kB). WebP looks almost as good as PNG one but it has some artifacts of compression (only visible when you look really closely).
I used the Google Chrome team's Squoosh App to optimize the PNG to WebP but I'm not 100% satisfied with the output so I used the PNG one for the demo sandbox. I would like to try out a few more tools to optimize the PNG size without compromising the quality. I don't trust Nextjs's Image component to do that properly for a gradient image, So we will have to do it manually.
Once we have an optimized image, We can start with the preloading approach, it should load the image super quickly (and also try the fade-in animation on the image like the sandbox to gracefully load the image) but if that does not feel good and we want to start rendering the UI with the image already there, then we can try out the base64 encoding approach and compare which feels the best ( and also test its impact on page load perf metrics like FCP and LCP )

I'm happy to do a PR for this - but I will be quite busy this week and may not be able to work on it this week. If you are fine with that, you can leave this one to me 👍
(However, If you do decide to implement it yourself, Make sure to add overflow:hidden style to your App container element (not the body!) to make sure there are no horizontal and vertical overflows caused by aurora images - refer to the sandbox for example )

All sounds good, will see if we get to it this week but likely won't so unless otherwise noted this one is all yours! 🎉

Code

I lied, merged it just now - but there's more to do on perf side for sure

@jnsdls 🚨
The Aurora blur appears to be much smaller than it used to be - It looks a bit weird now

Before: https://thirdweb-n9d5q39ri.thirdweb-preview.com/
After: https://thirdweb-ipuya0hks.thirdweb-preview.com/

fixed, thx - it does need a max width otherwise it ends up wayy to big on large resolutions but 66vw was too small

@jnsdls I think the current max-width:80vw is also a bit too small for regular desktop screen size. I would suggest doing the same thing that I have done in the sandbox and avoid setting max-widths altogether.

Put the image inside the section (element with max-width)
use width:200% + max-width:none on the image ( you can use continue using 400% for mobile/tablet )

This will make it so the image has the proper size (200% of section width) no matter what the device-width
See the below video for Example:
https://user-images.githubusercontent.com/22043396/206031930-a8be1cb9-cdc0-4f40-aedd-54bba0f1fc29.mp4


move HTTP::Server::Context change to each handler

I did this so each handler is independent of each other.  This will
allow the handler to be used in other frameworks.

I like this.
On May 18, 2017 7:49 PM, "Dru Jensen"<EMAIL_ADDRESS>wrote:

Merged #50 https://github.com/kemalyst/kemalyst/pull/50.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kemalyst/kemalyst/pull/50#event-1088818208, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHmpLUhq9kjyNNMu902aysZWgJxsVVBks5r7PUqgaJpZM4Nfhtj
.


Drop shuts down seemingly at random

It rarely ever happens, but after extended periods of time, Drop will quit seemingly at random.  No error message is ever displayed, it just immediately exits.
Can't find a link yet, but since there is no error message, it is probably a bug with Love2D itself.  It may have to do with decoders/queueable audio sources or obtaining audio samples.

I've been using Drop again, it's been open for long long periods of time, it's been a couple months, and this bug hasn't appeared once.
Either my recent changes have fixed the issue or, more likely, LÖVE has fixed whatever the issue was and the recent update to the included LÖVE binary has removed the bug.


docs: Update sqlite name on slides

Update the name of the sqlite file from db.sqlite to movie-quotes.sqlite.

Once I did the workshop again from scratch, the sql file had the name db.sqlite. I do not know how or why how it named the file differently the first time.


multiple translation unit safety

If the input file contains non-inlined declaration the resulting header will cause ODR violations if included in multiple files.
As we are still before the preprocessing step we don't have valid C++ yet so parsing and adding the inline keywords where needed could work but the parser will likely fail.
If we had something like scoped qualifiers (inline { ... }) that would be trivial to fix.
Putting all the root level code (not included) in an anonymous namespace was also considered but won't do.
Method definitions after declarations won't compile if put in an anonymous namespace.

Looked around for solutions found by other tools.
One of the simplest solution implementation wise (but the worse for the end user) is the use of implicitly declared macros.
Really dislike this option


Duplicate list of fields

I'm working into a task about the creation of Virtual Foreign Keys (in my case, working on MariaDB and MyISAM Engine, so I cannot create logical FKs).
During the job, I notice the field list always load duplicated (nothing that a simple F5 resolve, but is good to check it).

I notice that happen when I go to ER Diagram (to check the Virtual FK creation) and back to properties window (or when I load another table)

Thanks for the bug report

I can't reproduce this anymore.
Do you have any additional details/steps to reproduce?

Basically

Select a table
Properties / Virtual / Add
Go to ERDiagram
All fields will be listed duplicated (if you back to Properties / Columns will be duplicated too)

Still cannot reproduce it.
@mcunha98 is it still actual for you?

@uslss I did the steps again, everything works fine now.
DBeaver version  <IP_ADDRESS>006211844


Clarify documentation for CommandLine.unsafeArgv re: the trailing nil. (#58484)

The documentation for CommandLine.unsafeArgv is ambiguous about a trailing nil value. There is one, as is expected by C. We should say so.

Resolves #58484.

@swift-ci please smoke test


inner function can not reimplement bug

Go version
all
Output of go env in your module/workspace:
common

What did you do?
write:
func Len(a any) uint64 {
return uint64(len(a))
}
What did you see happen?
compile error
What did you expect to see?
compile ok:
func Len(a any) uint64 {
return uint64(len(a))
}

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions


Add test-idp-ssl role

@mrvanes I've renamed this role to something that is less confusing (hopefully), and cleaned up the config a bit.
It now basically works, except that not all attributes are gathered from the x509 cert correctly.  The new IdP gives:

While the old one gives:

So please fix:

[ ] uid
[ ] subject-id (NB: is also broken in the old IdP, should be sha256(<uid>)@<sho>
[ ] mail
[ ] eppn

Subject-id is fixed
https://github.com/SURFscz/remoteuserssl/commit/c50150795a0d6bed246167c0452d2cad03018d9e
Can't reproduce uid/mail/eppn problem. My DN correctly contains emailAddress (case-sensitive):
emailAddress=martin.vanes@surf.nl,CN=Martin van Es,C=NL,ST=Utrecht,street=Moreelsepark 48,O=SURF B.V.,postalCode=3511 EP
https://github.com/SURFscz/remoteuserssl/blob/main/src/Auth/Source/RemoteUserSSL.php#L81

https://github.com/SURFscz/remoteuserssl/commit/ec3cf66d00e5d8a617e8837fb64523301c18fbe0


Cherry-pick #108 into v3.0.x

This cherry-picks the following into v3.0.x branch:

#108

Codecov Report

Merging #109 (3071c2a) into v3.0.x (3316cba) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           v3.0.x     #109      +/-   ##
==========================================
- Coverage   37.65%   37.61%   -0.04%
==========================================
  Files          32       32
  Lines        2969     2972       +3
==========================================
  Hits         1118     1118
- Misses       1787     1790       +3
  Partials       64       64

Impacted Files
Coverage Δ

cmd/provisioner-localpv/app/start.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Inconsistent behavior related to LIMIT and pipe

As mentioned in this issue, using LIMIT with or without pipe returns the same result, then why not here:

The first one should be:
Match ... | Order ... | Limit ...


[HOLD #11768] Wrong URL when new chat is selected from new chat list - Reported by @aneequeahmad

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open web app and see the opened chat and its URL.
Click on + icon in LHN > new chat.
Select any chat in the New Chat list.
See the URL and opened chat.
Refresh the page.

Expected Result:
Chat URL should be of new chat opened.
Actual Result:
Chat URL is of old chat and not of new chat opened.
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.99-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/190953346-3053daa4-1cca-44fc-8bc8-c0e9e5c07b1c.mov
Expensify/Expensify Issue URL:
Issue reported by: @aneequeahmad
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1661801189415899
View all open jobs on GitHub

Oh interesting! Sending to eng for a second opinion on getting this job in Upwork - seems worth it

I reproduced this, the problem here is that when you create a new chat, the URL does not get updated and the one with the previous chat stays.

@arielgreen or @NikkiWines
Busy with other items, also limited availability for next couple weeks So un-assigning this one. Can you reassign this to another C+ by reapplying label.
Thanks!

@parasharrajat can you review https://github.com/Expensify/App/issues/11092#issuecomment-1257032680 please?

Still on hold cc @puneetlath correct?

Yes, still on hold. Feel free to assign any navigation issues over to me and @JmillsExpensify.

Yes, thanks! Updated the [Hold] for clarity and also linked this issue to the main tracking initiative.

Check the linked issue for the latest.

Still holding.

Still held as we go through the design process.

Still held on navigation re-write.

Same same

Still on hold.

Still on hold

Coming off hold very soon!

Working on testing this week.

Still trying to make time. Low priority.

@aneequeahmad Same here. Please retest your reproduction steps above and confirm that you receive the expected result. At that point we can confirm that it's fixed and pay you for reporting.

Same as above.

@JmillsExpensify Tested the reproduction steps. Results are as expected. Video is attached for verification
https://github.com/Expensify/App/assets/36359331/b04b0f63-af50-449f-aacd-5b7d8cd1d97a

@JmillsExpensify please verify the video attached above and lets close this issue. Thanks

Thanks for closing the loop. I've sent the offer, please prioritize accepting it so we can get this closed out.

@JmillsExpensify accepted the offer. Thanks

Thanks, all paid out.


Incorrect smbus methods

Currently LinuxI2CDevice::smbus_process_block calls ffi::i2c_smbus_write_i2c_block_data instead of the real smbus2 ffi method (which doesn't seem to be implemented in ffi.rs), and LinuxI2CDevice::smbus_write_i2c_block_data doesn't exist as one would expect it to.
smbus_process_block presumably needs to be renamed to smbus_write_i2c_block_data, and LinuxI2CDevice::smbus_process_block added with the proper signature (returning a vec) plus i2c_smbus_process_call_block or similar added to the ffi for it to use.

Thanks for filing the issue @arcnmx, would you be willing to put together a PR for this?  I think what you have proposed seems reasonable.


Test factories.md: Consistent pipeline

As requested in https://github.com/elixir-ecto/ecto/pull/3322 and discussed in https://github.com/elixir-ecto/ecto/pull/3321#issuecomment-640037664.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


support assigning non-hns vpci based VFs via ncproxy

Signed-off-by: Kathryn Baldauf<EMAIL_ADDRESS>

Can you please add a commit description?


Enforce tags count limit

In my project I needed to force the user to enter up to a certain amount of tags and disable the input after that. After doing some research I could not find a way to that with this directive so I implemented something like this:
Added a new limit property to the directive's controller
limit: [Number, -1]

added a new method call to the events tag-added and tag-removed
.on('tag-added tag-removed', function () {
       ngModelCtrl.$setViewValue(scope.tags);
       processLimitOption();
})

and this is the implementation of the processLimitOption method
function processLimitOption() {
     if (scope.options.limit > 0 && scope.tags.length === scope.options.limit) {
           element.find('input').hide();
     } else {
           element.find('input').show();
     }
}

do you think you can add this feature to your control? I did not create a pull request because I still do not understand the full implementation of it but this is working fine for my needs.
Thanks for sharing!

Can this issue be closed?

Yes #297 covers it. Thank you very much!


Upgrade to Aries JAX RS Whiteboard 1.0.10

It seems we have a feature installation issue with this update. I'm investigating.


CrossEncoderModule with rerank API

This module is closely related to EmbeddingModule.
Cross-encoder models use Q and A pairs and are trained return a relevance score for rank(). The existing rerank APIs in EmbeddingModule had to encode Q and A separately and use cosine similarity as a score. So the API is the same, but the results are supposed to be better (and slower).
Cross-encoder models do not support returning embedding vectors or sentence-similarity.
Support for the existing tokenization and model_info endpoints was also added.

Thanks for the reviews!
Forgot to mention regarding the removal of ipex, etc code...  Part of that I was keeping to get MPS support as well, but I've found out that the default with CrossEncoder handles MPS and CUDA device already.


Multiple prop for single column

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior
Currently, 'prop' property supports only three ways of mentioning column value - deep value ("a.b.c": 123), shallow value (obj["prop"]) and numerals.
Expected behavior
I want to define multiple column properties in single column, something like this:
{{obj.prop1}} {{obj.prop2}}. It is possible to do so when we use ng-template, but not possible when mentioning columns using array of objects.
New declaration could look like:
columns = [{"name": "name1", "prop": arrayOfProps}]
Reproduction of the problem
What is the motivation / use case for changing the behavior?
In my case, I am trying to write a wrapper component for ngx-datatable because there are numerous tables in my project. And that is why I am bound to define columns in ts rather than in html.
Please tell us about your environment:
Table version: 10.4.0
Angular version: 4.4.6
Browser: [all]
Language: [TypeScript 2.6]

I'm wondering the same thing, suppose I've got something like this:
  <ngx-datatable-column prop="someRowProp">
    <ng-template let-value="value" ngx-datatable-cell-template>
           {{ value }}
    </ng-template>
  </ngx-datatable-column>

In this case, value is essentially rowItem.someRowProp, but what if I want to render other row properties in this same column? Is there no way to access the full row item?

Any update on this one?

I'm already using the way you mentioned. But the problem is, we are using template.
I have several tables and wanted to customize and generalize the ngx-datatable into one component so that I can use that component every where. Usage of template restricts that and I ended up writing ng-template for all of them.

Any update on this one?

I'd like to have this feature too.  I have an Address Column that is made from an object containing a few fields e.g. state, city, etc.  An array such as prop: ['address.city', [', '], 'address.state'] would be ideal.  Just concat all the values in the array for the prop to display.


Navigation Bar is hidden/ disappears

From the demo project, I clicked into "CollectionView, Navigation Push Transition", then clicked one of the cells in the ViewController and lastly when i clicked "back"  from DetailViewController (Result: navigation bar is hidden). This happens to my project as well when i implemented this. Please help.

I'm also having the same issue.

@vivekjains i solved it by replacing this.
animator.goingForward = (operation == UINavigationControllerOperationPush || operation == UINavigationControllerOperationPop);


@graphiql/react: editor hooks/components

We can supply a base editor component and Variables/Operation editor and Results viewer components and/or hooks to make it easier for folks to add additional editors. This will be readily possible with monaco-graphql
prior art: codesandbox sandpack
Codesandbox sandpack provides great prior art for some of the surrounding editor experience at an abstract level, and hooks API/component library design from a react perspective.
Their component api design for the tabbed editor is fantastic, but assumes a file editor for each tab, ours would allow various components, with file editor tabs amongst them!
Ours could support monaco first and perhaps provide an API to override this for codemirror 6 at a context level, or otherwise via hooks?
Codemirror 6?
We can also consider codemirror components for 6 which has matured and shows great improvements for accessibility amongst others. We already have support via legacy mode. Full codemirror 6 support will be quite an endeavour, and unless we use a pre-existing codemirror 6 LSP compatibility layer, may result in a much more complex implementation on a per language feature (autocompletion, hover, etc) basis for codemirror than for monaco-graphql that we have now.
For graphiql we can continue to use monaco-graphql, but there’s no reason that there can’t be codemirror 6 components in the SDK as well, especially for simplified & documentation oriented usage (ala MiniGraphql, etc)
Base Editor Example
here is an example of a reusable editor component that can auto-increment the model uri identifiers
import { editor, Uri } from 'monaco-editor';
import React, { useEffect, useRef, useState } from 'react';
import { debounce } from '@graphiql/toolkit';

let increment = 0;

export type EditorProps = {
  /**
   * Set a model to the editor instance.
   * Use this or `uri` to switch files in a lightweight fashion
   * without destroying the editor instance.
   */
  model?: editor.ITextModel;
  /**
   * The uri of the model to create/re-use
   */
  uri?: string;
  /**
   * Value input - providing this will overwrite any input
   */
  value?: string;
  /**
   * Default value to use on initialization. Overriden if `value` is provided
   */
  defaultValue?: string;
  /**
   * Todo: add more themes
   */
  theme?: editor.BuiltinTheme;
  /**
   * Simple change handler.
   */
  onChange?: (value: string) => void;
  /**
   * Number of milliseconds to debounce change events. Defaults to 300
   */
  onChangeDebounce?: number;
  /**
   * Return both the editor instance and the model instance on creation.
   */
  onEditor?: (
    editorInstance: editor.IStandaloneCodeEditor,
    modelInstance: editor.ITextModel,
    editorRef: React.Ref<HTMLDivElement>
  ) => void;
  /**
   * Supply options to this editor instance on create, or throughout the lifecycle
   */
  editorOptions?: editor.IEditorOptions & editor.IGlobalEditorOptions;
  // commands?: editor.ICommand[];
};

const createEditor = (
  ref: React.MutableRefObject<null>,
  options: editor.IStandaloneEditorConstructionOptions,
) => editor.create((ref.current as unknown) as HTMLElement, options);

const defaultOptions = {
  theme: 'vs-dark',
};

const getOrCreateModel = (uri: string, value: string = '') => {
  return (
    editor.getModel(Uri.file(uri)) ??
    editor.createModel(value, uri.split('.').pop(), Uri.file(uri))
  );
};

export function Editor({
  editorOptions,
  onEditor,
  onChange,
  theme,
  onChangeDebounce = 300,
  model,
  uri,
  value,
  defaultValue,
}: EditorProps) {
  const [
    editorInstance,
    setEditor,
  ] = useState<editor.IStandaloneCodeEditor | null>(null);
  const [modelInstance, setModel] = useState<editor.ITextModel | null>(null);

  const editorRef = useRef(null);

  const uriRef = useRef(uri ?? null);
  const modelRef = useRef(model ?? null);
  const valueRef = useRef(value ?? null);

  const previousUri = uriRef.current;
  const previousModel = modelRef.current;
  const previousValue = valueRef.current;

  useEffect(() => {
    if (!editorInstance) {
      let editorModel = model as editor.ITextModel;
      if (uri) {
        editorModel = getOrCreateModel(uri, value ?? defaultValue ?? '');
      } else {
        editorModel = getOrCreateModel(
          `${increment}.graphql`,
          value ?? defaultValue ?? '{}',
        );
        increment++;
      }

      const monacoEditor = createEditor(editorRef, {
        ...defaultOptions,
        ...editorOptions,
        model: editorModel,
        theme: theme ?? editorOptions?.theme ?? defaultOptions.theme,
      });
      setEditor(monacoEditor);
      setModel(editorModel);
      onEditor && onEditor(monacoEditor, editorModel, editorRef);
      if (onChange) {
        monacoEditor.onDidChangeModelContent(_e =>
          debounce(onChangeDebounce, () => onChange(editorModel.getValue())),
        );
      }
    }
  }, []);

  useEffect(() => {
    if (editorOptions && editorInstance) {
      editorInstance?.updateOptions(editorOptions);
    }
  }, [editorInstance, editorOptions]);

  useEffect(() => {
    if (theme && editorInstance) {
      editorInstance.updateOptions({ theme });
    }
  }, [editorInstance, theme]);

  useEffect(() => {
    if (model && previousModel !== model) {
      setModel(model);
      editorInstance?.setModel(model);
    }
  }, [editorInstance, previousModel, model]);

  useEffect(() => {
    if (value && previousValue !== value && modelInstance) {
      modelInstance.setValue(value);
    }
  }, [modelInstance, previousValue, value]);

  useEffect(() => {
    if (uri && previousUri !== uri) {
      editorInstance?.setModel(getOrCreateModel(uri, value));
    }
  }, [editorInstance, previousUri, uri, value]);

  return <div ref={editorRef} />;
}

@dotansimha this can be a starting point for brainstorming, already in the project roadmap and labelled and everything


Feature Request :Allow Bitcoin and Litecoin to be active together

Background
As of today, the code does not allow Litecoin and Bitcoin to be active together.
If you try you get an error message:
loadConfig: Currently both Bitcoin and Litecoin cannot be active together
I would like to suggest a PR that allows both networks to be active together. I plan to create it in a way that will have no impact on the user and/or configuration in case a single network is used (so fully backward compatible). In case the 2 networks are active the user will have an option, as part of the cli/rpc calls to provide the network to be used with the call.
I plan to implement a similar solution as done by  Conner Fromknecht here, as part of the swapz branch
So, for example you will be able to:
lncli addinvoice 40000 --ticker=LTC
Any help is appreciated. If you have any design conclusions  from the swapz experience, it will be great if you could share them.
Thanks
Offer
Your environment

lnd version 0.4.2-beta commit=d98d4523e10426c4ce097ecc7ec1ba199a331c60
Darwin admins-MacBook-Pro-2.local 16.7.0 Darwin Kernel Version 16.7.0: Tue Jan 30 11:27:06 PST 2018; root:xnu-3789.73.11~1/RELEASE_X86_64 x86_64
btcd version 0.12.0-beta
ltcd version 0.12.0-beta

Steps to reproduce
lnd --bitcoin.active --litecoin.active
Expected behaviour
Allow both to be active at the same time.
Actual behaviour
loadConfig: Currently both Bitcoin and Litecoin cannot be active together

This is no small feat. Also it isn't a priority at all atm, there are much, much more important things that are prioritized over features like this.

Hi Roasbeef,
Thanks for the prompt response.
I'm well aware that this is not a small feature. Yet I find it an interesting use case which can ease the management and monitoring pains involved with running LNDs for both Litecoin and Bitcoin.  I also understand your position that there are more important features in queue.
Still, for me this is an important feature which I believe I  can develop on my own (based on work done by @cfromknecht) .
While the feature is not small, there are many parts of it which can be done by newcomers and can ease the learning curve of the system.
I believe it would take me a few weeks to provide a working branch and a PR for the master branch.
Thanks
Offer

Hi Again,
So, I have started to work on this feature which is, as @Roasbeef wrote above, challenging and  touching "everything".  In addition to the server changes that should be done, this feature also brings changes to the requests and responses format of the different CLI/RPC calls.
For example
lncli addinvoice 123
Should accept another parameter specifying if this is a BTC or LTC amount.
Similar,  walletbalance can't aggregate the balance of BTC and LTC together

$ lncli walletbalance
{
"total_balance": "9995250",
"confirmed_balance": "9995250",
"unconfirmed_balance": "0"
}

I created a plan aiming to reduce the complexity and allowing this feature to be done in stages. Here are the phases I target:

Go over all relevant commands and make sure that a) the rpc response includes, when relevant,  the name of the chain, and b) that all chain dependent that is shown under a chain section. When needed introduce a "chains" element that includes a list of chain elements. (see below more information).
This change prepare the system for multi-chain but has no impact as long a single chain is being used.

Go over all relevant commands and allow the user to provide a "--ticker" option. This option is optional. The user may leave it empty or provide a value. When the system is using a single chain and the user didn't provide value to this option the system will opt to the chain in use. If the system is using Bitcoin and the user provide --ticker-LTC he will face an error. If the system has multi-chain the parameter is mandatory. This change prepare the system for multi-chain but has no impact as long a single chain is being used and users are not providing the --ticker option.

Fix some issue detected in phases 1 and 2 above.  For example Transaction does not properly record the chain, in payinvoice channel Hops the chain is not set, payments does not include chain information,  queryroutes not ready for multi-chain, etc. These issues has no impact when using single chain but should be solved for multi-chain

Internal changes to support multi-chain.  This will probably be broken for additional stages.

Here are some examples for changes of phase 1 (using 2 servers so don't compare data):
$ lncli walletbalance
{
    "total_balance": "9995250",
    "confirmed_balance": "9995250",
    "unconfirmed_balance": "0"
}

Vs
$ lncli walletbalance
{
    "chains": [
        {
            "chain": "litecoin",
            "total_balance": "721980300",
            "confirmed_balance": "721980300",
            "unconfirmed_balance": "0"
        }
    ]
}

$ lncli getinfo
{
    "identity_pubkey": "02a5b850fba0298e50f76ecd948c7959979889245274fac9e2850c8c3b8c341236",
    "alias"<EMAIL_ADDRESS>    "num_pending_channels": 0,
    "num_active_channels": 4,
    "num_peers": 1,
    "block_height": 605968,
    "block_hash": "561faa19ba8ea95442344d4601f5f10bb75571f3523ea51568b1c836daf2688e",
    "synced_to_chain": true,
    "testnet": true,
    "chains": [
        "litecoin"
    ],
    "uris": [
        "02a5b850fba0298e50f76ecd948c7959979889245274fac9e2850c8c3b8c341236@<IP_ADDRESS>:9735"
    ],
    "best_header_timestamp": "1528464271",
    "version": "0.4.2-beta commit=4bde4c1c262ddae5171240d47fcbd0b5ea1f1eae"
}

vs
$ lncli getinfo
{
    "identity_pubkey": "036924b0efdd03aa6ede5e13c3aa8483f038fcbd3d7204cc50ab3055fe1000c5c6",
    "alias": "Offer",
    "num_peers": 1,
    "chains": [
        {
            "chain": "litecoin",
            "num_pending_channels": 0,
            "num_active_channels": 4,
            "block_height": 605969,
            "block_hash": "85861231030f2f6286f74a1d50fb921a6c2a6b09a27c7aa1457c8e9ac3b6a455",
            "synced_to_chain": true,
            "testnet": true,
            "best_header_timestamp": "1528464573"
        }
    ],
    "uris": [
        "036924b0efdd03aa6ede5e13c3aa8483f038fcbd3d7204cc50ab3055fe1000c5c6@<IP_ADDRESS>:9735"
    ],
    "version": "0.4.2-beta commit="
}

listpayments identify the chain:
$ lncli listpayments
{
    "payments": [
        {
            "payment_hash": "9fdde71a03e8ec3e31932e9a88ae882931c87c6b88117ff96109a14a941bcf14",
            "value": "1234",
            "creation_date": "1528457100",
            "path": [
                "02a5b850fba0298e50f76ecd948c7959979889245274fac9e2850c8c3b8c341236"
            ],
            "fee": "0",
            "payment_preimage": "01083d2f11cb3973ab0ad428bfc18443f07d425222a155200b065607c43fd6cc",
            "chain": "litecoin"
        },
        {
            "payment_hash": "9fdde71a03e8ec3e31932e9a88ae882931c87c6b88117ff96109a14a941bcf14",
            "value": "1234",
            "creation_date": "1528457409",
            "path": [
                "02a5b850fba0298e50f76ecd948c7959979889245274fac9e2850c8c3b8c341236"
            ],
            "fee": "0",
            "payment_preimage": "01083d2f11cb3973ab0ad428bfc18443f07d425222a155200b065607c43fd6cc",
            "chain": "litecoin"
        },
    ]
}

decodepayrequest show the chain

Please let me know if you have any comments/suggestions/etc.

Offer

I wouldn't rank this in the top 100 things that need to be done within lnd atm. As a result, we won't prioritize review of this vanity feature of bug fixes, substantial improvements, and issues that trend towards our next release.

@Roasbeef, I value your position and opinion.  0.5 list also looks impressive.
If I may, I would like to give you another point of view regarding phase 1 above.  If you believe that sometime in the future LND will support multi chain you must agree that the current output of many system commands/RPCs is not ready for that. This implies that there will be an API level change in the future which will not be backward compatible with current versions.
The number of 3rd party projects which adopt LND as their lightning server is growing and is expected to grow. For the benefit of these projects we better make these API changes now, reducing the impact this will have when we come to deal with it in the future.
The risk in this change is minor.
I will soon upload a PR for your review. Hope you decide to consider it and add it to the 0.5 list.
Thanks
Offer

i agree on importance of making API multi chain asap, even if it is "faked" information.
where you just add the "chain" : "bitcoin" it is already compatible and dead easy to implement.
for total compatibility, we could in some cases add a new api and keep the old one as it is. for instance we could make walletbalancechains while the walletbalance return as before. there are already 3rd party products that will break if we change the api now.
or, probably a bad idea, add both result formats
$ lncli walletbalance
{
    "total_balance": "721980300",
    "confirmed_balance": "721980300",
    "unconfirmed_balance": "0"
    "chains": [
        {
            "chain": "litecoin",
            "total_balance": "721980300",
            "confirmed_balance": "721980300",
            "unconfirmed_balance": "0"
        }
    ]
}

@robtex I actually prepared the change as you suggested and kept the original field in place.
But I do think it is better to go for the right version and not leave these in as if people use them it will be harder to take them out later, and when we finally have multi-chain these top level field will not have any meaning (since you can't just sum BTC and LTC amounts and present as "total_balance").
But if you like to consider a PR with these fields in, just let me know and I restore them.
The impact is for getinfo, getnetworkinfo,  listpeers, getnodeinfo, walletbalance.  Se we can also be selected and consider for example to leave these fields for getinfo and walletbalance but take them out from the rest.
Let me know
Offer

Providing that #1820 is accepted, for me, this is not really needed anymore or priority can be reduced to P5 :-)
@Roasbeef


Fix build error with cordova-ios-4.x (backwards compatible)

Hey huge thanks for the PR! Will release 1.0.8 right now.

any plans on releasing 1.0.8?
since cordova-ios-4 officially came out some days ago, this is very much appreciated and needed.


Password type

Is it possible to add password type? Which is switched from cleartext to circles like in a normal UI, and also encrypted in the .json file afterwards?

Hi @pquerner
Yes, it is possible to add a password type field. However it is not recommended to save sensitive data via electron-preferences. As the JSON will always be in plain text.
An example of how this can be accomplished:
{
    'label': 'Password',
    'key': 'password',
    'type': 'text',
    'inputType': 'password',
    'help': 'What is your password? (not encrypted)'
}

Encrypting the .json file would be a struggle. This would have to be a two way encryption algorithm, and will always be insecure as the key for this encryption algorithm would be stored somewhere in your javascript.


Problema No se ha configurado la referencia del objeto

@akelazr commented on Fri Nov 15 2019
In this page is indicate as solution to the problem "Object reference not set" when connect to an Oracle DB . Copy oraons.dll but don´t specify the destination. Where should i copy this file?

Detalles del documento
⚠ No edite esta sección. Se requiere para docs.microsoft.com ➟ Vinculación de problema de GitHub.

ID: 382f269e-2072-ec03-7c88-335cbd5df919
Version Independent ID: 46a896f9-4707-adc3-72cd-5444a5d0f802
Content: Conectarse a una base de datos de Oracle - Power BI
Content Source: powerbi-docs/desktop-connect-oracle-database.md
Service: powerbi
Sub-service: powerbi-desktop
GitHub Login: @davidiseminger
Microsoft Alias: davidi

@srvbpigh commented on Fri Nov 15 2019
Hello, @akelazr
Thank you for your feedback.
We are actively reviewing your comments and will get back to you soon.
Kind regards,
Microsoft DOCS International Team

Hi, @CeciAc and @akelazr  -- Thanks for asking! Passing your question to the author of the article.

Thanks for your comment. This is a support request rather than documentation feedback. You might find a solution in the Power BI Community, found at https://community.powerbi.com. If not, you can get support by going to https://support.powerbi.com.


feat: Optimize website pages.

Signed-off-by: ErikQQY<EMAIL_ADDRESS>

@hsluoyz The Netlify deploy preview is working, please review.

lgtm


Return different result code for Hits and no-hit found

Return a different return code if hits were found so the batch-script can act on hits.

@Tiepolino What do you mean? You can get exit code (v1.5.0)

Then please kindly ignore my request! From your example above I can make the changes needed to the batch-script.
Keep up the good work! And thanks so much for this wonderfull tool, it realy makes a difference!

@Tiepolino Thank you very much!