Add method of migration from CE to CN Kubernetes

We need to detect  all areas of change and migrate connections to CN.
@nynymike
IP addresses: in chroot, oxauth connects to LDAP via localhost, so bootstrap LDAP connection properties will need to be updated when migrating to kubernetes. Also, the IP Address is in the chroot httpd.conf Listen directive
Cache Refresh… which uses the file system to store snapshots
Private key access
Is the chroot one instance, or a clustered deployment (using Cluster Manager)?
https://github.com/GluuFederation/enterprise-edition/wiki/chroot-to-kubernetes-migration

Steps

Prepare manifests files:

Login to server where CE is installed:
ssh $USER@$CE_SERVER

Create new directory:
mkdir -p /ce
cd /ce

Create setup.properties by running the following command:
openssl enc -d -aes-256-cbc -in /opt/gluu-server/install/community-edition-setup/setup.properties.last.enc -out setup.properties

Get all certificates, keys, and keystores:
cp /opt/gluu-server/install/community-edition-setup/output/*.crt .
cp /opt/gluu-server/install/community-edition-setup/output/*.key .
cp /opt/gluu-server/install/community-edition-setup/output/*.jks .
cp /opt/gluu-server/install/community-edition-setup/output/*.pkcs12 .
cp /opt/gluu-server/opt/shibboleth-idp/credentials/*.jks .
cp /opt/gluu-server/opt/shibboleth-idp/credentials/*.kver .
cp /opt/gluu-server/etc/certs/*.crt .
cp /opt/gluu-server/etc/certs/*.key .
cp /opt/gluu-server/etc/certs/*.jks .
cp /opt/gluu-server/etc/certs/*.pkcs12 .

Get salt file:
cp /opt/gluu-server/etc/gluu/conf/salt .

Get configuration/secret stored in persistence.
For LDAP-based persistence, run the following command:
opt/opendj/bin/ldapsearch \
    --useSSL \
    --trustAll \
    -D "cn=directory manager" \
    -p 1636 \
    -w $LDAP_PASSWD \
    -b "o=gluu" \
    -s sub '(|(objectClass=oxAuthConfiguration)(objectClass=gluuConfiguration)(objectClass=oxAuthClient))' > backend.ldif

Otherwise, for Couchbase-based persistence, run the following N1QL query (in Couchbase UI):
SELECT META().id, gluu.dn, gluu.objectClass, gluu.oxAuthConfWebKeys, gluu.oxAuthJwks, oxCacheConfiguration
FROM gluu
WHERE objectClass IN  ['oxAuthClient', 'oxAuthConfiguration', 'gluuConfiguration']

Save the result as backend.json file.

Logout from server where CE is installed

Download manifests files:
scp -r $USER@$CE_SERVER:/ce .

Run the image container:
# License terms and conditions for Gluu Cloud Native Edition:
# https://www.apache.org/licenses/LICENSE-2.0
apiVersion: batch/v1
kind: Job
metadata:
  name: config-init-load-job
spec:
  template:
    spec:
      restartPolicy: Never
      volumes:
        - name: config-generate-params
          configMap:
            name: config-generate-params
      containers:
        - name: config-init-load
          image: gluufederation/config-init:4.2.3_01
          volumeMounts:
            - mountPath: /opt/config-init/db/generate.json
              name: config-generate-params
              subPath: generate.json
          envFrom:
          - configMapRef:
              name: gluu-config-cm
          args: ["migrate", "--backend", "json"]

Note: choose ldif if using backend.ldif or json if using backend.json file.

The image should be changed to 4.3.0_xx as the feature is applied in 4.3

Updated Steps

Login to the server where CE is installed:
ssh $USER@$CE_SERVER

Backup the data in persistence and save them elsewhere.

Set an environment variable to mark where the root directory of CE installation is.
If using chrooted installation:
export CE_HOME=/opt/gluu-server

otherwise:
export CE_HOME=

Prepare manifests files:

Create new directory:
mkdir -p $HOME/ce-migration
cd $HOME/ce-migration

Take a note about the full path of this directory (for example /root/ce-migration).

Create setup.properties by copying setup.properties.last (if exists):
cp $CE_HOME/install/community-edition-setup/setup.properties.last setup.properties

otherwise:
openssl enc -d -aes-256-cbc -in $CE_HOME/install/community-edition-setup/setup.properties.last.enc -out setup.properties

Get all certificates, keys, and keystores:
cp $CE_HOME/etc/certs/*.crt .
cp $CE_HOME/etc/certs/*.key .
cp $CE_HOME/etc/certs/*.pem .
cp $CE_HOME/etc/certs/*.jks .
cp $CE_HOME/etc/certs/*.pkcs12 .
cp $CE_HOME/opt/shibboleth-idp/credentials/*.jks .
cp $CE_HOME/opt/shibboleth-idp/credentials/*.kver .
cp $CE_HOME/opt/shibboleth-idp/conf/datasource.properties .

Get salt file:
cp $CE_HOME/etc/gluu/conf/salt .

Get configuration/secret stored in persistence.

FROM gluu
WHERE objectClass = 'gluuConfiguration'

# save the result as oxauth-configuration.json manually
SELECT META().id, gluu.*
FROM gluu
WHERE objectClass = 'oxAuthConfiguration'

# save the result as oxauth-client.json manually
SELECT META().id, gluu.*
FROM gluu
WHERE objectClass = 'oxAuthClient'

Here's an example of the expected .json file:
[
    {
        "dn": "ou=configuration,o=gluu",
        "gluuPassportEnabled": false,
        "gluuRadiusEnabled": false,
        "gluuSamlEnabled": false,
        "gluuScimEnabled": false,
        "gluuVdsCacheRefreshEnabled": false,
        "id": "configuration",
        "objectClass": "gluuConfiguration"
    }
]

For Spanner-based persistence:
Follow the official docs at https://cloud.google.com/spanner/docs/export (currently the supported format is Avro only).
Here's an example of exported Avro filenames:
gluuConfiguration.avro-00000-of-00001
oxAuthConfiguration.avro-00000-of-00001
oxAuthClient.avro-00000-of-00001

The expected filenames used by config-init container are:
gluu-configuration.avro
oxauth-configuration.avro
oxauth-client.avro

hence you may need to copy them manually from the original Avro files.

For SQL-based persistence (MySQL dialect):
Install mysqlsh, then run the following commands:
echo 'select * from gluuConfiguration' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > gluu-configuration.json
echo 'select * from oxAuthConfiguration' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > oxauth-configuration.json
echo 'select * from oxAuthClient' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > oxauth-client.json

Here's an example of the expected .json file:
{
    "hasData": true,
    "rows": [
        {
            "doc_id": "configuration",
            "objectClass": "gluuConfiguration",
            "dn": "ou=configuration,o=gluu",
            "description": null,
            "oxSmtpConfiguration": {
                "v": []
            },
            "gluuVDSenabled": null,
            "ou": "configuration",
            "gluuStatus": null,
            "displayName": null
        }
    ]
}

For SQL-based persistence (PostgreSQL dialect):
psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o gluu-configuration.json -c 'select json_agg(t) from (select * from "gluuConfiguration") t;'
psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o oxauth-configuration.json -c 'select json_agg(t) from (select * from "oxAuthConfiguration") t;'
psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o oxauth-client.json -c 'select json_agg(t) from (select * from "oxAuthClient") t;'

Here's an example of the expected .json file:
[
    {
        "doc_id": "configuration",
        "objectClass": "gluuConfiguration",
        "dn": "ou=configuration,o=gluu",
        "oxTrustStoreConf": "{\"useJreCertificates\":true}",
        "gluuAdditionalMemory": null,
        "gluuSmtpRequiresAuthentication": null,
        "gluuPassportEnabled": 0,
        "gluuShibFailedAuth": null,
        "gluuAppliancePollingInterval": null,
        "gluuAdditionalBandwidth": null,
        "gluuRadiusEnabled": 0,
        "description": null
    }
]

Logout from the server where CE is installed.

Download manifests files:
scp -r $USER@$CE_SERVER:/root/ce-migration .

Run the container to migrate CE configuration to CN configuration:
# License terms and conditions for Gluu Cloud Native Edition:
# https://www.apache.org/licenses/LICENSE-2.0
apiVersion: batch/v1
kind: Job
metadata:
  name: config-init-load-job
spec:
  template:
    spec:
      restartPolicy: Never
      volumes:
        - name: config-generate-params
          configMap:
            name: config-generate-params
      containers:
        - name: config-init-load
          image: gluufederation/config-init:4.3.0_dev
          volumeMounts:
            - mountPath: /opt/config-init/db/generate.json
              name: config-generate-params
              subPath: generate.json
          envFrom:
          - configMapRef:
              name: gluu-config-cm
          args: ["migrate", "--backend", "json"]

Supported data format:

ldif
couchbase+json
spanner+avro
postgresql+json
mysql+json

Import backup data into persistence manually.

Deploy oxAuth, oxTrust, and nginx/ingress services and verify whether migration with basic deployment worked.

If additional services are required (i.e. SCIM, Fido2, etc), run container/k8s job of gluufederation/persistence image to fill the missing entries (existing entries will not be modified). Note that some configuration may need to be modified manually via oxTrust UI.

Deploy additional services and verify whether migration is working as expected.

Final suggested doc:
Migratinng from the Community Edition (VM base) to the Cloud Native edition
Overview
This operational guide walks through migration from the community edition which uses a VM approach to the cloud native edition which is primarily a Kubernetes cluster.
Requirments

Access to the CE VM
Gluu CE version >= 4.3
A Kubernetes cluster, and access to kubectl. You may take a look at the following section to get a better sense on sizing requirements for the Kubernetes cluster.

Migration Steps

Login to the server where CE is installed:
ssh $USER@$CE_SERVER

Backup the data in persistence and save them elsewhere.

Set an environment variable to mark where the root directory of CE installation is.
If using chrooted installation:
```bash
export CE_HOME=/opt/gluu-server
```

otherwise:
```bash
export CE_HOME=
```

Prepare manifests files:

Create new directory:
mkdir -p $HOME/ce-migration
cd $HOME/ce-migration

Take a note about the full path of this directory (for example /root/ce-migration).

If setup.properties.last exists create setup.properties. Otherwise generate setup.properties.:
cp $CE_HOME/install/community-edition-setup/setup.properties.last setup.properties

If setup.properties.last does not exist:
openssl enc -d -aes-256-cbc -in $CE_HOME/install/community-edition-setup/setup.properties.last.enc -out setup.properties

Get all certificates, keys, and keystores:
cp $CE_HOME/etc/certs/*.crt .
cp $CE_HOME/etc/certs/*.key .
cp $CE_HOME/etc/certs/*.pem .
cp $CE_HOME/etc/certs/*.jks .
cp $CE_HOME/etc/certs/*.pkcs12 .
cp $CE_HOME/opt/shibboleth-idp/credentials/*.jks .
cp $CE_HOME/opt/shibboleth-idp/credentials/*.kver .
cp $CE_HOME/opt/shibboleth-idp/conf/datasource.properties .

Get the salt file:
cp $CE_HOME/etc/gluu/conf/salt .

    FROM gluu
    WHERE objectClass = 'gluuConfiguration'
    ```

    ```sql
    # save the result as oxauth-configuration.json manually
    SELECT META().id, gluu.*
    FROM gluu
    WHERE objectClass = 'oxAuthConfiguration'
    ```

    ```sql
    # save the result as oxauth-client.json manually
    SELECT META().id, gluu.*
    FROM gluu
    WHERE objectClass = 'oxAuthClient'
    ```

Here's an example of the expected `.json` file:

    ```json
    [
        {
            "dn": "ou=configuration,o=gluu",
            "gluuPassportEnabled": false,
            "gluuRadiusEnabled": false,
            "gluuSamlEnabled": false,
            "gluuScimEnabled": false,
            "gluuVdsCacheRefreshEnabled": false,
            "id": "configuration",
            "objectClass": "gluuConfiguration"
        }
    ]
    ```

=== "Spanner"
Follow the official docs at https://cloud.google.com/spanner/docs/export (currently the supported format is Avro only).

Here's an example of exported Avro filenames:

    ```bash
    gluuConfiguration.avro-00000-of-00001
    oxAuthConfiguration.avro-00000-of-00001
    oxAuthClient.avro-00000-of-00001
    ```

The expected filenames used by config-init container are:

    ```bash
    gluu-configuration.avro
    oxauth-configuration.avro
    oxauth-client.avro
    ```
hence you may need to copy them manually from the original Avro files.

=== "SQL"
=== "MySQL"
    Install [mysqlsh](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html), then run the following commands:

        ```bash
        echo 'select * from gluuConfiguration' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > gluu-configuration.json
        echo 'select * from oxAuthConfiguration' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > oxauth-configuration.json
        echo 'select * from oxAuthClient' | mysqlsh --json=pretty --sql --show-warnings=false --uri=$DBUSER@$DBHOST:$DBPORT/$DBNAME -p > oxauth-client.json
        ```

    Here's an example of the expected `.json` file:

        ```json
        {
            "hasData": true,
            "rows": [
                {
                    "doc_id": "configuration",
                    "objectClass": "gluuConfiguration",
                    "dn": "ou=configuration,o=gluu",
                    "description": null,
                    "oxSmtpConfiguration": {
                        "v": []
                    },
                    "gluuVDSenabled": null,
                    "ou": "configuration",
                    "gluuStatus": null,
                    "displayName": null
                }
            ]
        }
        ```

=== "PostgreSQL"

    ```bash
    psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o gluu-configuration.json -c 'select json_agg(t) from (select * from "gluuConfiguration") t;'
    psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o oxauth-configuration.json -c 'select json_agg(t) from (select * from "oxAuthConfiguration") t;'
    psql -h $DBHOST -p $DBPORT -U $DBUSER -d $DBNAME -W -t -A -o oxauth-client.json -c 'select json_agg(t) from (select * from "oxAuthClient") t;'
    ```

Here's an example of the expected `.json` file:

    ```json
    [
        {
            "doc_id": "configuration",
            "objectClass": "gluuConfiguration",
            "dn": "ou=configuration,o=gluu",
            "oxTrustStoreConf": "{\"useJreCertificates\":true}",
            "gluuAdditionalMemory": null,
            "gluuSmtpRequiresAuthentication": null,
            "gluuPassportEnabled": 0,
            "gluuShibFailedAuth": null,
            "gluuAppliancePollingInterval": null,
            "gluuAdditionalBandwidth": null,
            "gluuRadiusEnabled": 0,
            "description": null
        }
    ]
    ```

Logout from the server where CE is installed.

Download manifests files:
```bash
scp -r $USER@$CE_SERVER:/root/ce-migration .
```

Download pygluu-kubernetes.pyz. This package can be built manually.

Run :
# This will install the cloud native edition using migrated files skipping persistence initialization as this will be preformed manually.
./pygluu-kubernetes.pyz migrate

!!!note
The services will not run until the persistence backup date is imported.

Import backup data into the persistence manually.

Restart main services:
kubectl rollout restart deployment <gluu-release-name>-auth-server -n <gluu-namespace>
kubectl rollout restart statefulset <gluu-release-name>-oxtrust -n <gluu-namespace>
#kubectl rollout restart deployment gluu-auth-server -n gluu

If new additional services were deployed that originally were not on the source CE VM (i.e. SCIM, Fido2, etc), the persistence job must be enabled  to fill the missing entries (existing entries will not be modified). Note that some configuration may need to be modified manually via oxTrust UI.

Open  helm/gluu/values.yaml using your favourite editor, and set global.persistence.enabled to true.

Run helm upgrade:
helm upgrade <release-name> . -f ./helm/gluu/values.yaml -n <namespace>

Official doc: https://gluu.org/docs/gluu-server/4.3/operation/ce_to_cn_migration/


Stuck waiting for Dart VM url with no stack trace

This issue is specifically for tracking test flakes when the test is stuck waiting for the Dart VM url and there is no stack trace or errors.
 [2023-05-16 20:19:59.651391] [STDOUT] stdout: [        ] (lldb)     connect
 [2023-05-16 20:19:59.673451] [STDOUT] stdout: [  +21 ms] (lldb)     run
 [2023-05-16 20:19:59.673515] [STDOUT] stdout: [        ] Debugger state set to launching.
 [2023-05-16 20:19:59.790472] [STDOUT] stdout: [ +116 ms] success
 [2023-05-16 20:19:59.790529] [STDOUT] stdout: [        ] Debugger state set to attached.
 [2023-05-16 20:19:59.790594] [STDOUT] stdout: [        ] Application launched on the device. Waiting for Dart VM Service url.

Example: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios ios_platform_view_tests/10942/overview

cc @zanderso @cyanglaz @christopherfujino This specific representation of the Dart VM timeout should be fixed. If you see it pop up again, please cc me


[dev.icinga.com #11072] LWRP icinga2_service is very slow

This issue has been migrated from Redmine: https://dev.icinga.com/issues/11072
Created by ascopenco on 2016-02-02 20:27:38 +00:00
Assignee: vkhatri
Status: Assigned
Target Version: (none)
Last Update: 2016-02-16 09:15:18 +00:00 (in Redmine)

Hello,
I have issue with generation icinga2 configs with cookbook LWRPs. It take huge time.
For example generation of ~2k services take more then 30 mins on VM with 4 cpu core and 16Gb memory.
Tests show me the main problems is in icinga2_service. Its the slowest LWRP. 1-3 secs for one execution.

@scopenco Are you still facing the slow start up issue? Never got a chance to get back to you.

Yes, and I know the reasons. It's O(nn) algorithm complexity.
Each declaration of icinga2_service cause chef-client to parse service.conf, construct hash to services and search declared service in it. So when you have 10 services, you have 1010 time parser service.conf, then you have 3-5k service, it became 4-6 hours calculations.
So How did I resolved this problem for >3k service installations?
I've created a separate resource for icinga2 services declaration. It creates one file per host services so my custom icinga2_service each time read only file with one host with 5-7 services. It works much faster of course.

got same problem in configuration with 2k hosts and 20k services. It just not working because of described reason.
After some experiments - ended up with following approach:

use cookbook only for Icinga2 packages/main config/endpoints/apilisteners.
monkey-patched zone resource to get it work and use zone resource from cookbook.
keep all Icinga configuration items in cookbook files in native Icinga2 syntax.

Reason: Icinga2 configuration has it's own syntax, that's already "monitoring as code".
No reason to introduce one more translation layer ( Chef Resources > Icinga2 objects ).


Fortanix link brokem

The link to the Fortanix AKS quick-start seems to be broken and opens a 404 page on Fortanix
https://support.fortanix.com/hc/en-us/articles/360049658291-Fortanix-Confidential-Container-on-Azure-Kubernetes-Service

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

ID: 8b9fc25f-180f-5acd-f40c-a46947127c6e
Version Independent ID: b442f19a-1739-3fb3-390a-794e49eef3eb
Content: Confidential containers on Azure
Content Source: articles/confidential-computing/confidential-containers.md
Service: container-service
GitHub Login: @agowdamsft
Microsoft Alias: amgowda

@FergusKidd
Thanks for the feedback! We will check and updated the document as appropriate.


[SUGGESTION] Alternate actors for storage of components

Description
Most adventurers would not carry large or heavy resources with them in the field. Many groups solve this by storing items in different kinds of loot sheets or actors. (Like item piles or lootsheet). It would be nice there was an option to choose an alternate actor where your components are when crafting.
Benefit(s)
Less dragging and dropping for players.
Potential Implementation(s)
Maybe add to the player app?

Yeah, the Actor crafting app is going to be the place for this. That's the eventual place where recipes will be able to be learned, searched and crafting triggered by users. Adding a place to drop additional component sources makes a lot of sense 👍🏻

This was partially implemented in 0.9.0 as the API supports the operation, but the UI doesn't yet allow you to set a different source actor. I'll keep this open until that's done.


[create-theme]: Unset pinned tabs container height

Name
pinned tabs height
Description
Unset pinned tabs container height so you don't have to scroll
Homepage
https://github.com/skipness/zen-browser-pinned-tabs-height
Image
https://i.imgur.com/2JDmXVa.png
Type

[ ] JSON Color Theme

Theme Styles
#vertical-pinned-tabs-container {
  max-height: unset !important;
}

Readme
Unset pinned tabs container height so you don't have to scroll

Preferences
No response

absolute chad


Option to load workflow input artifacts in the wait container

Summary

Provide option to switch artifact loading from a workflow step's init container to the wait container.
Implement artifact loading status check to monitor the artifact loading
Delay the workflow container until artifact loading finish: add post-start lifecycle hook to the wait container definition inside the PodSpec, which uses the status check and blocks the next container startup (workflow step).

This delay logic is based on istio's holdApplicationUntilProxyStarts logic:

<EMAIL_ADDRESS>https://github.com/istio/istio/blob/0faf5136361fa4cea96787872a024882dfc85d9d/operator/cmd/mesh/testdata/manifest-generate/output/sidecar_template.golden.yaml#L369-L376

Use Cases

In hardened environments when Kubernetes nodes have network limitation such as they are not able to reach external network directly, only through Istio service mesh (init containers can't have istio-proxy sidecar to reach the mesh).
See issue: https://github.com/argoproj/argo-workflows/issues/7209

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

@zsolt-keseru-epam  I would not recommend changing the existing design instead of Workflow is already providing flexibility to add a sidecar on step/task. you can sidecar with a lifecycle hook which will download the artifacts.

would it make sense to mention somewhere in the argo-workflow docs that i does not support istio, when downloading artifacts with init containers?

seems like wait container might be too late since main container would have started already and not be able to see the input yet due to timing issue


Take seeds into account

Compute coverage also for seeds.
Fixes #17.

This is set up to merge into fix-manifest-parsing. However the real scenario will be that #19 will be merged to main first and then this will be merged to main.


feat: Changed OCI tag format

Fixes #N/A
Description
This PR changes the OCI tag pattern to be the SemVer version without the v prefix.
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.497%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5015

Relevant Lines:
6079

💛  - Coveralls

@jonathan-innis I've updated the docs and have standardised the pattern used to refer to Karpenter versions for consistency (see below).
Karpenter version: `0.34.1`
Karpenter minimum version: `0.34.0`+
Karpenter latest patch: `0.34.x` (this shouldn't be used where the minimum version would also work)


html-css-class-completion.cache not found

html-css-class-completion.cache
not found
Visual Stuido Code Version: 1.39.2
Platform: Windows 10
Imagen

I believe we fixed this issue. Please try it again


Added 2.10.0 release note

@DaveDuggins could you please help review? Thanks
FYI @momo-jun @D-2-Ed


Updating pictures due to the new feature

Hello!
We've just introduced a new feature on our website that lets users upload pictures of their pets. As a result, we've added random pictures to the cards of animals that were added prior to this update. It would mean a lot to us if you could replace the default picture with your own of your pet, as it would give a more personal touch to our website! If you'd like to share a real picture of your furry friend, you're more than welcome to submit a pull request!
@Sranjan0208
@Pragyan14
@marehori
@Yuva0
@SANDEEP-NAYAK
@abhinav2712
@AnkitAnandMastery17
@Zaris47
@IanLuong
@Hassan1305
@Vishal-Parasram
@Yashdon999
@harisdev-netizen
If I pinged someone who has helped us make our website better but hasn't added their pet's info yet, I just wanted to say thanks again! Feel free to add your pet's details with a picture for that personal touch! :)

@gabrysia694 Thats cool, will share it!!

Hi, Can I add picture of my pet?

@gabrysia694  May I work on this feature.
I have one question on this feature like upload option should be shown on hover of the image to change the image by user right and it will change the image and store the image in respective folder of image?

@gabrysia694 May I work on this feature.
I have one question on this feature like upload option should be shown on hover of the image to change the image by user right and it will change the image and store the image in respective folder of image?

The first version of our website didn't require users to upload a picture of their pets, resulting in only pet information being added. Later on, we updated our contribution guidelines and started requesting users to include a pet picture. As a result, we had to add random pictures to the pets that were already added. This issue is for those specific users giving them an opportunity to replace the default picture with their own.


Error with OPA parsing, only for Defender

I am receiving the following error when trying to run the Defender module.  Based on what I see in Issue 935, this may be the same bug.  All other modules function.
PS C:\Users\redacted> Invoke-Scuba -ProductNames defender
unable to parse input: yaml: line 163: found unknown escape character
Fatal Error involving the OPA output function.
Ending ScubaGear execution. See the exception message for more details: Cannot bind argument to parameter
'InputObject' because it is null.
At C:\Users\redacted\Documents\WindowsPowerShell\Modules\ScubaGear\1.3.0\Modules\Orchestrator.psm1:735
char:13

        throw $InvokeRegoErrorMessage

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : OperationStopped: (Fatal Error inv...use it is null.:String) [], RuntimeException
FullyQualifiedErrorId : Fatal Error involving the OPA output function.
Ending ScubaGear execution. See the exception message for more details: Cannot bind argument to parameter 'InputObject' because it is null.

Here are the lines in and around 163 in the ProviderSettingsExport.json:
    "PolicyRBACScopes":  [

                         ],
    "Identity":  "FFO.extest.microsoft.com/Microsoft Exchange Hosted Organizations/redacted.onmicrosoft.com/Configuration/M365 DLP Policy 08\04\2022",
    "Id":  "FFO.extest.microsoft.com/Microsoft Exchange Hosted Organizations/redacted.onmicrosoft.com/Configuration/M365 DLP Policy 08\04\2022",
    "IsValid":  true,
    "ExchangeVersion":  "0.20 (<IP_ADDRESS>)",

@schrolla Thank you.  Escaping or removing characters didn't help much.  However, 1.4.0 worked like a charm.  Thanks


Can I add a web project folder

I want to add a static webpage project which is created using HTML ,CSS and Javascript

Ok you can.

Ok thank you.

U most welcome dear :)


PermissionError: [Errno 13] Permission denied

Thanks for you great work, I have successfully installed the plugin and I can confirmed that my purifier is using plain_coap
by below testing :
sudo airctrl --ipaddr <IP_ADDRESS> --protocol plain_coap
[name]        Name: AirPurifier
[modelid]     ModelId: AC4558/31
[swversion]   Version: 1.0.1
[StatusType]  StatusType: localcontrol
[ota]         Over the air updates: no
[Runtime]     Runtime: 12.46 hours
[pwr]         Power: ON
[pm25]        PM25: 4
[iaql]        Allergen index: 1
[mode]        Mode: AG
[om]          Fan speed: a
[aqil]        Light brightness: 1
[uil]         Buttons light: ON
[ddp]         Used index: PM2.5
[cl]          Child lock: False
[fltsts0]     Pre-filter and Wick: clean in 23 hours
[fltsts1]     HEPA filter: replace in 3368 hours
[fltsts2]     Active carbon filter: replace in 0 hours
However, when I try to access it in homekit, I can see below error.
And actually I'd see the same if I test it with airctrol command without sudo, may I know how can I permit such access to fix it ?
7/5/2020, 11:54:49 AM Traceback (most recent call last):
7/5/2020, 11:54:49 AM File "/home/hoobs/.hoobs/node_modules/philips-air/pyaircontrol.py", line 123, in
7/5/2020, 11:54:49 AM main()
7/5/2020, 11:54:49 AM File "/home/hoobs/.hoobs/node_modules/philips-air/pyaircontrol.py", line 104, in main
7/5/2020, 11:54:49 AM print(c.get_status())
7/5/2020, 11:54:49 AM File "/home/hoobs/.hoobs/node_modules/philips-air/pyaircontrol.py", line 68, in get_status
7/5/2020, 11:54:49 AM status = self._client.get_status(False)
7/5/2020, 11:54:49 AM File "/home/hoobs/.local/lib/python3.7/site-packages/pyairctrl/plain_coap_client.py", line 220, in get_status
7/5/2020, 11:54:49 AM status = self._get()
7/5/2020, 11:54:49 AM File "/home/hoobs/.local/lib/python3.7/site-packages/pyairctrl/plain_coap_client.py", line 50, in _get
7/5/2020, 11:54:49 AM self._send_hello_sequence(client)
7/5/2020, 11:54:49 AM File "/home/hoobs/.local/lib/python3.7/site-packages/pyairctrl/plain_coap_client.py", line 83, in _send_hello_sequence
7/5/2020, 11:54:49 AM self._send_over_socket(self.server, packet)
7/5/2020, 11:54:49 AM File "/home/hoobs/.local/lib/python3.7/site-packages/pyairctrl/plain_coap_client.py", line 38, in _send_over_socket
7/5/2020, 11:54:49 AM s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, protocol)
7/5/2020, 11:54:49 AM File "/usr/lib/python3.7/socket.py", line 151, in init
7/5/2020, 11:54:49 AM _socket.socket.init(self, family, type, proto, fileno)
7/5/2020, 11:54:49 AM PermissionError: [Errno 13] Permission denied

Interesting, airctrl really should work just fine without sudo. Do you remember exactly the command you used to install it? I wonder if it installed in some nonstandard way or something...
Also, can you let me know which OS you’re running this under?

Hello, I'm running it with a HOOBS on a RPi4
the commands were just from the github readme.
Let me try it again with another spare pi

This jogged a memory a bit, and I remembered seeing people talking about needing sudo for CoAP on the py-air-control project page. You can see that discussion starting around this comment: https://github.com/rgerganov/py-air-control/issues/35#issuecomment-640271024
Can you see if what they discuss resolves needing root to run it for you? I think that problem is at the core of the plugin not working for you, as neither Homebridge or HOOBS runs as root (by default anyways, and it’d be a bad idea to change that).

Hello, yea seems it's more appropriate to ask the py-air-control, and I get the solution here, FYI
https://github.com/rgerganov/py-air-control/pull/49/commits/98e8fd8482386b2e8885ca767bdc774f759e4d98#diff-04c6e90faac2675aa89e2176d2eec7d8R96
it's simply solved by one more command :
sudo sysctl -w net.ipv4.ping_group_range="0 1000"
Thanks very much for your effort !

Awesome, I’ll update the readme tomorrow with that extra step. Looks like it must be specific to Plain CoAP units.
I might finally see if I can get a post install script together to automatically run these extra steps too.


Issue #37 - Convert the tabs to bottom navigation on mobile devices.

It isn't seem to be working. Any thoughts @haxzie @petervasil ??

We got few things left in it. As in removing the top nav on mobile devices.

@haxzie @rumaan I wasn`t sure if you want also remove top nav on mobile devices or only add bottom navigation. I can remove top nav on mobile devices if it is required.

@haxzie I fixed it and actual behaviour is that on mobile devices is visible only bottom navbar and on other devices is visible only top navbar. I hope that it is ok, if there are some other things let me now and I can repair it.


Do not seek in named pipe

Just updated to master and noticed that tailing on named pipes didn't work anymore.
This PR adds a pipe option to revert to the old situation without seeking.

@42wim Thanks for your contribution, can you please make sure travis is passing, before we merge this in.
Cheers,
Nino


cleanup: use %w to format errors

Use %w instead of %v to format errors.
Updates: #1586
Signed-off-by: Yati Padia<EMAIL_ADDRESS>

/retest ci/centos/upgrade-tests-cephfs

/retest ci/centos/upgrade-tests-cephfs

etcdserver: request timed out

/retest ci/centos/mini-e2e

/retest ci/centos/mini-e2e

Both failed with #1969

/retest ci/centos/mini-e2e/k8s-1.20

/retest ci/centos/mini-e2e/k8s-1.20

Failed to start minikube VM (logs):
X Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: Error creating machine: Error in driver during machine creation: IP not available after waiting: machine minikube didn't return IP after 1 minute

/retest ci/centos/mini-e2e-helm

/retest ci/centos/mini-e2e

/retest ci/centos/mini-e2e/k8s-1.19


Wrong aggregation result in Spark SQL tests after enabling columnar shuffle

Describe the bug
While trying to enable columnar shuffle by default, I found some Spark SQL tests are failed. Some are wrong aggregate result, e.g.
SQLQuerySuite: SPARK-8828 sum should return null if all input values are null
[info]   == Physical Plan ==
[info]   AdaptiveSparkPlan isFinalPlan=true
[info]   +- == Final Plan ==
[info]      *(2) ColumnarToRow
[info]      +- CometHashAggregate [sum#3766L, sum#3767, count#3768L], Final, [sum(a#136), avg(a#136)]
[info]         +- ShuffleQueryStage 0
[info]            +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=5228]
[info]               +- RowToColumnar
[info]                  +- *(1) HashAggregate(keys=[], functions=[partial_sum(a#136), partial_avg(a#136)], output=[sum#3766L, sum#3767, count#3768L])
[info]                     +- *(1) SerializeFromObject [knownnotnull(assertnotnull(input[0, org.apache.spark.sql.test.SQLTestData$NullInts, true])).a.intValue AS a#136]
[info]                        +- Scan[obj#135]
[info]   +- == Initial Plan ==
[info]      CometHashAggregate [sum#3766L, sum#3767, count#3768L], Final, [sum(a#136), avg(a#136)]
[info]      +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=5117]
[info]         +- HashAggregate(keys=[], functions=[partial_sum(a#136), partial_avg(a#136)], output=[sum#3766L, sum#3767, count#3768L])
[info]            +- SerializeFromObject [knownnotnull(assertnotnull(input[0, org.apache.spark.sql.test.SQLTestData$NullInts, true])).a.intValue AS a#136]
[info]               +- Scan[obj#135]
...
[info]   == Results ==
[info]   !== Correct Answer - 1 ==   == Spark Answer - 1 ==
[info]   !struct<>                   struct<sum(a):bigint,avg(a):double>
[info]   ![null,null]                [null,NaN] (QueryTest.scala:243)

aggregation with codegen:
== Physical Plan ==
[info]   AdaptiveSparkPlan isFinalPlan=true
[info]   +- == Final Plan ==
[info]      *(2) ColumnarToRow
[info]      +- CometHashAggregate [sum#4362, sum#4363, count#4364L], Final, [sum(null), avg(null)]
[info]         +- ShuffleQueryStage 0
[info]            +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10168]
[info]               +- RowToColumnar
[info]                  +- *(1) HashAggregate(keys=[], functions=[partial_sum(null), partial_avg(null)], output=[sum#4362, sum#4363, count#4364L])
[info]                     +- *(1) SerializeFromObject
[info]                        +- Scan[obj#12]
[info]   +- == Initial Plan ==
[info]      CometHashAggregate [sum#4362, sum#4363, count#4364L], Final, [sum(null), avg(null)]
[info]      +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10060]
[info]         +- HashAggregate(keys=[], functions=[partial_sum(null), partial_avg(null)], output=[sum#4362, sum#4363, count#4364L])
[info]            +- SerializeFromObject
[info]               +- Scan[obj#12]
[info]
[info]   == Results ==
[info]
[info]   == Results ==
[info]   !== Correct Answer - 1 ==   == Spark Answer - 1 ==
[info]   !struct<>                   struct<sum(a):double,avg(a):double,count(NULL):bigint>
[info]   ![null,null,0]              [null,NaN,0] (QueryTest.scala:243)

SPARK-3176 Added Parser of SQL LAST():
[info]   == Physical Plan ==
[info]   AdaptiveSparkPlan isFinalPlan=true
[info]   +- == Final Plan ==
[info]      *(2) ColumnarToRow
[info]      +- CometHashAggregate [last#4396, valueSet#4397], Final, [last(n#93, false)]
[info]         +- ShuffleQueryStage 0
[info]            +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10390]
[info]               +- RowToColumnar
[info]                  +- *(1) HashAggregate(keys=[], functions=[partial_last(n#93, false)], output=[last#4396, valueSet#4397])
[info]                     +- *(1) SerializeFromObject [knownnotnull(assertnotnull(input[0, org.apache.spark.sql.test.SQLTestData$LowerCaseData, true])).n AS n#93]
[info]                        +- Scan[obj#92]
[info]   +- == Initial Plan ==
[info]      CometHashAggregate [last#4396, valueSet#4397], Final, [last(n#93, false)]
[info]      +- CometColumnarExchange SinglePartition, ENSURE_REQUIREMENTS, CometColumnarShuffle, [plan_id=10279]
[info]         +- HashAggregate(keys=[], functions=[partial_last(n#93, false)], output=[last#4396, valueSet#4397])
[info]            +- SerializeFromObject [knownnotnull(assertnotnull(input[0, org.apache.spark.sql.test.SQLTestData$LowerCaseData, true])).n AS n#93]
[info]               +- Scan[obj#92]
[info]
[info]   == Results ==
[info]
[info]   == Results ==
[info]   !== Correct Answer - 1 ==   == Spark Answer - 1 ==
[info]   !struct<>                   struct<last(n):int>
[info]   ![4]                        [2] (QueryTest.scala:243)

Steps to reproduce
No response
Expected behavior
No response
Additional context
No response

The first two failures are due to incorrect null handling in Comet Average expression, I will submit a fix soon.

The last failure was fixed by #262.


Closing the request as I believe this is redundant.


Nuget package for rc2

Haven't seen any updates to the NuGet packages yet. Are they coming soon?

They are all on NuGet.org. The package names all changed for RC2 - https://docs.efproject.net/en/latest/miscellaneous/rc1-rc2-upgrade.html#package-names-and-versions.

Sweet, thanks!


Add type equality checks and overrides

All classes implement IEquatable and have GetHashCode and Equals overrides. Not sure if it is worth adding the operator overloads for equality too.

Cool thanks.
We should bump the version. If we get some of your other changes in, it'd be a major version upgrade.

Yeah - if we can my overhaul of the ValueJsonConverter merged (once we've sorted any other loose ends for it out), I think we'd be in a good place to version bump.


monitor.isDragging() throws error in collect function

Describe the bug
Hello, banging my head around this problem for half of the day already. Any help very appreciated
monitor.isDragging() throws error

My DragSource looks like that
const ResizeHandler = DragSource(
    "RESIZE_TYPE",
    {
        beginDrag: ({id}) => ({id}),
        endDrag: (props, monitor) => {
            console.log(props, monitor.getDifferenceFromInitialOffset().x);
        },
    },
    (connectDnd, monitor) => ({
        connectDragSource: connectDnd.dragSource(),
        isDragging: monitor.isDragging(), // fatal here
    }),
)(({isDragging, connectDragSource}: {isDragging: boolean, connectDragSource: Function}) => (
    connectDragSource(
        <div
            className={styles.resizeHandler}
            style={{
                background: isDragging ? `blue` : null,
            }}
        />,
    )
));

And at the moment of calling monitor.isDragging() everything fails as it doesn't have sourceId (equals to null).
Context is created by using DragDropContext(backend) and for backend is used some extended version of https://github.com/zyzo/react-dnd-mouse-backend
Expected behavior
monitor.isDragging() should work without exceptions
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Mac OS 10.14.3
Browser: chrome 72.0.3626.121 (Official Build) (64-bit)
Version: 7.3.1

Additional context
Add any other context about the problem here.
Thanks in advance

So I have a problem at render of DragDropContainer https://github.com/react-dnd/react-dnd/blob/master/packages/react-dnd/src/decorateHandler.tsx#L197
It creates monitor with sourceId: null, then it's trying to getCurrentState which leads to calling collect function. And by this moment it still doesn't have sourceId

If I comment monitor.isDragging() in collect function then everything works ok and DragDropContainer receives its' source on componentDidMount

@MikeYermolayev can you put together a minimal example demonstrating this in either a GH repo or a codepen or something like that?

Currently I'm away of my laptop. Will try later
One more thing to note:
Everything works when I use Ref Callbacks.
But when I pass ref from createRef API or useRef - it throws fatal

Oh right, that's a known issue. I'll spend some time on that today
On Mon, Mar 11, 2019, 9:39 AM Mikhail Yermolayev<EMAIL_ADDRESS>wrote:

Currently I'm away of my laptop. Will try later
One more thing to note:
Everything works when I use Ref Callbacks.
But when I pass ref from createRef API or useRef - it throws fatal
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/react-dnd/react-dnd/issues/1262#issuecomment-471619550,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAG7iOVUTFRCeL07KRgsG5U7TNPKHT0Kks5vVoavgaJpZM4boyji
.

@MikeYermolayev , I'm seeing useRef and createRef work when I use them in the functional component example. Can you provide a reproduction of the ref issues?

Oh wait, ref is not the reason. It fails for component where no refs are used at all. Sorry for wrong information.
I'll try to reproduce it in sandbox

Well. Looks like it's not that easy. The simplest scenario works for me in sandbox. Need to dig deeper

What a PITA, I'm glad you found the issue though. Thanks @MikeYermolayev !


It is not good

It is not good such sublimetext. I cannot run file html on browser with hotkey. Cannot call function which is defined from another file.

@chrisdias need some convincing here :)

surely no such good as sublimetext. sublimetext much good.

.>

@ndhuyfit google "vs code keybindings"

I cannot be suggest my function name in another file in PHP or JavaScript
On Thu, Apr 28, 2016 at 5:17 PM, Patrick Lienau<EMAIL_ADDRESS>wrote:

surely no such good as sublimetext. sublimetext much good.
.>

@ndhuyfit https://github.com/ndhuyfit google "vs code keybindings"
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/vscode/issues/5930#issuecomment-215378000

--
Nguyen Duc Huy
Department of Software Engineering
Faculty of Information Technology
University of Science, VNU (HCMC)
227 Nguyen Van Cu St., Dist. 5. HCMC, Vietnam
<EMAIL_ADDRESS>- www.fit.hcmus.edu.vn/~ndhuy

@ndhuyfit Improved PHP IntelliSense is being tracked by #670, and JS IntelliSense for html files is tracked in #3465
Here's how to launch the browser using the launch.json: http://stackoverflow.com/questions/30039512/how-to-view-my-html-code-in-browser-with-visual-studio-code

Thanks you so much
On Sat, Nov 12, 2016 at 6:37 AM, Matt Bierner<EMAIL_ADDRESS>wrote:

Closed #5930 https://github.com/Microsoft/vscode/issues/5930.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/5930#event-856561397, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIuy5m38CkSPHgnbLK3U2h7Q2J9a6m8Lks5q9PwvgaJpZM4IRleR
.

--
Nguyen Duc Huy
Department of Software Engineering
Faculty of Information Technology
University of Science, VNU (HCMC)
227 Nguyen Van Cu St., Dist. 5. HCMC, Vietnam
<EMAIL_ADDRESS>- www.fit.hcmus.edu.vn/~ndhuy


Drag and Drop in mobile

Is plugin not compatible with mobile?

Hi!
I tested in my smartphone (Android 8.1) and works fine, with without any adaptation.
Regards.

I use it on an Android and iPad and can use it very well. I can drag and drop items, rearrange them and even touch on it to open my jQuery modal forms.


Publish to Windows Package Managar (WinGet)

This action automatically generates manifests for WinGet Community Repository (microsoft/winget-pkgs) and submits them.
Before merging this:

Please add a GitHub token with public_repo scope as a repository secret and rename the secret name in the workflow.
Fork microsoft/winget-pkgs under @bornova.

@bornova can you please merge this?

@bornova please review 🙏🏻

Hi @vedantmgoyal2009,
Thank you for  your contribution but I don't think Numara is mature enough to be on WinGet yet.  I have other plans for v4.0 and wouldn't consider merging this until at least this new version is released.  This PR also changes the release type on the build workflow which I am not willing to change at the moment.

This PR also changes the release type on the build workflow which I am not willing to change at the moment.

@bornova this has been resolved...


Improvements on diversity, novelty etc. metrics

Description

Made improvements on diversity metrics for Spark in GitHub repo:

Moved diversity metrics into the same file as other Spark metrics
Updated READMEs
Added info in the notebook explaining which definitions are used, referring to the relevant citations
Added unit test for the notebook
Improved the code e.g. replaced cross join, changed novelty definitions to conform with Castells et al.

Related Issues

Checklist:

[x] I have followed the contribution guidelines and code style for this project.
[x] I have added tests covering my contributions.
[x] I have updated the documentation accordingly.
[x] This PR is being made to staging branch and not to main branch.

@YanZhangADS @anargyri feel free to merge when you consider the work is finished. After this is merged, I'll work on https://github.com/microsoft/recommenders/issues/1390

It looks like GitHub does not render the formulas properly on the branch (this is true for other notebooks too). You can see them all right on VSCode though.

@anargyri I'm able to render the formulas in reviewnb, however, this one is not rendering:
\textrm{IL} = \frac{1}{|M|} \sum_{u \in M} \frac{1}{\binom{N_r(u)}{2}} \sum_{i,j \in N_r (u),\, i

at first sight, there is a } missing

@anargyri I'm able to render the formulas in reviewnb, however, this one is not rendering:
\textrm{IL} = \frac{1}{|M|} \sum_{u \in M} \frac{1}{\binom{N_r(u)}{2}} \sum_{i,j \in N_r (u),\, i

at first sight, there is a } missing

This looks like a ReviewNB bug. It works for me on VSCode.


Added support for AWS Redshift reserved node

@ganeshjagdale9545 code overall looks good. Let's write unit tests.

@ganeshjagdale9545 can you please resolve the conflicts?


how to remove the random attributes added on the components template?

Note: for support questions, please use one of these channels: Chat: AngularClass.slack or Twitter: @AngularClass

I'm submitting a ...
[ ] question about the decisions made in the repository
Do you want to request a feature or report a bug?
What is the current behavior?
the rendered html of the components is auto attached some attributes like "_ngcontent-xxx-x",I guess this is to achieve the scoped css because my css seletor is also compiled to something like my-component[_ngcontent-xxx-x]{......}.However i don't like this way.how can i turn off this feature?

add this to your component metadata
encapsulation: ViewEncapsulation.None,
thanks

According to an article ViewEncapsulation.None removes encapsulation to any css style. By any chance will it effect performance?


beast ambush damage higher than expected

The beast ambush damage calculation was incorrectly fetching the adventurers armor, resulting in adventurer not having any armor when the beast attacked.

Fixed via https://github.com/BibliothecaDAO/realms-contracts/commit/937f2e12d08688d214c07a6704c248ff8523d845
Note this would have also impacted damage taken during a failed flee counter attack


poolLoadOnChainDataForAllPools fails on zkevm

test and prod fail with failed to execute the unsigned transaction

fixed in #100


Highlighting position is broken

After :TroubleToggle lsp_workspace_diagnostics while scrolling through list the highlights are misplaced:

In the list in shows correct positions (199, 69), they are underlined by linter in the picture. The gray background is the wrong positioning. It seems you're using byte offset, when you should glyph offset (since Cyrillics is 2-byte in UTF-8).

Development on the main branch is EOL.
Trouble has been rewritten and will be merged in main soon.
This issue/feature either no longer exists or has been implemented on dev.
For more info, see https://github.com/folke/trouble.nvim/tree/dev


netbsd: Generalize builder to any-bsd setup hook

Motivation for this change
Do this to get ready for other BSDs.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

What's the point of netBSDSetupHook?

What's the point of netBSDSetupHook?

I recall a few things did NETBSDSRCDIR and not just BSDSRCDIR (perhaps not intentionally). So I put that back.

What's the point of netBSDSetupHook?

I recall a few things did NETBSDSRCDIR and not just BSDSRCDIR
(perhaps not intentionally). So I put that back.

Hmm, do you have an example?  I looked through the NetBSD sources and
didn't see anywhere it was used outside a Makefile, and saw almost no
use of make -e, so I'd be curious to know what needs it.

Actually, I'm realising I don't understand how the builder works.  Does bmake look at environment variables by default or something?  How do all these things we export become Make variables?

Oh good point! I used to put -e everywhere, but that broke things. So NETBSDSRCDIR must not actually be needed.

Check out addMakeFlags for where some env vars are manually passed to make.


Update uploaderEmail: no more required, using only id to check uploaders.

This is getting a bit tricky: I've realized that we should lowercase the e-mail address when looking up userId for a given e-mail, however we already have a bunch of e-mails migrated in prod. We'll need to validate whether all of the current e-mail addresses are indeed lowercase.

Closing this in favor of #2072.


Make Targeting Reticle Track Mouse Movement

Currently, the targeting reticle tries to aim at the nearest runner, but it doesn't presently work anyways. I will work on changing the widget blueprint to track the mouse position instead for manual aiming.

This task proved to be a bit more difficult than I anticipated as this was my first experience working with widgets. Fortunately, UE has a fantastic library of built in methods that can do so much of the hard work. I was trying to overcomplicate it originally as I didn't understand how an anchor affected the relative position of an element. When I changed the anchor to be the top left corner of the widget space, the mouse coordinates relative to the viewport then perfectly lined up with the targeting reticle.


help_docs: Document user management via user profile modal.

Adds documentation for admins to manage users via the user profile modal for these actions:

Deactivating a user
Changing a user's role
Changing a user's name

Creates two new tab sections because we still want to document the ability to do these actions through the users section in
the organizational settings modal.
Also cleans up some text in the help center article for changing a user's role.
Fixes #21415. Also, fixes #21318.
Testing plan: manual
Screenshot of new tabs for changing a user's name:

Thanks! Looks good for the most part; I left a few minor comments.
I appreciate the extra tweaks/fixes, too. :)


Add zipkin support for spark-framework

Add zipkin support for spark-framework.

@adriancole  OK,I will take all your advice,fix these things AQAP.I am fresh as an open source contributor Thanks a lot,sincerely! : )

@songxin1990 that's a method that doesn't exist in all servlet versions.. can you check minimum servlet version of spark?

2.Spark.awaitInitialization() is a method blocks wait spark initialization
finished.I had used it ,but some problems happen.There should be a method
for Spark.waitStop().
perwendel/spark#730 https://github.com/perwendel/spark/pull/730

cool thanks for letting us know!

Recently I prepare for a Kafka lecture,so a little busy.After Spark initialized or stopped,there is no way to get the variable 'initialized' in Spark.Service,nor there is a callback,so I can't use test async.
https://github.com/perwendel/spark/blob/master/src/main/java/spark/Service.java
I have looked for some other solutions,but can't.So,what can I do now?

Sorry for Reopen this PR,not familiar.

For a something you cant test, override the method in your subclass and
throw AssumptionViolatedException.  This will ignore failures.

OK,after work I will fix these things.

First.. I noticed we should probably use afterAfter as that will close the
span even if there is an exception. That makes it optional for users to use
an exception mapper.
Maybe something like this (which will be similar for the brave 4 version
https://github.com/openzipkin/brave/pull/350)
BraveTracing tracing = BraveTracing.create(brave);
Spark.before(tracing.before()); // request side, which starts the span
Spark.afterAfter(tracing.afterAfter()); // response/exception side, which
closes the span
Optionally, you can have an exception mapper, who only adds the tag/binary
annotation "error" (but doesn't close the span as afterAfter will)
cc @perwendel wdyt?
On Mon, Mar 27, 2017 at 8:28 PM, 宋鑫<EMAIL_ADDRESS>wrote:

@songxin1990 commented on this pull request.
In brave-spark-framework-filter/src/main/java/com/github/
kristofa/brave/spark/BraveSparkResponseFilter.java
https://github.com/openzipkin/brave/pull/368#discussion_r108155945:

private final ServerResponseInterceptor responseInterceptor;
private final ServerSpanThreadBinder serverThreadBinder;
private final SpanNameProvider spanNameProvider;
private final ServerTracer serverTracer;

BraveSparkResponseFilter(Builder b) { // intentionally hidden

   this.responseInterceptor = b.brave.serverResponseInterceptor();

   this.serverThreadBinder = b.brave.serverSpanThreadBinder();

   this.spanNameProvider = b.spanNameProvider;

   this.serverTracer = b.brave.serverTracer();

}

@Override
public void handle(Request request, Response response) throws Exception {

Maybe, you like this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/brave/pull/368#discussion_r108155945, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAD61_oQihv-BhlloxkjJ91uaDm85vFyks5rp6uBgaJpZM4MeyBU
.

Yes,Spark.afterAfter() will be executed no matter what happens,very like finally.But  use afterAfter,the binary annotation will not be tagged,so will not show in Zipkin UI.

right, just clarifying that if the response filter is afterAfter, then the exception mapper is only adding the binary annotation aka tag "error". In this case, its responsibility is easier, which is particularly helpful as the exception mapper component needs to be customized by the user. For example, even if they forget or misconfigure this, the span will still close if the response filter is afterAfter.

Any more problems?

Thank you very much for spending your much time And I learn a lot  from you.
I will fix these things after work ASAP.

@adriancole  I have finished.

@adriancole  I have finished.

If you need any help just leave me a message or use @ mention me.
Maybe,I should  view the issues list,see what I can do.

thanks for the help! yeah next step will be porting it to brave 4

oops!  we forgot to link this to the parent pom.xml so it wasn't released. will fix in a sec

https://github.com/openzipkin/brave/pull/376

OK，ASAP.

ok it is out on brave 4.1.1 now
On Mon, Apr 10, 2017 at 5:07 PM, 宋鑫<EMAIL_ADDRESS>wrote:

OK，ASAP.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/brave/pull/368#issuecomment-292892203, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAD61wxgMvIT0z-4wCPRpcveQc7tDp2wks5rufFvgaJpZM4MeyBU
.


Get vs FindOne

Hi,
I would like to thank You for bolthold, it is really amazing.
However I have got an issue, but I can not find out what am I doing wrong.
I have a piece of code where I use the following line:
store.FindOne(&res, bolthold.Where(bolthold.Key).Eq(SLEID))

which works fine. I have thought that replacing it with:
store.Get(SLEID, &res)

would also work, but surprisingly it does not ("No data found for this key").
I have also tried that if res.SLEID == SLEID gives true with FindOne, so SLEID does exists in the DB.
The data structure is this:
type ShiftLogEntry struct {
	SLEID   uuid.UUID `boltholdKey:"SLEID"`
	Parent  uint64    `boltholdIndex:"Parent"`
	Area    string
	Body    string
	Ticket  []uint64
	Comment []uuid.UUID
}

What am I doing wrong here?

That is interesting, and it looks like a bug.  What UUID package are you using, and what encoding?  My guess is that with Get  it's doing a strict byte comparison, where as Find attempts to make a comparison and may end up doing a UUID.String() comparison.

Hi,
The UUID package is "github.com/google/uuid". I will try adding a Comparer to see if that helps.
Thanks,

Yeah that would work as a workaround, but I think I'm going to change the behavior to ensure a byte compare happens when using the bolthold.Key field.

Sorry it's taken so long, but I finally found some time to look at this, and I'm having trouble replicating the issue.
Here's my attempt a repro which passes fine.  I expected it to fail
func Test126FindOneVSGetOne(t *testing.T) {
        testWrap(t, func(store *bolthold.Store, t *testing.T) {
                type Test struct {
                        UUID uuid.UUID
                }

                id := uuid.New()

                store.Upsert(id, Test{UUID: id})

                result := Test{}
                ok(t, store.FindOne(&result, bolthold.Where(bolthold.Key).Eq(id)))
                equals(t, result.UUID, id)

                result = Test{}
                ok(t, store.Get(id, &result))
                equals(t, result.UUID, id)

        })
}

Could you show me how you are inserting the data and generating the UUID?

Hi,
Thanks for Your time! I went on with using string instead of uuid.UUID as a workaround, but I am still curious what is going on here.
Your test works indeed, I have also tried to write my own reproducer so I can avoid the walk of shame comes with showing my real code, but I guess I can not help it.
These functions are for adding and getting a ShiftLogEntry:
https://git.sr.ht/~voroskoi/nRG/tree/ce0c37e08ab5f2ba6b62aa4c16cada480762e546/item/internal/db/sle.go
And these are the handler functions:
https://git.sr.ht/~voroskoi/nRG/tree/ce0c37e08ab5f2ba6b62aa4c16cada480762e546/item/internal/ui/sle.go
The error occurs on line 71. If I use the commented out line in SLEGet function it works, when I try using Get directly it does not.
Funny thing that after adding new entries getting them works for a while, but I have items that used to work, but now they do not. I have spent couple of hours to find out what happens, but I can not even reproduce it :-(

So I may be wrong, as I've only done quick look through of your code, but I believe the issue is that you are defining your Key as a string here: https://git.sr.ht/~voroskoi/nRG/tree/master/item/models/shiftlog.go#L17
but trying to get it with a UUID type here: https://git.sr.ht/~voroskoi/nRG/tree/ce0c37e08ab5f2ba6b62aa4c16cada480762e546/item/internal/db/sle.go#L30
So the Find query just happens to work in this scenario because it's changing the UUID type to string because it can't find any other way to compare these two different types, and it works because you are actually storing the UUID as a string.

No, it is not that. On Mar 18 I was at this state:
https://git.sr.ht/~voroskoi/nRG/tree/ce0c37e08ab5f2ba6b62aa4c16cada480762e546/item/models/shiftlog.go#L25
So You have mixed git HEAD with ce0c37e08ab5f2ba6b62aa4c16cada480762e546, I have switched to string with the next commit as I was unable to figure out what is going on.

So once again, I can't replicate this issue myself.  If you can get me a stand alone piece of code to replicate this, then I'll have something to fix, otherwise I don't see any issues here.

I have written a minimal version of my program with inserting to the db and retrieving values via a http.Hander, but I was unable to reproduce this problem.
I think there are some other issue with the original code, which I can not reproduce and probably not related to bolthold.


Help wanted to narrow down to a realistic goals project scope.

Yey! I found a lot of interesting publically available datasets more or less related to auditory cognition and emotions!
Now its time to come to the real world and see what is durable to do in 2 weeks trying to avoid frustration and sleep deprivation.
I am having trouble to see if it is better to try to combine different datasets or just focus on one. If it is feasible to combine different datasets, how I can combine EEG+MRI / MRI+MRI? What metrics/info can be extracted that can be common between them (not all of them)?
Any input/help/ideas reference will be welcome :)
Background -> I want to start working with this problem as my Ph.D. involve multiple task run in different modalities (EEG, MRI, behavioural), some of the tasks are done in all of them, but some others are modality-specific. I want to do more than correlations between them.
@pbellec @PeerHerholz

What would be important to mention/outline here is the specific goal of your BrainHack school project. A lot of the points you mentioned will depend on that.

Just to recap what I suggested on our call. It sounds like you are better off selecting one dataset for fMRI and another for EEG, as you are not planning to use the two modalities jointly anyway. Also if the dataset is somewhat similar to the data you are thinking to acquire for your PhD that's a plus. I would also encourage you to work on a subset of a dataset with a limited number of subjects (N~10?) in the interest of keeping the processing time reasonable.

I second @pbellec's points.


Pretrained model 'resnest101-22405ba7.pth' can't be downloaded or found from  https://github.com/zhanghang1989/ResNeSt

found in releases


Error: no route on the client or the server for url ... /reset-password/...

I am getting an error that says 'no route on the client or server' when viewing a password reset route:
Oops, looks like there's no route on the client or the server for url: "http://localhost:3000/reset-password/l3GZh7Y25xEHyExEA4HdHW4xSHNoCoErhuHpKZYMTSt."

http://localhost:3000/reset-password/jQrANVL_hEO322VhIQwAhfah4d3d8JU1gPNVv7TJut9

I have the following configuration:
// in /client/routes/_config.js
var anonymousRoutes = [
  'login',
  'atChangePwd',
  'atEnrollAccount',
  'atForgotPwd',
  'atResetPwd',
  'atSignIn',
  'atSignUp',
  'atVerifyEmail',
  'atresendVerificationEmail'
];

// User login required for all areas of site
Router.plugin('ensureSignedIn', {except: anonymousRoutes});

// in /lib/accounts.js
AccountsTemplates.configure({
  // Behavior
  enablePasswordChange: true,
  showForgotPasswordLink: true
});

// Configure AccountsTemplates routes
AccountsTemplates.configureRoute('signIn');
AccountsTemplates.configureRoute('signUp');
AccountsTemplates.configureRoute('forgotPwd');
AccountsTemplates.configureRoute('changePwd');
AccountsTemplates.configureRoute('resetPwd');
AccountsTemplates.configureRoute('verifyEmail');

I am using iron-router, and have installed useraccounts:iron-router package.

Hey, I looked through the code and didn't notice anything.  Looking at some code I'd written, here is a suggestion:
if (Meteor.isClient) {
  // Force login on routes above and listed here.
  var publicRoutes = _.pluck(AccountsTemplates.routes, 'name')
    .concat(['landing','home','privacy-policy','terms-of-service','enrollExpert']);
  Router.plugin('ensureSignedIn', { except: publicRoutes });
}

If that doesn't work, try removing the ensureSignIn plugin and see if that's the reason the route won't work.

Thanks for your help @MichaelJCole
The problem seems to have resolved itself somehow, and I am not sure what exactly changed to make it work. In other words, I still have pretty much the same code, but I moved some AccountsTemplates email configuration variables to a different file.


Implement efficient/correct Comparer.get_Default and EqualityComparer.get_Default

This work has several parts that largely hook up into the existing infrastructure in the class library we built for Project N.

Generate specialized method bodies for Comparer.Create and EqualityComparer.Create that create the right comparer specialized for the given T (if T implement the interface, doesn't implement the interface, is nullable, or is an enum)
If specialization is not possible at compile time, fall back to using template type loader to load the right type.
Add code that ensures appropriate templates get generated. This is a bit of a divergence from what Project N does because there we don't track precisely what we need and rely on universal shared code to fill in the blanks.
Enable RyuJIT optimization around EqualityComparer.get_Default that lets us devirtualize subsequent calls on the result of the intrinsic.

Contributes to #763. I won't say "fixes", because there's still this thing in Array.CoreRT.cs around GetComparerForReferenceTypesOnly/StructOnlyEquals that's left.
Cc @dlewis-arcontech this might help with the perf in your benchmark.

@MichalStrehovsky thanks for the code update and letting me know. I'm traveling at the moment but I'll be back at my pc on Friday, I'll rerun the tests then and post the results.

Hello @MichalStrehovsky, I've rerun the tests and the commit has definitely improved the performance. Previously the results were:

Framework
Run 1 (ms)
Run 2 (ms)
Run 3 (ms)
Average (ms)

.Net Core 2.0 Ubuntu 14.04
1470
1458
1457
1462

.Net CoreRT Ubuntu 14.04
1773
1792
1779
1781

After updating the results are:

Framework
Run 1 (ms)
Run 2 (ms)
Run 3 (ms)
Average (ms)

.Net Core 2.0 Ubuntu 14.04
1473
1460
1486
1473

.Net CoreRT Ubuntu 14.04
1644
1610
1662
1639

If you'd like to me to analyze the differences any further please let me know. I also wanted to ask what are the hopes/aims for optimization with CoreRT, ultimately would you expect the generated code on average to be more performant than the JIT code? As you'd have longer to spend on the compile time optimization step I'd imagine this would be a goal.

Yes, we would love to hear about where the bottlenecks are. There is no fundamental reason why CoreRT should be significantly slower than CoreCLR - the bottlenecks are bugs or not-yet-implemented features.

ultimately would you expect the generated code on average to be more performant than the JIT code?

We do not have a code cross-platform code generator today that is capable of doing significantly more optimizations than RyuJIT. There are a few limits that you can raise in RyuJIT around things like inlining heuristics, but it is unlikely to make a huge difference. We have experimented with LLVM in https://github.com/dotnet/llilc, but getting LLVM to produce better code on average than RyuJIT proved to be quite hard. We may come back to LLVM in future - it is not in our current plans though.

@jkotas happy to help investigate. Not sure how to profile CoreRT on Linux but if you can point me in the right direction I can take a look.

It maybe useful to collect some basic GC stats, e.g. add the following at the end of your benchmark:
Console.WriteLine($"ServerGC: {System.Runtime.GCSettings.IsServerGC}");
Console.WriteLine($"TotalMemory: {GC.GetTotalMemory(false)}");
for (int i = GC.MaxGeneration; i >= 0; i--)
   Console.WriteLine($"Gen{i}: {GC.CollectionCount(i)}");

It will give us a quick read on whether or not the GC is behaving approximately the same between the two cases.
For CoreRT, the general techniques and tools used to profile C/C++ programs should work on CoreRT. I would start with sampling CPU using perf (http://www.brendangregg.com/perf.html).
For CoreCLR, it is harder to get symbols for JITed code. The helper script and instructions are at https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/linux-performance-tracing.md

@jkotas thanks for the information, I've added the additional code you posted above and the results are:
CoreCLR:
ServerGC: False
TotalMemory: 4075240
Gen2: 68
Gen1: 68
Gen0: 68
CoreRT:
ServerGC: False
TotalMemory: 3403872
Gen2: 68
Gen1: 68
Gen0: 93
I'll familiarize myself with the links you sent over on profiling, just let me know what to check next and I'll take a look.

~1.4x more Gen0 GC's is something to look into a more. It suggest that there are more allocations in CoreRT than in CoreCLR.
Does your benchmark use async methods? If it is the case, https://github.com/dotnet/corert/issues/2640 is likely the reason.

@jkotas no async methods or thread pools used in the benchmark. There are standard threads (just using new Thread) created at the start of the benchmark and they are used to dispatch events. I've had a look a the perf links you've sent and set up my machine with the necessary installers for CoreCLR,
I haven't had a chance to run any performance tests yet but hopefully I'll get a chance today. Anything specific you'd like me to try out initially?

I think that the ~1.4x more Gen0 GC's is something to drill into. Could you please collect data on how much is each thread in the benchmark allocating using GC.GetAllocatedBytesForCurrentThread? It will confirm or deny the theory that the more frequent GC's are caused by more allocations.
Other than that, you can collect profiles on both CoreCLR and CoreRT and try to compare them side-by-side whether anything jumps out: go from the top and try to find where the most significant differences in inclusive time are.

@jkotas sorry for the slow response I've been a bit busy over the last few days. I've added code to write out GC.GetAllocatedBytesForCurrentThread but I'm getting a compile error, if I add:
        Console.Write("Thread (Main Thread) ");
        Console.WriteLine($"TotalMemory: {GC.GetAllocatedBytesForCurrentThread()}");

At the end of main it all compiles and runs fine, but for a thread if I have something like:
        this.dispatchingThread = new Thread(Process);
        this.dispatchingThread.Name = threadName;
        this.dispatchingThread.IsBackground = true;
        this.dispatchingThread.Start();

Then at the end of process:
    private void ProcessQueue()
    {
        ....
        Console.Write("Thread " + Thread.CurrentThread.Name + " ");
        Console.WriteLine($"TotalMemory: {GC.GetAllocatedBytesForCurrentThread()}");
    }

I get the following compile error:
WorkItemDispatcher/WorkItemDispatcher.cs(163,50): error CS0117: 'GC' does not contain a definition for 'GetAllocatedBytesForCurrentThread'
Could you advise what I'm doing wrong here? Most other GC methods are available within the context of the thread but somehow it seems the GetAllocatedBytesForCurrentThread is not there.

GetAllocatedBytesForCurrentThread is only available in netcoreapp2.0 (i.e. it's not part of any netstandard). Is the ProcessQueue method in a different assembly that compiles against a different API set?

@MichalStrehovsky That's exactly it I'll change the project type of the assembly to .Net Core and post the results. Thanks!

I increased threads the test slightly in the hope it'd expose the issue quicker, the results are:
CoreRT:
Thread (Chain Test) TestChain1 dataset TestDataset4 TotalMemory: 13466016
Thread (Chain Test) TestChain1 dataset TestDataset5 TotalMemory: 13399464
Thread (Chain Test) TestChain1 dataset TestDataset3 TotalMemory: 13458920
Thread (Chain Test) TestChain1 dataset TestDataset2 TotalMemory: 13426208
Thread (Chain Test) TestChain1 dataset TestDataset1 TotalMemory: 13442272
Time Taken = 6475.7769
ServerGC: False
TotalMemory: 3901848
Gen2: 332
Gen1: 333
Gen0: 405
Thread Work item dispatcher TotalMemory: 1434040
Thread Generic events dispatcher TotalMemory: 4192
Thread Instrument Discovery dispatcher TotalMemory: 8416
Thread (Main Thread) TotalMemory: 177480
CoreCLR:
Thread (Chain Test) TestChain1 dataset TestDataset1 TotalMemory: 14095496
Thread (Chain Test) TestChain1 dataset TestDataset5 TotalMemory: 14054328
Thread (Chain Test) TestChain1 dataset TestDataset4 TotalMemory: 14094592
Thread (Chain Test) TestChain1 dataset TestDataset2 TotalMemory: 14055064
Thread (Chain Test) TestChain1 dataset TestDataset3 TotalMemory: 14094032
Time Taken = 5783.7686
ServerGC: False
TotalMemory: 7388560
Gen2: 332
Gen1: 332
Gen0: 332
Thread Work item dispatcher TotalMemory: 667424
Thread Generic events dispatcher TotalMemory: 72
Thread Instrument Discovery dispatcher TotalMemory: 72
Thread (Main Thread) TotalMemory: 193568
What is interesting, I'll confirm this soon, but I believe in the test the Generic events dispatcher thread isn't used just created at the start and closed at the end and the same for Instrument Discovery dispatcher thread but they both seem to be the main difference.

@MichalStrehovsky I've just confirmed the Generic events dispatcher and Instrument Discovery dispatcher, in this test case, just enter the thread entry point which enters a loop and then sits on a WaitHandle.WaitAny with an array of wait handles (process job work handle and exit wait handle). Gets the exit wait handle signaled and breaks out and exits the function without processing any work items. So doing very little.

The dispatcher that is actually doing some work in this test 'Thread Work item dispatcher' is using a lot more memory too. This dispatchers kick off a long running back ground thread that sits on WaitAny waiting for a job to process or to exit. Then when you want to add a job to process you call an AddItem method with an Anonymous delegate of the work item to be processed, this is added to a queue and the workitem wait handle is signaled, the dispatching thread then Invokes the anonymous delegate and then once finished goes back around to the WaitAny until signaled again. So basically a way to dispatch decoupled workitems in order via a dispatching thread.
I thought it was probably worth adding a more detailed description as it looks like this area could be a factor in the extra time being taken.

Just starting to get to grips with the performance tools, I'll be heading home soon so it'll probably be tomorrow before I have anything useful from them.  So far for CoreRT perf record -F 99 then perf report is showing:
std::string::operator+=(char):
As the most used code path (5.67%) but haven't compared with a CoreCLR run yet to see if it is different.

Not sure if this helps or not but the CoreRT related sections from that code path I can see from a quick look are:
0.15%  ConsoleApp1  ConsoleApp1   __GetGCStaticBase_S_P_CoreLib_System_Collections_HashHelpers
0.15%  ConsoleApp1  ConsoleApp1   __GetNonGCStaticBase_Arcontech_DotNetAPI_Arcontech_DotNetAPI_FeedApi_Feed32
0.15%  ConsoleApp1  ConsoleApp1         __GetThreadStaticBase_S_P_CoreLib_System_Globalization_CultureInfo
0.15%  ConsoleApp1  ConsoleApp1         __NewHelper_Arcontech_DotNetAPI_Arcontech_DotNetAPI_ChainRecord

This is interesting: CoreRT is allocating a bit less memory (good), but the Gen0 GCs are running more frequently (unclear whether it is good or not).

std::string::operator+=(char):

I would not expect this to show up in the profile at all. Either the symbols are wrong, or there is something very unexpected going on. Could you please try to collect with stacktraces to see where this is comming from?

workitem wait handle is signaled, the dispatching thread then Invokes the anonymous delegate and then once finished goes back around to the WaitAny until signaled again

The implementation of WaitHandle is quite different in CoreRT on Unix compared to CoreCLR. It maybe interesting to try to microbenchmark the exact paterns that you are exercising here. We have done microbenchmarks on the CoreRT implementation and we believe that it is good, but there can always be patterns that we have missed. The problem may not show in CPU sampling perf trace - things like context switches matter a lot for these.

@jkotas, I should have realised when I posted earlier, the std:string += is due to the CoreRT code calling an unmanaged .so (via pinvoke) that is using std:string.  The unmanaged .so is basically receiving updates from tcpip then notifies the CoreRT code via a call back which then reads the updates, again with pinvoke functions. The .Net code then puts the updates together in an collection object and passes that to a dispatcher namely - 'Thread Work item dispatcher', which dispatches the events to it's listeners. I'm not sure if the memory usage is directly related to the extra time taken in the test run but the dispatcher threads memory usage is very different in CoreRT relative to CoreCLR.
CoreCLR:
Thread Work item dispatcher TotalMemory: 667424
Thread Generic events dispatcher TotalMemory: 72  - Doing very little
Thread Instrument Discovery dispatcher TotalMemory: 72  - Doing very little
CoreRT:
Thread Work item dispatcher TotalMemory: 1434040
Thread Generic events dispatcher TotalMemory: 4192 - Doing very little
Thread Instrument Discovery dispatcher TotalMemory: 8416 - Doing very little and exactly the same as the above line which is odd why they differ
I will carry on with getting some performance stats out of the test case, a bit pressed for time today but should be able to advance next week. What are the next steps for microbenchmarks? It does appear that our code is provoking something in the different implementation of WaitHandle in CoreRT.

I've removed the use of the dispatcher threads in the test case, it's won't work in the general case but for this test case it's stable. So the above 3 dispatcher threads simply aren't created and there is no decoupling from the  .so unmanaged data update thread to the end consumer events. I am still seeing a difference in time taken for the process to run:
CoreCLR:
Time Taken = 5084.8553
CoreRT:
Time Taken = 6191.5736
So a few things to look into, I'll isolate further when I get a chance.

I've tried to microbenchmark this dispatcher code using https://github.com/dotnet/BenchmarkDotNet, worked fine for CoreCLR but for CoreRT I've hit a few issues, I had to directly include the dlls from the project which was expected due to issue  #2619. After that getting code generation failures:
EXEC : warning : Method [BenchmarkDotNet.Core]BenchmarkDotNet.Portability.RuntimeInformation.GetOsVersion will always throw because: [TEMPORARY EXCEPTION MESSAGE] FileLoadErrorGeneric: Microsoft.DotNet.PlatformAbstractions [/home/darren/DNAStandard/ConsoleApp1/ConsoleApp1.csproj]
/home/darren/git/corert/corert/bin/Linux.x64.Release/build/Microsoft.NETCore.Native.targets(129,5): error MSB3073: The command ""/home/darren/git/corert/corert/bin/Linux.x64.Release/tools/ilc" @"obj/Release/netcoreapp2.0/native/ConsoleApp1.ilc.rsp"" exited with code 1. [/home/darren/DNAStandard/ConsoleApp1/ConsoleApp1.csproj]
I'm guessing the are other tools out there that support CoreRT?

Issue #2619 was fixed. The transitive close is included in the compilation if you use dotnet publish -
https://github.com/dotnet/corert/blob/master/Documentation/how-to-build-and-run-ilcompiler-in-console-shell-prompt.md#using-ryujit.

FileLoadErrorGeneric: Microsoft.DotNet.PlatformAbstractions

This error means that there were more files missing. It should be fixed by #2619.

@"obj/Release/netcoreapp2.0/native/ConsoleApp1.ilc.rsp"" exited with code 1

This means that the compiler failed. There should be "Error: " printed that describe the reason:  https://github.com/dotnet/corert/blob/master/src/ILCompiler/src/Program.cs#L604 . If you can share the repro, create an issue on this please. We should look into why you do not see the Error message printed at least.

I'm guessing the are other tools out there that support CoreRT?

For ad-hoc micro-benchmarks, I am always using a simple for-loop and time it with StopWatch or Environment.TickCount.

I was just trying a simple test from https://github.com/dotnet/BenchmarkDotNet, Using dotnet add package BenchmarkDotNet --version 0.10.10 then:
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
Then put [Benchmark] around a method to benchmark and in main run the benchmark:
var summary = BenchmarkRunner.Run();
A bit more detail from the issue from the publish step:
EXEC : error : Code generation failed [/home/darren/DNAStandard/ConsoleApp1/ConsoleApp1.csproj]
ILCompiler.CodeGenerationFailedException: Code generation failed ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary2.get_Item(TKey key)      at ILCompiler.ILScanResults.ScannedVTableProvider.GetSlice(TypeDesc type) in /home/darren/git/corert/corert/src/ILCompiler.Compiler/src/Compiler/ILScanner.cs:line 130      at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)      at ILCompiler.Compilation.HasFixedSlotVTable(TypeDesc type) in /home/darren/git/corert/corert/src/ILCompiler.Compiler/src/Compiler/Compilation.cs:line 178      at Internal.JitInterface.CorInfoImpl.getCallInfo(CORINFO_RESOLVED_TOKEN& pResolvedToken, CORINFO_RESOLVED_TOKEN* pConstrainedResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO& pResult) in /home/darren/git/corert/corert/src/JitInterface/src/CorInfoImpl.cs:line 3233      at Internal.JitInterface.CorInfoImpl._getCallInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN& pResolvedToken, CORINFO_RESOLVED_TOKEN* pConstrainedResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO& pResult) in /home/darren/git/corert/corert/src/JitInterface/src/CorInfoBase.cs:line 2232      --- End of inner exception stack trace ---      at Internal.JitInterface.CorInfoImpl.CompileMethod(IMethodCodeNode methodCodeNodeNeedingCode, MethodIL methodIL) in /home/darren/git/corert/corert/src/JitInterface/src/CorInfoImpl.cs:line 187      at ILCompiler.RyuJitCompilation.ComputeDependencyNodeDependencies(List1 obj) in /home/darren/git/corert/corert/src/ILCompiler.Compiler/src/Compiler/RyuJitCompilation.cs:line 72
at ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2.ComputeMarkedNodes() in /home/darren/git/corert/corert/src/ILCompiler.DependencyAnalysisFramework/src/DependencyAnalyzer.cs:line 262
at ILCompiler.RyuJitCompilation.CompileInternal(String outputFile, ObjectDumper dumper) in /home/darren/git/corert/corert/src/ILCompiler.Compiler/src/Compiler/RyuJitCompilation.cs:line 39
at ILCompiler.Compilation.ILCompiler.ICompilation.Compile(String outputFile, ObjectDumper dumper) in /home/darren/git/corert/corert/src/ILCompiler.Compiler/src/Compiler/Compilation.cs:line 307
at ILCompiler.Program.Run(String[] args) in /home/darren/git/corert/corert/src/ILCompiler/src/Program.cs:line 422
at ILCompiler.Program.Main(String[] args) in /home/darren/git/corert/corert/src/ILCompiler/src/Program.cs:line 576
/home/darren/git/corert/corert/bin/Linux.x64.Release/build/Microsoft.NETCore.Native.targets(129,5): error MSB3073: The command ""/home/darren/git/corert/corert/bin/Linux.x64.Release/tools/ilc" @"obj/Release/netcoreapp2.0/linux-x64/native/ConsoleApp1.ilc.rsp"" exited with code 1. [/home/darren/DNAStandard/ConsoleApp1/ConsoleApp1.csproj]
I'll move onto a simple test case with a StopWatch and try to work out what is taking the extra time and I'll also try to remove various sections of code to see why the dispatching thread is taking more memory in CoreRT.

ILCompiler.CodeGenerationFailedException: Code generation failed ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()

That's a compiler bug. I'll take a look. You could work around by adding <IlcArg Include="--noscan" />
to your project, but the compiler will generate less efficient code around virtual calls and generic lookups, so it's unlikely to actually help.

@MichalStrehovsky thanks for the information I'll give it a go. I've been looking at what provokes the dispatcher code to take more memory (and different amounts for different threads all doing nothing). Next I'll take a look at the performance difference. If you have a class with the following members declared:
    private ManualResetEvent runWaitHandle = new ManualResetEvent(false);
    private ManualResetEvent exitWaitHandle = new ManualResetEvent(false);
    private WaitHandle[] waitHandles;
    private Thread dispatchingThread;

Then in your constructor:
    public WorkItemDispatcher(string threadName)
    {
            this.waitHandles = new WaitHandle[]{ runWaitHandle, exitWaitHandle };
            this.dispatchingThread = new Thread(ProcessQueue);
            this.dispatchingThread.Name = threadName;
            this.dispatchingThread.IsBackground = true;
            this.dispatchingThread.Start();
    }

Then in ProcessQueue:
    private void ProcessQueue()
    {
        int noOfWorkItemsProcessed = 0;
        while (true)
        {
            if (WaitHandle.WaitAny(waitHandles) == 1)
                break;
            noOfWorkItemsProcessed++;
        }

        Console.WriteLine("Thread " + Thread.CurrentThread.Name + " No Of Work Items Processed " + noOfWorkItemsProcessed.ToString() + $" TotalMemory: {GC.GetAllocatedBytesForCurrentThread()}");
    }

Then add a public close method:
    public void Close()
    {
            exitWaitHandle.Set();
            dispatchingThread.Join();
            runWaitHandle.Close();
            exitWaitHandle.Close();
            runWaitHandle = null;
            exitWaitHandle = null;
     }

I'm still trying to extract the parts of the code that provokes the issue but I think the above should do it, then create a few static instances:
    public static readonly WorkItemDispatcher test1 = new WorkItemDispatcher("Test1");
    public static readonly WorkItemDispatcher test2 = new WorkItemDispatcher("Test2");
    public static readonly WorkItemDispatcher test3 = new WorkItemDispatcher("Test3");
    public static readonly WorkItemDispatcher test4 = new WorkItemDispatcher("Test4");
    public static readonly WorkItemDispatcher test5 = new WorkItemDispatcher("Test5");

And in your main call close on them:
WorkItemDispatcher.test1.Close();
WorkItemDispatcher.test2.Close();
WorkItemDispatcher.test3.Close();
WorkItemDispatcher.test4.Close();
WorkItemDispatcher.test5.Close();
It seems CoreCLR memory usage is consistent:
Thread Test1 No Of Work Items Processed 0 TotalMemory: 304
Thread Test2 No Of Work Items Processed 0 TotalMemory: 304
Thread Test3 No Of Work Items Processed 0 TotalMemory: 304
Thread Test4 No Of Work Items Processed 0 TotalMemory: 304
Thread Test5 No Of Work Items Processed 0 TotalMemory: 304
CoreRT is more and varies:
Thread Test1 No Of Work Items Processed 0 TotalMemory: 8280
Thread Test2 No Of Work Items Processed 0 TotalMemory: 8280
Thread Test3 No Of Work Items Processed 0 TotalMemory: 3840
Thread Test4 No Of Work Items Processed 0 TotalMemory: 8280
Thread Test5 No Of Work Items Processed 0 TotalMemory: 8280

It seems CoreCLR memory usage is consistent:

CoreCLR is doing the equivalent allocations in C/C++. Seeing more managed allocations when operating with WaitHandles in CoreRT is expected, as long as it does not cause things to run slower.

Ok thanks it doesn't seem related to the slow down, I'll keep investigating.


--migrate wont work from 2.0.2

In version 2.0.3 --migrate cannot be used (unknown).
In version 2.0.2 it wont do anything besided starting the ktn server.

Maybe include this info in the change log or keep the migration functionality in whole 2.x?
Thanks for your work, Leandro!

Thanks for the report. I added a note to the changelog.


Add replace command for bundle refs

https://issues.redhat.com/browse/HACBS-897
Signed-off-by: Luiz Carvalho<EMAIL_ADDRESS>

All comments addressed (either resolved or replied)

sunglasses An acceptance test would be nice :)
I agree! But I don't think just yet. IMO this needs to take a bit more shape before doing so.


#2518 set imagePullPolicy to IfNotPresent in installer

Closes #2518

Codecov Report

Merging #2522 into master will increase coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2522      +/-   ##
==========================================
+ Coverage   33.12%   33.19%   +0.07%
==========================================
  Files         157      157
  Lines        8985     8985
  Branches      185      185
==========================================
+ Hits         2976     2983       +7
+ Misses       5500     5495       -5
+ Partials      509      507       -2

Flag
Coverage Δ

#moduleA
23.13% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

api/ws/hub.go
74.50% <0.00%> (+13.72%)
:arrow_up:

Continue to review full report at Codecov.

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


Append sftp port when listing sftp host, Fixes #556

To be honest, I would rather have the port in a separate box of its own. Thank you for helping though!


Add primary key when to create wait table

Signed-off-by: cwen0<EMAIL_ADDRESS>What problem does this PR solve?
CDC requires tables to have pk or unique indexes
What is changed and how does it work?
Add primary key when to create wait table
Check List
Tests

Unit test
E2E test
Manual test (add detailed scripts or steps below)
No code

Code changes

Has Go code change
Has CI related scripts change
Has Terraform scripts change

Side effects

Breaking backward compatibility

Related changes

Need to update the documentation

Does this PR introduce a user-facing change?:

NONE

@you06 @mahjonp PTAL


Run elm-format on CI

Because we are being strict about formatting we should fail the build if elm-format causes diffs.

I would be a little afraid that this would cause people to become a little discouraged. I think suggesting to use it with a bot in a comment after they submit it could be a good thing.

@justgage To clarify this about pull requests on GitHub to the Exercism Elm track, not about failing the tests when people are submitting exercises to the website.

Ah yes, that's a good idea. Sorry about that.

No apologies necessary—you've got everyone's best interest in mind (and I agree with you: this would be frustrating and potentially quite discouraging if we did it on the website).


base.html refers to Istio's description

The base HTML for the Github pages site refers to Istio, not Grafeas:
https://github.com/grafeas/grafeas.github.io/blob/master/_layouts/base.html#L17
And when I Google search Grafeas, I see:

Good catch, @m-okeefe! Thank you for reporting.


Plugins are picky about import paths/scopes even with identical libraries

What version of Go are you using (go version)?

$ go version
go version go1.14.6 linux/amd64

What did you do?
lib1/lib.go
package lib
type MyInt int

plugin1.go
package main
import lib "./lib1"
func GetMyInt() lib.MyInt {
return lib.MyInt(1)
}

lib2/lib.go is same contents as lib1/lib.go.
plugin2.go is same contents as plugin1.go, except it imports "./lib2" instead of "./lib1"
Both plugins are compiled as follows:
$ go build -buildmode=plugin plugin1.go
$ go build -buildmode=plugin plugin2.go

loader.go
package main
import lib "./lib1"
import "plugin"
func main() {
    plugin2,_ := plugin.Open("plugin2.so")
    symbol,_ := plugin2.Lookup("GetMyInt")
    myfunc := symbol.(func() lib.MyInt)
    println(myfunc())
}

This results in the panic:
panic: interface conversion: plugin.Symbol is func() lib.MyInt, not func() lib.MyInt (types from different scopes)

What did you expect to see?
I expected to use plugin1 and plugin2 interchangeably when linking against the types in lib1.
What did you see instead?
It seems Go doesn't like the idea of having two different import paths when asserting types from identical libraries.
However, this is a problem with what I'm dealing with. I've got a library with various types that will be used by other programmer's work ("plugins"). My software will then load the various plugins and assert the types against the same library. However, must I really force them to use the same GOPATH imports (ie, force them to use the same central github import path)? I like relative imports because it allows the programmer to use flexible project structures.
I would think that if the asserted type is completely identical to the memory footprint as the imported symbol, then it shouldn't panic as it technically makes it a valid symbol. I also want then to be able to make extensions to the library I distribute, which causes another panic being that the asserted types are of "different versions".
Is there no way for me to designate that lib1's types and lib2's types can be asserted against eachother?

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


Dendogram collapse issue with many child nodes

Hi I tried the vertical dendogram with antv g6 but for more children nodes the collapse is not working properly. On click of the node it is not getting collapsed. For the demo data it is working
My code link is in : https://codesandbox.io/s/dendogram-antv-5v4y7?file=/src/treeGraph.js

The id of each node MUST be UNIQUE.
e.g. Following code assigns unique id for each node rather than name which might not unique.
let count = 0;
G6.Util.traverseTree(data1, subtree => {
  subtree.id = `node-${count}`;
  count++;
  return true;
});

@Yanyan-Wang  thank you saved me big time


Update build-windows-toolchain.bat

Appease the swift-driver build potentially by specifying the location of SQLite.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test


It's just angular-esri-loader

These are the code changes required to resolve #15
I've tested locally via npm link and this seems to work.
In addition to these changes, after merging we'll need to:

[ ] rename v1.0.0 tag to angular2-esri-loader-v1.0.0
[ ] rename repo to angular-esri-loader
[ ] publish<EMAIL_ADDRESS>[ ] update the gists:

angular-cli
angular class starter

[ ] update links from:
esri-loader
jsapi-resources

If this looks good, I can take care of most of that, except as follows:
@TheKeithStewart
One thing I noticed, the gists and usage instructions all use the service directly (instead of via the NgModule) Do you think they should be changed? If so, would you mind adding a commit to this PR that updates the usage accordingly and I'll put that in the gists.
Also, once you update angular2-esri4-components to use angular-esri-loader, we'll need to
update esri-angular-cli-example
@jwasilgeo after I update my gist, would you mind updating yours?

@tomwayson absolutely!

@tomwayson yes, the usage example and the gist should change to use the NgModule instead. I'll contribute to this PR shortly with the appropriate change.
I'll go ahead and update the

Sorry, I accidentally, temporarily closed this PR.
I'll update https://github.com/tomwayson/esri-angular-cli-example/ once the new release is out.

FYI - unless I hear vocal opposition I'm planning to just start angular-esri-loader at v1.1 (which is what this release would be if we were't changing the name since it adds the ngModule, but is not a breaking change). That just seems less confusing and less work than having the "angular2-esri-loader-v1.0.0" tag.

No objections here. FWIW, the Angular versions are going to continue to iterate at a fairly fast rate. Given the approach you are thinking, having a more generic name may be beneficial in simplifying the logistics of managing this repo.

I'm also good with the changes proposed.

@tomwayson I pushed a commit that updates the usage example to load the NgModule.  Let me know if there is anything else I can help with.

@TheKeithStewart looks good, thanks! I haven't forgotten about this, just haven't had time to follow up yet. Will do so in the coming days.

@TheKeithStewart
It occurred to me that b/c there have been problems using the NgModule in Angular 2 apps, that we should keep the old usage instructions for Angular 2. Let me know if that looks good.