self-managed windows nodes don't join EKS cluster

Hi,
I followed this example https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/examples/5-eks-cluster-with-windows-support to add windows nodes to my eks cluster. In fact, the respective auto scaling group has one instance, but it is not available in my eks cluster. What could be the problem?

Hello @schwichti
I have 2 clusters running with Windows workloads. One was created a week ago, and the other just few minutes ago. I am not seeing any issues with Windows nodes joining the cluster.
Please check the following:

Login to the Windows instance. (Note: The latest version of this repo attaches AmazonSSMManagedInstanceCore policy to the nodes' IAM role, which was missing earlier. If you're not using the latest version, attach the policy manually to the IAM role of the Windows node so that you can use SSM to login to the instance.)
View the contents of C:\Windows\Temp\InvokeUserdataErrors.log and C:\Windows\Temp\InvokeUserdataOutput.log. Are there any errors? The following are expected contents of these files:

PS C:\Windows\system32> cd c:\Windows\Temp
PS C:\Windows\Temp> type .\InvokeUserdataErrors.log # Should be empty
PS C:\Windows\Temp> type .\InvokeUserdataOutput.log
Initializing AWS default configurations...
Creating/Updating kubeconfig...
Getting cluster information...
Using cluster information to get APIServer Endpoint and Cluster CA.
Initializing default values...
Using EC2 MetaData service to get VPC CIDR Range.
Using cluster information to get Service CIDR.
Creating/Updating EKS CNI plugin config...
Creating/Updating kubelet configuration file...
Registering kublet and kube-proxy services...

Status   Name               DisplayName
------   ----               -----------
Stopped  kubelet            kubelet
Stopped  kube-proxy         kube-proxy
Generating resolvconf file...
Creating resolv directory : c:\etc
Unique Dns servers : <IP_ADDRESS>

Actions            : {MSFT_TaskExecAction}
Author             :
Date               :
Description        : EKS Windows Startup task
Documentation      :
Principal          : MSFT_TaskPrincipal2
SecurityDescriptor :
Settings           : MSFT_TaskSettings3
Source             :
State              : Ready
TaskName           : EKS Windows startup task
TaskPath           : \
Triggers           : {MSFT_TaskBootTrigger}
URI                : \EKS Windows startup task
Version            :
PSComputerName     :

Check if kubelet and kube-proxy services are running on the instance.

PS C:\Windows\Temp> Get-Service | findstr kube

Check if kubelet / kube-proxy are reporting any errors

PS C:\Windows\Temp> Get-EventLog -LogName EKS -Newest 50

1-3. looks good
4. shows me the following error:
3517 Jan 17 14:04  Error       kube-proxy                      0 E0117 14:04:23.333960    2244 utils.go:282] Skipping invalid IP:

This is also my configuration

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  version    = "v3.11.0"

  name                            = "${var.infrastructurename}-vpc"
  cidr                            = var.vpcCidr
  azs                             = data.aws_availability_zones.available.names
  private_subnets                 = var.vpcPrivateSubnets
  public_subnets                  = var.vpcPublicSubnets
  database_subnets                = var.vpcDatabaseSubnets
  enable_nat_gateway              = true
  single_nat_gateway              = true
  create_igw                      = true
  enable_vpn_gateway              = false
  create_egress_only_igw          = false
  create_database_subnet_group    = true
  create_elasticache_subnet_group = false
  create_redshift_subnet_group    = false
  enable_dns_hostnames            = true
  enable_dns_support              = true
  tags = var.tags

  public_subnet_tags = {
    "kubernetes.io/cluster/${local.eks_cluster_id}" = "shared"
    "kubernetes.io/role/elb"                        = "1"
  }
  private_subnet_tags = {
    "kubernetes.io/cluster/${local.eks_cluster_id}" = "shared"
    "kubernetes.io/role/internal-elb"               = "1"
  }

}

module "eks" {
    source = "git::https://github.com/aws-samples/aws-eks-accelerator-for-terraform.git"

    tenant            = local.tenant
    environment       = local.environment
    zone              = local.zone

    # EKS CLUSTER
    kubernetes_version       = var.kubernetesVersion
    vpc_id             = module.vpc.vpc_id
    private_subnet_ids = module.vpc.private_subnets   # Enter Private Subnet IDs

    create_eks = true

    enable_windows_support = true

    # EKS MANAGED NODE GROUPS

    managed_node_groups = {
        "default" = {
            node_group_name = "default"
            instance_types  = [var.linuxNodeSize]
            subnet_ids      = module.vpc.private_subnets
            desired_size    = var.linuxNodeCountMin
            max_size        = var.linuxNodeCountMax
            min_size        = var.linuxNodeCountMin
        },
        "execnodes" = {
            node_group_name = "execnodes"
            instance_types  = [var.linuxExecutionNodeSize]
            subnet_ids      = module.vpc.private_subnets
            desired_size    = var.linuxExecutionNodeCountMin
            max_size        = var.linuxExecutionNodeCountMax
            min_size        = var.linuxExecutionNodeCountMin

        }
    }

    self_managed_node_groups = {
    "windows" = {
            node_group_name = "windows"
            instance_types  = [var.windowsNodeSize]
            #create_launch_template      = true
            launch_template_os          = "windows"
            subnet_ids      = module.vpc.public_subnets
            desired_size    = var.windowsNodeCountMin
            min_size        = var.windowsNodeCountMin
            max_size        = var.windowsNodeCountMax

            k8s_labels = {
                "node.kubernetes.io/os" = "windows"
            }

        }}

    tags = var.tags
}

module "eks-addons" {
    source = "github.com/aws-samples/aws-eks-accelerator-for-terraform/modules/kubernetes-addons"

    eks_cluster_id                        = module.eks.eks_cluster_id

    # EKS Addons
    enable_amazon_eks_vpc_cni             = true
    enable_amazon_eks_coredns             = true
    enable_amazon_eks_kube_proxy          = true

    #K8s Add-ons
    enable_aws_load_balancer_controller   = true
    enable_cluster_autoscaler             = true
    enable_aws_for_fluentbit              = true
    enable_ingress_nginx                  = true
    ingress_nginx_helm_config             =  {values = [templatefile("templates/nginx_values.yaml", {
        internal = var.enable_external_oidc? "true": "false",
        scheme = var.enable_external_oidc? "internal": "internet-facing"})]
    }

    depends_on = [module.eks.managed_node_groups]
}

I tried this example here: https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/examples/5-eks-cluster-with-windows-support.
PS C:\Windows\Temp> type .\InvokeUserdataOutput.log
Initializing AWS default configurations...
Creating/Updating kubeconfig...
Getting cluster information...

PS C:\Windows\Temp> type .\InvokeUserdataErrors.log
Get-EKSCluster : Name resolution failure attempting to reach service in region eu-central-1 (as supplied to the
-Region parameter or from configured shell default).
Unable to connect to the remote server.
Possible causes:
        - The region may be incorrectly specified (did you specify an availability zone?).
        - The service may not be available in the region.
        - No network connectivity.
See https://docs.aws.amazon.com/general/latest/gr/rande.html for the latest service availability across the AWS
regions.
At C:\Program Files\Amazon\EKS\Start-EKSBootstrap.ps1:133 char:26
+     $global:EKSCluster = Get-EKSCluster -Name $EKSClusterName
+                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...KSClusterCmdlet:GetEKSClusterCmdlet) [Get-EKSClust
e
   r], InvalidOperationException
    + FullyQualifiedErrorId : System.Exception,Amazon.PowerShell.Cmdlets.EKS.GetEKSClusterCmdlet

Get-Service | findstr kube

returns nothing.

Working with the 5-eks-cluster-with-windows-support I scaled down and up the windows auto scaling group. Now I see a different output:
PS C:\Windows\Temp> type .\InvokeUserdataErrors.log
PS C:\Windows\Temp> type .\InvokeUserdataOutput.log
Initializing AWS default configurations...
Creating/Updating kubeconfig...
Getting cluster information...
Using cluster information to get APIServer Endpoint and Cluster CA.
Initializing default values...
Using EC2 MetaData service to get VPC CIDR Range.
Using cluster information to get Service CIDR.
Creating/Updating EKS CNI plugin config...
Creating/Updating kubelet configuration file...
Registering kublet and kube-proxy services...

Status   Name               DisplayName
------   ----               -----------
Stopped  kubelet            kubelet
Stopped  kube-proxy         kube-proxy
Generating resolvconf file...
Creating resolv directory : c:\etc
Unique Dns servers : <IP_ADDRESS>

Actions            : {MSFT_TaskExecAction}
Author             :
Date               :
Description        : EKS Windows Startup task
Documentation      :
Principal          : MSFT_TaskPrincipal2
SecurityDescriptor :
Settings           : MSFT_TaskSettings3
Source             :
State              : Ready
TaskName           : EKS Windows startup task
TaskPath           : \
Triggers           : {MSFT_TaskBootTrigger}
URI                : \EKS Windows startup task
Version            :
PSComputerName     :

