No secondary storage VM for downloading template to image store

ISSUE TYPE

Other

I do not want to categorize as a bug as it could be an issue with my environment
COMPONENT NAME

Agent

CLOUDSTACK VERSION

4.17.2

CONFIGURATION

Config as per the quick install guide
Eth0 ethernet equivalent:
enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master cloudbr0 state UP group default qlen 1000
Brigde interface:
cloudbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global cloudbr0
OS / ENVIRONMENT

Centos 7.9 running on VirtualBox,
Red Hat Enterprise Linux 8.7 running on VirtualBox
SUMMARY

Not sure where exactly the issue lies but the symptoms are as below:

System VMs state stuck at Starting. No agent state. I've restarted both agent and management countless times

Attempting to add an iso throws this error: Request failed. (530)
There is no secondary storage VM for downloading template to image store Secondary1

Based on the error above I can surmise that the secondary storage is not getting registered

CentOS 5.5(64-bit) no GUI (KVM) doesn't seem to be downloading. No activity shown (documentation says there will be download percentage). SystemVM Template (KVM) shows download complete

STEPS TO REPRODUCE

http://docs.cloudstack.apache.org/en/latest/quickinstallationguide/qig.html
I also added a service offering with larger memory on with secondarystorage and assigned the uuid to the secstorage.service.offering global setting as per advice from another cloudstack issue thread. However that didn't make any difference.
The cloudstack rpms used are both from the repo and self-compiled from source.

EXPECTED RESULTS

The platform to load VMs and the ability to add my own images and create new instances

ACTUAL RESULTS

So far the only major error I can see is
Passing cmdline failed:timeout when the patch.sh script is executed
2023-01-27 11:13:25,241 WARN  [kvm.resource.LibvirtComputingResource] (agentRequest-Handler-2:null) (logid:e95810d3) Timed out: /usr/share/cloudstack-common/scripts/vm/hypervisor/kvm/patch.sh -n v-1-VM -c  template=domP type=consoleproxy host=<IP_ADDRESS> port=8250 name=v-1-VM zone=1 pod=1 guid=Proxy.1 proxy_vm=1 disable_rp_filter=true authorized_key=c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDNk1VZHJZS2ZtOFBaQURKR2hMUXdVdHh6b3V6bzg4amNIUTZVQjA4UXczYjV5Qzl2MkRPTWRlc3RJL1F5SzYwbEk3RjR4MVlDOFYvaW5uQVFBeWlmQlFvZjRtVnQyREhuMzA1MlhOU0VpaU1pQVNQb2dMRGNLWkl4cjRIZjdmVDlIRGpUUnVGRkN3TExrNVphazJqVzVrSnlCYnhtbzlCcWd1WlllcmFvNVVUWDA1SXdDRGF2M1ZmaUdab0RLZU1ZaStES2c1ZExCRjNKOXU2elI2bVhBWG9xbUs3MlNtRytCR2dVMlM1Mm9GNWtuNUQxUEhzRGpOd3VNS1g1aThuckxtNzdzOHZkZnBVV0JTekZ1ejFCNjFraFd5SStlVDBrMkNsU2NuazNkR2hON2VNOStYTExpWWhrQ01nUmYzQXNpa1Y2Tm0yZG13RDR4aWxMRUpqdU4gY2xvdWRAc3J2MS5jbG91ZC5sb2NhbAo= eth2ip=<IP_ADDRESS> eth2mask=<IP_ADDRESS> gateway=<IP_ADDRESS> eth0ip=<IP_ADDRESS> eth0mask=<IP_ADDRESS> eth1ip=<IP_ADDRESS> eth1mask=<IP_ADDRESS> mgmtcidr=<IP_ADDRESS>/24 localgw=<IP_ADDRESS> internaldns1=<IP_ADDRESS> internaldns2=<IP_ADDRESS> dns1=<IP_ADDRESS> dns2=<IP_ADDRESS> keystore_password=N2g3N0RPYWRXS0M0bmhINg== .  Output is:

2023-01-27 11:13:25,242 ERROR [kvm.resource.LibvirtComputingResource] (agentRequest-Handler-2:null) (logid:e95810d3) Passing cmdline failed:timeout

@mail2lawi
The zone is not ready for use if system vms are not Running or agent state is not Up.
Please check if the systemvm template is correct, network are configured correctly.

@mail2lawi
have you configured firewall rules on your kvm hosts ?

The firewall is disabled:
@.*** ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled;
vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
On Fri, 27 Jan 2023, 18:42 Wei Zhou, @.***> wrote:

@mail2lawi https://github.com/mail2lawi
have you configured firewall rules on your kvm hosts ?
—
Reply to this email directly, view it on GitHub
https://github.com/apache/cloudstack/issues/7138#issuecomment-1406675221,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHEP4EJOUYMMM7OZFEMWBS3WUPUHRANCNFSM6AAAAAAUIO74KU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@mail2lawi
it would be better to upload the management server log and agent.log on kvm host.

I'm experiencing the exact same issue (also not completely sure if its a networking setup problem as we're using VLANs to route everything).
grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloudstack/management/management-server.log returns nothing of note:
only an error when trying to upload an ISO
2023-01-26 19:06:45,246 ERROR [c.c.a.ApiServer] (qtp1418620248-871:ctx-3b21f4b3 ctx-a01fc1f8) (logid:96cdc637) unhandled exception executing api command: [Ljava.lang.String;@6603c580 com.cloud.utils.exception.CloudRuntimeException: There is no secondary storage VM for downloading template to image store NFS
and repeated instances of
2023-01-26 19:09:48,806 WARN  [c.c.a.d.ParamGenericValidationWorker] (qtp1418620248-314:ctx-2be6cdaf ctx-3fd5d4d6) (logid:ac566364) Received unknown parameters for command listSystemVms. Unknown parameters : listall
Logs of the host agent is below
2023-01-27 19:02:43,827 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:d2aa9210) [Ljava.lang.StackTraceElement;@7ff82f8c 2023-01-26 19:02:45,268 INFO  [kvm.resource.LibvirtConnection] (agentRequest-Handler-5:null) (logid:eecc7bf1) No existing libvirtd connection found. Opening a new one 2023-01-26 19:02:45,273 WARN  [kvm.resource.LibvirtConnection] (agentRequest-Handler-5:null) (logid:eecc7bf1) Can not find a connection for Instance s-1-VM. Assuming the default connection. 2023-01-26 19:02:45,720 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-5:null) (logid:eecc7bf1) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-state-change.groovy' is not available. Transformations will not be applied. 2023-01-26 19:02:45,721 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-5:null) (logid:eecc7bf1) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:02:46,944 WARN  [kvm.resource.LibvirtConnection] (agentRequest-Handler-4:null) (logid:d2aa9210) Can not find a connection for Instance v-2-VM. Assuming the default connection. 2023-01-26 19:02:47,087 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:d2aa9210) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-state-change.groovy' is not available. Transformations will not be applied. 2023-01-26 19:02:47,088 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:d2aa9210) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:03:11,613 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Attempting to create storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 (NetworkFilesystem) in libvirt 2023-01-26 19:03:11,635 WARN  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 was not found running in libvirt. Need to create it. 2023-01-26 19:03:11,635 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Didn't find an existing storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 by UUID, checking for pools with duplicate paths 2023-01-26 19:03:11,768 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Trying to fetch storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 from libvirt 2023-01-26 19:03:11,835 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:11,877 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:41,203 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:8d951be0) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:41,244 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:8d951be0) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:03:59,134 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:59,161 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Attempting to remove storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 from libvirt 2023-01-26 19:03:59,164 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 has no corresponding secret. Not removing any secret. 2023-01-26 19:03:59,263 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:eecc7bf1) Storage pool 4e10bd24-9d7c-3901-a7f6-540e0402f1b8 was successfully removed from libvirt. 2023-01-26 19:03:59,405 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:59,438 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:03:59,622 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:eecc7bf1) Creating volume 04b86cf7-51cc-44f7-aa38-f99934a3a35d from template 5b284418-9dd3-11ed-9d65-7ad04bea7024 in pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 (RBD) with size (0 bytes) 0 2023-01-26 19:04:00,810 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:01,216 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:eecc7bf1) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:01,302 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:eecc7bf1) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-xml-transformer.groovy' is not available. Transformations will not be applied. 2023-01-26 19:04:01,302 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:eecc7bf1) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:04:02,635 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:eecc7bf1) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-state-change.groovy' is not available. Transformations will not be applied. 2023-01-26 19:04:02,636 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-4:null) (logid:eecc7bf1) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:04:03,661 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:d2aa9210) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:03,706 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:d2aa9210) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:03,859 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:d2aa9210) Creating volume 4a93f313-0696-44d6-9b0c-a9d9cafac126 from template 5b284418-9dd3-11ed-9d65-7ad04bea7024 in pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 (RBD) with size (0 bytes) 0 2023-01-26 19:04:04,469 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:d2aa9210) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:04,863 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:d2aa9210) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:05,010 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-2:null) (logid:d2aa9210) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-xml-transformer.groovy' is not available. Transformations will not be applied. 2023-01-26 19:04:05,011 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-2:null) (logid:d2aa9210) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:04:06,992 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-2:null) (logid:d2aa9210) Groovy script '/etc/cloudstack/agent/hooks/libvirt-vm-state-change.groovy' is not available. Transformations will not be applied. 2023-01-26 19:04:06,993 WARN  [kvm.resource.LibvirtKvmAgentHook] (agentRequest-Handler-2:null) (logid:d2aa9210) Groovy scripting engine is not initialized. Data transformation skipped. 2023-01-26 19:04:41,458 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:051f8d54) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:04:41,505 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:051f8d54) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:05:41,790 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:fd6362cb) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:05:41,819 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:fd6362cb) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:06:42,090 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:851536a6) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:06:42,119 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:851536a6) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:07:42,411 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:0b677b18) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:07:42,445 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:0b677b18) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:08:42,766 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:85f0ab70) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:08:42,797 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:85f0ab70) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:09:43,082 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:6bedb78d) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:09:43,112 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:6bedb78d) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:10:06,142 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:05170b16) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:10:06,343 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:05170b16) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:10:43,406 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:dbd59a1f) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:10:43,448 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:dbd59a1f) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:11:43,750 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:0834a446) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:11:43,779 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:0834a446) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:12:44,054 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:4b75e44d) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:12:44,084 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:4b75e44d) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:13:44,395 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:dbd3b3da) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:13:44,423 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:dbd3b3da) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:14:44,738 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:73ec6f1b) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:14:44,768 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:null) (logid:73ec6f1b) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:15:45,062 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:4bc40b96) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:15:45,091 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:4bc40b96) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 2023-01-26 19:16:45,378 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:0eed0e5e) Trying to fetch storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 from libvirt 2023-01-26 19:16:45,407 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:0eed0e5e) Asking libvirt to refresh storage pool 30e2ae2c-87a8-3fe4-af7b-84a226b20787 r

