[BUG] Edgenode Turns to NotReady, kubelet on It Restart Rapidly

What happened:
After executing _output/local/bin/linux/amd64/yurtctl convert --provider kubeadm --cloud-nodes master on master node of an established kubernetes cluster of two nodes, all pods are pulled and started as expected, but the status of the edge node turns to NotReady. Check kubelet's log with journalctl -xeu kubelet on that device, we can see kubelet keep restart every few minutes.
What you expected to happen:
After conversion, edge node rejoins the cluster, and has it status Ready.
How to reproduce it (as minimally and precisely as possible):

Setup a kubernetes cluster (I did it with kubeadm)
Execute _output/local/bin/linux/amd64/yurtctl convert --provider kubeadm --cloud-nodes master on master node (called master)
Wait for a moment

Anything else we need to know?:

If I do the conversion manually following https://github.com/openyurtio/openyurt/blob/master/docs/tutorial/manually-setup.md, everything is fine.
/etc/kubernetes/manifests/yurt-hub.yaml created by openyurt/yurtctl-servant is different from what created in this way: https://github.com/openyurtio/openyurt/blob/master/docs/tutorial/manually-setup.md#setup-yurthub
If I replace yurt-hub.yaml with the file used in a manually-setup, the system recovers from the issue.

Environment:

OpenYurt version: V0.4.0
Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:58:59Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}

OS (e.g: cat /etc/os-release):
Cloud node:

NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 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

Edge node:
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.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=focal
UBUNTU_CODENAME=focal

Kernel (e.g. uname -a):
Cloud node:

Linux node-3 5.4.0-74-generic #83~18.04.1-Ubuntu SMP Tue May 11 16:01:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Edge node:
Linux ubuntu 5.4.0-1036-raspi #39-Ubuntu SMP PREEMPT Wed May 12 17:37:51 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

Install tools: kubeadm
Others:

others
https://github.com/openyurtio/openyurt/issues/360#issuecomment-865690544
/kind bug

apiVersion: v1							apiVersion: v1
kind: Pod							kind: Pod
metadata:							metadata:
labels:							  labels:
k8s-app: yurt-hub						    k8s-app: yurt-hub
name: yurt-hub						  name: yurt-hub
namespace: kube-system					  namespace: kube-system
spec:								spec:
volumes:							  volumes:

name: pki						      |	  - name: hub-dir
hostPath:							    hostPath:
path: pki_path				      |	      path: /var/lib/yurthub
type: Directory					      |	      type: DirectoryOrCreate
name: kubernetes						  - name: kubernetes
hostPath:							    hostPath:
path: /etc/kubernetes					      path: /etc/kubernetes
type: Directory						      type: Directory
name: pem-dir					      <
hostPath:						      <
path: /var/lib/kubelet/pki			      <
type: Directory					      <
containers:							  containers:
name: yurt-hub						  - name: yurt-hub
image: openyurt/yurthub:latest			      |	    image: yurthub_image
imagePullPolicy: Always				      |	    imagePullPolicy: IfNotPresent
volumeMounts:						    volumeMounts:
>	    - name: hub-dir
>	      mountPath: /var/lib/yurthub

name: kubernetes						    - name: kubernetes
mountPath: /etc/kubernetes				      mountPath: /etc/kubernetes
name: pki						      <
mountPath: /etc/kubernetes/pki			      <
name: pem-dir					      <
mountPath: /var/lib/kubelet/pki			      <
command:							    command:
yurthub							    - yurthub
--v=2							    - --v=2
--server-addr=https://kubernetes_service_host:__kub |	    - --server-addr=kubernetes_service_addr
--node-name=$(NODE_NAME)					    - --node-name=$(NODE_NAME)
>	    - --join-token=join_token
livenessProbe:						    livenessProbe:
httpGet:							      httpGet:
host: <IP_ADDRESS>						        host: <IP_ADDRESS>
path: /v1/healthz					        path: /v1/healthz
port: 10267						        port: 10267
initialDelaySeconds: 300					      initialDelaySeconds: 300
periodSeconds: 5						      periodSeconds: 5
failureThreshold: 3					      failureThreshold: 3
resources:							    resources:
requests:							      requests:
cpu: 150m						        cpu: 150m
memory: 150Mi						        memory: 150Mi
limits:							      limits:
memory: 300Mi						        memory: 300Mi
securityContext:						    securityContext:
capabilities:						      capabilities:
add: ["NET_ADMIN", "NET_RAW"]				        add: ["NET_ADMIN", "NET_RAW"]
env:							    env:
name: NODE_NAME						    - name: NODE_NAME
valueFrom:						      valueFrom:
fieldRef:						        fieldRef:
fieldPath: spec.nodeName				          fieldPath: spec.nodeName
hostNetwork: true						  hostNetwork: true
priorityClassName: system-node-critical			  priorityClassName: system-node-critical
priority:<PHONE_NUMBER>						  priority:<PHONE_NUMBER>

@Windrow Thank you for filing issue.
Would you be able to upload the /etc/kubernetes/manifests/yurt-hub.yaml created by openyurt/yurtctl-servant?

@rambohe-ch
root@ubuntu:/etc/kubernetes# cat manifests/yurt-hub.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    k8s-app: yurt-hub
  name: yurt-hub
  namespace: kube-system
spec:
  volumes:
  - name: hub-dir
    hostPath:
      path: /var/lib/yurthub
      type: DirectoryOrCreate
  - name: kubernetes
    hostPath:
      path: /etc/kubernetes
      type: Directory
  containers:
  - name: yurt-hub
    image: openyurt/yurthub:latest
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - name: hub-dir
      mountPath: /var/lib/yurthub
    - name: kubernetes
      mountPath: /etc/kubernetes
    command:
    - yurthub
    - --v=2
    - --server-addr=https://<IP_ADDRESS>:6443
    - --node-name=$(NODE_NAME)
    - --join-token=ghijkl.0123456789101112
    livenessProbe:
      httpGet:
        host: <IP_ADDRESS>
        path: /v1/healthz
        port: 10267
      initialDelaySeconds: 300
      periodSeconds: 5
      failureThreshold: 3
    resources:
      requests:
        cpu: 150m
        memory: 150Mi
      limits:
        memory: 300Mi
    securityContext:
      capabilities:
        add: ["NET_ADMIN", "NET_RAW"]
    env:
    - name: NODE_NAME
      valueFrom:
        fieldRef:
          fieldPath: spec.nodeName
  hostNetwork: true
  priorityClassName: system-node-critical
  priority:<PHONE_NUMBER>

I believe it is created based on common.go.

Jun 23 19:33:48 ubuntu kubelet[1110584]: E0623 19:33:48.415434 1110584 kubelet.go:2267] node "ubuntu" not found
Jun 23 19:33:48 ubuntu kubelet[1110584]: E0623 19:33:48.515749 1110584 kubelet.go:2267] node "ubuntu" not found
Jun 23 19:33:48 ubuntu kubelet[1110584]: E0623 19:33:48.578768 1110584 eviction_manager.go:255] eviction manager: failed to get summary stats: failed to get node info: node "ubuntu" not found
Jun 23 19:33:48 ubuntu kubelet[1110584]: E0623 19:33:48.616055 1110584 kubelet.go:2267] node "ubuntu" not found
Jun 23 19:33:48 ubuntu kubelet[1110584]: E0623 19:33:48.684114 1110584 csi_plugin.go:271] Failed to initialize CSINodeInfo: error updating CSINode annotation: timed out waiting for the condition; caused >
Jun 23 19:33:48 ubuntu kubelet[1110584]: F0623 19:33:48.684219 1110584 csi_plugin.go:285] Failed to initialize CSINodeInfo after retrying
Jun 23 19:33:48 ubuntu systemd[1]: kubelet.service: Main process exited, code=exited, status=255/EXCEPTION
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit kubelet.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 255.
Jun 23 19:33:48 ubuntu systemd[1]: kubelet.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit kubelet.service has entered the 'failed' state with result 'exit-code'.
Jun 23 19:33:58 ubuntu systemd[1]: kubelet.service: Scheduled restart job, restart counter is at 7.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit kubelet.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 23 19:33:58 ubuntu systemd[1]: Stopped kubelet: The Kubernetes Node Agent.
-- Subject: A stop job for unit kubelet.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit kubelet.service has finished.
--
-- The job identifier is 41893 and the job result is done.
Jun 23 19:33:58 ubuntu systemd[1]: Started kubelet: The Kubernetes Node Agent.
-- Subject: A start job for unit kubelet.service has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit kubelet.service has finished successfully.
--
-- The job identifier is 41893.
Jun 23 19:33:58 ubuntu kubelet[1111058]: Flag --cgroup-driver has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/doc>
Jun 23 19:33:58 ubuntu kubelet[1111058]: Flag --resolv-conf has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/>
Jun 23 19:33:58 ubuntu kubelet[1111058]: Flag --cgroup-driver has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/doc>
Jun 23 19:33:58 ubuntu kubelet[1111058]: Flag --resolv-conf has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/>
Jun 23 19:33:58 ubuntu kubelet[1111058]: I0623 19:33:58.988122 1111058 server.go:417] Version: v1.18.0
Jun 23 19:33:58 ubuntu kubelet[1111058]: I0623 19:33:58.989211 1111058 plugins.go:100] No cloud provider specified.

 Deprecated.
 Stats initialization may not have completed yet: failed to get imageFs info: >
Jun 23 19:34:05 ubuntu kubelet[1111058]: I0623 19:34:05.961820 1111058 server.go:145] Starting to listen on <IP_ADDRESS>:10250
Jun 23 19:34:05 ubuntu kubelet[1111058]: I0623 19:34:05.963955 1111058 fs_resource_analyzer.go:64] Starting FS ResourceAnalyzer
Jun 23 19:34:05 ubuntu kubelet[1111058]: I0623 19:34:05.964484 1111058 server.go:393] Adding debug handlers to kubelet server.

Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.182886 1111058 kubelet.go:1845] skipping pod synchronization - [container runtime status check may not have completed yet, PLEG is not healthy: ple>
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.196300 1111058 reflector.go:178] k8s.io/client-go/informers/factory.go:135: Failed to list *v1beta1.RuntimeClass: runtimeclasses.node.k8s.io "" not>
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.199414 1111058 reflector.go:178] k8s.io/client-go/informers/factory.go:135: Failed to list *v1beta1.RuntimeClass: runtimeclasses.node.k8s.io "" not>
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.279448 1111058 kubelet.go:2267] node "ubuntu" not found
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.287428 1111058 kubelet.go:1845] skipping pod synchronization - container runtime status check may not have completed yet
Jun 23 19:34:06 ubuntu kubelet[1111058]: I0623 19:34:06.301744 1111058 kubelet_node_status.go:70] Attempting to register node ubuntu
Jun 23 19:34:06 ubuntu kubelet[1111058]: I0623 19:34:06.361593 1111058 kubelet_node_status.go:73] Successfully registered node ubuntu
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.363454 1111058 kubelet_node_status.go:402] Error updating node status, will retry: error getting node "ubuntu": nodes "ubuntu" not found
Jun 23 19:34:06 ubuntu kubelet[1111058]: E0623 19:34:06.365906 1111058 kubelet_node_status.go:402] Error updating node status, will retry: error getting node "ubuntu": nodes "ubuntu" not found

