fix xml property serializers

XML property serializers (e.g. DateTime->string et vice versa) were broken now, this should fix it.

@mzstic Can you look at the changes? This would be great to get merged. Thx :)


Assess support for Cloud Pak for Data 4.5

Is your feature request related to a problem? Please describe.
Cloud Pak for Data 4.5 has been out for a while, so we need to update this repository.
Describe the solution you'd like
Update the CRs and jobs to reflect the updated installation procedures.
Describe alternatives you've considered
Still considering: The installation procedure has shifted towards a completely procedural approach (using the newly introduced cpd-cli,) so it is possible we may need to drop Cloud Pak for Data support from this repository altogether.
Additional context
Add any other context or screenshots about the feature request here.

The image we currently use to talk to OpenShift (quay.io/openshift/origin-cli) does not contain podman, which I tried to workaround with installing podman. That approach fails because there is no package manager installed in that image. Subsequent attempts with dnf failed with the exact same messages:

yum install podman
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

rhel-8-baseos                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-baseos':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-baseos/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-baseos': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-appstream                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-appstream':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-appstream/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-appstream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-fast-datapath                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-fast-datapath':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-fast-datapath/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-fast-datapath': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-nfv                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-nfv':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-nfv/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-nfv': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-server-ose                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-server-ose':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-server-ose/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-server-ose': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-ansible-2.9                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-ansible-2.9':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-ansible-2.9/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-ansible-2.9': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
openstack-16-for-rhel-8-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'openstack-16-for-rhel-8-rpms':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/openstack-16-for-rhel-8-rpms/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'openstack-16-for-rhel-8-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
rhel-8-codeready-builder-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'rhel-8-codeready-builder-rpms':
  - Curl error (6): Couldn't resolve host name for http://base-4-12-rhel8.ocp.svc/rhel-8-codeready-builder-rpms/repodata/repomd.xml [Could not resolve host: base-4-12-rhel8.ocp.svc]
Error: Failed to download metadata for repo 'rhel-8-codeready-builder-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-openstack-16-for-rhel-8-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-openstack-16-for-rhel-8-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/layered/rhel8/x86_64/openstack/16.2/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-openstack-16-for-rhel-8-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-appstream-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-appstream-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/rhel8/8/x86_64/appstream/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-appstream-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-baseos-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-baseos-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/rhel8/8/x86_64/baseos/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-baseos-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-codeready-builder-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-codeready-builder-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/rhel8/8/x86_64/codeready-builder/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-codeready-builder-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-fast-datapath-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-fast-datapath-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/layered/rhel8/x86_64/fast-datapath/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-fast-datapath-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-rt-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-rt-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/rhel8/8/x86_64/rt/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-rt-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-server-ansible-2.9-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-server-ansible-2.9-rpms':
  - Curl error (6): Couldn't resolve host name for http://rhsm-pulp.corp.redhat.com/content/dist/layered/rhel8/x86_64/ansible/2.9/os/repodata/repomd.xml [Could not resolve host: rhsm-pulp.corp.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-server-ansible-2.9-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
localdev-rhel-8-server-ose-rpms                                                                                0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'localdev-rhel-8-server-ose-rpms':
  - Curl error (6): Couldn't resolve host name for http://download.lab.bos.redhat.com/rcm-guest/puddles/RHAOS/plashets/4.12-el8/building/x86_64/os/repodata/repomd.xml [Could not resolve host: download.lab.bos.redhat.com]
Error: Failed to download metadata for repo 'localdev-rhel-8-server-ose-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Ignoring repositories: rhel-8-baseos, rhel-8-appstream, rhel-8-fast-datapath, rhel-8-nfv, rhel-8-server-ose, rhel-8-ansible-2.9, openstack-16-for-rhel-8-rpms, rhel-8-codeready-builder-rpms, localdev-openstack-16-for-rhel-8-rpms, localdev-rhel-8-appstream-rpms, localdev-rhel-8-baseos-rpms, localdev-rhel-8-codeready-builder-rpms, localdev-rhel-8-fast-datapath-rpms, localdev-rhel-8-rt-rpms, localdev-rhel-8-server-ansible-2.9-rpms, localdev-rhel-8-server-ose-rpms
No match for argument: podman
Error: Unable to find a match: podman

The first obvious workaround is to use image registry.redhat.io/rhel8/podman instead. The registry requires a pull secret, but that pull secret is already required for installing OCP and this repo is already setting it up in the cluster's global pull secret, so that is not a problem.

But then the first invocation of cpd-cli immediately runs into this issue:
cpd-cli manage login-to-ocp
[INFO] 2022-10-26T18:41:47.056026Z Checking architecture: amd64
[INFO] 2022-10-26T18:41:47.059507Z Checking podman or docker
[INFO] 2022-10-26T18:41:47.197908Z Dockerexe: podman
[INFO] 2022-10-26T18:41:47.199883Z Checking container image
[INFO] 2022-10-26T18:41:47.202608Z Creating directory /cpd-cli-workspace/olm-utils-workspace/work
[INFO] 2022-10-26T18:41:47.835399Z Pulling the container image icr.io/cpopen/cpd/olm-utils:latest
[INFO] 2022-10-26T18:42:16.978785Z Pulling image output: Trying to pull icr.io/cpopen/cpd/olm-utils:latest...
Getting image source signatures
...
Copying blob ...
Error: writing blob: adding layer with blob "sha256:d921a34d525b53cffec3ed5317dab0511927c3e01de4d783cdcf392e332a436b": Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs available in user namespace (requested 0:12 for /var/spool/mail): Check /etc/subuid and /etc/subgid if configured locally and run podman-system-migrate: lchown /var/spool/mail: invalid argument
[ERROR] 2022-10-26T18:42:17.001914Z Command exception: exit status 125
[ERROR] 2022-10-26T18:42:17.014112Z RunPluginCommand:Execution error:  exit status 1

The workaround for that problem is simple:

sed -i 's|.*ignore_chown_errors.*=.*"false"|ignore_chown_errors = "true"|g' /etc/containers/storage.conf

The cpd-cli went further, but then I ran into what seems the ultimate blocker:
cpd-cli manage --username=${OCP_USERNAME} --password=${OCP_PASSWORD} --server=${OCP_URL}
[INFO] 2022-10-26T19:02:19.373358Z Checking architecture: amd64
[INFO] 2022-10-26T19:02:19.376611Z Checking podman or docker
[INFO] 2022-10-26T19:02:19.424024Z Dockerexe: podman
[INFO] 2022-10-26T19:02:19.426878Z Checking container image
[INFO] 2022-10-26T19:02:19.551983Z Pulling the container image icr.io/cpopen/cpd/olm-utils:latest
[INFO] 2022-10-26T19:02:20.495133Z Pulling image output: Trying to pull icr.io/cpopen/cpd/olm-utils:latest...
Getting image source signatures
...
Writing manifest to image destination
Storing signatures
792c15a6d4e50a42239452fe122c7b37f4c3ddca5aa4e2027fd944d75c0f711c
[SUCCESS] 2022-10-26T19:02:20.522470Z Successfully pulled the container image icr.io/cpopen/cpd/olm-utils:latest
[INFO] 2022-10-26T19:02:20.522567Z Delete any existing olm-utils-play container
[INFO] 2022-10-26T19:02:20.646390Z Error: no container with name or ID "olm-utils-play" found: no such container
[INFO] 2022-10-26T19:02:20.649088Z Checking SELinux configuration
[INFO] 2022-10-26T19:02:20.651150Z Start the olm-utils-play container
[ERROR] 2022-10-26T19:02:20.809785Z Command exception: Failed to start the olm-utils-play container: exit status 127
[ERROR] 2022-10-26T19:02:20.814819Z RunPluginCommand:Execution error:  exit status 1

The weird think is that olm-utils-play was started at that point, so it looks like the cpd-cli cannot detect that the container is running:
podman ps -a
CONTAINER ID  IMAGE                               COMMAND     CREATED        STATUS      PORTS       NAMES
e1d749a524ca  icr.io/cpopen/cpd/olm-utils:latest              7 minutes ago  Created                 olm-utils-play

My initial assessment is that it is not possible to use cpd-cli from inside a container, but it is possible to create a proof of concept using the container loaded by cpd-cli (icr.io/cpopen/cpd/olm-utils:latest) with some reservations:

It is not a documented interface, so there is no guarantee it will remain working in future releases.
Using the icr.io/cpopen/cpd/olm-utils:latest container directly inside a k8s container creates additional output that confuses the bin/setup-route command and possibly others.

For now, I merged the PR that allows the installation on a green cluster, but I want to revisit this topic in the upcoming 4.6 release of CP4D.


python311Packages.google-cloud-pubsub: 2.21.3 -> 2.21.4

Changelog: https://github.com/googleapis/python-pubsub/blob/v2.21.4/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 321233 run on x86_64-linux 1

10 packages built:

home-assistant-component-tests.google_pubsub
home-assistant-component-tests.nest
python311Packages.google-cloud-pubsub
python311Packages.google-cloud-pubsub.dist
python311Packages.google-nest-sdm
python311Packages.google-nest-sdm.dist
python312Packages.google-cloud-pubsub
python312Packages.google-cloud-pubsub.dist
python312Packages.google-nest-sdm
python312Packages.google-nest-sdm.dist


W03H03 shrink seam imageToArray helper function causes segfault

The image.getGraphics() causes a segmentation fault with Zulu JDK 17 on an M1 Macbook Pro running 12.6. The native ImageIO.framework tries to access an invalid memory location. The image is correctly loaded into the BufferedImage object. Might be a deeply-nested bug.
Here the core dump:
hs_err_pid7400.log

Choosing a different JDK vendor causes the same crash.

Testing it on a Windows on ARM Developer Enterprise VM with a native aarch64 jbr runtime works. Must be a platform issue.

cc: @felixhauptmann

That's bad

Either we fix it or we write a quick comment in the code that it's only working with Windows and you should use a VM if you want to run the test. I think the second option is enough.


React Flow doesn't update position while dragging.

