Event Tracking: For jonInfo

Why are the changes needed?
Store all jobInfos for each statement in mem.

First, according to jobInfo, you can get how long did it run, and get which stage took the longest time by stageIds.
Second, if this job failed that you can get from jobResult field, you can look up which stage cause this situation by stageIds.

Some interfaces:

KyuubiJobInfo: job's summary info, contains statementId, startTime, endTime, jobResult, stageIds.
KyuubiStatementListener: singleton pattern, used for getting metrics about job, stage, executor and so on.
KyuubiStatementMonitor: for storing data in mem and dumpping them to a file when reached threshold.

Test case:
externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/KyuubiStatementMonitorSuite.scala
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ff52b20). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head c6f7f1e differs from pull request most recent head 62ecb53. Consider uploading reports for the commit 62ecb53 to get more accurate results

@@            Coverage Diff            @@
##             master     #814   +/-   ##
=========================================
  Coverage          ?   78.26%
  Complexity        ?       10
=========================================
  Files             ?      134
  Lines             ?     5139
  Branches          ?      639
=========================================
  Hits              ?     4022
  Misses            ?      770
  Partials          ?      347

Continue to review full report at Codecov.

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

thanks, merged to master


virt-handler fails to start on alpine 3.16 k3s cluster

What happened:
virt-handler does not start on alpine 3.16 k3s cluster
What you expected to happen:
I expect all pods of kubevirt started.
How to reproduce it (as minimally and precisely as possible):

I installed k3s cluster on three nodes, one master and other two agents.
curl -sfL https://get.k3s.io | sh -

Pramod-node1:~/.kube# kubectl get nodes -o wide
NAME           STATUS   ROLES                  AGE   VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
pramod-node3   Ready                     16m   v1.24.6+k3s1   <IP_ADDRESS>            Alpine Linux v3.16   5.15.47-0-lts    containerd://1.6.8-k3s1
pramod-node2   Ready                     16m   v1.24.6+k3s1   <IP_ADDRESS>           Alpine Linux v3.16   5.15.47-0-lts    containerd://1.6.8-k3s1
pramod-node1   Ready    control-plane,master   20m   v1.24.6+k3s1   <IP_ADDRESS>            Alpine Linux v3.16   5.15.47-0-lts    containerd://1.6.8-k3s1

Then installed KubeVirt