@Windrow Thank you for uploading detail logs.
would you check that yurt-hub pod have running or not?

@rambohe-ch
The pod is running, but has many errors.
E0623 14:44:43.160917       1 local.go:79] could not proxy local for kubelet get nodes: /api/v1/nodes/ubuntu, nodes "ubuntu" not found
I0623 14:44:43.161391       1 util.go:215] kubelet get nodes: /api/v1/nodes/ubuntu with status code 404, spent 721µs
I0623 14:44:43.258513       1 connrotation.go:145] create a connection from <IP_ADDRESS>:59810 to <IP_ADDRESS>:6443, total 1 connections in transport manager dialer
I0623 14:44:43.269964       1 connrotation.go:48] close connection from <IP_ADDRESS>:59810 to <IP_ADDRESS>:6443 for transport manager dialer, remain 0 connections
I0623 14:44:43.421098       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csinodes/ubuntu, in flight requests: 1
E0623 14:44:43.421404       1 local.go:208] object not found for kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu
E0623 14:44:43.421484       1 local.go:79] could not proxy local for kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu, csinodes.storage.k8s.io "ubuntu" not found
I0623 14:44:43.421639       1 util.go:215] kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu with status code 404, spent 379.204µs
I0623 14:44:43.560535       1 util.go:232] start proxying: get /api/v1/nodes/ubuntu, in flight requests: 1
E0623 14:44:43.560885       1 local.go:208] object not found for kubelet get nodes: /api/v1/nodes/ubuntu
E0623 14:44:43.560977       1 local.go:79] could not proxy local for kubelet get nodes: /api/v1/nodes/ubuntu, nodes "ubuntu" not found
I0623 14:44:43.561434       1 util.go:215] kubelet get nodes: /api/v1/nodes/ubuntu with status code 404, spent 697.5µs
I0623 14:44:43.760656       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0, in flight requests: 1
E0623 14:44:43.761097       1 storage_wrapper.go:158] could not list objects for kubelet/csidrivers, specified key is not found
E0623 14:44:43.761181       1 local.go:208] object not found for kubelet list csidrivers: /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0
E0623 14:44:43.761252       1 local.go:79] could not proxy local for kubelet list csidrivers: /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0, csidrivers.storage.k8s.io "" not found
I0623 14:44:43.761419       1 util.go:215] kubelet list csidrivers: /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0 with status code 404, spent 471.518µs
I0623 14:44:43.960566       1 util.go:232] start proxying: get /apis/node.k8s.io/v1beta1/runtimeclasses?limit=500&resourceVersion=0, in flight requests: 1
E0623 14:44:43.961034       1 storage_wrapper.go:158] could not list objects for kubelet/runtimeclasses, specified key is not found
E0623 14:44:43.961132       1 local.go:208] object not found for kubelet list runtimeclasses: /apis/node.k8s.io/v1beta1/runtimeclasses?limit=500&resourceVersion=0
E0623 14:44:43.961238       1 local.go:79] could not proxy local for kubelet list runtimeclasses: /apis/node.k8s.io/v1beta1/runtimeclasses?limit=500&resourceVersion=0, runtimeclasses.node.k8s.io "" not found
I0623 14:44:43.961410       1 util.go:215] kubelet list runtimeclasses: /apis/node.k8s.io/v1beta1/runtimeclasses?limit=500&resourceVersion=0 with status code 404, spent 524.277µs
I0623 14:44:44.072549       1 connrotation.go:145] create a connection from <IP_ADDRESS>:59814 to <IP_ADDRESS>:6443, total 1 connections in transport manager dialer
I0623 14:44:44.085755       1 connrotation.go:48] close connection from <IP_ADDRESS>:59814 to <IP_ADDRESS>:6443 for transport manager dialer, remain 0 connections
I0623 14:44:44.086183       1 health_checker.go:215] failed to update lease: backoff ensure lease error: Get https://<IP_ADDRESS>:6443/apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/ubuntu?timeout=2s: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes"), remote server https://<IP_ADDRESS>:6443
I0623 14:44:45.625031       1 util.go:232] start proxying: get /api/v1/services?limit=500&resourceVersion=0, in flight requests: 1
E0623 14:44:45.625456       1 storage_wrapper.go:158] could not list objects for kubelet/services, specified key is not found
E0623 14:44:45.625522       1 local.go:208] object not found for kubelet list services: /api/v1/services?limit=500&resourceVersion=0
E0623 14:44:45.625562       1 local.go:79] could not proxy local for kubelet list services: /api/v1/services?limit=500&resourceVersion=0, services "" not found
I0623 14:44:45.625931       1 util.go:215] kubelet list services: /api/v1/services?limit=500&resourceVersion=0 with status code 404, spent 588.351µs
I0623 14:44:46.312702       1 util.go:232] start proxying: get /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0, in flight requests: 1
E0623 14:44:46.313178       1 storage_wrapper.go:158] could not list objects for kubelet/pods, specified key is not found
E0623 14:44:46.313249       1 local.go:208] object not found for kubelet list pods: /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0
E0623 14:44:46.313316       1 local.go:79] could not proxy local for kubelet list pods: /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0, pods "" not found
I0623 14:44:46.313771       1 util.go:215] kubelet list pods: /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0 with status code 404, spent 731.315µs
I0623 14:44:47.014608       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csinodes/ubuntu, in flight requests: 1
E0623 14:44:47.014892       1 local.go:208] object not found for kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu
E0623 14:44:47.014993       1 local.go:79] could not proxy local for kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu, csinodes.storage.k8s.io "ubuntu" not found
I0623 14:44:47.015181       1 util.go:215] kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu with status code 404, spent 419.703µs
I0623 14:44:47.015702       1 util.go:232] start proxying: get /apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/ubuntu?timeout=10s, in flight requests: 1
E0623 14:44:47.016105       1 local.go:208] object not found for kubelet get leases: /apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/ubuntu?timeout=10s
E0623 14:44:47.016185       1 local.go:79] could not proxy local for kubelet get leases: /apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/ubuntu?timeout=10s, leases.coordination.k8s.io "ubuntu" not found
I0623 14:44:47.016366       1 util.go:215] kubelet get leases: /apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/ubuntu?timeout=10s with status code 404, spent 416.352µs
I0623 14:44:47.016823       1 util.go:232] start proxying: get /api/v1/nodes/ubuntu, in flight requests: 1

@rambohe-ch
I did some further investigation today, I found that files in /var/lib/yurthub/ are not updated, they are still files created few weeks ago, thus we have certification problem.
I guess my proposal before to align common.go to template file was kind of a walk-around, to use /etc/kubernetes/pki instead of what we have in  /var/lib/yurthub/. I'll continue checking when /var/lib/yurthub/ would be updated.