React-flow doesn't update the position of the node when it's being dragged.
So when i finish dragging it and want to shift the position another time based on where i dragged it, I have to first set it's current position and then set it's new position.

Hey. Could you create a codesandbox or a repo so that we can have a look at the code?

Here you go:
https://codesandbox.io/s/small-sea-iykjf?file=/src/flowchart/FlowChart.tsx
To replicate issue:

Drag two elements into the canvas, creating a parent child connection.
Then move child closer to the parent. It should snap back to it's original position onNodeDragStop, but it doesn't.

To see workaround:
Search for: TO FIX: UNCOMMENT THIS BLOCK.
Thank you!

This is indeed a problem with react-flow respectively the elements API. I would like to have controlled elements with an API like onElementUpdate that you would always need to call when an element changes. Right now your elements and the internal react-flow elements are out of sync. For the most cases this is not an issue but we will change this in the future.
Right now you have two ways to get current node elements.

Use the const nodes = useStoreState(state => state.nodes);
Use the const store = useStore();And then store.getState().nodes inside your onNodeDragStop handler

This should then be mentioned in this example:
https://reactflow.dev/examples/update-node/

That's a good point. It would be helpful to add some descriptions to the examples.

I added a discussion here: https://github.com/wbkd/react-flow/discussions/960


cannot commit and push sometimes; requires restart to work again

Hi, I've been using sublime-text-git on sublimetext3 for quite awhile. It works really well. However, sometimes it just stops working---I can enter a commit message for git quick commit but the git-output doesn't come up as usual to show that the commit has been registered. The problem goes away only after I restart sublimetext.
Usually the bar at the bottom of the sublimetext window has "Git branch: master, index: (tick), working: (tick), ...". This goes away when it stops working. I can't figure out the source of this problem. Is anyone else facing this problem?

Hmm, I have something similar but not the same:
all git commands stop working and the git message in the status bar doesn't update any more, but it still shows (index: bla, working: foo). Problem goes away after restarting sublime.
Additional observations:
Putting the machine to sleep flushes all git commands I did (and (sometimes?) shows a bad file descriptor popup) and fixes all problems.
OS: Ubuntu 18.04.04

Still the same after updating to Ubuntu 20.04.
Forgot to mention that the commands do show up in the status bar, like /usr/bin/get status --porcelain for the git_status command.
It only seems to show a bad file descriptor dialog box when I used the git_add_selected_hunk command.

I am experiencing the same issue under Windows.
The git message in status bar is hidden for me.
Sublime 3.1.1 3176, Windows 10 Build 1903.
Restarting sublime fixes the issue.

What's the status on this? I confirm experiencing the same issue.
Git plugin: 1.0.8
OS: macOS 11.0.1
SublimeText: 3.2.2 Build 3211

Experiencing the same issue.  Works fine until it doesn't.  Sublime console shows the command that is being requested, e.g. ['git', 'add', '-A'] when it is working, and does just the same when it isn't.  Sadly no obvious way to see any further debug information on what might be failing.  Certainly os.getcwd() is still a git project when it is in a failing state.  I am working with multiple git projects concurrently within one sublime project and wonder whether this is a cause?

I am working with multiple git projects concurrently within one sublime project and wonder whether this is a cause?

It's not. I've experienced this working on a single repo.


Convert all figures to latex-friendly format

Note: the
 elements are there as a hack to avoid showing the alt text for sighted users. Pandoc shows the alt text as a caption automatically unless it detects text in the same paragraph after the image, which it assumes is a caption. The book already has contextual text indicating what the image is, so I removed the caption via
.

This is based on top of PR #1062.


Added justgiving.com OAuth2 backend

justgiving.com is one of the UK's largest charity fundraising platforms. They are quickly expanding their API and will shortly be releasing their OAuth integration that i've already been using with the python-social-auth app.

Thanks!


Unable to replicate large volume

Whenever I try and increase my replica count to more than 1 on a specific volume (300GB), it ALWAYS fails. When it fails, it takes seems to also force a bunch of other volumes to degrade too. The error is below

Failed rebuilding replica with Address <IP_ADDRESS>:10135: failed to add replica address='tcp://<IP_ADDRESS>:10135' to controller 'config': failed to execute: /var/lib/longhorn/engine-binaries/longhornio-longhorn-engine-v1.0.2/longhorn [--url <IP_ADDRESS>:10020 add tcp://<IP_ADDRESS>:10135], output , stderr, time="2020-08-27T12:13:55Z" level=info msg="Adding replica tcp://<IP_ADDRESS>:10135 in WO mode" time="2020-08-27T12:13:55Z" level=info msg="Using replica tcp://<IP_ADDRESS>:10210 as the source for rebuild " time="2020-08-27T12:13:55Z" level=info msg="Using replica tcp://<IP_ADDRESS>:10135 as the target for rebuild " time="2020-08-27T12:18:43Z" level=fatal msg="Error running add replica command: failed to sync files [{FromFileName:volume-snap-f5b9da76-4681-44d7-b87e-6ee559f7bb93.img ToFileName:volume-snap-f5b9da76-4681-44d7-b87e-6ee559f7bb93.img ActualSize:4557012992} {FromFileName:volume-snap-f5b9da76-4681-44d7-b87e-6ee559f7bb93.img.meta ToFileName:volume-snap-f5b9da76-4681-44d7-b87e-6ee559f7bb93.img.meta ActualSize:0} {FromFileName:volume-snap-c2d58325-7a28-48c2-b34b-b500053039f4.img ToFileName:volume-snap-c2d58325-7a28-48c2-b34b-b500053039f4.img ActualSize:2938630144} {FromFileName:volume-snap-c2d58325-7a28-48c2-b34b-b500053039f4.img.meta ToFileName:volume-snap-c2d58325-7a28-48c2-b34b-b500053039f4.img.meta ActualSize:0} {FromFileName:volume-snap-874ab800-afdb-474a-9d24-adceb6e00d44.img ToFileName:volume-snap-874ab800-afdb-474a-9d24-adceb6e00d44.img ActualSize:4096} {FromFileName:volume-snap-874ab800-afdb-474a-9d24-adceb6e00d44.img.meta ToFileName:volume-snap-874ab800-afdb-474a-9d24-adceb6e00d44.img.meta ActualSize:0} {FromFileName:volume-snap-5c389519-87e4-40d4-8026-46cade4787e1.img ToFileName:volume-snap-5c389519-87e4-40d4-8026-46cade4787e1.img ActualSize:6479872} {FromFileName:volume-snap-5c389519-87e4-40d4-8026-46cade4787e1.img.meta ToFileName:volume-snap-5c389519-87e4-40d4-8026-46cade4787e1.img.meta ActualSize:0} {FromFileName:volume-snap-18caaa7e-76c3-4e1a-987a-d7d99aff0359.img ToFileName:volume-snap-18caaa7e-76c3-4e1a-987a-d7d99aff0359.img ActualSize:219591733248} {FromFileName:volume-snap-18caaa7e-76c3-4e1a-987a-d7d99aff0359.img.meta ToFileName:volume-snap-18caaa7e-76c3-4e1a-987a-d7d99aff0359.img.meta ActualSize:0} {FromFileName:volume-snap-c-0tuqai-f04a4986.img ToFileName:volume-snap-c-0tuqai-f04a4986.img ActualSize:852246528} {FromFileName:volume-snap-c-0tuqai-f04a4986.img.meta ToFileName:volume-snap-c-0tuqai-f04a4986.img.meta ActualSize:0} {FromFileName:volume-snap-9e0ac17f-8bcf-4b19-9799-1cf267e4db09.img ToFileName:volume-snap-9e0ac17f-8bcf-4b19-9799-1cf267e4db09.img ActualSize:110153728} {FromFileName:volume-snap-9e0ac17f-8bcf-4b19-9799-1cf267e4db09.img.meta ToFileName:volume-snap-9e0ac17f-8bcf-4b19-9799-1cf267e4db09.img.meta ActualSize:0} {FromFileName:volume-snap-2e5423c0-c729-4bc6-8674-8302e8f7b925.img ToFileName:volume-snap-2e5423c0-c729-4bc6-8674-8302e8f7b925.img ActualSize:131072} {FromFileName:volume-snap-2e5423c0-c729-4bc6-8674-8302e8f7b925.img.meta ToFileName:volume-snap-2e5423c0-c729-4bc6-8674-8302e8f7b925.img.meta ActualSize:0} {FromFileName:volume-snap-c-0tuqai-856ac446.img ToFileName:volume-snap-c-0tuqai-856ac446.img ActualSize:19666141184} {FromFileName:volume-snap-c-0tuqai-856ac446.img.meta ToFileName:volume-snap-c-0tuqai-856ac446.img.meta ActualSize:0} {FromFileName:volume-snap-c-0tuqai-9c55bec7.img ToFileName:volume-snap-c-0tuqai-9c55bec7.img ActualSize:360448} {FromFileName:volume-snap-c-0tuqai-9c55bec7.img.meta ToFileName:volume-snap-c-0tuqai-9c55bec7.img.meta ActualSize:0} {FromFileName:volume-snap-c-0tuqai-3162cbf0.img ToFileName:volume-snap-c-0tuqai-3162cbf0.img ActualSize:7260487680} {FromFileName:volume-snap-c-0tuqai-3162cbf0.img.meta ToFileName:volume-snap-c-0tuqai-3162cbf0.img.meta ActualSize:0} {FromFileName:volume-snap-c-0tuqai-d59f0e0b.img ToFileName:volume-snap-c-0tuqai-d59f0e0b.img ActualSize:19115970560} {FromFileName:volume-snap-c-0tuqai-d59f0e0b.img.meta ToFileName:volume-snap-c-0tuqai-d59f0e0b.img.meta ActualSize:0}] from tcp://<IP_ADDRESS>:10210: rpc error: code = Internal desc = grpc: error while marshaling: proto: Marshal called with nil" , error exit status 1

Version: v1.0.2

@dcplaya The error message doesn't give much information here since it's a parsing error. Though it seems unrelated to the volume size. Increase the replica count of one volume shouldn't impact any other volumes unless we don't have enough space for the rebuild. Can you check the actual size of the volume and the remaining space of your disk to make sure the new node for the replica has enough space?

The parsing error explains why I had absolutely no clue what is causing this! Been scratching my head for days.
The actual size as reported by Longhorn
Size: 300 Gi
Actual Size: 258 Gi

Below are all my node's allocated and used space. The single replica is currently only on 1 worker (2nd from the top)

I will have to get back to you on the CPU usage (going on a vacation for a few days). Do you want CPU load of the worker the replica is getting written to or the CPU load of the worker the replica is being read from?
Also, not sure if this is related, but this volume also has issues successfully completing a backup. I set up daily backups but the last successful one according to Longhorn was 3 days ago (if this is not related, I will open a separate ticket, just thought it could be helpful info)

Thanks @dcplaya . After you come back, can you send a support bundle (see the generate button at the footer of the UI) to us at<EMAIL_ADDRESS>? We want to take a deeper look at this issue.

Support bundle sent. This time, I wasn't trying to replicate, I was actually trying to copy the data out of Longhorn so I could get these logs and not risk data. It so happens, the same error popped up when doing this! It seems like high IO load (not large files, but large number of files) seems to cause Longhorn cause all of this to happen.

@dcplaya It seems you are having network or CPU resource issues on the nodes.
The issue of  proto: Marshal called with nil due to in one piece of Longhorn code, it returns nil, nil for the GRPC response, which caused the issue for the GRPC.
But this piece of code should return an error instead of nil in this case, so it's not the root cause for the issue.
After looking deeper into the log, I found:
2020-08-30T20:49:10.283294877-07:00 time="2020-08-31T03:49:10Z" level=info msg="Engine pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05 is still in backoff for replica pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-r-4b25c6e8 rebuild failure"
2020-08-30T20:49:16.587880780-07:00 E0831 03:49:16.587659       1 volume_controller.go:204] fail to sync longhorn-system/pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478: fail to update recurring jobs for pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478: Put "https://<IP_ADDRESS>:443/apis/batch/v1beta1/namespaces/longhorn-system/cronjobs/pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478-
c-0tuqai-c": read tcp <IP_ADDRESS>:33778-><IP_ADDRESS>:443: read: connection reset by peer
2020-08-30T20:49:16.587931657-07:00 time="2020-08-31T03:49:16Z" level=warning msg="Dropping Longhorn volume longhorn-system/pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478 out of the queue: fail to sync longhorn-system/pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478: fail to update recurring jobs for pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478: Put \"https://<IP_ADDRESS>:443/apis
/batch/v1beta1/namespaces/longhorn-system/cronjobs/pvc-abda5db5-26ec-45d7-b0c2-3b8f78d38478-c-0tuqai-c\": read tcp <IP_ADDRESS>:33778-><IP_ADDRESS>:443: read: connection reset by peer"
2020-08-30T20:49:16.588007030-07:00 E0831 03:49:16.587955       1 volume_controller.go:204] fail to sync longhorn-system/pvc-0d5963c2-2dca-4c6b-b528-3a5d7c91aada: fail to update recurring jobs for pvc-0d5963c2-2dca-4c6b-b528-3a5d7c91aada: Put "https://<IP_ADDRESS>:443/apis/batch/v1beta1/namespaces/longhorn-system/cronjobs/pvc-0d5963c2-2dca-4c6b-b528-3a5d7c91aada-
c-0tuqai-c": read tcp <IP_ADDRESS>:34108-><IP_ADDRESS>:443: read: connection reset by peer