@mail2lawi @dfgyuri
There are multiple reasons which cause the systemvm not to start.
Just for your information, the issue I recently faced is, the storage network uses MTU 9000 which cause the NFS shares cannot be mounted on kvm hosts (mount command is stuck). The issue has been fixed by resetting the MTU to 1500.

@mail2lawi @dfgyuri
can you enable debugging on kvm host and the share the logs ?
    cp /etc/cloudstack/agent/log4j-cloud.xml /etc/cloudstack/agent/log4j-cloud.xml.orig && \
    sed -i "s/INFO/DEBUG/g" /etc/cloudstack/agent/log4j-cloud.xml && \
    systemctl restart cloudstack-agent

@weizhouapache this is the error from the management server at the point the registering of the iso fails:
dary storage VM for downloading template to image store Secondary1 2023-02-03 11:56:32,343 DEBUG [c.c.u.d.T.Transaction] (qtp1462044018-17:ctx-b6703198 ctx-3cdcdf4a) (logid:72393cb1) Rolling back the transaction: Time = 86 Name =  qtp1462044018-17; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-Transaction.execute:38-Transaction.execute:47-HypervisorTemplateAdapter.createTemplateForPostUpload:329-TemplateManagerImpl.registerPostUploadInternal:370-TemplateManagerImpl.registerIsoForPostUpload:424-NativeMethodAccessorImpl.invoke0:-2-NativeMethodAccessorImpl.invoke:62-DelegatingMethodAccessorImpl.invoke:43-Method.invoke:566 2023-02-03 11:56:32,437 ERROR [c.c.a.ApiServer] (qtp1462044018-17:ctx-b6703198 ctx-3cdcdf4a) (logid:72393cb1) unhandled exception executing api command: [Ljava.lang.String;@39d499aa com.cloud.utils.exception.CloudRuntimeException: There is no secondary storage VM for downloading template to image store Secondary1 	at com.cloud.template.HypervisorTemplateAdapter$1.doInTransaction(HypervisorTemplateAdapter.java:394) 	at com.cloud.template.HypervisorTemplateAdapter$1.doInTransaction(HypervisorTemplateAdapter.java:329) 	at com.cloud.utils.db.Transaction$2.doInTransaction(Transaction.java:50) 	at com.cloud.utils.db.Transaction.execute(Transaction.java:40) 	at com.cloud.utils.db.Transaction.execute(Transaction.java:47) 	at com.cloud.template.HypervisorTemplateAdapter.createTemplateForPostUpload(HypervisorTemplateAdapter.java:329) 	at com.cloud.template.TemplateManagerImpl.registerPostUploadInternal(TemplateManagerImpl.java:370) 	at com.cloud.template.TemplateManagerImpl.registerIsoForPostUpload(TemplateManagerImpl.java:424) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.base/java.lang.reflect.Method.invoke(Method.java:566) 	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) 	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) 	at org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107) 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) 	at com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:52) 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) 	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) 	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) 	at com.sun.proxy.$Proxy217.registerIsoForPostUpload(Unknown Source) 	at org.apache.cloudstack.api.command.user.iso.GetUploadParamsForIsoCmd.execute(GetUploadParamsForIsoCmd.java:133) 	at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:163) 	at com.cloud.api.ApiServer.queueCommand(ApiServer.java:776) 	at com.cloud.api.ApiServer.handleRequest(ApiServer.java:600) 	at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:327) 	at com.cloud.api.ApiServlet$1.run(ApiServlet.java:145) 	at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55) 	at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:102) 	at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52) 	at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:142) 	at com.cloud.api.ApiServlet.doGet(ApiServlet.java:96) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:645) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) 	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450) 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434) 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:763) 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 	at org.eclipse.jetty.server.Server.handle(Server.java:516) 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400) 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645) 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392) 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) 	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) 	at java.base/java.lang.Thread.run(Thread.java:829) 2023-02-03 11:56:32,452 DEBUG [c.c.a.ApiServlet] (qtp1462044018-17:ctx-b6703198 ctx-3cdcdf4a) (logid:72393cb1) ===END===
Also find attached the full agent.log and management.log
agent.log
management-server.log

@mail2lawi
the logs show
2023-02-03 11:31:43,853 INFO  [c.c.a.m.AgentManagerImpl] (AgentManager-Handler-10:null) (logid:) Host 1 has informed us that it is shutting down with reason sig.kill and detail null
2023-02-03 11:31:43,857 INFO  [c.c.a.m.AgentManagerImpl] (AgentTaskPool-1:ctx-8d356eb9) (logid:16fa9839) Host 1 is disconnecting with event ShutdownRequested
2023-02-03 11:31:43,897 DEBUG [c.c.a.m.AgentManagerImpl] (AgentTaskPool-1:ctx-8d356eb9) (logid:16fa9839) The next status of agent 1is Disconnected, current status is Up
2023-02-03 11:31:43,898 DEBUG [c.c.a.m.AgentManagerImpl] (AgentTaskPool-1:ctx-8d356eb9) (logid:16fa9839) Deregistering link for 1 with state Disconnected
2023-02-03 11:31:43,898 DEBUG [c.c.a.m.AgentManagerImpl] (AgentTaskPool-1:ctx-8d356eb9) (logid:16fa9839) Remove Agent : 1

@weizhouapache first of all, thank you so much for the keen interest in helping resolve this. I deeply appreciate it.
As for the response above, I should have clipped the management.log to ignore the logs at around the 11.31 mark. That's the time I ran the agent restart command as per your previous recommendation.
Apologies for that

What if I uploaded the VirtualBox image somewhere for you to try replicate what I'm facing?

Trying to start the VMs manually from the web portal I get this error:
Request failed. (431)
Unable to find UUID for id [29] of type [VirtualMachine]

I have to say I am embarrassed to admit I have been defeated by this software. From the reviews it looks like a fantastic platform, pity that I have not managed to get it to work on my system. I will revisit one day. I was hoping to use Cloudstack for internal office use but I can't even get the PoC to work
Again, thanks @weizhouapache for the effort.

Trying to start the VMs manually from the web portal I get this error:
Request failed. (431)
Unable to find UUID for id [29] of type [VirtualMachine]

I have to say I am embarrassed to admit I have been defeated by this software. From the reviews it looks like a fantastic platform, pity that I have not managed to get it to work on my system. I will revisit one day. I was hoping to use Cloudstack for internal office use but I can't even get the PoC to work
Again, thanks @weizhouapache for the effort.

if everything is configured correctly, you can create a cloudstack environment in less than 10 minutes.
Maybe it is because you use virtualbox, maybe network misconfigurations

@mail2lawi sorry to hear your feedback, could you refer to one of these guides:
https://docs.cloudstack.apache.org/en/latest/quickinstallationguide/qig.html
https://rohityadav.cloud/blog/cloudstack-kvm/
Since this isn't a general product bug, but you're reporting issues in your setup env while learning cloudstack, I encourage that you can join our users@ mailing list and discuss any further queries there: https://cloudstack.apache.org/mailing-lists.html


Browserify Failed!: 'import' and 'export' may appear only with 'sourceType: module'

This looks great! Except when I try to bundle my code using Browserify, I get the following error:
Browserify Failed!: 'import' and 'export' may appear only with 'sourceType: module'

/Users/martijnbac/Code/admin-react/node_modules/draft-js-basic-html-editor/src/BasicHtmlEditor.js:1
import React from 'react';
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'

I just started learning React, so I could be doing something wrong.
Thanks!

Aha, yes - the lib is an ES6 module so will need to be compiled if your not using ES6, it does mention this in the README now but could probably be a bit more explicit.
I don't user Browserify these days, is there any chance you can fix this by enabing ES6 in Browserify for this lib? If not I can try and make a Browserify compatible build but that may take a while

I'm using ES6, Babel and Browserify has ES6 enabled by default. Maybe I'm overlooking something; my knowledge on this area is limited. Would be great to have a Browerify compatible build If the problem lies within this lib.  But because I'm not sure, maybe someone can confirm that the problem can't be fixed by using different Browserify settings.

Ok, I had a look at the Browserify docs and have added some config for it - try pulling the new version 1.0.1 and see if it works now