export RELEASE=$(curl https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml
Pramod-node1:~/.kube# kubectl get pods -n kubevirt
NAME                               READY   STATUS                  RESTARTS        AGE
virt-operator-747d64c764-mb4bw     1/1     Running                 0               11m
virt-operator-747d64c764-qksbp     1/1     Running                 0               11m
virt-api-7fb5d599cc-nvk8b          1/1     Running                 0               10m
virt-api-7fb5d599cc-zr8xd          1/1     Running                 0               10m
virt-controller-6d594d9b54-wwpqh   1/1     Running                 0               10m
virt-controller-6d594d9b54-zn9gh   1/1     Running                 0               10m
virt-handler-w2ldj                 0/1     Init:CrashLoopBackOff   6 (4m38s ago)   10m
virt-handler-ddwpw                 0/1     Init:CrashLoopBackOff   6 (4m30s ago)   10m
virt-handler-n2gx4                 0/1     Init:CrashLoopBackOff   6 (4m21s ago)   10m
Pramod-node1:~/.kube# kubectl logs -n kubevirt virt-handler-w2ldj -c virt-launcher
error: failed to get emulator capabilities
error: internal error: Failed to start QEMU binary /usr/libexec/qemu-kvm for probing:
Those ^^^ are the only messages I see in the logs
My CPU is AMD EPYC 7402P 24-Core Processor which supports HW virtualization
I did check kvm modules are loaded.
Additional context:
Add any other context about the problem here.
Environment:

KubeVirt version (use virtctl version): v0.58.0

Kubernetes version (use kubectl version): v1.24.6+k3s1

VM or VMI specifications: N/A

Cloud provider or hardware configuration: Equinix c3.medium.x86 server

OS (e.g. from /etc/os-release):
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.16.0
PRETTY_NAME="Alpine Linux v3.16"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

Kernel (e.g. uname -a): Linux Pramod-node1 5.15.47-0-lts #1-Alpine SMP Thu, 16 Jun 2022 06:04:02 +0000 x86_64 Linux

Install tools: N/A

Others: N/A

I tried to run that container manually
Pramod-node1:~# ctr run quay.io/kubevirt/virt-launcher:v0.58.0 testit
exec /usr/bin/virt-launcher: operation not permitted
Does that give any clue ?

https://github.com/kubevirt/kubevirt/issues/4303 See if this issue helps.

@chenxinlong thank you for your response. Unfortunately I do not have apparmor on my system.
But one interesting observation:
Test version v0.58.0
Pramod-node1:~# ctr run quay.io/kubevirt/virt-launcher:v0.58.0  ver58
exec /usr/bin/virt-launcher: operation not permitted
Test latest version
Pramod-node1:~# ctr run quay.io/kubevirt/virt-launcher:latest ver_latest
{"component":"virt-launcher","level":"info","msg":"Collected all requested hook sidecar sockets","pos":"manager.go:68","timestamp":"2022-10-19T16:37:11.578821Z"}
{"component":"virt-launcher","level":"info","msg":"Sorted all collected sidecar sockets per hook point based on their priority and name: map[]","pos":"manager.go:71","timestamp":"2022-10-19T16:37:11.578876Z"}
{"component":"virt-launcher","level":"info","msg":"Connecting to libvirt daemon: qemu:///system","pos":"libvirt.go:416","timestamp":"2022-10-19T16:37:11.580872Z"}
{"component":"virt-launcher","level":"info","msg":"Connecting to libvirt daemon failed: virError(Code=38, Domain=7, Message='Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory')","pos":"libvirt.go:424","timestamp":"2022-10-19T16:37:11.581124Z"}
{"component":"virt-launcher","level":"info","msg":"libvirt version: 6.6.0, package: 3.fc32 (Unknown, 2020-11-09-17:15:58, )","subcomponent":"libvirt","thread":"89","timestamp":"2022-10-19T16:37:11.597000Z"}
{"component":"virt-launcher","level":"info","msg":"hostname: Pramod-node1","subcomponent":"libvirt","thread":"89","timestamp":"2022-10-19T16:37:11.597000Z"}
{"component":"virt-launcher","level":"error","msg":"internal error: Child process (dmidecode -q -t 0,1,2,3,4,11,17) unexpected exit status 1: /dev/mem: No such file or directory","pos":"virCommandWait:2740","subcomponent":"libvirt","thread":"89","timestamp":"2022-10-19T16:37:11.597000Z"}
{"component":"virt-launcher","level":"info","msg":"Connected to libvirt daemon","pos":"libvirt.go:432","timestamp":"2022-10-19T16:37:12.082198Z"}
{"component":"virt-launcher","level":"info","msg":"Registered libvirt event notify callback","pos":"client.go:432","timestamp":"2022-10-19T16:37:12.085558Z"}
{"component":"virt-launcher","level":"info","msg":"Marked as ready","pos":"virt-launcher.go:72","timestamp":"2022-10-19T16:37:12.085925Z"}
So latest version seems to work, can I assume latest is certainly after v0.58.0 version ? In other words how can find the version of the latest virt-launcher container ?

oh latest seems to be very old version (2 years ago)
quay.io/kubevirt/virt-launcher:latest                                                                              sha256:39e24c9d49af6e205a656fd06e3e8469aa06079f625104213062da92e10c110c 229.8 MiB linux/amd64
So I am stuck with no clue. Is there a way to turn on debugging on v0.58.0 container to see what is going on ?

@zedi-pramodh, the latest one is in fact a 2 years old image. You can check it in the registry https://quay.io/repository/kubevirt/virt-launcher?tab=tags&tag=latest
I also have the same behavior as you described on my alpine VM:
alpinevm:~# ctr run --rm -t quay.io/kubevirt/virt-launcher:v0.58.0 testit
exec /usr/bin/virt-launcher: operation not permitted

alpinevm:~# ctr run --rm -t quay.io/kubevirt/virt-launcher:latest testit2
{"component":"virt-launcher","level":"info","msg":"Collected all requested hook sidecar sockets","pos":"manager.go:68","timestamp":"2022-10-19T16:46:03.060967Z"}
{"component":"virt-launcher","level":"info","msg":"Sorted all collected sidecar sockets per hook point based on their priority and name: map[]","pos":"manager.go:71","timestamp":"2022-10-19T16:46:03.061035Z"}
...

Thanks @vasiliy-ul. But in one of the earlier email messages in the group  I believe you mentioned that alpine 3.16 and v0.58.0 KubeVirt worked for you. Now are you saying that it is failing ?

I mean, it still works fine on my VM and on Kubernetes. But when running with ctr, it produces that error:  operation not permitted. In fact, if you run it with --privileged, I guess it should work on your side as well:
alpinevm:~# ctr run --rm -t --privileged quay.io/kubevirt/virt-launcher:v0.58.0 testit
{"component":"virt-launcher","level":"info","msg":"Collected all requested hook sidecar sockets","pos":"manager.go:86","timestamp":"2022-10-19T16:53:27.962516Z"}
{"component":"virt-launcher","level":"info","msg":"Sorted all collected sidecar sockets per hook point based on their priority and name: map[]","pos":"manager.go:89","timestamp":"2022-10-19T16:53:27.964322Z"}
panic: open /var/run/libvirt/libvirtd.conf: no such file or directory

goroutine 1 [running]:
main.main()
	cmd/virt-launcher/virt-launcher.go:392 +0x13ae

BTW, while experimenting with my setup, I figured out that alpine does not load vhost_net module by default. That was causing issues with launching a VM. Since I do not have better ideas for now, maybe you could try to modprobe vhost_net and then delete the virt-handler pod (without deleting, it will not recognize the new device).

In your particular case, virt-launcher init container fails when trying to get the hypervisor capabilities:
# libvirtd -d
# virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm

Could you also try to run that in privileged virt-launcher container (using ctr)? Maybe it will give some more output...

@vasiliy-ul thanks. I loaded vhost_net and ran in privileged mode.
Pramod-node1:~/kubevirt# ctr run --rm -t --privileged quay.io/kubevirt/virt-launcher:v0.58.0 test
{"component":"virt-launcher","level":"info","msg":"Collected all requested hook sidecar sockets","pos":"manager.go:86","timestamp":"2022-10-19T17:02:05.400578Z"}
{"component":"virt-launcher","level":"info","msg":"Sorted all collected sidecar sockets per hook point based on their priority and name: map[]","pos":"manager.go:89","timestamp":"2022-10-19T17:02:05.400619Z"}
panic: open /var/run/libvirt/libvirtd.conf: no such file or directory
goroutine 1 [running]:
main.main()
cmd/virt-launcher/virt-launcher.go:392 +0x13ae
But I reinstalled the virt-launcher pods and still see same issue
Pramod-node1:~# kubectl get pods -n kubevirt
NAME                               READY   STATUS                  RESTARTS      AGE
virt-operator-747d64c764-27rsd     1/1     Running                 0             3m14s
virt-operator-747d64c764-4gwdc     1/1     Running                 0             3m14s
virt-api-7fb5d599cc-q7jkm          1/1     Running                 0             2m44s
virt-api-7fb5d599cc-gn87r          1/1     Running                 0             2m44s
virt-controller-6d594d9b54-c9kb4   1/1     Running                 0             2m18s
virt-controller-6d594d9b54-blrnm   1/1     Running                 0             2m18s
virt-handler-j6svr                 0/1     Init:CrashLoopBackOff   4 (52s ago)   2m18s
virt-handler-hjmw4                 0/1     Init:CrashLoopBackOff   4 (51s ago)   2m18s
virt-handler-jps8n                 0/1     Init:CrashLoopBackOff   4 (42s ago)   2m18s

Could you also run
alpinevm:~# ctr run --rm -t --device=/dev/kvm --device=/dev/vhost-net --device=/dev/net/tun  quay.io/kubevirt/virt-launcher:v0.58.0 testit bash
bash-4.4# libvirtd -d
bash-4.4# virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm

no, polkit message is just a warning... but the output is weird. I expected either an error (smth like KVM is not supported by '/usr/libexec/qemu-kvm' on this host) or an XML-like output with domain caps...

what if you run /usr/libexec/qemu-kvm ?

No I did short cut the output, but will paste here again.
virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm
Authorization not available. Check if polkit service is running or see debug message for more information.

/usr/libexec/qemu-kvm
kvm
pc-q35-rhel8.6.0
x86_64

efi

/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd

rom
pflash

yes
no

yes
no

on
off

on
off

EPYC-Rome
AMD

qemu64
qemu32
phenom
pentium3
pentium2
pentium
n270
kvm64
kvm32
coreduo
core2duo
athlon
Westmere-IBRS
Westmere
Snowridge
Skylake-Server-noTSX-IBRS
Skylake-Server-IBRS
Skylake-Server
Skylake-Client-noTSX-IBRS
Skylake-Client-IBRS
Skylake-Client
SandyBridge-IBRS
SandyBridge
Penryn
Opteron_G5
Opteron_G4
Opteron_G3
Opteron_G2
Opteron_G1
Nehalem-IBRS
Nehalem
IvyBridge-IBRS
IvyBridge
Icelake-Server-noTSX
Icelake-Server
Icelake-Client-noTSX
Icelake-Client
Haswell-noTSX-IBRS
Haswell-noTSX
Haswell-IBRS
Haswell
EPYC-Rome
EPYC-Milan
EPYC-IBPB
EPYC
Dhyana
Cooperlake
Conroe
Cascadelake-Server-noTSX
Cascadelake-Server
Broadwell-noTSX-IBRS
Broadwell-noTSX
Broadwell-IBRS
Broadwell
486

file
anonymous
memfd

disk
cdrom
floppy
lun

fdc
scsi
virtio
usb
sata

virtio
virtio-transitional
virtio-non-transitional

vnc
spice
egl-headless

vga
cirrus
virtio
none
bochs
ramfb

subsystem

default
mandatory
requisite
optional

usb
pci
scsi

virtio
virtio-transitional
virtio-non-transitional

random
egd
builtin

path
handle
virtiofs

tpm-tis
tpm-crb

passthrough
emulator

bash-4.4# /usr/libexec/qemu-kvm
VNC server running on ::1:5900
One thing I noticed is
bash-4.4# sh -x  /usr/bin/node-labeller.sh

set -e
++ grep -w kvm /proc/misc
++ cut -f 1 '-d '
KVM_MINOR=232
VIRTTYPE=qemu
'[' '!' -e /dev/kvm ']'
'[' -e /dev/kvm ']'
chmod o+rw /dev/kvm
VIRTTYPE=kvm
'[' -e /dev/sev ']'
libvirtd -d
virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm
/usr/bin/node-labeller.sh: line 24: /var/lib/kubevirt-node-labeller/virsh_domcapabilities.xml: No such file or directory

Is that the issue ?

I see /var/lib/kubevirt-node-labeller directory on my node but not in the virt-launcher container. Is that supposed to be mounted ?

When virt-launcher is run as init container for virt-handler pod, additional directories are bind-mounted to the container. So when you use ctr, those are not available by default. In general, running a container with ctr is not the same as running it as part of a k8s pod. But for debugging issues, it should be fine.

ok then I am clueless on why it is not working through k3s. with ctr I was able to run /usr/bin/node-labeller.sh and the xml files are generated. Also no issues in executing /usr/libexec/qemu-kvm !

May be this helps to narrow down the issue.
ctr run --rm -t --privileged quay.io/kubevirt/virt-launcher:v0.58.0 test bash
bash-4.4# virsh version
Authorization not available. Check if polkit service is running or see debug message for more information.
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
error: failed to get the hypervisor version
error: internal error: Cannot find suitable emulator for x86_64
bash-4.4# virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm
Authorization not available. Check if polkit service is running or see debug message for more information.
error: failed to get emulator capabilities
error: internal error: Failed to start QEMU binary /usr/libexec/qemu-kvm for probing:
That is the same error I see when pods get started.

Looks like --privileged option to ctr is the root cause of this issue. Can I turn off privilege in yaml files when I apply KubeVirt ?

Also I see selinux disabled on my alpine server.
Pramod-node1:~# getenforce
Disabled
Unable to set it though
Pramod-node1:~# setenforce 1
setenforce: SELinux is disabled

@vasiliy-ul I am confused on selinux part. Sorry it could be a silly question but I am new to KubeVirt and Kubernetes world. Do I need to have SELinux enabled on my base Alpine OS for virt-launcher to start ?
k3s server was started with --allow-privileged=true, does that make any difference ?

You do not need to explicitly enable selinux. KubeVirt should work fine without it.
KubeVirt requires that virt-handler pod runs privileged. It will not work otherwise. On my alpine VM I have k3s running with the default options and all is okay.

@vasiliy-ul thanks for your help.  I started debugging my env and trying to dig deep to see where the failures are. I enabled libvirtd debug level and traced the failures when the "virsh domcapabilities" is executed.
On a working container (no privilege flag)
2022-10-21 16:49:09.464+0000: 15: debug : virFileCacheValidate:271 : Creating data for '/usr/libexec/qemu-kvm'
2022-10-21 16:49:09.465+0000: 15: debug : virFileCacheLoad:142 : No cached data '/var/cache/libvirt/qemu/capabilities/3c76bc41d59c0c7314b1ae8e63f4f765d2cf16abaeea081b3ca1f5d8732f7bb1.xml' for '/usr/libexec/qemu-kvm'
2022-10-21 16:49:09.465+0000: 15: info : virObjectNew:258 : OBJECT_NEW: obj=0x7fe6d0005010 classname=virQEMUCaps
2022-10-21 16:49:09.465+0000: 15: debug : qemuProcessQMPNew:9193 : exec=/usr/libexec/qemu-kvm, libDir=/var/lib/libvirt/qemu, runUid=107, runGid=107, forceTCG=0
2022-10-21 16:49:09.465+0000: 15: debug : qemuProcessQMPStart:9405 : proc=0x7fe6d0004220, emulator=/usr/libexec/qemu-kvm
2022-10-21 16:49:09.465+0000: 15: debug : qemuProcessQMPInit:9238 : proc=0x7fe6d0004220, emulator=/usr/libexec/qemu-kvm
2022-10-21 16:49:09.465+0000: 15: debug : qemuProcessQMPLaunch:9285 : Try to probe capabilities of '/usr/libexec/qemu-kvm' via QMP, machine none,accel=kvm:tcg
2022-10-21 16:49:09.465+0000: 15: debug : virCommandRunAsync:2630 : About to run LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/root /usr/libexec/qemu-kvm -S -no-user-config -nodefaults -nographic -machine none,accel=kvm:tcg -qmp unix:/var/lib/libvirt/qemu/qmp-YGNIU1/qmp.monitor,server=on,wait=off -pidfile /var/lib/libvirt/qemu/qmp-YGNIU1/qmp.pid -daemonize
2022-10-21 16:49:09.465+0000: 15: debug : virCommandRunAsync:2633 : Command result 0, with PID 41
2022-10-21 16:49:09.494+0000: 12: debug : virEventGLibHandleDispatch:114 : Dispatch handler data=0x564865404c40 watch=6 fd=13 events=1 opaque=0x564865411440
2022-10-21 16:49:09.494+0000: 12: info : virEventGLibHandleDispatch:118 : EVENT_GLIB_DISPATCH_HANDLE: watch=6 events=1 cb=0x7fe6ed5373a0 opaque=0x564865411440
2022-10-21 16:49:09.494+0000: 12: debug : virNetlinkEventCallback:876 : dispatching to max 0 clients, called from event watch 6
2022-10-21 16:49:09.494+0000: 12: debug : virNetlinkEventCallback:889 : event not handled.
2022-10-21 16:49:09.495+0000: 12: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:09.495+0000: 12: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:09.497+0000: 15: debug : virCommandRun:2479 : Result exit status 0, stdout: '' stderr: '2022-10-21 16:49:09.466+0000: 41: debug : virExecCommon:440 : Setting child uid:gid to 107:107 with caps 2
You can see above the command exit status is 0 and JSON values are read after that.
022-10-21 16:49:09.498+0000: 15: info : qemuMonitorSend:916 : QEMU_MONITOR_SEND_MSG: mon=0x7fe6980272f0 msg={"execute":"qmp_capabilities","id":"libvirt-1"}^M
fd=-1
2022-10-21 16:49:09.498+0000: 40: debug : qemuMonitorJSONIOProcessLine:222 : Line [{"QMP": {"version": {"qemu": {"micro": 0, "minor": 2, "major": 6}, "package": "qemu-kvm-6.2.0-5.module_el8.6.0+1087+b42c8331"}, "capabilities": ["oob"]}}]
2022-10-21 16:49:09.498+0000: 40: debug : virJSONValueFromString:1691 : string={"QMP": {"version": {"qemu": {"micro": 0, "minor": 2, "major": 6}, "package": "qemu-kvm-6.2.0-5.module_el8.6.0+1087+b42c8331"}, "capabilities": ["oob"]}}
On a failing container with --privileged
2022-10-21 16:49:21.281+0000: 27: debug : virFileCacheValidate:271 : Creating data for '/usr/libexec/qemu-kvm'
2022-10-21 16:49:21.281+0000: 27: debug : virFileCacheLoad:142 : No cached data '/var/cache/libvirt/qemu/capabilities/3c76bc41d59c0c7314b1ae8e63f4f765d2cf16abaeea081b3ca1f5d8732f7bb1.xml' for '/usr/libexec/qemu-kvm'
2022-10-21 16:49:21.301+0000: 27: info : virObjectNew:258 : OBJECT_NEW: obj=0x7f4994008010 classname=virQEMUCaps
2022-10-21 16:49:21.301+0000: 27: debug : qemuProcessQMPNew:9193 : exec=/usr/libexec/qemu-kvm, libDir=/var/lib/libvirt/qemu, runUid=107, runGid=107, forceTCG=0
2022-10-21 16:49:21.301+0000: 27: debug : qemuProcessQMPStart:9405 : proc=0x7f49940075b0, emulator=/usr/libexec/qemu-kvm
2022-10-21 16:49:21.301+0000: 27: debug : qemuProcessQMPInit:9238 : proc=0x7f49940075b0, emulator=/usr/libexec/qemu-kvm
2022-10-21 16:49:21.301+0000: 27: debug : qemuProcessQMPLaunch:9285 : Try to probe capabilities of '/usr/libexec/qemu-kvm' via QMP, machine none,accel=kvm:tcg
2022-10-21 16:49:21.301+0000: 27: debug : virCommandRunAsync:2630 : About to run LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/root /usr/libexec/qemu-kvm -S -no-user-config -nodefaults -nographic -machine none,accel=kvm:tcg -qmp unix:/var/lib/libvirt/qemu/qmp-2ADJU1/qmp.monitor,server=on,wait=off -pidfile /var/lib/libvirt/qemu/qmp-2ADJU1/qmp.pid -daemonize
2022-10-21 16:49:21.302+0000: 27: debug : virCommandRunAsync:2633 : Command result 0, with PID 51
2022-10-21 16:49:21.341+0000: 24: debug : virEventGLibHandleDispatch:114 : Dispatch handler data=0x5587c6c50c40 watch=6 fd=13 events=1 opaque=0x5587c6c5d440
2022-10-21 16:49:21.341+0000: 24: info : virEventGLibHandleDispatch:118 : EVENT_GLIB_DISPATCH_HANDLE: watch=6 events=1 cb=0x7f49b353c3a0 opaque=0x5587c6c5d440
2022-10-21 16:49:21.341+0000: 24: debug : virNetlinkEventCallback:876 : dispatching to max 0 clients, called from event watch 6
2022-10-21 16:49:21.341+0000: 24: debug : virNetlinkEventCallback:889 : event not handled.
2022-10-21 16:49:21.341+0000: 24: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:21.341+0000: 24: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:21.344+0000: 24: debug : virEventGLibHandleDispatch:114 : Dispatch handler data=0x5587c6c50c40 watch=6 fd=13 events=1 opaque=0x5587c6c5d440
2022-10-21 16:49:21.344+0000: 24: info : virEventGLibHandleDispatch:118 : EVENT_GLIB_DISPATCH_HANDLE: watch=6 events=1 cb=0x7f49b353c3a0 opaque=0x5587c6c5d440
2022-10-21 16:49:21.344+0000: 24: debug : virNetlinkEventCallback:876 : dispatching to max 0 clients, called from event watch 6
2022-10-21 16:49:21.344+0000: 24: debug : virNetlinkEventCallback:889 : event not handled.
2022-10-21 16:49:21.344+0000: 24: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:21.344+0000: 24: debug : virEventRunDefaultImpl:341 : running default event implementation
2022-10-21 16:49:21.379+0000: 27: debug : virCommandRun:2479 : Result fatal signal 1, stdout: '' stderr: '2022-10-21 16:49:21.302+0000: 51: debug : virExecCommon:440 : Setting child uid:gid to 107:107 with caps 2
You can see that command fail with fatal signal 1 and hence no capabilities returned.
So some permission issues in setting uid:gid

one update. Setting dac_override on the /usr/libexec/qemu-kvm fixed this issue.
setcap cap_dac_override=ep /usr/libexec/qemu-kvm
But why do I need to do that and moreover that binary is in the virt-handler container which I cannot change.
Is there a config setting for this issue ?

BTW, I installed k3s and KubeVirt as root user, is that an issue ?

@vasiliy-ul if you don't mind can you post the exact commands you ran on alpine to get KubeVirt running starting with k3s install. I really appreciate your help.

But why do I need to do that and moreover that binary is in the virt-handler container which I cannot change.
Is there a config setting for this issue ?

There is no config for that. Usually you do not need to setup those things.

BTW, I installed k3s and KubeVirt as root user, is that an issue ?

Nope. Should be fine.

@vasiliy-ul if you don't mind can you post the exact commands you ran on alpine to get KubeVirt running starting with k3s install. I really appreciate your help.

# curl -sfL https://get.k3s.io | sh -
# kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/v0.58.0/kubevirt-operator.yaml
# kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/v0.58.0/kubevirt-cr.yaml

Thanks @vasiliy-ul  This is really puzzling me. I run exact same commands and it fails every time. At this point I think its something to do with the alpine servers I am using from equinix cloud.
If you don't mind can you please give the output of the following command.
Verifying binaries in /var/lib/rancher/k3s/data/ec00304416df58a8da2a883b1b87ab882b199ef11c4e01b28f07d643c8067d91/bin:

sha256sum: good
links: aux/ip6tables should link to iptables-detect.sh (fail)
links: aux/ip6tables-restore should link to iptables-detect.sh (fail)
links: aux/ip6tables-save should link to iptables-detect.sh (fail)
links: aux/iptables should link to iptables-detect.sh (fail)
links: aux/iptables-restore should link to iptables-detect.sh (fail)
links: aux/iptables-save should link to iptables-detect.sh (fail)

System:

/sbin iptables v1.8.8 (legacy): ok
swap: disabled
routes: default CIDRs <IP_ADDRESS>/16 or <IP_ADDRESS>/16 already routed

Limits:

/proc/sys/kernel/keys/root_maxkeys: 1000000

info: reading kernel config from /proc/config.gz ...
Generally Necessary:

cgroup hierarchy: cgroups Hybrid mounted, cpuset|memory controllers status: good
CONFIG_NAMESPACES: enabled
CONFIG_NET_NS: enabled
CONFIG_PID_NS: enabled
CONFIG_IPC_NS: enabled
CONFIG_UTS_NS: enabled
CONFIG_CGROUPS: enabled
CONFIG_CGROUP_CPUACCT: enabled
CONFIG_CGROUP_DEVICE: enabled
CONFIG_CGROUP_FREEZER: enabled
CONFIG_CGROUP_SCHED: enabled
CONFIG_CPUSETS: enabled
CONFIG_MEMCG: enabled
CONFIG_KEYS: enabled
CONFIG_VETH: enabled (as module)
CONFIG_BRIDGE: enabled (as module)
CONFIG_BRIDGE_NETFILTER: enabled (as module)
CONFIG_IP_NF_FILTER: enabled (as module)
CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module)
CONFIG_IP_NF_NAT: enabled (as module)
CONFIG_NF_NAT: enabled (as module)
CONFIG_POSIX_MQUEUE: enabled