PS C:\Windows\Temp> Get-Service | findstr kube
Running  kubelet            kubelet
Running  kube-proxy         kube-proxy
PS C:\Windows\Temp> Get-EventLog -LogName EKS -Newest 50

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
     439 Jan 17 19:56  Information kubelet                         0 I0117 19:56:02.061343    2748 reconciler.go:157] "Reconciler: start to sync state"
     438 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.749350    2748 kubelet_node_status.go:74] "Successfully registered node" node="ip-10-1-10-24.eu-central-1.compute.internal"
     437 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.746608    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     436 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.639559    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     435 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.554675    2748 apiserver.go:52] "Watching apiserver"
     434 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.532131    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     433 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.428083    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     432 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.406853    2748 eviction_manager.go:255] "Eviction manager: failed to get summary stats" err="failed to get node info: node \"ip-10-1-10-24.eu-central...
     431 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.402726    2748 plugin_manager.go:114] "Starting Kubelet Plugin Manager"
     430 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.378783    2748 manager.go:600] "Failed to retrieve checkpoint" checkpoint="kubelet_internal_checkpoint" err="checkpoint is not found"
     429 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.378232    2748 kubelet_node_status.go:71] "Attempting to register node" node="ip-10-1-10-24.eu-central-1.compute.internal"
     428 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.321929    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     427 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.305664    2748 csi_plugin.go:291] Failed to initialize CSINode: error updating CSINode annotation: timed out waiting for the condition; caused by: no...
     426 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.211198    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     425 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.207072    2748 kubelet.go:1873] "Skipping pod synchronization" err="container runtime status check may not have completed yet"
     424 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.110928    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     423 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:431] "Adding node label from cloud provider" labelKey="topology.kubernetes.io/region" labelValue="eu-central-1"
     422 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:429] "Adding node label from cloud provider" labelKey="failure-domain.beta.kubernetes.io/region" labelValue="eu...
     421 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:425] "Adding node label from cloud provider" labelKey="topology.kubernetes.io/zone" labelValue="eu-central-1a"
     420 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:423] "Adding node label from cloud provider" labelKey="failure-domain.beta.kubernetes.io/zone" labelValue="eu-c...
     419 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:412] "Adding node label from cloud provider" labelKey="node.kubernetes.io/instance-type" labelValue="m5n.large"
     418 Jan 17 19:56  Information kubelet                         0 I0117 19:56:01.004199    2748 kubelet_node_status.go:410] "Adding label from cloud provider" labelKey="beta.kubernetes.io/instance-type" labelValue="m5n.large"
     417 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.004199    2748 kubelet.go:2294] "Error getting node" err="node \"ip-10-1-10-24.eu-central-1.compute.internal\" not found"
     416 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:01.002779    2748 kubelet.go:1873] "Skipping pod synchronization" err="container runtime status check may not have completed yet"
     415 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:00.952109    2748 nodelease.go:49] "Failed to get node when trying to set owner ref to the node lease" err="nodes \"ip-10-1-10-24.eu-central-1.compute.i...
     414 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:431] "Adding node label from cloud provider" labelKey="topology.kubernetes.io/region" labelValue="eu-central-1"
     413 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:429] "Adding node label from cloud provider" labelKey="failure-domain.beta.kubernetes.io/region" labelValue="eu...
     412 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:425] "Adding node label from cloud provider" labelKey="topology.kubernetes.io/zone" labelValue="eu-central-1a"
     411 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:423] "Adding node label from cloud provider" labelKey="failure-domain.beta.kubernetes.io/zone" labelValue="eu-c...
     410 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:412] "Adding node label from cloud provider" labelKey="node.kubernetes.io/instance-type" labelValue="m5n.large"
     409 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.942032    2748 kubelet_node_status.go:410] "Adding label from cloud provider" labelKey="beta.kubernetes.io/instance-type" labelValue="m5n.large"
     408 Jan 17 19:56  Information kube-proxy                      0 I0117 19:56:00.931852    3748 proxier.go:148] "%s" Hns loadbalancer policy resource="hostComputeLoadBalancer" {"ID":"75799e31-695f-4c5b-9a2d-18420760efb0","HostComp...
     407 Jan 17 19:56  Information kube-proxy                      0 I0117 19:56:00.923068    3748 proxier.go:148] "%s" Hns Endpoint resource="endpointInfo" {}="(MISSING)"
     406 Jan 17 19:56  Information kube-proxy                      0 I0117 19:56:00.914060    3748 proxier.go:148] "%s" Hns Endpoint resource="endpointInfo" {}="(MISSING)"
     405 Jan 17 19:56  Information kube-proxy                      0 I0117 19:56:00.907091    3748 proxier.go:148] "%s" Hns loadbalancer policy resource="hostComputeLoadBalancer" {"ID":"b4efc3f3-11a0-4968-b256-32710fb363d8","HostComp...
     404 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.905671    2748 desired_state_of_world_populator.go:141] "Desired state populator starts to run"
     403 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.902839    2748 volume_manager.go:271] "Starting Kubelet Volume Manager"
     402 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:00.902274    2748 kubelet.go:1873] "Skipping pod synchronization" err="[container runtime status check may not have completed yet, PLEG is not healthy: ...
     401 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.902274    2748 kubelet.go:1849] "Starting kubelet main sync loop"
     400 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.902274    2748 status_manager.go:157] "Starting to sync pod status with apiserver"
     399 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.897041    2748 fs_resource_analyzer.go:67] "Starting FS ResourceAnalyzer"
     398 Jan 17 19:56  Information kube-proxy                      0 I0117 19:56:00.897041    3748 proxier.go:148] "%s" Hns Endpoint resource="endpointInfo" {}="(MISSING)"
     397 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.879151    2748 server.go:409] "Adding debug handlers to kubelet server"
     396 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.879151    2748 server.go:149] "Starting to listen" address="<IP_ADDRESS>" port=10250
     395 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.876031    2748 server.go:1190] "Started kubelet"
     394 Jan 17 19:56  Error       kubelet                         0 E0117 19:56:00.876031    2748 server.go:1179] "Failed to set rlimit on max file handles" err="SetRLimit unsupported in this platform"
     393 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.875470    2748 plugins.go:639] Loaded volume plugin "kubernetes.io/csi"
     392 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.875470    2748 plugins.go:639] Loaded volume plugin "kubernetes.io/storageos"
     391 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.875470    2748 plugins.go:639] Loaded volume plugin "kubernetes.io/local-volume"
     390 Jan 17 19:56  Information kubelet                         0 I0117 19:56:00.875470    2748 plugins.go:639] Loaded volume plugin "kubernetes.io/scaleio"

Indeed, the windows node is now added to the example cluster. But I still do not know why it does not work for the real cluster.

I changed my vpc settings like this and now the windows nodes join the cluster
module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  version    = "v3.11.0"

  name                            = "${var.infrastructurename}-vpc"
- cidr                            = var.vpcCidr //<IP_ADDRESS>/18
+cidr                            = var.vpcCidr //<IP_ADDRESS>/16
  azs                             = data.aws_availability_zones.available.names
- private_subnets                 = var.vpcPrivateSubnets
+private_subnets                 =[for k, v in data.aws_availability_zones.available.names : cidrsubnet(var.vpcCidr, 8, local.zones+k)]
- public_subnets                  = var.vpcPublicSubnets
+public_subnets                  =[for k, v in data.aws_availability_zones.available.names : cidrsubnet(var.vpcCidr, 8, k)]
- database_subnets                = var.vpcDatabaseSubnets
+database_subnets                 = [for k, v in data.aws_availability_zones.available.names : cidrsubnet(var.vpcCidr, 8, local.zones*2+k)]
  enable_nat_gateway              = true
  single_nat_gateway              = true
  create_igw                      = true
- enable_vpn_gateway              = false
- create_egress_only_igw          = false
- create_database_subnet_group    = true
- create_elasticache_subnet_group = false
- create_redshift_subnet_group    = false
  enable_dns_hostnames            = true
-  enable_dns_support              = true

It looks like you used a different version of the Windows support example as your VPC settings were different from what's in the example. Not sure if you used correct settings for CIDR and subnet IDs. From the error log, it's clear there was some networking issue in your earlier VPC.
Anyway, glad to see that you've got the example working. We'll close the issue unless you need additional help.

These were the settings for the earlier VPC:
  cidr                 = "<IP_ADDRESS>/18"
  private_subnets      = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  public_subnets       = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  database_subnets    = ["<IP_ADDRESS>/22","<IP_ADDRESS>/22","<IP_ADDRESS>/22"]

I cannot see something wrong with it.

What would be the effect when CLUSTERNAME would have a wrong value here:
private_subnet_tags = {"kubernetes.io/role/internal-elb" =1, "kubernetes.io/cluster/CLUSTERNAME"= "shared"}

The tag kubernetes.io/cluster/clustername was used by EKS versions 1.18 or earlier. It should not affect EKS node placement in v1.21. It may be used by the AWS Load Balancer controller if there are multiple AWS services sharing the subnets or multiple EKS clusters are deployed in the same subnets. However, AWS LB controller failures would not prevent EKS nodes from joining a cluster.
How did you set region for the AWS provider? Was that data "aws_region" "current" {} or something else?
There is always a possibility of a temporary network anomaly affecting the startup of an instance. The logs indicate that either the Windows EC2 instance's instance metadata service was  unable to return the correct region, or the Powershell cmdlet was unable connect to the EKS service due to a DNS issue. If all of your settings were correct, I would check if there were any outages or service disruptions reported by AWS in the region / AZ where your node was located, at the time of instance startup. You may want to open a support ticket with AWS to dig deeper.

May it be possible that the windows nodes needs to be rebooted before they join the cluster? A collegue of mine confirms the problems with joining windows nodes.

No, rebooting is not necessary from my experience. Also, if the user data script failed as it did for you, rebooting will not help, as the script will not be executed upon reboot. In that case, you can run the script manually with appropriate parameter substitutions to diagnose the issue or terminate the nodes so that new nodes will be spun up.

Rebooting just worked for me to let the node join the cluster.

running the following command on the windows node also helps
Start-Service kubelet

Here are some errors and warnings from the log of my collegue who observes the same problem:
306            Error kube-proxy          0 E0120 14:07:26.400355    2620 utils.go:282] Skipping invalid IP:
  298          Warning kube-proxy          0 W0120 14:07:26.381624    2620 warnings.go:70] discovery.k8s.io/v1beta1 EndpointSlice is deprecated in v1.21+, unavailable in v1.25+; use discovery.k8s.io/v1
                                             EndpointSlice
  296            Error kubelet             0 E0120 14:07:22.959495    3984 server.go:292] "Failed to run kubelet" err="failed to run Kubelet: could not init cloud provider \"aws\": unable to determine AWS
                                             zone from cloud provider config or EC2 instance metadata: RequestError: send request failed\ncaused by: Get
                                             \"http://*********/latest/meta-data/placement/availability-zone\": dial tcp **********: connectex: An established connection was aborted by the
                                             software in your host machine."
  293          Warning kubelet             0 W0120 14:07:19.018725    3984 plugins.go:105] WARNING: aws built-in cloud provider is now deprecated. The AWS provider is deprecated and will be removed in a
                                             future release
  288            Error kubelet             0 E0120 14:07:19.009800    3984 server.go:277] "kubelet running with insufficient permissions" err="Error while checking admin group membership: Error retrieving
                                             group ids: The user name could not be found."
   75          Warning kube-proxy          0 W0120 14:07:18.769678    2620 server.go:220] WARNING: all flags other than --config, --write-config-to, and --cleanup are deprecated. Please begin using a config
                                             file ASAP.

@schwichti  @awsitcloudpro It would be nice to add the troubleshooting tips or findings to the Windows example as a comment and close this issue.

This situation is is unsatisfying tome, because I do not know what is going on. The solution is reboot the instance/restart the kubelet. If there "is always a possibility of a temporary network anomaly affecting the startup of an instance" can't we implement automatic retries?

I do not experience this problem anymore. So I guess this issue can be closed. However, implementing retries could still be beneficial...


Cache in context

Caches application state for posts/subscriptions in AppContext to reduce network calls (especially when navigating between the two pages)