Thanks! Almost there :-) The Lodash library seems to be missing. Required by src/utiles/processInlineStylesAndEntities.js. The lib compiles when I comment out the import-lines in that file, but then I'm getting an error in the browser console (Uncaught ReferenceError: sortBy is not defined)

Fixed the missing lodash - pull v1.0.2 and that should be it

Great, everything is working now. Thanks!

No problem, thanks for helping me get the module into a usable state :+1:


Changes to support OKD 4.6 and change SSH key from RSA to ECDSA

io.podman.socket changed to podman.socket for FCOS 33
enable fedora and fedora-updates repos for hyperV driver in FCOS 33
change rsa key to ecdsa for SSH for both FCOS 33 and RHCOS
revolves https://github.com/code-ready/crc/issues/1747 for snc bundle
Note: this will break crc builds without: https://github.com/code-ready/crc/pull/1757

This breaks the format of the bundle. We shoud consider bumping it to a new major version.

Can this be split in 3 separate commits?

@cfergeau Do you mean?:

Install HyperV driver in FCOS 33
Change from RSA to ECDSA for SSH

Split into 3 commits as requested.

/ok-to-test

Generated bundle works fine with current crc.
/lgtm


Error while generating code

Summary
Error info: Failed to parse path-to-graphql-file:
fieldA cannot be merged with fieldB: they have different shapes
Here fieldA has the same name with fieldB, but different nullability.
Version

apollo-android: 3.0.0-SNAPSHOT
Android Studio: Android Studio Arctic Fox | 2020.3.1 Canary 10
Gradle: 6.8.2

Description

Content of my graphql file:

fragment PinnableItem on PinnableItem {
  __typename
   # https://docs.github.com/en/graphql/reference/objects#repository
  ... on Repository {
    owner {
      ... on RepositoryOwner { # non-null
        # A URL pointing to the owner's public avatar.
        avatarUrl
        # The username used to login.
        login
        # The HTTP URL for the owner.
        resourcePath
        # The HTTP URL for the owner.
        url
      }
    }
  }
  # https://docs.github.com/en/graphql/reference/objects#gist
  ... on Gist {
    owner {
      ... on RepositoryOwner { # nullable
        # A URL pointing to the owner's public avatar.
        avatarUrl
        # The username used to login.
        login
        # The HTTP URL for the owner.
        resourcePath
        # The HTTP URL for the owner.
        url
      }
    }
  }
}

Where to download the schema definition file:
https://docs.github.com/public/schema.docs.graphql

Screenshot of detailed error information:

Hi @TonnyL 👋  ! I think this is how it is supposed to work? From https://spec.graphql.org/June2018/#sec-Field-Selection-Merging:
If typeA or typeB is Non‐Null.
If typeA or typeB is nullable, return false.
Let typeA be the nullable type of typeA
Let typeB be the nullable type of typeB

Does it actually work in the Github explorer?

Thanks for the quick response, you saved my day!
My code above doesn't work in Github explore. But it actually works on an old stable version(2.5.3) of apollo-android. So I thought it might be a bug of new version of apollo-android 😂.

Sure thing !


Handling failures in the async engine?

From @arschles on October 16, 2017 18:55
I recall a discussion between myself and @krancour about handling failures in the async engine, in which we discussed rolling back changes that were made in prior steps. I believe the async engine doesn't have rollback support yet, but the best practice is to make steps idempotent which makes failure handling less important (because the steps can be re-run with minimal negative consequence). So, this issue exists to track discussion for whether we need to add support for:

Adding a "rollback" function to each step
Adding support in the async engine to rollback all successful steps before a failure

cc/ @krancour

Close as async engine was separated into its own project via https://github.com/Azure/open-service-broker-azure/pull/560.


Increase spacing around content all pages

Please increase in white space between the image and the content

@jazbinda  asdasdads


Unused private variables in Authentification classes

Fixes https://github.com/google/google-api-php-client/issues/527

Good spot!


Update to superagent 1.6.1

Simply updates the dependency

+1

Build is breaking because of node v0.8.
I am in favor of dropping support for 0.8. I see no reason to continue support it. Does anyone disagree?
I would then be in favor of dropping support for .10 and .12 around the April timeframe.
Can you also up the version ^1.7.2 for me being pedantic?

I agree on dropping 0.8 support.

Actually closing this as it's a dup of #302. More activity on that PR.


Relationship of Attribute to ObservableProperty

TERN Ontology includes the class Attribute ('key-value pair' according to the documentation).
Unclear if/how this relates to sosa:ObservableProperty.

The class Attribute is equivalent to the class ssn:Property. This needs to be documented and explained further. Other related properties:

tern:hasAttribute -> ssn:hasProperty
tern:isAttributeOf -> son:isPropertyOf

To be honest, I totally forgot SSN had ssn:Property and it only occurred to me last week.
We currently use the Attribute class to capture additional facts in different scenarios that are not observations.

We use the Attribute class to capture information within the context of an observation. For example, in CORVEG the geological observations have information about the reliability (high, medium, low) of the results.
We use the Attribute class to capture information about individuals. This can be applied to any of the classes such as Sampling or Instrument. For example, the size of the soil ring (10 cm) used to collect the soil sample is recorded by the Attribute class on the Instrument. Another example is capturing observations of the basal hits count through the use of a basal wedge. The basal wedge factor is captured as an Attribute of the Instrument (basal wedge).
Originally, we modelled only things that were observed in the field as observations and things that were observed outside the context of the site visit were modelled as attributes. An example of this is the determined species name. In O&M, this makes sense to be modelled as an observation. We were thinking to have observation types to illustrate if an observation was a field observation, derived observation, etc.

Though this Attribute or ssn:Property class is necessary to capture additional information in different scenarios, we are concerned that it is making the model too complicated for users to submit data that conforms to the standard.
@smguru's suggestion is to make everything an ObservableProperty but see points 1 and 2.
On a separate but related note, we would like to model the cardinality of attributes and observable properties based on the featureType value (plant individual, landform, plant community, etc.) without using OWL. Note the attributes and observable properties are modelled as SKOS controlled vocabularies. We want to keep the core model small and domain-agnostic but we also want to somehow express what attributes and observable properties a certain feature type must/may have. For example, every plant individual may have a determined species name.

Thanks @edmondchuc. I had inferred that was the intention (i.e. to "use the Attribute class to capture additional facts in different scenarios that are not observations"). Good.
But as you note, there should be a relationship of Attribute to ssn:Property, at least. As you can see, sosa:ObservableProperty is a sub-class, being the properties whose values are subject to determination by an act of observation. The corollary is that properties whose values are determined some other way are members of the super-class.
The key point about Observations is that they result in an estimate of the true value, with uncertainties or systematic errors due to the procedure and observer (sensor) that is used. If the uncertainty is of no interest, then there is no point in modeling it as an act of observation and recording all the observation properties.

tern:Attribute is now a subclass of ssn:Property to align with sosa.


Fix Traefik configmap for Zookeeper prefix

What this PR does / why we need it:
Without these quotation marks I was getting:
2018/10/22 18:14:26 Error reading TOML config file /config/traefik.toml : Near line 27 (last key parsed 'zookeeper.prefix'): expected value but found "traefik" instead
It is likely that the prefix strings for the other KV stores will need this fix as well. I'm happy to resubmit this with these fixes as well.

/assign @juliens

@joeauty Don't forget to bump the chart patch version :)

@joeauty It appears that you may need to bump the chart again/rebase. It appears your branch is not up to date.

@joeauty It appears that you may need to bump the chart again/rebase. It appears your branch is not up to date.

just rebased... Look okay?