Optional Features:

CONFIG_USER_NS: enabled
CONFIG_SECCOMP: enabled
CONFIG_CGROUP_PIDS: enabled
CONFIG_BLK_CGROUP: enabled
CONFIG_BLK_DEV_THROTTLING: enabled
CONFIG_CGROUP_PERF: enabled
CONFIG_CGROUP_HUGETLB: enabled
CONFIG_NET_CLS_CGROUP: missing
CONFIG_CGROUP_NET_PRIO: enabled
CONFIG_CFS_BANDWIDTH: enabled
CONFIG_FAIR_GROUP_SCHED: enabled
CONFIG_RT_GROUP_SCHED: missing
CONFIG_IP_NF_TARGET_REDIRECT: enabled (as module)
CONFIG_IP_SET: enabled (as module)
CONFIG_IP_VS: enabled (as module)
CONFIG_IP_VS_NFCT: enabled
CONFIG_IP_VS_PROTO_TCP: enabled
CONFIG_IP_VS_PROTO_UDP: enabled
CONFIG_IP_VS_RR: enabled (as module)
CONFIG_EXT4_FS: enabled (as module)
CONFIG_EXT4_FS_POSIX_ACL: enabled
CONFIG_EXT4_FS_SECURITY: enabled
Network Drivers:

"overlay":

CONFIG_VXLAN: enabled (as module)
Optional (for encrypted networks):

CONFIG_CRYPTO: enabled
CONFIG_CRYPTO_AEAD: enabled (as module)
CONFIG_CRYPTO_GCM: enabled (as module)
CONFIG_CRYPTO_SEQIV: enabled (as module)
CONFIG_CRYPTO_GHASH: enabled (as module)
CONFIG_XFRM: enabled
CONFIG_XFRM_USER: enabled (as module)
CONFIG_XFRM_ALGO: enabled (as module)
CONFIG_INET_ESP: enabled (as module)
CONFIG_INET_XFRM_MODE_TRANSPORT: missing

Storage Drivers:

"overlay":

CONFIG_OVERLAY_FS: enabled (as module)

STATUS: 6 (fail)

alpinevm:~# k3s check-config

Verifying binaries in /var/lib/rancher/k3s/data/ec00304416df58a8da2a883b1b87ab882b199ef11c4e01b28f07d643c8067d91/bin:
- sha256sum: good
- links: aux/ip6tables should link to iptables-detect.sh (fail)
- links: aux/ip6tables-restore should link to iptables-detect.sh (fail)
- links: aux/ip6tables-save should link to iptables-detect.sh (fail)
- links: aux/iptables should link to iptables-detect.sh (fail)
- links: aux/iptables-restore should link to iptables-detect.sh (fail)
- links: aux/iptables-save should link to iptables-detect.sh (fail)