<IP_ADDRESS>:443 is the Kubernetes API server, which also stores the Longhorn metadata. So those means Longhorn cannot communicate with the Kubernetes API server to get the metadata.
And there are some logs like below:
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:24:52.474784334-07:00 [pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] time="2020-08-31T02:24:52Z" level=error msg="Write timeout on replica <IP_ADDRESS>:10016 seq= 194193 size= 8 (kB)"
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:24:56.469469811-07:00 [pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] time="2020-08-31T02:24:56Z" level=error msg="Write timeout on replica <IP_ADDRESS>:10016 seq= 194196 size= 8 (kB)"
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:25:00.491773558-07:00 [pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] time="2020-08-31T02:25:00Z" level=error msg="Write timeout on replica <IP_ADDRESS>:10016 seq= 194199 size= 8 (kB)"
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:25:00.500442633-07:00 Aug 31 02:22:31.600325: ->10.42.14[pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] 0.92:10016 W[  4kB]      419us
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:25:00.506513054-07:00 [pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] Aug 31 02:24:53.192895: -><IP_ADDRESS>:10016 P[  0kB]      597us
logs/instance-manager-e-4fb16fea/engine-manager.log:2020-08-30T19:25:31.246878082-07:00 [pvc-b98b8ab3-8737-4203-a0e8-e1af4982e307-e-72fe2e05] time="2020-08-31T02:25:31Z" level=error msg="Error reading from wire: EOF"

Read/write timeout on the engine level indicates CPU or network issues. That's probably also why you have so many snapshots automatically created for the volume, since Longhorn is always trying to recover automatically from the issue.
Can you check your CPU usage level as well as the network bandwidth? I guess CPU resource is more likely the issue here.

connection reset by peer usually means the connection has been dropped.

I think I found part of my issues (I hope). Ubuntu 20.04 with a USB3 driver (UAS I believe it is called) is apparently not very good when under heavy stress. I have a node (node02 in my logs if they show up) that has an external NVME attached to it. I guess, under heavy loads, Ubuntu will basically mark the USB as RO which causes Longhorn to loose its mind!
I followed the posts located here and here by basically blacklisting the UAS driver for that particular USB device (below, the 357d:7788 is the device ID in question, not my specific ID though)
echo options usb-storage quirks=357d:7788:u | sudo tee /etc/modprobe.d/blacklist_uas_357d.conf
sudo update-initramfs -u
sudo reboot

Since doing this, it seems much more stable! I was able to successfully complete a backup. The real test is when I up my replica count to 2 WHILE loading the application (Plex in this case) with some requests, basically a little stress test.
Last night, I thought I had done this and saw it fail, but I want to do it again to make sure it wasn't something else that caused the replica to umount. I was a bit sleep deprived, so there is no telling what I actually did!
I can easily see this drive getting marked RO would cause Longhorn to think it lost connection and other weird stuff happening.
@yasker If I can still replicate this issue, what CPU usage would you like to see? The worker nodes that the replica is being read/written to or my master node?

The underlying hardware issue can explain the write timeout etc. In the log, I saw the write timeout indeed happens on node02. So that part has been explained.
If you still can reproduce the issues, I'd like to see the CPU utilization of both worker and master node, as well as load average (e.g. uptime), and how many CPUs are there for each node.
Btw, you might want to clean up the system generated snapshots. You can set up a recurring snapshot e.g. every day, which will also clean up system generated snapshots automatically. It's the result of losing replicas, likely due to your previous external harddrive issue.

Does a daily reoccurring backup NOT delete the system generated snapshots? Only a reoccurring snapshot deletes those system snapshots automatically?

@dcplaya recurring backup will clean up the system generated snapshots as well. So that would be fine.

So I think I have narrowed down what is actually causing the issues. I disabled k3s (which in turn disabled Longhorn) temporarily on the one specific node. I then enabled only NFS server and the crash still happens! For some reason NFS under load causes Ubuntu 20.04 to crash, haven't figured out exactly why yet though. But this rules out Longhorn being any part of the issue!

I'm going to go ahead and close this. I haven't had any issues with replication after I took the failing node out of my cluster (no idea what was causing the node to randomly reboot but it has nothing to do with Longhorn).


Firebase Admin services, including verify_id_token, causing network hanging in production

[READ] Step 1: Are you in the right place?

For issues related to the code in this repository file a GitHub issue.
If the issue pertains to Cloud Firestore, report directly in the
Python Firestore GitHub repo. Firestore
bugs reported in this repo will be closed with a reference to the Python Firestore
project.
For general technical questions, post a question on StackOverflow
with the firebase tag.
For general Firebase discussion, use the firebase-talk
google group.
For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.

[REQUIRED] Step 2: Describe your environment

Operating System version: Debian 10 (buster)
Firebase SDK version: ^9.13.0
Firebase Product: auth, firestore, storage (auth, database, storage, etc)
Python version: 3.11.3
Pip version: 23.2.1