LGTM!


Sendgrid wont read Base64 content for HTML body

Hello, sendgrid community.
I'm making maintenance of email marketing app at work, we send email with HTML body. I use two clients for emailing, one fo them, being sendgrid. Since sendgrid got updated to V3, I want to use it because it became really powerful for sending emails with a bast variety of content and attachments which we use and manage.
My HTML body consists of <table> filled with <img> in which its src is always with Base64 encoded text. As an HTML file, it displays the images very well. If I open the HTML in the web browser it displays the images correctly. but when I send an email with HTML which its images are made with Base64, it won´t display the images at all, just blank. Other HTML tags works fine, ´ul´ and ´li´ with text inside, works, and so on. But Base64 images won´t display.
How do I make the images in base64 correctly displayed in the emails using sendgrid as a mailing client?
here's an example of how I do the ´ src´:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<img src="data:image/png;base64, // all the encoded base 64 that follows" alt="">
  </body>
</html>

Thanks a lot for the help!

It might be because base64 encoded images are not supported by all email clients.
You can read about it more in this stack overflow question:
https://stackoverflow.com/questions/16242489/send-a-base64-image-in-html-email
Outlook 2007+, Outlook.com/Hotmail, Yahoo and Gmail all block the images by default.
My suggestion would be to host them online and link to them, as that has always worked for us.

Right. I see that. deprecation is brutal. But I also use another massive Mail client (mandrill) where I embed images and it works perfectly well. The thing is, sendgrid works a lot better and since I always use base64 images for emailing, I want to keep doing that way because it's simple.
Anyone has any idea of another way to embed images in HTML and being properly processed by sendgrid?

It might be possible to embed them if the files are attached to the email itself and then just referencing the attachement.
I found this stack overflow question which has some discussion on it, might be useful: https://stackoverflow.com/questions/922898/embedding-attached-images-in-html-emails
It should be possible with sendgrid, as their API does allow you to specify a content-id for any attached file, which you should then be able to reference within your HTML.
SendGrid docs: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html#-Request-Body-Parameters
I hope this gets you closer to a solution.


Version 4.0.0 (Major revision - see RELEASE.md)

The Wiki is already up to date.

the folder and file names are changed to lowercase - was only relevant in priv folder
all eunit and ct tests are running via rebar3
Travis status removed from RELEASE.md
RELEASE.md moved to Wiki
file code_templates is needed by the test data generator
reliability_* files are optionally generated tests per SQL statement
sqlpares_generator.erl, gen_tests.bat, gen_tests_and_run.bat and stress_test.bat are all moved to the directory test
the wiki pages reflect the changes necessary based on the corrections above

@walter-weinmann Please provide here link to any necessary DDErl/IMEM changes related to this.