System:
- /var/lib/rancher/k3s/data/ec00304416df58a8da2a883b1b87ab882b199ef11c4e01b28f07d643c8067d91/bin/aux iptables v1.8.6 (legacy): ok
- swap: should be disabled
- routes: ok

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: cgroups Hybrid mounted, cpuset|memory controllers status: good
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled (as module)
- CONFIG_BRIDGE_NETFILTER: enabled (as module)
- CONFIG_IP_NF_FILTER: enabled (as module)
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module)
- CONFIG_IP_NF_NAT: enabled (as module)
- CONFIG_NF_NAT: enabled (as module)
- CONFIG_POSIX_MQUEUE: enabled

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: missing
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: missing
- CONFIG_IP_NF_TARGET_REDIRECT: enabled (as module)
- CONFIG_IP_SET: enabled (as module)
- CONFIG_IP_VS: enabled (as module)
- CONFIG_IP_VS_NFCT: enabled
- CONFIG_IP_VS_PROTO_TCP: enabled
- CONFIG_IP_VS_PROTO_UDP: enabled
- CONFIG_IP_VS_RR: enabled (as module)
- CONFIG_EXT4_FS: enabled (as module)
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: enabled (as module)
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled (as module)
      - CONFIG_CRYPTO_GCM: enabled (as module)
      - CONFIG_CRYPTO_SEQIV: enabled (as module)
      - CONFIG_CRYPTO_GHASH: enabled (as module)
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled (as module)
      - CONFIG_XFRM_ALGO: enabled (as module)
      - CONFIG_INET_ESP: enabled (as module)
      - CONFIG_INET_XFRM_MODE_TRANSPORT: missing
- Storage Drivers:
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled (as module)

STATUS: 6 (fail)
alpinevm:~#
alpinevm:~#
alpinevm:~# uname -a
Linux alpinevm 5.15.73-0-lts #1-Alpine SMP Thu, 13 Oct 2022 08:06:56 +0000 x86_64 Linux

I wonder: your alpine distro, did you install it yourself or was it pre-installed already on the servers?

Its pre-installed on the servers. I have no control on that as far as I know. But I will see if I can pick and choose.

Hmm I upgraded to
pramod-node1:~# uname -a
Linux pramod-node1 5.15.74-0-lts #1-Alpine SMP Sat, 15 Oct 2022 18:26:49 +0000 x86_64 Linux
Still see same issue. Only common thing is the physical hardware I am getting provisioned. May be will try with other models.

Tried ubuntu and it works fine  on same hardware model.
Tried alpine on various models and still same issue. Got to be something in the way alpine OS is compiled for deployment on equinix servers, I have no clue  !!

Interesting... Tricky issue. Honestly, I do not have new ideas. Just maybe you could try deploying this operator? It's the same KubeVirt, but the base container image and the packages come from another Linux distro (openSUSE). Just curious if it will change the picture somehow...

pramod-node1:~# kubectl get po  -n kubevirt
NAME                               READY   STATUS                 RESTARTS   AGE
virt-operator-5477674954-mszl7     1/1     Running                0          87m
virt-operator-5477674954-gxjx5     1/1     Running                0          87m
virt-api-56448f8c54-qrxqx          1/1     Running                0          86m
virt-controller-7558db486c-xlxls   1/1     Running                0          85m
virt-controller-7558db486c-667c5   1/1     Running                0          85m
virt-handler-sg74j                 0/1     CreateContainerError   0          85m
BTW I used kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/v0.58.0/kubevirt-cr.yaml along with your operator yaml file.
Nothing in the logs
pramod-node1:~# kubectl logs -n kubevirt virt-handler-sg74j -c virt-launcher
pramod-node1:~# echo $?
0

BTW I used kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/v0.58.0/kubevirt-cr.yaml along with your operator yaml file.

Yeah, this is fine.

virt-handler-sg74j 0/1 CreateContainerError 0 85m

This looks like a different error. Previously you had virt-handler-n2gx4 0/1 Init:CrashLoopBackOff. Could you please check
kubectl describe pod -n kubevirt virt-handler-sg74j

?