func (ycm *yurtHubCertManager) initCaCert() error {
        caFile := ycm.getCaFile()
        ycm.caFile = caFile

        if exists, err := util.FileExists(caFile); exists {
                klog.Infof("%s file already exists, so skip to create ca file", caFile)
                return nil

Hi, @rambohe-ch
It is clear to me now. /var/lib/yurthub/ was not updated due to the existence of old files.
Two questions to discuss now.

Can we overwrite ca files when they already exist? For any concern that we keep the old one?

Is there a way to reset an offline node locally separately? yurtctl revert command works only on online nodes. If I reset the offline node with kubeadm reset, not only /var/lib/yurthub/ is not cleared, but also /etc/systemd/system/kubelet.service.d/10-kubeadm.conf is not reverted, which would cause problem when we use it the next time.

I submitted a pull request of aligning common.go to template file. It covers this issue anyway.
What should we do about /var/lib/yurthub/? Anyone has any idea?

@Windrow I'm very sorry for later feedback.

Two questions to discuss now.

Can we overwrite ca files when they already exist? For any concern that we keep the old ones?

The files under /var/lib/yurthub are created by yurt-hub when convert the node at the first time.
and will be re-used by yurt-hub for avoiding duplicated creation and creation failure when cloud-edge network disconnected.
so it's not recommend to overwrite files under /var/lib/yurthub.
if old files under /var/lib/yurthub dir have effected the yurt-hub startup, please delete the dir /var/lib/yurthub manually at first.

Is there a way to reset an offline node locally separately? yurtctl revert command works only on online nodes. And even with yurtctl revert, /var/lib/yurthub/ is not cleared, which would cause problem when we use this device the next time.

Now you need to delete the /var/lib/yurthub manually to reset an offline node locally. and we will add local reset feature in yurtctl at soon. If you are interested at this feature,  please participate in contribution.

I submitted a pull request of aligning common.go to template file. It covers this issue anyway.
What should we do upon /var/lib/yurthub/? Anyone has any idea?

Now, we need to delete the /var/lib/yurthub manually.
by the way,  maybe we need to check the  validity of the old files under /var/lib/yurthub before re-use the old files.

for avoiding duplicated creation and creation failure when cloud-edge network disconnected.

Sorry, but the creation of what here?

by the way, maybe we need to check the validity of the old files under /var/lib/yurthub before re-use the old files.

Yes. Maybe a timeout or a retry limit will do?

https://kubernetes.io/docs/tasks/tls/certificate-rotation/

I0630 14:51:11.958029       1 config.go:124] yurthub would connect remote servers: https://<IP_ADDRESS>:6443
I0630 14:51:11.962502       1 start.go:67] yurthub cfg: &config.YurtHubConfiguration{LBMode:"rr", RemoteServers:[]*url.URL{(*url.URL)(0x4000568100)}, YurtHubServerAddr:"<IP_ADDRESS>:10267", YurtHubProxyServerAddr:"<IP_ADDRESS>:10261", YurtHubProxyServerDummyAddr:"<IP_ADDRESS>:10261", GCFrequency:120, CertMgrMode:"hubself", NodeName:"ubuntu", HeartbeatFailedRetry:3, HeartbeatHealthyThreshold:2, HeartbeatTimeoutSeconds:2, MaxRequestInFlight:250, JoinToken:"ghijkl.0123456789101112", RootDir:"/var/lib/yurthub", EnableProfiling:true, EnableDummyIf:true, EnableIptables:true, HubAgentDummyIfName:"yurthub-dummy0", StorageWrapper:(*cachemanager.storageWrapper)(0x4000187dc0), SerializerManager:(*serializer.SerializerManager)(0x4000187e40)}
I0630 14:51:11.962655       1 start.go:82] 1. register cert managers
I0630 14:51:11.962697       1 certificate.go:60] Registered certificate manager kubelet
I0630 14:51:11.962747       1 certificate.go:60] Registered certificate manager hubself
I0630 14:51:11.962771       1 start.go:88] 2. create cert manager with hubself mode
I0630 14:51:11.962847       1 cert_mgr.go:239] /var/lib/yurthub/pki/ca.crt file already exists, so skip to create ca file
I0630 14:51:11.983053       1 cert_mgr.go:124] use /var/lib/yurthub/pki/ca.crt ca file to bootstrap yurthub
I0630 14:51:11.984461       1 cert_mgr.go:314] yurthub bootstrap conf file already exists, skip init bootstrap
I0630 14:51:11.993306       1 certificate_store.go:130] Loading cert/key pair from "/var/lib/yurthub/pki/yurthub-current.pem".
I0630 14:51:12.032592       1 certificate_manager.go:282] Certificate rotation is enabled.
I0630 14:51:12.032750       1 cert_mgr.go:438] yurthub config file already exists, skip init config file
I0630 14:51:12.032885       1 certificate_manager.go:553] Certificate expiration is 2022-06-30 10:34:35 +0000 UTC, rotation deadline is 2022-05-09 17:39:34.602331878 +0000 UTC
I0630 14:51:12.032984       1 certificate_manager.go:288] Waiting 7514h48m22.569356549s for next certificate rotation
I0630 14:51:12.035584       1 start.go:96] 3. new transport manager
I0630 14:51:12.035629       1 transport.go:60] use /var/lib/yurthub/pki/ca.crt ca cert file to access remote server
I0630 14:51:12.036040       1 start.go:104] 4. create health checker for remote servers
I0630 14:51:12.037587       1 connrotation.go:145] create a connection from <IP_ADDRESS>:46282 to <IP_ADDRESS>:6443, total 1 connections in transport manager dialer
I0630 14:51:13.454485       1 health_checker.go:215] failed to update lease: backoff ensure lease error: Unauthorized, remote server https://<IP_ADDRESS>:6443
W0630 14:51:13.454548       1 health_checker.go:96] cluster remote server https://<IP_ADDRESS>:6443 is unhealthy.
I0630 14:51:13.454640       1 start.go:113] 5. new cache manager with storage wrapper and serializer manager
I0630 14:51:13.455023       1 cache_agent.go:68] reset cache agents to [kubelet kube-proxy flanneld coredns yurttunnel-agent]
I0630 14:51:13.464078       1 start.go:121] 6. new gc manager for node ubuntu, and gc frequency is a random time between 120 min and 360 min
I0630 14:51:13.464813       1 gc.go:97] list pod keys from storage, total: 5
I0630 14:51:13.466963       1 cert_mgr.go:213] re-fix hub rest config host successfully with server https://<IP_ADDRESS>:6443
E0630 14:51:13.494417       1 gc.go:113] could not list pods for node(ubuntu), Unauthorized
I0630 14:51:13.494622       1 start.go:130] 7. new reverse proxy handler for remote servers
I0630 14:51:13.494706       1 start.go:139] 8. create dummy network interface yurthub-dummy0 and init iptables manager
I0630 14:51:13.494806       1 gc.go:74] start gc events after waiting 248.241µs from previous gc
I0630 14:51:13.499718       1 cert_mgr.go:213] re-fix hub rest config host successfully with server https://<IP_ADDRESS>:6443
I0630 14:51:13.508918       1 gc.go:163] list kubelet event keys from storage, total: 42
E0630 14:51:13.512477       1 gc.go:177] could not get kubelet kubelet/events/default/ubuntu.168bce0200b9c401 event for node(ubuntu), Unauthorized
I0630 14:51:13.512580       1 gc.go:160] no kube-proxy events in local storage, skip kube-proxy events gc
I0630 14:51:13.589586       1 start.go:147] 9. new yurthub server and begin to serve, dummy proxy server: <IP_ADDRESS>:10261
I0630 14:51:13.589659       1 start.go:150] 9. new yurthub server and begin to serve, proxy server: <IP_ADDRESS>:10261, hub server: <IP_ADDRESS>:10267
I0630 14:51:19.827438       1 util.go:232] start proxying: get /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0, in flight requests: 1
I0630 14:51:19.836093       1 util.go:232] start proxying: get /api/v1/services?limit=500&resourceVersion=0, in flight requests: 2
I0630 14:51:19.837175       1 util.go:232] start proxying: get /api/v1/nodes?fieldSelector=metadata.name%3Dubuntu&limit=500&resourceVersion=0, in flight requests: 3
I0630 14:51:19.847186       1 util.go:215] kubelet list nodes: /api/v1/nodes?fieldSelector=metadata.name%3Dubuntu&limit=500&resourceVersion=0 with status code 200, spent 9.727074ms
I0630 14:51:19.848767       1 util.go:232] start proxying: get /api/v1/nodes?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dubuntu&resourceVersion=1076673&timeoutSeconds=551&watch=true, in flight requests: 3
I0630 14:51:19.856468       1 util.go:215] kubelet list services: /api/v1/services?limit=500&resourceVersion=0 with status code 200, spent 20.065722ms
I0630 14:51:19.858253       1 util.go:232] start proxying: get /api/v1/services?allowWatchBookmarks=true&resourceVersion=192&timeoutSeconds=483&watch=true, in flight requests: 3
I0630 14:51:19.865159       1 util.go:215] kubelet list pods: /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0 with status code 200, spent 37.322593ms
I0630 14:51:19.867585       1 util.go:232] start proxying: get /api/v1/pods?allowWatchBookmarks=true&fieldSelector=spec.nodeName%3Dubuntu&resourceVersion=1786&timeoutSeconds=415&watch=true, in flight requests: 3
I0630 14:51:24.866911       1 health_checker.go:215] failed to update lease: backoff ensure lease error: Unauthorized, remote server https://<IP_ADDRESS>:6443
I0630 14:51:26.157822       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csinodes/ubuntu, in flight requests: 4
I0630 14:51:26.160928       1 util.go:215] kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu with status code 200, spent 2.796241ms
I0630 14:51:26.161695       1 util.go:232] start proxying: post /api/v1/namespaces/default/events, in flight requests: 4
I0630 14:51:26.161997       1 util.go:215] kubelet create events: /api/v1/namespaces/default/events with status code 201, spent 144.314µs
I0630 14:51:26.173481       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0, in flight requests: 4

@rambohe-ch
Sorry that I forgot to ping you XD

https://github.com/openyurtio/openyurt/issues/367#issuecomment-869654739

"Duplicated creation" of what you mentioned there?

for avoiding duplicated creation and creation failure when cloud-edge network disconnected.

Sorry, but the creation of what here?

@Windrow  Very sorry for late feedback.
The meaning of duplicated creation is that overwrite files under /var/lib/yurthub dir.

by the way, maybe we need to check the validity of the old files under /var/lib/yurthub before re-use the old files.

Yes. Maybe a timeout or a retry limit will do?

I think that if server address in /var/lib/yurthub/yurthub.conf file is changed, we can overwrite files under /var/lib/yurthub dir because the node maybe connected to other kube-apiserver before and files under /var/lib/yurthub is not cleanuped.

I0630 14:51:11.958029       1 config.go:124] yurthub would connect remote servers: https://<IP_ADDRESS>:6443
I0630 14:51:11.962502       1 start.go:67] yurthub cfg: &config.YurtHubConfiguration{LBMode:"rr", RemoteServers:[]*url.URL{(*url.URL)(0x4000568100)}, YurtHubServerAddr:"<IP_ADDRESS>:10267", YurtHubProxyServerAddr:"<IP_ADDRESS>:10261", YurtHubProxyServerDummyAddr:"<IP_ADDRESS>:10261", GCFrequency:120, CertMgrMode:"hubself", NodeName:"ubuntu", HeartbeatFailedRetry:3, HeartbeatHealthyThreshold:2, HeartbeatTimeoutSeconds:2, MaxRequestInFlight:250, JoinToken:"ghijkl.0123456789101112", RootDir:"/var/lib/yurthub", EnableProfiling:true, EnableDummyIf:true, EnableIptables:true, HubAgentDummyIfName:"yurthub-dummy0", StorageWrapper:(*cachemanager.storageWrapper)(0x4000187dc0), SerializerManager:(*serializer.SerializerManager)(0x4000187e40)}
I0630 14:51:11.962655       1 start.go:82] 1. register cert managers
I0630 14:51:11.962697       1 certificate.go:60] Registered certificate manager kubelet
I0630 14:51:11.962747       1 certificate.go:60] Registered certificate manager hubself
I0630 14:51:11.962771       1 start.go:88] 2. create cert manager with hubself mode
I0630 14:51:11.962847       1 cert_mgr.go:239] /var/lib/yurthub/pki/ca.crt file already exists, so skip to create ca file

if /var/lib/yurthub/pki/ca.crt file is ready, we only re-use it instead get it from kube-apiserver again and overwrite it.
because we may not able to get it from kube-apiserver for cloud-edge network disconnected.