There is a problem in leex - overlapping of those characters causes a
memory leak (see: https://github.com/K2InformaticsGmbH/jpparse/issues/5).
On 9 November 2017 at 09:37, Bikram Chatterjee<EMAIL_ADDRESS>wrote:

@c-bik commented on this pull request.
In src/sql_lex.xrl
https://github.com/K2InformaticsGmbH/sqlparse/pull/66#discussion_r149893390
:

@@ -44,7 +44,7 @@ Rules.
(|:{[#+|)                              : parse_json(TokenLine, TokenChars).

% names
-[A-Za-z][A-Za-z0-9_@:#$]*                          : match_any(TokenChars, TokenLen, TokenLine, ?TokenPatters).
+[A-Za-z][A-Za-z0-9_@$~]*                           : match_any(TokenChars, TokenLen, TokenLine, ?TokenPatters).
How can # conflicting with JSONpath? Aren't all JSONpaths are wrapped
with |?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/K2InformaticsGmbH/sqlparse/pull/66#discussion_r149893390,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB3ZNYMeNY2hSnvHozXNRWRUdF4n-3yyks5s0rnngaJpZM4PfAk6
.

--

Walter Weinmann

Obertorplatz 4
CH-4130 Rheinfelden
Tel +41 (0)61 841 06 10

Schulstrasse 1
CH-6037 Root
Tel +41 (0)41 530 39 70


Add missing kernel config checks

Add additional kernel config checks for NETFILTER_XT_MATCH_COMMENT and NETFILTER_XT_MATCH_MULTIPORT as they are both required to run k3s.

Proposed Changes

I was experimenting with minimal linux kernels and k3s the other day. I used your excellent check-config.sh script to check my configuration. However, k3s didn't run and required extra config options that were missing from the script.
Types of Changes

I added 2 missing config checks to the script. I categorized them as required as the server failed to start without them. Furthermore, I bootstrapped vanilla servers without any extra configuration (e.g. env variables) during my testing.
Verification

Here are some error messages taken from journalctl -u k3s.service.
Regarding NETFILTER_XT_MATCH_COMMENT:
Feb 11 22:57:15 virtoo k3s[6375]: panic: F0211 22:57:15.908590    6375 network_policy_controller.go:341] Failed to run iptables command to insert in INPUT chain running [/usr/bin/iptables -t filter -I INPUT 1 -m comment --comment kube-router netpol - 4IA2OSFRMVNDXBVV -j KUBE-ROUTER-INPUT --wait]: exit status 1: Warning: Extension comment revision 0 not supported, missing kernel module?
Regarding NETFILTER_XT_MATCH_MULTIPORT:
Feb 11 23:02:34 virtoo k3s[2678]: panic: F0211 23:02:34.075017    2678 network_policy_controller.go:336] Failed to verify rule exists in KUBE-ROUTER-INPUT chain due to running [/usr/bin/iptables -t filter -C KUBE-ROUTER-INPUT -p tcp -m comment --comment allow LOCAL TCP traffic to node ports - LR7XO7NXDBGQJD2M -m addrtype --dst-type LOCAL -m multiport --dports 30000:32767 -j RETURN --wait]: exit status 2: Warning: Extension multiport revision 0 not supported, missing kernel module?
Those error messages vanish and the server starts when both match extensions are compiled into the kernel (or as modules).
Testing

I don't think this is subject to unit testing. Please let me know otherwise.
Linked Issues

User-Facing Change

NONE

Further Comments

Thanks a lot for the PR and especially for signing your commit! Just as a heads up we're currently under code freeze as we enter release week, but we can review and merge for you once freeze is lifted (assuming review passes). Thanks again!

Thanks again for the contribution!


Added KEP of the week for 09/10 issue

Need to change the base branch to the to-be-created 20230910 branch before merging

/approve
/lgtm


clean nodes in FS explorer are marked as modified

VSCode Version: 1.34
OS Version: macos 10.14.5

Steps to Reproduce:

open some project in vs code
do some changes
switch to external terminal. commit changes
switch back to code. FS explorer still marks committed nodes as modified

Does this issue occur when all extensions are disabled?: Yes
Couple of notes:

I am not sure that STR above are valid. they are part of my regular flow. and this happens almost every time;
I am pretty sure this started to happen with 1.34;
I have guess that this might be related to next

Extensions have been able to provide their own filesystem implementations for custom resources (read more here). However, VS Code's own implementation for local files was not implemented with the same extension APIs. This resulted in subtle differences when dealing with local file resources compared to resources coming from extensions. Over the last two milestones, we rewrote our local file system provider to use the extension APIs for consistency.

See screen for example of this bug

This is coming from the git decoration provider, forwarding to @jrieken as I believe he is the owner (let me know if I am wrong)

What does the git viewlet show?


Technical Debt: Shader exporters vary wildly in quality, feature support, and stability

While going through the code I noticed a couple of places now that need much more testing:

PBR attribute exporting is handled very differently between HDRP and Built-In
URP support is missing (given that Unity has now officially mentioned "yes, this will be the default" this needs to happen at some point)
exporters check for properties, not shader keywords, in most places (in some the keyword checks are in place);
for example, material.HasProperty("_SpecGlossMap") will return true if this material has ever been set to "Specular", a texture attached, and then set back to "Roughness" workflow. Right way would be to check if actual shader keywords are set for known shaders.
there's magic hardcoded values scattered in the code (e.g. specular color is set to 0.4, 0.4, 0.4 if material has no spec color)
the workflow around linear textures, sRGB textures, and color spaces (linear vs. gamma) is unclear (and we're seeing color differences between Unity, USD, and AR QuickLook because of this I assume)
the shaders for ChannelCombiners etc. are not in Resources, which means they will most likely be missing from builds unless a user explicitly adds them (this will cause certain, but not all, imports/exports to fail in a build)

Some of the differences are required (e.g. because HDRP implementation is actually different from built-in), but in general, I totally agree with this -- I actually feel like there is a ton of accrued tech debt across the import and export pipelines and all of it should be revisited with a new holistic design.
I actually think there is less tech debt in shader import/export and much more in the geometry pipelines. UsdSkel support is particularly messy.

Any updates on this? Especially URP support would be very welcome :)


Coverage upload gives 404 even with token

Example log: https://github.com/astropy/astropy/actions/runs/4419131201/jobs/7747176459 (from a pull request https://github.com/astropy/astropy/pull/14319)
How we are using your workflow: https://github.com/astropy/astropy/blob/b6d33e25345e0cabdd58991a7740a1d996b8281c/.github/workflows/ci_workflows.yml#L74-L77
We have CODECOV_TOKEN defined (though technically we do not need it because it is a public repo). Though perhaps the PR cannot see this token?
There was an error running the uploader: Error uploading to https://codecov.io
Error: There was an error fetching the storage URL during POST:
404 - {'detail': ErrorDetail(string='Unable to locate build via Github Actions API.
Please upload with the Codecov repository upload token to resolve issue.', code='not_found')}

As a result, the coverage check failed due to incomplete stats.
Is there a solution for this?

Yeah, the issue is that it cannot see the token. Even on main, where permissions should not be an issue, it has no token: https://docs.github.com/en/actions/learn-github-actions/variables#using-the-env-context-to-access-environment-variable-values

Astropy needs to pass the secret to the tox workflow like this: https://docs.github.com/en/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow

Ah, okay. That makes sense. Thanks!

Just realised that will still not make the token accessible in PRs from forks. For security, GitHub doesn't give them access to secrets as they could modify the workflow in their PR to steal the secret.

That also makes sense but would be super annoying if we keep getting 404 for no apparent reason.
At least we won't see this 404 after merge?

Yeah, it should work fine after merging.
How frequent are the 404s? Is it mostly when lots of PR CIs are running at once? I'm surprised it's still an issue.

astropy is relatively high traffic but I wouldn't say they are excessive. It is frequent enough that some contributors are concerned by the apparent coverage failure.


Feature Request: Tables

It would be awesome to make tables work. they are so unreadable in markdown mode.

You can see my reply here basically, it's planned for the future but it's a big task so I won't be doing it any time soon.


Gradle plugin update to 7.2, target SDK 32, Added Jetpack ViewBinding for example project, updated all dependencies

• Set target and compile SDK version to API 32.
• Upgraded Gradle version to 7.1.2.
• Built project in Android Studio 2021.1.1 Patch 2 (Bumblebee).
• Added Java 11 support to project.
• Added Jetpack ViewBinding support to example project.
• Updated project Kotlin version to 1.6.10
• Updated all internal dependencies.
• Upgraded project version to 1.1

Thank you for contributing. Appreciate it.


Handle OperandOwnerhip::NonUse in PrunedLiveness::computeSSALiveness.

Fixes a bug in the simple PrunedLiveness routine for SSA values.
Without this fix, the init_existential_ref instruction below was not considered a lifetime-ending use because the non-use type dependednt operand (which is not really an operand at all) would override the forwarding operand:
%1 = open_existential_ref %0 : $any P to $@opened("...", any P) Self
%2 = init_existential_ref %1 : $@opened("...", any P) Self : $@opened("...", any P) Self, $AnyObject
This will be tested by silgen_cleanup_complete_ossa.sil.
The test is on a branch. It isn't possible to commit it until we use this utility in more interesting places. But I want to make sure fixing it doesn't disrupt anything first.

@swift-ci test

LGTM


Create WildCardMatching.java

Added DP solution Of MatrixChainMultiplication in java First added Recursive Solution.
Then added Top-Down Approach.
Then added Bottom-Up Approach.

Added DP solution Of WildCardMatching in java
So. please merge my pull request.


Run command dr

This PR closes #
The changes in this PR are as follows:

Includes a cmdlet "Add-GroupToSRMAdmins" to add the group to the "SRM Administrators."
Includes a cmdlet "Remove-GroupFromSRMAdmins" to remove the group from the "SRM Administrators."

I have read the contributor guidelines and have completed the following:

[*] Formatted the code using VSCode default formatter for PowerShell.
[*] Tested the code end-to-end against an SDDC.
[*] Documented the functions using standard PowerShell markup and applied AVSAttribute to newly exported functions.

Also need to add to the "VRM Administrators" group as well.
That group will only exist if vSphere Replication was installed, but SRM in AVS currently requires vSphere Replication to be useful.

As discussed this will go into another repo.


docker-for-mac: make command line more intuitive

For a getting-started guide, it makes sense to use the expanded option names that make it explicit what each option does. Later on users will have the chance to learn the shortcuts.
The equal sign convention is also used for the options that take arguments, to make it clearer what each part of that command line refers to.

Deploy preview for docsdocker ready!
Built with commit d6ad27919cf9678be78cb0ff53bad63f8727cd7e
https://deploy-preview-7453--docsdocker.netlify.com

Direct link to the relevant section in the preview, for convenience: https://deploy-preview-7453--docsdocker.netlify.com/docker-for-mac/#explore-the-application


mouse cursor turn black box when "pointer shadow" is enabled in win2012 and 2016

I used NeutrinoRDP and freerdp to connect windows 2012 server. When I enabled pointer shadow, the cursor turn to a black box. When I disabled pointer shadow, the cursor turn normal.
Open Mouse Properties in Control Panel, click "Enable pointer shadow" and apply. The cursor immidiately turns a black box. If untick the "Enable pointer shadow", the cursor will turn normal.
Windows 2016 server has the same issue.
I tried enable the "PERF_DISABLE_CURSOR_SHADOW" flag in instance->settings->performance_flags in xrdp-neutrinordp.c, and it did not help.

Same as #5334.
Please add the information requested by the issue template.
Since this is your second attempt, the missing and most important information is WHICH version of FREERDP are you using? (/buildconfig just as requested by the issue template)

Additionally: does it work with our nightly builds?

Just checked against windows 8.1 and 10, no such issue with current nightly builds.
If it is reproducible please provide at least:

Version you tested with (/buildconfig)
Command line (complete)
Remote systems

I was using FreeRDP 0.9.1, and NeutrinoRDP, which a fork of FreeRDP 1.0.1. We also tested the lastest version and it still has the same problem. The command line is ./xrdp -nd
I think windows 8.1 and 10 is fine to me too. It only happens with windows 2012 and 2016.

Sorry, that are versions we have not much to do with.
You might try our nightly builds (upcoming 2.0 version) https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds
Xrdp is a different project though ;)


Improve public webroot upgrade path

Overview
The upgrade instructions around the public webroot require too much knowledge from users.
Acceptance Criteria

Only kicks in when public subfolder is created by the user
assets are moved automatically to public/assets. The user gets an info message that this likely needs to be manually migrated in other hosting environments
If I have a .htaccess file in the base path that's different from the 3.x defaults, I get a warning and instructions on how to migrate (link to contents of new file)
If I have an index.php in the base path, I get a warning and instructions on how to migrate (link to contents of new file)
Auto-run composer vendor-expose
Show an info message suggesting an "expose" configuration for composer.json for common public folders in themes (js, javascript, dist, css, styles, etc). Point out that any hardcoded paths will break, and link to detailed theme docs that work with the public subfolder
The current upgrade instructions are updated to reflect this automatic task, but also spell out what happens behind the scenes
The upgrade instructions are moved from 4.1.0 to 4.0.0, with a note that this section only applies to >=4.1.0 upgrades. Most devs will read the 4.0.0 guide, and likely miss the 4.1.0 link at the top. This shouldn't become a pattern for all upgrades, but this one is important.
The upgrade instructions make it clear that hosting config changes are required to deploy this (and points out that it works out of the box on SSP and CWP)
The .htaccess file only contains relevant rules when placed in the public/ subfolder, removing unnecessary noise like RewriteRule ^vendor(/|$) - [F,L,NC]

Notes

Explicitly removing unnecessary rules from .htaccess when moving to public/ subfolder is preferrable to introducing the complexity of conditional public-files via the vendor plugin
Once the .htaccess file has been modified and moved into the public/ subfolder, it becomes unsafe to opt out of using public/ later, since that file will be missing rules. This is acceptable, but ideally we can warn users about it if there's any automatic process moving public/.htaccess to .htaccess
Track under ORB-162

If I have an index.php in the base path, I get a warning and instructions on how to migrate (link to contents of new file)

This has already bitten me, as following the instructions and just moving the index.php from a 4.0 install breaks the autoload logic. More details in the Slack thread (thanks to bummzack for the workaround).

@Juanitou Good point, I've added that to the upgrading docs:

If upgrading from 4.0, replace the file the index.php from recipe-core in order to fix autoloading paths

Should be on doc.ss.org in an hour or so

Making a note that we'll probably roll this into the upgrader.

See https://app.zenhub.com/workspace/o/silverstripe/silverstripe-upgrader/issues/65

What will happen

If you don't have a public folder we create one for you.
If you have an assets folder, it gets move to your public folder.
If there's a .htaccess file and it is identical to the standard SS3 one or the SS4 one:

We delete it and replace it with the root recipe core one.
We create a .htaccess file in public matching the one in recipe-core.
Alternatively, if it's not identical, we move it to public with a warning

Delete the index.php from the root (if present), and copy the recipe core index.php to public.
Run a composer vendor-expose (Yeah for Max’s new ComposerExec)
Warn about VHOST and hardcoded paths needing update.

Last step will either write the change if you have set the --write flag or display which files would have been move to where and diff for file that would have been changed.
Prerequisite
I’m thinking we should make having having recipe-core:^1.1 installed a prerequisite to do all of this. For one thing, we need the silverstripe vendor plugin installed to do the the vendor-expose. If I need to copy stuff from recip-core, it will make the process easier. Otherwise, I’ll need to get it from github, or copy the file content in the upgrader codebase, which would make the process nightmarish when we push out a SS4.2, SS4.3, etc.
What kicks off this crazy process
I’m not sure about this criteria:

Only kicks in when public subfolder is created by the user

I think it would make sense to minimise the number of conscious decision the developer has to make. If you are already thinking of upgrading to the new app structure why would you feel upgrading to the new public structure is a bridge too far?
The options I can think off the top of my head:

Create separate command from reorganise dedicated to this task.
Add an optional opt-in flag on the reorganise command.
Add an optional opt-out flag on the reorganise command and do the public migration by default.
Auto trigger the behavior on the reorganise command, but only if you have installed recipe-core:^1.1. This could be combine with the opt-out flag
The original trigger behavior of requiring the user to manually create a public folder

Nice to have

What about we do a 3 way-merge for the .htaccess file and the index.php file. https://github.com/bircher/php-merge

I’m thinking we should make having having recipe-core:^1.1 installed a prerequisite to do all of this.

I assume you're adding this through the "composer.json rewrite task" you've just gotten into peer review? If that's the case, I'm fine with it.

Only kicks in when public subfolder is created by the user

Yeah, that was written before I decided that we should tie all those commands together into a wrapper command. Happy with a dedicated task.

What about we do a 3 way-merge for the .htaccess file and the index.php file.

I think for now, just replace the .htaccess file, show before/after file in output, and allow devs to adjust.

Cool. I'll go with a separate command ... it does have things in common with reorganize as it moves files around, but the two can be done independently from one another and it does have intricacies that differ from reorganise.
I shall christen this one ... webroot.


Remove implied binder support

The last tutorial requires that the Ipython process runs on the users machine itself to display Napari. So we probably don't support binder for this tutorial? Then it seems useful not to indicate so to users.

@lagru actually, unless something has broken, binder does work, thanks to jupyter desktop, and what we should do is (a) test and (b) restore those instructions!
https://github.com/napari/napari-workshop-template/blob/main/napari-workshops/docs/launching_binder.md
I'm gonna give it a go now.

not a good start 😂

Whoop whoop! 😊 So cool. It doesn't really show off napari very well (super slow response), but it friggin works.

Well, no time to fix it, so I'm going to merge this for now — we can add back in later if required.


Basic improvements to index.html

This PR is not intended to be the final style of scapy.net, but only to refresh its information. A potential new design must be discussed.
This PR:

Update versions
Removes

[Security Power Tools cover] Security Power Tools was out in August 2007. I wrote a complete chapter on Scapy

Which already exists below on the page, which is now an old news

Applies HTML linter to index.html
Remove portability.html (link to readthedocs/installation instead)
Add fancy logos (favicon, logo, badges)
Removes "reading interface aliases" from the Known-bug list

Thanks!


test-cluster now works with thrift

If you pass in a thrift file associated with your named remote you can now register with an "as thrift" sub-channel.
Fun fact: the api is weird so I dont break back-compat.

@Raynos?


Problem upon startup of Minecraft

Describe the bug
It just crashes whenever I start up the game
Steps to reproduce
Unfortunately, I don't know how to replicate this, or even if it's an incompatibility, so I'm putting it on what I feel like it is.
launcher_log.txt
Logs
No response
Additional context
No response

What mod is it incompatible with?

The crash comes from Eldritch End

The crash comes from Eldritch End

I don't understand why the boat mixin injection is failing? Another mod redirecting the method probably? EE works fine in the 3 modpacks it's in, Better MC 1.20, Medieval MC 1.20 and Prominence II, all of those are forge modpacks using connector to load EE, so I don't think the incompaibility is between connector and eldritch end

@ExtremeDiscomfort could you please upload your debug.log? It should tell us more about which mixins modified the class prior to EE

This is the mixin btw
https://github.com/nvb-uy/Eldritch_End/blob/1.20.1/src/main/java/elocindev/eldritch_end/mixin/boat/BoatTypeMixin.java

@ExtremeDiscomfort could you please upload your debug.log? It should tell us more about which mixins modified the class prior to EE

Unfortunately, since I'm still new to this, I don't know how to do that. Do you mean like, the log itself?

I figured out the issue, I was sending the launcher log, not the modpack log.
latest.log

Problem has been figured out, turns out it had nothing to do with either of these mods. Apologies for wasting your time.


MudCard: Set max width of MudCardHeaderContent

Description
CardHeaderContent might exceed the cards width under certain circumstances. If, for example, are very long text is combined with "text-truncate", the text will simply exceed the Card and overflow.
Set max-width of CardHeaderContent to 100% to avoid this.
<MudGrid Spacing="2">
    <MudItem lg="2">
        <MudCard Class="m-4">
            <MudCardHeader>
                <CardHeaderContent>
                    <MudText Typo="Typo.h6" Class="text-truncate">This might be some long text</MudText>
                </CardHeaderContent>
            </MudCardHeader>
            <MudCardContent>
                <MudText>This is the card content with even more text</MudText>
            </MudCardContent>
        </MudCard>
    </MudItem>
</MudGrid>

How Has This Been Tested?
visually
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Before:

After:

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[ ] I've added relevant tests.

Hi @MatthiasNistl, and thanks for your contribution. Hence your work is purely CSS. Maybe @JonBunator can have a look?
Have you checked that your solution works well if your card header has header actions?
Shouldn't maybe something like  text-overflow: ellipsis; be added as well?

Sorry, instead of using a class name I should have stated the used style attributes explicitly. Please try the following example, you should be able to reproduce this issue on a certain width of the MudCard:
https://try.mudblazor.com/snippet/cOcckWvGVxoxhWHA
@just-the-benno Unfortunately you are right, since I don't use card header actions in my project I haven't considered those.  With max-width: 100%; I am able to truncate my header text to fit right into the card header, which is fine for my use case, but it seems like card header actions will still exceed the width of the card:

Guess this fix isn't really practicable 😞

Hi @MatthiasNistl
I think you have a valid point. It seems like changing CSS is not enough. Maybe you can think about another solution that involves changing the DOM for the card as well?

Hi @MatthiasNistl
Any news on this PR? Do you plan to proceed, or should I close it?

Let's close this PR for now, unfortunately I currently don't have much time to investigate this further. If I ever find a better solution I will create a new PR.


Performance Testing

We need to test this component for throughput and performance.

/kind performance

/kind performance

@duglin ^^^

We're looking at initially supporting about 1000 requests/second - and eventually hoping to slowly increase that over time. How long each request's processing time is will obviously vary, but for now we can assume about 5 seconds per request.

@duglin can you clarify a bit the 1000 req/s so I can make sure I am measuring the correct places. Do you mean 1000 req/s submitted / queued from a user’s perspective (i.e., a client using curl for instance to invoke an async service). Thx

Yes 1000 rps submitted from the user. And then I would expect the async infra to generate outbound requests to the sink at a similar rate.

OK thanks @duglin. Unlikely we will be close but good to have your needs clarified. Thx

/assign @AngeloDanducci

Here are some initial findings from the requests side.  I will open a PR to update the README with methodology used.
JMeter was used to generate load against the helloworld test application using 100 threads with 10 repeats each.
Cold start:

Warm start:

This matches similarly to previous runs where the calculated average was approximately 91.604ms.
Timespan of requests was performed within the desired window of 1s.
Final:<PHONE_NUMBER>620
Initial:<PHONE_NUMBER>516
May need to do some additional work to find the outbound requests to the sink (Step 6 in the design [here])(https://raw.githubusercontent.com/knative-sandbox/async-component/main/README-images/async-all-components.png)
@duglin ^
@aslom I also did an initial run of kperf testing - is measuring this outbound requests to the sink something your work on the new kperf update something that is feasible?

Thanks for the update @AngeloDanducci. I look forward to the README update since that will allow others to replicate your results. Thx.

@AngeloDanducci thanks but can you show the graphs with a non-black background. It's really hard to read it.
Is this showing the throughput INTO the async queue?

Yes, this is throughput into the async queue as measured by positive responses from the hello world application running with async.

I performed some additional testing as the above was short large bursts which was reaching around 500 reqs/s with a positive response.
Here I let 100 threads hammer the service to see how sustained usage would be handled and we are over 1k reqs/sec but a small error rate.  The trend was upwards in terms of throughput so I don't think this has been pushed to its limit yet.


Set accept_untracked_na to 2 for IPv6 NA in EVPN

This only works on newer Kernel versions e.g. with Ubuntu 24.04.
Older Kernel versions are out of luck.

What happens if it is not supported by the interface?


Can I put # in front of it?

I want to automatically put # in front of textfield_tags like #tag1 #tag2
and then Can I delete it when I put backspace button?
is this possible?
@eyoeldefare

I will see a way to implement the hashtag sometime in the future, but for the backspace, unfortunately, I don't really have the time to add the functionality and testing that needs to be done myself for now.

@eyoeldefare
thank you for the reply. It was very helpful.


docs: usage guide

Coverage increased (+0.007%) to 99.533% when pulling 41059f073e4e2711c881a2585fc19762866df8cd on lnielsen:docs into 5907eb8955f7c727fa0523ec1cd5b182c00bf7c3 on inveniosoftware:master.

Coverage increased (+0.007%) to 99.533% when pulling c11c35027a358d2b737d8ef78a73200a8d3e2284 on lnielsen:docs into 5907eb8955f7c727fa0523ec1cd5b182c00bf7c3 on inveniosoftware:master.

Coverage increased (+0.007%) to 99.533% when pulling c2331b41e3239fab092ffb976f5dd64b5112e12d on lnielsen:docs into 5907eb8955f7c727fa0523ec1cd5b182c00bf7c3 on inveniosoftware:master.


Decide on mixed precision

Request description
Found a few disparities in inferring the return element type of operations involving reduction.
Lets first see the constraints we have on reducer function's type (from https://github.com/openxla/stablehlo/blob/8ec92006166d0602d0dca32e0267d169c2078e0d/stablehlo/dialect/TypeInference.cpp#L273 or
https://github.com/tensorflow/tensorflow/blob/b362eaeb53cc21aa38f3eb1551500ced4fca0c97/tensorflow/compiler/xla/service/shape_inference.cc#L62, the former is inspired from the later)
Consider typical reduce-* op syntax:
op(I(i), V(j)):
  block(BI(i), BV(j)):
      ... some computation ...
  return(R(i))

I(i)  : i-th input of op
V(j)  : j-th init-value of op
BI(i) : i-th input of reducer-function
BV(j) : j-th init-value of reducer-function
R(i)  : i-th return-type

The constraints that we verify are:

Check that BI(i) and R(i) have same shape and element-type.
Check that BV(j) and R(i) have same shape and element-type, ignoring fp-precision.
Check that V(j) and R(i) have same shape and element-type, ignoring fp-precision.
Check that I(i) and BV(j) have same element-type, ignoring fp-precision.

Informally,
Any element in P = {BI[i],  R[i]} have same element type.
Any element in  Q = {I(i), V(j), BV(j)} has same element type modulo fp precision.
For a in P and b in Q,  a and b has same element type modulo fp precision.
Now the return type of the followings ops are inferred as follows:

op
Return element type inference

reduce
Same as element type of R(i)  hlo link, mhlo link

reduce_window
Same as element type of V(i) hlo link, mhlo link

select_and_scatter
Same as element type of I(i)  hlo link, mhlo link

From 1-4, it seems like for all the ops. we can say the element type of return is "element type of I(i) ignoring fp precision ".
Should our spec use the same behavior as in HLO w.r.t ignoring precision?

Relevant discussion: https://github.com/openxla/stablehlo/pull/353/files#r1000066688

Here is the current resolution as per the above chat thread (in Eugene's words).

Since this is a cross-cutting concern, i.e. it applies to a bunch of ops - not just reduce and not limited to the ops that https://github.com/openxla/stablehlo/issues/369 is talking about - I propose that we don't address it in this PR, but instead write the spec as if mixed precision is not a thing and then address all the ops at once.

I will work on this in next week.

Found a neat list of HLO opcodes which allow mixed precision: https://github.com/tensorflow/tensorflow/blob/1d69ba72834b963b72075a82c10959f6bb74e473/tensorflow/compiler/xla/service/hlo_verifier.cc#L1681-L1714.

There have been recent conversations about StableHLO having different behavior from HLO as far as mixed precision is concerned (StableHLO doesn't support it, HLO does). Furthermore, this has come up in the context of quantization: https://github.com/openxla/stablehlo/pull/1477/files#r1199398839. Moving this to Frontend Contract and raising priority.


Concurrency Implementation with Hangfire

We are having problems with accessing the LiteDB database with Hangfire implementation. We are using Hangfire.LiteDB (0.3.0) and looks like for concurrent access database is getting locked, which results in crashing the Hangfire jobs.
I am referring your  documentation here   and thread safe implementation is something what i am looking for.
Could you share an example  of how to implement concurrency with hangfire jobs using ReaderWriterLockSlim?

I have the same problem

Hi guys, there are 2 types of concurrency control in LiteDB v4:

Across multiple threads: lock are controlled by ReaderWriterLockSlim class (from .NET Threading)
Across multiple process: using FileStream.Lock and Unlock

But I don't how Hangfire implements LiteDB access. Do you have any error log to check?

@mbdavid yes, it follows:
2020-01-04 07:20:55 -03:00 ERR] Unable to clean up locks on the resource 'HangFire:locks:schedulepoller'. LiteDB.LiteException: Timeout. Database is locked for more than 00:10:00.    em LiteDB.LockService.Write()    em LiteDB.LiteEngine.Transaction[T](String collection, Boolean addIfNotExists, Func2 action)
em LiteDB.LiteEngine.Delete(String collection, Query query)
em LiteDB.LiteCollection1.Delete(Query query)    em Hangfire.LiteDB.LiteDbDistributedLock.Cleanup() Hangfire.LiteDB.LiteDbDistributedLock 2020-01-04 07:30:54 -03:00 ERR] Execution Worker is in the Failed state now due to an exception, execution will be retried no more than in 00:00:04 Hangfire.Processing.BackgroundExecution LiteDB.LiteException: Timeout. Database is locked for more than 00:10:00.    em LiteDB.LockService.Read()    em LiteDB.LiteEngine.<Find>d__9.MoveNext()    em LiteDB.LiteEngine.<Find>d__13.MoveNext()    em LiteDB.LiteCollection1.d__17.MoveNext()
em System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 source)    em Hangfire.LiteDB.LiteDbJobQueue.Dequeue(String[] queues, CancellationToken cancellationToken)    em Hangfire.LiteDB.LiteDbConnection.FetchNextJob(String[] queues, CancellationToken cancellationToken)    em Hangfire.Server.Worker.Execute(BackgroundProcessContext context)    em Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)    em Hangfire.Processing.BackgroundExecution.Run(Action2 callback, Object state)
2020-01-04 07:31:43 -03:00 ERR] Server dsp2029_101:6880:3f6bc590 will be restarted due to server time out Hangfire.Server.ServerHeartbeatProcess
2020-01-04 07:40:56 -03:00 ERR] Unable to clean up locks on the resource 'HangFire:recurring-jobs:lock'. LiteDB.LiteException: Timeout. Database is locked for more than 00:10:00.
em LiteDB.LockService.Write()
em LiteDB.LiteEngine.Transaction[T](String collection, Boolean addIfNotExists, Func2 action)    em LiteDB.LiteEngine.Delete(String collection, Query query)    em LiteDB.LiteCollection1.Delete(Query query)
em Hangfire.LiteDB.LiteDbDistributedLock.Cleanup() Hangfire.LiteDB.LiteDbDistributedLock`

LiteDB timeout occurs when you have a thread that writes on database and keeps open more than 1 minute... while another thread are trying to read (or write too) database. Looks an IEnumerable fetch that are taking too long time or are not disposing correctly

Okay, thanks for the help. For now I solved the problem by isolating hangFire server in another database.


How to use faithscore?

How to use faithscore benmark to test model's hallucinaion such as llava, minigpt4? Could you please give us an example?

Hi, I have given the testing sample in our repo. You just need to prepare the image and the response generated from llava, then you can evaluate them


Add multi-tenant support

Includes (please review these PR instead separately):

#5830
#5833
#5869
#5881

Closes #5742

[x] Refactor: extract Tenant from Server
[x] Refactor: extract BaseServer from Server
[x] Add MultiTenantServer
[x] Shared compiler pool among tenants
[ ] Server logging prefixed with tenant server name
[ ] Use Consul for conf updates (use #5733)
[x] Redo commit history
[ ] GraphQL: tenants share the same compile cache (Server._http_query_cache)
[ ] Use different admin sockets for tenants (needed?)
[ ] Shared compiler support multiple tenant_id in backend runtime params
[x] Better handle failure in _ensure_tenant() for HTTP
[x] IP-based (no tenant) HTTP system API
[ ] Add tests
[ ] Performance test (concurrency, memory)

Admin sockets and direct Consul watching can be skipped initially.  There's no need for the former, and we should see if Nomad watching and templates work well enough for us.

Merged for now, please feel free to add post-merge reviews.


Allow add/remove control for docker podman package

To avoid installing the optional docker-podman package you can define the existing "podman_docker_pkg" parameter as undef (use a tilde '~' in hiera).  I've updated the reference to make this more clear.

Will that ensure that package is absent?  The intent here was not just to not install the package, but to uninstall as well if needed.


Add aiaiai styles

Pull Request Checklist

[ ] Target branch: Pull requests should target the dev branch.
[ ] Description: Briefly describe the changes in this pull request.
[ ] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
[ ] Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
[ ] Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
[ ] Testing: Have you written and run sufficient tests for the changes?
[ ] Code Review: Have you self-reviewed your code and addressed any coding standard issues?

Description

Hover color:

Remove theme selector:

Changelog Entry
Added

[List any new features, functionalities, or additions]

Fixed

[List any fixes, corrections, or bug fixes]

Changed

[List any changes, updates, refactorings, or optimizations]

Removed

[List any removed features, files, or deprecated functionalities]

Security

[List any new or updated security-related changes, including vulnerability fixes]

Breaking Changes

[List any breaking changes affecting compatibility or functionality]

Additional Information

[Insert any additional context, notes, or explanations for the changes]

[Reference any related issues, commits, or other relevant information]

Closing in favor of #6


Autorest Regen Preview to 3.0.0-alpha.20231122.1 by Chun Yu from refs/pull/3961/head

Triggered from https://github.com/Azure/autorest.csharp/pull/3961

API change check
API changes are not detected in this pull request.


Add matching-brackets exercise

ok> "erik" "" s:/ .
 ["e","r","i","k"]
ok> "erik" null s:/ .
 ["e","r","i","k"]

null is what's suggested by the manual, viz
C:\Users\bugma\Documents\GitHub>8th -? "s:/"

s:/
SED: s n -- a | s a1 -- a2 | s pat -- a | s null -- a

Split the string s at n, splitting into an array [head,tail] at that character index (starting from 0).

If an array of numbers a1 is given, splits into an array of strings with that many characters each, repeating the
last value as long as there is still something to split (e.g. "12345" [2] s:/ will give ["12","34","5]).

If string or a regex pat is given, splits on all occurrences of pat, omitting it from the results.

If null is given, splits s into its component characters.

Returns an array of results, or an array with the entire string as the only element, if there are no matches.

See also: b:/ a:join

I've updated @axtens.

Do you also want to look at Ron's content on breaking out of an anonymous function?

Do you also want to look at Ron's content on breaking out of an anonymous function?

Yeah sure!

@axtens Example solution has been updated.


Get started - Dependencies

Hi,
First of all - Great work with with the angular-admin-lte. I use admin-lte from before, but are quite new to angular. Beginning to get it now.
I have downloaded and run this repo from git source, and everything works well. In "Get started" you say that I can include this library to an existing angular project. I have tried to do this.
When I try to add "Dependencies" to the "styles" object in "angular.json" and then run "ng-serve" I get message about paths not found for these dependencies.
I figured that the following packages was missing:

bootstrap-css-only
font-awesome
ionicons
admin-lte-css

Of course, when installing them manually, I can build successfully.
Question 1)
Could not these packages be added as dependencies to the npm package "angular-admin-lte" ?
Question 2)
It seems that this git repo is not the actual repo for the npm package it self?
I might like to fork and add pull requests. Is that possible?
Best regards,
Christian

Hi,
admin-lte-css is served as peerDependencies, you should have seen warnings during first npm install.
bootstrap-css-only is served by admin-lte-css as devDependencie so you need to install it manually or include any other bootstrap. You can install your own customized bootstrap.
ionicons and font-awesome are optional.
The npm package come from the build. npm run build:lib create a dist folder, this is the npm package
You're welcome to create pull request ;)


[network] eliminate unreachable that is very reachable

We'll need to follow up:

Heartbeat service should leverage Ping/Pong and not another Rpc service
Should send Errors back if a remote peer is unable to process an incoming request
Having a ProtoclId in the ErrorCode::NotSupported is ... well pretty limiting since it would make future protocols unparseable ...

/land


Config file support

To help with provide additional flexibility for projects and configurations, a configuration file setup should be created.
Identified Areas

Directory listing - default: array['client-mu-plugins', 'plugins', 'themes']
Hashed production file names - default: boolean true

This has pretty much been addressed with the addition of Custom Webpack Config support. Unless we find additional usecases, I think this can be closed.


Bug: object and array params not supported?

Describe the bug
When using a dict in the rpc params, the server returns {'jsonrpc': '2.0', 'id': 35342, 'error': {'code': -32602, 'message': 'Invalid method param(s).'}}.
Steps to reproduce
File  server.py:
from ucall.posix import Server

server = Server(
    port=8545,
)

@server
def foo(person: dict):
    print(f"[RCV] prepare {person=}", flush=True)

server.run()

File client.py:
from ucall.client import Client

params = {
    "firstname": "John",
    "lastname": "Doe",
}

client = Client(port=8545)

res = client.foo(person=params)
print(f"[CLIENT] client.foo returned {res.data=}", flush=True)

Expected behavior
Should serialize/deserialize the dict from/to JSON.
UCall version
0.5.4
Operating System
Ubuntu 20.04
Hardware architecture
x86
Which interface are you using?
Official Python bindings
Which implementation are you using?
POSIX
Contact Details
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Yes, such arguments are not supported in v0, but will be in v1.


Convert CSS to SCSS

Primary Task:

Convert all css into CSS

Things to keep in mind:

For all the stylesheets, make sure that the colors are defined in variables for light mode and dark mode separately

The name of the variables are to be altered into something more understandable for example bg-color can be made into pg_background

For the colors which are the same for dark mode and light mode, assign them the same value accordingly.

Use mixins for small components like buttons

Split this into 5-7 PRs for each of the stylesheets

Can I work on this issue?

@alceil I have updated the issue requirements. Do have a look

Sure

Any progress @alceil ?

Ya its a work in progress will complete it soon

Suree do share regular updates with progress  i know this is a long process that's why

Sure😇


SELECTION-SCREEN BEGIN OF BLOCK without corresponding end

SELECTION-SCREEN BEGIN OF BLOCK without corresponding end should give error

or if the nesting is bad,

begin of b1
begin of b2
end of b1
end of b2

This could cover more similar constructs like TYPES BEGIN/END OF (ENUM)

there is https://github.com/abaplint/abaplint/blob/master/src/rules/syntax/begin_end_names.ts which is similar


Make normalization optional

Normalization how it is implemented now normalizes :

the single end/merged paired-end reads, but takes the unnormed paired end reads into account.
the paired end reads but takes the unnormed single end reads into account.

To me this seems like two biased normalizations.
Megahit shout be able to handle very different abundant metagenomes. Doesn't help for the assembly?Spades has a internal normalization function, so we could use this one instead of bbnorm.

I tested metagenomes and isolate DNA, with and without normalization. Without normalization always assembled more numerous, shorter contigs.


Conditionally apply "selecting" flag to control which rows are highlighted on mouseover

A) I want to use the select flag conditionally: http://js-grid.com/docs/#selecting-default-true
When the row/field data meets a certain condition, the row should be selectable - otherwise, it's read only.
B)
I have removed edit/delete buttons from control on certain condition, and I control action from rowClick based on a condition, but I am looking to add conditionally apply the "selecting" flag to control the highlight on mouseover.
$("#test").jsGrid({
        width: "75%",
        height: "800px",

        inserting: true,
        editing: true,
        sorting: true,
        paging: true,
		confirmDeleting: true,
		deleteConfirm: "Confirmation?",

        data: testData,
        rowClick: function(args) {
        	if (args.item.user === username) {
                // do something
        	}
        },
        fields: [
		    { name: "ID", type: "number", width: 10 },
            { name: "User", type: "text", width: 50 },
            { type: "control",
                itemTemplate: function(value, item) {
                var out = $([]);

                if(item["User"] === USER.name) {
                    out = out.add(this._createEditButton(item));
                    out = out.add(this._createDeleteButton(item));
                }
                return out;
                }
            }
        ]
});

I think the easiest would be to redefine css for the row for your specific css class. This class should be attached in rowClass method (http://js-grid.com/docs/#rowclass) with your specific condition.


"Number of jobs to include:" not working properly with Recent Start and Recent End

Using Build Monitor version 1.12+build.201809061734.
When I'm trying "Most Recent Job Filters" I found that it doesn't work as I expect.
Same behavior both with Recent end and Recent Start.
When "Number of jobs to include:" is less than 7 no jobs are displayed. With 7 one single job is seen. With 11 are 5 jobs seen and so on...
I'm using "Recurse in subfolders", and include all jobs with regex ".*".
Some jobs in root, but a lot in subfolders.

I have problems with this filter too (Build Monitor version 1.12+build.201809061734). In my case 2 jobs are missing. This is corresponds to my number of workers, I don't know if this could be related...
@richardol by any chance, how many workers do you have ? 6 ?

I don't know what you mean with number of workers?
For me the behavior is just as I stated initially.
The real number of displayed jobs are six less than the specified "Number of jobs to include:".
I want to show 5 jobs (max), then I have to specify Number of jobs to include: = 11.

I meant the number of build executors. I use Jenkins in french sorry for the mistranslation...

I found what caused the difference between the number of jobs configured and the number of jobs really displayed : it's the number of job "folders" included. You can see these "folders" when configuring a classic view with the same filters as your Build Monitor View.
The workaround was to add a filter to exclude the "folders" (Multibranch Pipelines in my case), and now everything works as expected ! See the first filter in the screenshot below :


Making night silent/instant

I had the same issue as Issue #2 so I tweaked night mode to be both silent and no entry delay.  This may be a personal preference, but sending this just in case others think it's useful.

This is great!


[Task]: MySQL plugin: Add connection pool

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks

Introduce connection pool mechanism to MySQL plugin.

@sumitsum when is this going live?

@Nikhil-Nandagopal apologies, my system had some issues with cypress, hence could not resolve the CI failures earlier. I will be taking help on this and try to push this change into release by early next week.


Allow RUNNER=podman env var to override default of docker

Auto-preference for podman was added in a95e23cb6dc658a5ddb39cabe8d9695c5ea5ac9d but cancelled in a4cedc88398284ef9ef7a9078d3d60af0bb3aec6.
I don't know details and whether podman is can be recommended as default (or even fallback for users that don't have docker)...  All I can say it works fine for me (Fedora 30).  :man_shrugging:
=> This doesn't check which you have, keeps current default, only allows manual override.
@iphands what do you think?

 I think before I had it looking for podman in PATH and auto selecting it.


Hammerhead IP and Hash key added to the Test App URL - same as Issue #2832

Are you requesting a feature or reporting a bug?
Feature
What is your Test Scenario?
Running testcafe fixture for an internal app from Browser-stack /Sauce labs.
What is the Current behavior?

Hammer Head IP & hash key gets added to the test application URL .
This application being internal app and blocked for outside IP, the test URL gets proxied thru Hammer head IP which is Dynamic and hence application throws 401.

To get around this problem the external IP should be white listed but as hammer head IP are dynamic , external Proxy IP 's or range is hard to predict .
What is the Expected behavior?
There should be a way to remove the hammer head proxy IP and Hash key to remove from application test URL's.
Or hammer head Ip small range should be defined so as to whitelist the subnet .
Also Curious to know where does Hammer head process (proxy server) runs  --> Host machine where the test are executed from or the remote machine running the test.
How would you reproduce the current behavior (if this is a bug)?
Not applicable.
Provide the test code and the tested page URL (if applicable)
Can't provide due to Security concern... It's a very simple integration nothing tricky.
Your website URL (or attach your complete example):
Your complete test code (or attach your test files)

TestCafe uses the operating system's hostname or the current machine's network IP address. Thus, this url is predictable.
If TestCafe runs with remote browsers you can also specify the --hostname option. Besides, you can set the --ports option.

Also Curious to know where does Hammer head process (proxy server) runs --> Host machine where the test are executed from or the remote machine running the test.

The hammerhead process runs on the machine where TestCafe is installed.
If you still have questions, feel free to ask them here.


Better typing

Description
Maps are used to store keys and values from JSON. It poses a problem when arrays are introduced in JSON. For instance, when there is a multiple author it will be a slice of strings, when just one - single string. For now, these maps values are defined to be of type any.

It's impossible currently to represent a dictionary type that can hold both one or many values; so either be of type map[string]string or map[string][]string.
For instance, we have a dictionary author.first_name whose value is a slice ([Yves, Sofya], so the type is map[string][]string. At the same time, a key-value pair for microscope model will look like instrument.microscope_model and have a single value TFS Titan Krios, so the exact type is map[string]string.
Both key value pairs are kept in one dictionary and they cannot be represented by one type.
-->  solution is to just opt for []string type ov map value, many of them having a length of 1.
Additionally, while unmarshalling the JSON recursively there is no other way to represent the data structure other than map[string]any. This remains of type any

as described in the first paragraph, I implemented slices of length 1 for single values.
Since JSON is not structured it's not feasible.


Conflicting bean

I'm getting conflict in Grails 3.2.9 and plugin 2.0.13.
Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' to required type 'org.quartz.Scheduler' for property 'scheduler'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' to required type 'org.quartz.Scheduler' for property 'scheduler': no matching editors or conversion strategy found

I can attach a patch that seems to be solving it however I'm not sure it is a correct solution.

quartz.patch.txt


Upgrade grafana dashboards

This PR introduces a couple of changes to help upgrade our grafana dashboards:

Add cilium agent and operator dashboards for v1.12
Remove docker monitoring dashboards, as they weren't useful
Remove raw json dashboard specs, as they weren't useful
Change up how we include dashboards in grafana

Previously each dashboard required its own configmap and volume mount into the grafana pod. Instead, this change uses a single configmap we can update with patches, allowing for more dashboards to be added without having to update the grafana pod spec with more mounts.
A new script is included to help add dashboards into the mono-configmap. For instance, if we wanted to add a dashboard for xyz service that had an ID on grafana of 1234:
cd kustomize/grafana/dashboards
../../../scripts/add_grafana_dashboard.sh -p xyz 1234
# add the patch into kustomization.yaml
cd ..
echo "- xyz.yaml" >> kustomization.yaml

Or in a live cluster, remove -p to have the dashboard applied into the mono-configmap live:
scripts/add_grafana_dashboard.sh xyz 1234

Chris is on PTO and this is a fairly simple PR. Going to self LGTM on this one.


Mount option example for convoy-nfs catalog results in error

Creating a new nfs-convoy in Rancher v1.0.1, I decided to try the "example" listed under Mount Options (eg 'nfsvers=4,proto=udp') That resulted in the following error in the convoy-nfs service's logs:
4/14/2016 4:27:08 PMWaiting for metadata
4/14/2016 4:27:08 PMtime="2016-04-14T23:27:08Z" level=info msg="Execing [/usr/bin/nsenter --mount=/proc/3290/ns/mnt -F -- /var/lib/docker/aufs/mnt/96f80fcc60f0168aa3e04d3b3536cba3874f37aa04b61f48e354bd3fe821234a/var/lib/rancher/convoy-agent/share-mnt --stage2 /var/lib/rancher/convoy/convoy-nfs-503bf9b5-499c-4ce7-b784-c1d242cb7bce -- /launch volume-agent-nfs-internal 3290]"
4/14/2016 4:27:08 PMRegistering convoy socket at /var/run/convoy-convoy-nfs.sock
4/14/2016 4:27:08 PMMounting at: /var/lib/rancher/convoy/convoy-nfs-503bf9b5-499c-4ce7-b784-c1d242cb7bce/mnt
4/14/2016 4:27:08 PMMounting nfs. Command: mount -t nfs -o 'nfsvers=4,proto=udp' <IP_ADDRESS>:/data01 /var/lib/rancher/convoy/convoy-nfs-503bf9b5-499c-4ce7-b784-c1d242cb7bce/mnt
4/14/2016 4:27:08 PMmount: unsupported option format: 'nfsvers=4,proto=udp'

Useful
Info

Versions
Rancher v1.0.1 Cattle: v0.159.7 UI: v1.0.5

Access
localauth admin

Route
service.containers

Is there a list of acceptable options? I found one forum post that said ConvoyNFS would not work with NSF4  they said the solution was to downgrade to NSF3 and use these options: rw,hard,intr,fsc,proto=tcp,nolock,nfsvers=3.

using the above client mounts, i still had problems with containers trying to chown / chmod on the nfs directories, solved by using this on the nfs server
*(rw,insecure,sync,no_subtree_check,no_root_squash)

Closing due to inactivity, please reopen if you think this is still relevant to current releases & important.


Remove hardwareFailureType

This was replaced with hardwareFailureDescription in #3103

Hm, I have a feeling we should really keep some type of classification of hw failures. Perhaps 'type' is not correct, but say... we'd like a metric for the various type of hw and spec failures. This could be very valuable when talking to openstack/siteops. My experience is that we have a lot of disk hw failures, and could bring this up with openstack.
So, an alternative could be to save the various metrics to db, and to have the controller export a metric.

hardwareFailureType in its former form is gone already anyway. Currently it's just mirroring hardwareFailureDescription, so I'll merge this PR and we'll have to add the type in some later PR.

This changed the API which we should try to avoid. At the very least we should try to keep it backwards compatible with old field names when we rename or introduce new ones.
It would be great if we could include a FYI to at least one module owner in the future, especially for API changes.

You mean because there may be non-git code that depends on the API, or for discussions about API changes?

@hakonhall In my opinion we should never change the API, but yes, mainly because there might be usages of the API that we forget to change or that are not revealed by usage search.

We should never break the API (i.e files can be added but not removed).
If we really need to break it we can create a new version and keep the old one around for a while. That is what the version in the url path is for.


Fixes RouterInterface name and link in readme

@samsonasik Thanks but I already fixed that in the README, I'm updating it.

ok :+1:


iOS multithreading issues

Hi,
I discovered some multithreading bugs on iOS. The error can't be reproduced on UWP, Android, MacOS as far as I can see, sqlite on iOS is compiled threadsafe and I am using it FULL_MUTEX. So it should give no errors but still it does when using it with ReadOnly and ReadWrite connections.
I am not sure if this is a SQLite bug or a bug in the library. Setting all connections to ReadWrite seems to be a workaround.
I made a pull request with the unittest to reproduce it on iOS:
https://github.com/praeclarum/sqlite-net/pull/537
I have seen another report on internet that seems very similar (but this is async and i am using the sync version):
http://stackoverflow.com/questions/40153665/xamarin-ios-sqliteexception-corrupt
Regards,
Jeroen

I have seen this too under the guise of "IO Error".
https://github.com/praeclarum/sqlite-net/blob/master/tests/ConcurrencyTest.cs#L51-L59
I'm sorry but I haven't been able to fix it.

I'm hoping #505 will fix this for Async code


Change SIMD encoding

see https://github.com/WebAssembly/simd/pull/209

:tada: This issue has been resolved in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Elastalert not working for Percentage_match alerts

Hi,
I have configured Elastalert 1.2.4  for Kibana & Elasticsearch version 7+. I am using Python 3.6 . The frequency Rules are working fine and mails are getting triggered. But for the percentage_match alert, I am getting 0hits, 0 matches & 0 mail sent error, even when the query within the rule gives result when queried in Kibana for the same timeframe. Both the Frequency rules & percentage_match yaml files are placed in the same path . I tried executing for 0ms, 10ms and 100ms as well , but no luck. Below is the command used to trigger Elastalert -  Kindly help
python3.6 -m elastalert.elastalert --verbose --config config.yaml &
Percentage_match yaml file -
import: /opt/elastalert/teamCRulesPO/all.yaml.common
name: CPS.queryCustomerProduct API Response Time Alert
description: Percentage Based Response Time Alert
alert_text: |
High Reponse Time on {0:.2f}% of Calls : CPS.queryCustomerProduct > 10ms
alert_text_args:

percentage
percentage_format_string: "%.2f"
type: percentage_match
buffer_time:
minutes: 15
doc_type: concise
query_key: Environment.keyword
min_percentage: 0
max_percentage: 5
filter:
query:
query_string:
query: "concise.Service:"customer-product-service" AND concise.SourceKey:"ccl.esp.v4.frontend" AND concise.ServiceOperationName:queryCustomerProduct"

query filter.
match_bucket_filter:

range:
concise.Duration:
gt: 10
use_kibana5_dashboard: url

Hi,
Can anyone suggest what can be done to resolve this issue?


About wikitoday

kr
구글 트렌드에는 나라별로 사용자들이 구글에 가장 많이 검색하는 키워드와 관련 기사들을 볼 수 있어.
나는 이를 이용하여 ai news서비스 "wikitoday"를 만들려고해.
wikitoday의 기본 컨셉은 다음과 같아.

나라별 05:00AM을 기준으로 cronjob이 wikitoday api서버를 트리거하여 아래 절차를 실행하도록 한다.
구글 트렌드로부터 seo에 사용할 인기 검색어들과 관련 기사url들을 추출한다.
키워드별로 기사 url들을 토대로 크롤링 한다.
openai라이브러리를 통해 chatgpt에게 기사 형식을 prompt template으로 주어, 각 나라별 인기 기사들을 재-생성한다.
재생성된 기사들을 google translate api를 사용하여 최소 5개국의 언어로 번역한다.
번역된 데이터들을 토대로 markdown을 생성한다.
github action으로 ci/cd 처리가 되어있는 "wikitoday" frontend repository에 markdown들을 push한다.
push된 markdown은 cloudflare를 통해 자동으로 배포된다.

wikitoday의 목표는 다음과 같아.

모든 시스템을 자동화 할 것.
chat gpt를 통해 최대한 사람이 글을 작성한 것 처럼 보일 것.
원본 기사에 대한 언급 또는 기자에 대한 언급이 없을 것.
seo를 고려하여 많은 사람들이 클릭을 하고 싶도록 만들 것.
바쁜 사람들을 위해 최대한 효율적으로 정보를 전달할 것.
많은 트래픽을 통해 효과적인 광고수익을 얻을 것.

en
Google Trends allows us to see the keywords that users in each country search for the most on Google, as well as related articles. I plan to use this to create an AI news service called "Wikitoday."

The basic concept of Wikitoday is as follows:

A cronjob triggers the Wikitoday API server at 05:00 AM local time in each country to execute the following procedure.
Extract popular search terms for SEO and Related article urls from Google Trends.
Crawl related articles for each search term.
Use the OpenAI library to re-generate the article with a article oriented prompt template and origin articles for each country.
Translate the regenerated articles into at least five languages using the Google Translate API or DeepL api.
Generate markdown files based on the translated data.
Push the markdowns to the "Wikitoday" frontend repository, which is set up with CI/CD through GitHub Actions.
The pushed markdown is automatically deployed through Cloudflare.

The goals of Wikitoday are as follows:

Automate all systems.
Make it look as much as possible like a person wrote the text through Chat GPT.
There will be no mention of the original article or the journalist.
Consider SEO to make many people want to click.
Deliver information as efficiently as possible for busy people.
Get effective advertising revenue through a lot of traffic.

 Your task is to write news articles based on the provided data. You should adhere to the principles of journalism, providing accurate, concise, and unbiased information.
User
Here are the rules for the JSON data fields you will be using:\n\n- Title: The title should be a catchy phrase within 12 characters.\n- Description: The description should be a brief summary of the article.\n- Category: The category should reflect the main theme of the article.\n- Date: The date should be the current date.\n- Author: The author should be a common English name.\n- Language: The language should be 'en'.\n- Summary: The summary should provide a detailed overview of the article.\n- QnA: The QnA section should contain at least 5 questions and answers related to the article.\n- Article Title: The article title should be a concise statement of the main topic.\n- Article Content: The article content should provide detailed information on the topic.
Assistant
Now, let's write an article. Here is the data:\n\n- Title: 'AI Revolution'\n- Description: 'A deep dive into the impact of AI on society.'\n- Category: 'Technology'\n- Date: '2023-07-29'\n- Author: 'John Doe'\n- Language: 'en'\n- Summary: 'This article explores the profound impact of AI on various aspects of society, including economy, healthcare, and education.'\n- QnA: [{'Q': 'What is the impact of AI on economy?', 'A': 'AI is transforming the economy by automating tasks, improving efficiency, and creating new jobs.'}, {'Q': 'How is AI changing healthcare?', 'A': 'AI is revolutionizing healthcare by enabling early diagnosis, personalized treatment, and improved patient care.'}, {'Q': 'How is AI affecting education?', 'A': 'AI is reshaping education by facilitating personalized learning, improving accessibility, and enhancing student engagement.'}]\n- Article Title: 'The Profound Impact of AI on Society'\n- Article Content: 'Artificial Intelligence (AI) is no longer a concept of the future. It is here and making a significant impact on how we live and work. The influence of AI is seen in every sector, including economy, healthcare, and education. In the economy, AI is automating tasks, improving efficiency, and creating new jobs. In healthcare, it is enabling early diagnosis, personalized treatment, and improved patient care. In education, AI is facilitating personalized learning, improving accessibility, and enhancing student engagement. The future of AI is promising and holds immense potential for further advancements.'


update toml++ to 3.1.0

also:

update benchmark script to handle parse failures
update benchmark data to better stress-test parsers
added PEP 680 awareness to the benchmark script (tomllib)
made the toml++ submodule shallow by default

@pwwang Note that this PR replaces the benchmark data.toml with a much larger and more complex one, which also has some TOML v1.0.0 features. You might need to update toml-bench to take this into account - sdispater/tomlkit takes an eternity go get through it, and uiri/toml fails completely.

Actually, don't merge this yet. Just realized there might be a way I can make the encoding/decoding bits faster.

Well, no huge perf gains. Oh well. On the plus side, I was able to simplify some things using v3.1.0's for_each() ^_^

Hi, thanks! feel free to merge it!


Auth library prototype

Explore the possibility of:

build a library to help developers to build apps following the auth guidelines;

provide default implementations (for wear but also the necessary parts for the mobile side) for the auth flows listed in this guide.

Output for 1:

SignInPromptScreen
GoogleSignInScreen
AuthDeviceGrantScreen
AuthPKCEScreen
SignedInConfirmationDialog
SignInPlaceholderScreen

Output for 2:

GoogleSignInScreen
OAuth Device Grant
OAuth PKCE

Both lists are not exhaustive. Mobile side code and some other auth flows haven't been explored yet and will be done in Q1 2023 as part of https://github.com/google/horologist/issues/786.


Integration with the LiteLLM Server

I think it's a good idea to have the LiteLLM server integration. Just a suggestion or a request, can the AiConfig be updated for handling the hosted litellm calls?
https://docs.litellm.ai/docs/proxy/quick_start

This should be doable. It should be as simple as adding a new litellm modelparser extension that forks from the OpenAIModelParser.
Out of curiosity, what do you use litellm for?

@saqadri Litellm has integrations with 100+ LLM providers, which includes the majority of them in the market. Basically, if you integrate with Litellm, which means you are going to accomplish the integrations with any LLM providers out there in the market.
I have noticed some of the ongoing discussion regarding the Anyscale provider integration etc. Basically, if you target Litellm, literally you are going to target the majority of the LLM providers out there.
Please check the supported providers to know more - https://docs.litellm.ai/docs/providers


Replacer tool is able to replace invisiblock ...

Scoop reports: Replacer tool is able to replace invisiblock barriers.

Find out how Node Replacer blacklist works and put invisiblocks in it. https://github.com/Sokomine/replacer/commit/a535be2382b21706501d872396a92232a55fe53c