text:
Unable to mount volumes var-lib-rancher, etc-ssl, ...

I have just installed the kim client on my linux NUC and ran ./kim builder install --selector k3s.io/hostname=<rpi-hostname> against my k3s RPI cluster.
The builder pod is getting stuck in the ContainerCreating state as you can see from kubectl get pods,services -n kube-image
NAME                READY   STATUS              RESTARTS   AGE
pod/builder-7vl46   0/2     ContainerCreating   0          5m11s
NAME              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
service/builder   NodePort   10.43.233.104   <none>        1234:32016/TCP,1233:30724/TCP   5m11s

The details from running kubectl describe pods -n kube-image are as follows:
...snip...
Events:
  Type     Reason       Age                   From               Message
  ----     ------       ----                  ----               -------
  Normal   Scheduled    7m9s                  default-scheduler  Successfully assigned kube-image/builder-7vl46 to rpi-107
  Warning  FailedMount  5m7s                  kubelet            Unable to attach or mount volumes: unmounted volumes=[var-lib-buildkit], unattached volumes=[var-lib-rancher etc-ssl tls-ca tls-server tmp run etc-pki cgroup var-lib-buildkit default-token-fnnlk]: timed out waiting for the condition
  Warning  FailedMount  2m50s                 kubelet            Unable to attach or mount volumes: unmounted volumes=[var-lib-buildkit], unattached volumes=[var-lib-rancher etc-pki run var-lib-buildkit tls-server default-token-fnnlk tmp etc-ssl cgroup tls-ca]: timed out waiting for the condition
  Warning  FailedMount  58s (x11 over 7m10s)  kubelet            MountVolume.SetUp failed for volume "var-lib-buildkit" : hostPath type check failed: /var/lib/buildkit is not a directory
  Warning  FailedMount  35s                   kubelet            Unable to attach or mount volumes: unmounted volumes=[var-lib-buildkit], unattached volumes=[run etc-pki cgroup var-lib-buildkit var-lib-rancher default-token-fnnlk tmp tls-server etc-ssl tls-ca]: timed out waiting for the condition

@dweomer Mentioned that this is likely "an oversight in my daemonset spec"

From the slack convo: I am realizing that I didnt build/push arm64 images (or a manifested image at all).

The v0.1.0-alpha.9 release may address the underlying issue(s) here.

@toriaezunama from our slack convo I believe that the multi-arch release did finally address this. Please re-open if such is not the case.

It did thanks

authors: dweomer toriaezunama

repo: rancher/kim


text:
engine: replica need shutdown hook to handle signal gracefully

Now kill process inside replica won't be caught in the log.

Added additional message for replica shut down in https://github.com/rancher/longhorn-engine/pull/342

source: gharchive/issue

repo: rancher/longhorn

license_type: permissive

license_source: bigquery


text:
Session attributes

Part of OEP https://github.com/rancher/opni/blob/main/enhancements/gateway/20230130-distinguishing-central-agent.md

This PR should be squashed when merging

source: gharchive/pull-request

repo: rancher/opni

license_source: github-api


text:
Command ros selinux returns error

RancherOS Version: (ros os version)
v1.4.0
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
[rancher@rancher-server ~]$ sudo ros --help
NAME:
   ros - Control and configure RancherOS
built: '2018-05-31T03:32:37Z'

USAGE:
   ros [global options] command [command options] [arguments...]

VERSION:
   v1.4.0

AUTHOR(S):
   Rancher Labs, Inc.

COMMANDS:
     config, c   configure settings
     console     manage which console container is used
     engine      manage which Docker engine is used
     service, s
     os          operating system upgrade/downgrade
     tls         setup tls configuration
     install     install RancherOS to disk
     selinux
     help, h     Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

[rancher@rancher-server ~]$ sudo ros selinux
Unable to find image 'rancher/os-selinuxtools:v1.4.0' locally
system-docker: Error response from daemon: manifest for rancher/os-selinuxtools:v1.4.0 not found.
See 'system-docker run --help'.

We also have this problem? Looking for selinux documentation to be able to switch to rancheros...

@jonaz The current plan is that we will support it in milestone v1.6.
However, I will try to support it in advance. We have done some work before, but some of them may have been invalid and need to be reorganized.

Temporarily hide the SELinux command before we fix it.

authors: janeczku jonaz niusmallnan

repo: rancher/os


text:
rancherOS support for storage drivers/firmware

Hi,
We are evaluating RancherOS for our container strategy but its unclear RancherOS support for storage options like NFS,LVM and particularly drivers/firmware for SSD on bare-metal installs. Can this be documented?
-thanks

Storage is on the work queue and is going to receive attention in the coming weeks.
RancherOS v0.3.1 uses linux kernel v3.19 from ubuntu-15.04. Theoretically, it should have the same drivers ubuntu has. And yeah, this definitely should be documented, so this is on the list too.

In v0.4 we support the ability to swap in custom kernels and additionally NFS, LVM is supported.  Does custom firmware require a different kernel, or just a different firmware file.  Without a custom kernel you can still edit the /lib/firmware/$(uname -r) folder.

authors: abhishekubale ibuildthecloud imikushin


text:
Helm chart parsing values not correctly

Rancher versions:
rancher/server or rancher/rancher:
rancher/agent or rancher/rancher-agent:
Infrastructure Stack versions:
healthcheck:
ipsec:
network-services:
scheduler:
kubernetes (if applicable):
Docker version: (docker version,docker info preferred)
Docker version 17.12.1-ce, build 7390fc6
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
Hetzner
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
single node Rancher
Steps to Reproduce:
go to templates. Deploy ingress-nginx. Try to add a controller.nodeSelector
Result should be "role=edge"
My approaches:

"role"="edge"
"role":"edge"
role=edge
{"role"="edge"}
["role"="edge"]
["role":"edge"]

Results:
ERROR:
Kubectl apply failed. Error: Error from server (Invalid):
error when applying patch: {"spec":{"clusterIP":""}} to: &{0xc4214c43c0 0xc420439570 nginx-ingress-ftssa nginx-ingress-ftssa-controller /tmp/app-template929640075 0xc421214cd8 0xc421214d40 843963 false} for: "/tmp/app-template929640075":
Service "nginx-ingress-ftssa-controller" is invalid: spec.clusterIP: Invalid value: "": field is immutable Error from server (Invalid):
error when applying patch: {"spec":{"clusterIP":""}} to: &{0xc4214c4600 0xc420172f50 nginx-ingress-ftssa nginx-ingress-ftssa-default-backend /tmp/app-template929640075 0xc421214df0 0xc421214e48 843966 false} for: "/tmp/app-template929640075": Service "nginx-ingress-ftssa-default-backend" is invalid: spec.clusterIP: Invalid value: "":
field is immutable error validating "/tmp/app-template929640075":
error validating data:
ValidationError(DaemonSet.spec.template.spec.nodeSelector): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false : exit status 1

ValidationError(DaemonSet.spec.template.spec.nodeSelector): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false : exit status 1

controller.nodeSelector.role=edge

Master.NodeSelector.jenkins.io/env=test, when labes is jenkins.io/env=test
don't use Master.NodeSelector."jenkins.io/env"=test
Rancher does not use helm, only helm syntax

Thank you very much, that worked!

authors: exocode seanly

repo: rancher/rancher


text:
Importing cluster in v2.0.7 is failing with unknown user anonymous error

Rancher versions:
rancher/server or rancher/rancher: 2.0.7
rancher/agent or rancher/rancher-agent:
Infrastructure Stack versions:
healthcheck:
ipsec:
network-services:
scheduler:
kubernetes (if applicable): v1.10.2-gke.3
Docker version: (docker version,docker info preferred)
Docker version 18.06.0-ce, build 0ffa825
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
uname -r: 4.4.0-122-generic Ubuntu 16.04
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
Bare-metal
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Single node rancher
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Kubernetes
Steps to Reproduce:
Ran sudo docker run -d --privileged --restart=unless-stopped -p 8080:80 -p 443:443 rancher/rancher:latest on the node and then set the Rancher Server URL to the server url here in kubectl config view
- cluster:
    certificate-authority-data: REDACTED
    server: https://XXXXXXXX
  name: XXXXX