I0630 14:51:11.983053       1 cert_mgr.go:124] use /var/lib/yurthub/pki/ca.crt ca file to bootstrap yurthub
I0630 14:51:11.984461       1 cert_mgr.go:314] yurthub bootstrap conf file already exists, skip init bootstrap
I0630 14:51:11.993306       1 certificate_store.go:130] Loading cert/key pair from "/var/lib/yurthub/pki/yurthub-current.pem".
I0630 14:51:12.032592       1 certificate_manager.go:282] Certificate rotation is enabled.
I0630 14:51:12.032750       1 cert_mgr.go:438] yurthub config file already exists, skip init config file
I0630 14:51:12.032885       1 certificate_manager.go:553] Certificate expiration is 2022-06-30 10:34:35 +0000 UTC, rotation deadline is 2022-05-09 17:39:34.602331878 +0000 UTC
I0630 14:51:12.032984       1 certificate_manager.go:288] Waiting 7514h48m22.569356549s for next certificate rotation
I0630 14:51:12.035584       1 start.go:96] 3. new transport manager
I0630 14:51:12.035629       1 transport.go:60] use /var/lib/yurthub/pki/ca.crt ca cert file to access remote server
I0630 14:51:12.036040       1 start.go:104] 4. create health checker for remote servers
I0630 14:51:12.037587       1 connrotation.go:145] create a connection from <IP_ADDRESS>:46282 to <IP_ADDRESS>:6443, total 1 connections in transport manager dialer
I0630 14:51:13.454485       1 health_checker.go:215] failed to update lease: backoff ensure lease error: Unauthorized, remote server https://<IP_ADDRESS>:6443
W0630 14:51:13.454548       1 health_checker.go:96] cluster remote server https://<IP_ADDRESS>:6443 is unhealthy.
I0630 14:51:13.454640       1 start.go:113] 5. new cache manager with storage wrapper and serializer manager
I0630 14:51:13.455023       1 cache_agent.go:68] reset cache agents to [kubelet kube-proxy flanneld coredns yurttunnel-agent]
I0630 14:51:13.464078       1 start.go:121] 6. new gc manager for node ubuntu, and gc frequency is a random time between 120 min and 360 min
I0630 14:51:13.464813       1 gc.go:97] list pod keys from storage, total: 5
I0630 14:51:13.466963       1 cert_mgr.go:213] re-fix hub rest config host successfully with server https://<IP_ADDRESS>:6443
E0630 14:51:13.494417       1 gc.go:113] could not list pods for node(ubuntu), Unauthorized
I0630 14:51:13.494622       1 start.go:130] 7. new reverse proxy handler for remote servers
I0630 14:51:13.494706       1 start.go:139] 8. create dummy network interface yurthub-dummy0 and init iptables manager
I0630 14:51:13.494806       1 gc.go:74] start gc events after waiting 248.241µs from previous gc
I0630 14:51:13.499718       1 cert_mgr.go:213] re-fix hub rest config host successfully with server https://<IP_ADDRESS>:6443
I0630 14:51:13.508918       1 gc.go:163] list kubelet event keys from storage, total: 42
E0630 14:51:13.512477       1 gc.go:177] could not get kubelet kubelet/events/default/ubuntu.168bce0200b9c401 event for node(ubuntu), Unauthorized
I0630 14:51:13.512580       1 gc.go:160] no kube-proxy events in local storage, skip kube-proxy events gc
I0630 14:51:13.589586       1 start.go:147] 9. new yurthub server and begin to serve, dummy proxy server: <IP_ADDRESS>:10261
I0630 14:51:13.589659       1 start.go:150] 9. new yurthub server and begin to serve, proxy server: <IP_ADDRESS>:10261, hub server: <IP_ADDRESS>:10267
I0630 14:51:19.827438       1 util.go:232] start proxying: get /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0, in flight requests: 1
I0630 14:51:19.836093       1 util.go:232] start proxying: get /api/v1/services?limit=500&resourceVersion=0, in flight requests: 2
I0630 14:51:19.837175       1 util.go:232] start proxying: get /api/v1/nodes?fieldSelector=metadata.name%3Dubuntu&limit=500&resourceVersion=0, in flight requests: 3
I0630 14:51:19.847186       1 util.go:215] kubelet list nodes: /api/v1/nodes?fieldSelector=metadata.name%3Dubuntu&limit=500&resourceVersion=0 with status code 200, spent 9.727074ms
I0630 14:51:19.848767       1 util.go:232] start proxying: get /api/v1/nodes?allowWatchBookmarks=true&fieldSelector=metadata.name%3Dubuntu&resourceVersion=1076673&timeoutSeconds=551&watch=true, in flight requests: 3
I0630 14:51:19.856468       1 util.go:215] kubelet list services: /api/v1/services?limit=500&resourceVersion=0 with status code 200, spent 20.065722ms
I0630 14:51:19.858253       1 util.go:232] start proxying: get /api/v1/services?allowWatchBookmarks=true&resourceVersion=192&timeoutSeconds=483&watch=true, in flight requests: 3
I0630 14:51:19.865159       1 util.go:215] kubelet list pods: /api/v1/pods?fieldSelector=spec.nodeName%3Dubuntu&limit=500&resourceVersion=0 with status code 200, spent 37.322593ms
I0630 14:51:19.867585       1 util.go:232] start proxying: get /api/v1/pods?allowWatchBookmarks=true&fieldSelector=spec.nodeName%3Dubuntu&resourceVersion=1786&timeoutSeconds=415&watch=true, in flight requests: 3
I0630 14:51:24.866911       1 health_checker.go:215] failed to update lease: backoff ensure lease error: Unauthorized, remote server https://<IP_ADDRESS>:6443
I0630 14:51:26.157822       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csinodes/ubuntu, in flight requests: 4
I0630 14:51:26.160928       1 util.go:215] kubelet get csinodes: /apis/storage.k8s.io/v1/csinodes/ubuntu with status code 200, spent 2.796241ms
I0630 14:51:26.161695       1 util.go:232] start proxying: post /api/v1/namespaces/default/events, in flight requests: 4
I0630 14:51:26.161997       1 util.go:215] kubelet create events: /api/v1/namespaces/default/events with status code 201, spent 144.314µs
I0630 14:51:26.173481       1 util.go:232] start proxying: get /apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0, in flight requests: 4

@rambohe-ch No problem.
What is the expected user behavior to reset a yurt cluster? yurtctl revert, then kubeadm reset?
I was considering to remove /var/lib/yurthub when yurtctl revert. If users behave beyond expectation, then they should take responsibility, removing files manually by themselves.

I think that if server address in /var/lib/yurthub/yurthub.conf file is changed, we can overwrite files under /var/lib/yurthub dir

ca.crt is possible to be different when address stays the same. Reset the cluster and establish the cluster with master node unchanged, you will get a cluster of same server address but new public key.

ca.crt is possible to be different when address stays the same. Reset the cluster and establish the cluster with master node unchanged, you will get a cluster of same server address but new public key.

we will add yurtctl reset command to cleanup edge node at soon. you can reference the proposal here: https://github.com/openyurtio/openyurt/pull/341


feat(builder): make SOURCE_VERSION env variable

Make a SOURCE_VERSION environment variable available during slug builds
which represents the git commit SHA-1 of the source being built. Mirrors
this Heroku feature: https://devcenter.heroku.com/changelog-items/630
Fixes issue #4491

Looks like this PR failed:

remote: time="2015-10-23T14:18:05Z" level="fatal" msg="Error: ENV must have two arguments"

Oops, don't have deis setup (new laptop). Will try to fix that test.

@olalonde after this change I don't see SOURCE_VERSION inside the container:
$ deis run env
Running 'env'...
HOSTNAME=80db917ce87a
DEIS_APP=triple-bagpiper
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/app/bin
PWD=/app
GIT_SHA=14fb753cf3c1b740879e62852ca222426d8aa0d5
GOMAXPROCS=1
HOME=/app
SHLVL=1
PORT=5000
DEIS_RELEASE=v2
_=/usr/bin/env

Maybe this line would be a better place to make the change?
And as you noted, this wouldn't work for Dockerfile-based builds. But Deis already includes the GIT_SHA variable, which is equivalent to Heroku's SOURCE_VERSION. (Does Deis need both?)

I tested this with your helpful test app and see SOURCE_VERSION during the build:
       npm_config_version: '',
       SOURCE_VERSION: '39efe093faac0f678b31ae1c6dde4ff6f9407bdb',
       npm_config_local_address: '',

So mission accomplished. Thanks @olalonde!

Thanks :)


Edit section Single Machine Concurrency

Add parallel-io to the list of the Single Machine Concurrency libraries.

parallel-io is the first-aid-cure-all medicine I use whenever I find my Haskell program slow and my many CPU cores vacant except one. For really compute-heavy task we Haskellers have more professional tools such as accelerate in our arsenal, but for any other casual programming parallel is just satisfactory. It is a Haskeller's joy to see all your program suddenly parallelize, since the code you write is 100% pure, and all the CPU cores utilized.
p.s. don't forget to deepseq the results of the individual computations!

Normally I would use the async library for this purpose, specifically the mapConcurrently function or the Concurrently applicative.  For example, the parallel function can be implemented either as:
parallel = mapConcurrently id

-- or:

parallel = runConcurrently . sequenceA . Concurrently

Also, both libraries are implemented in roughly the same way.


open in browser but only once

I wasn't able to test locally, when doing npm link and running x0 im guessing because of the update-notifier which only runs on  live packages.
That is also a thing to improve in the future i guess...
Anyways the gist of the PR:

Added yarn.lock file maybe it'd be good to add package-lock.json as well for locking up the dependencies.

Removed opn dependency

Added react-dev-utils dependency to use openBrowser from it.

Removed useless opened = false since openBrowser now handles that for us:

        if (options.open) {
          openBrowser(`http://localhost:${port}`)
        }

That's about it...

alright! lockfile gone

Awesome, thanks! 💯


Centos7 wildfly service fails for the first time

Puppet runs fails for the first time on centos
Notice: /Stage[main]/Apache::Service/Service[httpd]: Triggered 'refresh' from 1 events
Error: Could not start Service[wildfly]: Execution of '/bin/systemctl start wildfly' returned 6: Failed to start wildfly.service: Unit wildfly.service failed to load: No such file or directory.
Error: /Stage[main]/Wildfly::Service/Service[wildfly]/ensure: change from stopped to running failed: Could not start Service[wildfly]: Execution of '/bin/systemctl start wildfly' returned 6: Failed to start wildfly.service: Unit wildfly.service failed to load: No such file or directory.

Manually starting wildly
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# service wildfly start
Reloading systemd:  Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 39)
                                                           [  OK  ]
Starting wildfly (via systemctl):  Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 39)
                                                           [  OK  ]

And then it works proper,

First I check the status with systemctl command and it reports perfectly fine
Then I stop the wildly with systemctl and works properly.
Then starting the wildly with systemctl works properly.

Looks like first time we have to start the service with manually.
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# systemctl status wildfly
● wildfly.service - SYSV: WildFly startup script
   Loaded: loaded (/etc/rc.d/init.d/wildfly)
   Active: active (running) since Wed 2015-12-30 03:59:19 UTC; 5s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4473 ExecStart=/etc/rc.d/init.d/wildfly start (code=exited, status=0/SUCCESS)
 Main PID: 4576 (java)
   CGroup: /lxc/beaker/lxc/beaker-role-appeng-wildfly-centos7-mrfkyciu/system.slice/wildfly.service
           ├─4481 /bin/sh /etc/rc.d/init.d/wildfly start
           ├─4484 runuser -s /bin/bash wildfly -c ulimit -S -c 0 >/dev/null 2>&1 ; LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid ...
           ├─4485 bash -c ulimit -S -c 0 >/dev/null 2>&1 ; LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid /opt/wildfly/bin/standal...
           ├─4486 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone-full.xml -Djboss.bind.address=<IP_ADDRESS> -Djboss.bind.address.management=<IP_ADDRESS> -Djbos...
           └─4576 java -D[Standalone] -server -XX:+UseCompressedOops -server -XX:+UseCompressedOops -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.boot...

Dec 30 03:59:03 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Starting SYSV: WildFly startup script...
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu wildfly[4473]: Starting wildfly: [  OK  ]
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: wildfly.service: Supervising process 4576 which is not our child. We'll most ...exits.
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Started SYSV: WildFly startup script.
Hint: Some lines were ellipsized, use -l to show in full.
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# systemctl stop wildfly
Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 39)
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# systemctl status wildfly
● wildfly.service - SYSV: WildFly startup script
   Loaded: loaded (/etc/rc.d/init.d/wildfly)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