@vasiliy-ul sorry for late response.
pramod-node1:~# kubectl describe pod -n kubevirt virt-handler-sg74j
Name:                 virt-handler-sg74j
Namespace:            kubevirt
Priority:<PHONE_NUMBER>
Priority Class Name:  kubevirt-cluster-critical
Node:                 pramod-node1/<IP_ADDRESS>
Start Time:           Wed, 26 Oct 2022 16:30:33 +0000
Labels:               app.kubernetes.io/component=kubevirt
app.kubernetes.io/managed-by=virt-operator
app.kubernetes.io/version=0.58.0-1.1
controller-revision-hash=77cb5dfbc6
kubevirt.io=virt-handler
pod-template-generation=1
prometheus.kubevirt.io=true
Annotations:          kubevirt.io/install-strategy-identifier: 12960cfb5502d1633d329d8200ee96034692f778
kubevirt.io/install-strategy-registry: registry.opensuse.org/kubevirt
kubevirt.io/install-strategy-version: 0.58.0-1.1
Status:               Pending
IP:                   <IP_ADDRESS>
IPs:
IP:           <IP_ADDRESS>
Controlled By:  DaemonSet/virt-handler
Init Containers:
virt-launcher:
Container ID:  containerd://f090c4cd52fa772ca42027e1876eef004a8d3197976c899e4bed797b0c958be5
Image:         registry.opensuse.org/kubevirt/virt-launcher:0.58.0-1.1
Image ID:      registry.opensuse.org/kubevirt/virt-launcher@sha256:22e53442233d9505f4929aa258a84cc16c49c88c1dda3a7eb0bdf3030eb68343
Port:
Host Port:
Command:
/bin/sh
-c
Args:
node-labeller.sh
State:          Terminated
Reason:       Completed
Exit Code:    0
Started:      Wed, 26 Oct 2022 16:30:53 +0000
Finished:     Wed, 26 Oct 2022 16:30:55 +0000
Ready:          True
Restart Count:  0
Environment:
Mounts:
/var/lib/kubevirt-node-labeller from node-labeller (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qmq87 (ro)
Containers:
virt-handler:
Container ID:
Image:         registry.opensuse.org/kubevirt/virt-handler:0.58.0-1.1
Image ID:
Port:          8443/TCP
Host Port:     0/TCP
Command:
virt-handler
Args:
--port
8443
--hostname-override
$(NODE_NAME)
--pod-ip-address
$(MY_POD_IP)
--max-metric-requests
3
--console-server-port
8186
--graceful-shutdown-seconds
315
-v
2
State:          Waiting
Reason:       CreateContainerError
Ready:          False
Restart Count:  0
Requests:
cpu:      10m
memory:   230Mi
Liveness:   http-get https://:8443/healthz delay=15s timeout=10s period=45s #success=1 #failure=3
Readiness:  http-get https://:8443/healthz delay=15s timeout=10s period=20s #success=1 #failure=3
Environment:
NODE_NAME:   (v1:spec.nodeName)
MY_POD_IP:   (v1:status.podIP)
Mounts:
/etc/podinfo from podinfo (rw)
/etc/virt-handler/clientcertificates from kubevirt-virt-handler-certs (ro)
/etc/virt-handler/servercertificates from kubevirt-virt-handler-server-certs (ro)
/pods from kubelet-pods-shortened (rw)
/profile-data from profile-data (rw)
/var/lib/kubelet/device-plugins from device-plugin (rw)
/var/lib/kubelet/pods from kubelet-pods (rw)
/var/lib/kubevirt from virt-lib-dir (rw)
/var/lib/kubevirt-node-labeller from node-labeller (rw)
/var/run/kubevirt from virt-share-dir (rw)
/var/run/kubevirt-libvirt-runtimes from libvirt-runtimes (rw)
/var/run/kubevirt-private from virt-private-dir (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qmq87 (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kubevirt-virt-handler-certs:
Type:        Secret (a volume populated by a Secret)
SecretName:  kubevirt-virt-handler-certs
Optional:    true
kubevirt-virt-handler-server-certs:
Type:        Secret (a volume populated by a Secret)
SecretName:  kubevirt-virt-handler-server-certs
Optional:    true
profile-data:
Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit:
libvirt-runtimes:
Type:          HostPath (bare host directory volume)
Path:          /var/run/kubevirt-libvirt-runtimes
HostPathType:
virt-share-dir:
Type:          HostPath (bare host directory volume)
Path:          /var/run/kubevirt
HostPathType:
virt-lib-dir:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/kubevirt
HostPathType:
virt-private-dir:
Type:          HostPath (bare host directory volume)
Path:          /var/run/kubevirt-private
HostPathType:
device-plugin:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/kubelet/device-plugins
HostPathType:
kubelet-pods-shortened:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/kubelet/pods
HostPathType:
kubelet-pods:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/kubelet/pods
HostPathType:
node-labeller:
Type:          HostPath (bare host directory volume)
Path:          /var/lib/kubevirt-node-labeller
HostPathType:
podinfo:
Type:  DownwardAPI (a volume populated by information about the pod)
Items:
metadata.annotations['k8s.v1.cni.cncf.io/network-status'] -> network-status
kube-api-access-qmq87:
Type:                    Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds:  3607
ConfigMapName:           kube-root-ca.crt
ConfigMapOptional:
DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 CriticalAddonsOnly op=Exists
node.kubernetes.io/disk-pressure:NoSchedule op=Exists
node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists
node.kubernetes.io/pid-pressure:NoSchedule op=Exists
node.kubernetes.io/unreachable:NoExecute op=Exists
node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
Type    Reason  Age                       From     Message

Normal  Pulled  4m46s (x33578 over 5d1h)  kubelet  Container image "registry.opensuse.org/kubevirt/virt-handler:0.58.0-1.1" already present on machine

Command:
/bin/sh
-c
Args:
node-labeller.sh
State: Terminated
Reason: Completed
Exit Code: 0

This looks like the init container has succeeded. So it's another error now. Could you delete the virt-handler pod and try to get the reason of the CreateContainerError (in the output you shared it is not present):
kubectl delete pod -n kubevirt virt-handler-...
kubectl describe pod -n kubevirt virt-handler-...

Oh I found the issue, my bad I needed to do run "mount --make-rshared /"
It works now :)
pramod-node1:~# kubectl get pods -n kubevirt
NAME                               READY   STATUS    RESTARTS   AGE
virt-operator-5477674954-mszl7     1/1     Running   0          5d1h
virt-operator-5477674954-gxjx5     1/1     Running   0          5d1h
virt-api-56448f8c54-clgkd          1/1     Running   0          3m55s
virt-controller-7558db486c-9s7vd   1/1     Running   0          3m30s
virt-controller-7558db486c-zrv2s   1/1     Running   0          3m30s
virt-handler-2tdzx                 1/1     Running   0          3m30s
So what is the actually issue can you please explain.

Well... I still have no idea. The upstream image does not work for some unknown reason.

Its not just upstream version. I tried various versions of kubevirt. Its something to do with alpine linux on equinix servers.
In the test we did above the kubevirt-operator.yaml is given by you. Trying to understand the difference here from kubevirt-operator.yaml from upstream.

Oh I see the diff:
pramod-node1:~# diff kubevirt-operator.yaml.good kubevirt-operator.yaml
--- kubevirt-operator.yaml.good
+++ kubevirt-operator.yaml
@@ -6575,12 +6575,12 @@
- virt-operator
env:
- name: OPERATOR_IMAGE

     value: registry.opensuse.org/kubevirt/virt-operator:0.58.0-1.1

     value: quay.io/kubevirt/virt-operator:v0.58.0
   - name: WATCH_NAMESPACE
     valueFrom:
       fieldRef:
         fieldPath: metadata.annotations['olm.targetNamespaces']

   image: registry.opensuse.org/kubevirt/virt-operator:0.58.0-1.1

   image: quay.io/kubevirt/virt-operator:v0.58.0
   imagePullPolicy: IfNotPresent
   name: virt-operator
   ports:

Basically image from SUSE is working !!!

Yes, it is a downstream KubeVirt build where the images are based on openSUSE TW. I still fail to understand why the images from quay.io (the upstream ones) do not work on your hardware, though...

It's not just the hardware. Its hardware + alpine.  Any other OS like ubuntu is working.
I will keep this issue open in case someone can find an answer.

One more thing to try here might be to look at the system logs. Potentially that may bring some light. I would try to install k3s on a clean system, deploy KubeVirt from the upstream (quay.io/kubevirt/virt-operator:v0.58.0), wait for the failure of the virt-handler init container and then look at least at the following logs:

dmesg
cat /var/log/messages
cat /var/log/k3s.log

Yes those are the first things I looked at while debugging.
dmesg: Nothing in it
/var/log/messages: Nothing in it
/var/log/k3s.log:  Repeated messages of virt-handler starting and failing to start.

I'm seeing this exact same issue and @zedi-pramodh's hack of setting setcap cap_dac_override=ep /usr/libexec/qemu-kvm appears to be the only fix I have found. If I modify the daemonset to run setcap cap_dac_override=ep /usr/libexec/qemu-kvm, the pod comes up successfully (until the operator resets the daemonset back...).
The OpenSUSE images seem to have disappeared and the registry.opensuse.org/kubevirt/virt-operator:0.58.0 images report the same errors.
I'll probably try to debug this some more, but might end up trying to make the capability hack more permanent...

This seems to be an issue with alpine, it's happening to me as well.
@DolceTriade have you found a solution? Is there a way to make it more permanent?

I haven't had time to work on this recently. Will update back when I find a cleaner solution.

Good to know I am not the only one to see this issue :) I do have some update here.
Once I upgraded alpine from
Alpine Linux v3.16    Kernel version:  5.15.47-0-lts
to
Alpine Linux v3.16    Kernel version : 5.15.90-0-lts
I no longer see this issue with the same kubevirt version 0.58 which was failing earlier.
May be something to do with alpine release ?

@DolceTriade any luck in identifying this issue? I am running into it again on Alpine Linux 5.15.90 kernel

I haven't had time to look into it recently.

@vasiliy-ul or @DolceTriade
This is my theory. We get the following error
error: failed to get emulator capabilities
error: invalid argument: the accel 'kvm' is not supported by '/usr/libexec/qemu-kvm' on this host
if /dev/kvm has no rw permissions for others or /dev/kvm is not even present.
But node-labeller.sh is explicitly setting permissions if /dev/kvm is present. So that is not an issue.
If /dev/kvm is not present node-labeller.sh is doing mknod of /dev/kvm
virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm
Authorization not available. Check if polkit service is running or see debug message for more information.
error: failed to get emulator capabilities
error: invalid argument: the accel 'kvm' is not supported by '/usr/libexec/qemu-kvm' on this host
So looks like if the device was created by mknod in the container its an issue.
I would like to understand why /dev/kvm will not be visible in the virt-handler pod in first place ?


$compile documentation improvement

Hi,
could you pls add to a transclude function description an explicit statement  that cloned element passed into cloneAttachFn is compiled but not yet linked (neither pre-, nor post-)?
(that is in practice we get a fresh clone of template)
It seems be not very clear, as least for me, from the current docs. Or am I wrong?
thanks

I guess it is not 100% clear, but the following quotes from the docs are strong hints:

The contents are compiled and provided to the directive as a transclusion function.

(It says "compiled"; doesn't mention anything about linking.)

This transclusion function is a special linking function that will return the compiled contents linked to a new transclusion scope.

Again not 100% clear, but since transcludeFn is a linking function and cloneFn is run as part of transcludeFn, it is fair to assume that clone will not be linked inside cloneFn.

When you call a transclusion function you can pass in a clone attach function. This function accepts two parameters, function(clone, scope) { ... }, where the clone is a fresh compiled copy of your transcluded content and the scope is the newly created transclusion scope, to which the clone is bound.

It explicitly says clone is a compiled (not linked) copy, but the last phrase ruins it again: "to which the clone is bound" :smile:
What it meant to say (I guess) is: "which the clone will be linked to"
--
I will make this small change, but if you feel there is any way to improve docs further, feel free to submit a PR (and be our hero :smile:).
Transclusion is one of the complex aspects fo directives (which in turn is one of the complex aspects of Angular), so... Yet we still love them both, because thay are amazingly powerful at the same time :grin:
In any case, thx for bringing this to our attention, @djfd :+1:

yeah, thank you, that is better!
and you are right, there is all required information in the documentation for a careful readers ))
But for a beginners (and "by diagonal" readers) like me it is important to get learning curve as much as possible short and smooth, so clear statements are certainly help. And not every one has English as a mother tongue.
check this, just search for a 'this is compiled but not linked yet', it is in bold, as it is actually important. And it was an insight for me, to be honest ))

Tbh, "transclusion with custom cloneAttachFn" is a pretty advanced topic. Beginners (or diagonal readers) will have a hard time no matter how much bold we add :smile:
But maybe adding a similar comment in our example is not a bad idea anyway - PRs welcome if anyone feels like it

thanks, it is too late to became a hero, I was born with SVN in my hands, so git learning is out of my scope ))


Update AESWrap sample to use Token key

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Verified via,
$ git clone https://github.com/aws-samples/aws-cloudhsm-jce-examples.git
$ cd aws-cloudhsm-jce-examples
$ gh pr checkout 61
$ export HSM_USER=...
$ export HSM_PASSWORD=...
$ mvn verify
$ java -ea -jar target/assembly/aeswrap-runner.jar


Updated Integration Test instructions in documentation

When writing tests, I noticed Integration Tests docs are slightly out of date: not using JerseyClientBuilder nor client.target(). So I've updated them accordingly.
This is a cleaned up version of PR #859

Coverage remained the same at 67.27% when pulling 53fcf45073e79149ea024ab9454eb44e6ee95c38 on yunspace:master into 741a1611a67f26d7cd353079c5bc80aaad4010fb on dropwizard:master.

Thanks


Update forum references

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 1.1.0-update_forum_refs
download it from Artifactory here

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

[secure]
GitHub release

Your semantic-release bot :package::rocket:


Application of SOURCE in Terms and Defs causes XML to appear in HTML/Word

I'm applying the [source=ISO1234] at the top level and get this output. What's the correct way to doing this?

obvi, that shouldn't be happening. Where is the source code? Is this in the ext projects?

Just shared the draft. Thanks @opoudjis !

Fixed in isodoc (code was not expecting to find termdocsource where it did, in non-leaf term node) and in asciidoctor-iso (ensure that cleanup of code catches termdocsource in either location).

Thanks @opoudjis !


Add a CI/Workflows for automated testing and releases