Results:
I went to the import cluster button in rancher here: https://127.0.0.1:8081/g/clusters/add?provider=import
and it told me to run this kubectl command to import my cluster:
`kubectl apply -f https://XXXXXXXX/v3/import/BIGLONGSTRING.yaml
The apply command wasn't working so I went to the yaml url and found this:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/v3/import/BIGLONGSTRING.yaml\": Unknown user \"system:anonymous\"",
"reason": "Forbidden",
"details": {},
"code": 403
}

How is the cluster created that you are trying to import?

It is one from GKE

I had the correct permissions to access it because I was able to create a new cluster in GKE using rancher, just not import the existing cluster

@s1113950 If you are still facing issues with a more modern version, please open a new issue.

authors: deniseschannon s1113950 superseb


text:
cluster unavailable

What kind of request is this (question/bug/enhancement/feature request):
Bug

Steps to reproduce (least amount of steps as possible):
cluster unavailable no reason,  when it show unavailable, after a while it will be ok, and then a while it will be unavailable again, repeat this.
Result:

Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):

v 2.2.2

Installation option (single install/HA):

HA(master3 /etcd 3)

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):Custom
Machine type (cloud/VM/metal) and specifications (CPU/memory):

Version: v1.13.5
CPU: 952 Cores
Memory: 3.1 TiB

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:37:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:19:22Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version):

Client:
 Version:      17.03.3-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   e19b718
 Built:        Thu Aug 30 01:06:10 2018
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.3-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   e19b718
 Built:        Thu Aug 30 01:06:10 2018
 OS/Arch:      linux/amd64
 Experimental: false

related https://github.com/rancher/rancher/issues/20102

Is there any useful logs?

Please provide logs from the moment it happens so we can investigate this, you can also use https://rancher.com/docs/rancher/v2.x/en/troubleshooting/ at the moment it is happening to see if you can relate it to something. Also more detailed information helps in this case like specifications per node with what role and possibly anything related to deployments or anything else in cluster happening at the time. We can reopen to investigate.

authors: FreeDemon loganhz superseb superxor


text:
Canal on k8s 1.16 logs excessively on Info level

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):
Launch k8s 1.16 custom cluster with Canal
Result:
Excessive logs on info level
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): v2.3.1
Installation option (single install/HA): single

The bug is reproduced in a cluster with k8s 1.16.2 in Rancher:v2.3.1
There are excessive logs in the logs if the container calico-node
2019-10-21 21:34:21.845 [INFO][33] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
2019-10-21 21:34:21.845 [INFO][33] ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
2019-10-21 21:34:21.847 [INFO][33] ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.351613ms
2019-10-21 21:34:21.847 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=1.5475160000000001
2019-10-21 21:34:22.444 [INFO][33] int_dataplane.go 945: Applying dataplane updates
2019-10-21 21:34:22.444 [INFO][33] table.go 793: Invalidating dataplane cache ipVersion=0x4 reason="refresh timer" table="filter"
2019-10-21 21:34:22.446 [INFO][33] table.go 513: Loading current iptables state and checking it is correct. ipVersion=0x4 table="filter"
2019-10-21 21:34:22.449 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=4.679328
2019-10-21 21:34:32.082 [INFO][33] int_dataplane.go 945: Applying dataplane updates
2019-10-21 21:34:32.082 [INFO][33] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
2019-10-21 21:34:32.082 [INFO][33] ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
2019-10-21 21:34:32.083 [INFO][33] ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.32073ms
2019-10-21 21:34:32.083 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=1.489176
2019-10-21 21:34:42.271 [INFO][33] int_dataplane.go 945: Applying dataplane updates
2019-10-21 21:34:42.271 [INFO][33] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
2019-10-21 21:34:42.271 [INFO][33] ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
2019-10-21 21:34:42.273 [INFO][33] ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.593686ms
2019-10-21 21:34:42.273 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=1.9337309999999999
2019-10-21 21:34:52.452 [INFO][33] int_dataplane.go 945: Applying dataplane updates
2019-10-21 21:34:52.452 [INFO][33] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
2019-10-21 21:34:52.453 [INFO][33] ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
2019-10-21 21:34:52.454 [INFO][33] ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.608932ms
2019-10-21 21:34:52.454 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=1.823835
2019-10-21 21:35:02.824 [INFO][33] int_dataplane.go 945: Applying dataplane updates
2019-10-21 21:35:02.824 [INFO][33] ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
2019-10-21 21:35:02.824 [INFO][33] ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
2019-10-21 21:35:02.825 [INFO][33] ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.290757ms
2019-10-21 21:35:02.825 [INFO][33] int_dataplane.go 959: Finished applying updates to dataplane. msecToApply=1.478046

The bug fix is validated in Rancher:v2.3-head 8d57a1cfb with the metadata from dev branch
The above-mentioned info[33] lines do not show in the logs anymore

authors: jiaqiluo superseb


text:
[forwardport] use master branch of metadata only for release server versions

https://github.com/rancher/rancher/pull/23606

The original issue https://github.com/rancher/rancher/issues/23485

wait for the coming preview release to validate the fix, so we don't have to build customized images

authors: jiaqiluo kinarashah


text:
CIS Scan - UI/UX for the Scheduling

CIS Scheduling: rancher/rancher#25326

Need to be able to schedule the CIS scan when creating a cluster
There should be away to schedule the CIS scan from the tools -> CIS scan also (which is just a button to the cluster edit page)
User will be able to select which CIS version to run
User can select which "Profile" to run
User can enter a timing for the run
User can enter a value for retention period of the report

Here's the look and feel:

@leodotcloud here are the fields and values I'm currently using in case you want to use them for the backend to reduce integration effort. I'm not sure if cisScan should be under services so let me know.

rancherKubernetesEngineConfig.services.cisScan.scheduled.enabled === true | false
rancherKubernetesEngineConfig.services.cisScan.scheduled.profile === 'rke-cis-1.4-permissive' | 'rke-cis-1.4-hardened'
rancherKubernetesEngineConfig.services.cisScan.scheduled.intervalHours === number
rancherKubernetesEngineConfig.services.cisScan.scheduled.retention === number

I updated the interval to be a cron.

Verified on master-head
User is able to schedule a scan for the cluster

Other issues related to schedule scan are being tracked separately
Closing this issue.

authors: codyrancher maggieliu sowmyav27


text:
Failed to communicate with API server: Unauthorized

What kind of request is this (question/bug/enhancement/feature request):
question/bug
Steps to reproduce (least amount of steps as possible):
Create new cluster, then import to rancher via Terraform using rancher.tf.
Result:
It starts off as working. No API server: Unauthorized errors. After some time though the Rancher flags the cluster red with the error message above.
Logs from cattle-cluster-agent in imported cluster:
E0519 07:46:42.369305       1 reflector.go:153] github.com/rancher/steve/pkg/clustercache/controller.go:187: Failed to list *summary.SummarizedObject: Unauthorized
E0519 07:46:42.435015       1 reflector.go:153] github.com/rancher/norman/controller/generic_controller.go:229: Failed to list *v1.ServiceMonitor: Unauthorized
E0519 07:46:42.472179       1 reflector.go:153] k8s.io/client-go/informers/factory.go:135: Failed to list *v1.RoleBinding: Unauthorized
E0519 07:46:42.508071       1 reflector.go:153] k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.CustomResourceDefinition: Unauthorized
E0519 07:46:42.509140       1 reflector.go:153] github.com/rancher/norman/controller/generic_controller.go:229: Failed to list *v1.Endpoints: Unauthorized
E0519 07:46:42.512659       1 reflector.go:153] github.com/rancher/norman/controller/generic_controller.go:229: Failed to list *v1.Deployment: Unauthorized
E0519 07:46:42.567463       1 reflector.go:153] k8s.io/client-go/informers/factory.go:135: Failed to list *v1.Secret: Unauthorized
I0519 07:46:42.569324       1 trace.go:116] Trace[1918317034]: "Reflector ListAndWatch" name:github.com/rancher/steve/pkg/clustercache/controller.go:187 (started: 2020-05-19 07:46:21.569675477 +0000 UTC m=+52167.605032329) (total time: 20.999626525s):
Trace[1918317034]: [20.999626525s] [20.999626525s] END

Other details that may be helpful:
What I fail to understand is why the client-certificate is overwriting the serviceaccount token, since the ServiceAccount has been granted an 'all access' through the ClusterRole and ClusterRolebinding.
Environment information

Rancher version: 2.4.3
Installation option: helm install rancher rancher-stable/rancher --version 2.4.3
Helm values: values.yaml

I think I 'fixed' it.
Two things:

I disabled the overwrite of the serviceaccount token by removing the volume mount from the deployment.
I set the deployment to automount the serviceaccount token.


text:
日志收集

Describe your issue here
问下 rancher的日志收集 错误日志怎么聚合到一行输出

Useful
Info

Versions
Rancher v2.4.3 UI: v2.4.22

Route
undefined

Close in favor of https://github.com/rancher/rancher/issues/21900

authors: loganhz zhourongfu


text:
EKS don't show nodes groups

Hello, I have a question with Ranher and EKS.
Actually, I have create 2 clusters on EKS using Rancher 2.4.5. My clusters are on kubernetes 1.15. Rancher show correctly nodes and all works perfectly.
But, if I go to EKS part, I saw the "node groupes" part of my clusters are empty. This is normal ?
How does it work when I want to update the version of kubernetes in Rancher cluster (created with kops) and my clusters (created by Rancher on EKS) ?
What kind of request is this (question/bug/enhancement/feature request):
Question, maybe a bug
Steps to reproduce (least amount of steps as possible):
Create EKS cluster directly from Rancher in 2.4.5
Result:

The cluster is correctly created, I show and manage it directly in rancher.
The EKS cluster is created in AWS
Launch Configuration and Autoscaling Group are correctly created
The nodes groups part in EKS cluster is empty

Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):

Installation option (single install/HA): HA using this guide : http://www.throrinstudio.com/dev/reseau/installer-rancher-2-x-via-kops-sur-aws/

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): Infrastructure Provider (EKS)

Machine type (cloud/VM/metal) and specifications (CPU/memory): t3a.xlarge on AWS

Kubernetes version (use kubectl version):

Rancher Manager cluster :

Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.9", GitCommit:"a17149e1a189050796ced469dbd78d380f2ed5ef", GitTreeState:"clean", BuildDate:"2020-04-16T11:36:15Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

EKS clusters :

Server Version: version.Info{Major:"1", Minor:"15+", GitVersion:"v1.15.11-eks-065dce", GitCommit:"065dcecfcd2a91bd68a17ee0b5e895088430bd05", GitTreeState:"clean", BuildDate:"2020-07-16T01:44:47Z", GoVersion:"go1.12.17", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version): 18.9.9

(paste the output here)

After research I find this AWS resources : https://aws.amazon.com/fr/premiumsupport/knowledge-center/eks-worker-nodes-cluster/
But all seems to be good. What is the problem ? It's normal here ? I just want to know. I have my clusters in production and I don't want any surprises in few monh when I have to upgrade kubernetes.


text:
When there are large number of containers , containers disappear from the host view when  UI receives event changes  for containers.

Rancher Version: Build from master
Rancher server setup with 3 hosts and there were many containers ( ~170 containers / host) on this set up.
Deploy a new service.
Launch the "Hosts" view.
We will see the newly created container show up in the host where it is running.
Wait for some time (30 secs - 1 minute)  ( There should be some events that get pushed to the UI relating to container state changes) .
Notice that the newly added container is not seen anymore in the host view.
Refresh the page.
The newly added container shows up on the host view.

Version - master 5-26
Verified fixed
Sangeetha, not sure if you wanted to try out your test before closing?  I made sure I had 150 containers on a single UI and then forced a change-event through the host.  All containers were still there.

authors: sangeethah tfiduccia


text:
No backend targets configured when Ingress is created and then targets services get created.

Rancher Version: Build from master
Steps to reproduce the problem:
Create Ingress.
Then Create service.
lb ip is not functional.
There is no targets programmed for the backend.
@if_test_k8s
def test_k8s_ingress_6(client, kube_hosts):

    # This method tests an ingress creation before the
    # creation of its associated service

    # Create namespace
    namespace = "testingress6"
    create_ns(namespace)

    port = "81"

    # Create Ingress
    ingress_file_name = "ingress_6.yml"
    ingress_name = "ingress6"

    lb_ip = create_ingress(ingress_file_name, ingress_name, namespace,
                           wait_for_ingress=True)
    # Create service1
    selector1 = "k8s-app=k8test6-service"
    service_name1 = "k8test6"
    rc_name1 = "k8testrc6"
    file_name1 = "service6_ingress.yml"
    create_k8_service(file_name1, namespace, service_name1, rc_name1,
                      selector1, scale=2, wait_for_service=True)

    wait_until_lb_ip_is_active(lb_ip[0], port)

    # Validate Ingress rules
    pod1_names = get_pod_names_for_selector(selector1, namespace, scale=2)

    print lb_ip[0]
    print pod1_names
    check_round_robin_access_lb_ip(pod1_names, lb_ip[0], port,
                                   path="/name.html")
    # Delete ingress
    delete_ingress(ingress_name, namespace)
    teardown_ns(namespace)

@sangeethah please test using updated alena1108/lb-controller:latest

Tested with latest K8s template from 1.2 branch of rancher-catalog which uses alena1108/lb-controller:latest.
This issue is not reproducible anymore.


text:
Scheduling a container to different host does not work when upgrading

Rancher Version:
1.2.0
Docker Version:
1.12.5
OS and where are the hosts located? (cloud, bare metal, etc):
rancherOS, baremetal
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
2 node cluster, single Rancher Server (internal DB)
Environment Type: (Cattle/Kubernetes/Swarm/Mesos)
Cattle Environment
Steps to Reproduce:
Start a service with one container. It gets placed on host x in an active state.
Now update/upgrade that service selecting Schedule -> Only one Host -> Select a different host.
Results:
The update process completes, but merely starts up another instance of the container on the same host.
Expected:
The update process to spawn the new container on the host I explicitly defined on the update page.

Note that If I launch a stack unticking "start services on creation" I can then "upgrade" the service, select the host I want, and then spawn it.

Version - 1.2.1 - Checked and this is still an issue in the current release.

@vincent99 - not sure what we can do here.  Do we want to remove the option to go directly to a specific host?

Hmm. I don't really mind how its handled, so long as there is something there letting me know that functionality won't actually work the way I'd expect it to (maybe just a little note or something). Maybe it is best you remove that option entirely or maybe gray/shadow it out so people understand its not a supported action when doing an upgrade.

1.2.1: I just tried editing a service, adding a host label rule to change which host a run-once service runs on -- no effect.

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.

authors: InAnimaTe deniseschannon joshbenner tfiduccia


text:
Unable to ping other services from sidekick containers

Steps to reproduce the problem:

Deploy the test1 stack
Wait until the status changes to active
Deploy the test2 stack
Wait until the status changes to active
Upgrade the service1 service.
Try to ping service1 from the sidekick container of service2

Result
Unable to ping "unknown host service1"
Expected
Should be able to ping from both primary and sidekick containers.
I've also check the file "/etc/rancher-dns/answers.json" in the network-services-metadata-dns container,
it does contain service1 information as follows,
"a":{"service1.rancher.internal.":{"answer":["10.42.83.18"]},"service1.test1.rancher.internal.":{"answer":["10.42.83.18"]}}
The test1 stack

Docker compose

version: '2'
services:
  service1:
    image: ubuntu:14.04
    stdin_open: true
    tty: true
    labels:
      io.rancher.container.pull_image: always

Rancher compose

version: '2'
services:
  service1:
    scale: 1
    start_on_create: true

The test2 stack

Docker compose
version: '2'
services:
  sidekick:
    image: ubuntu:14.04
    stdin_open: true
    external_links:
    - test1/service1:service1
    tty: true
    labels:
      io.rancher.container.pull_image: always
  service2:
    image: ubuntu:14.04
    stdin_open: true
    external_links:
    - test1/service1:service1
    tty: true
    labels:
      io.rancher.container.pull_image: always
      io.rancher.sidekicks: sidekick

Rancher compose
version: '2'
services:
  sidekick:
    scale: 1
    start_on_create: true
  service2:
    scale: 1
    start_on_create: true

--

Useful
Info

Versions
Rancher v1.3.4 Cattle: v0.175.10 UI: v1.3.6

Access
github admin

Orchestration
Cattle

Route
hosts.index

What command are you trying to ping service1? It should be ping service1.test1 as the service is in a different stack.
http://docs.rancher.com/rancher/v1.4/en/cattle/internal-dns-service/#pinging-services-in-a-different-stack

I use ping service1. This command should work because we have specified
    external_links:
    - test1/service1:service1

in the docker-compose.yml, and in fact, it does work before we upgrade the service 1.
After upgrading, I can still ping service1 in the primary container, but not the sidekick one.

authors: deniseschannon truongdo


text:
Finishing-Upgrade (STATE_CHANGED) with healthcheck enabled services

Rancher Versions:
Server: 1.3.3
healthcheck: 0.2.0
ipsec: 0.0.2
network-services: 0.0.8
scheduler: 0.3.0
Docker Version: 1.12.6, 1.13.0
OS and where are the hosts located? (cloud, bare metal, etc): Debian 8 / Arch, Both under qemu
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB) single node rancher with external db
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) cattle
Steps to Reproduce:

Make a new stack
Add a service

Enable healthcheck for the service, set some long count/time for healthy checks. like; 10 times with 6 seconds interval.

When up and running, start upgrading the service
Old container will be stopped, new container will start, will first be in "Initializing" state, until enough healthchecks are succeeded.
But upgrading UI will say "Upgraded" and allow "Finish Upgrade" when before container is considered healthy.
Press "Finish Upgrade"

Results:

Upgrading state will switch to "Finishing-Upgrade (STATE_CHANGED)", and will be stuck like that
Container state will be stuck at "Initializing" even though it becomes healthy
Only "Cancel Upgrade" option is available. (edited)

Expected Behavior:
Either;

Accept "Initializing" state as OK and finish upgrade cleanly.
Or wait until all new containers are determined "healthy"/running before saying "Upgraded" and allowing "Finish Upgrade" action.

I have tried this a couple times more, and reporting for accuracy; It did recover to "Active" state after waiting for a while (10~20 seconds).
Means; state is being broken with this steps only for a short time in my last tests.

I experienced this same issue upgrading a load balancer service this morning.

Component
Version

Rancher
v1.3.4

Cattle
v0.175.10

User Interface
v1.3.6

Rancher Compose
v0.12.1

Infrastructure Services:

Service
Version

healthcheck
v0.2.0

net
v0.8.1

metadata
v0.7.0

network-manager
v0.4.0

scheduler
v0.5.1

Using rancher CLI I did an upgrade from a docker compose file to bump rancher/lb-service-haproxy from 0.4.6 to 0.4.9. When I clicked "Confirm Upgrade," the state changed to Finishing-Upgrade STATE_CHANGED. Cancelling and attempting to roll-back caused rancher to continuously start new containers (using the 0.4.9 image, not the 0.4.6 that existed previously), and stop the "old" 0.4.9 containers continuously. Eventually, it stopped, and the entire service disappeared from the stack. I was then able to redeploy via the rancher CLI, and confirm the upgrade with no issue.
Trying again on a different environment, I saw the same behavior, but waiting about 30 seconds allowed it to continue successfully.
These load balancers have scheduler affinity set to global, and a small amount of custom HAProxy config to set a default backend for redirect. The internals of the container seemed fine, logging revealed that they were continually receiving SIGTERM so I don't think that it had anything to do with the load balancer service itself, appears rancher itself just lost state.

Closing as stale.

authors: furkanmustafa jzakrzeski superseb


text:
SSLError when adding a worker

Hi,
I've got the following error message when register a worker / adding a host
requests.exceptions.SSLError: hostname '<ip>' doesn't match either of '<hostname>', '<hostname>.<domain>', '<ip>'
I use a self signed certificate with an registered ca on the hosts for the rancher master server.
The req information of the SSL certificate looks like:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
<C, ST, L, O, OU, CN filled. CN is an hostname>
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = <hostname>
DNS.2 = <hostname>.<domain>
IP = <ip>

When I use the <hostname> for the rancher master server everything is okay. Chrome and Firefox also accept the certificates (https://<hostname>, https://<ip> both are valid)
Use the <ip> the curious error message appears in the docker log.
Is the urllib3 version outdated? The source-code of urllib looks fine.  Is this an error or bug in urllib3 / request or is the version in the rancher script outdated?
Hope you can understand the problem.
versions:
rancher/os: 1.0.2
rancher/server: 1.6.2
rancher/agent: I don't know. Run the command copied from the web interface when click on Add Host.

SSL certs secure domains, not IP's... That's why you'd get an SSL error if trying to connect to an IP vs the domain name the cert matches.

@aemneina: The SANs of a certificate allow ip addresses. It is also documented in a RFC https://tools.ietf.org/html/rfc5280#section-4.2.1.6
The latest check in the urllib looks fine and should work:
if key == 'DNS':
    if host_ip is None and _dnsname_match(value, hostname):
        return
        dnsnames.append(value)
elif key == 'IP Address':
    if host_ip is not None and _ipaddress_match(value, host_ip):
        return
    dnsnames.append(value)

An other interesting error message is the following when I remove the IP = <ip> field of the certificate. Urllib accepts the certificate (I don't know why, because the ip is not signed) but now the rancher/agent needs the IP in a SAN field.
time="2017-06-12T13:43:20Z" level=info msg="Launching agent"
time="2017-06-12T13:43:20Z" level=info msg="https://<public-ip>/v1<token>"
time="2017-06-12T13:43:20Z" level=info msg="Listening for events on https://<public-ip>/v1"
time="2017-06-12T13:43:20Z" level=info msg="launching hostapi"
time="2017-06-12T13:43:20Z" level=info msg="Serialize compute requests: false, driver: overlay"
time="2017-06-12T13:43:20Z" level=error msg="Get https://<public-ip>/v1: x509: cannot validate certificate for <public-ip> because it doesn't contain any IP SANs"
time="2017-06-12T13:43:20Z" level=fatal msg="Exiting. Error: Get https://<public-ip>/v2-beta: x509: cannot validate certificate for <public-ip> because it doesn't contain any IP SANs"

On the one hand urllib/request raises a SSLException when use the IP field on the other hand (without the ip field) rancher/agent raises an error when the IP field is not used....

Closing as duplicate of https://github.com/rancher/rancher/issues/8792, let me know if you don't agree

How I can disable the IP access to prevent client get SSL error, like strict-sni-checking in traefik?
https://doc.traefik.io/traefik/https/tls/#strict-sni-checking

authors: aemneina michaelact nesc58 superseb


text:
Disable use of "rancher-metadata" in microservices and use the IP (169.254.169.250) instead

There is no point in making the microservices generate weird DNS requests and making things complicated. Instead we should just use the IP address directly to make things simpler.
We can make this IP configurable from the arguments instead of hardcoding to provide flexibility to change.
The following requests are from rancher-kubernetes-agent container.
01:05:17.172496 IP (tos 0x0, ttl 63, id 19987, offset 0, flags [DF], proto UDP (17), length 90)
    10.42.123.78.52548 > 169.254.169.250.53: [bad udp cksum 0xd9c8 -> 0x9653!] 56295+ AAAA? rancher-metadata.kubernetes.rancher.internal. (62)
        0x0000:  02e8 8fe4 5307 0242 c590 b669 0800 4500  ....S..B...i..E.
        0x0010:  005a 4e13 4000 3f11 140f 0a2a 7b4e a9fe  .ZN.@.?....*{N..
        0x0020:  a9fa cd44 0035 0046 d9c8 dbe7 0100 0001  ...D.5.F........
        0x0030:  0000 0000 0000 1072 616e 6368 6572 2d6d  .......rancher-m
        0x0040:  6574 6164 6174 610a 6b75 6265 726e 6574  etadata.kubernet
        0x0050:  6573 0772 616e 6368 6572 0869 6e74 6572  es.rancher.inter
        0x0060:  6e61 6c00 001c 0001                      nal.....
01:05:17.172583 IP (tos 0x0, ttl 63, id 19988, offset 0, flags [DF], proto UDP (17), length 90)
    10.42.123.78.39041 > 169.254.169.250.53: [bad udp cksum 0xd9c8 -> 0x758f!] 12682+ A? rancher-metadata.kubernetes.rancher.internal. (62)
        0x0000:  02e8 8fe4 5307 0242 c590 b669 0800 4500  ....S..B...i..E.
        0x0010:  005a 4e14 4000 3f11 140e 0a2a 7b4e a9fe  .ZN.@.?....*{N..
        0x0020:  a9fa 9881 0035 0046 d9c8 318a 0100 0001  .....5.F..1.....
        0x0030:  0000 0000 0000 1072 616e 6368 6572 2d6d  .......rancher-m
        0x0040:  6574 6164 6174 610a 6b75 6265 726e 6574  etadata.kubernet
        0x0050:  6573 0772 616e 6368 6572 0869 6e74 6572  es.rancher.inter
        0x0060:  6e61 6c00 0001 0001                      nal.....
01:05:17.172951 IP (tos 0x0, ttl 64, id 52314, offset 0, flags [DF], proto UDP (17), length 126)
    169.254.169.250.53 > 10.42.123.78.39041: [bad udp cksum 0xd9ec -> 0xc598!] 12682 NXDomain*- q: A? rancher-metadata.kubernetes.rancher.internal. 0/1/0 ns: rancher.internal. [1s] SOA rancher.internal. rancher.internal. 39239 60 10 86400 1 (98)
        0x0000:  0242 c590 b669 02e8 8fe4 5307 0800 4500  .B...i....S...E.
        0x0010:  007e cc5a 4000 4011 94a3 a9fe a9fa 0a2a  .~.Z@.@........*
        0x0020:  7b4e 0035 9881 006a d9ec 318a 8503 0001  {N.5...j..1.....
        0x0030:  0000 0001 0000 1072 616e 6368 6572 2d6d  .......rancher-m
        0x0040:  6574 6164 6174 610a 6b75 6265 726e 6574  etadata.kubernet
        0x0050:  6573 0772 616e 6368 6572 0869 6e74 6572  es.rancher.inter
        0x0060:  6e61 6c00 0001 0001 c028 0006 0001 0000  nal......(......
        0x0070:  0001 0018 c028 c028 0000 9947 0000 003c  .....(.(...G...<
        0x0080:  0000 000a 0001 5180 0000 0001            ......Q.....

Fixed in ipsec: 0.1.4 with image: rancher/net:v0.11.8.
Fixed in vxlan: v0.2.1 with image: rancher/net:v0.11.8.

Tested with rancher-server version - v1.6.8-rc4 using the following infra images:
Ipsec router with rancher/net:v0.11.8
vxlan router with rancher/net:v0.11.8
rancher-kubernetes-agent with rancher/kubernetes-agent:v0.6.5
rancher-kubernetes-auth with rancher/kubernetes-auth:v0.0.8
K8s and cattle validation tests did not report any new issues.

authors: leodotcloud sangeethah


text:
Add Secrets OnChange handler to AKS controller

Add a handler to watch Azure cloud credential secrets and inject a
tenantID if one does not exist. The handler uses rancher/machine and the
subscription ID to look up the tenantID from Azure. This makes providing
the tenant ID optional.
Depends on https://github.com/rancher/machine/pull/138
https://github.com/rancher/rancher/issues/33097

merged rancher/machine change, updated go.mod


text:
Bump rancher-webhook version to v0.3.2-rc3

Issues: https://github.com/rancher/rancher/issues/39854 and https://github.com/rancher/rancher/issues/39923

Charts PR: https://github.com/rancher/charts/pull/2288

https://github.com/rancher/rancher/pull/39971


text:
[v2.9] Pin the aks,eks,gke-operator charts to an exact version

Issue: https://github.com/rancher/rancher/issues/42040
Issue: https://github.com/rancher/rancher/issues/42040
Problem
When there are newer versions of the charts for the hosted providers (EKS, AKS, GKE) Rancher will install the chart automatically. This has caused some issues with chart versions being installed that we didn't want. And its less deterministic which version of the chart is installed.
Solution
This adds a new CATTLE_AKS_OPERATOR_VERSION CATTLE_EKS_OPERATOR_VERSION CATTLE_GKE_OPERATOR_VERSION environment variables, similarly to what has been done for the rancher-webhook chart starting with #41302.
The corresponding exact version setting for Fleet is monitored, so that a change leads to Fleet being updated to that exact version.
Contrarily to behaviour implemented for rancher-webhook though, Fleet may still be updated manually via the Rancher UI without that update being undone via a periodical check: for Fleet, Rancher restores the chart to its pinned version only if that pinned version is more recent than the currently installed version.
Testing

Engineering Testing
Manual Testing

Automated Testing

Test types added/modified:

Unit
Integration (Go Framework)
Integration (v2prov Framework)
Validation (Go Framework)
Other - Explain: EXPLAIN
None
REMOVE NOT APPLICABLE BULLET POINTS ABOVE

If "None" - Reason: EXPLAIN THE REASON

If "None" - GH Issue/PR: LINK TO GH ISSUE/PR TO ADD TESTS

Summary: TODO
QA Testing Considerations

Regressions Considerations

TODO
Existing / newly added automated tests that provide evidence there are no regressions:

TODO

Is that modeled after https://github.com/rancher/rancher/pull/42304 ?

Is that modeled after #42304 ?

@kkaempf yes, it is

authors: kkaempf mjura


text:
v0.12.0 release for linux/amd64 or linux/arm64

Is there an estimate of when versions will be released for linux/amd64 or linux/arm64 ?
And why there is only s390X release for now?

After disabling Buildkit the build works. See PR #248

@hurzelpurzel What does it mean? where can I find an image for  Linux/amd64 or Linux/arm64 ?
should I build it by myself?

I just want to inform you, that I create a Pull Request for a helm chart and that triggered automatically a test build, that pass the build process in Drone after dieabling the "Buildkit" flag in the buildscripts. I'm not able to fix the release but I think the build failure is caused  by a change in the build container that results in an missing docker component. I just want to share that, but I think we all have to wait until the maintainers will fix the release. Sorry.

This can be closed v0.13.0 was released

authors: hurzelpurzel onedr0p tamirshkolnik

repo: rancher/system-upgrade-controller


text:
testing: unit tests leveraging ginkgo and gomega

Refactored most of the container creation stuff into the container package which is where all the coverage is for now.
Added upgrade.cattle.io/version label to Jobs and their Pods to complement existing upgrade.cattle.io/plan and upgrade.cattle.io/node (Versions used to be on plan.upgrade.cattle.io/<plan-name> but that is a hash/digest now)

This is in preparation for #11


text:
Shibboleth Auth Provider Types

Moves LDAP Configs to a new type and pulls it into Shibboleth.
rancher/rancher#24235

had to redo for build

repo: rancher/types


text:
Feature Request: Create a VM and install from ISO?

Create a "blank" VM and boot and install from a local ISO?

Ok, have no priority, but make a RancherOS install possible (#73).
Use custom qcow images instead of prebuilded images would be prefered (https://github.com/rancher/vm/pull/54).

repo: rancher/vm


text:
add About page 新增關於頁面

您好：
很喜欢你的设计，但是希望加上一个「关于」页面，所以我有试着做新增About me的内容：
不过这是我第一次pull，如果有哪里说明得不好，再麻烦您告知！
以下是我做的改变：

在原本的主页面上新增了About me，可以放入用户头像
用户头像需要放置 source/images/profile.jpg

点击用户头像可进入/about页面
这部分需要在source资料夹新建文件about
不过采用 hexo new page about 的方式新建文件，这样可以被 hexo索引到

在about页面的最下面还有home可以回到首页

@ginagigo123 你好，很抱歉之前没有回复。感觉家头像并不是一个特别通用的需求，而且在主题设计之初也没有头像的设计，很抱歉不能合并您的pr，不过你可以在你自己的blog中任意修改成符合你要求的样子。

repo: random-yang/paper

license: MIT


text:
Find bottlenecks in Augury

Backend

_traverseElements? forEach is a blocking and this._traverseElements is being called recursively.
Can I perform  _traverseElements async or off-load the computation to a web worker.

Frontend

component-tree.ts would using change detection and immutable data improve things?

@ericjim It's _traverseElements now

My preliminary findings.
The component tree (component-tree.ts) is comprised of a recursive component that eagerly evaluates all of its children (bt-node-item). We can account for major slowdowns whenever a large influx of nodes are added to our tree.
Furthermore, the default behaviour of the upside down arrow cursor (or disclosure arrow) is to reveal the immediate child. This behaviour trickles down the component tree, thereby showing the entirety of the tree.
My suggestion to alleviate loading issues, for lack of a better term, would be to “lazily render” the child nodes of any component until it is needed.
We can specify “Need” as:

Being the node focused by the user.
Being the next immediate node that the user will actuate on, but not that child’s child.

The downside to this behaviour, however, is the need to dig down the component tree to display all elements.

@ericjim One other thing, we have to think about is how would search behave in this aspect? We would have all the data and search can be performed on those. We open the hierarchy of the component being searched and close other??

@ericjim One other thing, we have to think about is how would search behave in this aspect? We would have all the data and search can be performed on those. We open the hierarchy of the component being searched and close other??

@ericjim One other thing, we have to think about is how would search behave in this aspect? We would have all the data and the search can be performed on it. Do we open the hierarchy of the component being searched and close other?

@sumitarora we discussed this with @ericjim this morning. Below are the three high level items that we are currently thinking of:

Don't "load" nested items unless opened. Will probably help apps that have deep component hierarchies
Only render the part of the tree that is currently visible, kind of like virtual scrolling
Optimize A2's rendering cycle by leveraging change detection better, or iterable differs?

I think that a combination of those 3 things with some improvements on the UX can greatly improve the situation.
For the search, especially since this is only done by component name, we can leverage a much simpler and potentially flatter version of the tree or something. But we should keep that feature in mind.
cc'ing @clbond @yuri @e-schultz for additional thoughts.

I have solutions to problems, but now I need to be able to measure things to make performance claims. I'll look into calculating metrics within the stress testing app. On that note, I should add a stress test that probes really tall/deep trees.

The performance problems have been resolved by the backend rewrite at https://github.com/rangle/augury/commit/dfa410b6545f24e3cef87af775b4e9651ffad13f

@clbond do you feel we can close this issue now?

Yes. This has been addressed. Even the app that Igor uses to test performance that would hang the application for multiple minutes runs quickly now.

authors: clbond ericjim igor-ka sumitarora

repo: rangle/augury

license: mit


text:
window.analytics check occurs before eventdefinition is checked for truthiness

This is a...

[X] :rocket: Feature Request
Which version of Redux Beacon are you using?

v 1.2.1

Which target(s) are you using?

[X] Segment

I have been seeing errors in Rollbar indicating that a variety of clients are generating the error Uncaught Error: window.analytics is not defined, Have you forgotten to include the Segment tracking snippet?
My best guess is that some clients are blocking the Segment script or else not evaling it for some reason.  I wanted to turn redux-beacon off for those clients by checking if window.analytics is defined in the EventDefinition by essentially wrapping each in a function:
const ifSegmentDefined = (reducer: EventDefinition): EventDefinition => (
    (action: any, prevState: IMyStore, nextState: IMyStore): any => {
        const w = window as any;
        return w && w.analytics ? reducer(action, prevState, nextState): null;
    }
);
const segmentEventsMap: EventDefinitionsMap = {
    // ...
    [PROFILE.SAVE_SUCCESS]: ifSegmentDefined(myEventDefinition),
}

However, this doesn't work because it seems like redux-beacon fires the "window.analytics is not defined" error even if my isSegmentDefined wrapper returns null or undefined.  It also fires even if I return a literal null in my EventDefinition.  I would have expected that the check for window.analytics would happen after the check for an empty EventDefinition.
This isn't a big problem---I can work around it by creating a no-op middleware if windows.analytics is undefined.  But I think that if there's a race condition on asynchronously loading the segment library, it would be nice to be able to have the check happen when the event is created, not during initialization.

hey @mikebridge.
Interesting. Yeah, we are doing a check to ensure that window.analytics exists, if it doesn't we throw an error to let the dev know that it's not there: https://github.com/rangle/redux-beacon/blob/master/packages/segment/src/segment.ts
From what I remember, we added this to make the dev experience a bit better. Rather than getting an obscure error, they'd get a hint as to what the problem is (segment isn't loading, or they didn't add the snippet to their site).
A couple of thoughts...

I don't want to get rid of this error, in certain scenarios it's quite helpful
we could add an option to the segment target to oppress "dev warnings" to solve this
we could look into creating a dev version (with errors and warnings) and a minified version of the target. Kind of like React...but that may be a bit tricky.

@ttmarek After I thought about it, I realized that the obvious solution for me was to put the check in middleware.  This a) doesn't throw an exception if the segment initialization is blocked, b) brings the segment integration online if there's a race condition when loading the script asynchronously:
export const reduxBeaconSegmentMiddlewareFactory = () => {
    const w = window as any;
    const segmentMiddleWare = createMiddleware(segmentEventsMap, Segment);
    return store => next => action => w && w.analytics ? segmentMiddleWare(store)(next)(action) : next(action);
};

I could also write out a warning there if I wanted to instead of absorbing it, or log the problem to Rollbar or NewRelic.
I tested it out with something similar to this:
describe("analyticsMiddleware", () => {

    const w = window as any;
    const testId = "123";

    describe("reduxBeaconSegmentMiddlewareFactory", () => {

        it("should not generate a 'windows.analytics is not defined' error if analytics undefined", () => {
            delete w.analytics;
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            store.dispatch(createSaveSuccess("123")); // throws exception if error
        });

        it("should call analytics.identify with userid when profile saved", () => {
            let identifiedWithId: string = "";
            w.analytics = mockAnalytics({
                onTrack: () => null,
                onIdentify: (userId: string) => identifiedWithId = userId
            });
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            store.dispatch(createSaveSuccess(testId));
            expect(identifiedWithId).toBe(testId);
        });

        it("should call analytics.identify with userid if segment loaded after middleware", () => {
            let identifiedWithId: string = "";
            const mockStore = configureStore([reduxBeaconSegmentMiddlewareFactory()]);
            const store = mockStore(initialStore);
            w.analytics = mockAnalytics({
                onTrack: () => null,
                onIdentify: (userId: string) => identifiedWithId = userId
            });
            store.dispatch(createSaveSuccess(testId));
            expect(identifiedWithId).toBe(testId);
        });

    });
});

This seems to work---it would be a fairly easy modification to put this logic directly into createMiddleware.

Glad you came up with something that works! I don't think it makes much sense  to add these checks to createMiddleware as this is pretty target-specific.
P.S.
There's a new version out! Here's the migration guide: https://rangle.gitbook.io/redux-beacon/migration-guide-v1-to-v2
Give it a whirl, let me know if you run into any issues or have an ideas for enhancements. PR's are always welcome! :slightly_smiling_face:

authors: mikebridge ttmarek

repo: rangle/redux-beacon


text:
Test Cases for scale-codec to test all chains with Scale-Codec functions

Description
Test Cases for Scale-Codec function must process and verify all the chains data easily and quickly.
Proper cache implementation should be used both in scale_codec and testing source code where decoding and encoding of same block or spec-version could be used by multiple tests.
Acceptance Criteria

[x] CI must check lint
[x] CI must run tests and generate code-coverage
[x] CI must pass at least 99%
[ ] All Test Cases must be passing.
[x] CI must check if it compiles

Working on Fix for Kusama and Polkadot Extrinsic issue.

repo: rankanizer/polkadart


text:
Lookup prefixes dynamically

Addresses https://github.com/ranking-agent/aragorn-ranker/issues/12
One thing that appears to be happening is that we don't keep the paper counts for nodes in the cache, so those always go to postgres (should update this too)
The postgres omnicorp checked the prefixes against an internal list, but that list needs to be updated regularly.  This version checks postgres and just pulls what tables are there, rather than hard coding it.
It also handles that some prefixes have "." in them, which have to be converted to "_" as a table name.
This hasn't been fully tested, can you take a look @PhillipsOwen ?

i note that NCBITaxon, NCBIGene curies are not getting handled (not in self.prefixes).

You mean in master?  Or on the PR?  Fixing this was the main goal of the PR (it also wouldn't handle pubchem.compound among others)

sorry let me test this again. i didnt pull the branch properly

prefix = curie.lower().split(':')
prefix = '_'.join(prefix.split('.')) is throwing -> AttributeError: 'list' object has no attribute 'split'
did you mean:
prefix = '_'.join(prefix[0].split('.'))

did you mean:
prefix = '_'.join(prefix[0].split('.'))

Oops, yeah.  Thanks

authors: PhillipsOwen cbizon

repo: ranking-agent/aragorn-ranker


text:
[1.12.2] Poor performance with high item counts

An rs system with just drives and a few million items is already enough to easely delay a tick by 40 seconds or more upon being loaded or edit(if you take out drives with items in them).
This makes rs worthless for real mass storage as about 10 million items are sufficient to time everyone out before it loads and thus nobody can ever get near that system anymore, even removing the controller causes this delay for some reason.

Minecraft: 1.12.2
Forge: 14.23.5.2811
Refined Storage: Refined Storage 1.6.14

Does this issue occur on a server? [yes/no]
yes(Same does however occur in singleplayer)

Please run some profiling on the server when this happens to find out what causes this. Possibly another mods interacts badly with the system. I've had bigger systems plenty of times and have never had players get timed out due to them.
https://refinedstorage.raoulvdberge.com/wiki/profiling

Even with just this mod it happends

And it ain't constant lag, it just locks everything up so badly that not even a profiler can spot it

Good that probably makes it possible to fix the issue, if we can find out what causes it with the profiling info.

It are spikes which profilers do not manage to catch

So the entire PC freezes when this happens? Only thing I can think of that could cause this is a broken or very slow hard drive/ssd? That would probably also cause other issues though so.. yeah not sure what could cause that.

No, it just turns the entire server unresponsive for quite a bit to the point that the profilers do not spot it

Can you give me reproduction steps, with just RS installed? And something less vague than "just insert a lot of items". Tell me exactly what you're doing.

Refined storage simply cannot handle a lot of items efficiently, simple as that

authors: CraftalotReloaded Darkere raoulvdberge

repo: raoulvdberge/refinedstorage


text:
REQ: Crafters (1.10.2)

Requesting for Crafters, either logic system for repeat patterns for same item with different recipes. (ie. Iron Ingot, pattern 1 crush Iron Ore then smelt Iron Dust if no Iron Ore use pattern 2 craft from Iron Essence if no Iron Essence use pattern 3 craft from Iron Block or Iron Nuggets.)
Or maybe add Priority system on Crafters.
And I know there is a separate mod out there but can you add Wireless Crafting Grid
TIA

I don't understand your first suggestion. Can you clarify?

If I understand correctly, he wants a crafting priority system similar to #948 (which you said no to).
He also asked for a Wireless Crafting Grid, and you have said no to that several times already.

authors: JFMillerUSA VT-14 raoulvdberge


text:
enumerable methods not correctly iterating over an enumerable

I'm finding this behaviour non-intuitive in terms of applying the monad on enumerable objects, like arrays. For instance, here we have the example from the tutorial:
Maybe([nil, 1, 2, 3, 4, 5, 6].sample)
#=> <Some:0x007ffe198e6128 @value="I'M A VALUE">

when we do:
Maybe([nil, 1, 2, 3, 4, 5, 6])
#=> <Some:0x007ffe198e6128 @value="[nil, 1, 2, 3, 4, 5, 6]">

this is where I get confused. I'll show you my expectation and what it does:
Maybe([nil, 1, 2, 3]).reduce(0, :+)
#=> expecting 6, throws TypeError:Array can't be coerced into Fixnum

So, my expecting in this case, when using enumerable method on the monad, was that the monad would yield monads, which is not. Is this a valid expectation?

@TiagoCardoso1983 Remember that the Maybe is just a thin Array-like wrapper. You can think Some as an array of one element ([1]) and None as an array of no elements ([]). If the value for the Some is an array, then you can think it like an array of array.
So, Maybe([nil, 1, 2, 3]) is like [[nil, 1, 2, 3]].
And Maybe([nil, 1, 2, 3]).reduce(0, :+) is like [[nil, 1, 2, 3]].reduce(0, :+) and that gives you the error you saw.
Since Maybe implements the Enumerable interface, all Enumerable methods (like reduce) are applied to the Maybe object, not to the value object. If you want to apply the Enumerable method to the value object, then you need to map first.
Maybe([1, 2, 3]).map { |xs| xs.reduce(0, :+) } #=> Some(6)
If this seems complicated, again, you can think it like an array:
[[1, 2, 3]].map { |xs| xs.reduce(0, :+) }
There is an open Pull Request #7, which implements inner method, which can be used to pass the method call directly to the value object. With inner you don't need the map:
Maybe([1, 2, 3]).inner.reduce(0, :+) #=> Some(6)
The PR #7 is still open, mostly because I'm not too happy with the method name inner...

I understood the thin-wrapper logic, I was just making the point, it would make sense to me to delegate enumerable methods to the elements of the Some instance, i.e., if Some is composed of:
# one could deleate map calls to the enumerables in the value container
=> Maybe([1, 2, 3]).reduce(0, :+)
#=> 6

So, just making a case that it could potentially make sense to handle it this way. The #inner method implementation, while going in that direction, seems to not yield Maybe's, which is the whole point of the other enumerable. I just wanted to know potential drawbacks from this approach.

So what you're proposing is that Maybe should not implement the Enumerable interface, as it currently does? Did I understand right? Fair enough.
(Btw. is there a mistake in your example? Did you really mean that reduce should return unwrapped value 6, or maybe Some(6)?)
The Enumerable interface provides some methods that are pretty handy with Maybe, e.g. each, select, reject, and of course map. Also, other enumerable methods can be used, (e.g. reduce, like Maybe(10).reduce(10, :*) #=> 100), but I'm not sure how useful those are in the real world.
So if Maybe would not implement Enumerable, at least some form of map, each, select and reject should be implemented by Maybe. Those methods should be named to something different than what they are now (map could be fmap, select could be filter, each could be on_value for example). If those methods had names that do not collapse with the Enumerable method names, then it would be possible to forward the Enumerable methods to the value inside the wrapper. On the one hand changing the names might be a good thing, since for example on_value is a lot better name than each. On the other hand that may be a bad thing, since Enumerable methods are already familiar to all and people know what they do.
In addition, this would be a change that will break a lot of code. At least we at Sharetribe are using Maybe quite heavily, and a lot of code would break. That's definitely a drawback :)
Thanks for your comments! I'll think about it. I do agree that the behaviour is somewhat non-intuitive. I have personally made mistakes where I have called enumerable method and actually intended that method call to be passed to the value inside the wrapper (i.e. called Maybe([1, 2, 3]).first, when I actually meant Maybe([1, 2, 3]).map { |xs| xs.first })
The #inner method definitely yields Maybe values. Maybe([1, 2, 3]).inner.reduce(0, :+) is equal to Maybe([1, 2, 3].reduce(0, :+)), which both return Some(6).

I might be going out of scope with my request on what the Maybe monad should provide, but then again, I only read Haskell and never wrote code myself.
My understanding of the Monads is that it behaves the same whether the value is one or many. Therefore I think that Some should be an Enumerable and should be able to implement #each. If the value would be an enumerable, block would be passed to value wrapping yielded values as Some, and if a normal value, wrapped it as Some and yield. It would also potentially have the benefit of decrease array allocations, depending of how much interaction there is with that __enumerable_value method. I think Some (and therefore None) should be de facto Enumerables instead of reimplementing all Enumerable methods.


text:
Fix 662

Fixes #662

I think this pull request also allows moving your tests of html.rs to regression.txt after removing the trim() from the standardization function, @notriddle.

Please review the pull request to merge it, @notriddle, @mgeisler. Thanks!

The maximum between indent and remaining space does the trick.

Thanks a lot, @Martin1887 and @notriddle!

repo: raphlinus/pulldown-cmark


text:
Retain auth on browser refresh

Swagger has an option to preserve authorization on browser refresh/close
https://github.com/swagger-api/swagger-ui/pull/5939/files
It would be great if RapiDoc could do the same. I use BASIC auth and would like a 'remember me' option.

This would definitely be nice!

Have you tried persist-auth ?
https://rapidocweb.com/api.html#att-general

Thank you @Qu4tro that looked very promising and we had somehow missed it. Unfortunately, it looks like only a partial solution as it stands today. It seems to work if you manually paste in a bearer token, but if you are using an OAuth flow, which is our most important use case, the auth does not survive a page refresh, which makes sense because nothing is visible in local storage.

@brunchboy that's something we've actually been considering adding over in the OpenAPI Explorer (which started out as a fork of this repo, but has grown into something more). If this is critical for you, and you're open to switching, depending on your main requirements, I'm sure that this is something we could prioritize.

I'm seeing the same behavior as @brunchboy described above.
Is there any progress on this?

authors: CoenraadS Qu4tro brunchboy hamilton-earthscope wparad

repo: rapi-doc/RapiDoc


text:
ERROR: rathole::config_watcher: The changed configuration is invalid. Ignored: Configuration is invalid. Please refer to the configuration specification.: Failed to parse the config: redefinition of table server.services.mcbedrock for key

Describe the bug

Whenever I try adding the UDP port 19132 to the rathole server configuration, rathole throws up errors about this: Jun 21 13:20:12 fedora-vps rathole[4622]: 2024-06-21T13:20:12.804641Z ERROR config_watcher{path="/etc/rathole/server.toml"}: rathole::config_watcher: The changed configuration is invalid. Ignored: Configuration is invalid. Please refer to the configuration specification.: Failed to parse the config: redefinition of table server.services.blueberry_mcbedrock for key server.services.blueberry_mcbedrock at line 138 column 1
To Reproduce
Steps to reproduce the behavior:

Create a server config file with the content below and save as server.toml
Run rathole with rathole -s server.toml
See error

Configuration
Configuration used to reproduce the behavior:
[server]
bind_addr = "0.0.0.0:2333"
default_token = "REDACTED"

[server.transport]
type = "noise"

[server.transport.noise]
local_private_key = "REDACTED"

# There are a lot of other things here, I left them out because they're unrelated to the issue

[server.services.blueberry_mcbedrock]
type = "udp"
bind_addr = "0.0.0.0:19132"

Logs

Jun 21 13:20:12 fedora-vps rathole[4622]: 2024-06-21T13:20:12.784133Z  INFO config_watcher{path="/etc/rathole/server.toml"}: rathole::config_watcher: Rescan the configuration
Jun 21 13:20:12 fedora-vps rathole[4622]: 2024-06-21T13:20:12.804641Z ERROR config_watcher{path="/etc/rathole/server.toml"}: rathole::config_watcher: The changed configuration is invalid. Ignored: Configuration is invalid. Please refer to the configuration specification.: Failed to parse the config: redefinition of table `server.services.blueberry_mcbedrock` for key `server.services.blueberry_mcbedrock` at line 138 column 1

Environment:

OS: Fedora Linux 39
rathole --version output:

rathole
Build Timestamp:     2023-10-01T09:59:43.840042255Z
Build Version:       0.5.0
Commit SHA:          Some("ebb764ae53d7ffe4fcb45f83f7563bec5c74199d")
Commit Date:         Some("2023-10-01T09:55:18Z")
Commit Branch:       Some("detached HEAD")
cargo Target Triple: aarch64-unknown-linux-musl
cargo Profile:       release
cargo Features:      base64,client,embedded,hot_reload,noise,notify,server,snowstorm

CPU architecture: aarch64 / ARM64
rustc version: Unknown

Never mind, this was a duplicate entry of an existing one. I had this entry two times in the same config. I've removed the duplicate one and it worked like a charm!


text:
Package.getStylesheetsPath is deprecated.

Store package style sheets in the styles/ directory instead of stylesheets/ in the language-marko package
Package.getStylesheetsPath (/Applications/Atom.app/Contents/Resources/app/src/package.js:434:9)
Package.getStylesheetPaths (/Applications/Atom.app/Contents/Resources/app/src/package.js:445:32)

Deprecation warning appearing on v0.182.0

I haven't noticed the warning, bit I'll go ahead and make the change. Thanks for letting me know.

authors: patrick-steele-idem peterdotjs

repo: raptorjs/atom-language-marko


text:
pkg-config files required by build not in libcamera source

I'm trying to get libcamera-apps to build with libcamera for a custom linux distro. cmake uses pkg-config to resolve libcamera and libcamera-base dependency but I couldn't find pkg-config (.pc) files in the libcamera repo. They are distributed on Raspbian but I can't find their source. Any help is highly appreciated.

Hey @tewarid,
libcamera uses Meson's pkgconfig module[1] to generate its pkg-config files[2][3]
[1] https://mesonbuild.com/Pkgconfig-module.html
[2] https://git.linuxtv.org/libcamera.git/tree/src/libcamera/base/meson.build#n67
[3] https://git.linuxtv.org/libcamera.git/tree/src/libcamera/meson.build#n163

Thanks for the info! I'll close this issue and investigate meson.

authors: marv tewarid

repo: raspberrypi/libcamera-apps


text:
[QUESTION] How to trigger CircularOutput in main event_loop

Hello,
I have been playing around with the libcamera_vid app and wanted to add motion detection with a CircularBuffer.
But I can't manage to trigger and save a recording without shutting down the full application. Shutting down the application in code saves the CircularBuffer as expected to my output file.
Running the following code triggers the CircularOutput destructor, but the saved file (in my case test.h264) stays empty:
// Delete old output and trigger destructor to save to file
output.reset();

// Create new output
output = std::unique_ptr<Output>(Output::Create(options));
app.SetEncodeOutputReadyCallback(std::bind(&Output::OutputReady, output.get(), _1, _2, _3, _4));
app.SetMetadataReadyCallback(std::bind(&Output::MetadataReady, output.get(), _1));

So my question is: Is there a way to trigger the CircularOutput in the main event_loop of my app without shutting down the application? What would be the best approach to achieve this?
Thanks!

I'm a bit surprised that output.reset() does not generate a file.  CircularOutput::~CircularOutput() explicitly calls fclose() which ought to generate a file.  Perhaps what is happening is that the file is created and saved in the destructor, then immediately overwritten when you construct the object straight after - assuming the filename does not change between the two calls.
Could you try changing the filename in options->output between the destructor and constructor to see if it works as expected?

authors: naushir stefanderaadt


text:
actions: libcamera-test updates

Always upload/restore all build artifacts.
Run imx219 tests in addition to imx477 tests.

Signed-off-by: Naushir Patuck naush@raspberrypi.com

@davidplowman some improvements to the nightly run script.


text:
jpeg, mjpeg: Minor improvements to encoding

Some slight tidying, and in particular we don't actually need to copy
any pixels beyond the last full block of 16 rows, we can just re-use
pointers to the last row.
Signed-off-by: David Plowman david.plowman@raspberrypi.com

@naushir Tests pass... so it must be good!


text:
[SUGGESTION] Please, mention need to enable Glamor in the instructions

At least on Pi 3 B, it doesn't work if glamor is not enabled and this is nowhere to be found in the github instructions.

Thanks for raising this, we'll get that fixed. Actually the documentation will be undergoing a complete re-write (turning it into "official documentation") which is why I've avoided having a separate issue category for it, but I agree that simple things like this should be fixed.

A documentation update has been merged now, so I'll close this. Thanks!

authors: davidplowman ibmua


text:
Feature: Allow SelectedTo to contain full row value

It would be nice if the array of selected items could contain more than just the ID

@Jigsaw5279 That would be risky for memory management.
It is designed to help you keep track of the selected row(s) across the whole data set, so that you can decided to do whatever you want later (using those ids). So, it was a design choice for me to keep only the id that it would not cost too much in term of memory usage.
On one hand, if you are only interested in the selected row of the current page, the data should already be in the memory and you can access them via tableData prop.
On the other hand, if the selected rows are across multiple pages and when you decided to do something with them, I think those ids should be sent to be processed on the server side.
Personally, I believe that the client side should only work with the presentation/interaction with end user. Any other business logic should be handled on the server side. :)

Yea, I kniw about the risks of memory leakage.. But I've made a component that'll display a dropdown of actions. And I wanted to make it aware of the data that is about to be transformed.
For example, I've got a table of aacounts, wich are either enabled or disabled. It makes no sense to activate the "Activate" option, if there are only active acccounts selected.
I did so using a callback that is passed the array of currently selected Items. But so far, the only thing I can do is see if the size is > 0 cause all it contains are IDs.
Maybe it would be nice to have an event that fires when the selection changes to give you all the items needed?

@Jigsaw5279 Hmm, I don't quite see the picture. But does this one helps?

I might get it to work that way, at least I hope so

repo: ratiw/vue-table


text:
Detecting connection access

NetInfo is not capable of detecting internet access at all, but rather only connectivity. Cases like an airport, where you automatically connect to WiFi networks but don't get access unless you login would cause false positives. A better approach would be to verify internet access in one of the following ways:

Ping a server (HEAD request)
Websocket connection

Closed with https://github.com/rauliyohmc/react-native-offline-utils/pull/16

repo: rauliyohmc/react-native-offline-utils


text:
Datalog Instantiation issues

Datatype mismatch when instantiating a rule in Faure-log
The issue occurs when running the route aggregation test case in unit_tests.py. When instantiating the rule R(1,x)[x == 10] :- l(1,2), l(1,3), l(1,4), R(2,x)[x == 10], two attributes in R are int4_faure datatype, the insert SQL is insert into R values(2,'x','{"x == 10"}'). The datatype mismatch happens at 2, i.e., we should add single quotes to 2. The error shows as follows.
Traceback (most recent call last):
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/unit_tests.py", line 98, in <module>
    if (not program2.contains(program1)):
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/program.py", line 65, in contains
    if not self.contains_rule(rule):
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/program.py", line 108, in contains_rule
    rule2.addConstants(conn)
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/rule.py", line 191, in addConstants
    atom.addConstants(conn, self._mapping)
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/atom.py", line 192, in addConstants
    cursor.execute(sql)
psycopg2.errors.DatatypeMismatch: column "c0" is of type int4_faure but expression is of type integer
LINE 1: insert into R values(2,'x','{"x == 10"}')
                             ^
HINT:  You will need to rewrite or cast the expression.

An invalid array representation in insert SQL in Datalog
Consider a rule R(a3,h1,[a3, z, y, x],4) :- R(c1,h1,[z, y, x],3),l(a3,c2). When treat it as a data instance, the generated insertion is insert into R values(0,1,'{2, 3, 4}',3). '{2, 3, 4}' is an invalid representation in the insert SQL. The error shows as follows.
Checking  R(a3,h1,[a3, z, y, x],4) :- R(c1,h1,[z, y, x],3),l(a3,c2)
Traceback (most recent call last):
  File "/home/fangping/Projects/pyotr/experiments/minimization_datalog/fattree/scalability_datalog/script.py", line 43, in <module>
    avg_time, total_atoms, total_rules = test_scalability(r, k, 'h1')
  File "/home/fangping/Projects/pyotr/experiments/minimization_datalog/fattree/scalability_datalog/script.py", line 25, in test_scalability
    program.minimize()
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/program.py", line 148, in minimize
    contained = self.contains_rule(rule_with_deleted_atom)
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/program.py", line 108, in contains_rule
    rule2.addConstants(conn)
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/rule.py", line 191, in addConstants
    atom.addConstants(conn, self._mapping)
  File "/home/fangping/Projects/pyotr/Core/Homomorphism/Datalog/atom.py", line 192, in addConstants
    cursor.execute(sql)
psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "{2, 3, 4}"
LINE 1: insert into R values(0,1,'{2, 3, 4}',3)
                                 ^

@lanfangping, have you tried recompiling int4_faure in the latest commit? This should be fixed

Was fixed in 078de2ec21c0b019cad1730556f6656604ab210b. Closing issue

authors: lanfangping mudbri

repo: ravel-net/pyotr


text:
[Authy - Twilio App] ...

Extension
https://www.raycast.com/guga4ka/authy
Raycast Version
1.78.1
macOS Version
14.5
Description
Unable to login.
Unable to authenticate the extension using Authy ID and Backup Password.
Error: The device does not meet the minimum integrity requirements
Error: Login Request not Found

Steps To Reproduce

Install the extension.
Start the extension.
Provide Credentials Authy ID and Authy Backup Password.
Start the Extension
Press Enter

Current Behaviour

Error: The device does not meet the minimum integrity requirements
Error: Login Request not Found
Expected Behaviour
No response

@0xgeorgemathew it's not possible to onboard new users to extension right now. I've made a note at readme and now a'm looking to way to disable new installation

@0xgeorgemathew it's not possible to onboard new users to extension right now. I've made a note at readme and now a'm looking to way to disable new installation

Thank you for the reply.
Does old installations continue to work?
When new keys are added via android/iOS app do they sync with the raycast extension?
If you can think of any workarounds do suggest.
I recently wiped my data on my device (have it backed up) and lost access to the extension
Thank you for building an incredible product.
Good luck.

Does old installations continue to work?

Yes

When new keys are added via android/iOS app do they sync with the raycast extension?

Should work as previously, Authy only changed API related to registration of new device

If you can think of any workarounds do suggest.

Hard to say, i've also lose an access to extension and now thing about moving to something else. Regarding Raycast integration here is a nice extension https://www.raycast.com/lachero/one-time-password (you can export authy data to google auth format and import there) i might contribute to it to support 2FAS export format, or just write a private 2FAS extension to own use. The main problem is syncing of data, i didn't find a better way than manual export and manual import of data.

Be careful about storing your password data on Raycast, especially the One Time Password extension. When you remove the extension, your local data will be removed as well. You should store the OTP not only on Raycast.

Hello @guga4ka!
Thanks for your work on this extension. I think it was the one I used the most!
Unfortunately, I had to reset my mac, and now I've lost access to it.
I didn't find any equivalent app that can sync across devices, and be usable with Raycast like Authy was.
Did you find any proper alternative? Do you think the extension could be updated to handle the new Authy way to register devices? (I didn't find the discussion about it).
Thanks!

Is there a way to transfer this from my old device ?

This extension is unfortunately deprecated

I got the extension restored via my backup but it isn't able to restore the data. Is there a way to restore the data for this app ? I still have access to the old device where it works fine.

authors: 0xgeorgemathew LitoMore guga4ka mathieutu pernielsentikaer siddharthalodha

repo: raycast/extensions


text:
[Hue] Hue API V2

Description
This is nigh-on a complete rewrite of the extension. The changes, as noted in CHANGELOG.md:

Groups and scenes are now shown as images to make it easier to find the right one
Add rate limiting to improve behaviour when holding down a hotkey and to prevent rate limiting errors
Add live updating of lights when they are changed by e.g. the Hue app or a physical switch
Many improvements under the hood to improve performance, responsiveness and reliability

Use Hue API V2: ‘Connected Lighting Interface Protocol’ or CLIP
Connect with the Hue Bridge using TLS (HTTPS) and HTTP/2
Use a single persistent connection to send and receive data to and from Hue bridge

Deprecation: It is no longer possible to set/adjust the color (temperature) of a group since this is not supported by
the Hue API V2. It may be added in the future with a workaround. Please use scenes or individual lights instead.

I'm looking forward to your findings and feedback!
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@pernielsentikaer I think you might be interested in looking at this, too.

This is the full output @pindab0ter
❯ npm run dev

> dev
> ray develop

info  -  entry points [src/controlLights.tsx src/controlGroups.tsx src/setScene.tsx src/turnOffAllLights.ts]
ready -  built extension successfully
16:02:25.511 Error: No Hue Bridge credentials found
    at src (/Users/pernielsentikaer/.config/raycast/extensions/hue/controlGroups.js:60867:21)
16:02:25.512 Discovering bridge using MeetHue's public API…
16:02:25.636 Discovered Hue Bridge using MeetHue's public API: 192.168.68.56
16:02:45.694 (node:76790) [DEP0123] DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version.
(Use `node --trace-deprecation ...` to show where the warning was created)
16:02:45.798 Error: self-signed certificate
    at TLSSocket.onConnectSecure (node:_tls_wrap:1538:34)
    at TLSSocket.emit (node:events:513:28)
    at TLSSocket.emit (node:domain:489:12)
    at TLSSocket._finishInit (node:_tls_wrap:952:8)
    at ssl.onhandshakedone (node:_tls_wrap:733:12) {
  code: 'DEPTH_ZERO_SELF_SIGNED_CERT'

Ah, right. I think this might be because that's an older model of Hue Bridge, or simply one that isn't up-to-date. Which is good, because you won't be the only one.
I'll look into how I can deal with this.

I added support for Hue Bridges with self-signed certificates. The relevant code is documented with links to the relevant Philips Hue Developer documentation.
I also added a DNS shim. Since it's not allowed to set the TLS ServerName to an IP address, I set the ServerName to the server ID, which I then resolve with the shim. The shim only resolves this Bridge ID address. Any other DNS request is passed through to the regular lookup function.

Thanks for all the fixes and hard work @pindab0ter 🔥

Thanks for all the fixes and hard work @pindab0ter 🔥

My pleasure!
Does that mean it works on your end, now?

No, not yet, but just wanted to thank you 😊

I appreciate that! ☺
Could you provide me with details as to why it doesn't work yet?

Bridges with self-signed certs are now supported and the loading issue is resolved.

@pindab0ter I'd like to ask you how complex is for you (in implementation) to give the option in the Preferences for the user to set by himself the bridge IP Address and also the API Key?

@pindab0ter I'd like to ask you how complex is for you (in implementation) to give the option in the Preferences for the user to set by himself the bridge IP Address and also the API Key?

I'll look into doing that soon. You should only have to set the bridge IP address, since everything else is just requested from the bridge on linking.
Could you tell me more about your scenario, so I know what problem I'm solving?

@pindab0ter basically my point is: my bridge is behind of a tv hack and I already have an API Key and also its IP Address and I'd like to just skip the linking part just to input the information needed myself.

@unnamedd This will most likely make it into the next version.

@unnamedd This will most likely make it into the next version.

Nice!

Awesome work here @pindab0ter - this is SUCH a massive one! Good work 🚀

authors: pernielsentikaer pindab0ter unnamedd


text:
Update deepcast extension

Description
This PR adds the ability to view the translated content in a Raycast Detail view instead of instantly copying it to the clipboard.
The behavior is configurable and existing behavior stays the default
Also, adds a loading indicator while fetching translations to indicate the status of something happening.
Notes

The reason for launching a view using launchCommand is to get around the issue with Raycast where selected text is not detected when launching a view.

Thanks ❤
Special thanks to @EvanZhouDev for the enormous help in finding ways around the issues with the Raycast API.

Screencast

https://github.com/raycast/extensions/assets/25423453/a35ec8cb-b11d-44ea-845b-21ae3f3bc191
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Nice addition, thanks!
LGTM🚀

Thanks, @mooxl and @thomaslombart. Appreciate the review 🙏🏻

authors: YamenSharaf mooxl


text:
Progress tracking?

Hello,
Imagine code like the following:
const TRIALS: usize = 1000 * 1000 * 1000;
let result = (0..TRIALS).into_par_iter().map(|_| expensive_map_op()).reduce(|| Default::default(), expensive_reduce_op);

which might run for a long time. It would be helpful to have some way to track progress; for example, log to the console after every millionth mapping operation or reduction is finished. Is there any good way to do this in Rayon now? If not, it would be a nice feature IMO.

There are certainly options you could compose along with rayon. For example, the indicatif crate is popular for console progress bars, and it is thread safe (Sync) to update from a shared reference.

indicatif's ProgressBar has an Arc<RwLock<...>> internally. It would be better to have something lock-free using atomic counters.
Anyway, it's fine; I suppose I can roll my own.

@umanwizard did you manage to implement something of your own?

Sorry, no, I didn't continue working on this.

A feature like this would be amazing. Could maybe be similar to tqdm for Python.

authors: Splines cuviper hacknus umanwizard

repo: rayon-rs/rayon


text:
GuiValueBox() ERROR: RLGL: Batch elements overflow

int value = 1000;
bool editable = true;

if (GuiValueBox((Rectangle){600, 50, 100, 50}, "Value", &value, 0, 10000, editable ))  {
    editable = !editable;
}

When it first contains the content it says "1000", then I press backspace, until I reach "1", then it crashes.

@BenStigsen Just added an additional security check on raylib DrawTexturePro() to avoid this kind of overflow, it should work with latest raylib.

Sorry for the late response.
This issue hasn't been fixed in the latest Raylib version (3.7.0 - 26. April).

Just tested it on controls_test_suite.c and it didn't crash for me.

license: Zlib


text:
[build] CMake build system & better building docs

I'm working right now on a branch of this that will build all of the stuff in this repository using CMake.  Working on issues #332 and #328, alongside problems with linking dynamic vs. static GLFW have prompted this.  I've been doing the work here: https://github.com/define-private-public/raylib/tree/cmake_test
Right now, it's at a state where you can do this and have raylib working with examples:

mkdir build
cd build
cmake .. or cmake -DSHARED_RAYLIB=ON ..
make -k

And you're good to go!
I primarily work on a Linux machine (Ubuntu), and have very limited knowledge of OS X, so any help with Windows is appreciated.  For the moment, I'm working on the desktop targets, but Android, Raspberry Pi, and Web will be added in for completeness.
Build TODO List:

[x] Linux static library
[x] Linux .so
[x] OS X static library
[x] OS X .dylib
[ ] Windows static library
[ ] Windows DLL
[ ] RPi static
[ ] RPi dynamic
[ ] Android
[ ] Web
[x] examples
[x] simple games
[x] complex games (the ones that have their on subdirectories in games/)

We also need to update the documentation for dependencies to build, and how use the .a and .so/.dylib/.dll files that are made.
Docs TODO:

[ ] CMake dependency (should be very simple: install it)
[ ] GLFW dependency (static or shared)
[ ] Linking libraylib.a
[ ] Linking libraylib.so on Linux (w/ run.sh shell script)
[ ] Linking libraylib.dylib on OS X (-Xlinker -rpath .)
[ ] Linking raylib.dll on Windows

Other TODO:

[x] the linking/building process is quite the same for both examples and games, figure out a way how to reduce the duplication of code?
[ ] Cleaning the .gitignore file.  I have already had to touch it.  Some files were being skipped over that shouldn't have!!
[ ] Remove the old Makefiles
[ ] List of all current compilation flags
[ ] Compile options to build (or not) the games and examples

Questions I have for others (right now):

For the RPi, are we only supporting raspbian?

About RPI, only supporting Raspbian for the moment, actually only tested on that platform, and not using X window system, OpenGL ES runs directly at hardware level through EGL, that's different than other Linux distros (Desktop Linux). It could work over X windows with the newly included (experimental?) OpenGL driver but not configured for that and it only works on RPI 2 and 3.

Awesome work! I've yet to sit down with this stuff but it looks great. Thanks!

@RDR8 What I could use help with most at the moment might be the non-Desktop targets.  All the necessary stuff for them should be in the Makefiles, but I could use some help pulling them out and figuring out the exact build steps.

@raysan5 Could you tell me more about your build environment?  I'm having a real hard time on Windows trying to get GLFW setup and for CMake to place nice here (something about how it can't find g++ for MinGW).

I have a Pi to play with. It'll be the weekend or after before I can punch in. I would like to tinker with Android also but am not set up with adb or any sacrificial hardware. I am especially interested in alternative ARM SBCs. I need to research the toolchains before diving in. Anyway, yeah, I'll look into this. Thanks

I don't think the RPi target should be too much different from the Linux one.  Since... well... it's also Linux.

Good news.  All of the games are done!  This includes the more complex ones.

@raysan5 Aside from your Windows dev environment, can you get me a list of all possible compilation flags  e.g. SOFT_AL, GRAPHICS_API_OPENGL_*, etc.

To all of you, just say thanks for such an amazing work, despite CMake is not my preferred build system, undoubtely, this addition will represent a huge boost for raylib project.
About internal flags to configure raylib, just check https://github.com/raysan5/raylib/issues/200

Oh man, that's going to be a lot of flags to mess with.  What do you think are the most important ones to be able to configure?
So far I've got:

GRAPHICS_API_*

I don't think adding options for all of the SUPPORT_FILEFORMAT_* ones are that necessary, since I think most people would want support for as many image formats as possible.

Can anyone else comment on how building for Android is supposed to work?  Last time I ever toyed with Android development was back before university, and that is when the API was at 2.x.  Does the NDK create a .jar of raylib where we can write the raylib game in Java?  Or does it compile the whole game (written in C) to the .apk?
I have no idea what I'm doing when it comes to Android.

Does this look useful to us: https://github.com/taka-no-me/android-cmake ?
Once again, I have no idea what I'm doing when I'm working with Android.

From "Getting Started with the NDK"
"Android Studio's default build tool to compile native libraries is CMake. Android Studio also supports ndk-build due to the large number of existing projects that use the build toolkit. However, if you are creating a new native library, you should use CMake. "

About configuration flags, they are exposed only for advance users to allow them to have full control over library requirements. No need to support all of them, with PLATFORM_* and GRAPHICS_API_* is ok.
About Android building, first raylib needs  to be build as a .so library, to do that a standalone Android toolchain is required.
To build the final .apk it's not that simple, detailed explanation here: https://github.com/raysan5/raylib/issues/278

Okay, latest update is now there is a way to configure the build platform and OpenGL version of choice.   I'm a little hesitant to say that it offers  "drop down," method, but it lets the user (if they're using the CMake GUI or ncurses one) to cycle though valid options.  It also selects OpenGL ES if on a non-desktop platform.
As per issue #337 should I have it disable GL ES 2.0 on desktop?

Latest update is that I've gotten the web library libraylib.bc to compile using CMake.  I haven't tested it yet with compiling the examples/games for web, but checking the .bc that's provided in the repo it looks fairly similar.

@raysan5, do you plan on developing using makefiles directly? I would hate to lose them.   And be forced to create them using cmake, which gives you super bloated and overly complicated makefiles, in my experience.

@tazdij, no plans to replace/remove direct Makefiles. I like them, I think they are pretty easy to read and Makefiles are still the only build system I feel I have full control over it. I've analyzed most of the build systems out there and Makefiles are probably the simplest option (aside of plain command-line scripts).
But it's true that lots of users feel comfortable with CMake so I think it could be a great support this alternative build system.

@raysan5 How do you feel about the CMake files I've written so far?  If you don't think you understand what's going on, I wouldn't mind sitting down with you in IRC (or IM) to run it through you step by step.  It's pretty simple so far.  (Still don't have the Windows though....)

@RDR8 Any headway made on the Pi platform?

Negative, sorry. Playing an impromptu game of Frogger in real life and don't have any study time. A return to normalcy is likely some days away. I have been following your progress and I do really appreciate your efforts here. Your keyboard is on fire.

@raysan5 thank you for the response, I am also more comfortable with Makefiles. And having both build systems should allow for more people to have the build environment they enjoy, also enabling developer to use their preferred IDE as an actual IDE instead of a glorified text editor. (I code in GNU Edit and vi so this doesn't appeal to me)
@define-private-public  This is some amazing work so far, I would like to see CMake as an alternative build system included in the release builds of raylib. I would most likely not use it myself though.

@define-private-public, thanks for all your work, it's impressive. CMake code is pretty clear to me.
Excuse me if I haven't been too active lately, I should took care of some personal matters and next Monday I'm going on holiday for 15 days.
Lots of pending things... I'll try to get it done by September to release a new version, before academic course starts; this year there are several universities using raylib.

Hey @raysan5, my interest in working on this is starting to wane.  a few reasons:

I have no idea really how to do Windows development, or development on that platform.
Same goes for Android
I don't think I have my RPi with me, so I'm a little stuck there when it comes to testing.  I'm sure someone could go off of the Linux branch and do stuff there
I originally worked on this, so whoever could use the Nim bindings I was working on could have a simple time to get raylib working on their machine.  But an odd issue has popped up, where I have no clear solution: https://forum.nim-lang.org/t/3059/2
I'm already juggling too many things in my free time right now.  I need to scale back a bit.

If you're interested in merging what I have right now, I'm still willing to write up docs for how to use the CMake files.

Hi @define-private-public, you get so far on CMake implementation, don't worry, just send a pull request and I'll integrate it into main repo to let other people continue with it.
About your doubts, Windows and RPI shouldn't be an big issue, Android is a bit more complex, I'm also dealing with it to build examples into APK.
I saw you did a great work with the Nim binding, about your issue, I faced some similar problem with Lua binding and just defined the type as opaque data, don't know if that's possible with Nim...

PR for what I have is right here:  https://github.com/raysan5/raylib/pull/348
Feel free to edit my main comment since it's a task list.  If anyone else replies to this ticket I'll still monitor it.  I can provide guidance for CMake if anyone needs it.

This issue is related with https://github.com/raysan5/raylib/issues/401.
CMake system has been greatly improved in the last weeks by @a3f.
Just closing this issue for now, it's difficult to track all the points on it... some are already implemented, some could be not valid any more and some should probably better moved to smaller issues.


text:
Fixed an issue in Makefile when using raygui and physac on unix systems

Hash "#" is single-line comment character in bash so echo ignores all of line if #include and #define written and make gives an error because it cannot find raygui.c and physac.c

@tixvage Thanks for the review! :D


text:
Add shared library build option for build.zig and update to zig 0.12.0-dev.2139

Using raylib as a shared library was helpful for hot-module reloading, allowing both the main executable and shared game library to link with raylib and then we can reload without segfaulting. I needed the no-sanitize flag to work around an illegal instruction error.
Here is the source for that example: https://github.com/candrewlee14/tetris-raylib

@candrewlee14 It seems this PR is related to this one: https://github.com/raysan5/raylib/pull/3680 but your implementation seems simpler. I'm merging it.

@candrewlee14 shouldn't this be defining BUILD_LIBTYPE_SHARED and also passing -fvisibility=hidden?

Nevermind, it does that
Not sure how I missed it - my bad