Dec 30 03:59:03 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Starting SYSV: WildFly startup script...
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu wildfly[4473]: Starting wildfly: [  OK  ]
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: wildfly.service: Supervising process 4576 which is not our child. We'll most ...exits.
Dec 30 03:59:19 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Started SYSV: WildFly startup script.
Dec 30 03:59:31 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Stopping SYSV: WildFly startup script...
Dec 30 03:59:32 beaker-role-appeng-wildfly-centos7-mrfkyciu wildfly[4745]: Stopping wildfly: [  OK  ]
Dec 30 03:59:32 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Stopped SYSV: WildFly startup script.
Hint: Some lines were ellipsized, use -l to show in full.
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# systemctl start wildfly
Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 39)
[root@beaker-role-appeng-wildfly-centos7-mrfkyciu ~]# systemctl status wildfly
● wildfly.service - SYSV: WildFly startup script
   Loaded: loaded (/etc/rc.d/init.d/wildfly)
   Active: active (running) since Wed 2015-12-30 03:59:55 UTC; 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4786 ExecStart=/etc/rc.d/init.d/wildfly start (code=exited, status=0/SUCCESS)
 Main PID: 4889 (java)
   CGroup: /lxc/beaker/lxc/beaker-role-appeng-wildfly-centos7-mrfkyciu/system.slice/wildfly.service
           ├─4794 /bin/sh /etc/rc.d/init.d/wildfly start
           ├─4797 runuser -s /bin/bash wildfly -c ulimit -S -c 0 >/dev/null 2>&1 ; LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid ...
           ├─4798 bash -c ulimit -S -c 0 >/dev/null 2>&1 ; LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid /opt/wildfly/bin/standal...
           ├─4799 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone-full.xml -Djboss.bind.address=<IP_ADDRESS> -Djboss.bind.address.management=<IP_ADDRESS> -Djbos...
           └─4889 java -D[Standalone] -server -XX:+UseCompressedOops -server -XX:+UseCompressedOops -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.boot...

Dec 30 03:59:39 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Starting SYSV: WildFly startup script...
Dec 30 03:59:55 beaker-role-appeng-wildfly-centos7-mrfkyciu wildfly[4786]: Starting wildfly: [  OK  ]
Dec 30 03:59:55 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: wildfly.service: Supervising process 4889 which is not our child. We'll most ...exits.
Dec 30 03:59:55 beaker-role-appeng-wildfly-centos7-mrfkyciu systemd[1]: Started SYSV: WildFly startup script.
Hint: Some lines were ellipsized, use -l to show in full.```

Hi
I also test this module (latest from github) on centos 7 with wildfly 9.0.2 and it works for me
The only bug I got it tries to enable the service in every puppet run like this
Notice: /Stage[main]/Wildfly::Service/Service[wildfly]/enable: enable changed 'false' to 'true'
==> default: Notice: /Stage[main]/Wildfly::Prepare/Group[wildfly]/ensure: created
==> default: Notice: /Stage[main]/Wildfly::Prepare/User[wildfly]/ensure: created
==> default: Notice: /Stage[main]/Wildfly::Prepare/File[/opt/wildfly]/ensure: created

==> default: Notice: /Stage[main]/Wildfly::Install/Exec[Download wildfly from http://download.jboss.org/wildfly/9.0.2.Final/wildfly-9.0.2.Final.tar.gz]/returns: executed successfully
==> default: Info: /Stage[main]/Wildfly::Install/Exec[Download wildfly from http://download.jboss.org/wildfly/9.0.2.Final/wildfly-9.0.2.Final.tar.gz]: Scheduling refresh of Exec[untar wildfly-9.0.2.Final.tar.gz]
==> default: Notice: /Stage[main]/Wildfly::Install/Exec[untar wildfly-9.0.2.Final.tar.gz]/returns: executed successfully
==> default: Notice: /Stage[main]/Wildfly::Install/Exec[untar wildfly-9.0.2.Final.tar.gz]: Triggered 'refresh' from 1 events

==> default: Info: Computing checksum on file /opt/wildfly/bin/standalone.conf
==> default: Info: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]: Filebucketed /opt/wildfly/bin/standalone.conf to puppet with sum f87f0b158b9734ca32d7d307d3567ff2
==> default: Notice: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]/content: content changed '{md5}f87f0b158b9734ca32d7d307d3567ff2' to '{md5}30aa047065bc97124716636387d96a8b'
==> default: Notice: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]/seluser: seluser changed 'unconfined_u' to 'system_u'
==> default: Notice: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]/seltype: seltype changed 'usr_t' to 'bin_t'
==> default: Info: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]: Scheduling refresh of Class[Wildfly::Service]
==> default: Info: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]: Scheduling refresh of Class[Wildfly::Service]
==> default: Info: /Stage[main]/Wildfly::Setup/File[/opt/wildfly/bin/standalone.conf]: Scheduling refresh of Class[Wildfly::Service]

==> default: Notice: /Stage[main]/Wildfly::Setup/Wildfly::Config::Mgmt_user[wildfly]/Wildfly::Config::User[wildfly]/File_line[wildfly:ManagementRealm]/ensure: created

==> default: Info: Class[Wildfly::Service]: Scheduling refresh of Service[wildfly]

==> default: Notice: /Stage[main]/Wildfly::Service/File[/etc/default/wildfly.conf]/ensure: defined content as '{md5}76ba1c433ac18364bae42b40d117bb6d'
==> default: Info: /Stage[main]/Wildfly::Service/File[/etc/default/wildfly.conf]: Scheduling refresh of Service[wildfly]
==> default: Notice: /Stage[main]/Wildfly::Service/File[/etc/init.d/wildfly]/ensure: defined content as '{md5}c51849d364e29f46ed3928cf0f598df8'
==> default: Notice: /Stage[main]/Wildfly::Service/Service[wildfly]/ensure: ensure changed 'stopped' to 'running'
==> default: Info: /Stage[main]/Wildfly::Service/Service[wildfly]: Unscheduling refresh on Service[wildfly]

this is the config I used
node default {
  include my_os
  include my_java
  include my_wildfly
}

# Operating Sytem settings
class my_os {

  host{'localhost':
    ip           => "<IP_ADDRESS>",
    host_aliases => ['localhost.localdomain',
                     'localhost4',
                     'localhost4.localdomain4'],
  }
  host{'dev.example.com':
    ip           => "<IP_ADDRESS>",
    host_aliases => 'dev',
  }

  service { iptables:
    enable    => false,
    ensure    => false,
    hasstatus => true,
  }

  $install = ['binutils.x86_64','wget']

  package { $install:
    ensure  => present,
  }
}

class my_java {
  contain my_os

  class { 'jdk_oracle':
    version        => "8",
    version_update => '60',
    version_build  => '27',
  }
}

class my_wildfly{
  contain my_os, my_java

  class { 'wildfly':
    version           => '9.0.2',
    install_source    => 'http://download.jboss.org/wildfly/9.0.2.Final/wildfly-9.0.2.Final.tar.gz',
    java_home         => '/opt/jdk1.8.0_60',
    dirname           => '/opt/wildfly',
    mode              => 'standalone',
    config            => 'standalone-full-ha.xml',
    users_mgmt        => { 'wildfly' => { password => 'wildfly'}},
  }

}

Thank you @ashish1099
First, are you using Safari? He keeps trying to replace wildfly for wildly and it really annoys me hahaha
I was aware of this problem, but was unable to map the cause since it seemed non-deterministic (heisenbug) in my environment
One day I lost about 4-6 hours of my day due to VMWare Fusion slow network when using beaker (hate that I can't use vagrant-cachier with Beaker + Vagrant)
@biemond This problem that you reported is a constant. Firstly I thought it was a a problem with service type (he just keeps reporting that it can't enable the service), but lately started to think that I might be missing something about systemd behavior (i.e. Do I really need /etc/systemd/system/wildfly.service file?)
http://www.dmartin.es/2014/07/jboss-eap-6-as-rhel-7-service/

indeed
puppet on rhel 7 checks with systemctl the UnitFileState property for if it is enabled or not. In our case this property is empty.
The wildfly service ( <7.0 init.d script ) does not support systemctl is-enabled
But the dmartin solution seems fine. I will take a look at it

Just fixed with latest commit. Feel free to test and reopen this if you still having problems with RHEL7 based distros.


manifest annotate

Adds manifest annotate subcommand.
Signed-off-by: Qi Wang<EMAIL_ADDRESS>

@TomSweeneyRedHat PTAL

A few nits here and there, but looks good overall, ty @QiWang19 !

/lgtm
/hold

/hold cancel


Create new board from the project index?

Should we let people create new boards someplace other than the command line? Could be nice to have to get people to create boards themselves rather than just joining existing ones...

done


Add Custom Message to Fuzz Testing

Change Description
This PR addresses #7237 and adds the custom message of the lnwire package to the fuzz tests.
@Crypt-iQ could you take a look and check whether I am missing something before I set it to "ready for review", thanks in advance :)
Steps to Test
Run the fuzz test suite for the lnwire package with make fuzz pkg=lnwire or test the new fuzz test explicitly with
go test -fuzz=FuzzCustomMessage in the lnwire directory
Pull Request Checklist
Testing

[x] Your PR passes all CI checks.
[x] Tests covering the positive and negative (error paths) are included.
[x] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[x] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[x] Commits follow the Ideal Git Commit Structure.
[x] Any new logging statements use an appropriate subsystem and logging level.
[x]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

Thanks for reviewing this PR :)

@crypt-iq: review reminder

is this going into 16.1?

Hmm, good question. I guess since this only adds test/fuzzing coverage and has already received review, I think we can get it in with 0.16.
@saubyk do you agree?

Hi @guggero added to 0.16.0's scope, you can go ahead and merge if the reviews look good. thanks


Cannot find block device on ARM

The block example from the mirage hello world tutorial cannot find the attached block device (see error below). I am using losetup due to the issues with qemu on ARM, this is a cubieboard2 setup with xen-arm-builder.
the error:
Block.connect /home/mirage/mirage-skeleton/block/disk.img: unable to match '/home/mirage/mirage-skeleton/block/disk.img' to any available devices [ 51713 ]
Block.connect /home/mirage/mirage-skeleton/block/disk.img: could not find device
Fatal error: exception Failure("block1")
Raised at file "src/core/lwt.ml", line 788, characters 22-23
Called from file "main.ml", line 31, characters 2-28
Mirage exiting with status 2
Do_exit called!

the disk seems to be in the correct location
$ sudo losetup -a
/dev/loop0: [b302]:135689 (/home/mirage/mirage-skeleton/block/disk.img)

and cat dev/loop0 returns the expected output.
This is block_test.xl
cat block_test.xl
# Generated by Mirage (Fri, 23 Jan 2015 12:13:00 GMT).

name = 'block_test'
kernel = '/home/mirage/mirage-skeleton/block/mir-block_test.xen'
builder = 'linux'
memory = 256
on_crash = 'preserve'

# You must define the network and block interfaces manually.

# The disk configuration is defined here:
# http://xenbits.xen.org/docs/4.3-testing/misc/xl-disk-configuration.txt
# An example would look like:
disk = [ '/dev/loop0,,xvda1,w' ]

Also the terminal hangs after Do_exit is called until I call xl destroy in another terminal, I would be nice if it exited itself.

Use CTRL-] to disconnect the console (it if exited by itself, you wouldn't be able to see the error).
Anyway, you need to use the xvda1 block name in the config file, not the file you used for the loopback device (which is private to dom0). See:
http://lists.xenproject.org/archives/html/mirageos-devel/2015-01/msg00112.html
If you want to update the Mirage skeleton example to do the right thing on Xen and Unix, that would be good...

works perfectly, put in PR for fix to stop beginners in mirage-skeleton getting tripped up


Composing Schemas Raises NoMethodError in Validation Failures

Describe the bug
Composing complex Schemas appears to throw a NoMethodError: undefined method 'to_or' for #<Array:0x0> in a failure case rather than simply return an object with populated validation errors/failures.
This was found while using:
Using bundler 2.1.4
Using dry-equalizer 0.3.0
Using dry-initializer 3.0.4
Using concurrent-ruby 1.1.8
Using dry-inflector 0.2.0
Using ice_nine 0.11.2
Using dry-core 0.5.0
Using dry-configurable 0.12.0
Using dry-logic 1.1.0
Using dry-container 0.7.2
Using dry-types 1.5.0
Using dry-schema 1.6.0
Using dry-struct 1.4.0
Using dry-validation 1.6.0

To Reproduce
#!/usr/bin/env ruby
# frozen_string_literal: true

require 'bundler/inline'

gemfile(true) do
  source 'https://rubygems.org'
  gem 'dry-equalizer'
  gem 'dry-schema'
  gem 'dry-struct'
  gem 'dry-types'
  gem 'dry-validation'
end

MatchingQuestion = Dry::Schema.Params do
  required(:attributes).hash do
    required(:value).value(:array, :filled?).each(:str?, format?: /\A\d+\Z/)
  end
  required(:relationships).hash do
    required(:question).hash do
      required(:data).hash do
        required(:type).value(:str?, eql?: 'matching')
      end
    end
  end
end

MultipleChoiceQuestion = Dry::Schema.Params do
  required(:attributes).hash do
    required(:value).value(:array, :filled?).each(:str?, format?: /\A\d+\Z/)
  end
  required(:relationships).hash do
    required(:question).hash do
      required(:data).hash do
        required(:type).value(:str?, eql?: 'multiple-choice')
      end
    end
  end
end

Question = Dry::Schema.Params do
  required(:data).hash(MatchingQuestion | MultipleChoiceQuestion)
end

def validate(data)
  p Question.(data).errors.to_h
rescue
  p $!.inspect
end

# Good data, no errors/exceptions
validate(data: {attributes: {value: ['1', '2']}, relationships: {question: {data: {type: 'matching'}}}})
validate(data: {attributes: {value: ['1', '2']}, relationships: {question: {data: {type: 'multiple-choice'}}}})

# Bad data, raises NoMethodError exceptions rather than generates errors
validate(data: {attributes: {value: []}, relationships: {question: {data: {type: 'unknown'}}}})
validate(data: {attributes: {value: []}, relationships: {question: {data: {type: 'matching'}}}})
validate(data: {attributes: {value: []}, relationships: {question: {data: {type: 'multiple-choice'}}}})

This generates the following output, where the "bad data" examples above raise a NoMethodError rather than a return a failed validation result:
{}
{}
"#<NoMethodError: undefined method `to_or' for #<Array:0x00007f9521f56a50>\nDid you mean?  to_ary\n               to_s\n               to_a\n               to_h>"
"#<NoMethodError: undefined method `to_or' for #<Array:0x00007f9521f2da60>\nDid you mean?  to_ary\n               to_s\n               to_a\n               to_h>"
"#<NoMethodError: undefined method `to_or' for #<Array:0x00007f9521f07f40>\nDid you mean?  to_ary\n               to_s\n               to_a\n               to_h>"

Expected behavior
The validation should not raise a NoMethodError exception. It should populate the errors of the returned object with Messages about the validation failures.
My environment

Affects my production application: NO
Ruby version: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]

Thanks for reporting this. This feature is still experimental but the plan is to improve it, fix any known issues and have it Ready-Ready for 2.0.0.

Thanks for reporting this. This feature is still experimental but the plan is to improve it, fix any known issues and have it Ready-Ready for 2.0.0.

@solnic: Yeah, I saw the giant WARNING banner on the composing schemas page. 😄  The idea and approach looked so nice I wanted to try it on an existing validator to see how it behaved and what, if any, of it worked. After a couple of hours of toying with it, I kept getting various incarnations of the errors identified in this ticket.

@solnic: Yeah, I saw the giant WARNING banner on the composing schemas page. 😄  The idea and approach looked so nice I wanted to try it on an existing validator to see how it behaved and what, if any, of it worked. After a couple of hours of toying with it, I kept getting various incarnations of the errors identified in this ticket.

@nbibler I'll look into it. It's also possible this is a duplicate of...some...other issue 😅

@nbibler I'll look into it. It's also possible this is a duplicate of...some...other issue 😅

@solnic: Thanks! No particular rush from me. There are certainly other, existing ways in these libraries to validate complicated and dynamic schemas (see Rules).
The composition of schemas looks like a nice way to simplify some of the Rule complexity I've seen in existing applications. It likely also provides an easier way to unit test the validations (smaller schemas are easier to more robustly test) and get better error/failure messages (Rules tend to boil down to a singular key.failure for some combination of conditionals which is less granular than the built-in predicate messaging). But, not having composable schemas today isn't a 🔥  problem.

@solnic: Thanks! No particular rush from me. There are certainly other, existing ways in these libraries to validate complicated and dynamic schemas (see Rules).
The composition of schemas looks like a nice way to simplify some of the Rule complexity I've seen in existing applications. It likely also provides an easier way to unit test the validations (smaller schemas are easier to more robustly test) and get better error/failure messages (Rules tend to boil down to a singular key.failure for some combination of conditionals which is less granular than the built-in predicate messaging). But, not having composable schemas today isn't a 🔥  problem.

@nbibler thanks, I appreciate you sharing this with me 😄 Composing schemas (and also contracts on the dry-validation side) is the biggest thing we want to have in 2.0.0 so stay tuned. Testing it out early is very helpful too, so thank you!

@nbibler thanks, I appreciate you sharing this with me 😄 Composing schemas (and also contracts on the dry-validation side) is the biggest thing we want to have in 2.0.0 so stay tuned. Testing it out early is very helpful too, so thank you!

ran into same issue today using dry-validation.
NoMethodError: undefined method 'path' for #Dry::Schema::Message::Or::MultiPath:0x0000557e8515bcc0 from /usr/local/bundle/gems/dry-schema-1.6.2/lib/dry/schema/result.rb:115:in 'block in error?'
my schema:
EmailType = Dry::Schema.Params do
....
end
NicknameType = Dry::Schema.Params do
required(:nickname).filled(:string, max_size?: 200)
required(:password).filled(:string, min_size?: 8, max_size?: 128)
end
class SomeContract
params do
required(:creds).hash(EmailType | NicknameType)
end
end
tried to pass only nickname without password and got this error
contract = SomeContract.new
contract.call(input)

@aleksandra-stolyar yes it's using the same implementation. Fixing it here will fix it there.

Any chance the above PR will get merged with a new release? I know it's experimental, but if we have a reasonable fix can it get pushed?

Fixed via #366

@edgarjs 1.8.1


Setup REGISTRY_PROJECT_IDENTIFIER inside Makefile

Some commands under Makefile require the environment variable REGISTRY_PROJECT_IDENTIFIER as a prerequisite. Currently only scripts under auth/.*.sh can setup the variable, but scripts like auth/CLOUDRUN.sh or auth/GKE.sh contain extra steps that are not required by the Makefile. To reduce effort on local setup, we should modify the Makefile to set REGISTRY_PROJECT_IDENTIFIER=$(gcloud config list --format 'value(core.project)')

SGTM. We might do that in a dependency of the build and deploy actions so that the other steps can be run without a project.