@joeauty Looking good,
Just have to sign off on the commits to pass the DCO tests:
[https://github.com/helm/charts/pull/8647/checks?check_run_id=26169362]

Done!

/approve

/lgtm


[Enh]: adding nth() to dataframe

We would like to learn about your use case. For example, if this feature is needed  to adopt Narwhals in an open source project, could you please enter the link to it below?
Like nth() in polars, it would be a nice to have as an alternative to select()
Please describe the purpose of the new feature or describe the problem to solve.
To provide more options to select columns
Suggest a solution if possible.
@Cheukting is going to investigate
If you have tried alternatives, please describe them below.
No response
Additional information that may help us understand your needs.
No response

@MarcoGorelli In PyArrow, select() also works on indexes. In Narwhals do you want nth() to be used for indexing columns (i.e. behave like Polars), or do you want select() to also work on indexes (i.e. behave like PyArrow)?

thanks @Cheukting! I think it should mirror the Polars behaviour, e.g.
@nw.narwhalify
def func(df):
    return df.select(nw.nth(1))

would work consistently for pd.DataFrame / pl.DataFrame  / pa.Table / etc. inputs


docs: run markdown linter

Description
This PR runs markdown linter.

LGTM. Maybe later, we should add a doc with list of extensions recommended for VSCode users when trying to contribute to Tachyon.

Very good idea!


:farmer: INTEGRATION_boundingbox_camera BoundingBoxCameraSensor test failing on Linux + main

Environment

OS Version: Ubuntu Noble
Source or binary build?
main branch

Description

Expected behavior: All tests passing on buildfarm job.
Actual behavior: A failing tests related to BoundingBoxCameraSensor (INTEGRATION_boundingbox_camera)

Steps to reproduce

Run a buildfarm CI job on: https://build.osrfoundation.org/job/gz_sensors-ci-main-noble-amd64 and see the error logged.

Output
16: [ RUN      ] BoundingBoxCameraSensor/BoundingBoxCameraSensorTest.BoxesWithBuiltinSDF/ogre2
16: libEGL warning: egl: failed to create dri2 screen
16: libEGL warning: egl: failed to create dri2 screen
16: libEGL warning: egl: failed to create dri2 screen
16: [Wrn] [Ogre2Camera.cc:421] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
16: [Msg] Loading plugin [gz-rendering-ogre2]
16: [Dbg] [BoundingBoxCameraSensor.cc:202] Camera images for [boundingbox_camera] advertised on [/test/integration/BoundingBoxCameraPlugin_boxesWithBuiltinSDF_image]
16: [Dbg] [BoundingBoxCameraSensor.cc:223] Bounding boxes for [boundingbox_camera] advertised on [/test/integration/BoundingBoxCameraPlugin_boxesWithBuiltinSDF
16: [Dbg] [CameraSensor.cc:611] Camera info for [boundingbox_camera] advertised on [/test/integration/camera_info]
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:304: Failure
16: The difference between occludedBox.Center().X() and 98 is 44, which exceeds marginError, where
16: occludedBox.Center().X() evaluates to 54,
16: 98 evaluates to 98, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:306: Failure
16: The difference between occludedBox.Size().X() and 15 is 11, which exceeds marginError, where
16: occludedBox.Size().X() evaluates to 26,
16: 15 evaluates to 15, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:307: Failure
16: The difference between occludedBox.Size().Y() and 45 is 34, which exceeds marginError, where
16: occludedBox.Size().Y() evaluates to 79,
16: 45 evaluates to 45, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:312: Failure
16: The difference between frontBox.Size().X() and 105 is 78, which exceeds marginError, where
16: frontBox.Size().X() evaluates to 183,
16: 105 evaluates to 105, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:313: Failure
16: The difference between frontBox.Size().Y() and 105 is 78, which exceeds marginError, where
16: frontBox.Size().Y() evaluates to 183,
16: 105 evaluates to 105, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:335: Failure
16: The difference between occludedFullBox.Center().X() and 116 is 30.79766845703125, which exceeds marginError, where
16: occludedFullBox.Center().X() evaluates to 85.20233154296875,
16: 116 evaluates to 116, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:337: Failure
16: The difference between occludedFullBox.Size().X() and 51 is 36.99725341796875, which exceeds marginError, where
16: occludedFullBox.Size().X() evaluates to 87.99725341796875,
16: 51 evaluates to 51, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:338: Failure
16: The difference between occludedFullBox.Size().Y() and 45 is 34.197555541992188, which exceeds marginError, where
16: occludedFullBox.Size().Y() evaluates to 79.197555541992188,
16: 45 evaluates to 45, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:343: Failure
16: The difference between frontFullBox.Size().X() and 108 is 76.79425048828125, which exceeds marginError, where
16: frontFullBox.Size().X() evaluates to<PHONE_NUMBER>8828125,
16: 108 evaluates to 108, and
16: marginError evaluates to 2.
16: /home/jenkins/workspace/gz_sensors-ci-main-noble-amd64/gz-sensors/test/integration/boundingbox_camera.cc:344: Failure
16: The difference between frontFullBox.Size().Y() and 108 is 76.794281005859375, which exceeds marginError, where
16: frontFullBox.Size().Y() evaluates to<PHONE_NUMBER>0585938,
16: 108 evaluates to 108, and
16: marginError evaluates to 2.
16: [  FAILED  ] BoundingBoxCameraSensor/BoundingBoxCameraSensorTest.BoxesWithBuiltinSDF/ogre2, where GetParam() = "ogre2" (1082 ms)

Investigation context
I don't see any particular highlight / repo change that may have caused this test to start failing, it started failing on June 2 in this build:
https://build.osrfoundation.org/job/gz_sensors-ci-main-noble-amd64/6/
(Previous green build: on may 29th: https://build.osrfoundation.org/job/gz_sensors-ci-main-noble-amd64/5/)

This issue started happening today in gz-sensors-8 windows
Reference build: https://build.osrfoundation.org/job/gz_sensors-ci-gz-sensors8-jammy-amd64/86/
Test regressions:

.BoundingBoxCameraSensor/BoundingBoxCameraSensorTest
BoundingBoxCameraSensor/BoundingBoxCameraSensorTest.BoxesWithBuiltinSDF/ogre2


shortcut for proto?

so it may be used to access base object methods, like:
LS: @@init! =====> JS: this.__proto__.init();

Why?

Why not?
It looks ugly and long to type.
"@" stands for "this", why not some "@@" stands for "this.proto", they are related semanticly.

@@ already stands for constructor.
I wouldn't want to add baked-in support for a deprecated language feature anyway.

No problem, why not add @@ => Object.getPrototypeOf this?

Because, again, @@ already stands for constructor. Come up with a different syntax that doesn't conflict with existing syntax (and ideally doesn't evoke something unrelated) and we can discuss.

Just to clarify, ClassName::instance-method works even if ClassName isn't a LiveScript class.
It's also worth noting that :: inside class blocks refers statically to the enclosing class prototype, not dynamically to the instance prototype. So, for example,
class Foo
  set-default-steve: (value) ->
    ::steve = value

class Bar extends Foo

f = new Foo
b = new Bar
b.set-default-steve 1
console.log f.steve == 1 # true
console.log b.steve == 1 # true

class Foo2
  set-default-steve: (value) ->
    Object.getPrototypeOf this .steve = value

class Bar2 extends Foo2

f = new Foo2
b = new Bar2
b.set-default-steve 1
console.log f.steve == 1 # false
console.log b.steve == 1 # true

@rhendric Yes, it works anywhere since :: = prototype to sum it up, and that's all the user should remember. Everything else then just follows JavaScript rules regarding scoping and so on. When I said it works in LiveScript classes, I meant: in LiveScript class blocks, there's an implicit prototype variable created at the top, so you can access it. Nice example regarding the difference between using prototype and Object.getprototypeOf in such a use case!

:: needs a name, also, it works with classes sugar over JS. people often use prototype to change it (why? if you can wrap). what thought (about proto) was an access to down-layer object and it's code reuse. btw, there is a super construct in classes, tried it, but in livescript it translates to superclass which makes things not working staight-forward.

@determin1st, I'm having a lot of trouble understanding that last comment. Are you saying that you're actually interested in the superclass's prototype and not the instance's prototype? What are you trying with super and what isn't straightforward about it?

I will post some modified code example (from super docs, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super ):
class Polygon {
  init(height, width) {
    this.name = 'Polygon';
    this.height = height;
    this.width = width;
    console.log('Polygon init');
  }
}
class Square extends Polygon {
  init(length) {
    this.height; // ReferenceError
    super.init(length, length);
    console.log('Square init');
  }
}

this looks (in my interpretation) in livescript like this:
Polygon =
    init: (height, width) !->
        @name = 'Polygon'
        @height = height
        @width = width
        console.log 'Polygon init'

Square = ^^Polygon <<< {
    init: (height, width) !->
        @height # ReferenceError
        @__proto__.init length, length  # might have been @@init
        console.log 'Square init'
}

so, see, __proto__ looks ugly but it does the same function. we could vote for "did you use @@ in your code?" and then make a back-incompatible change. lets vote, why not.

Why not use classes in the rewrite?
class Polygon
  init: (height, width) !->
    @name = 'Polygon'
    @height = height
    @width = width
    console.log 'Polygon init'

class Square extends Polygon
  init: (length) !->
    @height # ReferenceError
    super length, length
    console.log 'Square init'

Well,

they have to be in the same scope to 'see' each other
new syntax must be used (instance is not created in place)

maybe, there are more restrictions on class syntax. so, dont like to use it.

Refusing to use the features LiveScript already has to make this sort of thing easier isn't an argument for adding more features to accomplish the same thing a different way.
Also, there's a big problem with using prototypes without classes in the way that your example shows. Suppose we have:
Polygon =
  init: (height, width) !->
    @name = 'Polygon'
    @height = height
    @width = width
    console.log 'Polygon init'

Square = ^^Polygon <<<
  init: (length) !->
    @__proto__.init.call this, length, length
    console.log 'Square init'

UnitSquare = ^^Square <<<
  init: !->
    @__proto__.init.call this, 1
    console.log 'UnitSquare init'

(I changed the __proto__ calls to use .call to keep from mutating Polygon's prototype when initing Square and UnitSquare.)
If you try to run UnitSquare.init!, you'll fall into infinite recursion. Referencing this.__proto__ is a bad way to call methods on a base object because it doesn't statically reference the ‘next’ object in the inheritance chain; it dynamically references whatever object is one level down in the inheritance chain from the instance itself.
If you use classes and super, you don't have this problem. You also don't have to write .call this. If you still don't want to use classes, though, the correct way to write this pattern would be:
Polygon =
  init: (height, width) !->
    @name = 'Polygon'
    @height = height
    @width = width
    console.log 'Polygon init'

Square = ^^Polygon <<<
  init: (length) !->
    Polygon.init.call this, length, length
    console.log 'Square init'

UnitSquare = ^^Square <<<
  init: !->
    Square.init.call this, 1
    console.log 'UnitSquare init'

Which makes no reference of __proto__ at all. Either way, whether you use classes or prototypical inheritance, accessing the instance's prototype isn't necessary.

You seem to be describing mixins, not composition. Mixins are a variation on inheritance.
That example is starting to clarify some of your earlier comments for me. Can you construct a more complete, working example, or point me to code in a public repository somewhere? I strongly suspect that LiveScript classes are very useful for the kind of code that you're describing, but I probably can't convince you of that without showing you how I would use them to solve your actual problems.

I'm trying to design widget library, it's not ready yet, so I can't show working code for now. Here is some schematic code with parts, where __proto__ is used:
w3ui = do ->
    ...
    WIDGET =
        construct: (name) -> (selector, opts) -> # {{{
            # check
            if not (name of WIDGET.store)
                console.log 'w3ui: widget «'+name+'» is not loaded'
                return null
            # get widget prototype
            widget = WIDGET.store[name]
            # query DOM
            if not (node = QUERY selector)
                console.log 'w3ui: DOM query failed for «'+selector+'»'
                return null
            # create new widget object
            widget = ^^widget <<< WIDGET.baseMethods <<< {
                # base properties
                name: name
                node: node
            }
            # initialize api and sub-objects
            widget.init!
            # create
            if not widget.create opts
                widget.log 'failed to create'
                return null
            # done
            return widget.api
        # }}}
        baseMethods:
            init: !-> ... # here__proto__ is used
            create: (opts) -> ... # here__proto__ is used
            setup: (key, val) -> ... # here __proto__ is used
            attach: !-> ...
            log: (msg) !-> ...
        ...
    ...
    return new Proxy QUERY, {
        set: (obj, key, val) -> # load widget prototype {{{
            # check
            if key of WIDGET.store
                console.log 'w3ui: widget «'+key+'» already exist, check your code'
                return true
            # store
            WIDGET.store[key] = val
            return true
        # }}}
        get: (obj, key) -> # w3ui accessor {{{
            # stand-alone function
            return DEP[key] if key of DEP
            # widget constructor
            return WIDGET.construct key
        # }}}
    }

later on, i declare widget:
w3ui and w3ui.accordion = {.../* widget definition */...}

and then, it is used (widget instance is created) like this :
a = w3ui.accordion '#someCssSelector', {.../* accordion widget options */...}

So, let me describe what I see here before I propose a solution:
Your w3ui object is a proxy that intercepts assignments and treats them as widget type declarations, storing the assigned value for later use as a prototype when a widget of that name is requested.
At instantiation time, you create a new widget object first by making a prototypical clone of the widget type declaration (^^widget) and then assigning methods and properties to it. Behind the scenes, the prototypical clone is creating a new function object (basically an anonymous class), assigning the widget type declaration as its prototype, and then creating an instance with that function.
The assigned methods are using the __proto__ property to access properties on the widget type declaration. This is fragile, for the reasons I laid out in my earlier comment: if anyone ever makes a prototypical clone of your widget objects, the baseMethods methods that use __proto__ are likely to break and/or loop forever. This code works by a kind of coincidence: __proto__ refers to ‘this object's prototype, whatever this object happens to be and however many layers of prototyping have been applied to it’, whereas you seem to always want it to refer to ‘the widget type definition used to create this widget’, and those two things are only the same because you happen to be using inheritance the way you are and because you're assuming that nothing else is going to use inheritance on the objects you create.
If that assumption is good enough for you, well, it's your project. But to anyone considering using __proto__ in this way (and by extension, anyone who might want syntax sugar to assist them in using __proto__ in this way), I would argue that there is a simple and more direct way to say what you mean and avoid future bugs: make baseMethods a function that accepts a widget type definition, and replace all instances of @__proto__ with that argument.
# create new widget object
widget = ^^widget <<< WIDGET.baseMethods widget <<< {
  # base properties
  name: name
  node: node
}
...
baseMethods: (base) ->
  init: !->
    # replace<EMAIL_ADDRESS>this, other, args` with
    base.init.call this, other, args
  ...

(FYI, the widget creation can take advantage of several LiveScript idioms to be more succinct, if that's of interest to you:)
# create new widget object
widget = widget with { name, node, ...WIDGET.baseMethods widget }

An alternate solution (because I promised classes!) hinges on observing that the clone operation throws away an identical anonymous class each time it's invoked, and that class could be moved to the widget declaration function and preserved. Here I'll use explicit class syntax so as to also take advantage of the super keyword:
set: (obj, key, val) -> # load widget prototype {{{
  # check
  if key of WIDGET.store
    console.log 'w3ui: widget «'+key+'» already exist, check your code'
    return true
  # store
  WIDGET.store[key] = class extends ((->) <<< prototype: val)
    name: key
    # move all WIDGET.baseMethods here
    init: !->
      # replace<EMAIL_ADDRESS>this, other, args` with
      super other, args
    ...
  return true
# }}}

And now widget creation is simply creating a new instance of that class and assigning any per-instance properties:
# create new widget object
widget = new widget <<< { node }

Yes, you see all correct, except:

if anyone ever makes a prototypical clone of your widget objects, the baseMethods methods that use __proto__ are likely to break and/or loop forever...
If that assumption...

this is not an assumption, because widget instance is not returned, only the widget.api.
Thanks for your help, i will use that widget with {...} syntax.

Okay, happy to help. I'm closing this issue, but if you have a different use case for accessing an object's prototype that you think is common enough to merit its own syntax and isn't covered by existing LiveScript features, let's reopen.


webhook is not triggered properly

we use drone as CI, it was building projects on push and tag on gogs v 0.9.71 and when event was tag deploying them.
updated to <IP_ADDRESS>3 and tag does not trigger ci to build. push works by chance, sometimes it gets 404 on delivery and sometimes works. same repository and CI works fine with push and tag on 0.9.71 with no single problem.
I tried tag, both through command line and release tab of project, pull request, etc. none trigger it. only push triggers which sometimes fails. also tried (I need EVERYTHING) with no luck.

Gogs version: <IP_ADDRESS>3
Git version: 1.8.3
Operating system: linux ubuntu 16.04
Database (use [x]):

[X ] PostgreSQL
[ ] MySQL
[ ] SQLite

Can you reproduce on https://try.gogs.io?

Push tag from command line 100% works, and for triggering webhook for a new release on web UI, this is duplicated to https://github.com/gogits/gogs/issues/2387.

100 percent does not work, I wonder you close issue even without investigating. from 0.9.71 all your releases have been broken for CI use in some way, 0.9.97 does not allow CI to pull code, and this one does not trigger on push tag from command line.
to clear the matter, i do the following:
git tag -am "1.0" 1.0
git push origin 1.0
but NOTHING HAPPEN on CI.
one note: I first installed the 0.9.71 and databse was first create on that version. from then I only do binary update, just update and copy data/ log/ custom/ folder to new installation with same database as before. could it be something is wrong with binary update? is data base schema the same as before?
I have noticed you added webhook trigger on pull request. did that changes database schema in some way that I need to follow? or do fresh installation?

or it maybe this: https://github.com/drone/drone/pull/1889
could you take a look?

sorry it was drone fault. fixed drone and now it works correctly.


Razor Pages not generating appropriate anchor tags

Is this a Bug or Feature request?:
Bug
Steps to reproduce (preferably a link to a GitHub repo with a repro project):
https://github.com/bdparrish/razor-pages-bug
Description of the problem:
There seems to be an issue with the application finding all of the razor pages in the project.  It cannot find some available files under /Pages.
I am attempting to create a simple web application using razor pages. The rendered anchor tag for Create does not seem to be built correctly.
Create
My application seems to not have /Facility/Create as a valid url even if I manually go there. Is there something else that I am suppose to be doing to get the anchor tag to render as Create and for the application to know about /Facility/Create.
Version of Microsoft.AspNetCore.Mvc or Microsoft.AspNetCore.App or Microsoft.AspNetCore.All:
=== Visual Studio Community 2017 for Mac ===
Version 7.5.3 (build 7)
Installation UUID: 6079dd37-d7ed-472b-893a-55acfaeec1bf
Runtime:
Mono <IP_ADDRESS> (2017-12/ea8a24b1bbf) (64-bit)
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac <IP_ADDRESS> (master / eeaeb7e6)
Package version: 510010057

=== NuGet ===
Version: <IP_ADDRESS>45
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
2.1.1
2.0.7
2.0.5
2.0.4
2.0.0
1.1.2
1.0.5
SDK: /usr/local/share/dotnet/sdk/2.1.301/Sdks
SDK Versions:
2.1.301
2.1.200
2.1.105
2.1.4
2.1.3
2.0.0
1.0.4
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.10.1/lib/mono/msbuild/15.0/bin/Sdks
=== Xamarin.Profiler ===
'/Applications/Xamarin Profiler.app' not found
=== Xamarin.Mac ===
Version: <IP_ADDRESS> (Visual Studio Community)
=== Xamarin.iOS ===
Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 64fece5f
Branch: d15-7
Build date: 2018-05-29 20:00:44-0400
=== Xamarin.Android ===
Version: <IP_ADDRESS> (Visual Studio Community)
Android SDK: Not found
=== Xamarin Inspector ===
Version: 1.4.0
Hash: b3f92f9
Branch: master
Build date: Fri, 19 Jan 2018 22:00:34 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 705030007
Git revision: 13cecd02aceddf29a1ed57b86f81c02994df1483
Build date: 2018-06-14 15:48:08-04
Xamarin addins: 7065de97cf22c9038fdc39dd627f2c30790fd8af
Build lane: monodevelop-lion-d15-7
=== Operating System ===
Mac OS X 10.12.6
Darwin 16.7.0 Darwin Kernel Version 16.7.0
Thu Jun 21 20:07:39 PDT 2018
root:xnu-3789.73.14~1/RELEASE_X86_64 x86_64

I have been able to get past this.  I renamed the /Facility directory to /Facilities and everything is working as advertised.  It looks like because I had a folder with the same name as a model that it was not parsed correctly by razor pages?  Does that make sense?

Hi @bdparrish.
Glad that you've found solution to the problem you've been facing.
@pranavkm, do we have a convention which may result in the observed behavior?

@pranavkm - So that seems to have fixed it, but why the silent error?  Is there something I can do to make it so I know if the compiler is complaining about something like that?  It seems very silent.  All I see is that my links are not being created but I don't know why?

There's planned work for 2.2.0 to add an option to routing that would flag complain when it encounters a scenario like this. Here's the issue - https://github.com/aspnet/Routing/issues/553.

@pranavkm - since you pointing out the parsing error.  I have gone back to some other oddities.  It also fails silently when I was converting MVC to Razor Pages...
<a asp-action="Edit"<EMAIL_ADDRESS>
converted
<a asp-page="Edit"<EMAIL_ADDRESS>
if you miss the asp-page attribute conversion, then it will not complain, but it will just not create a proper href attribute in the anchor tag.

Right - all of these are the same class of behavior with routing in 2.1.0 or lower. Link generation in routing attempts to match these constraints (Action=Edit, Id={Some Number}) to a route. It silently falls back to an empty string when no route matches. The goal of the linked issue is to produce better diagnostics for these scenarios.


Polygon GeoJson Format

Why is it that when I use the code marker.toGeoJson() I get the the properties Object under feature feature Object.

When I use polygon.toGeoJson() the properties Object is found under the options Object.

Where should the properties Object be located and how do I correct it?
Here is my create marker script.
function CreateMarker() {
        var geojsonFeature = {
            "type": "Feature",
            "properties": {
                "id": "",
                "name": "new",
                "iconID": "15",
                "lastUpdate": ""
            },
            "geometry": {
                "type": "Point",
                "coordinates": [templatlng.lat, templatlng.lng]
            }
        };

        var marker;

        L.geoJson(geojsonFeature, {
            pointToLayer: function(feature, latlng) {
                marker = L.marker(templatlng, geojsonFeature);
                return marker;
            }
        });

        console.log(marker);
}

Here is my Complete Polygon Script (newPolygon variable is a stand in to draw the polygon before saving)
function CompletePolygon(){
    if(creatingPolygon)
    {
        creatingPolygon = false;

        var geojsonFeature = {
            "type": "Feature",
            "properties": {
                "id": "",
                "name": "new",
                "lastUpdate": "",
                "labelID": ""
            },
            "geometry": {
                "type": "Polygon",
                "coordinates": newPolygon.toGeoJSON().geometry.coordinates
            }
        };

        var polygon;

        L.geoJson(geojsonFeature,{
            onEachFeature: function (feature, layer) {
                //create new polygon
                polygon = L.polygon(newPolygon.toGeoJSON().geometry.coordinates, geojsonFeature);
            }

        }}

        console.log(polygon);
}
}

I am not sure if this is an issue or not but I could not find an answer so I want to bring it your attention.
Thanks.

Hi,
When you create your marker, L.geoJson() will use the returned result of your pointToLayer function to include it in the Feature Group, and automatically add the feature property.
In your code for the polygon, you use the onEachFeature option, which is a hook for you but L.geoJson() will not use any returned value (you do not return any anyway). So your polygon variable will not receive a feature property, as it was already added to the layer that is passed as 2nd argument of the onEachFeature function.
However, notice that you passed geojsonFeature variable as 2nd argument of L.polygon(), which is normally used for the options. That is why you can find all your GeoJSON in the option property of polygon.
If you had just done polygon = layer, you could have seen the feature property.
Notice by the way that you did the same strange 2nd argument trick for your L.marker(). And in your screenshot, there is an options property on your marker, which is surely your GeoJSON data as well…
Hope this helps.

Thanks for your explanation of the GeoJson. I will give your suggestion a try.
I was unsure about what L.GeoJson was actually doing in the Leaflet code.

Thanks for you help. Here are the correction I made to the code.
Get Marker GeoJson
function CreateMarker() {
        var geojsonFeature = {
            "type": "Feature",
            "properties": {
                "id": "",
                "name": "new",
                "iconID": "15",
                "lastUpdate": ""
            },
            "geometry": {
                "type": "Point",
                "coordinates": [templatlng.lat, templatlng.lng]
            }
        };

        var marker;

        L.geoJson(geojsonFeature, {
            onEachFeature: function(feature, layer) {
                marker = layer;
            }
        });

        console.log(marker);
}

Get Polygon GeoJson
function CompletePolygon(){
    if(creatingPolygon)
    {
        creatingPolygon = false;

        var geojsonFeature = {
            "type": "Feature",
            "properties": {
                "id": "",
                "name": "new",
                "lastUpdate": "",
                "labelID": ""
            },
            "geometry": {
                "type": "Polygon",
                "coordinates": newPolygon.toGeoJSON().geometry.coordinates
            }
        };

        var polygon;

        L.geoJson(geojsonFeature,{
            onEachFeature: function (feature, layer) {
                  //create new polygon
                  polygon = L.polygon(newPolygon.toGeoJSON().geometry.coordinates, geojsonFeature);
            }
        }}

        console.log(polygon);
    }
}

This information is later saved to a file. Basically I send the layer Json data to the server script that updates a feature group. This is to allow multiple user to edit the map with minimal conflicts.

how to get coordinates on image overlay had annotationed??????


History Section with Local Storage and Cookie

Description:
The devFinder website now includes a history section, allowing users to revisit their previous searches conveniently. The implementation supports both local storage and cookies for storing data based on user preferences. If the user grants permission for cookies, dev data and theme preferences will be stored in cookies; otherwise, the data will be stored in the RTK store. Additionally, a separate history page has been created to display all searched developers, with a default limit of 12 results on other pages.
Tasks:

Implemented a history section to showcase previous developer searches.
Incorporated support for both local storage and cookies to store user preferences.
Created a cookie permission feature that prompts users to grant or deny permission.
Developed a separate history page displaying all searched developers.
Set a default limit of 12 results for dev searches on home and other pages.

Acceptance Criteria:

Users can easily revisit their previous searches through the history section.
Data storage is flexible, with support for both cookies and RTK store based on user permission.
The cookie permission component appears when permission data is not set, ensuring a personalized experience.
A dedicated history page displays all searched developers, providing a comprehensive overview.

Additional Information:

The default limit of 12 results on other pages ensures a clean and user-friendly interface.
The history page provides a detailed view of the entire search history, enhancing user engagement.

Closes #11


Don't try to start lvmetad service on Amazon Linux

Description
Amazon Linux was updated (https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/) and LVM cookbook will now fail trying to start lvmetad service. Adding rather safe condition to skip this resource on Amazon Linux.
This is how attributes look like on newest Amazon Linux instance:
node['platform'] => amazon
node['platform_family'] => rhel
node['platform_version'] => 2017.03
Issues Resolved
[List any existing issues this PR resolves]
Check List

[ ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

Is this change going to move forward? This seems to have stalled. Also, there is a typo in the change that I'll point out above.

This same sort of fix was made in the 4.1.1 release, but it should be noted that it's not an issue if you're on Chef 13 since amazon has it's own platform family for this very sort of reason


Clusters are marker order dependant

The cluster formations are dependent on the order of the markers in the markers array. The problem occurs if there is an attempt to clone the leaflet map from the output of getLayers(), Its not the same if cloned.
If a sorting is maintained before feeding the array to MarkerClusterGroup, then the results are consistent.
Leaflet v0.77

This is by design of the greedy clustering algorithm.
If this is important to you there are alternatives that may work:
http://leafletjs.com/plugins.html#clusteringdecluttering


[ENH] Re-enable QHUB_SECRETS

We need to re-enable this tooling cited in the docs. Which was originally created to solve #13.

Did we ever consider using sops?
I've used it before and it's a pretty decent way to handle secrets.

But I am really open, and I think the other would be as well, to add something as sops, due to its huge compatibility to a variety of resource (such as Vault)

superseded by #787


Bug: Failed to build windows-sys v0.28 for UWP targets

Which crate is this about?
windows-sys
Crate version
0.28.0
Summary
[package]
name = "testlib"
version = "0.1.0"
authors = ["bdbai<EMAIL_ADDRESS>edition = "2021"

[dependencies]
windows-sys = { version = "0.28", features = ["Foundation_Collections"] }

fn main() {
    #[allow(unused_imports)]
    use windows_sys;
}

cargo build -Z build-std=std,panic_abort --target x86_64-uwp-windows-msvc

Expected behavior
The program compiles successfully.
Actual behavior
Compiling testlib v0.1.0 (D:\proj\testrs\testlib)
error: linking with link.exe failed: exit code: 1181
|
= note: "D:\soft\vs2022\VC\Tools\MSVC\14.30.30705\bin\HostX64\x64\link.exe" "/LIBPATH:D:\soft\vs2022\VC\Tools\MSVC\14.30.30705\lib\x64\store" "/NOLOGO" "/APPCONTAINER" "mincore.lib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.12vmw4gj9nfwec88.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.1j1n6no1c99akr0j.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.1jk4kivmwworo4w.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.27gpty3m03fap44q.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.4232um37ftko5bak.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.52aknw0u11xqg9o0.rcgu.o" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.3y3ebs8hltnhz6at.rcgu.o" "/LIBPATH:D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps" "/LIBPATH:D:\proj\testrs\testlib\target\debug\deps" "/LIBPATH:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\x86_64-uwp-windows-msvc\lib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libwindows_sys-83302516282eaf16.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libstd-887136ed81f7457d.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libpanic_unwind-0c7692820fe96ff7.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libstd_detect-121b5eaf2b92134f.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\librustc_demangle-64710a2d26a0f79a.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libhashbrown-d723a7a0db3770a4.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\librustc_std_workspace_alloc-c1810ac5ca88d78b.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libunwind-012d9bb6d5e8961d.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libcfg_if-9d3295dd49b34d62.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\liblibc-3e453c293f500f34.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\liballoc-7100162ff8163776.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\librustc_std_workspace_core-ca4d8718395fe3fa.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libcore-f5e35ad5f4b3cb6d.rlib" "D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\libcompiler_builtins-358995a960b47c60.rlib" "windows.lib" "kernel32.lib" "ws2_32.lib" "bcrypt.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\x86_64-uwp-windows-msvc\lib" "/OUT:D:\proj\testrs\testlib\target\x86_64-uwp-windows-msvc\debug\deps\testlib.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\etc\intrinsic.natvis" "/NATVIS:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\etc\liballoc.natvis" "/NATVIS:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\etc\libcore.natvis" "/NATVIS:C:\Users\bdbai\.rustup\toolchains\nightly-2022-01-01-x86_64-pc-windows-msvc\lib\rustlib\etc\libstd.natvis"
= note: LINK : fatal error LNK1181: cannot open input file 'windows.lib'
error: could not compile testlib due to previous error
Additional comments
Seems like windows_x86_64_msvc was not picked for x86_64-uwp-windows-msvc target, and the build script for the targets did not recognize x86_64-uwp-windows-msvc as well.
https://github.com/microsoft/windows-rs/blob/dfc25285a289847ad88cbd206d169f7697be0dd4/crates/targets/x86_64_msvc/build.rs#L2

We should be able to use the same lib for uwp targets.

One note, x86_64-uwp-windows-msvc is a tier 3 toolset (read: could be broken at any time). And with UWP investment gone, I wonder if it'll see any further work / is worth worrying about.

Yes, I don't expect to add much/any support beyond simply unblocking the x86_64_msvc target to work with UWP (not introducing any new targets).

Feel free to jump in and update this. It's mostly just about updating the toml files for windows and windows-sys to add the appropriate target dependencies and ensuring the msvc targets include uwp targets in their build.rs checks.


Update index.yml

Docs Build status updates of commit 6296c08:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/index.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Missing on_relation_changed handling on client relations

The client relations are missing the handling of the relation changed event. The logic is there, but we should register the hook.

Fixed on https://github.com/canonical/opensearch-operator/pull/311


Changes in coding style for consistency

This PR is a very mall change, but can help make the coding style consistent. I used "<-" instead of "=" as it's more commonly recommended.

please merge the commits as in http://mxnet.readthedocs.org/en/latest/contribute.html#how-to-combine-multiple-commits-into-one

Addressed as you suggested, @tqchen . Thanks a lot.
PS: the link you attached is very helpful. I didn't know how to merge multiple commits before. Thanks for the info and excellent document.


give regular crowbar same damage as emergency

About the PR
before this you would never see an emergency toolbox with a crowbar in it because powergamers stole it for the +2 damage
hopefully now that they are the same they will stop doing this and leave them for actual emergencies
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:

tweak: Emergency crowbar and regular crowbar now do the same damage. Please leave emergency crowbars for emergencies!!!

I'd probably just make the damage the same instead, making it go back to 9 damage kind of defeats the point of the nerf since grey crowbars are way more common than red.

everyone without a crowbar did, now even if you can get a normal crowbar you still take one from the emergency closets because muh +2 damage and it means if there is actually an emergency you cant find a crowbar


Disappearing data when copying a join result.

What happens?
When I insert a result of a join containing some particular column configuration from duckdb to postgres, it ends in data not making it through to the postgres side.
To Reproduce
The following script is about as minimal as I could reasonably get it. I tried to annotate it so that you can see what can be changed and what can not.
create table other_properties(
    an_id text, -- This can be of any type
    has_to_be_there int[] -- This has to be a list, doesn't matter of what
)
;

create table some_properties(
    an_id text,
    disappearing_data int -- ^ this can be of any type and it still disappears
)
;

insert into other_properties values
('2', null)
;

insert into some_properties values
('2', null),
('1', 1),
;

attach 'dbname=elephant port=5656' as postgres (type postgres);

call postgres_execute(
    'postgres',
    '
        drop table if exists foo;
        create table foo(
            an_id text,
            has_to_be_there int[],
            disappearing_data int,
            mac macaddr -- This has to be macaddr or inet, otherwise the bug goes away
        )
    '
);

-- This is how it should look like:
select
    some_properties.an_id,
    other_properties.has_to_be_there,
    some_properties.disappearing_data,
    null::varchar as mac
from
    some_properties
    left join other_properties on
        some_properties.an_id = other_properties.an_id
;

-- This is how it actually looks:
insert into postgres.foo
select
    some_properties.an_id,
    other_properties.has_to_be_there, -- If this is made constant, the bug goes away
    some_properties.disappearing_data,
    null::varchar as mac
from
    some_properties
    left join other_properties on
        some_properties.an_id = other_properties.an_id
;

select *
from postgres.foo
;

The "this is how it should look like" query gives
┌─────────┬─────────────────┬───────────────────┬─────────┐
│  an_id  │ has_to_be_there │ disappearing_data │   mac   │
│ varchar │     int32[]     │       int32       │ varchar │
├─────────┼─────────────────┼───────────────────┼─────────┤
│ 2       │                 │                   │         │
│ 1       │                 │                 1 │         │
└─────────┴─────────────────┴───────────────────┴─────────┘

, but the select * from postgres.foo results in
┌─────────┬─────────────────┬───────────────────┬─────────┐
│  an_id  │ has_to_be_there │ disappearing_data │   mac   │
│ varchar │     int32[]     │       int32       │ varchar │
├─────────┼─────────────────┼───────────────────┼─────────┤
│ 2       │                 │                   │         │
│ 1       │                 │                   │         │
└─────────┴─────────────────┴───────────────────┴─────────┘

The value of disappearing data is nowhere to be found.
Interestingly you can make the bug go away by changing all bunch of stuff. You can change the data type of mac to something ordinary, you can put null instead of referencing the has_to_be_there column. On the other hand, the bug stays regardless of the type of disappearing_data and regardless of the type of an_id. The type of has_to_be_there matters a bit - as long as it is a list, the bug manifests.
Lastly, you can make the bug go away by materializing the join result first like so:
insert into postgres.foo
with
    d as materialized (
        select
            some_properties.an_id,
            other_properties.has_to_be_there,
            some_properties.disappearing_data,
            null::varchar as mac
        from
            some_properties
            left join other_properties on
                some_properties.an_id = other_properties.an_id
    )
select *
from d
;

OS:
Ubuntu x64 in WSL on Windows 11
PostgreSQL Version:
15.3
DuckDB Version:
v0.10.1
DuckDB Client:
cli and python
Full Name:
Míma Hlaváček
Affiliation:
Blindspot.ai
Have you tried this on the latest main branch?

[X] I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

[X] I agree

Thanks for the report!
This seems to be the same underlying issue as https://github.com/duckdb/postgres_scanner/issues/242 - I've run your test and can confirm it is fixed after https://github.com/duckdb/postgres_scanner/pull/254 as well


Add ToggleGrid and ToggleGridSnap actions

Done in commit https://github.com/Sygmei/ObEngine/commit/ffe28f7f68f15124df581800b526febdb9dc499f


RefreshManager fix

Fix update of database when permanent redirection of a feed is applied
Other small fixes

As you aren't completely comfortable with a default background queue, I removed this change (forced update)

So , do you prefer with or without the change of operation queue ? I was comfortable with the change, but have no problem with the status quo if anyone is more comfortable with it.

It was no objection on my end, just something that crossed my mind. If you see no concerns, I have no problems if you make the change.


Scriptblock logging not working on macOS

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce

Create a powershell.config.json file in $PSHOME on macOS with the following settings.{
    "ModuleLogging": {
        "EnableModuleLogging": false,
        "ModuleNames": [
            "PSReadLine",
            "PowerShellGet"
        ]
    },
    "ScriptBlockLogging": {
        "EnableScriptBlockInvocationLogging": true,
        "EnableScriptBlockLogging": true
    },
    "LogLevel": "verbose"
}

Clear the logs in the macOS Console.app
Start a new PowerShell session and note the logging.

See the documentation https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_non-windows?view=powershell-7.4#configuring-logging-on-linux-or-macos
We have reproduced the problem on Macs with @theJasonHelmick and @mikefrobbins.
Expected behavior
Expect to see scriptblock log entries.

Actual behavior
Jason got none in our test. Mike got it intermittently.

Error details
No response
Environment data
PowerShell 7.4.3 and 7.4.4 on macOS 14.6.1 Sonoma

Visuals
No response

This issue was reported to us by a customer (wustl.edu) that is trying to set this up.

Thanks @sdwheeler -- will bring up next week and investigate.

@sdwheeler - I investigate this with engineering and the script block logging is working as expected. The documentation steps are correct. We discovered that changes to the Apple logging system has made the Console.app on macOS no longer effective.  Instead, use the log show commands.
Example to retrieve pwsh events:
log show --predicate "subsystem == 'com.microsoft.powershell'" --style json


Improved navbar responsiveness and improved overall alignment of homepage

Notes for Reviewers
Tasks performed:

Improved position of Theme Toggler according to various screen sizes
Center aligned the texts

This PR fixes #56
Signed commits

[ ] Yes, I signed my commits.

Thanks for taking care of this, @avikt18 🙌


Files?

Provide example files/commands? No documentation on this.

there's always a help menu.
you can also get some example dns amp files on pastebin


bump pulumi-aws to 6.42

What does this PR do?
Bump pulumi-aws to 6.43.0
Which scenarios this will impact?
All
Motivation
Align with the datadog-agent/test/new-e2e version
Additional Notes
Changelog: https://github.com/pulumi/pulumi-aws/compare/v6.25.0...v6.42.0

/merge


Add: #151 Added advanced On Screen Calculator

Issue Id you have worked upon -
#151
Briefly explain your program logic -
This Calculator creates an on-screen calculator with a user interface to input mathematical expressions. It allows users to perform calculations with basic operators, trigonometric functions, logarithms, and special constants like π and e. The calculator can evaluate and display the result when the "Calculate" button is pressed, with options for clearing and deleting input.
Screenshots(Attach 2 screenshots of your own input and output) -
Attach here

By raising this PR I affirm that -

[x] My code follows the guidelines of this project.

[x] I have performed a self-review of my own code.

[x] I have commented my code.

[x] My code gives the correct output.

[x] I affirm that I strictly follow contributing guidelines and code of conduct.

NOTE: Additional Library Used
Math.js is a powerful JavaScript library for advanced mathematics. It offers precision control, supports a wide range of mathematical functions, and handles complex expressions, making it ideal for scientific and engineering applications. Its versatility and ease of use make it a valuable tool for math-intensive tasks in web applications.

@maskboyAvi,
Keep up the good work and thanks for being a valued contributor to this repository.

Congratulations 🎉 @maskboyAvi on your contribution.
Thanks for adding value to this repository. 😊
Let's celebrate this fest 😃 by providing more developers 👨💻👩💻 an opportunity to contribute. Help us make this repository reach far and more by sharing this to your friends and colleagues.
Your efforts can make difference.


show an error if local storage is full

There is a limit to how much data can be stored in localStorage (you can see the limit here). It's about 5 MB in chrome.
As you edit the map, the size of the history in localStorage grows very fast. Once it exceeds the limit, your changes aren't saved to localStorage anymore. So if you refresh the page, you will lose your progress :(
This PR warns people when the localStorage size limit is exceeded:

To test this PR: draw lots of circles, select them all, and use Shift + +/- to scale the circles. This quickly uses up a lot of storage space.

I do Agree, it's not the first time that I loose by accident 3/4 of what I have done

Small nitpick: Consider saving your changes may be a bit unclear, as there's no way  to save your changes to a local file or similar.
I'd suggest to rephrase it to "Consider uploading your changes...".


cmd/compile/internal/types2: "real(0)" and "imag(0)" have type "untyped float", but value of kind constant.Int

On dev.typeparams, go tool compile -G=3 $(go env GOROOT)/test/fixedbugs/issue11945.go currently fails because the real(0) and imag(0) expressions have type "untyped float", but then their go/constant representation has kind constant.Int, whereas irgen expects it to be constant.Float.
My intuition is that the TypeAndValue.Value's constant.Kind should always match the TypeAndValue.Type's Underlying's BasicInfo's Is{Boolean,Integer,Float,Complex,String}.
However, if that expectation is incorrect/unreasonable, I think this would be reasonable to handle in irgen instead of types2. (With the recent types2 cleanup, untyped numeric values are only seen in constant declarations. We also already have the constant's type before we set the value, so it wouldn't be hard to coerce to the expected constant.Kind.)
/cc @griesemer @findleyr @danscales

FWIW, after CLs 286176, 286214, and 286215, this is the only remaining failure for "GO_GCFLAGS=-G=3 go run run.go". (Note though: errorcheck tests don't use GO_GCFLAGS.)

FWIW, after CLs 286176, 286214, and 286215, this is the only remaining failure for "GO_GCFLAGS=-G=3 go run run.go". (Note though: errorcheck tests don't use GO_GCFLAGS.)

It looks like this may actually be a go/constant bug: the Go spec say the real and imag functions always return an untyped float when given an untyped constant argument, so I think constant.Real and constant.Imag should make the same guarantee.

It looks like this may actually be a go/constant bug: the Go spec say the real and imag functions always return an untyped float when given an untyped constant argument, so I think constant.Real and constant.Imag should make the same guarantee.

Incidentally, I'm suspicious of the constant.ToFloat calls in go/types and types2's handling of complex (also copied to typecheck/const.go:makeComplex). I'd think 2i and complex(0, 2) should be interchangeable, yet the program below prints two different values (with or without -G=3).
package main

import "fmt"

const ulp1 = imag(1i + 2i / 3 - 5i / 3)
const ulp2 = imag(1i + complex(0, 2) / 3 - 5i / 3)

func main() {
	fmt.Printf("%g %g\n", ulp1, ulp2)
}

This discrepancy is because constant.ToFloat forces integer constants to big.Float representation, but constant.MakeImag (used to convert 2 into 2i) does not.

Incidentally, I'm suspicious of the constant.ToFloat calls in go/types and types2's handling of complex (also copied to typecheck/const.go:makeComplex). I'd think 2i and complex(0, 2) should be interchangeable, yet the program below prints two different values (with or without -G=3).
package main

import "fmt"

const ulp1 = imag(1i + 2i / 3 - 5i / 3)
const ulp2 = imag(1i + complex(0, 2) / 3 - 5i / 3)

func main() {
	fmt.Printf("%g %g\n", ulp1, ulp2)
}

This discrepancy is because constant.ToFloat forces integer constants to big.Float representation, but constant.MakeImag (used to convert 2 into 2i) does not.

Thanks for tracking this down. There appear to be two separate issues at stake here:

Internally, go/constant is supposed to use the most "efficient" or accurate representation for a value of a specific kind. constant.ToFloat seems incorrect: The "default" representation for a constant.Float value is the rational representation, and if we change that in ToFloat, the above mentioned discrepancy disappears. So I think this is clearly a bug in ToFloat.

I believe originally, go/constant value kinds didn't have to match the type used by the type checker (go/types or types2). The kind simply described the value "as is". But I am not sure if this is still supposed to be true, or if we happen to have an implicit match between types and kinds at this point. That said, if I remove AssertValidTypeForConst(n.Type(), v) from ir/name.go:328 the test $(go env GOROOT)/test/fixedbugs/issue11945.go passes.

I need to think a bit more on both of these to convince myself of the correct solution.

Thanks for tracking this down. There appear to be two separate issues at stake here:

Internally, go/constant is supposed to use the most "efficient" or accurate representation for a value of a specific kind. constant.ToFloat seems incorrect: The "default" representation for a constant.Float value is the rational representation, and if we change that in ToFloat, the above mentioned discrepancy disappears. So I think this is clearly a bug in ToFloat.

I believe originally, go/constant value kinds didn't have to match the type used by the type checker (go/types or types2). The kind simply described the value "as is". But I am not sure if this is still supposed to be true, or if we happen to have an implicit match between types and kinds at this point. That said, if I remove AssertValidTypeForConst(n.Type(), v) from ir/name.go:328 the test $(go env GOROOT)/test/fixedbugs/issue11945.go passes.

I need to think a bit more on both of these to convince myself of the correct solution.

Factored out problem 1) into #43908.

Factored out problem 1) into #43908.

That said, if I remove AssertValidTypeForConst(n.Type(), v) from ir/name.go:328 the test $(go env GOROOT)/test/fixedbugs/issue11945.go passes.

Without actually trying it, I think that's only because the declared constants aren't exported. If they were renamed from "_" to "ExportedConstant" or something, I expect it would cause another crash in the exporter, because the value representation wouldn't match the untyped kind.

I need to think a bit more on both of these to convince myself of the correct solution.

Ack. In the mean time, I'll look into adding a workaround/fix in irgen.constDecl, so we can enable GO_GCFLAGS=-G=3 go run run.go. In should be pretty minimal and easy to back out again if we decide to fix this within types2 instead.

That said, if I remove AssertValidTypeForConst(n.Type(), v) from ir/name.go:328 the test $(go env GOROOT)/test/fixedbugs/issue11945.go passes.

Without actually trying it, I think that's only because the declared constants aren't exported. If they were renamed from "_" to "ExportedConstant" or something, I expect it would cause another crash in the exporter, because the value representation wouldn't match the untyped kind.

I need to think a bit more on both of these to convince myself of the correct solution.

Ack. In the mean time, I'll look into adding a workaround/fix in irgen.constDecl, so we can enable GO_GCFLAGS=-G=3 go run run.go. In should be pretty minimal and easy to back out again if we decide to fix this within types2 instead.

I can confirm that the exporter forces a particular constant representation based on type. However, go/types (and it's importers) do not expect this, nor was this the original intent for go/constant: The representation of a value can be independent of its type.
This was not an issue for the compiler before the use of go/constant for constant evaluation. But now that we use it, e.g. forcing an exported floating-point constant to "float" representation often will convert an exactly represented value (a fraction) into an arbitrary-precision float, causing a loss of precision.
I think we should try to avoid this, but it will require an extra byte of information (the constant.Kind) in exported values, and with that a version bump. We may want to consider adding the byte (only required for numerical values) when we extend the export format for generics. (We just need to make the space, we don't need to use the byte right away.)

Confirming that go tool compile -G=3 $(go env GOROOT)/test/fixedbugs/issue11945.go now passes, so this is not an immediate issue anymore. The same is true when running this test through types2 and go/types.
The go/types constant representation is more flexible than what the compiler export data permits. Filed issue #45837 to cover that.


Is this repo abandoned?

I am able to see a couple of prs pending and one not merged.
Can someone tell me if this repo is abandoned or still maintained?
I'll be happy to take over as a maintainer if the original creator has time bound issues.

Hey @puranjayjain the repo is not abandoned. I will be addressing the pull requests in question.
I would advise that in the future, you @ mention the repo maintainer when addressing them directly to receive a quicker response. That goes for any collaborators involved as well.

@alohaas sorry I thought you had the notifications on my bad :smile: