Openebs not seeing two identical physical USB-SSD devices

Description
I have a arm k3s cluster with 5 nodes
Openebs v1.5.0
Two Samsung T5 SSD disk connected to third and fourth node
Wiped to clear state without any fs
pi@rpi-03:~$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931.5G  0 disk
mmcblk0     179:0    0  59.5G  0 disk
├─mmcblk0p1 179:1    0   256M  0 part /boot/firmware
└─mmcblk0p2 179:2    0  59.2G  0 part /
pi@rpi-03:~$ blkid
/dev/mmcblk0p1: LABEL_FATBOOT="system-boot" LABEL="system-boot" UUID="BB14-E4C0" TYPE="vfat" PARTUUID="3d2c824d-01"
/dev/mmcblk0p2: LABEL="writable" UUID="a136479c-fe8d-4a35-bed4-56fd88c3c07c" TYPE="ext4" PARTUUID="3d2c824d-02"

pi@rpi-04:~$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931.5G  0 disk
mmcblk0     179:0    0  59.5G  0 disk
├─mmcblk0p1 179:1    0   256M  0 part /boot/firmware
└─mmcblk0p2 179:2    0  59.2G  0 part /
pi@rpi-04:~$ blkid
/dev/mmcblk0p1: LABEL_FATBOOT="system-boot" LABEL="system-boot" UUID="BB14-E4C0" TYPE="vfat" PARTUUID="3d2c824d-01"
/dev/mmcblk0p2: LABEL="writable" UUID="a136479c-fe8d-4a35-bed4-56fd88c3c07c" TYPE="ext4" PARTUUID="3d2c824d-02"

When I run kubectl get bd -n openebs -o wide
I see only one block device...

NAME="Ubuntu"
VERSION="19.10 (Eoan Ermine)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.10"
VERSION_ID="19.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=eoan
UBUNTU_CODENAME=eoan

Linux rpi-03 5.3.0-1021-raspi2 #23-Ubuntu SMP Fri Mar 27 09:12:04 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
Yaml config: https://gist.github.com/SteelCrow/4605d836b609123cf041f52fe5d881d3

The issue occurs because OpenEBS-NDM is not able to uniquely identify the devices. NDM currently uses a combination of WWN, Model and Serial to generate a unique identifier. I think in your case some of these fields may be absent.
To better understand, can you share the output of udevadm info /dev/sda from the nodes where the disk is connected.

pi@rpi-03:~$ udevadm info /dev/sda
P: /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/host0/target0:0:0/0:0:0:0/block/sda
N: sda
L: 0
S: disk/by-id/wwn-0x5000000000000001
S: disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0
S: disk/by-id/scsi-SSamsung_Portable_SSD_T5_E50F18654321
S: disk/by-id/scsi-35000000000000001
E: DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/host0/target0:0:0/0:0:0:0/block/sda
E: DEVNAME=/dev/sda
E: DEVTYPE=disk
E: MAJOR=8
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=608153884
E: SCSI_TPGS=0
E: SCSI_TYPE=disk
E: SCSI_VENDOR=Samsung
E: SCSI_VENDOR_ENC=Samsung\x20
E: SCSI_MODEL=Portable_SSD_T5
E: SCSI_MODEL_ENC=Portable\x20SSD\x20T5\x20
E: SCSI_REVISION=0
E: ID_SCSI=1
E: ID_SCSI_INQUIRY=1
E: ID_VENDOR=Samsung
E: ID_VENDOR_ENC=Samsung\x20
E: ID_MODEL=Portable_SSD_T5
E: ID_MODEL_ENC=Portable\x20SSD\x20T5\x20
E: ID_REVISION=0
E: ID_TYPE=disk
E: SCSI_IDENT_SERIAL=E50F18654321
E: SCSI_IDENT_LUN_NAA_REG=5000000000000001
E: ID_WWN=0x5000000000000001
E: ID_WWN_WITH_EXTENSION=0x5000000000000001
E: ID_BUS=scsi
E: ID_SERIAL=35000000000000001
E: ID_SERIAL_SHORT=5000000000000001
E: MPATH_SBIN_PATH=/sbin
E: ID_PATH=platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_1_0-scsi-0_0_0_0
E: DEVLINKS=/dev/disk/by-id/wwn-0x5000000000000001 /dev/disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0 /dev/disk/by-id/scsi-SSamsung_Portable_SSD_T5_E50F18654321 /dev/disk/by-id/scsi-35000000000000001
E: TAGS=:systemd:

pi@rpi-04:~$ udevadm info /dev/sda
P: /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/host0/target0:0:0/0:0:0:0/block/sda
N: sda
L: 0
S: disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0
S: disk/by-id/scsi-35000000000000001
S: disk/by-id/scsi-SSamsung_Portable_SSD_T5_2CFE18654321
S: disk/by-id/wwn-0x5000000000000001
E: DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2/2-1/2-1:1.0/host0/target0:0:0/0:0:0:0/block/sda
E: DEVNAME=/dev/sda
E: DEVTYPE=disk
E: MAJOR=8
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=2848767348
E: SCSI_TPGS=0
E: SCSI_TYPE=disk
E: SCSI_VENDOR=Samsung
E: SCSI_VENDOR_ENC=Samsung\x20
E: SCSI_MODEL=Portable_SSD_T5
E: SCSI_MODEL_ENC=Portable\x20SSD\x20T5\x20
E: SCSI_REVISION=0
E: ID_SCSI=1
E: ID_SCSI_INQUIRY=1
E: ID_VENDOR=Samsung
E: ID_VENDOR_ENC=Samsung\x20
E: ID_MODEL=Portable_SSD_T5
E: ID_MODEL_ENC=Portable\x20SSD\x20T5\x20
E: ID_REVISION=0
E: ID_TYPE=disk
E: SCSI_IDENT_SERIAL=2CFE18654321
E: SCSI_IDENT_LUN_NAA_REG=5000000000000001
E: ID_WWN=0x5000000000000001
E: ID_WWN_WITH_EXTENSION=0x5000000000000001
E: ID_BUS=scsi
E: ID_SERIAL=35000000000000001
E: ID_SERIAL_SHORT=5000000000000001
E: MPATH_SBIN_PATH=/sbin
E: ID_PATH=platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_1_0-scsi-0_0_0_0
E: DEVLINKS=/dev/disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1:1.0-scsi-0:0:0:0 /dev/disk/by-id/scsi-35000000000000001 /dev/disk/by-id/scsi-SSamsung_Portable_SSD_T5_2CFE18654321 /dev/disk/by-id/wwn-0x5000000000000001
E: TAGS=:systemd:

All identical
These are physical drives right? I am confused why both of them has the same WWN.

Is it possible to change it?
Yes, it is possible to change by altering the udev rules on the machine. Or you can manually create blockdevices so that OpenEBS can consume those disks.

Buy in official Samsung store SSD T5 for 1TB physical device.
Do you have links on instruction for manual creation of block devices?

The steps to manually create a block device are available here

Is it enough if I will rename disk/by-id/wwn-0x5000000000000001 with udev rules or I need to write more complex rule to substitute additional fields? Any example?

Is it enough if I will rename disk/by-id/wwn-0x5000000000000001 with udev rules or I need to write more complex rule to substitute additional fields? Any example?

We just need a little more info about the disks before we can conclude on how it should be done. Can you also share the output of smartctl command from both the nodes.
sudo smartctl -a /dev/sda

Yes, for sure.
pi@rpi-04:~$ sudo smartctl -a /dev/sda
smartctl 7.0 2018-12-30 r4883 [aarch64-linux-5.3.0-1021-raspi2] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung Portable SSD T5
Serial Number:    S46UNP0N108243D
LU WWN Device Id: 5 002538 e00000000
Firmware Version: MVT42P1Q
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      mSATA
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed Apr  1 16:51:24 2020 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever
					been run.
Total time to complete Offline
data collection: 		(    0) seconds.
Offline data collection
capabilities: 			 (0x53) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					No Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (  85) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       14
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       25
177 Wear_Leveling_Count     0x0013   100   100   000    Pre-fail  Always       -       0
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   075   070   000    Old_age   Always       -       25
195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       19
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       979

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

pi@rpi-03:~$ sudo smartctl -a /dev/sda
smartctl 7.0 2018-12-30 r4883 [aarch64-linux-5.3.0-1021-raspi2] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung Portable SSD T5
Serial Number:    S46UNP0N108252J
LU WWN Device Id: 5 002538 e00000000
Firmware Version: MVT42P1Q
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      mSATA
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed Apr  1 16:52:56 2020 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever
					been run.
Total time to complete Offline
data collection: 		(    0) seconds.
Offline data collection
capabilities: 			 (0x53) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					No Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (  85) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       13
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       27
177 Wear_Leveling_Count     0x0013   100   100   000    Pre-fail  Always       -       0
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   075   072   000    Old_age   Always       -       25
195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       23
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       2702

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

@SteelCrow , An alpha feature has been added in openebs to uniquely identify the disks in the cluster. More information on how to enable the feature can be found here(NDM section). Can you try with this feature-gate and let us know whether it solves your issue?

@SteelCrow , With openebs 2.0, the unique identification algorithm has been changed. Can you try with openebs2.0 version, and check if your issue is resolved.

Hey, i'm currently in a similiar situation.
I'm running k3s in 3 node cluster, all 3 with ssd attached with an USB to Sata Adapter.
I installed openebs via helm, release 2.12.
It seems like the ndm is only seeing the adapter and all three adapters have the same id which results in only one block device created.
This is the block device crd generated by ndm:
apiVersion: openebs.io/v1alpha1
kind: BlockDevice
metadata:
  annotations:
    internal.openebs.io/uuid-scheme: gpt
  creationTimestamp: '2021-11-26T20:38:49Z'
  generation: 7
  labels:
    kubernetes.io/hostname: node-03
    ndm.io/blockdevice-type: blockdevice
    ndm.io/managed: 'true'
  name: blockdevice-1673facd35a444b19550eb2b07663506
  namespace: openebs
  resourceVersion: '28909119'
  uid: a37a3e63-1031-41a8-9940-19b1b2be2ad1
spec:
  capacity:
    logicalSectorSize: 512
    physicalSectorSize: 512
    storage:<PHONE_NUMBER>96
  details:
    compliance: SPC-4
    deviceType: partition
    driveType: HDD
    firmwareRevision: '0   '
    hardwareSectorSize: 512
    logicalBlockSize: 512
    model: USB_3.0_TOSATA
    physicalBlockSize: 512
    serial: '5000000000000001'
    vendor: ASMT
  devlinks:
    - kind: by-id
      links:
        - /dev/disk/by-id/scsi-SASMT_USB_3.0_TOSATA_3A0000000000-part3
        - /dev/disk/by-id/wwn-0x5000000000000001-part3
        - /dev/disk/by-id/scsi-35000000000000001-part3
    - kind: by-path
      links:
        - >-
          /dev/disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:2:1.0-scsi-0:0:0:0-part3
  filesystem: {}
  nodeAttributes:
    nodeName: node-03
  partitioned: 'No'
  path: /dev/sda3
status:
  claimState: Unclaimed
  state: Active


Fixes extended scroll bug

Fixes https://github.com/qiime2/q2-feature-table/issues/115
Page no longer has trailing whitespace carried over from previous page when pressing the back button after clicking HTML link.
There are no tests for this plugin, but I ran over the entire moving pictures tutorial, and the fix does not appear to break any other visualizers.

Discussed with @Kleptobismol at some length. This PR (while also being kind of redundant) takes advantage of an inconsistent browser API. It isn't yet clear if there is a reliable way to fix this and it is going to take further thought.
The crux of it however is that both:
document.documentElement.scrollHeight

and
document.body.scrollHeight

give different values in different browsers, in chrome/safari documentElement reflects the true height, while body is the iframes document size. This is inverted in Firefox. There doesn't appear to be a standard behavior so it could even be true that both would give the frame's document size, leaving us with nothing.
In any case, the code presented here isn't going to work cross-browser, so I'm going to close this.

Thanks for the update @ebolyen, this sounds good to me (I hadn't gotten around to reviewing the PR yet, thanks!).


github - shellcheck workflow

Resolves #3489
Checks

[x] All commits in this Pull Request are signed and Verified by Github.
[x] All commits in this Pull Request follow the Ockam commit message convention.
[x] I accept the Ockam Community Code of Conduct.
[x] I have accepted the Ockam Contributor License Agreement by adding my Git/Github details in a row at the end of the CONTRIBUTORS.csv file in a separate pull request to the build-trust/ockam-contributors repository. - https://github.com/build-trust/ockam-contributors/pull/134

Great! Could you run the CI to see if the workflow is good?

@elpiel left a small request for you here. I'll trigger CI right after that https://github.com/build-trust/ockam-contributors/pull/134

☑ Orchestrator test on PR #3689 at commit 1407fba7ef5da87835769ebe390599cd6fbf375f passed

Keep in mind that this PR is made from a fork of Lechev.space. This is why I'm planning to also add Lechev.space as Contributor

for some reason, actions isn't triggering the new workflow in this PR 🤔

Right now, after pinning, it gives me this error:

Ah I see because it uses a new third party action. Would you mind changing it use the official shell check container image so we can avoid an extra set of dependencies?

Ok, let's try this then. I'm unsure if . as a parameter will work for the whole folder.

Even though there is a new entrypoint supplied for the container, GH overrides it and uses tail (which does not exist in the image apparently)
/usr/bin/docker create --name 2ce7873918834ed88b0ee098a4280d20_koalamanshellchecksha256722015803bb3606fd163c475cf4141ef8f39b6485da5ee0cbd8611042396b7da_6f325f --label 8d5581 --workdir /__w/ockam/ockam --network github_network_af4c9cd240cb4496a1ff47f348f87089 --entrypoint sh -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/runners/2.298.2/externals":"/__e":ro -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "tail" koalaman/shellcheck@sha256:722015803bb3606fd163c475cf4141ef8f39b6485da5ee0cbd8611042396b7da "-f" "/dev/null"

Both entrypoints are visible, but since the tail is last, it's the one taken for the command.
GH workflow documentation does not mention anything about not supporting this option.
How should we proceed?

Hmm, looks like others have faced the same problem
https://github.com/actions/runner/issues/1964
A couple of choices:

shellcheck is preinstalled, just use that:
https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md

try the koalaman/shellcheck-alpine image mentioned in the shellcheck readme
https://github.com/koalaman/shellcheck#installing

apt install on download an exact version of shellcheck

I think option 1 may be good enough.

@metaclips should be good now. I had to use find as shellcheck doesn't support globbing

Merged in https://github.com/build-trust/ockam/pull/3752
@elpiel Thank you for an awesome contribution 🥳

I also added a followup issue to fix all shellcheck errors https://github.com/build-trust/ockam/issues/3754


Parametrize dig with used image registry

Towards https://github.com/giantswarm/giantswarm/issues/17459
This is especially important in China. Example:
chart-operator-unique-f7d49ff56-m5mhs   0/1     Init:0/1   0          27m

Checklist

[ ] Update changelog in CHANGELOG.md.

Your change seems fine but I found out we actually have no initContainers in the spec of chart-operator in the management cluster. I think we have an issue with the template in the first place because I can't see it from helm manifest.
@kubasobon Do you mind if I patch it in this branch?
https://github.com/giantswarm/chart-operator/blob/a3a2f123a9f929f5929ed17c12816515e6348f36/helm/chart-operator/templates/deployment.yaml#L71-L85

@tomahawk28 I don't mind if it's patched elsewhere, but 2 questions:

Can we still change dig quay.io to region appropriate repository? No China cluster should depend on resolving quay.io, even workload clusters.
What value/values am I missing in akita's configuration that I got initContainers in MC? Link: https://github.com/giantswarm/installations/pull/1816

Can we still change dig quay.io to region appropriate repository?

Yes, we can change that.

What value/values am I missing in akita's configuration that I got initContainers in MC?

I talked with @rossf7 and we concluded that we don't need initContainers in MC actually.
I think we are okay but you can delete the 3 lines below to make the code simpler.
https://github.com/giantswarm/chart-operator/blob/a3a2f123a9f929f5929ed17c12816515e6348f36/helm/chart-operator/templates/deployment.yaml#L73-L75

I removed managementCluster parametrization.


Bugfix #8

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

Bugfix #8

[x] Bugfix : #8


Weird padding on the front page coding time leaderboard tooltip

https://github.com/Testausserveri/testausserveri.fi/assets/46541386/2dbb0740-214d-4ec1-92b3-427c3afa071c
High quality bug report by @Trimpsuz
Also links look weird [on Firefox (?)]. Maybe we could switch to using more traditional underline link style.

Otherwise a good bug report by Trimpsu, but it took me a moment to realize that the bug is probably that the link inside the tooltip cannot be clicked lol


Doc tutorials are broken

See: https://qiskit.org/documentation/machine-learning/tutorials/index.html

Theme is fixed now


Uncaught TypeError: Cannot set property top of # which has only a getter

Using react-bootstrap 0.28.3...an OverlayTrigger with Popover content is causing the above error. Not sure why, maybe because the DOM element the Overlay is bound to is absolutely positioned. The Popover does not appear and is not present in the DOM
Commenting out these two lines in position.js resolves the issue but not sure it's a real fix
parentOffset.top += parseInt((0, _style2['default'])(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2['default'])(offsetParent) || 0;
parentOffset.left += parseInt((0, _style2['default'])(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2['default'])(offsetParent) || 0

Also if we remove the container prop for {this} from the OveralyTrigger, the Popover appears but is not positioned properly.
Any ideas?

that's a weird one... what are your env details? and from those two lines can you narrow it down further to which thing specifically is throwing?

Any update on this? Also seeing this same error on react-bootstrap 0.29.4. Seen in FF and Chrome.


[Firebreak] Add jq to curl-ssl image

It would be really useful to have jq available in the curl-ssl image, so json responses can be parsed easily.
This change adds that tool.

Could you update the "spec" too?
https://github.com/alphagov/paas-docker-cloudfoundry-tools/blob/master/curl-ssl/curl-ssl_spec.rb


Auto-config feeder

This refactors the behavior of the feeder by making it able to self-configure the markets to feed per each daemon target.
For this, the grpc client interface has been updated by adding the ListMarktes() method (macaroon must include permission for this method in cause of auth  enabled).
The feeder interface defines 2 new methods WellKnownMarkets() and SubscribeMarkets().
When started, the service firstly checks if any known markets are present for the current price feeder. If they're not found, it asks directly to the price feeder for its * well-known markets* and saves them to the config file.
After, this, it lists the markets of the given targets and starts feeding with prices those that found in the list of feeder's know markets.
Closes #36
Please @tiero review this.

Solve conflicts? @altafan

@tiero done.


File Transfer Plugin is not working in windows 10 Chrome Browser

I am using Cordova with ionic and i want to upload file using Cordova File Upload plugin but is always says that FileTransfer() is not defined can you please help  me

The plugins don't work in the browser. You have to run them on your phone or device. Some work in the simulator; others (like the bluetooth ones) do not.


Updated to latest version of cmark

The version of cmark currently referenced in the project was pretty old and was breaking on some more complex markdown, so I updated to the current pull of cmark, which works a lot better. I had to add a macro to get it to compile though (see this issue here for more information).

Great, thank you!


Add set_crate_config to setup_test_crate.

This change is

crates/cairo-lang-semantic/src/test_utils.rs line 136 at r1 (raw file):

    // db.crate_configs(crate_id, Cr
    db.set_crate_config(

this changes requires a mut db everywhere
Code quote:
 db.set_crate_config(

crates/cairo-lang-semantic/src/test_utils.rs line 136 at r1 (raw file):
Previously, ilyalesokhin-starkware wrote…
this changes requires a mut db everywhere

It seems that I can't do it with parallel tests.
I get:
Code snippet:
thread 'test::lowering::error_propagate' panicked at 'increment_revision invoked during a query computation', /home/ilya/.cargo/registry/src/index.crates.io-6f17d22bba15001f/salsa-0.16.1/src/runtime.rs:273:13

Done in a better way in: #4513


OTGW HW reboot cause: Exception (2) - Access to invalid address (29)

Hello,
I have OTGW from NodoShop and Wifii WeMos D1 Mini with its firmware dated 20-03-2023 (from NodoShop)
I see some issues , one of them is related to FW reboot.
In reboot_log.txt of "FSexplorer ESP" I found:
2023-10-16 14:49:28 - reboot cause: Exception (2) - Access to invalid address (29)
ESP register contents: epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
2023-10-12 12:14:58 - reboot cause: Exception (2) - Access to invalid address (29)
ESP register contents: epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
2023-10-10 05:07:34 - reboot cause: Hardware Watchdog (1)
ESP register contents: epc1=0x40103f2a, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
2023-10-10 00:40:56 - reboot cause: Hardware Watchdog (1)
ESP register contents: epc1=0x40104281, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
2023-10-07 21:55:59 - reboot cause: Exception (2) - Access to invalid address (29)
ESP register contents: epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
2023-10-07 13:31:16 - reboot cause: Exception (2) - Access to invalid address (29)
ESP register contents: epc1=0x4000df64, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

Would you mind to check whether is it significant issue?
More details is described here: https://github.com/home-assistant/core/issues/101518

Hi @TomEkk33
I have looked at this issue. But I have no explanation on what you see.
The crash log is not useful. Also read the thread on HA issue.
I would not advise both using the serial integration and the MQTT at the same time.
The fact that the firmware does sent some time commands should not interfere. If this however is confirmed to be an issue, the I could consider a maximum compatibility mode for legacy support.
Hope to hear from you if your issue is resolved as you seem also to have an unsupported thermostat.
Thanks
Robert

Thank you for your answer. This issue appeared only once and never again. It was found just during the process of solving the
https://github.com/home-assistant/core/issues/101518. However the root cause of the issue has not been found.


Add CONNECT support

A follow up to #1214. Add support for CONNECT to envoy. There are 2 use cases for CONNECT that I'd like to add. Envoy receiving a CONNECT request, connecting to an upstream, issuing a 200 and then downgrading to L4 (similar to websocket support). The second is envoy using CONNECT when initiating an upstream L4 connection (the moral equivalent of envoy using http_proxy for some https upstreams). I think the first one is pretty straightforward.

Add a config option to enable CONNECT on the listener in http1_options
Update codec to support the right authority in CONNECT
Write a Http11ConnectHandlerImpl in the spirit of WsHandlerImpl

The second case is a little more unclear to me. Here's a straw man.

Upstreams get a 'use connect' flag.
When enabled any connections to that upstream are initiated with a CONNECT request exchange before the remain traffic is forwarded.

Both sound reasonable to me. For the upstream case, I assume we just need to support HTTP/1? I think this could be folded into the http1_codec_options which should be available to upstream clusters in v1 and v2 APIs.

Write a Http11ConnectHandlerImpl in the spirit of WsHandlerImpl

Please share as much of the code as possible, but yes, I think the flow will be very similar.

I would love to see support in evnoy for https://linkerd.io/features/http-proxy/

@jippi http_proxy is orthogonal to CONNECT. Envoy does support basic http_proxy support, but it's on by default. See the "allow_absolute_url" option here: https://www.envoyproxy.io/docs/envoy/latest/api-v1/network_filters/http_conn_man (and similar v2 option).
What is not supported is DNS lookup for previously unknown backends. This is tracked in https://github.com/envoyproxy/envoy/issues/1606.
This could use better coverage in arch overview (https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http_connection_management) if you feel like doing a doc PR.

Please note that the default Go HTTP client looks at HTTP_PROXY for HTTPS requests. HTTPS_PROXY takes precedence, but if that's empty HTTP_PROXY is in effect. This means we cannot blindly set HTTP_PROXY to an Envoy listener for all clients right now.
We currently work around this by replacing the Proxy function in the http.DefaultTransport (so https requests don't pass through Envoy), which isn't great.

This is also very important for a lot of corporate usecases where the destination may not be 'local' to where envoy is running. Having CONNECT support on a per destination basis is really key in those situations where corporate requirements have forward proxies ( non-transparent ) in place to transit security boundaries.

We have written a very small test proxy to implement this situation (http://github.com/aiwip/super-proxy) however we think it would be much better to use a well tested and used L7 proxy.
What is the best way to implement this ?

The plan for implementing this is going to be:

Finish the ongoing dynamic forward proxy support
Implement CONNECT in the forward proxy filter using upgrade semantics, similar to websocket.

Will this also support responding to a CONNECT from an application?

Will this also support responding to a CONNECT from an application?

What do you mean exactly?

@alyssawilk I started to look briefly at implementing this. I think roughly it will involve:

Making sure we allow CONNECT to propagate into the filter chain (probably via an HCM config setting to allow CONNECT)
We likely need to modify the route matching config to handle no path and CONNECT
Then we can have the dynamic_proxy_filter handle CONNECT and use the tcp_proxy code to initiate outbound connections.

I'm no longer thinking that we need to involve any of the upgrade config in this. WDYT? Any other thoughts about the right way to approach this from a config perspective?

we definitely need configuration for connect.  I do think it's worth reusing the existing upgrade configs for it, because I can imagine folks wanting a different filter chain for it, given the payload is not really HTTP body
+10 on no path.  Also general audit of other code?
why tcp proxy mode?  AFIK (you can check with piotr) CONNECT is legal for H2, so I'd think we'd want to use standard upstream as we do for ugprades.

I do think it's worth reusing the existing upgrade configs for it, because I can imagine folks wanting a different filter chain for it, given the payload is not really HTTP body

How do you suggest configuring it? Should we have a special upgrade type of "CONNECT"? That seems pretty hacky. Do you prefer a specific boolean for CONNECT?

why tcp proxy mode? AFIK (you can check with piotr) CONNECT is legal for H2, so I'd think we'd want to use standard upstream as we do for ugprades.

My understanding of CONNECT is that we start a raw TCP connection to the upstream in this case (that is my read of the spec). cc @PiotrSikora

Maybe just introduce an independent ConnectConfig which would also turn on CONNECT handling? That seems the safest?

(Then since we have will have route matching on CONNECT it seems like a straightforward way to either use the connect config or not.)

I'm fine with separate config, if that's how we want to handle it.  I think we're going to want to handle both proxying the connect (to be handled on a later hop) and handling the connect.   I guess for forward proxy you're only concerned about the latter, where using TCP does make sense.  I think my eventual use case is more about the former (which is why I was thinking HTTP backend) .  Let's just consider designing APIs and code to easily do both in future, yeah?

why tcp proxy mode?  AFIK (you can check with piotr) CONNECT is legal for H2, so I'd think we'd want to use standard upstream as we do for ugprades.

My understanding of CONNECT is that we start a raw TCP connection to the upstream in this case (that is my read of the spec). cc @PiotrSikora

You're both correct.
In HTTP/1.1 and HTTP/2 the CONNECT method is used to ask proxy to open a raw TCP connection to the requested authority.
However, the extended CONNECT method introduced in RFC8441 allows tunneling TCP connections over HTTP/2 using HEADERS and DATA frames.

OK sounds good I will make sure the connect config is suitable for both "normal" CONNECT and "extended" CONNECT even though initially I will likely only implement "normal" CONNECT.

In my use case I want to be able to have Envoy consume a CONNECT connection from a client and act as a MITTM reverse-forward proxy so I can filter the connection strip the TLS and redirect it to another server of my choice.
I know the security implications of this but I have a very good reason for doing this.

What do you mean exactly?

I think they mean will it support handling connections from a client application i.e an iOS app doing a CONNECT request to a envoy proxy instance to be handled

It looks like this feature is what we would need to configure a tier of envoy servers which would be used as a proxy pool for systems which are unable to have an envoy sidecar and also not change the way they make requests (ie without setting host headers or changing the servers they reach with host file/dns manipulation, etc.). Is that correct?
We can pony up a resource to contribute this feature unless someone is already working on it.
@mattklein123

@emaildanwilson I'm not working on this and won't be working on it soon. If you have someone to work on it please have them reach out and I can guide them.

I am going to start in on this per our earlier conversation.  It'll be slow, but hopefully beneficial.

I am going to start in on this per our earlier conversation. It'll be slow, but hopefully beneficial.

Any progress on this? Can we help out in testing this?

but I think the cleanest place would be in the new TCP upstream, which could do standard push-back buffering until it got the response (where the server codec would have do something klunkier with special case buffering the direct dispatch path which is already pretty complicated. Thoughts?

Yes big +1 for doing it in the router/upstream handler so we can do standard flow control. I think it would be OK also to add this as an improvement in a follow up for the alpha support, but up to you if it's harder or easier to do it after the fact.

Are there any plans to add support in this first pass for initiating an upstream CONNECT request independent of whether the downstream request was a CONNECT request? In the original issue this was called the "second case", but I haven't seen much mention of it lately.
We have a use case for initiating upstream CONNECT requests, so it would be helpful to know if this is work that hasn't been picked up by anyone else yet.

Are there any plans to add support in this first pass for initiating an upstream CONNECT request independent of whether the downstream request was a CONNECT request? In the original issue this was called the "second case", but I haven't seen much mention of it lately.

Is the use case here to have tcp_proxy have an upstream CONNECT mode? I'm guessing @alyssawilk is not working on that right now but it seems not enormously difficult after all of the ongoing work is done.

That would be one use case.
Another use case would be to proxy downstream plain HTTP as upstream HTTPS via another upstream proxy. A request path would look something like this:
Client --[plain HTTP]--> Envoy --[HTTP CONNECT]--> Upstream Proxy --[HTTPS]--> Server
I hope that's clear enough.
It seems like that might be quite a bit more complicated than the tcp_proxy case, though.

It seems like that might be quite a bit more complicated than the tcp_proxy case, though.

It actually might not be that complicated if @alyssawilk follows though and has code that will wait for the upstream CONNECT response (we could initiate one instead). It will definitely be extra work though. I would suggest looping back once the initial support lands, though hopefully @alyssawilk can keep this in mind while she is implementing.

I already added support for sending TCP over HTTP/2 CONNECT (https://github.com/envoyproxy/envoy/issues/1630) - it's missing the all important proxy proto header but I plan on landing that in a follow-up thanks to @wez470 's handy utilities and that should handle the Envoy-to-Envoy case as described in https://github.com/envoyproxy/envoy/issues/1630
Would that work for you or do you have some non-Envoy servers in the line?  I hadn't planned on implementing TCP->CONNECT for HTTP/1 (since we prefer HTTP/2 multiplexing in-house) but I'd be happy to walk someone through the steps of adding if you need it.

We use some upstream non-envoy servers that only support HTTP/1 CONNECT, so HTTP/2 CONNECT wouldn't work for our use case.
@alyssawilk thank you for the offer to walk someone through the steps -- we're planning to start on this functionality over the next month or two, so as soon we know who is going to be doing the work I'll get in touch.

Sounds good.  FWIW it should be fairly minimal coding - I'd expect it to be  90% writing test cases making sure that HTTP/1.1 codec logic around chunks doesn't get screwy, ideally most of which you can copy-paste-edit from other PRs on these two issues :-)

Hi @alyssawilk, I've see you've pushed several PRs to add CONNECT support. Could you help me to understand - with the current state of master branch, will I be able to resolve my issue?
$ curl --header "X-Host-Port: www.yahoo.com" https://www.google.com
curl: (56) Received HTTP code 403 from proxy after CONNECT
$ curl --header "X-Host-Port: www.yahoo.com:443" https://www.google.com
curl: (56) Received HTTP code 403 from proxy after CONNECT
$ curl --header "X-Host-Port: www.yahoo.com:80" https://www.google.com
curl: (56) Received HTTP code 403 from proxy after CONNECT

Hey @mabukhovsky
So I'm unfamiliar with the internals of what curl is doing here.  Just going based on the logs, if it's using a CONNECT, I'd imagine that if you properly configured Envoy after #10623 lands it might help your issue.  I'll land some sample configs in follow-up PRs but you can crib off the intergration tests right now for how to enable connect support (as it's off by default) as well as how to turn on connect termination (it proxies by default)

At this point, CONNECT support (both proxying the CONNECT request, or terminating CONNECT (stripping the CONNECT headers and sending raw TCP upstream) are implemented and are ready for testing.  I would suggest not using it production until #10974 lands.
Docs exist (but are hidden) and sample config coming soon (currently you can crib from the integration tests).
In the next few weeks we should get in no particular order
0) the security improvements in #10974

example configs, for both forms of connect as well as tunneling over HTTP/2
proxy proto support
fixing the current hack where a synthetic path header is added to pathless CONNECT requests
Once all these land I'll unhide the docs, and say we're in stable alpha. The sooner you play around the sooner you can tell me if the config set up works for you though, so feel free to start playing around.

I've been experimenting with the terminating CONNECT support on master and noticed some unexpected behaviour. The 200 response from Envoy does not get sent until actual TCP data is sent from the upstream. I thought it was an issue with my test setup, but then I decided to actually read the docs and found the following in the section on HTTP upgrades:

On receipt of initial TCP data from upstream, the router will synthesize 200 response headers, and then forward the TCP data as the HTTP response body.

So it appears that this is working as intended. My issue is that I can't get a flow like this to work with the current support:
Client -> Envoy : HTTP CONNECT
Envoy <-> Upstream : TCP handshake
Envoy -> Client : HTTP 200 OK // this is never sent in the current implementation
Client -- (via Envoy) --> Upstream : HTTP GET

The following, however, does work in the current implementation:
Client -> Envoy : HTTP CONNECT with tunnelled HTTP GET request
Envoy <-> Upstream : TCP handshake
Envoy -> Upstream : tunnelled HTTP GET request
Upstream - Envoy -> : tunnelled HTTP response
Envoy -> Client : HTTP 200 OK
Envoy -> Client : tunnelled HTTP response

But the HTTP RFC warns against sending payload with a HTTP CONNECT request:

A payload within a CONNECT request message has no defined semantics; sending a payload body on a CONNECT request might cause some existing implementations to reject the request.

Python's http.client.HTTPConnection CONNECT support, for example, sends headers only on the request by default, so afaik the current CONNECT support won't be compatible with that client.
Is there a plan to implement synthesis of the 200 response after the upstream handshake but prior to seeing upstream bytes? Is there an implementation detail that makes this more difficult than the current behaviour?

Oh interesting, so in this case you need the payload data to be sent from the client, in order to trigger the server to send a response which causes the 200 headers?
Yeah, I can fix that.  Woo alpha testers!  :-)

So I think ideally the 200 response should be triggered by the upstream TCP handshake completion. The clients will typically wait on the response before sending any tunnelled payload.

Going to call this done. Let's track bugs / features in new issues. Thank you @alyssawilk!!!

I'm very interested in the 2nd usecase with Istio. Is this possible - and how do I configure that?

cc @lambdai


This is interesting!

Hi, I'm responsible for schema.org. This looks really interesting but I need to study graphql a bit more before I can say anything helpful/useful. In the meantime any schema.org questions do feel free to ask!
danbri@ / @danbri

I also think this is interesting and I would be happy to help with graphql things.

is there any documentation or example about how to use this library? e.g. use a specific type in a query or mutation?


cgo function argument coercion broken in 1.10rc1

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.10rc1 darwin/amd64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/jliggitt/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/jliggitt/go"
GORACE=""
GOROOT="/Users/jliggitt/.gvm/gos/go1.10rc1"
GOTMPDIR=""
GOTOOLDIR="/Users/jliggitt/.gvm/gos/go1.10rc1/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/lw/0m4r59zx3_b56vbmr2j0zkbr0000gn/T/go-build814899031=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?
Tried to build/test a cgo package that compiled successfully under previous versions of go
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
Seen in github.com/apcera/gssapi, but reproduceable with similar typedefs in this program:
package main

/*
typedef int *A;

typedef const int *B;

int testfunc(B f) {
	return 1;
}
*/
import "C"

func main() {
	var x C.A
	C.testfunc(x)
}

What did you expect to see?
with go1.9.2:
go version
go version go1.9.2 darwin/amd64

cd $GOPATH/src/github.com/apcera/gssapi

go test ./
ok  	github.com/apcera/gssapi	0.049s

What did you see instead?
with go1.10rc1:
go version
go version go1.10rc1 darwin/amd64

cd $GOPATH/src/github.com/apcera/gssapi

go test ./
# _/Users/jliggitt/go/src/github.com/apcera/gssapi
./name.go:214: cannot use n.C_gss_name_t (type _Ctype_gss_name_t) as type _Ctype_gss_const_name_t in argument to func literal
FAIL	_/Users/jliggitt/go/src/github.com/apcera/gssapi [build failed]

the coercion of a gss_name_t (typedef struct gss_name_struct) to gss_const_name_t (typedef const struct gss_name_struct) previously worked as expected, but go1.10rc1 now complains about it and requires an explicit cast.
gss_name_t: http://www.gnu.org/software/gss/reference/gss-api.html#gss-name-t
gss_const_name_t: http://www.gnu.org/software/gss/reference/gss-api.html#gss-const-name-t
xref https://github.com/apcera/gssapi/issues/54

I believe this is due to the fix for #19832.

@ianlancetaylor many thanks for the quick response. Is it possible to add a test for the broken case to ensure it doesn't slip?

@liggitt In 1.11, sure.


Strange behavior with touchDragged

Issue details
I'm trying to impement dragging for actor, but I see strange effect - when I try to drag actor it starts blinking and change positions randomly. Here is a short video: https://youtu.be/KpGujQ7KHc0
Reproduction steps/code
Actor:
public class Item extends Actor {
    private String id;
    private TextureRegion texture;

    public Item() {
        this.id = "passport";

        texture = PicturesData.getPicture(getId());
        setSize(texture.getRegionWidth(), texture.getRegionHeight());

        addListener(new DragListener() {
            @Override
            public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
                return true;
            }

            @Override
            public void touchDragged(InputEvent event, float x, float y, int pointer) {
                Log.add("Dragged: " + x + ", " + y);
                setPosition(x, y);
            }
        });
    }

    public String getId() {
        return id;
    }

    @Override
    public void draw(Batch batch, float parentAlpha) {
        batch.draw(texture, getX(), getY());
    }
}

The screen is basic too:
public class GameScreen implements Screen {
    private Stage stage;

    public GameScreen() {
        stage = new Stage(new StretchViewport(800, 600));
        Gdx.input.setInputProcessor(stage);

        Item item = new Item();

        stage.addActor(item);
    }

    @Override
    public void show() {
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

        stage.act(delta);
        stage.draw();
    }

    @Override
    public void resize(int width, int height) {

    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void hide() {

    }

    @Override
    public void dispose() {

    }
}

Version of LibGDX and/or relevant dependencies
1.9.3, 1.9.1
Please select the affected platforms

[x] Android
[x] Windows

Problem is solved!
Instead of setPosition I should you use moveBy method.
    @Override
    public void touchDragged(InputEvent event, float x, float y, int pointer) {
        moveBy(x - getWidth()/2, y - getHeight()/
    }

I think in javadoc should be information that X and Y in touchDragged are not new position, but delta with previous position!

@breakmt Hi, I encounter the same problem. I have a big map and user can drag it to view part of it. The issue is I have already using the delta, why it still has blinking and random positions?
map.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
start.set(x, y, 0);
return true;
}
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            //
            map.dynamicLoadMaps(camera.position.x, camera.position.y);
        }

        @Override
        public void touchDragged(InputEvent event, float x, float y, int pointer) {
            end.set(x, y, 0);
            dragMap((start.x - end.x), (start.y - end.y));
            start.set(x, y, 0);
        }
    });

here is the dragMap method
private synchronized void dragMap(float deltaX, float deltaY) {
//
camera.translate(deltaX, deltaY, 0);
}

for those still struggling with this.  the blinking is go away when using the code below.
            public void touchDragged(InputEvent event, float x, float y, int pointer) {                 dragMap(-Gdx.input.getDeltaX(), Gdx.input.getDeltaY());             }


Minor performance improvement - use String concatenation instead of S…

…tring#format()
The improvement is used only when the concatenation representation is still readable. All usages of String#format() used in exception's message, or with formatting or with multiple placeholders are preserved.

Coverage remained the same at 99.8% when pulling b0fc15ee1e891d5bd56144217da267d7716b12a6 on martin-g:master into 65aff17b9199df09f683fe6bbc4fa6667b93b4ec on javaslang:master.

LGTM


Remove usage BeforeSuite

What this PR does / why we need it:
Remove usage BeforeSuite. Prevent tests from being dependent on their order.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note:

NONE

@0xFelix PTAL

/cc @dhiller


Disable data protection when opening the Rmq2PersistentStore

Discussion
Other issue that have touched this is #401.
The error shown in  my logs is:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not create RMQ database at path /var/mobile/Containers/Data/Application/F0DD20A3-DA44-4033-8736-A371A2725EC1/Library/Application Support/Google/FirebaseMessaging/rmq2.sqlite, error: 23 - authorization denied'
*** First throw call stack:
(0x1e1a03758 0x1e0c0bd00 0x1e1919434 0x1e23f3754 0x102e05da8 0x102e04460 0x102e0968c 0x102ddd594 0x102ddce84 0x102ddc364 0x1e14158f4 0x1e1417788 0x102ddc2d0 0x102dba238 0x102dba0f0 0x102db9be8 0x102db99cc 0x102da0d94 0x102d9f3f4 0x102d9ef50 0x102d9ee7c 0x1032b66cc 0x1032b6510 0x102cb22d8 0x102cbb9cc 0x102cbdbc8 0x20e8db0c8 0x20e8dc890 0x20e8e22b0 0x20e175e20 0x20e17e7e8 0x20e175a88 0x20e1763a4 0x20e1745ec 0x20e1742b0 0x20e178fd0 0x20e179e1c 0x20e178e84 0x20e17de68 0x20e8e07ec 0x20e4c3648 0x1e43c13a8 0x1e43cb6e4 0x1e43cae34 0x1e14158f4 0x1e1418ecc 0x1e43fe218 0x1e43fde94 0x1e43fe490 0x1e1993954 0x1e19938d0 0x1e199318c 0x1e198de60 0x1e198d764 0x1e3bc9dd4 0x20e8e400c 0x102cbe<…>

The reproduction of this issue is interesting and requires quite a few steps. The gist is that the Rmq2 persistent store can not be opened when the phone has a passcode AND is locked AND the App is woken up AND it somehow touches the firebase messaging code.
In our case this was reproduced this way:

We have a Flutter App, which uses a plugin architecture. The firebase_messaging plugin will be instantiated when the App is started. By nature, all project plugins will be instantiated in ALL Isolates, therefore the FB messaging plugin will be started as well.
The App connects to a MFi certified device, which means: When the App is dead and the screen is locked, then the App will be woken up, but starts in background, when the MFi device is connected.
Once the App has been woken up, the plugin as above will be instantiated and tries to create access to the sqlite database, which fails with error code 23.

The folks over at FMDB have seen this before:

https://github.com/ccgus/fmdb/issues/262

And the Apple Mailing lists have this Gem:

https://lists.apple.com/archives/cocoa-dev/2012/Aug/msg00527.html

Once I patched my local firebase messaging plugin with this PR, the errors went away.
This PR changes the Rmq database protection to not-protected. As all App data is sandboxed anyway, I think this may not have negative security implications.

@ened Thanks tracking down the issue and the PR! We'll try to review in the next few days.

Thanks for adding the fix.
Have you tried to see if it's backward compatible? Seems like it's changing the way we encrypt the data on the disk. So say your user is running an old version of your app with original settings of database, which uses encryption to save the data and later update with the new settings, will they be able to open the database without error?

I'm able to test it and it is backward compatible.

Thank you for merging - could you please inform when this change could make its way into a release? Thx!

@ened Thanks for the PR! It's tagged for M49 which should be released in 2-3 weeks.


should change the port for previous hosts when using withPort

small fix for "withPort" function

"withPort" in Builder is not setting the port, but using default port 9042.


perf(pullsync): release reader buffer in handler

After profiling existing goroutines running on a node, it is found that pullsync.Syncer.handler goroutine number is larger with the number of connected peers. One approach to optimize was to reuse the iterators but the number of handler goroutines is still high as every peer needs to have a stream opened for pull syncing, most notably live pull syncing for proximity bins.
 The allocated reader is not and could be released, but it is not as it can be used further down the function execution path. Wit higher number of goroutines these buffers take more memory, which is not needed during makeOffer call.
This PR allows for the reader to be garbage collected as a new one is created after the makeOffer call.

This change is

this PR taught me how to use pprof better 👍 thanks!

Thank you all for reviews.
I did some more investigation on high memory consumption, mainly on bootnodes. And I've found two more sources of it. I am if I am writing here something that is already known or even being worked on.
1. Unlimited lightnode peers
There is no limit on how many lightondes are connected to a node. This would not be so bad if libp2p identify protocol could be disabled. It actually does not do anything crucial and it was discussed for removal in libp2p 1.0. Another point is that every lightonde is creating a Syncer to every full node. As there is no limit on connected light nodes, a full node calls a large number of pullsync handers.
I am suggesting to limit the number of connected light nodes.
I was able to prune the lightondes on a node by issuing something like this:
curl http://bee-8-debug.bee-bootnode.core.internal/peers | jq -r ".peers[] | select( .fullNode == false ) | .address" | { while read line; do curl -XDELETE http://bee-8-debug.bee-bootnode.core.internal/peers/$line; done }

to validate changes in the used memory consumption and number of goroutines.
2. Kademlia knownPeers PSlice
It grows a bit large on bootnodes because of high number of peers connecting. As I can see it is around 280000 peers on bootnodes currently.
Kademlia should probably not load the complete addressbook on start and have some limit on knownPeers PSlice.
One side effect is also a pretty large /topology response, but I did not have any problems with it.

Thanks @vandot for deploying this branch to bee-8 and bee-9 on bootnode namespace.
@acud Thanks.

Is it a compiler optimization that makes the first reader be GCd?

That is correct. Since the first reader is no longer referenced by the shadowing of the later one (it does not have to be shadowed, other variable name would do the same) the first reader can be garbage collected during the long running makeOffer call.

to have it GCd wouldn't you need to explicitly set it to nil before makeOffer?

There is no need to do that even if there is no need for the second reader. GC will find it unused.
@esadakar I am very happy to hear that.

@janos you can see  280000 live nodes?

@janos you can see 280000 live nodes?

Actually, this is the number that a bootnode was aware of at some point and showing them in the /topology response of a bootnode. It is very likely that many of them do no longer exist. Some nodes have lower number of 160k, for example, it varies.

Thanks for the explanation @janos :pray:
About limiting light node number, I already have an open PR on that from last week here :)

Thanks for the explanation @janos 🙏
About limiting light node number, I already have an open PR on that from last week here :)

Thanks @acud. I missed that one. :)

A large number of known nodes in the /topology response isn't unique to bootnodes.  My 0.6 nodes have anywhere from 104,205 through 130,000's up to 180,152.  And these address book sizes result in positively HUGE /topology API query responses.
I'm currently accessing my nodes via a VPN from a resort WiFi and just pulling the /topology response can take 10-15 seconds and >10Mbyte of data.


Fireballs aren't visible. All other graphics look fine.

          Fireballs aren't visible. All other graphics look fine.

Originally posted by @ChaosSlave51 in https://github.com/Vita3K/compatibility/issues/555#issuecomment-1405068501

invaild database.

          Fireballs aren't visible. All other graphics look fine.

Originally posted by @ChaosSlave51 in #555 (comment)


New Release for v2.3.0

Dear all,
I am not skillful at building DLL from source code. Currently I am using v2.2.0 (Windows x64 version) downloaded from Release and found that v2.3.0 source code is available now.
When will be the DLL for v2.3.0 (Windows x64) available for download?
Thanks.

It is already available in http://ciscobinary.openh264.org/openh264-2.3.0-win64.dll.bz2

It is already available in http://ciscobinary.openh264.org/openh264-2.3.0-win64.dll.bz2

Thanks. I have tried to rename the old link and downloaded it, too.


UCP load balancer sample configs do not handle port 6443

Problem description

Load balancer docs text mentions to configure load balancer to load-balance TCP traffic on port 443 and port 6443, but sample configs only cover port 443. Therefore, Kubernetes apiserver connections (as configured by UCP client bundle) will not work.
Problem location

I saw a problem on the following URL: https://docs.docker.com/ee/ucp/admin/configure/join-nodes/use-a-load-balancer/

Project version(s) affected

All versions since Kubernetes was introduced (since Enterprise 2.0+?)
Suggestions for a fix

Adjust the three sample configs (NGINX, HAProxy, AWS LB) to handle both port 443 and 6443.

Thank you for your feedback. The Docker Enterprise platform business, including products, customers, and employees, has been acquired by Mirantis, inc., effective 13-November-2019. With this change, we are currently evaluating our documentation. In line with this, additions and updates are temporarily on hold, including product descriptions, instructions, illustrations, etc. while we evaluate the state of our documentation.


Release Google.Cloud.Translate.V3 version 3.1.0

Changes in this release:
New features

Enable REST transport in C# (commit cdb518c)

Documentation improvements

Fix minor docstring formatting (commit b68a90c)

Created release for Google.Cloud.Translate.V3-3.1.0


Add my website to the ring

The webring link is in the page header. It is my personal webpage, blog, and wiki-like system heavily inspired by many of the other pages in the ring.
Please note that I am in violation of the 10-page rule (when blog entries are ignored); however, I have noticed that many pages in the ring are, so I assumed this rule was not strictly enforced. Please feel free to close my request or leave it open; I will comment on it or reopen it when I think I have reached the required ten pages.

Hi Amanda,
The website is coming along nicely but it does feel like there is too little content at the moment to qualify. Also, I try to focus on websites that does more than talk about computery things, that contain content about related interests outside of server setups - like arts and music.
As the website grows, and if you feel keen on adding pages on related interests, you're welcome to open a new PR, I'm looking forward to see where you take it!


[api-minor] Ensure that various URL-related options are applied in the xfaLayer too

Note how both the annotationLayer and the document outline will apply various URL-related options when creating the link-elements.
For consistency the xfaLayer-rendering should obviously use the same options, to ensure that the existing options are indeed applied to all URLs regardless of where they originate.

/botio xfatest

/botio xfatest

/botio xfatest

Flagging multiple reviewers, since there's basically two parts to this:

@calixteman For the XFA changes.
@timvandermeij For the viewer changes.

Thanks!


[Bug Report] Do not show the name of the songs

Describe the bug
Doesn't show the name of the songs.
To Reproduce
Play any song and it won't show any name of any song.
Expected behavior
Show the name of the song.
Screenshots

Debug Info
System Properties:
  java.version = 11.0.8
  java.vm.name = OpenJDK 64-Bit Server VM
  java.vm.specification.version = 11
  java.runtime.name = OpenJDK Runtime Environment
  java.runtime.version = 11.0.8+10
  java.specification.version = 11
  os.arch = amd64
  os.name = Windows 10

JMusicBot Information:
  Version = 0.2.10
  Owner =<PHONE_NUMBER>85273866
  Prefix = <
  AltPrefix = null
  MaxSeconds = 0
  NPImages = false
  SongInStatus = false
  StayInChannel = false
  UseEval = false
  UpdateAlerts = true

Dependency Information:
  JDA Version = 3.8.3_464
  JDA-Utilities Version = 2.1.5
  Lavaplayer Version = 1.3.50

Runtime Information:
  Total Memory = 96
  Used Memory = 40

Discord Information:
  ID =<PHONE_NUMBER>58558237
  Guilds = 12
  Users = 602

I can confirm I get the same unexpected behiavour.
System Properties:
  java.version = 1.8.0_265
  java.vm.name = OpenJDK 64-Bit Server VM
  java.vm.specification.version = 1.8
  java.runtime.name = OpenJDK Runtime Environment
  java.runtime.version = 1.8.0_265-8u265-b01-0+deb9u1-b01
  java.specification.version = 1.8
  os.arch = amd64
  os.name = Linux

JMusicBot Information:
  Version = 0.2.10
  Owner =<PHONE_NUMBER>76008704
  Prefix = //
  AltPrefix = ..
  MaxSeconds = 0
  NPImages = false
  SongInStatus = false
  StayInChannel = false
  UseEval = false
  UpdateAlerts = true

Dependency Information:
  JDA Version = 3.8.3_464
  JDA-Utilities Version = 2.1.5
  Lavaplayer Version = 1.3.50

Runtime Information:
  Total Memory = 556
  Used Memory = 413

Discord Information:
  ID =<PHONE_NUMBER>32919348
  Guilds = 94
  Users = 145217```

However, I am getting a different error:
java.lang.RuntimeException: No player info block, at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:62)

When testing, I found out that this is only related to YouTube playlists.
When loading songs via their link or by their name, they show up normally.

Then why only playlists don't show the name.
This never happened before. Why now and why only playlists. I have 2 bots of these, Both having the same issue.
Meaning it's something about youtube.

The YouTube API might have changed, and Lavaplayer devs hasn't fixed the issue yet I think.

Correct @Proxymiity

Ok. Thank you @Proxymiity
@Sanduhr32 When it will be fixed?

@ancar0 if i would know this, I would have said it. However I don't know how well maintained Lavaplayer is right now. It depends on Lavaplayer since months to get fixes.

I think this issue may be related to what we are experiencing: https://github.com/sedmelluq/lavaplayer/issues/525

Even after using #501, I still get this issue.

Debug:
System Properties:
  java.version = 1.8.0_262-heroku
  java.vm.name = OpenJDK 64-Bit Server VM
  java.vm.specification.version = 1.8
  java.runtime.name = OpenJDK Runtime Environment
  java.runtime.version = 1.8.0_262-heroku-b10
  java.specification.version = 1.8
  os.arch = amd64
  os.name = Linux

JMusicBot Information:
  Version = 0.2.10
  Owner =<PHONE_NUMBER>62142978
  Prefix = sy.
  AltPrefix = @mention
  MaxSeconds = 0
  NPImages = false
  SongInStatus = false
  StayInChannel = true
  UseEval = true
  UpdateAlerts = true

Dependency Information:
  JDA Version = 3.8.3_464
  JDA-Utilities Version = 2.1.5
  Lavaplayer Version = 1.3.50

Runtime Information:
  Total Memory = 239
  Used Memory = 85

Discord Information:
  ID =<PHONE_NUMBER>13685580
  Guilds = 9
  Users = 91159

@ThaddeusKKR #501 is not merged so there is no way that you used it's changes yet.

@Sanduhr32 Did you try to compile with #501?

@Proxymiity self-building isn't supported, so i don't provide official jars of @jagrosh project. I can confirm that my self-built jar works tho. I also highly doubt that they built my fork since it would have displayed 1.3.52 instead of 1.3.50 for Lavaplayers version.

@Sanduhr32 Sure, I just wanted to know if your patch fixes this issue, not to distribute it :)

@Proxymiity
System Properties:
  java.version = 14.0.2
  java.vm.name = OpenJDK 64-Bit Server VM
  java.vm.specification.version = 14
  java.runtime.name = OpenJDK Runtime Environment
  java.runtime.version = 14.0.2+12
  java.specification.version = 14
  os.arch = amd64
  os.name = Linux

JMusicBot Information:
  Version = Snapshot
  Owner =<PHONE_NUMBER>18934784
  Prefix = @mention
  AltPrefix = &&
  MaxSeconds = 0
  NPImages = true
  SongInStatus = false
  StayInChannel = true
  UseEval = true
  UpdateAlerts = true

Dependency Information:
  JDA Version = 3.8.3_464
  JDA-Utilities Version = 2.1.5
  Lavaplayer Version = 1.3.51

Runtime Information:
  Total Memory = 80
  Used Memory = 74

Discord Information:
  ID =<PHONE_NUMBER>51700480
  Guilds = 6
  Users = 4069

I had the same issue described here...
So when can we expect this to be fixed? since there seems to be a self compiled fix already?

It will be fixed when the project's maintainer will look at this issue I think (or someone with write access to the repo). Currently, you need to wait a fix.

This should be solved as of version 0.3.1


Create xtask to install application data in one go

At the moment this means mostly installing and compiling gschemas.
See here for more details: https://github.com/matklad/cargo-xtask

Why introduce yet another build system? :)

What alternative do you propose?
It's not like I can use cargo to install stuff.
Also xtask is basically a shell script but in Rust.

I don't really have any alternatives to propose but I'm wondering if it makes sense to introduce this in addition to meson, or maybe it makes sense to instead introduce meson earlier? Do we want people to actually use cargo xtask in practice?

I don't really have any alternatives to propose but I'm wondering if it makes sense to introduce this in addition to meson, or maybe it makes sense to instead introduce meson earlier? Do we want people to actually use cargo xtask in practice?

No, it will not be mentioned in the book.
It’s just for my convenience so I don’t habe to install everything manually.

Oh I see. I thought this was something you wanted to cover in the book. Then ignore my concerns :)

you don't necessarily need to install the compiled schema, there is an env variable you can make use of btw

Are you suggesting to set the env var in the code of the listings instead of installing the schemas first?

Are you suggesting to set the env var in the code of the listings instead of installing the schemas first?

Yes, that is an option. Installing the schemas is only needed if you are distributing the application

I would still need compile them somehow right?

Definitely.


Update jsoniter-scala-core, ... to 2.24.2

About this PR
📦 Updates

com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core
com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros

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

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

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

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

Superseded by #523.


memo does not work with class components

Followup from #1914 and #1875.
See https://github.com/airbnb/enzyme/pull/1914#issuecomment-467244909 and
https://github.com/airbnb/enzyme/pull/1914/commits/6b3274b72dbed367acf1fc985dd0a9b873a35b0b; once https://github.com/facebook/react/issues/14807#issuecomment-462147431 is resolved, we'll need to revisit these tests.

https://github.com/facebook/react/issues/14807 seems to be closed now

hmnm, this already seems revisited here: https://github.com/airbnb/enzyme/blob/master/packages/enzyme-test-suite/test/shared/methods/find.jsx#L918 - but I suspect that's the cause of #2113. Closing in favor of that.


Update plan-connectivity-from-office-365-to-sharepoint-server.md

Clarity #1445

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.


Update yaml files with the new syntax for where variable is_defined / is_not_defined

Description
Refactors yamls in processWhere for is_defined and is_not_defined
Issue(s) addressed
Resolves #193
Impact
Requires changes in yamls that use filters with where statement:
is_defined: -> changed to value: is_valid
is_not_defined: -> changed to value: is_not_valid

I'm happy with this change.

Do you mean for sith, or all of the mo-bundle unit tests?

I'm happy with this change.

Do you mean for sith, or all of the mo-bundle unit tests?

Probably kgo and mo-bundle.

I'm happy with this change.

Do you mean for sith, or all of the mo-bundle unit tests?

Probably kgo and mo-bundle.

Sure, I will update my build with this branch and run all of the unit tests. I already ran the KGO tests in the sith PR, but I can do that again with the updated build for completeness.


Allow to preserve every UI elements

I am trying to improve my prose writing setting and one thing I want to do is stop relying on hard text wrapping because of the inconvenience of having to join the lines before copy/pasting to other software.
The issue with the soft wrap approach is that there is currently no way of soft wrapping at an arbitrary width which result in lines being uncomfortably long. There is an opened issue on Neovim's repo but it's not getting any attention (https://github.com/neovim/neovim/issues/4386) and as far as I know there is no effort made in this direction.
Zen-mode actually solves this issue by allowing to resize the window & center it. The only issue with Zen-mode is that it hides all UI elements of Neovim by default, without any option to prevent it, which makes it unusable for me...
How hard would it be to make hiding the UI optional? If you don't have enough time to work on this but would accept a PR, could you point me in the right direction?

Hi @noomly @folke
On a related note, is it possible to enable soft wrapping when zen mode
is enabled and go back to whatever state soft wrapping was in before
turning on zen mode?
I see that we have on_open and on_close callbacks, but I am not sure
if they allow saving the soft wrapping state in on_open so that we can
go back to the appropriate previous state at on_close.
Thank you!

@gsbabil that is possible:
local oldwrap = vim.wo.wrap

require("zen-mode").setup {
    -- ...
    on_open = function(win)
        oldwrap = vim.wo.wrap
        vim.wo.wrap = true
    end,
    on_close = function()
        vim.wo.wrap = oldwrap
    end,
}


Request: php

Love the package! Could you add php highlighting?

Hmmm there's at least an attempt to support PHP:
https://github.com/gkemmey/jekyll-syntax-highlighting/blob/master/grammars/jekyll-syntax-highlighting.cson#L243-L259
I know we piggyback off how the language-gfm package handles this, and it doesn't appear to be working quite right there either (at least not for me quickly testing):

I'll try and take a closer look this weekend, see if I can figure out what's going on.

Update: @robdecker here's as far as I've gotten so far: https://github.com/gkemmey/jekyll-syntax-highlighting/pull/2


Add examples

Add an examples directory, with an initial set of simple usage examples.

I have preliminary code written for ipwhois -> elasticsearch/kibana. Should be able to push that code this week/weekend.

I am closing this so I can get the main code release out. I will open a new tracking issue for the next release examples.


Semantic versioning for PIG type universes

PIG domains could be given semantic versioning to help with identifying their persisted instances.
Example:
(universe_version  { major: 1, minor: 2 ))

(define calculator_ast
    (domain
        (sum operator (plus) (minus) (times) (divide) (modulo))
        (sum expr
            (lit value::int)
            (binary op::operator left::expr right::expr)
        )
    )
)

When converted to s-expressions, they might look like this:
(tree
  { domain: calculator_ast, major: 1, minor: 2 }
  (lit 42)
)

universe_version and domain_tree being tyhe new things here.  The version would apply to all domains in the type domain  since changing one domain can impact any domain that permutes from it.
This helps us to deal with some of the challenges that arise when loading data from an older type universe into a newer generated domain.
When the s-expressions are created by the generated code, they must be wrapped in a tree node with the same version numbers as the type universe file it was generated from.  When converting back from s-expressions, the generated code must ensure that the major version is the same and that the minor version is equal or less than the same in the type universe file.  The only caveat is that the major and minor versions must be manually maintained--and we'll have to consider carefully if the changes we make should be a major or minor version bump.

For the version number, I would recommend defining it at the top of the PIG type universe file to indicate that it belongs to all the permuted PIG domains.


Update broker resource rebuild endpoint

Update broker resource rebuild endpoint
Update the broker resource rebuild endpoint to specify that it
requires the table type suffix (eg. myTable_OFFLINE or
myTable_REALTIME). Update the endpoint to return status messages. Set
the HTTP status code to not be 200 on error.

Current coverage is 66.61% (diff: 0.00%)

No coverage report found for master at 011302d.

Powered by Codecov. Last update 011302d...d2c8391


Docs - QA - improve: use in library

State you ideally need a dedicated xcode project to include build script

Add link to issue explaining this

Change example script with accessLevel for Cocoapod users:
If you have a dedicated xcode project for your library and you use R.swift in your library you need to install it somehow right? Probably with a regular Podfile? and thus the script needs to be changed to "$SRCROOT/Pods/R.swift/rswift" generate "$SRCROOT"

Thanks for this improvement!


Using the plugin without the #

First of all thank you so much for this great piece of code.
I have trouble using the plugin with Angular Ui-Router and it's mainly due to the fact that it uses href and #something... so my router tries to redirect instead of executing the directive code.
Is there a way to avoid that?
Cheers!

Have the same issue...

Expected. Especially when code $anchorScroll has that. It would be a great addition.

Support for using the du-smooth-scroll="your-id" instead made it into 0.7.0.

does this allow using the module with ui-router? a simple use case for me isn't working and i have no idea why.
the nav
ul.nav.nav-pills.nav-stacked
    li(ng-repeat='c in description.Components')
        a(du-smooth-scroll='{{c.Name}}', du-scrollspy='') {{::c.Name}}

the table
div(ng-repeat='component in description.Components', ng-attr-name='{{component.Name}}')
	h4 {{::component.Name}}

@achristie: The scrollspy will have problems with dynamically created elements, but smooth scroll should work. Did you try to use id or name instead of ng-attr-name?

@oblador: Thanks for reply. I did try variations including what you suggested but no luck. I've also tried programmatically calling scrollTo and again no luck.

@achristie: OK, can you post this as a new issue with a minimal plunker?


Dragging doesn't work in IE9

Nothing on the demo page works on IE9.

I will look at it soon.. need to borrow PC! Thanks for report.

Microsoft has free virtual machines with Internet Explorers from 8 onwards: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
They offer multiple platforms, like VirtualBox, Vagrant, VMWare or Parallels. So regardless of your system, you can use the appropriate IE version. And with https://ngrok.com/, you can easily tunnel to localhost.

I dont believe virtual machines, I have multiple bad experience with them. They worked differently from real machines and I burn lot of hours finding that it was the only reason some stuff didnt work. I rather borrow pc for a while ;) But anyway, thanks for links and advice 👍

I would agree for some lower level work, but in this case, the issue is several layers of abstraction above that (e.g. Windows > IE > JS engine). Shout if I can help anyhow.

Is there a free solution I can run those virtual machines on Mac?? Thanks

Sure, I'm running them with VirtualBox.

I dont know why I didnt try to look at virtualbox Mac version, I have used virtualbox in several linux distributions and on win too. Ok, now I am downloading VM with IE9. I hope I will be able to debug in IE :D I dont have much experience with IE tools. Wish me a luck ;)

Fix based on dragula issue! Thanks for contribution! ;)


Example does not work - colon is missing

At https://docs.microsoft.com/en-us/azure/devops/pipelines/security/templates?view=azure-devops#use-extends-templates
in the first example it is written:
# template.yml
parameters:
- name: usersteps
  type: stepList
  default: []
steps:
- ${{ each step in parameters.usersteps }}
  - ${{ step }}

This will not work because the line - ${{ each step in parameters.usersteps }} is missing a colon at the end. The example should be:
# template.yml
parameters:
- name: usersteps
  type: stepList
  default: []
steps:
- ${{ each step in parameters.usersteps }}:
  - ${{ step }}

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

ID: f721e2df-f7e4-8db7-08cc-eab779477c99
Version Independent ID: 95014030-e9eb-6425-2990-8f9fa2452e7e
Content: Security through templates - Azure Pipelines
Content Source: docs/pipelines/security/templates.md
Product: devops
Technology: devops-cicd-security
GitHub Login: @juliakm
Microsoft Alias: jukullam

@raspe88 Thank you for the feedback.
This issue has previously been reported under https://github.com/MicrosoftDocs/azure-devops-docs/issues/8287.
Please refer there for further updates.


virt-manager does not start

Issue description
Running virt-manager gives the following error message:
Traceback (most recent call last):
  File "/nix/store/2iiz3nfs5x9wbprf0mfiahir0hzibbgf-virt-manager-1.4.1/share/virt-manager/virt-manager", line 29, in <module>
    import gi
ImportError: No module named gi

Steps to reproduce
$ virt-manager
Technical details

System: (NixOS: nixos-version, Ubuntu/Fedora: lsb_release -a, ...)
17.09pre108282.53835c93cb (Hummingbird)
Nix version: (run nix-env --version)
nix-env (Nix) 1.11.9
Nixpkgs version: (run nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion)
"17.09pre108282.53835c93cb"
Sandboxing enabled: (run grep build-use-sandbox /etc/nix/nix.conf)
build-use-sandbox = true

Did you see/test https://github.com/NixOS/nixpkgs/pull/26375?

Yeah, judging from the /nix/store hash, seems like a duplicate. I'll close this.


Release Flatcar Container Linux Alpha 3480.0.0, Beta 3446.1.0, Stable 3374.2.2

Release Flatcar Container Linux Alpha 3480.0.0, Beta 3446.1.0, Stable 3374.2.2
The release of Flatcar Container Linux Alpha 3480.0.0, Beta 3446.1.0, Stable 3374.2.2 is planned for January 11th, 2023
Tasks

[x] Go / No Go hackmd doc created from previous one for test tracking and release notes: link (@sayanchowdhury)
[x] All planned changes are merged & blocker bugs are fixed, last nightly reviewed for problems (@sayanchowdhury)
[x] Branch off main (only new major) (@sayanchowdhury)
[x] Tag build branch (@sayanchowdhury)
[x] Start Jenkins builds, post links as comment (@sayanchowdhury)
[x] Test status captured in hackmd doc (@sayanchowdhury)
[x] All tests are green (@sayanchowdhury)
[x] Release notes / announcements added to Go/No Go doc from container/image_changes job by selecting Timestamps: None (@sayanchowdhury)
[x] QA: check diff for image file list, packages, and image size in the image job output (@dongsupark)
[x] Matrix Go/No Go meeting (inc. release notes review) (@sayanchowdhury)
[x] Update payload signed/uploaded (@dongsupark)
[x] scripts release created on GitHub (@dongsupark)
[x] Release job container/release ran (@dongsupark)
[x] Images uploaded with copy-to-origin.sh (@dongsupark)
[x] Azure offer updated & publishing started (@sayanchowdhury )
[x] Azure Go Live (@sayanchowdhury )
[x] GCP offers updated (@sayanchowdhury )
[x] Symlink to "current" updated with set-symlink.sh (@dongsupark)
[x] Website updated with ./update-flatcar-versions.sh and PR merged (@dongsupark)
[x] Release package published in Nebraska (@dongsupark)
[x] Send announcement to Mailing Lists (@miao0miao)
[x] Send Toot out (@ahrkrak)
[x] Brief version announcement in slack (k8s slack #flatcar) and the Flatcar matrix channel (@dongsupark)

alpha 3480.0.0 http://jenkins.infra.kinvolk.io:8080/job/container/job/sdk/516/cldsv/
beta 3446.1.0 http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/1045/cldsv/
stable-3374.2.2 http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/1046/cldsv/
lts 3033.3.9 http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/1034/cldsv/

The alpha 3480.0.0 currently causes an install boot loop.
Coming from 3446.0.0 the logsmithd issues a reboot and tries to install the new system. Then fails and restores the previous alpha.
Investigation ongoing. But it worked for years previously.

Switching the machine to beta channel: same loop.
Investigation currently impossible as the machine writes no logs during update; only in the "real" system.
More investigations follow on Sunday during planned maintenance window.

Thanks for testing alpha & beta. We're trying to repro but so far this seems isolated. Any chance you see something happening on the serial console that would hint to what is going wrong?

I can not (currently). On Sunday no problem.
The machine is from around 2016 (the CoreOS days) and was automatically migrated since then. Unverified assumption: boot partition too small. Currently 11MB left. I'm currently running more tests on fresh installs, but too early to confirm anything.

Are you able to shortly log in with SSH? Woud be great to get the journalctl output.
Yes, the boot part problem is on the radar for some time and I'll look into freeing up some larger chunks.

I can log in as long as often as you like, but can't afford long reboots and failing installs for now. But as mentioned above there is no journalctl output for the time period the (failing) update takes place. The last entries are "systemd[1]: Reached target System Reboot. (...) systemd-journald[694]: Journal stopped", then silence, and after ~10 minutes "kernel: Linux version 5.15.81-flatcar (...)".

The logs since July 2022 always show "Update successfully applied, waiting to reboot." Even for this release, The only meaningless difference is the ever increasing "Payload Attempt Number = 61" for this release. But as I have stopped the update-engine it does not try again. Resuming on Sunday...
On fresh installs the update works flawlessly. Must be something isolated which I cannot pin down at the moment. I report back as soon as I have full control over the machine.

We recorded a boot sequence video available at https://lohmann.ml/sl/hausbesuch-wahnsinnig
The video starts with the shutdown sequence after successful installation. Then it boots right into emergency shell without any visible errors. And after the timeout expires just reboots into the old system.
During boot one can see the grub menu containing "CoreOS" entries as this is a former CoreOS. Maybe this could be a problem as the /boot partition is not upgraded at all. It has still all the files from 2016 when the machine was installed. I have never seen a CoreOS or FlatcarOS machine upgrading its /boot partition. Shouldn't that be done sometimes?
If you want I can try to provide an image of that machine without the confidential docker images and volumes for further analysis.

Can you press enter on that console, type journalctl and find out what happens after the rootfs is mounted (about 2.0 seconds into the boot in that video)? That's when the system decides to not proceed with the boot and fail in the initrd.
A snapshot of that vm without any of the docker images/volumes would work too, but we would need all other state in the root filesystem.

Hitting Enter does not result into a real emergency shell. The system then enters a 15 second boot loop which can only be resolved by a (virtual) reset.
Therefore here is the machine disk image without the docker images and volumes: https://lohmann.ml/sl/gesamtjahr-rechtslage
Volume A contains the "good" system and Volume B is this release which shows the odd behavior.

Thanks a lot!
Hitting Enter works for me, maybe it depends on the console setup, I used QEMU via serial console and console=ttyS0.
I have to apologize, my change for running systemd-tmpfiles not only on first boot introduced the regression because it can't resolve the core user for some reason. Thanks a lot for reporting so quickly and preventing it from hitting Stable.
[    2.226858] systemd[1]: Starting Root filesystem setup...
[    2.243882] systemd-tmpfiles[503]: /sysroot/usr/lib/tmpfiles.d/baselayout-home.conf:1: Failed to resolve group 'core'.
[    2.245208] systemd-tmpfiles[503]: /sysroot/usr/lib/tmpfiles.d/baselayout-home.conf:2: Failed to resolve group 'core'.
[    2.246496] systemd-tmpfiles[503]: /sysroot/usr/lib/tmpfiles.d/baselayout-home.conf:3: Failed to resolve group 'core'.
[    2.247895] systemd-tmpfiles[503]: /sysroot/usr/lib/tmpfiles.d/baselayout-home.conf:4: Failed to resolve group 'core'.
[    2.249156] systemd-tmpfiles[503]: /sysroot/usr/lib/tmpfiles.d/baselayout-home.conf:5: Failed to resolve group 'core'.
[    2.250974] systemd[1]: initrd-setup-root.service: Main process exited, code=exited, status=65/DATAERR
[FAILED] Failed to start Root filesystem setup.

As workaround you can do echo core:x:500: | sudo tee -a /etc/group once and then the update will boot.
I guess we could fix https://github.com/flatcar/baselayout/blob/flatcar-master/scripts/flatcar-tmpfiles to also copy the list of wanted users over if they don't exist, not only if the file doesn't exist.

Actually I don't need a workaround right now. I would rather like to see it fixed in the next release so that it is helpful for everybody. For me there is no real need to switch to this release. I'll skip it until the underlying issue is fixed.

On the cloned machine the workaround solved the problem. On the real machine I'm waiting for a new release by halting the update-engine service.


AWSNetwork CRD prototype

Related to:

https://kubernetes.slack.com/archives/CD6U2V71N/p1688404556966619?thread_ts=1679477173.175129&cid=CD6U2V71N
https://github.com/giantswarm/roadmap/issues/1979
https://github.com/giantswarm/roadmap/issues/1932

In a deep dive meeting about the networking proposal draft, the maintainers recommended to already start a prototype in order to rule out any implementation roadblocks that we didn't think of, and lay out a sane way of migrating away from AWSCluster.spec.network.

Alternative: https://github.com/giantswarm/giantswarm/issues/29247 (ACK or Crossplane, could replace lots of infra code in CAPA by references)


[yux] Adding Southern Yukaghir.

[x] Updated Unreleased in CHANGELOG.md to reflect the changes in code or data.

Nice, now we can finally read the famous love letter.


feat: accept optional field ID in create asset probe

Accept an optional ID field for create asset probe. ID, if specified, needs to be a valid UUID. The probe is created with the given ID if specified in the request and auto-generated otherwise. If the ID already exists, an appropriate error is returned.
Bump proton commit for generating protos.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

27 of 29 (93.1%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 85.789%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/store/postgres/asset_repository.go
15
17
88.24%

Totals

Change from base Build<PHONE_NUMBER>:
0.05%

Covered Lines:
5228

Relevant Lines:
6094

💛  - Coveralls


Issue with Beta CDM Folder View for Azure Data Lake Storage Gen2

Unable to access the data through the: Cdm.Contents(AzureStorage.DataLake() connector. It seems to be requiring a "local:" prefix on the entity folder within the datalake.
I get the following error:

This error is being cause by: adding "local:" as a prefix to the folder path.

If duplicate the folder in my ADLS and rename the folder from "account"  to "local:account" everything works perfectly.
This is the error if I try to access through the connector gui:

Here is the M Code:

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

ID: 3810fe22-7b24-6bcb-3dd5-21aeb462cdf9
Version Independent ID: df3d222c-d8b8-38a3-e0c5-4fb1cbef022c
Content: Analyze Common Data Service exported to Azure Data Lake Storage Gen2 data with Power BI - Power Apps
Content Source: powerapps-docs/maker/common-data-service/export-to-data-lake-data-powerbi.md
Service: powerapps
GitHub Login: @sabinn-msft
Microsoft Alias: matp

We've seen this happen in some cases and have reported the issue to the CDM folder view connector team. In a couple of cases, the issue went away when they upgraded to latest Power BI or reinstalled it. This is however being accomodated in the next fix which should be out soon. If you continue to the face the error, do let us know and we'll happy to bridge you with the connector team.

Closing issue.


[Q] Logging arrays?

I was able to log arrays earlier. But now, the arrays I log actually end up logged as histograms. Is there a way to log arrays as they are?

Hi @Laknath1996 ,
Happy to help. To further assist, please provide the following information:

Brief description of your experiment.
Are your arrays in numpy or pandas?
What type of data does it contain?

An option would be to log them as Tables, docs here, check the Pandas Dataframe tab for an example.

Thanks for pointing that Tables can be used to log an array. I was trying to log a numpy array that consists of a sequence of predictions made by the model at the end of training. I think logging them as an entry of a dataframe would work. Thank you!

Glad that it worked on your end @Laknath1996 , will mark this as resolved and feel free to write us again for any questions.