[Port] Fix opening new untitled query (#16078)

(cherry picked from commit 9fc2cff6541479bf8598d37ec9e3fb898edf3e40)
Fixes #16074

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26229

Relevant Lines:
55688

💛  - Coveralls


I cannot input Japanese with ibus-mozc (IME) on VSCodium 1.56.0 for Ubuntu Linux

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

VS Code Version:VSCodium 1.56.0
OS Version:Ubuntu 20.04.2 LTS

I am Japanese.
Please forgive my English for being incomplete.
Steps to Reproduce:

I cannot input Japanese with ibus-mozc (IME) on VSCodium 1.56.0 for Ubuntu Linux installed from the official Ubuntu repository of Ubuntu Software.
However It can work Visual Studio Code 1.56.2 for Ubuntu Linux installed from the official Ubuntu repository of Ubuntu Software.
Could you please modify VSCodium for Ubuntu Linux so that I can input Japanese with ibus-mozc not only in Visual Studio Code for Ubuntu Linux but also in VSCodium for Ubuntu Linux?

Dear Daniel Imms.
There is a description of ibus-gtk3 on the 31st line of the following source file. But there is no ibus-mozc.
https://github.com/microsoft/vscode/blob/94c9ea46838a9a619aeafb7e8afd1170c967bb55/resources/linux/snap/snapcraft.yaml
vscode/resources/linux/snap/snapcraft.yaml
name: @@NAME@@
    version: @@VERSION@@

    summary: Code editing. Redefined.

    description: |

      Visual Studio Code is a new choice of tool that combines the

      simplicity of a code editor with what developers need for the core

      edit-build-debug cycle.

    architectures:

      - build-on: amd64

        run-on: @@ARCHITECTURE@@

    grade: stable

    confinement: classic

    parts:

      gnome:

        plugin: nil

        build-packages:

          - software-properties-common

        override-pull: |

          add-apt-repository -y ppa:ubuntu-desktop/gnome-3-26

          apt -y update

      code:

        after:

          - gnome

        plugin: dump

        source: .

        stage-packages:

          - ibus-gtk3

          - fcitx-frontend-gtk3

          - gvfs-libs

          - libasound2

          - libgconf-2-4

          - libglib2.0-bin

          - libgnome-keyring0

          - libgbm1

          - libgtk-3-0

          - libnotify4

          - libnspr4

          - libnss3

          - libpcre3

          - libpulse0

          - libsecret-1-0

          - libxss1

          - libxtst6

          - zlib1g

        prime:

          - -usr/share/doc

          - -usr/share/fonts

          - -usr/share/icons

          - -usr/share/lintian

          - -usr/share/man

    apps:

      @@NAME@@:

        command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@

        common-id: @@NAME@@.desktop

        environment:

          DISABLE_WAYLAND: 1

          GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

      url-handler:

        command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --open-url

        environment:

          DISABLE_WAYLAND: 1

          GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

Dear Daniel Imms.
Instead of installing VSCodium 1.56.0 from the official Ubuntu repository, I installed VSCodium 1.57.0 by the following method, and I was able to input Japanese with ibus-mozc on VSCodium 1.57.0 for Ubuntu Linux.
https://vscodium.com/
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg | gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/vscodium.gpg
echo 'deb https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/ vscodium main' | sudo tee --append /etc/apt/sources.list.d/vscodium.list
sudo apt update && sudo apt install codium
https://github.com/VSCodium/vscodium/issues/646
/usr/share/codium/bin/codium
Daniel Imms,I am grateful to you.


Remove error from anydata

https://github.com/ballerina-platform/ballerina-spec/issues/463

Need to fix
#24337
#24338
#24339

This is not yet fixed properly. Created another issue.
https://github.com/ballerina-platform/ballerina-lang/issues/28040

This is not yet fixed properly. Created another issue.
https://github.com/ballerina-platform/ballerina-lang/issues/28040


#1615, adjust Netty flush procedure

Fixes #1615.

Pull Request Test Coverage Report for Build 5992

3 of 12 (25.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 71.654%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sharding-proxy/src/main/java/io/shardingsphere/shardingproxy/frontend/mysql/CommandExecutor.java
2
11
18.18%

Totals

Change from base Build 5988:
-0.02%

Covered Lines:
9434

Relevant Lines:
13166

💛  - Coveralls


Unable to migrate VM between new host and older hosts , running same versions

ISSUE TYPE

Bug Report

COMPONENT NAME

 Agent , KVM

CLOUDSTACK VERSION

4.18.1 , 4.18.2

CONFIGURATION

OS / ENVIRONMENT
AlmaLinux 9.3 - 9.4
SUMMARY
I'm running 10 Host Almalinux 9.3 Cluster witout issues.
However , on adding a new host , I cannot migrate an VM away from the new host.
I can Migrate to the new host , but not away from it.
All Machines are 100% identical , running same libvirt 9.5
Here is the Log I Get
2024-10-04 00:06:51,927 DEBUG [kvm.resource.LibvirtComputingResource] (agentRequest-Handler-2:null) (logid:50b23ae4) This host utilizes cgroupv2 (as the max shares value is [145600]), thus, the VM requested shares of [4000] will be converted to consider the host limits; the new CPU shares value is [275].
2024-10-04 00:06:51,931 INFO  [resource.wrapper.LibvirtMigrateCommandWrapper] (agentRequest-Handler-2:null) (logid:50b23ae4) VM [i-2-76-VM] will have CPU shares altered from [4000] to [0] as part of migration because the cgroups version differs between hosts.
All Nodes have cgroup2
grep cgroup /proc/filesystems
nodev   cgroup
nodev   cgroup2
EXPECTED RESULTS
Should be able to migrate between hosts without issues.
ACTUAL RESULTS
Unable to migrate VMs

@hmadra
what's the output of command stat -fc %T /sys/fs/cgroup/ ?


ETW Events Per Function execution

Added ETW Event for Function Level Execution.
The ETW Event Contains Function Name, Site Name, Started Count, Completed Count, Failed Count, Total Execution Time.
This Event is raised every second for a high load running function and does aggregations for execution count for that second.

Test:
Deployed a private Functions Package to private stamp and ran samplehttptrigger function

Hi @ShekharGupta1988, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (shgup). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Hi @ShekharGupta1988, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (shgup). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Merged


Error when trying on www.plantuml.com

I was going to try your EIP elements for PlantUML.
Tried the following on www.plantuml.com:
@startuml
!includeurl https://raw.githubusercontent.com/aheil/EIP-PlantUML/master/dist/EIP-PlantUML.puml
MsgChannel(channel1, "Channel 1")
MsgChannel(channel2, "Channel 2")
Message(msg, "Message")

Send(channel1, msg)
Send(msg, channel2)
@enduml

But I'm getting an error.
Error output:
@startuml
!includeurl https://raw.githubusercontent.com/aheil/EIP-PlantUML/master/dist/EIP-PlantUML.puml
' Autogenerated Thursday, August 15, 2019 11:21:54 PM
sprite $aggregator [100x65/16z] {
...
... ( skipping 510 lines )
...
 Declare it as a procedure instead ?

Thanks a lot for reporting. I will investigate it. Maybe it is related to a server update of PlantUML.

This fix introduced a breaking change, as it will no longer work with older versions of PlantUML.
function definitions have been updated to procedure definitions instead.
@DJPorv  Could you please verify that this issue is fixed for you.
To do so, please use the following PUML file in your include  statement instead: https://raw.githubusercontent.com/aheil/EIP-PlantUML/main/dist/EIP-PlantUML.puml

Verified on plantuml.com, closing issue.


Pull down spec.json from commonmark website

Per https://github.com/jgm/CommonMark/issues/482 you can now get the spec.json from the website rather than needing to treat it as a static file.
The script should be modified to use a web query (e.g., using requests.get()) on the fly to the site http://spec.commonmark.org/0.27/spec.json.

@pxhanus you should check this out too! Note: 0.28 was released so the above link is just a hint on where to start.


All events since last refresh not coming though, only the last one

After integration refresh, not all events come through to home assistant, only the last one.  This proves to be problematic.
Scenario:  I come home, put in my code to unlock the door, go inside house, and immediately lock the door.  HA will only see the locked thumbturn event, not the unlock event that happened before it.  I use the unlock event to trigger other things in HA for location based info and it is really nice to que off of the unlock event to set someone home, etc.  Not seeing all the events that happened during the refresh period of the lock integration makes some of these automations not usable anymore.  All the events are in the history of the schlage app.
Is it possible to get all the events that happened between integration refreshes, not just the last one in the history?  Or am I missing something?
Thank you!

I don't see a way to inject things into the HA logbook. Entries end up there when the state inside HA changes. The Schlage API keeps its own set of logs, which we have access to, but AFAIK there's no place to surface them in HA.

Thank you for the reply!
I should clarify and say that I don’t care about when the events come in, just that they come in.  Something like the integration “caches” the missed events it finds since the last refresh and then fires them one after the other.  Even if the event comes in late to ha, that would be fine as long as the event comes in.
I am not sure that it’s possible, but that would avoid having to right to HA logbook directly.  Or something?
Thanks again!

I don't think that would work. You can't really fire events like that in HA, and even if you could, I'm pretty sure the HA maintainers would reject it.

So there is really no way to grab the missed events?  That seems silly.  It’s a simple thing to do since all the info needed is exposed via an api.  Seems like there is something missing here.  If it’s available in the api, available from the app, there should be no reason all the events aren’t available in home assistant.  Seems like there is a big missing piece here not being able to grab all the events from the api that are available.
I doubt the HA designers and maintainers designed a system where all events during a refresh would not be able to be grabbed from an api.  Seems like a big thing to miss at this point in the game.
Why did you close this?  Are you not willing to figure out how to grab events from the api at all?  Is my request asking too much?  Didn’t think asking for what’s available in the api to be available in HA would be too much of an ask…. If so, it is what it is I guess :-|
Thanks again!

The HA logbook is only populated by events that are triggered by a state change observed by HA itself. It doesn't understand how to import events that happen outside of its purview. You might be able to hack around this by faking all the changes as you suggested, but I don't think the HA maintainers would allow that through code review. Feel free to re-open this request as an HA issue, but from my perspective this is infeasible.


Recursive/too many validation issues showing up RE Original Combinations

Not sure if recursive or referring to lots of species with incorrect original combination subgenus placement

This is not recursive, each relationship is validated individually. Should be fixable with soft_validation_fix option now.

@tmcelrath Do confirm this, this was  many relationships, this was bad recursion.

Not too many. I could take care of them one by one and see them go away, and soft validation fix fixes all of them right now. Seems closed to me.

Sorry, I mean this was few relationships, with many messages, i.e. not one to one.  Will consider closed.


Populate standard audit log field for justification

The field being https://github.com/googleapis/googleapis/blob/master/google/rpc/context/attribute_context.proto#L199-L201
log.RequestMetadata.RequestAttributes.Reason
We currently add the justification token to the log metadata. But we should consider also populating the standard reason field with the text justification.
cc: @raserva

I agree that it could be beneficial to copy the "explanation" field from the justificaiton token to the reason field.

Additional idea: Justification can now be auto populated with gRPC interceptor. But when a user doesn't use the interceptor (e.g. not a gRPC service), the parsing/populating of the justification becomes harder. We can add a lib that 1) verify/parse a given justification token, 2) populate a audit log request with the justification

This becomes more important as some downstream component expecting the justification in log.RequestMetadata.RequestAttributes.Reason.
We can json encode the justs claim in the JVS token and put that in this field.

golang part https://github.com/abcxyz/lumberjack/pull/293 completed


[Unstable]Fail to create new Linux Function App with EP2 pricing tier and Central US location

OS: Windows/Mac
Build Version: 20200703.6
Repro Steps:

Create a new Linux Function App --> Select EP2 Pricing Tier --> Select Central US location.
Check the result.

Expect:
Success to create new Linux Function App.
Actual:
Fail to create new Linux Function App.

More Info:

This issue reproduces for EP3 Pricing Tier.

Success to create new Function App with EP2 pricing tier and Central US location in portal.

The result of creating new Linux Function App with EP2 pricing tier in below locations.

Location
Result

East US2
Fail

Central US
Fail

Australia East
Fail

East Asia
Success

Japan East
Success

East US
Success

What are you selecting for App Insights ("Skip for now" or "create new")? And what do you select for runtime stack? I just tried once with EP2 in Central US and it worked

Select "Create new App Insights resource..." and any one runtime stack when creating a new Function App. I test with EP2 in Central US and it also works, but it doesn't work in East US2.

Will track this with https://github.com/microsoft/vscode-azurefunctions/issues/2258 instead


[6.0] Hook variables.

https://github.com/gravitational/gravity/pull/575 backport to 6.0.

Found an issue, will reopen later.


Updated Documentation

Moved from CodePlex
Originally submitted by blmille1
Can we please update the documentation to be in sync with the binaries--or perhaps vice versa.
Just as long as the tutorial works with the library.
Thanks!

Have started work on the updated documentation and tutorials at https://easyhook.github.io

A managed tutorial, and a few native tutorials have been added here: http://easyhook.github.io/tutorials.html


ND4J: inconsistent create methods; can't create rank 1 array

One allows rank 1 arrays, the other does not:
https://github.com/deeplearning4j/deeplearning4j/blob/83a8ea4eefbdde4ed5dd7af7f416b5ad44a4b704/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java#L5408-L5431
I think this should be as simple as removing the check, now that we support rank 1 arrays properly?
Though if not, the behaviour should be consistent.
Aha! Link: https://skymindai.aha.io/features/ND4J-173

That's not a bug. That's feature.
New methods do allow vector creation. Old methods - use legacy logic.
However, if you're ok with breaking backward compatibility with dl4j code - that would be great.

Hm... going forward (long term) it would be better having them aligned. So as much as I hate breaking backward compatibility in general, I think I'd rather fix this sooner (i.e., before next release) rather than later.
That said, I don't recall anywhere in DL4J (well, layers/NNs etc) that rely on the old functionality.

Great. Utra-easy fix then.

Fixed long ago as i remember.


MatButtonToggle errors with Ivy enabled

The MatButtonToggle component throws several errors in ng serve with Ivy compiler enabled.
Reproduction
Not able to reproduct with Stackblitz
Expected Behavior
ng serve should not throw any errors
Actual Behavior
ng serve  throws the following errors:
{
  message: "Cannot read property 'selected' of undefined",
  name: 'TypeError',
  stack:
   "TypeError: Cannot read property 'selected' of undefined
      at MatButtonToggleGroup.get selected [as selected]
      at MatButtonToggleGroup._syncButtonToggle
      at MatButtonToggle.set checked [as checked]
      at setInputsFromAttrs
      at postProcessDirective
      at instantiateAllDirectives
      at createDirectivesAndLocals
      at ɵɵelementStart"
}

{
  message: "Cannot read property 'buttonId' of null",
  name: 'TypeError',
  stack:
   "TypeError: Cannot read property 'buttonId' of null
      at MatButtonToggle_Template
      at executeTemplate
      at checkView
      at componentRefresh
      at refreshChildComponents
      at refreshDescendantViews
      at renderEmbeddedTemplate
      at refreshDynamicEmbeddedViews
      at refreshDescendantViews
      at checkView"
}

Environment
Angular CLI: 8.1.0
Node: 10.15.3
OS: win32 x64
Angular: 8.2.0-next.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package                           Version
@angular-devkit/architect         0.801.0
@angular-devkit/build-angular     0.801.0
@angular-devkit/build-optimizer   0.801.0
@angular-devkit/build-webpack     0.801.0
@angular-devkit/core              8.1.0
@angular-devkit/schematics        8.1.0
@angular/cdk                      8.0.2
@angular/cli                      8.1.0
@angular/material                 8.0.2
@ngtools/webpack                  8.1.0
@schematics/angular               8.1.0
@schematics/update                0.801.0
rxjs                              6.5.2
typescript                        3.4.5
webpack                           4.35.2

Can you post what your template looks like? Otherwise it's difficult to investigate.

@crisbeto thanks very much for your prompt reply. Here is my template. Not something complicated:
  <mat-drawer mode="side" opened>
      <mat-button-toggle-group vertical>
        <mat-button-toggle checked="true" title="Layers" routerLink="/dashboard">
          <mat-icon>layers</mat-icon>
        </mat-button-toggle>
        <mat-button-toggle title="Collections" routerLink="collections">
          <mat-icon>collections</mat-icon>
        </mat-button-toggle>
        <mat-button-toggle title="Projections" routerLink="projections">
          <mat-icon>map</mat-icon>
        </mat-button-toggle>
        <mat-button-toggle title="Settings" routerLink="settings">
          <mat-icon>settings</mat-icon>
        </mat-button-toggle>
      </mat-button-toggle-group>
      <router-outlet></router-outlet>
   </mat-drawer>

@crisbeto @bampakoa I'm having same error on testing. Very simple scenario, no conditional neither iteerations, just one simple toggle group.

It'll be fixed by #16587. Until the fix is released, you should be able to work around it by binding to checked like this: <mat-button-toggle [checked]="true">.

Hello, still i am facing same issue while running unit tests.
below is my code.
<mat-button-toggle-group #adherenceType="matButtonToggleGroup" value="value1" (change)="slectAdherenceType(adherenceType.value)">
value1
value1
value1


Testing on subset of imagenet seems to give less-than-optimal results

Nice work! I am testing the performance on a subset of imagenet (https://tiny-imagenet.herokuapp.com/) using InfoMin_800.pth. I changed the number of clusters to 200. I only tested accuracy on training set. I run the minibatch kmeans for several epochs and so far the accuracy seems to be around 10%.  Tho the first couple dozen clusters can get very high accuracy (80~90%).  Does this seem reasonable? I would imaging if it produced good results on the whole Imagenet with 1000 classes it should produce similar results on a subset. The only caveat I can think of is that I have smaller number of images (100k) so maybe if will affect the quality of k-means clustering.

Hi! Thanks for reaching out. I agree with you that I'd expect to achieve better results on subset of imagenet (of course it depends on what is the subset). But, if I recall correctly, the image dimensions is 64*64 in tiny imagenet which might be the reason of performance drop.
One possible thing to try is to train linear classifier and compare the performance to "big" ImageNet. If there is large performance drop (i.e., you get less then, say, 60% accuracy) then probably the problem is not in the clustering.
For debugging k-means, first, make sure that you perform PCA and use large enough amount of PCA components. Try to increase batch size and check if overclustering provides any improvements.
I'll try to find some time to take a look on if neither of this helps.


Union types and type spread operator not creating new subtype.

Union types and type spread operator not working together.
Example:
type A = {
a: string;
}
type B = {
...A,
b: string,
}
type C = {
...A,
c: string,
}
type D = B | C;
const a: A = { a: 'a' };
const d: D = { a: 'a', b: 'b' };
const tester = (argA: A) => { console.log(argA); };
tester(a); // <- ok
tester(d); // <- gives error below
Error:
Cannot call tester with d bound to argA because:
• Either undefined [1] is incompatible with string [1] in property a.
• Or undefined [1] is incompatible with string [1] in property a.
Expected:
'tester' can be called since d effectively is a subtype of A.
Try it, last tested v0.86:
https://flow.org/try/#0PTAEAEDMBsHsHcBQAXAngBwKagIKgLygDeiooAhgFygDOyATgJYB2A5gNyIC+iKG2AIQLFSoAHQScAGlEAjanSZsZPPllABhYSTISx00QGMFDFqxW806gCLChAH02dEh2MzoVqeQkU+gA5OT+oFycru7IoAAm1LY+foH+UqDyAbLBobzhHsiYdJj0wgAU5PSsOF4AlAQAfMSg2bDQmGJwrCVlOJXsIZy5+fQl3Sh5uYNR3UA

The problem is that {...A, b: string} becomes {a?: string, b: string}. This is thus subsumed by #6855.

Thanks for the pointer, closing.


HDFS-16343. Add some debug logs when the dfsUsed are not used during Datanode startup.

Description of PR
This PR adds debug logging around the datanode startup when the cached dfsUsed is not used during datanode startup.
How was this patch tested?
This is a simple logging patch, tested using existing tests.
For code changes:
https://issues.apache.org/jira/browse/HDFS-16343

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m  8s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
38m 16s

trunk passed

+1 :green_heart:
compile
1m 42s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
1m 29s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m  6s

trunk passed

+1 :green_heart:
mvnsite
1m 41s

trunk passed

+1 :green_heart:
javadoc
1m 10s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 35s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 55s

trunk passed

+1 :green_heart:
shadedclient
27m  6s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 32s

the patch passed

+1 :green_heart:
compile
1m 32s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
1m 32s

the patch passed

+1 :green_heart:
compile
1m 22s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
1m 22s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
0m 57s
/results-checkstyle-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs-project/hadoop-hdfs: The patch generated 1 new + 7 unchanged - 0 fixed = 8 total (was 7)

+1 :green_heart:
mvnsite
1m 29s

the patch passed

+1 :green_heart:
javadoc
0m 59s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 28s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 51s

the patch passed

+1 :green_heart:
shadedclient
26m 33s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
386m 34s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
0m 55s

The patch does not generate ASF License warnings.

502m 55s

Reason
Tests

Failed junit tests
hadoop.hdfs.TestHDFSFileSystemContract

hadoop.hdfs.server.balancer.TestBalancerWithHANameNodes

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3694

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 1a554dfc44b9 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 6087fbb8d1e855f05531d8b13ff2b641ed283730

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/1/testReport/

Max. process+thread count
1975 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

This change LGTM, but there is one checkstyle violation.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
39m  6s

trunk passed

+1 :green_heart:
compile
1m 43s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
1m 32s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m  7s

trunk passed

+1 :green_heart:
mvnsite
1m 40s

trunk passed

+1 :green_heart:
javadoc
1m 11s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 38s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 49s

trunk passed

+1 :green_heart:
shadedclient
27m 14s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 31s

the patch passed

+1 :green_heart:
compile
1m 37s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
1m 37s

the patch passed

+1 :green_heart:
compile
1m 26s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
1m 26s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m  0s

the patch passed

+1 :green_heart:
mvnsite
1m 30s

the patch passed

+1 :green_heart:
javadoc
1m  2s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 36s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 57s

the patch passed

+1 :green_heart:
shadedclient
26m 59s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
173m  1s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
1m 42s

The patch does not generate ASF License warnings.

292m 33s

Reason
Tests

Failed junit tests
hadoop.hdfs.server.datanode.TestBPOfferService

hadoop.hdfs.server.datanode.TestBlockScanner

hadoop.hdfs.server.namenode.TestNameNodeHttpServerXFrame

hadoop.hdfs.server.datanode.TestDataNodeFaultInjector

hadoop.hdfs.server.namenode.TestNamenodeCapacityReport

hadoop.hdfs.server.blockmanagement.TestBlockTokenWithShortCircuitRead

hadoop.hdfs.server.namenode.TestFSEditLogLoader

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3694

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 3801af974af6 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 4e23c2e59eacc244be67bc4612591d3585784f5b

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/2/testReport/

Max. process+thread count
1914 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3694/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.


Lets write Readme files for all categories

📚 Documentation
I've realized that there is not enough documentation. Maybe we should make README files for all categories, in which we explain what the category is about.
(A clear and concise description of what the issue is.)
Have you spent some time to check if this issue has been raised before?
yes
(Have you googled for a similar issue or checked our older issues for a similar bug)
yes
Have you read the Contributing Guidelines?
(Write your answer here.)
yes

@mete23 Add the hacktoberfest label too, if appropriate !

@mete23 , we should also put all the algorithms and data structures into proper directories and then write a readme in that directory !

@dubesar, what say ?

@mete23 Add the hacktoberfest label too, if appropriate !

Unfortunately i am not able to add a label to an issue so we have to wait :(

@mete23 , we should also put all the algorithms and data structures into proper directories and then write a readme in that directory !

Good idea!

@mujtaba1747 yes it is a good idea, you can start it.

@mujtaba1747 yes it is a good idea, you can start it.

Sure !


Remove refs to PaC namespace

With PaC being installed by the OSP operator, we no longer need the pipelines-as-code namespace. Here we cleanup references to that namespace from the reset and test scripts.

/retest

/lgtm

all green - theory confirmed @enarha :-)


Update render_network_bokeh to use Scatter instead of Square + other small fixes

The main change in this PR is to fixe a problem with render_network_bokeh, which was trying to use the old Square function in bokeh.models.  This has been replaced with Scatter, as documented here.
Also added a unit test and fixed a couple of docstrings that need to be raw to avoid errors with backslashes (there are probably more of these that need fixing...).
In addition, I found some scripts that did not run in the latest version of the code, so I modified those to allow them to run.
Note: 1. CombinatorialPromoter Details.ipynb requires the seaborn package to run.  This is not currently included in the dependencies.  I didn't fix that here, but it would be good to do that at some point.

Ready to merge.

Merging.