[ ] Automated testing (#11)
[ ] Continuous integration (#14)

Closed by #11 and #14.


[1.12] Bump Mesos to nightly 1.7.x 2b26edd

High-level description
This is a routine bump to the latest Mesos and mesos-modules.
Related JIRA Issues
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Changelog:
https://github.com/apache/mesos/compare/ce10fa8ab525054d4152d0273972bc7b2b5cb782...2b26edd6560fbd21aed9bf42652efe18d6e36433

[ ] Test Results: [link to CI job test results for component]

[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot bump-ee


Rework CLI args for proxy nodes

Proposal
Right now we expose the whole traefik configuration on the proxy nodes, this could be streamlined to just the configurations we want/need.

Thoughts. I think that if we rework the exposed CLI args for the proxy nodes, we should also remove some config logic from the Helm chart (e.g. the Traefik entry points creation). From my point of view, doing so will allow users to deploy Maesh with custom Kubernetes config easily and increase maintainability. Btw, it should be not that hard to implement as we're now using Traefik as a library.


DISTX-480 Integrate with autoscale hostgroup recommendations

Integrate with autoscale hostgroup recommendations.
Integrate with MessageSource messages.
Optimize Yarn Response Unmarshalling
Closes #DISTX-480
Closes #DISTX-496
Closes #DISTX-498

Looks good.
This is DISTX-480 + Enhanced error handling. Ideally 2 PRs.

The changes are very small, have created separate jiras and linked to the PR


network: ensure networks are recreated

Ensure that networks are only free'd if there are no errors.
Furthermore, make sure that networks are recreated if they cannot be
found on the remote.
This fixes #74.
Signed-off-by: Thomas Hipp<EMAIL_ADDRESS>

Coverage decreased (-0.2%) to 56.727% when pulling e3a763a8699bdfc3f117372aa3999899c719681f on monstermunchkin:issues/74 into 968bf16201a9f13030f84765b027d7e45fdbef57 on dmacvicar:master.


test: use the exeutable deploy_account tx create test util for blockifier test util

This change is

#749
#747
#1919  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ArniStarkware and the rest of your teammates on  Graphite


Add KEYBASE_TIMEOUT configuration parameter to configure a custom timeout for interacting with the bot

Some users (#91) were having difficulties with timeouts if running the CA bot on a slow computer with a high latency internet connection. In order to fix this, add a new configuration parameter that can be used to change the timeout. In order to do so, also had to update out dependencies to pull in the latest KB chat library (keybase/go-keybase-chat-bot#67).
The library also changed the arg order to a function, so swapped that in our code to make everything continue to work.
This changes the timeouts for KB chat and for the Keybase service, so it should also fix #90

@blaggacao can you give this a try and see whether tweaking the KEYBASE_TIMEOUT config will fix your issue? I tried running the bot on my own ARM server and wasn't able to reproduce your timeout issues, but I think this should help.

thanks for your work on this @ddworken! a heads up - aiming to get this in in the next hour so that i can start on another PR that includes this PR's keybase version bump.

Sounds good! Thanks for the heads up :+1:


Can't check for updates

Im just commenting so you dont need to worry: I cant update either, so nothing is wrong with your firewall/internet. It seems to be an error with the bcuninstaller servers.

Good to see there are others here with this issue.
Is there any update in regards to this issue?

Seems the project is dead...

the update checker hits raw.githubusercontent.com ok but doesn't find what it is looking for seemingly

Fixed in the NET-5-conversion branch.
It's not fixable in the old version because .NET 3.5 doesn't support the encryption standard that GitHub now enforces.


Cache items dont expire in latest Chrome build

Whilst using 4.2.0 and using the very latest stable Chrome build (given to all normal users) the cache never seems to expire.  This functionality still works in FireFox.
var options = {
    maxAge: 10 * 1000, // Items expire after 10 seconds
    cacheFlushInterval: 10 * 1000, // This was never needed before, added now to test
    deleteOnExpire: 'aggressive',
    storageMode: 'localStorage'
};

var cache = CacheFactory('myCache' + currentUser.Id, options);

var data = cache.get(url);

if (data != null) {
      deferred.resolve(quicklinks);
      return deferred.promise;
}

"data" is never null / undefined even when it is expired.  In FF and earlier builds of Chrome it would expire and return null when expired.

I just tested this in Chrome 43 stable and it works. Perhaps you can produce a plunker/jsfiddle/jsbin/codepen that demonstrates? And if 43 stable is out, who will be on 42? If you can produce a working demonstration, I'll take a look. Closing until then.


PauliSum

Use a LinearDict under-the-hood to implement a sum of PauliStrings
fixes #1682

Added some more things; will pick this up and add some more tests tomorrow

Added tests for all bad arithmetic operations. For multiplication and division, the straightforward dispatch to LinearDict's operators means that it already throws a TypeError as appropriate

What's the timeline for requiring python 3.6? A test or two assumes dictionaries are ordered, which only happens in >py36

Now that we've thought of a way to prevent old versions of python from being silently out of date when installing cirq, I think we can transition into 3.6 ASAP.
Are you aware you can run the format script with --apply to apply the changes instead of just viewing them?

running with --apply was the cause of 2a7641e. If I kept running the formatter with --apply it started to more aggressively mess up the formatting of the inputs.
Apparently I also have a mismatched version with travis, because the current format failure was put into place by my recent application of --apply

The other reason it may be failing is if you are not synced with master. There's an open issue to make the incremental diff compute vs the merge base of master and the current branch instead of just vs master (which changes suddenly on travis as PRs get merged).

I've been merging in master periodically. I'm suspecting I have the wrong version of yapf

Sync with master to get the fixed "check vs mergebase" format script. You then have a bunch of coverage errors to work through, and we can merge.

The tests are failing because it is assuming that dicts are ordered, and therefore the PauliSums are ordered. If we are indeed switching to python 3.6+ soon, then it can wait. Otherwise I'll have to re-work the test and/or the code

The switch has already happened. Sync with master.

Ah very good


XState 4 doesn't work with polyfilled IE11 browser

Bug or feature request?
Bug
Description:
<EMAIL_ADDRESS>doesn't work in IE11 with polyfills. Please note that version 3.x.x works with IE11. The root cause seems to be some interaction with polyfills and: Symbol, Symbol.iterator, Arrays, Object.defineProperty, and prototypes.
The error surfaces in machine.initialState property not containing the array of actions from the state configs onEntry (and presumably onExit) action arrays, and instead containing an empty array.
I created a static HTML file that demonstrates the issue. A strange thing to note is that when the same file is reloaded and executed several times, the error varies.
The error message varies. I have seen a variety of error messages with a complex hierarchichal state machine (rather than the simplified case in my repro below). Here are some that I have seen where the same page is reloaded and executed, but reports different errors:

Invalid descriptor for property __kind__
Unable to get property @@CLOSE of undefined or null reference (where CLOSE is an event name).
Unable to get @@actions of undefined or null reference

(Bug) Expected result:
Arrays are created correctly in IE11.
(Bug) Actual result:
Arrays are not created correctly in IE11.
(Bug) Potential fix:
Since polyfilled features are not guaranteed to work the same way as native code, I think that the change in version 4 to use many more ES6 features makes IE11 break, even when those features are polyfilled.
Link to reproduction or proof-of-concept:
Instructions:
Since codepen doesn't work in IE11, you can go to the pen in a different browser and save the HTML content as a static file and load that into your IE11 browser.

Please open in a non-IE11 browser and create a static HTML file from the HTML content in the pen: https://codepen.io/anon/pen/EMOdxd?editors=1111 .
Load the page in your IE11 browser.
Use the console and execute: machine.initialState.

I would gladly accept a PR for this - I don't have the environment to test this in IE11 but if you can figure out exactly what doesn't work in IE11, that'd be very helpful.

This bug was really hard to diagnose. Unfortunately, I have not yet figured out the particular bad interaction causing this bug, even after quite a few hours of debugging. If I do manage to figure it out, I will be sure to update this issue.

Just took a brief look at this in an IE11 Dev Image in VirtualBox VM.
I suspect the first error maybe related the spread on this Set:
https://github.com/davidkpiano/xstate/blob/master/src/StateTree.ts#L174
and an incompatibility between the resulting compiled code:
Object.defineProperty(t.prototype,"nextEvents",{get:function(){var t=this,e=this.stateNode.ownEvents,n=b(f(this.nodes).map(function(e){return t.nodes[e].nextEvents}));return s(new Set(n.concat(e)))},enumerable:!0,configurable:!0})

and the custom Object.defineProperty() polyfill added via that polyfill.io service.
(Other uses of the Set polyfill throughout seem to be working fine.)
I'll dig into this further when I have little more time.

Amazing. If I have a breakpoint in just the right spot it works perfectly.
Capturing some notes for when I have time to take a look at this again:
After simplifying the scripts portion of the example down to the following:
<script src="https://polyfill.io/v3/polyfill.js?features=es5,Array.from,Object.assign,Object.create,Object.getOwnPropertyDescriptor"></script>
<script<EMAIL_ADDRESS><script<EMAIL_ADDRESS><script>
window.machine = XState.Machine({
    key: 'testmachine',
    initial: 'initializing',
    states: {
        ended: {},
        initializing: {
            on: {
                start: 'started'
            },
            onEntry: ['create']
        },
        started: {
            on: {
                end: 'ended'
            }
        }
    }
});
</script>

(and executing machine.initialState in the Console as above).

It always occurs when the Set is instantiated in the StateNode::ownEvents or StateTree::nextEvents getters (even if I neuter the implementations of both to simply create an empty Set and return an unrelated empty Array).
When it occurs, it ends up going into this branch in the Symbol polyfill instead of this branch.
If I put a breakpoint here - which is called as part of new Set(), it enters the correct branch and successfully returns the machine's initialState.

This appears to be a bug in the interaction between the Set and Symbol polyfills under IE11, rather than an XState bug, per se.
It also could well be influenced by the other bundled polyfills - worth checking if polyfill.io returns them in a consistent order. If not, that could explain the odd and varying behavior described in the initial report.

The Invalid descriptor for property `_values`. error Heisenbug I encountered above appears to be related to the IE11 developer tools, rather than the web app itself. When you type machine.initialState, the error occurs while the IE developer tools REPL traverses the resulting object in attempt to render an interactive inspectable result row in the IE11 Console.
If I execute JSON.stringify(machine.initialState) (rather than machine.initialState) in the IE11 Console instead, that error disappears.
Just tried the following, and it appears to address the original complaint for the supplied example - the "actions" array is populated.
<script src="https://polyfill.io/v3/polyfill.js?features=es5,Array.from,Array.isArray,Array.prototype.@@iterator,Array.prototype.find,Array.prototype.includes,matchMedia,Intl,Object.assign,Object.create,Object.values,Object.entries,Number.isNaN,Map,Set,Symbol,Symbol.iterator"></script>
<script<EMAIL_ADDRESS><script<EMAIL_ADDRESS>
<script>
window.machine = XState.Machine({
    key: 'testmachine',
    initial: 'initializing',
    states: {
        ended: {},
        initializing: {
            on: {
                start: 'started'
            },
            onEntry: ['create']
        },
        started: {
            on: {
                end: 'ended'
            }
        }
    }
});
var element = document.createElement('pre');
element.textContent = JSON.stringify(machine.initialState, null, 2);
document.body.appendChild(element);
</script>

Before (using the polyfills from the supplied CodePen):
{
  "actions": [],
  "activities": {},
  "meta": {},
  "events": [],
  "value": "initializing",
  "event": {
    "type": "xstate.init"
  }
}

After (with the updated polyfills referenced above):
{
  "actions": [
    {
      "type": "create"
    }
  ],
  "activities": {},
  "meta": {},
  "events": [],
  "value": "initializing",
  "event": {
    "type": "xstate.init"
  }
}

I tried to derive the polyfill selection from the selection listed in the comments from the original CodePen, but:

html5shiv does not appear to be a valid option currently; and
adding Object.create appeared to be important.

Hope that helps!

Great analysis! I'll see if I can avoid using Set, but other than that, not much I can do with regard to IE11 behavior.

I've dug into this a little bit too and it really seems like a problem with polyfill.io service (at least with the version posted by @Zenwolf ), because I've run the example machine right now with their recent polyfills and it works OK (at least when it comes to reading the .initialState.
In the version posted here originally there was a broken "setDescriptor" implementation:
	setDescriptor = function (o, key, descriptor) {
		var protoDescriptor = gOPD(ObjectProto, key);
		delete ObjectProto[key];
		defineProperty(o, key, descriptor);
		if (o !== ObjectProto) {
			defineProperty(ObjectProto, key, protoDescriptor);
		}
	};

It has crashed because protoDescriptor was undefined for one of the cases and that couldn't be set on ObjectProto, when I've fixed the condition to if (o !== ObjectProto && protoDescriptor) the issue went away.
To sum it up - this really shouldn't be reported here and I believe the issue can be closed as XState can be successfully ran in IE11, it just needs proper polyfills.


make the website more responsive for smaller screens

Like we can change the properties of  fest and clubs container

Assign me i will do that


How to close a slack modal with multiple views

I have three modals

On trigger on /addTicket a modal is opened

  MODAL 1

  {

    trigger_id: triggerId,
    // View payload

    view: {
      type: 'modal',
      callback_id: 'ticket_callback_id',

      title: {
        type: 'plain_text',
        text: 'Your Ticket',
      },
      submit: {
        type: 'plain_text',
        text: 'Submit',
      },
      close: {
        type: 'plain_text',
        text: 'Cancel',
      },
     blocks: [] // there are some inputs in it
   }

MODAL 2

On click of submit of Modal 1 this modal opens using push
If user click on edit it goes to first Modal  else it push a new modal

{

    response_action: 'push',

    // View payload

    view: {
      type: 'modal',
      callback_id: 'ticket_callback_id',

      title: {
        type: 'plain_text',
        text: 'Your Ticket',
      },
      submit: {
      type: 'plain_text',
      text: 'Submit',
      emoji: true,
    },
    close: {
      type: 'plain_text',
      text: 'Edit',
      emoji: true,
    },
     blocks: [] // there are some inputs in it
   }

MODAL 3

I want to just show a close button in this modal that should close all modals thats it , how to do it ? Currently it always show automatically two buttons even i delete one from modal view ,

I also tried something like on click of submit of second modal closing all modals and opening just a new modal with a thank you message it also not worked , is there any way to achieve
I tried this { but it only current view not all views, using event listener like this this.boltApp.view({callback_id:'thanks_modal',type:'view_closed'}, () => { await ack({   response_action: 'clear', });)

Like this polly app , it show one button and close modal

{
      response_action: 'push',
      view: {
        type: 'modal',
        notify_on_close: true,
        close: {
          type: 'plain_text',
          text: 'Edit',
          emoji: true,
        },
        title: {
          type: 'plain_text',
          text: 'Profile Preview',
          emoji: true,
        },
        blocks: [
          {
            type: 'section',
            text: {
              type: 'mrkdwn',
              text: "Thanks",
            },
          },
        ],
      },

One hack i did is this in Modal 3. Is this correct way ?
await ack({
      response_action:'clear'
    });
    //   const userId = body.user.id;
    await client.views.open({
      trigger_id: body.trigger_id,
      view: {
        type: 'modal',
        title: {
          type: 'plain_text',
          text: 'Closing Views',
        },
        close: {
          type: 'plain_text',
          text: 'Close',
        },
        blocks: [
          {
            type: 'section',
            block_id: 'welcome_message',
            text: {
              type: 'plain_text',
              text: `Thanks`,
            },
          },
        ],
      },
    });

Hi @nehag322 👋🏻
Thanks for the detailed information about your question.
Only show a close button:
From your code samples, I believe you should have successfully shown only a "Close" button (no "Submit" button):
Modifying the sample code for opening a view to only show a "Close" button would look something like this:
  const result = await client.views.open({
    // Pass a valid trigger_id within 3 seconds of receiving it
    trigger_id: body.trigger_id,
    // View payload
    view: {
      type: 'modal',
      // View identifier
      callback_id: 'view_1',
      title: {
        type: 'plain_text',
        text: 'Modal title'
      },
      blocks: [
        {
          type: 'section',
          text: {
            type: 'mrkdwn',
            text: 'Welcome to a modal with _blocks_'
          },
        },
      ],
      close: {
        type: 'plain_text',
        text: 'Close'
      },
      clear_on_close: true
    }
  });

Closing all modals:
Have you tried using the clear_on_close: true field property? This may help you out!
Cheers,
Michael

Hy @mwbrooks It did not worked , when i open a modal using ur code . On click of close button it take me to  MODAL 1 . my expectation is when it show Modal 3 (Thank You Message) as described above . On click of close it should close all modals

@nehag322 How aboug using only response_action: "update" instead of pushing multiple modal views? To me, your use case should work in the way and the approach should be significantly easier to handle. If you still need sub modals for some reason, unfortuantely there is no simple way to display a new modal while closing the rest.

@seratch If i do update still other views can be in modal, but this works LINK , do you see any issue with this approach ?

@nehag322 I don't recommend going with this approach, as it is not guaranteed by design. It may work with the desktop and web app clients, at least for you, but it may not always work. As far as I know, it never works with mobile clients (iOS or Android). It may be working today, but there is no guarantee that it will continue to work in the future since it's not by design.

@seratch They way u suggested above response_action: "update" isn't it as per guidelines to update view , not to totally replace it  like changing modal completely

To understand better not guaranteed by design. what you mean by this i tested on mobile it working too like we are just clearing modal ad then opening a new modal whats wrong here and what could potentially fail according to you ? Please help me understand

The views.open API is supposed to be triggerred when you receive a trigger_id via a user interaction/action (e.g., button click in a message, slash command invocation). When a user is already interacting with a modal, updating the modal / pushing a new one on top of the modal with ack({ response_action: "..." }) is the recommended way.
The current desktop/mobile apps may work for most cases by chance, but the behavior with future version client apps may be different. Also, a kind of race condition may cause misbehavior in the scenario too.

Also if i want to update same views , then i need to fetch data from DB and populate them , which is taking more than 3 seconds any better way to solve this ?

If you are looking for examples with "update" approach, my past replies may be helpful to you. You can udpate the current modal view to display "Now loading" / "Now processing" by ack({response_action: "update", view: loadingView}) first, and then call views.update API method with a complete result view when the processing is done.

https://github.com/slackapi/bolt-python/issues/866#issuecomment-1473499540
https://github.com/slackapi/bolt-python/issues/501#issuecomment-949277673

Is everything clear now? If yes, would you mind closing this issue now?


[READY] do/issue-436: add terraform-config-inspect nix build

Description of PR
Creating a new nix build for terraform-config-inspect. Also tested building with Cachx and pushed the binaries up.
The main caveat was that I had to fork the original repo in order to add a tag and create a version, as the original repo only has a master branch and no tags at all.
Fork: https://github.com/davido-nw/terraform-config-inspect
Original: https://github.com/hashicorp/terraform-config-inspect
The version I created was basically just today's timestamp.
Tests

Built locally.

@sarcasticadmin Fixed the CI; should be ready now. Also I had to keep the version out of the name itself, seeing as Nix appends the version to the end of the package name anyway. The resulting package wound up looking like this:
copying path '/nix/store/blkrxja7g6x07g0shzhxy2il8ybylyrz-terraform-config-inspect-unstable-2021-04-27-2021-04-27' from 'https://nebulaworks.cachix.org'...
/nix/store/blkrxja7g6x07g0shzhxy2il8ybylyrz-terraform-config-inspect-unstable-2021-04-27-2021-04-27

@davido-nw had one more comment about the build flags, then we can merge this!

@davido-nw had one more comment about the build flags, then we can merge this!
:boom:


git: 2.29.0 -> 2.29.1

Motivation for this change
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Just a simple fix: https://github.com/git/git/compare/v2.29.0...v2.29.1


avconv

$ youtube-dl --version
2<IP_ADDRESS>
$ uname -a
Linux rpipro 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
$ youtube-dl -x --audio-format mp3 --audio-quality 0 https://www.youtube.com/watch?v=vWz9VN40nCA&list=RDHC1yXpM9Oi66A
[youtube] vWz9VN40nCA: Extracting video information
[youtube] vWz9VN40nCA: Downloading DASH manifest
[download] Destination: Olivia Newton-John - Physical-vWz9VN40nCA.m4a
[download] 100% of 6.80MiB in 00:02
[avconv] Destination: Olivia Newton-John - Physical-vWz9VN40nCA.mp3
WARNING: Your copy of avconv is outdated, update avconv to version 10-0 or newer if you encounter any errors.
How to fix the warning about "avconv is outdated"?
I tried the following but failed:
$ sudo apt-get install libav-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
libav-tools is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 28 not upgraded.
Thanks in advance.

I also get the warning on Ubuntu Trusty, even using mc3mans repo in active. Using --prefer-avconv each time is gonna make me bored & tired. Could we add this option in a file like .youtube-dlrc?

@ekremkaraca I think https://github.com/rg3/youtube-dl#configuration is helpful.

Oops, seems I've missed this one, thanks so much @yan12125!

Why is youtube-dl downloading 2 files for this video.. and it seems that the final mp4 file is just audio.
When I run locally on my MacOS, this doesn't happen. When it's running on the server (iron.io) I see this problem.
[youtube] QC2kYBm2zMU: Downloading webpage
[youtube] QC2kYBm2zMU: Extracting video information
[youtube] QC2kYBm2zMU: Downloading DASH manifest
[download] Destination: QC2kYBm2zMU.f137.mp4
[download]   0.0% of 103.52MiB at 389.70KiB/s ETA 04:37
[download]   0.0% of 103.52MiB at  1.03MiB/s ETA 01:40
[download]   0.0% of 103.52MiB at  2.23MiB/s ETA 00:46
[download]   0.0% of 103.52MiB at  4.24MiB/s ETA 00:24
[download]   0.0% of 103.52MiB at  8.00MiB/s ETA 00:12
[download]   0.1% of 103.52MiB at  4.40MiB/s ETA 00:23
[download]   0.1% of 103.52MiB at  4.84MiB/s ETA 00:21
[download]   0.2% of 103.52MiB at  6.95MiB/s ETA 00:14
[download]   0.5% of 103.52MiB at 10.51MiB/s ETA 00:09
[download]   1.0% of 103.52MiB at 15.94MiB/s ETA 00:06
[download]   1.9% of 103.52MiB at 18.94MiB/s ETA 00:05
[download]   3.9% of 103.52MiB at 26.18MiB/s ETA 00:03
[download]   7.7% of 103.52MiB at 27.16MiB/s ETA 00:03
[download]  11.6% of 103.52MiB at 12.93MiB/s ETA 00:07
[download]  15.5% of 103.52MiB at 14.02MiB/s ETA 00:06
[download]  19.3% of 103.52MiB at 10.38MiB/s ETA 00:08
[download]  23.2% of 103.52MiB at 11.44MiB/s ETA 00:06
[download]  27.0% of 103.52MiB at 12.78MiB/s ETA 00:05
[download]  30.9% of 103.52MiB at 10.67MiB/s ETA 00:06
[download]  34.8% of 103.52MiB at 11.47MiB/s ETA 00:05
[download]  38.6% of 103.52MiB at 10.99MiB/s ETA 00:05
[download]  42.5% of 103.52MiB at 11.13MiB/s ETA 00:05
[download]  46.4% of 103.52MiB at 11.59MiB/s ETA 00:04
[download]  50.2% of 103.52MiB at  9.51MiB/s ETA 00:05
[download]  53.1% of 103.52MiB at  9.99MiB/s ETA 00:04
[download]  57.0% of 103.52MiB at 10.55MiB/s ETA 00:04
[download]  60.9% of 103.52MiB at  9.97MiB/s ETA 00:04
[download]  64.7% of 103.52MiB at 10.21MiB/s ETA 00:03
[download]  68.6% of 103.52MiB at  9.99MiB/s ETA 00:03
[download]  72.5% of 103.52MiB at  9.37MiB/s ETA 00:03
[download]  76.3% of 103.52MiB at  9.75MiB/s ETA 00:02
[download]  80.2% of 103.52MiB at  9.66MiB/s ETA 00:02
[download]  84.1% of 103.52MiB at  9.02MiB/s ETA 00:01
[download]  87.8% of 103.52MiB at  9.35MiB/s ETA 00:01
[download]  91.6% of 103.52MiB at  9.65MiB/s ETA 00:00
[download]  95.5% of 103.52MiB at  9.64MiB/s ETA 00:00
[download]  99.3% of 103.52MiB at  9.76MiB/s ETA 00:00
[download] 100.0% of 103.52MiB at  9.81MiB/s ETA 00:00
[download] 100% of 103.52MiB in 00:10
[download] Destination: QC2kYBm2zMU.f141.m4a
WARNING: Your copy of avconv is outdated, update avconv to version 10-0 or newer if you encounter any errors.
[download]   0.0% of 8.09MiB at 753.02KiB/s ETA 00:11
[download]   0.0% of 8.09MiB at  1.87MiB/s ETA 00:04
[download]   0.1% of 8.09MiB at  3.49MiB/s ETA 00:02
[download]   0.2% of 8.09MiB at  6.24MiB/s ETA 00:01
[download]   0.4% of 8.09MiB at 11.17MiB/s ETA 00:00
[download]   0.8% of 8.09MiB at  4.42MiB/s ETA 00:01
[download]   1.5% of 8.09MiB at  4.91MiB/s ETA 00:01
[download]   3.1% of 8.09MiB at  6.89MiB/s ETA 00:01
[download]   6.2% of 8.09MiB at  9.95MiB/s ETA 00:00
[download]  12.4% of 8.09MiB at 14.92MiB/s ETA 00:00
[download]  24.7% of 8.09MiB at 21.62MiB/s ETA 00:00
[download]  49.4% of 8.09MiB at 35.50MiB/s ETA 00:00
[download]  98.9% of 8.09MiB at  3.35MiB/s ETA 00:00
[download] 100.0% of 8.09MiB at  3.39MiB/s ETA 00:00
[download] 100% of 8.09MiB in 00:02
[ffmpeg] Merging formats into "QC2kYBm2zMU.mp4"
Deleting original file QC2kYBm2zMU.f137.mp4 (pass -k to keep)
Deleting original file QC2kYBm2zMU.f141.m4a (pass -k to keep)

Open a new issue with the output you get with the --verbose option, you should also read the last paragraph of the format selection docs.

The warning also comes up when using the avconv provided by ffmpeg:
ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.3 (Debian 4.9.3-3)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/i386-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/i386-linux-gnu
libavutil      54. 27.100 / 54. 27.100
libavcodec     56. 41.100 / 56. 41.100
libavformat    56. 36.100 / 56. 36.100
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 16.101 /  5. 16.101
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  2.100 /  1.  2.100
libpostproc    53.  3.100 / 53.  3.100

Applying any of listed below solutions didn't  fix the warning. Is it outdated package in debian testing or there is some kind of a bug on the script side?

I'm not sure how much of help it would be, but this solved the issue in my computer, http://askubuntu.com/questions/563245/avconv-warning-while-downloading-youtube-video


Alternative approach

An alternative approach would be to mark errors and store them in a WeakSet. The benefit is that we would not have to modify errors or use PresentableError. The downside is that consumers would need to use this package to mark or check for presentable errors. And I'm not sure it would work cross-realm.
import meow from 'meow';
import {makeErrorPresentable, isPresentableError} from 'presentable-error';

const customError = new CustomError();

makeErrorPresentable(customError);

try {
	throw customError;
} catch (error) {
	if (isPresentableError(error)) {
		console.error(error.message);
		process.exit(1);
	}

	throw error;
}

Thoughts?

I'm looking for a way to know which error messages can be sent to the user and remembered this library. In addition, I'll want to have an error name/code attached for programmatic access, res.send({ name: 'AUTH_FAIL', message: 'Invalid username/password combination' })
Have you thought any more about presentable-error since?

@xykota I'm still thinking about this, yes, but I got busy, and I also didn't get much feedback on the idea.
Any thoughts on which approach you prefer? This or the one in the readme?


Who sent the message

Currently only the message itself is placed in your inbox, but not who sent you the message. So you have no idea where the message actually came from. This means you don't know who to respond to. (unless I'm missing something very obvious?)
I think a simple fix might be placing both the sender floor + the message in the inbox during the SendMessage function in the tower.

Hey! See https://github.com/SOMAS2021/SOMAS2021/blob/main/pkg/messages/baseMessage.go#L9, all messages have a prop indicating the floor they came from

Wouldn't you include senderID as well? @JaafarRammal

No, you gotta ask "who dis?" to know who's above you

But if you're sending a message wouldn't you know the sender from their voice?

@jzzheng22 I think senderID is like name right? so you wouldn't know the name of an agent unless they tell you the name right?


cmd/kube-spawn: remove cni config when destroying a cluster

Let's make ./kube-spawn destroy removes every CNI configuration file under /var/lib/cni/networks/kube-spawn-net as well as /etc/cni/net.d/10-kube-spawn-net.conf.
Fixes https://github.com/kinvolk/kube-spawn/issues/11

@robertgzr Right. I just removed the option.


Sort voucher list by expiration time

could use http://stackoverflow.com/questions/14267781/sorting-html-table-with-javascript#14268260


Cannot start Lute 3.8.1 with Docker due to permission error on README.md file

Description
I tried to start Lute with the latest Docker image. Everything was downloaded but Lute failed during start of the container with the log message:
[lute] |
[lute] |   Starting Lute version 3.8.1.
[lute] |
[lute] |   Using default config
[lute] |     data path: /lute_data
[lute] |     database:  /lute_data/lute.db
[lute] |     (Note these are container paths, not host paths.)
[lute] |
[lute] |
[lute] | --------------------------------------------------
[lute] | Error during startup:
[lute] | Type: <class 'PermissionError'>
[lute] | [Errno 13] Permission denied: '/lute_data/README.md'
[lute] |
[lute] | Please check your setup and try again.
[lute] | Ask for help on Discord, or report an issue on GitHub.
[lute] | Additionally, help is available with --help.
[lute] | --------------------------------------------------
[lute] |
The newly created folders "data" and "backups" remain empty and there is no file called README.md to found.
Also, I tried creating an empty file with the exact same name but that didn't change anything in the log output and Lute still failed.
Do I need to set some specific file permissions perhaps?
To Reproduce
Steps to reproduce the behavior, e.g.:
Follow the Docker Lute installation steps as describe by the Lute manual: https://luteorg.github.io/lute-manual/install/install.html#using-docker
I did not change the port numbers as that was not required for my system.
Extra software info, if not already included in the Description:

OS (e.g., iOS, windows): Fedora Linux 41
Browser (e.g., chrome, safari): Firefox (but not relevant here as Lute doesn't even start)
How you've installed Lute (Docker, python, source): Docker image.
Version: 3.8.1

Hi there. I assume you followed the instructions at https://luteorg.github.io/lute-manual/install/install.html#using-docker
I’ve never heard of this error and don’t have a símilar setup to test on … maybe permissions need changing but I don’t even understand how this is happening as that read me file is not used.
I don’t feel this is an image problem, see if the instructions help at all. Cheers!

The strange thing is that with some of the previous versions I had no trouble at all.
Well, if I remember correctly, I had no issues with the Docker image of version 3.3. I think I also tried the Docker image of version 3.6 and got the same log message.
Anyway, I managed to get Lute working with the pip method. Not my preferred method but it will do for now.

Hmmmm ... not sure what could be going wrong.  Understood about docker being better for you: for techies it's definitely appealing, for non-techs it's easy to get lost.
I'll see if I can rebuild and repush the image -- perhaps the buildx got messed up along the way, with multi-platform builds (images built and pushed from my mac)

Oh no, you don't have to do that. It is very likely a problem on my system. Especially as no one else has reported a similar issue. The only thing is that I'm not a Linux admin expert which means I've no idea where to look for the cause.
Anyway, for me there is a workaround and you can close this bug report if you want to.


cross-post blog and minor fixes

closes #5, closes #6, closes #7. cc @reshamas @symeneses

we should update the card content and add some more tags I think like sprint, contributing (there might be testimonials about using pymc at some point maybe). Open to suggestions.

@OriolAbril
Looks good to me.  Thanks.


Warn instead of erroring when sub is nil

But do subscriptions get cleaned up? I thought AMS just marked them as
Deprovisioned (soft delete) so that we can always find them. Has this
changed recently?

/label tide/merge-method-squash

@gdbranco - can you squash locally?