[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
What happened? How can we make the problem occur?
This could be a description, log/console output, etc.
Relevant Code:
// TODO(you): code here to reproduce the problem

Hi all, really struggling with this one. I've had no issues with my Firebase for months, and even up to last night I had no issues at all - everything was working smoothly. But, all of a sudden, in the morning, one of our production servers (gunicorn + flask) stopped responding to requests, returning nothing.
I then went into debug mode, restarting nginx, etc, and putting prints all over the code. This showed me that the prints would go all the way up to the statement decoded_token = auth.verify_id_token(id_token) which is apart of one of my authentication modules utilizing firebase-admin. I then check this against my local machine (doing token issuing locally, then authenticating locally) and that worked fine.
When I use requests.get("https://accounts.google.com/o/oauth2/auth") on my production server, it takes around 60 seconds to respond. Once it responds, it is a success 200 with the auth page. The same occurs with https://oauth2.googleapis.com/token (longer, had to time it out when it reached 3 minutes), and I imagine all following Google APIs. If I request one of my own sites, it resolves quickly as expected. If I curl -I https://oauth2.googleapis.com/token, I swiftly get:
HTTP/2 404
content-type: text/html
date: Wed, 26 Jul 2023 01:52:59 GMT
server: scaffolding on HTTPServer2
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

In fact, I've also just tested requests.get("https://www.google.com") and get this hanging issue, but when doing curl "https://www.google.com", I get an instant response. This does not occur for GitHub, my portfolio website, Facebook, but does occur for YouTube (a Google service), I think this is the fundamental issue. Is this a Python issue?!
Further, if it was able to authenticate the token (rarely), the issue would move to the Firestore client and cause 30-60-300 second hangs and error out due to bad timeouts.
I really rarely resort to issuing bug requests and I really appreciate any help with this. I feel as if there is missing logging or some sort of issue occuring for my production server client which is not being logged, and I feel as if this hang is very odd - especially since it has not occurred for the last 3 months and started overnight. If I could get any further ideas on how to debug, that would be a great help.
Error from trying to verify the ID token
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/debian/module-autoreports/ar/databases/Firebase/FirebaseUtils.py", line 32, in token_to_uid
    decoded_token = auth.verify_id_token(id_token)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/firebase_admin/auth.py", line 220, in verify_id_token
    return client.verify_id_token(id_token, check_revoked=check_revoked)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/firebase_admin/_auth_client.py", line 127, in verify_id_token
    verified_claims = self._token_verifier.verify_id_token(id_token)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/firebase_admin/_token_gen.py", line 293, in verify_id_token
    return self.id_token_verifier.verify(id_token, self.request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/firebase_admin/_token_gen.py", line 392, in verify
    verified_claims = google.oauth2.id_token.verify_token(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/oauth2/id_token.py", line 133, in verify_token
    certs = _fetch_certs(request, certs_url)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/oauth2/id_token.py", line 99, in _fetch_certs
    response = request(certs_url, method="GET")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/firebase_admin/_token_gen.py", line 265, in __call__
    return self._delegate(
           ^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/auth/transport/requests.py", line 193, in __call__
    response = self.session.request(
               ^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/cachecontrol/adapter.py", line 57, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._validate_conn(conn)
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
    conn.connect()
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/connection.py", line 363, in connect
    self.sock = conn = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
KeyboardInterrupt

Error from trying to receive data from Firestore
  File "/home/debian/.local/lib/python3.11/site-packages/grpc/_channel.py", line 475, in __next__
    return self._next()
           ^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/grpc/_channel.py", line 881, in _next
    raise self
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
        status = StatusCode.DEADLINE_EXCEEDED
        details = "Deadline Exceeded"
        debug_error_string = "UNKNOWN:Deadline Exceeded {grpc_status:4, created_time:"2023-07-26T10:20:19.590514685+10:00"}"
>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/retry.py", line 191, in retry_target
    return target()
           ^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/timeout.py", line 120, in func_with_timeout
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/grpc_helpers.py", line 166, in error_remapped_callable
    raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.DeadlineExceeded: 504 Deadline Exceeded

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/debian/.local/lib/python3.11/site-packages/flask/app.py", line 2528, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/flask/app.py", line 1825, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/flask_cors/extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
                                                ^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/pp2-backend/custom_routes/background/background.py", line 601, in remote_period
    response = safe_store_access(store_id)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/pp2-backend/custom_routes/background/background.py", line 219, in safe_store_access
    store = db.utils.get("entity_pharmacy", store_id)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/ar/databases/Firebase/FirebaseUtils.py", line 68, in get
    snapshot = collection_reference.document(document).get()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/cloud/firestore_v1/document.py", line 403, in get
    response_iter = self._client._firestore_api.batch_get_documents(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/cloud/firestore_v1/services/firestore/client.py", line 910, in batch_get_documents
    response = rpc(
               ^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py", line 113, in __call__
    return wrapped_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/retry.py", line 349, in retry_wrapped_func
    return retry_target(
           ^^^^^^^^^^^^^
  File "/home/debian/.local/lib/python3.11/site-packages/google/api_core/retry.py", line 207, in retry_target
    raise exceptions.RetryError(
google.api_core.exceptions.RetryError: Deadline of 300.0s exceeded while calling target function, last exception: 504 Deadline Exceeded

Okay - update - I've investigating this, and GPT4 gave me a few things to test. The first being to disable IPv6 on my server (after using ip a to find that my server does have IPv6) to see if that fixes it. For some reason, after adding the following config lines to /etc/sysctl in sudo:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

And running sudo sysctl -p - this fixed it. I can now do requests.get to all Google services.
I'm also going to try to setup Google DNS to hopefully resolve this in the future.
I feel as if the issue could have been with my server provider - their IPv6 infra went down or something? Or Google changed some resolver in their Australian cloud services? The most annoying errors are the ones that occur outside of the codebase..

It could have been a network configuration issue in your environment. Glad you found a resolution. I will close this issue for now.


Display of total balance and unlocked balance are switched

2,483.644 TFT should be total balance
1,546,804.632 TFT should be unlocked balance
see screenshot for more details:

ignore.


Created document remains empty in powershell 7

Issue : in Powershell 7 the document is created but content is not added
Expected result : the document is created and added text is present
Actual result : the document is created but remains empty
reproduction steps : see sequence below
PS>$wd = New-WordDocument -FilePath c:\temp\repro.docx
PS>Add-WordText -WordDocument $wd -Text "This is the title" -HeadingType Heading1
ParentContainer           : None
ListItemType              : Bulleted
Pictures                  : {}
Hyperlinks                : {}
StyleName                 : Heading1
DocumentProperties        : {}
Direction                 : LeftToRight
IndentationFirstLine      : 0
IndentationHanging        : 0
IndentationBefore         : 0
IndentationAfter          : 0
Alignment                 : left
Text                      : This is the title
MagicText                 : {Xceed.Document.NET.FormattedText}
FollowingTable            :
LineSpacing               : 12
LineSpacingBefore         : 0
LineSpacingAfter          : 0
ParagraphNumberProperties :
IsListItem                : False
IndentLevel               :
IsKeepWithNext            : False
Xml                       : <w:p
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:pPr>
<w:pStyle w:val="Heading1" />
<w:ind />
</w:pPr>
<w:r>
<w:t>This is the title</w:t>
</w:r>
</w:p>
PackagePart               : System.IO.Packaging.ZipPackagePart
PS>Save-WordDocument $wd
The document is created c:\temp\repro.docx
PS>ii C:\temp\repro.docx
--> repro.docx is present but empty
REMARK : from powershell_ise it worked well, and prom powershell version 5 too
configuration : windows 11 home edition 21H2 (OS Build 22000.526)
PROCESSOR_ARCHITECTURE         AMD64
PROCESSOR_IDENTIFIER           Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
PS >$PSVersionTable
Name                           Value

PSVersion                      7.2.1
PSEdition                      Core
GitCommitId                    7.2.1
OS                             Microsoft Windows 10.0.22000
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0
PS >get-module pswriteword # installed in current user scope
ModuleType Version    PreRelease Name

Script     1.1.14                PSWriteWord
repro.docx

Yup, it's because libary doesn't support .NET Standard/.NET Core. They won't fix it, so this wont' be fixed.
However, I am working on a totally new PowerShell module which will work on Windows, Linux and MacOs including PS7.
It will have much more features and flexibility - but I'm currently working on .NET library before I dive into PowerShell.


Added the option to use nginx with Http2 to run the demos

Proposal to add a Based approach to run nginx with https and http2 enabled
resolve #298

Thank you for your initiative. While we think this stuff is nice material for a tutorial or possibly an own repo (which e.g. might include keyguard as submodule), we prefer to not include it here.


Use castor in ts-cli occur service not enabled

Describe the bug（Bug 描述）
I followed the document to install castor. When I use castor in ts-cli, an error has occurred: service not enabled.
openGemini CLI 0.1.0 (rev-revision)
Please use `quit`, `exit` or `Ctrl-D` to exit this program.
>>> use db
Elapsed: 270ns
>>> SELECT castor(value, 'BatchDIFFERENTIATEAD', 'detect_base', 'detect') FROM example GROUP BY tId

Elapsed: 2.676033ms
ERR: service not enabled

To Reproduce（Bug 复现步骤）
No response
Expected behavior（期望结果）
No response
Screenshots（屏幕截图）
No response
Logs（完整的错误日志）
No response
Additional context（其他的一些补充内容）
No response

ERR: service not enabled
This feature needs to be enabled in the configuration file（openGemini.conf for cluster，openGemini.singlenode.conf for single node）

[castor]   enabled = true
# the node IP addr which run pyworker
pyworker-addr = ["<IP_ADDRESS>:6666"]
 # default: 30, connection pool to pyworker
 connect-pool-size = 30
# default: 30 second
 result-wait-timeout = 30
 [castor.detect]
   algorithm = ['BatchDIFFERENTIATEAD']
   config_filename = ['detect_base']
 [castor.fit_detect]
   algorithm = ['DIFFERENTIATEAD']
   config_filename = ['detect_base']
 [castor.predict]
   algorithm = ['METROPD']
   config_filename = ['predict_base']
 [castor.fit]
   algorithm = ['METROPD']
   config_filename = ['fit_base']


Anytone DT-878UV Plus Codeplug error

The Radio Anytone AT-D878UV Plus gives an error after writing the codeplug onto the radio if the Firmware is higher than 1.18.
Showing on the display of the radio "Codeplug Error. Please Initialize Firmware".

I've been looking for a firmware identifier in the device.img and haven't been successful. I have a BTECH 6x2 which shares the same upload and download as the 878.
https://github.com/sergev/dmrconfig/blob/e47491e58b789d47143eb7bca05ef9c906716f4b/d868uv.c#L685-L690
I ran into an issue where the BTECH 6x2 updated to 2.03 and started having "Please Initialize Firmware" error messages. My solution at the point was to spin a bt6x2.c with almost exact same parameters as the d868uv.c but I had to work though little byte alignment caveats to regain compatibility.

I will look into that and play a bit with the files. Maybe i get it to work somehow

I will look into that and play a bit with the files. Maybe i get it to work somehow

Starting from this implementation, I reverse-engineered the code-plug further for my own project. It appears to work right now but I have not tested it thoroughly.
The only difference that was obvious to me, is the address for the contact bitmap https://github.com/OpenRTX/dmrconfig/blob/9e65be7ab704297ccb12dc6f6300a28039abc3a6/d868uv-map.h#L323
More over, the contact index in channel_t is actually a uint32_t little-endian
https://github.com/OpenRTX/dmrconfig/blob/9e65be7ab704297ccb12dc6f6300a28039abc3a6/d868uv.c#L171
This however, should not matter unless you configure a channel without a default contact by setting the index to 0xffffffff.

Starting from this implementation, I reverse-engineered the code-plug further for my own project. It appears to work right now but I have not tested it thoroughly.
The only difference that was obvious to me, is the address for the contact bitmap https://github.com/OpenRTX/dmrconfig/blob/9e65be7ab704297ccb12dc6f6300a28039abc3a6/d868uv-map.h#L323
More over, the contact index in channel_t is actually a uint32_t little-endian
https://github.com/OpenRTX/dmrconfig/blob/9e65be7ab704297ccb12dc6f6300a28039abc3a6/d868uv.c#L171
This however, should not matter unless you configure a channel without a default contact by setting the index to 0xffffffff.

@hmatuschek I'm wondering if that's the same issue that I'm seeing.  I've just got a new 878 and tried to read the pre-installed code plug which has 1549 TGs programmed in. Anything above 1000 gets corrupted:
  998   31482_S-TEXAS    Group   31482    -
  999   31483_WEST_TEXAS Group   31483    -
 1000   31484_SE-TEXAS   Group   31484    -
 1001   _                Unknown 166666665 Unknown
 1002   _                Unknown 166666665 Unknown
 1003   _                Unknown 166666665 Unknown
 1004   _                Unknown 166666665 Unknown

Then anything above 1311 isn't read:
 1308   _                Unknown 166666665 Unknown
 1309   _                Unknown 166666665 Unknown
 1310   _                Unknown 166666665 Unknown
 1311   _                Unknown 166666665 Unknown
 1312   _                Private 0        -
 1313   _                Private 0        -
 1314   _                Private 0        -
 1315   _                Private 0        -


Swashbuckle doesn't work with ASP.NET 5.0 on beta8

I'm not seeing beta8 released to the official nuget feed yet. According to this - https://github.com/aspnet/Home/wiki/Roadmap, it won't be released until October.
My goal for SB is to align it's beta releases with the "official" AspNet 5.0 beta releases. I don't want to release a package that has dependencies on the AspNet nightlies

Any timeframe to support the newly released beta 8? :D

Is this update going to be supported on nuget


Add miri to detect undefined behavior.

miri is a tool to help to discover undefined behavior in rust programs. We should add this in ci to ensure no vilation of rust spec.

For a high-level project like iceberg, perhaps we could avoid using unsafe?


initial value is false after upgrading to 3.1.0

flutter 13.19.4
The ValueNotifier initial value is shown as false, even if it is set to true
3.0.1 works

Looks like you have a mistake in the code, I double checked initialValue behaviour, it seems to me working good.
It will be more helpful if you have an example code to reproduce your case.
Other then that I did updated readme to show example with initialValue property set true.


Why can Project Admins not get permission on project dashboards?

Related to section "Set permissions for a project dashboard":
The owner of a project dashboard can give permissions to users or groups, but NOT for the project's Project Administrators. When selecting this group, the permission drop-downs are read-only with value "Not set".
Why does a Project Admin not have by default permissions on the project dashboard?
If this is intended (not a bug), please add a hint in the doc.

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

ID: b3a8994c-97ff-1347-d621-66ae5e9c11ce
Version Independent ID: 7e558469-28b6-bade-4ff0-4e2bf9a24e85
Content: Set dashboard permissions for team members - Azure DevOps
Content Source: docs/report/dashboards/dashboard-permissions.md
Product: devops
Technology: devops-analytics
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@KarstenSchaeffer - Thank you for your inquiry. I'm checking with the product team. It appears to be a product bug. I'll wait to hear back from them before taking action on updating the article.
As I looked into this, I found that I could create a custom security group in Azure DevOps at the org level and then add different Project Administrator groups for different projects. I found that I could add this to a dashboard security dialog and change the permissions. So this is a workaround for the time being.
Again, many thanks for letting us know of this problem.

@KarstenSchaeffer - Just to let you know, this is considered a bug and the product team has it on their backlog to fix.


Scala Stream Collector: Pubsub - java.lang.IllegalArgumentException. When building BatchingSettings, values recordLimit and byteLimit not read as Long.

Scala Stream Collector - Pubsub:
Version: 1.0.1 - Master Branch
Expected behavior:
Load batching settings from bufferConfig
Actual behavior:
Try to load from bufferConfig, but gets an java.lang.IllegalArgumentException. When building BatchingSettings, because values for recordLimit and byteLimit gets loaded as a none Long from bufferConfig.
Steps to reproduce:
Just build and run the pubsub collector with example config, where basic settings has been created.
Here is an instruction: link
Exception
Exception in thread "main" java.lang.IllegalArgumentException: elementCountThreshold must be either unset or positive
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:142)
	at com.google.api.gax.batching.BatchingSettings$Builder.build(BatchingSettings.java:167)
	at com.snowplowanalytics.snowplow.collectors.scalastream.sinks.GooglePubSubSink$.batchingSettings(GooglePubSubSink.scala:78)
	at com.snowplowanalytics.snowplow.collectors.scalastream.sinks.GooglePubSubSink$.createAndInitialize(GooglePubSubSink.scala:41)
	at com.snowplowanalytics.snowplow.collectors.scalastream.GooglePubSubCollector$.$anonfun$main$2(GooglePubSubCollector.scala:35)
	at scala.util.Either.flatMap(Either.scala:341)
	at com.snowplowanalytics.snowplow.collectors.scalastream.GooglePubSubCollector$.main(GooglePubSubCollector.scala:28)
	at com.snowplowanalytics.snowplow.collectors.scalastream.GooglePubSubCollector.main(GooglePubSubCollector.scala)

I have created a PR and added to the necessary for me to move forward. Hope that others will find it useful too.

Ok, it seems that I got this here wrong. Sorry!
recordLimit value needed to be positive number, and I had choosen 0 (zero) which is not supported.
I will close the issue.


Cache Boost.Test Symbols for Improved Performance

As noted in issue #207, there has been an impact on performance due to recent submissions.
The issue was made even more apparent when users use the test.boost[d].exe module suffix. Reason being is that due to the new --version symbol checks, the fast-path was not being respected and symbols were still being looked up.
This solution remedies the issue by caching symbol lookup results and changes the semantics of <ForceListContent>. <ForceListContent> has been deprecated in favour of <ForceBoostVersion> by which users are expected to identify the Boost version in use. This allows the runtime to better identify module capabilities (i.e. --list_content and --version). In relation to this, semantics for the fast-path have been slightly altered and a module which ends in test.boost[d].exe is now treated as a Boost.Test module compiled using Boost 1.59 i.e. has the --list_content capability but not the --version capability.
Addresses #207
P.S. This PR does not include suggestions as indicated in issue #214
P.P.S. For testing and confirmation, AppVeyor should be configured to build PR submission as well so a build should be available following PR submission

team 1 / project 1:
one solution containing test projects only
all 90 projects follow the naming convention: *.test.boostd.exe
Boost 1.61
4665 unit tests
no runsetting files
size of EXE 1...8 MB, some up to 14MB
size of PDB 10...40MB, some up to 120MB

Replace debug symbol lookup with Boyer Moore search <IP_ADDRESS>
    VS2015: Discover test finished: 4665 found (0:01:06,1742027)

Cache Boost.Test Symbols for Improved Performance <IP_ADDRESS>
    VS2015: Discover test finished: 4665 found (0:01:05,3178651)

team 2 / project 2:
one solution containing test projects and productive code
218 projects some follow the naming convention: *.test.boostd.exe, some not
Boost 1.59
2190 unit tests
no runsetting files
size of EXE 2...30 MB, about 1/3 70MB to 100MB
size of PDB 20...500MB; most > 100MB
time for discover tests: VS2015: about 2 minutes

Replace debug symbol lookup with Boyer Moore search <IP_ADDRESS>
    VS2015: Discover test finished: 2190 found, about 2 minutes

Cache Boost.Test Symbols for Improved Performance <IP_ADDRESS>
    VS2015: Discover test finished: 2190 found, about 2 minutes

use #217 instead


Is there any chance to convert all stickers of a package to gifs?

Converting tgs to gif one by one, may not be efficient.
This bot TG Downloader could download all stickers of a package, but it doesn't support animated stickers, such as https://t.me/IMG2D.
Anyway, this is a great bot, Thanks a lot.

Hi, @sudrizzz!
You can use @Stickerdownloadbot. Send him a link to a sticker pack and then pass a directory with downloaded .tgs stickers:
node cli.js /home/ed/Downloads/super_pack/

@tgstogifbot now supports batch mode. Just send him a link to sticker pack or its name, and you will receive all converted stickers in it.


Swagger Annotations for v1.2 doesn't generate "info"

There is no way we can generate info in JSON generated by swagger annotations for v1.2

I'm guessing this is related to swagger-core, but it's not directly related to the spec. Please open the ticket on the relevant project.


Adding information about Admin Center updates for Office Scripts using Power Automate

There's a new Admin Center option for controlling use of Office Scripts with Power Automate:

This PR documents that option.

@denisebmsft When should we expect this PR to be reviewed and merged?
Thanks!

@denisebmsft When should we expect this PR to be reviewed and merged?
Thanks!

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@SKjerland Please merge this PR. Thanks.

@SKjerland Please merge this PR. Thanks.

@denisebmsft When should we expect this PR to be reviewed and merged?
Thanks!

Hello @AlexJerabek! You're in good hands with @SKjerland. She'll review and merge this.

@denisebmsft When should we expect this PR to be reviewed and merged?
Thanks!

Hello @AlexJerabek! You're in good hands with @SKjerland. She'll review and merge this.

@SKjerland, can this please be merged soon?

@SKjerland, can this please be merged soon?

<EMAIL_ADDRESS>``

<EMAIL_ADDRESS>``

@SKjerland, @denisebmsft, These admin center changes are live and we need these doc updates out.

@SKjerland, @denisebmsft, These admin center changes are live and we need these doc updates out.

Sorry for the delay, everyone! All notifications from GitHub have been going to a different folder than my inbox, and I haven't seen any of these requests. Seems my Outlook rule broke somehow.

Sorry for the delay, everyone! All notifications from GitHub have been going to a different folder than my inbox, and I haven't seen any of these requests. Seems my Outlook rule broke somehow.


dragonfly-reverb: 1.0.0 -> 1.1.4

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

The update looks good, still builds.
But you only package the library - why not also copy the graphical application to the output? :)

The license was changed to GPL3: https://github.com/michaelwillis/dragonfly-reverb/commit/819696245495c9e6696d13c3fd16cf36342f68ef#diff-9879d6db96fd29134fc802214163b95a

Thanks for the feedback and good catch on the license!
All done.


BUG:  when delete master , get apiserver config found etcd address is not sync newset config yet.

Sealos Version
7045a3b
How to reproduce the bug?
No response
What is the expected behavior?
No response
What do you see instead?
No response
Operating environment
- Sealos version:
- Docker version:
- Kubernetes version:
- Operating system:
- Runtime environment:
- Cluster size:
- Additional information:

Additional information
No response

Add more details?

when delete master , get apiserver config  found etcd address is not sync newset config yet.

https://github.com/labring/sealos/blob/88c1746ba7b9a477afc792f8210e6b3b704db363/pkg/runtime/kubeadm.go#L380
<IP_ADDRESS> is better ?


Add delete option

#673  👈
main

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

Join @alanvardy and the rest of your teammates on  Graphite


index: storage: differentiate between key and prefix

Related https://github.com/iterative/dvc/pull/9807

Codecov Report
Attention: 4 lines in your changes are missing coverage. Please review.

Files
Coverage Δ

src/dvc_data/index/index.py
71.85% <42.85%> (-0.19%)
:arrow_down:

:loudspeaker: Thoughts on this report? Let us know!.


❓ - icon image and icon title

Description
hello, first of all thanks for the package.
i need examples about icon image and icon content(title). can you help me.
public placemarkOptions: ymaps.IPlacemarkOptions = {}

// this is working.
this.placemarkOptions.iconColor = "red"

// this is not working
this.placemarkOptions.iconImageHref = "assets/img/incident.png"

<ya-map [center]="center" [options]="mapOptions">
    <ya-placemark [geometry]="center" [options]="placemarkOptions" (yadragend)="draggend($event)"></ya-placemark>
</ya-map>

I also want to use title and image for each icon in multiroute.
<ya-multiroute  [referencePoints]="markers"></ya-multiroute>

Can you share examples for these?

Hi!
To use the local image check this:

https://stackblitz.com/edit/custom-placemark?file=src%2Fapp%2Fapp.component.ts

To customize a multiroute check this:

https://yandex.com/dev/maps/jsbox/2.1/multiroute_view_options/ - example
https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRoute#param-options - options

Thank you very much.

If you have any questions, feel free to ping me

You should define them in properties, not options. Check this - https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/Placemark#param-properties. The library is just a wrapper, it takes your inputs and pass them to the API.

Thanks a lot, but how do we do the same in multiRoute objects. there is no multiRoute properties parameter.
I couldn't find an example of iconContent for multiRoute here
https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/multiRouter.MultiRoute#param-options
The code below is the running code.

  <ya-map [center]="center" [options]="mapOptions" [state]="{ controls: [] }">
      <ya-multiroute
        [referencePoints]="markers"
        [options]="multirouteOptions"
      ></ya-multiroute>
  </ya-map>

public multirouteOptions: any = {}
ngOnInit(): void {
    this.multirouteOptions = {
      wayPointStartIconLayout: "default#imageWithContent",
      wayPointStartIconImageHref: "assets/img/incident.png",
      wayPointStartIconImageSize: [30, 30],
      wayPointStartIconImageOffset: [-15, -15],
      wayPointFinishIconLayout: "default#imageWithContent",
      wayPointFinishIconImageHref: "assets/img/officeiconu.png",
      wayPointFinishIconImageSize: [30, 30],
      wayPointFinishIconImageOffset: [-15, -15]
    }
  }

In this example in customizeSecondPoint they access multiRoute.getWayPoints().get(1) and set iconContentLayout using yandexWayPoint.options.set. You can try to do the same thing.
To access multiRoute you need to use (ready) on your ya-multiroute to get the instance.
<ya-multiroute
  [referencePoints]="markers"
  [options]="multirouteOptions"
  (ready)="onReady($event)"
></ya-multiroute>

onReady({ target }) {
  // do magic with the target, it's the instance
}

You can also pass a geometry.Point to reference points (see this). To create a [geometry.Point](https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/geometry.Point) you can use ymaps from a map ready event. And then you can create a point with your own options. Instead of modifying them in a multiroute.

  <ya-map [center]="center" [options]="mapOptions" [state]="{ controls: [] }">
      <ya-multiroute
        [referencePoints]="markers"
        [options]="multirouteOptions"
        (ready)="onReady($event)"
      ></ya-multiroute>
  </ya-map>

onReady({ target }) {
    const yandexWayPoint = target.getWayPoints().get(1)
    yandexWayPoint.options.set({
        iconContentLayout: ymaps.templateLayoutFactory.createClass(
          'TESTandex'
        )
    })
}

result: undefined, i thing because

I got stuck in Angular typescript rules but that's okay, thank you for the solution and for taking the time to reply.


hardhat_mine produces block timestamps incompatible with hardhat

🐛 Bug Report for zkSync Era In-Memory Node
📝 Description
Hardhat testsuite expects different timestamps in blocks produced by hardhat_mine called with an explicit interval parameter. As the results for the default interval are compatible, an error in test node is suspected.
🔄 Reproduction Steps
Run the hardhat_mine test of the modified hardhat testsuite (available at https://github.com/eqlabs/hardhat ) against the latest test node.
🤔 Expected Behavior
As the hardhat_mine is a supported API, the test should pass.
😯 Current Behavior
The test fails.
🖥 Environment

Rust version: nightly-2024-01-01, as specified in rust-toolchain.toml
Operating System & Version: Ubuntu 20.04.6

📎 Log Output
$ mocha test/helpers/mine.ts -grep "should accept an interval"

  mine
    1) should accept an interval

  0 passing (507ms)
  1 failing

  1) mine
       should accept an interval:

      AssertionError: expected 59401001 to equal 60401
      + expected - actual

      -59401001
      +60401

      at Context.<anonymous> (test/helpers/mine.ts:54:12)
      at processTicksAndRejections (node:internal/process/task_queues:95:5)

Partial (but not complete) fix is in https://github.com/matter-labs/era-test-node/pull/321 .


compile_def_function() is too long.  Move out the code to compile the body of a function

thanks!

Hi Yegappan,
Coverity complains about this one here however: https://scan5.scan.coverity.com/#/project-view/41242/10101?selectedIssue=1596610
I think this is a false positive?

Hi Christian,
On Tue, Apr 23, 2024 at 11:46 PM Christian Brabandt <
@.***> wrote:

Hi Yegappan,
Coverity complains about this one here however:
https://scan5.scan.coverity.com/#/project-view/41242/10101?selectedIssue=1596610
I think this is a false positive?
Yes.  This is a false positive.  I ran a few tests to compile a def
function with different types
of comments under valgrind to make sure that the vim9_bad_comment()
function doesn't
perform an out-of-bounds access.  I also compared the code before and after
the
refactoring to make sure that the logic is not changed.

Regards,
Yegappan

Thanks. Yeah, I starred at it for a while, but it wasn't clear to me how the buffer could overrun. Thanks for double checking!


cannot download from redirect.googlevideo.com

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[x] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

i cannot download video from googlevideo
my youtube-dl version
(python)[hadn@host-10-130-10-36 cli]$ youtube-dl --version
2<IP_ADDRESS>
how to make youtube-dl work
thank you
(python)[hadn@host-10-130-10-36 cli]$ youtube-dl -v https://redirector.googlevideo.com/videoplayback?requiressl=yes&id=a6c231b2d8133286&itag=18&source=webdrive&app=explorer&ip=2001:19f0:4009:4247:5400:ff:fe25:9c8&ipbits=32&expire=1464947494&sparams=requiressl%2Cid%2Citag%2Csource%2Cip%2Cipbits%2Cexpire&signature=2D50B2CA3ADCDBEE5AB424173F64E4E1C3F72222.26491A37EC54513C7D0D8E79F368F786A974BE38&key=ck2&mm=31&mn=sn-ab5l6nl6&ms=au&mt=1464932831&mv=u&pl=38
[1] 16902
[2] 16903
[3] 16904
[4] 16905
[5] 16906
[6] 16907
[7] 16908
[8] 16909
[9] 16910
[10] 16911
[11] 16912
[12] 16913
[13] 16914
[14] 16915
[15] 16916
[16] 16917
(python)[hadn@host-10-130-10-36 cli]$ [debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'https://redirector.googlevideo.com/videoplayback?requiressl=yes']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.7.5 - Linux-3.10.0-327.4.5.el7.x86_64-x86_64-with-centos-7.2.1511-Core
[debug] exe versions: ffmpeg 2.6.5, ffprobe 2.6.5
[debug] Proxy map: {}
[generic] videoplayback?requiressl=yes: Requesting header
WARNING: Could not send HEAD request to https://redirector.googlevideo.com/videoplayback?requiressl=yes: HTTP Error 404: Not Found
[generic] videoplayback?requiressl=yes: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 404: Not Found (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/home/hadn/python/lib/python2.7/site-packages/youtube_dl/extractor/common.py", line 388, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/home/hadn/python/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 1946, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib64/python2.7/urllib2.py", line 437, in open
response = meth(req, response)
File "/usr/lib64/python2.7/urllib2.py", line 550, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib64/python2.7/urllib2.py", line 475, in error
return self._call_chain(*args)
File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib64/python2.7/urllib2.py", line 558, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
[1]   Exit 1                  youtube-dl -v https://redirector.googlevideo.com/videoplayback?requiressl=yes
[2]   Done                    id=a6c231b2d8133286
[3]   Done                    itag=18
[4]   Done                    source=webdrive
[5]   Done                    app=explorer
[6]   Done                    ip=2001:19f0:4009:4247:5400:ff:fe25:9c8
[7]   Done                    ipbits=32
[8]   Done                    expire=1464947494
[9]   Done                    sparams=requiressl%2Cid%2Citag%2Csource%2Cip%2Cipbits%2Cexpire
[10]   Done                    signature=2D50B2CA3ADCDBEE5AB424173F64E4E1C3F72222.26491A37EC54513C7D0D8E79F368F786A974BE38
[11]   Done                    key=ck2
[12]   Done                    mm=31
[13]   Done                    mn=sn-ab5l6nl6
[14]   Done                    ms=au
[15]-  Done                    mt=1464932831
[16]+  Done                    mv=u

https://github.com/rg3/youtube-dl#video-url-contains-an-ampersand-and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command.


add missing header guards

I noticed that in those two files the header guard is missing.

Nice spot! I rebased the PR as the CI should be fixed now.


Incorrect "Owned By" data for certain inscriptions

Quantum Cats completed their mint today and sent inscriptions to their holders. These inscriptions are not appearing in Leather wallet Collectibles at the moment, I believe because the "Owned By" wallet address is incorrect.
Example:
https://ordinals.hiro.so/inscription/deff9507e7dfd068b6b2facf38df83c6e34ba58e164d6351e64c390f89b06fc1i562
Hiro reports this inscription is owned by bc1p7xf7dnzkejj47s2706l2tqq5a33zk0vlpjgg93djleagp3my6xes68jznt
Other indexers report this inscription is owned by bc1pdfmqcefzn3t28lzdvv8s5kv7t25pnq49t4sqtnkyujt5kytt4njqydkqup (which is the correct owner)
https://ordinals.com/inscription/deff9507e7dfd068b6b2facf38df83c6e34ba58e164d6351e64c390f89b06fc1i562
https://www.ord.io/53789502
https://ordiscan.com/inscription/53789502
Confirmed on multiple Quantum Cats: https://ordinals.hiro.so/inscription/4b31771df21656d2a77e6fa18720a6dd94b04510b9065a7c67250d5c89ad2079i260
This will likely be fixed by issue #294 but it seemed a little different, since in this case the inscription number is actually correct but the reported owner is wrong.

Hi @brandonmarshall-tm this issue will be fixed by https://github.com/hirosystems/ordinals-api/issues/294, marking as duplicate


Implicit property mapping based on naming overrides explicit

After I create the issue I will add code to demonstrate the issue

This commit features a test demonstrating the issue. It also includes my proposal for logic to fix it.
However, with these changes ProviderTest2#shouldMapWithPropertyProviderViaPropertyMap fails.
I do not entirely understand how providers should work and thus can not figure out the correct logic to address this regression.

The issue in the test is that the unverifiedRequester field in the Requester class, matches the by name and the name of the mapped property in this explicit mapping:
map(source.getRequester()).setRequester(null);
And thus results in all requester properties being null in the resulting object (in the test the unverifiedRequester is never initialized and thus remains null)

Thanks for this report, your case is a bit complicated, I will take a look, thanks.

Hi @bstrandjev - I had a PR that fixed this problem.
My idea is, we should not traversal the destination properties if there is already a TypeMap defined in our TypeMapStore.
But with this PR, you should change the ordering of adding the mappings to the ModelMapper as below.
modelMapper.addMappings(new PropertyMap<Requester, PersonDetails>() {
    @Override
    protected void configure() {
        map(source.getPerson().getFirstName()).setFirstName(null);
        map(source.getPerson().getLastName()).setLastName(null);
    }
});
modelMapper.addMappings(new PropertyMap<Order, OrderView>() {
    @Override
    protected void configure() {
        map(source.getRequester()).setRequester(null);
    }
});

Is this PR can fix your problem? Thanks!

I confirm the test that I wrote passes with your PR. However:

I want to spend some more time to understand the nature of your change
I do not like the fact that the order of adding the mappings actually matter. The defect I created was a result of a bug that took me DAYS to localize. I definitely doubt that anyone stumbling upon the same problem will know from the very beginning that there is a particular order of adding the mappings that will work for him.

Yeah, agreed with you. The ordering about TypeMap to be added into the modelmapper is also been discussed at #283.
I know it's not very straightforward, but it's just how ModelMapper works.
If TypeMap A depends on TypeMap B, then you should add TypeMap B before TypeMap A.
For your case, maybe you can try disabled the setImplicitMappingEnabled then you can ignore the ordering.

Maybe you cited the wrong issue in

is also been discussed at #283.

Can you please check?
The suggestion

For your case, maybe you can try disabled the setImplicitMappingEnabled then you can ignore the ordering.

Is not good either, I think, because it is yet another solution that you will identify only if you know what the issue is and how to fix it (which will most certainly not be the case for any person that hits the same problem as me).
I truly believe that the direction this should be solved with is to completely disallow implicit mappings overriding explicit ones. Such logic should not depend on the ordering of adding mappings, as the implicit mappings are only calculated after all explicit ones are added.

Okay, I will consider if there can be some improvement. Thanks for your feedback.


GPL-897 Housekeeping -  leading and trailing space for the plate_barcode, rna_id [Hinxton #713427] [Heron]

Describe the Housekeeping
Step 1: Find records if in Lighthouse_sample table & LabWhere
select distinct plate_barcode from lighthouse_sample where plate_barcode like '% %';
25 records
RNA008583
AP-rna-00115445
RNA020797
AP-rna-00026995
GLA008074R
GLA008028R
002127987
GLA010285R
AP-rna-00128103
GLA019321R
GLA019716R
GLA019715R
GLA019659R
GLA019717R
GLA019650R
GLA019651R
AP-rna-00142151
AP-rna-00145460
AP-rna-00146061
AP-rna-00130886
AP-rna-00148159
RNA427769
AP-rna-00152533-rna-00152877
AP-rna-00190145
RNA459749
Blocking issues
Describe any other issues or tickets that may be blocking this change.
Additional context
Ian W wrote (Thursday, 25 February 2021 at 08:18)
We've noticed that some records in lighthouse_sample have a leading space for the plate_barcode, rna_id
Sometimes this leading space also occurs in LabWhere and sometimes it doesn't
Please can you fix this
Thanks,
Ian
As an example:
mysql> select root_sample_id, plate_barcode FROM lighthouse_sample WHERE rna_id = 'AP-rna-00145460_A05';
Empty set (11.98 sec)
mysql> select root_sample_id, plate_barcode FROM lighthouse_sample WHERE rna_id = ' AP-rna-00145460_A05';
+----------------+------------------+
| root_sample_id | plate_barcode    |
+----------------+------------------+
| AAD02265461    |  AP-rna-00145460 |
+----------------+------------------+
1 row in set (11.59 sec)
mysql> SELECT labware.friendly_name AS labware_name , DATE(e.occured_at) AS updated_at , location.friendly_name AS location_barcode , mt.value AS location_parentage   FROM mlwh_events.events e JOIN mlwh_events.metadata mt ON mt.event_id=e.id  JOIN mlwh_events.roles labware_r ON e.id = labware_r.event_id JOIN mlwh_events.subjects labware ON labware.id = labware_r.subject_id JOIN mlwh_events.role_types labware_rt ON labware_r.role_type_id = labware_rt.id  JOIN mlwh_events.roles location_r ON e.id = location_r.event_id JOIN mlwh_events.subjects location ON location.id = location_r.subject_id JOIN mlwh_events.role_types location_rt ON location_r.role_type_id = location_rt.id     JOIN (     SELECT     labware.friendly_name AS plate     , MAX(e.occured_at) AS occured_at     FROM mlwh_events.events e          JOIN mlwh_events.roles labware_r ON e.id = labware_r.event_id     JOIN mlwh_events.subjects labware ON labware.id = labware_r.subject_id     JOIN mlwh_events.role_types labware_rt ON labware_r.role_type_id = labware_rt.id          JOIN mlwh_events.roles location_r ON e.id = location_r.event_id     JOIN mlwh_events.subjects location ON location.id = location_r.subject_id     JOIN mlwh_events.role_types location_rt ON location_r.role_type_id = location_rt.id       WHERE e.lims_id='LABWHERE'     AND labware_rt.key = 'labware'     AND location_rt.key = 'location'     GROUP BY plate ) AS last_plate_event ON labware.friendly_name = last_plate_event.plate AND e.occured_at = last_plate_event.occured_at  WHERE e.lims_id='LABWHERE' AND labware_rt.key = 'labware' AND location_rt.key = 'location' AND mt.key = "location_info"  AND labware.friendly_name IN ('AP-rna-00115445', 'AP-rna-00145460', ' GLA019659R');
+-----------------+------------+-----------------------------------+---------------------------------------------------------------------+
| labware_name    | updated_at | location_barcode                  | location_parentage                                                  |
+-----------------+------------+-----------------------------------+---------------------------------------------------------------------+
|  GLA019659R     | 2020-09-16 | lw-uk-biocentre-box-gsw-171-17143 | Sanger / Ogilvie / Heron Boxes Destroyed - UK Biocentre box GSW 171 |
| AP-rna-00115445 | 2020-07-23 | lw-ap-replacement-3-16358         | Sanger / Ogilvie / Heron Boxes Destroyed - AP replacement 3         |
| AP-rna-00145460 | 2020-09-30 | lw-uk-biocentre-box-ap-318-17255  | Sanger / Ogilvie / Heron Boxes Destroyed - UK Biocentre box AP 318  |
+-----------------+------------+-----------------------------------+---------------------------------------------------------------------+

Also deal with trailing whitespace as per https://github.com/sanger/crawler/issues/276

Plate barcodes not re-inserted without whitespaces by another upload:
select barcodes_without_whitespaces.plate_barcode

from

(select distinct replace(barcodes_with_whitespaces.plate_barcode, ' ', '') as plate_barcode from (
    select distinct plate_barcode as plate_barcode FROM lighthouse_sample WHERE rna_id like '% %'
  ) as barcodes_with_whitespaces
) as barcodes_without_whitespaces

left outer join lighthouse_sample on lighthouse_sample.plate_barcode=barcodes_without_whitespaces.plate_barcode
where lighthouse_sample.plate_barcode is null;

13 rows

None of the plates were in dart.

Plan to update mlwh:

update lighthouse_sample
set rna_id=trim(rna_id), plate_barcode=trim(plate_barcode)
where plate_barcode in (
  select distinct plate_barcode as plate_barcode FROM lighthouse_sample WHERE rna_id like '% %'
);

No plates were created with whitespaces after 15/Dec/2020, code was modified to fix that behaviour from 16/Dec as says the issue: https://github.com/sanger/crawler/issues/214

Should Step 1 about have the below check on plate_barcode too?
eg
WHERE rna_id LIKE '% %' OR WHERE plate_barcode LIKE '% %';


[PE-D][Tester A] Editing of email field for person allows inproper emails to be accepted.

Similar to the bug of adding invalid emails to the person, the edit person function also unfortunately has the same bug.
Listing all persons (list-person)

Editing Alice's email to alice@yahoocom (edit-person 1 e/alice@yahoocom)

Similar to the user guide for adding a person, under 2.4.3 Edit person, it says that we "should specify the email in proper email format, e.g<EMAIL_ADDRESS>

Labels: severity.Low type.FunctionalityBug
original: Effixion/ped#3

Thanks for the bug report. Closed because same underlying issue as #123


Removed delay in Panagram.prototype.end

Because it's done automatically. You'd have to manually do it when you set a timeout, though.

Where is it done automatically?

Umm... idek how to answer that question, lol. Try using something like /eval this.add('#SwegPancakes69'); in any room

That's only "automatically updating" because it's also sending other parts from the eval, which is what I was saying for why this needs this.room.update() here.
Otherwise, this will not automatically update until someone talks or something which could then provide an unfair advantage as well as confusion.

Hmm alright, I'll add it back in.

Remember we had tested this before with panagrams on the test server by having it add to another room, and we both saw how it doesn't automatically update unless you tell it to.

Right, okay.
(That may or may not be because the room we added to wasn't the room we were in)

(It was because the server didn't add anything else to that room until we talked :-1:)


Set up Github Actions

Inspiration: https://github.com/polkadot-js/api/blob/master/.github/workflows/pr-any.yml
Only the lint job is needed for now I guess
To do after #8

YJ I assigned you, because I can't see the Actions tab so you might need special permissions to do that.

Oh wait, I do see the Actions tab. Meh, you're already assigned, so I'll leave it for you :p

that's funny, I don't see it :/


goxel: 0.7.3 -> 0.8.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/goxel/versions.
These checks were done:

built on NixOS
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/goxel --help’ got 0 exit code
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/goxel -V’ and found version 0.8.0
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/goxel --version’ and found version 0.8.0
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/.goxel-wrapped --help’ got 0 exit code
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/.goxel-wrapped -V’ and found version 0.8.0
ran ‘/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/.goxel-wrapped --version’ and found version 0.8.0
found 0.8.0 with grep in /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0
directory tree listing: https://gist.github.com/ee8a96a0b785c0293e1e477b693c483b

cc @tilpner for review

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: goxel
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: goxel
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/goxel
shrinking RPATHs of ELF executables and libraries in /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0
shrinking /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin/.goxel-wrapped
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0/bin
patching script interpreter paths in /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0
checking for references to /build in /nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0...
/nix/store/af30rki4lvc9cinx3nxq1nqdnfgi6g1b-goxel-0.8.0

Success on aarch64-linux (full log)
Attempted: goxel
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
Wrapping program /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0/bin/goxel
shrinking RPATHs of ELF executables and libraries in /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0
shrinking /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0/bin/.goxel-wrapped
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0/bin
patching script interpreter paths in /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0
checking for references to /build in /nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0...
/nix/store/1l4k91l7aby8gy59nrcf9dmfc1jy890l-goxel-0.8.0

Just noticed goxel still creates imgui.ini in the current working directory. This can be disabled with
diff --git a/src/gui.cpp b/src/gui.cpp
index 9b7236c..a8a11b2 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -314,6 +314,8 @@ static void init_ImGui(const inputs_t *inputs)
     ImGuiIO& io = ImGui::GetIO();
     io.DeltaTime = 1.0f/60.0f;

+    io.IniFilename = NULL;
+
     io.KeyMap[ImGuiKey_Tab]         = KEY_TAB;
     io.KeyMap[ImGuiKey_LeftArrow]   = KEY_LEFT;
     io.KeyMap[ImGuiKey_RightArrow]  = KEY_RIGHT;

It can either be fixed right in this PR, or I'll PR this patch after this one is merged.

@tilpner  Thank you. Since this PR was auto-generated, let's merge it first and do your patch separately.

I've added the patch in #39801


[Enhancement] Add diff lib for kcl test assert errors.

Enhancement
For example, I want to obtain diff information from the error message in the following code.
import yaml
import difflib

test_merge = lambda {
    original = {
        "metadata": {
            "name": "my-deployment",
            "labels": {
                "app": "my-app",
            },
        },
        "spec": {
            "replicas": 3,
            "template": {
                "spec": {
                    "containers": [
                        {
                            "name": "my-container-1",
                            "image": "my-image-1",
                        },
                        {
                            "name": "my-container-2",
                            "image": "my-image-2",
                        },
                    ],
                },
            },
        },
    }

    patch = {
        "metadata": {
            "labels": {
                "version": "v1",
            },
        },
        "spec": {
            "replicas": 4,
            "template": {
                "spec": {
                    "containers": [
                        {
                            "name": "my-container-1",
                            "image" = "my-new-image-1",
                        },
                        {
                            "name": "my-container-3",
                            "image" = "my-image-3",
                        },
                    ],
                },
            },
        },
    }
    expected = yaml.decode("""\
metadata:
  name: my-deployment
  labels:
    app: my-app
    version: v1
  spec:
    replicas: 4
    template:
      spec:
        containers:
        - name: my-container-1
          image: my-new-image-1
        - name: my-container-2
          image: my-image-2
        - name: my-container-3
          image: my-image-3
""")

    got = merge(original, patch)
    diff = difflib.diff(got, expected)
    assert str(got) == str(expected), "expected ${expected}, got ${got}, the diff is ${diff}"
}

Hi @professorabhay, I'm glad you're still working here. The purpose of this issue is to use KCL to develop a difflib library for string diff, just like how Python's difflib does. The things that need to be done are as follows:

Create a new module called difflib in the kcl-lang/modules repository using kcl v0.7+ and submit the PR to here
Implementing a simple difflib library using KCL can display the diff of string arrays, just like:

import difflib

print("\n".join(difflib.ndiff("a\na".splitlines(), "a\nb".splitlines())))

The output is
  a
- a
+ b

Ok, Thanks for the update @Peefy.
Take a look at the structure - [KCL v0.7+]

Ok, Thanks for the update @Peefy.
Take a look at the structure - [KCL v0.7+]

Good Job

What to write in this main.k file or should I raise the PR?

What to write in this main.k file or should I raise the PR?

You can raise the PR. The next step is to write the implementation of difflib in main.k, and you can refer to the implementation of difflib in Python

Please take a look to that -
class DiffLib {
    companion object {
        fun diff(seq1: CharSequence, seq2: CharSequence): List<String> {
            val result = mutableListOf<String>()

            val dp = Array(seq1.length + 1) { IntArray(seq2.length + 1) }

            for (i in 0..seq1.length) {
                for (j in 0..seq2.length) {
                    when {
                        i == 0 -> dp[i][j] = j
                        j == 0 -> dp[i][j] = i
                        seq1[i - 1] == seq2[j - 1] -> dp[i][j] = dp[i - 1][j - 1]
                        else -> dp[i][j] = 1 + minOf(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1])
                    }
                }
            }

            var i = seq1.length
            var j = seq2.length

            while (i > 0 || j > 0) {
                when {
                    i > 0 && j > 0 && seq1[i - 1] == seq2[j - 1] -> {
                        result.add("  ${seq1[i - 1]}")
                        i--
                        j--
                    }
                    j > 0 && (i == 0 || dp[i][j - 1] <= dp[i - 1][j]) -> {
                        result.add("+ ${seq2[j - 1]}")
                        j--
                    }
                    i > 0 && (j == 0 || dp[i][j - 1] > dp[i - 1][j]) -> {
                        result.add("- ${seq1[i - 1]}")
                        i--
                    }
                }
            }

            return result.reversed()
        }
    }
}

The logic is right. You can translate it to KCL and raise a PR


[azservicebus] Adding Schedule/CancelMessage and SendMessages() functions

Filling out some more missing functionality in the Sender:

Adding in Schedule/CancelMessage functions (single and multiple)
Adding in the SendMessages call
Fixing some small things in the API where I didn't properly follow through using the SendableMessage interface.

/azp run go - azservicebus


Export Agents in GUID order for consistent ordering [#1174]

Export Agents in GUID order so that the result is amenable to version control tracking
Addresses #1174

I think this makes sense.  Did you manually test it and it all looks good and imports okay?

@cantino Absolutely tested this, both with the Specs, and manually.   The link section changes based on ordering but the Agents are readily trackable, and for our purposes are sufficient for describing changes when we're familiar with the scenario(s)

I think this is a good improvement.  Thanks!


fix: Stop the "could not map" flood of logs

With the recent changes to the boolean deleted field, we have a flood of logs like this:
Could not map 'Domain.deleted'; Maybe a fragment in 'Boolean' is considered a simple type; Mapper continues with deleted

Where it's repeated for several of the domain classes, in place of Domain.
The logs don't seem to have any functional impact anywhere, but are a very loud noise. This PR fixes this noise.

/ok-to-test<EMAIL_ADDRESS>

/ok-to-test<EMAIL_ADDRESS>