monthly "invoice"

Feature request
get monthly costs / consumptions as per user to send e-mail automatically
What version of the integration are you using?
0.9.64
Anything in the logs that might be useful for us?
No response
Additional information
actual i do not know how to sum up monthly costs / consumption as per user, there is only a sensor over all.

This has been discussed before, it is to me really unclear how this is something that fits inside the scope of HA.
I could see that a separate application/script can do this and generate a kind of report and or invoice, but HAs model is to provide a bunch of sensors and control stuff, not to generate reports.

See https://github.com/nordicopen/easee_hass/issues/158

Hey, thank you for the quick response.
Funny, that 2 years ago same idea is raising.
i think think comment is a good one
sensor.user     2.2
Attributes:

userId:
userEmail
dailyKWh: 2.2 kWh
dailyCost X SEK
weeklyKWh Y kWh
weeklyCost Z SEK
unit_of_measurement: kWh

no idea, if it possible in this way or similar
in combination with utility meter device and template entities additional features would be available i think
best regards
Ralf

https://www.home-assistant.io/docs/automation/trigger/#state-trigger and use only from: "disconnected" as only state change to trigger on.
Should work I think.

Now released in pyeasee 0.8.9 which includes functions to extract consumption per user.
There is an example script that can be run to extract the information, and of course changed to suit the need.
I am not planning to make any changes to the integration since I feel this is something better handled outside of HA.

thank you so far.
unfortunately i am no developer and without having the data in HA i cannot handle it.

Well, I would not say you need to be a developer to run the script I created.
The steps to do so would be to install python on a computer, run "pip install pyeasee" to install the lib, download the example I created https://github.com/nordicopen/pyeasee/blob/master/examples/user_consumption.py
And run it with "python user_consumption.py  "
If you tell me how you want the output formatted I can guide you how to change the script.
Honestly, I am not 100% sure the script even works correctly since I do not have a setup with more than one user to test it on, so when I run it, I see noting apart from my user id, name and email.
To me, a sensor in HA would be a far more complex thing to use to create invoices than the output of this script. I would not even know how to begin doing that honestly. A sensor would only represent the correct value at a certain point in time for one, so it would be very critical to read its value at a that time. The values would not necessarily update exactly when a month ends for instance, since it is more dependant on when a charging session ends than when a month ends.
Also, the attributes you suggested are not possible since the API only supports monthly and yearly data. Getting daily and weekly data is far more complex and requires parsing all charging sessions at the site.
To implement this would also require polling, which we like to avoid as much as possible. In fact it is on my mental roadmap to try and remove as much as possible of the polling we are already doing, so changes in that direction is coming, and it might mean that I will remove some features that we have implemented but that is not working very well.

Hello and thank you for your kindly offer.
One more question: I think the wallbox has an utility meter inside like a shelly?
i can access with sensor.links_energie_pro_stunde

this sensor is exact what i need for each user, may be solvable with  a kind of virtual utility meter on easee?

The APIs that report user consumption updates only after completed charging sessions, not during ongoing charging.
And there is no API to read which user is currently connected, so you can not use any other meter since you do not know who is connected.
The "utility meter" equivalent of the the charger is the sensor called "lifetime energy" (or "Gesamtenergie" in German).
It updates with "irregular" intervals and does usually not show the correct value for the entire session until after a charging session completes, even if the car stopped charging earlier.
If you want to know more real-time how much energy is consumed in charging session you are better of integrating the power sensor over time, since it updates a lot more frequently.
The energy per hour sensor that you point to above is something else, it represents a floating average over the last hours consumption. Frankly I am unsure what that can be used for, but somebody asked for us to add it some time ago, and the data was already available so we did. More data is fun perhaps...
But again, nothing of this can be used to understand the consumption of a specific user since there is no way of knowing who is currently charging, until after the session completes (i.e. car is disconnected).

ok, i understand.
i had assumed, that user is known with authentification while starting charging

The charger knows of course, but we can not access that information.

may be you can forward that as a suggestion for improvement to the charger firmware team

I did discuss it with them at some point over a year ago, I do not think it is much to hope for.

Hi Ralf-Th,
it's maybe a bit low-tech, but I download every three months a "detailed report" in Excel format from the https://control.easee.com/portal/sites/[mysite]/consumption web portal and use it as a documentation for cash claims (accompanied by the latest copy of my electricity bill).

Closing this now since no way forward other than already discussed and implemented.


question: Why you can't have same package in two different repository?

I would be nice to have..

You can have same package in as many different repositories and any other aptly objects as you wish. If you have something more specific - feel free to reopen.

aptly publish snapshot ...
Loading packages...
^M13 / 13  100.00 % ^MESC[2KGenerating metadata files and linking package files...
^M1 / 13  7.69 % ^MESC[2KERROR: unable to publish: unable to process packages: error linking file to /home/aptly/.aptly/public/pool/main/o/odn-solr/odn-solr_4.10.2-odn0.10.1_all.deb: file already exists and is different

 aptly repo -with-packages=true show testing
Name: testing
Comment: Development builds
Default Distribution:
Default Component: main
Number of packages: 13
Packages:
  odn-solr_4.10.2-odn0.10.1_all

aptly@proxy:~$ aptly repo -with-packages=true show main
Name: main
Comment: Stable releases
Default Distribution:
Default Component: main
Number of packages: 13
Packages:
  odn-solr_4.10.2-odn0.10.1_all

then what am I doing wrong? I'm unable to publish two repo with same package.

please reopen the issue. I don't have a permission.

Are these packages odn-solr_4.10.2-odn0.10.1_all actually the same? Or different?
Could you please show output of aptly package show -with-references -with-files odn-solr_4.10.2-odn0.10.1_all ?

Also you might have this problem if you copied aptly root directory to some place losing information about hardlinks.

$aptly package show -with-references -with-files odn-solr_4.10.2-odn0.10.1_all
Package: odn-solr
Version: 4.10.2-odn0.10.1
Installed-Size: 33294
Priority: extra
Section: web
Maintainer: Someone FIXME<EMAIL_ADDRESS>Architecture: all
Description: OpenData Node - SOLR engine
MD5sum: 34e662f05e8932b84b9010ab7bfbcdec
SHA1: 0d2a492b4ca485cebfc7424eb90c17f44768e9ea
SHA256: 39377adb1f3de112e3c014b500887e71d5971a3936aac5b714a612b50eeb5892
Homepage: http://opendata.sk
Filename: odn-solr_4.10.2-odn0.10.1_all.deb
Source:
Size: 30132554
Depends: openjdk-7-jre-headless, tomcat7-user

Files in the pool:
  /home/X/.aptly/pool/34/e6/odn-solr_4.10.2-odn0.10.1_all.deb

References to package:
  local repo [main]: Stable releases
  snapshot [odn-jenkins-testing-48]: Snapshot from local repo [main]: Stable releases
  snapshot [odn-jenkins-main-47]: Snapshot from local repo [main]: Stable releases
  snapshot [odn-jenkins-main-46]: Snapshot from local repo [main]: Stable releases

root directory is ? .aptly? I don't copy .aptly -  as far as i remember

hmmm...
I would expect aptly package show to display two packages.
From what I see (please correct me if I'm wrong), you've got two local repos, main and testing. Each of those repos contains package odn-solr_4.10.2-odn0.10.1_all, which are actually two different packages with the same name, version and architecture.
aptly supports this case just fine, but when you try publishing both these repos under the same prefix, both packages  odn-solr_4.10.2-odn0.10.1_all would try to use path /home/aptly/.aptly/public/pool/main/o/odn-solr/odn-solr_4.10.2-odn0.10.1_all.deb to store package filename. This is how Debian package repo structure works: all distributions share common package pool.
As there are two different files which try to use the same filename, aptly warns you about that and refuses to continue with publishing.
You have two options:

don't create duplicate packages with different content, e.g. add something like ~testing to package version for packages in testing repo
publish local repos under different prefixes (last parameter to aptly publish commands) to make them use separate pool directories

Yes, I've resolved this problem by option 1. However I haven't understood the reason why I can't do this. It might be not so good user story. Maybe the repositories shouldn't share the pool.

The reason why you can't do that is that in Debian repository format all distributions share common pool with package files. This is smart thing: it allows you to reuse same package files in multiple distribution sets.
Debian itself never builds different packages under same (name, version, arch). You don't follow this recommendation and you can only have workaround as publishing prefix.
More on this topic: http://www.aptly.info/doc/feature/duplicate/

I agree with Jan-Marcek. The fact that Debian uses common pool is not a reason that you can't separate it. It just "best practice". But sometimes a "best practice" is not applicable for a particular solution.

@dburm aptly allows you to have separate pool/ directories by using publishing prefix

@smira publishing prefix doesn't allow to use common dists/ directory and multiple pools

@dburm why do you need single dists/ ?

@smira Excuse me to "re-open" a previous issue, but when you say "aptly allows you to have separate pool/ directories by using publishing prefix", I'm not sure you're right, because prefixes are only used for "dists" directory, I didn't find how to have subdirectories in "pool" except setting -component=distribution/main instead of "main". It forces users to set "distribution distribution/main" in their sources.list...

@FlorentCoppint no, prefix/ moves dists/ and pool/ to prefix/dists/ and prefix/pool/, so they are completely isolated

Yes, but in the case you want to set-up a single repository (so a single prefix), but publish 2 distributions inside, there can be conflicts with packages all stored in prefix/pool (same name,version,arch but different content for each distribution). I know some repository publishers uses subdirectories into "pool", see for example : https://swupdate.openvpn.net/apt/
An option like this could be implemented in Aptly ?

@FlorentCoppint no... aptly doesn't support such layout.

Could it be a future feature ? I will try to take a look on the code, I don't think it's difficult to set this up.

+1

@FlorentCoppint In this way, one same package (same name, version, arch, and content) will still appear multiple times in these subdirectories unless using symlink. I think a better way would be auto-renaming the conflicting package when publishing from snapshot or repo. For example, I have 3 python-tornado_4.2.1-1_amd64.deb (same name, version, arch but with different content) for Trusty, Xenial and Jessie repo, when publishing, aptly will auto-rename these 3 conflicting packages to:
python-tornado_4.2.1-trusty1_amd64.deb
python-tornado_4.2.1-xenial1_amd64.deb
python-tornado_4.2.1-jessie1_amd64.deb
Then they can be placed in a single repository without any issue.
@smira How about adding this as a new feature?

IMO problems with versions should be handled at build level, not by aptly.


Implement nfc feature for breez BTC wallet and show insufficient balance error if funds not enough in the nfc card

[ ]  Test if nfc for breez BTC wallet is working as expected
[x]  Test with ibex USD wallet and check if you getting full err or message

the messages need to be more readable.
currently I see "Payment request was not within bounds"
and "Generic: Generic: Amount is bigger than the maximum allowed by the LNURL-withdraw endpoint"
Both of these messages need to be shorter and easier to read.
"Insufficient Funds"

It is not possible to detect if the error is due to insufficient funds. For example, the image below shows errors from LNbits and BTCPay Server. Both have different reasons but the same status, 'Error'.
I could show an 'Insufficient Funds' error message for all errors, but I don't think that is the best practice.

It is not possible to detect if the error is due to insufficient funds. For example, the image below shows errors from LNbits and BTCPay Server. Both have different reasons but the same status, 'Error'.
I could show an 'Insufficient Funds' error message for all errors, but I don't think that is the best practice.

would this work?

      if (result.ok) {
        if (lnurlResponse?.status?.toLowerCase() !== "ok") {
          console.error(lnurlResponse, "error with redeeming")
          Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.redeemingError())
        }
      } else if (
        (lnurlResponse.reason && lnurlResponse.reason.includes("not within bounds")) ||
        lnurlResponse.reason.includes("Amount is bigger than the maximum")
      ) {
        Alert.alert("Payment Failed: Insufficient Funds")
      } else {
        Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.submissionError())
      }

It is not possible to detect if the error is due to insufficient funds. For example, the image below shows errors from LNbits and BTCPay Server. Both have different reasons but the same status, 'Error'.
I could show an 'Insufficient Funds' error message for all errors, but I don't think that is the best practice.

would this work?

      if (result.ok) {
        if (lnurlResponse?.status?.toLowerCase() !== "ok") {
          console.error(lnurlResponse, "error with redeeming")
          Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.redeemingError())
        }
      } else if (
        (lnurlResponse.reason && lnurlResponse.reason.includes("not within bounds")) ||
        lnurlResponse.reason.includes("Amount is bigger than the maximum")
      ) {
        Alert.alert("Payment Failed: Insufficient Funds")
      } else {
        Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.submissionError())
      }

It works if all other servers return this kind of error. If they return smth else, it won't work.
For example: Lnbits returns "Payment failed - Insufficient balance" and it won't work for it. I should add another check for this case

Or for now do you want me to put these 2 checks?

It is not possible to detect if the error is due to insufficient funds. For example, the image below shows errors from LNbits and BTCPay Server. Both have different reasons but the same status, 'Error'.
I could show an 'Insufficient Funds' error message for all errors, but I don't think that is the best practice.

would this work?

      if (result.ok) {
        if (lnurlResponse?.status?.toLowerCase() !== "ok") {
          console.error(lnurlResponse, "error with redeeming")
          Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.redeemingError())
        }
      } else if (
        (lnurlResponse.reason && lnurlResponse.reason.includes("not within bounds")) ||
        lnurlResponse.reason.includes("Amount is bigger than the maximum")
      ) {
        Alert.alert("Payment Failed: Insufficient Funds")
      } else {
        Alert.alert(lnurlResponse.reason || LL.RedeemBitcoinScreen.submissionError())
      }

It works if all other servers return this kind of error. If they return smth else, it won't work. For example: Lnbits returns "Payment failed - Insufficient balance" and it won't work for it. I should add another check for this case

Add another check for this case. We can always add more checks in the future.
This will give a better user experience for MVP.

its working now.


4.5 -> 4.6, api-int resolution issues due to nsswitch change in Fedora 33

Describe the bug
Upgrade from 4.5 to 4.6 hangs.  First master and first worker never finish.
Version
Version: Migration from: 4.5.0-0.okd-2020-10-15-235428        to: 4.6.0-0.okd-2020-11-27-200126
Method: IPI
Platform: VMWare
Details
Upon running the upgrade, after the first master and worker are restarted, they stay at   NotReady,SchedulingDisabled
 oc get nodes -o wide
NAME                          STATUS                        ROLES    AGE     VERSION                     INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION           CONTAINER-RUNTIME
dev-c1v4-mfpr9-master-0       Ready                         master   5d18h   v1.18.3                     <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 32.20200629.3.0    5.6.19-300.fc32.x86_64   cri-o://1.18.2
dev-c1v4-mfpr9-master-1       NotReady,SchedulingDisabled   master   5d18h   v1.19.0-rc.2+9f84db3-1075   <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 33.20201124.10.1   5.9.9-200.fc33.x86_64    cri-o://1.19.0
dev-c1v4-mfpr9-master-2       Ready                         master   5d18h   v1.18.3                     <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 32.20200629.3.0    5.6.19-300.fc32.x86_64   cri-o://1.18.2
dev-c1v4-mfpr9-worker-jmk8q   NotReady,SchedulingDisabled   worker   5d18h   v1.18.3                     <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 32.20200629.3.0    5.6.19-300.fc32.x86_64   cri-o://1.18.2
dev-c1v4-mfpr9-worker-rw6pt   Ready                         worker   5d17h   v1.18.3                     <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 32.20200629.3.0    5.6.19-300.fc32.x86_64   cri-o://1.18.2
dev-c1v4-mfpr9-worker-xbmgg   Ready                         worker   5d2h    v1.18.3                     <IP_ADDRESS>   <IP_ADDRESS>   Fedora CoreOS 32.20200629.3.0    5.6.19-300.fc32.x86_64   cri-o://1.18.2

Looking at the journalctl on the master I see lots of lookup issues:
Nov 30 17:03:08 dev-c1v4-mfpr9-master-1 hyperkube[1709]: E1130 17:03:08.520121    1709 kubelet.go:2190] node "dev-c1v4-mfpr9-master-1" not found
Nov 30 17:03:08 dev-c1v4-mfpr9-master-1 hyperkube[1709]: I1130 17:03:08.533365    1709 csi_plugin.go:994] Failed to contact API server when waiting for CSINode publishing: Get "https://api-int.dev-c1v4.os.maeagle.corp:6443/apis/storage.k8s.io/v1/csinodes/dev-c1v4-mfpr9-master-1": dial tcp: lookup api-int.dev-c1v4.os.maeagle.corp: no such host
Nov 30 17:03:08 dev-c1v4-mfpr9-master-1 hyperkube[1709]: E1130 17:03:08.620272    1709 kubelet.go:2190] node "dev-c1v4-mfpr9-master-1" not found
Nov 30 17:03:08 dev-c1v4-mfpr9-master-1 hyperkube[1709]: E1130 17:03:08.720432    1709 kubelet.go:2190] node "dev-c1v4-mfpr9-master-1" not found

I see the same on the worker.
Log bundle
Unfortunately I can't seem to run must-gather
oc adm must-gather
[must-gather      ] OUT Using must-gather plugin-in image: quay.io/openshift/okd-content@sha256:c5b27546b5bb33e0af0bdd7610a0f19075bb68c78f39233db743671b9f043f6b
[must-gather      ] OUT namespace/openshift-must-gather-6q9bh created
[must-gather      ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-9z42b created
[must-gather      ] OUT pod for plug-in image quay.io/openshift/okd-content@sha256:c5b27546b5bb33e0af0bdd7610a0f19075bb68c78f39233db743671b9f043f6b created
[must-gather-frnqv] OUT gather did not start: timed out waiting for the condition
[must-gather      ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-9z42b deleted
[must-gather      ] OUT namespace/openshift-must-gather-6q9bh deleted
error: gather did not start for pod must-gather-frnqv: timed out waiting for the condition

I was able to create a must-gather file:  https://www.dropbox.com/s/qnq4758gabu0yg6/must-gather.tar.gz?dl=0
There were a fair amount of errors:
must-gather.log

so for some reason I had to add the api-int.xxx host ip to /etc/hosts.  Once I did that the updates finished.
I add <IP_ADDRESS> api-int.dev-c1v4.os.maeagle.corp to each master and worker
Here is the final /etc/hosts after reboot...
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
<IP_ADDRESS> api-int.dev-c1v4.os.maeagle.corp

;; image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
Connection image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
to image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
<IP_ADDRESS>#53(<IP_ADDRESS>) image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
for image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
image-registry.openshift-image-registry.svc.cluster.local image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
failed: image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
timed image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver
out. image-registry.openshift-image-registry.svc image-registry.openshift-image-registry.svc.cluster.local # openshift-generated-node-resolver

what is all the stuff after ;; ?

Cluster status after update:
[root@os-utils-d02 ~]# oc get nodes
NAME                          STATUS   ROLES    AGE     VERSION
dev-c1v4-mfpr9-master-0       Ready    master   5d21h   v1.19.0-rc.2+9f84db3-1075
dev-c1v4-mfpr9-master-1       Ready    master   5d21h   v1.19.0-rc.2+9f84db3-1075
dev-c1v4-mfpr9-master-2       Ready    master   5d21h   v1.19.0-rc.2+9f84db3-1075
dev-c1v4-mfpr9-worker-jmk8q   Ready    worker   5d21h   v1.19.0-rc.2+9f84db3-1075
dev-c1v4-mfpr9-worker-rw6pt   Ready    worker   5d21h   v1.19.0-rc.2+9f84db3-1075
dev-c1v4-mfpr9-worker-xbmgg   Ready    worker   5d5h    v1.19.0-rc.2+9f84db3-1075

Check /etc/resolv.conf - NM should have prepended an internal DNS, which would resolve api-int

It was added:
after removing from /etc/hosts I get:
# Generated by KNI resolv prepender NM dispatcher script
search dev-c1v4.os.maeagle.corp
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>

[core@dev-c1v4-mfpr9-worker-rw6pt ~]$ nslookup api-int.dev-c1v4.os.maeagle.corp
;; Got recursion not available from <IP_ADDRESS>, trying next server
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

** server can't find api-int.dev-c1v4.os.maeagle.corp: NXDOMAIN

notice the Got recursion not available from <IP_ADDRESS>, trying next server

I don't think internal DNS is working correctly.  I can't seen to resolve any cluster.local entries either

great info thanks for sharing i will stay on 4.5 until 4.6 is more stable

notice the Got recursion not available from <IP_ADDRESS>, trying next server

Two DNS pods are unhealthy:

| dns-default-d475t | Unhealthy | Liveness  probe failed: Get http://<IP_ADDRESS>:8080/health: net/http: request  canceled while waiting for connection (Client.Timeout exceeded while  awaiting headers)

> dns-default-d475t
Unhealthy
Liveness  probe failed: Get http://<IP_ADDRESS>:8080/health: net/http: request  canceled while waiting for connection (Client.Timeout exceeded while  awaiting headers)

But other than that internal DNS looks fine

I restarted all the DNS pods but it didn't make a difference...
I was able to resolve internal cluster.local addresses and the external api DNS.
sh-4.4# nslookup router-internal-default.openshift-ingress
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   router-internal-default.openshift-ingress.svc.cluster.local
Address: <IP_ADDRESS>

sh-4.4# nslookup api.dev-c1v4.os.maeagle.corp
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   api.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>

but api-int.dev-c1v4.os.maeagle.corp still fails:
sh-4.4# nslookup api-int.dev-c1v4.os.maeagle.corp
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   api-int.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>
Name:   api-int.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>
** server can't find api-int.dev-c1v4.os.maeagle.corp: NXDOMAIN

Other than this issue, the upgrade seems fine so far...

I'd say there is definately an issue during the upgrade.  Even before the nodes are rebooted, the api-int becomes unavailable:
This is a fresh 4.5 install with an upgrade to 4.6
Before on master-0:
sh-4.4# cat /etc/resolv.conf
search dev-c1v4.os.maeagle.corp
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
sh-4.4# cat /etc/hosts
# Kubernetes-managed hosts file (host network).
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
sh-4.4#

sh-4.2# nslookup api-int.dev-c1v4.os.maeagle.corp
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   api-int.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>
** server can't find api-int.dev-c1v4.os.maeagle.corp: NXDOMAIN

sh-4.2# nslookup api.dev-c1v4.os.maeagle.corp
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   api.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>

After
sh-4.4#  nslookup api-int.dev-c1v4.os.maeagle.corp
;; Got recursion not available from <IP_ADDRESS>, trying next server
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

sh-4.4#  nslookup api.dev-c1v4.os.maeagle.corp
;; Got recursion not available from <IP_ADDRESS>, trying next server
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   api.dev-c1v4.os.maeagle.corp
Address: <IP_ADDRESS>

and DNS had not been updated yet:
dns                                        4.5.0-0.okd-2020-10-15-235428   True        False         False      60m
so during the upgrade, something broke...

Current Status...  It will stay here until I add the api-int IP into the /etc/hosts
NAME                          STATUS                        ROLES    AGE   VERSION
dev-c1v4-hml4m-master-0       NotReady,SchedulingDisabled   master   85m   v1.18.3
dev-c1v4-hml4m-master-1       Ready                         master   85m   v1.18.3
dev-c1v4-hml4m-master-2       Ready                         master   85m   v1.18.3
dev-c1v4-hml4m-worker-8rrgs   NotReady,SchedulingDisabled   worker   72m   v1.18.3
dev-c1v4-hml4m-worker-pl97s   Ready                         worker   72m   v1.18.3
dev-c1v4-hml4m-worker-sf74s   Ready                         worker   72m   v1.18.3

Every 15.0s: oc get co                                                                        Tue Dec  1 11:05:48 2020

NAME                                       VERSION                         AVAILABLE   PROGRESSING   DEGRADED   SINCE
authentication                             4.6.0-0.okd-2020-11-27-200126   False       False         True       2m10s
cloud-credential                           4.6.0-0.okd-2020-11-27-200126   True        False         False      87m
cluster-autoscaler                         4.6.0-0.okd-2020-11-27-200126   True        False         False      77m
config-operator                            4.6.0-0.okd-2020-11-27-200126   True        False         False      77m
console                                    4.6.0-0.okd-2020-11-27-200126   True        False         False      6m38s
csi-snapshot-controller                    4.6.0-0.okd-2020-11-27-200126   True        False         False      79m
dns                                        4.6.0-0.okd-2020-11-27-200126   True        False         True       17m
etcd                                       4.6.0-0.okd-2020-11-27-200126   True        False         False      81m
image-registry                             4.6.0-0.okd-2020-11-27-200126   True        False         False      79m
ingress                                    4.6.0-0.okd-2020-11-27-200126   True        False         False      34m
insights                                   4.6.0-0.okd-2020-11-27-200126   True        False         False      79m
kube-apiserver                             4.6.0-0.okd-2020-11-27-200126   True        False         False      80m
kube-controller-manager                    4.6.0-0.okd-2020-11-27-200126   True        False         False      80m
kube-scheduler                             4.6.0-0.okd-2020-11-27-200126   True        False         False      80m
kube-storage-version-migrator              4.6.0-0.okd-2020-11-27-200126   True        False         False      53m
machine-api                                4.6.0-0.okd-2020-11-27-200126   True        False         False      75m
machine-approver                           4.6.0-0.okd-2020-11-27-200126   True        False         False      79m
machine-config                             4.5.0-0.okd-2020-10-15-235428   False       True          False      17m
marketplace                                4.6.0-0.okd-2020-11-27-200126   True        False         False      33m
monitoring                                 4.6.0-0.okd-2020-11-27-200126   True        False         False      7m54s
network                                    4.6.0-0.okd-2020-11-27-200126   True        True          False      83m
node-tuning                                4.6.0-0.okd-2020-11-27-200126   True        False         False      34m
openshift-apiserver                        4.6.0-0.okd-2020-11-27-200126   True        False         True       12m
openshift-controller-manager               4.6.0-0.okd-2020-11-27-200126   True        False         False      79m
openshift-samples                          4.6.0-0.okd-2020-11-27-200126   True        False         False      34m
operator-lifecycle-manager                 4.6.0-0.okd-2020-11-27-200126   True        False         False      82m
operator-lifecycle-manager-catalog         4.6.0-0.okd-2020-11-27-200126   True        False         False      82m
operator-lifecycle-manager-packageserver   4.6.0-0.okd-2020-11-27-200126   True        False         False      6m34s
service-ca                                 4.6.0-0.okd-2020-11-27-200126   True        False         False      82m
storage                                    4.6.0-0.okd-2020-11-27-200126   True        False         False      34m

dns (and subsequently openshift-apiserver) is degraded, I don't think I've seen it in the original must-gather - could you collect another one (may need a few times, but it if fails oc get op dns -o yaml would do for now)

oc get op dns -o yaml

oc get op dns -o yaml
error: the server doesn't have a resource type "op"

must-gather link

So two pods

dns-default-7rdgv

and

dns-default-glrjs

in not ready state with no logs. Not sure why pods are not ready - all containers are ready though.

dns-default-7rdgv
dev-c1v4-hml4m-master-0   so not reporting
dns-default-glrjs
dev-c1v4-hml4m-master-0   so not reporting

As I said, If I add the api-int entry to /etc/hosts it will resolve...
I mentioned earlier that DNS started failing before the update was complete and before DNS had been updated...  Something else is breaking it...  See the nslookup results above with the before and after

Failed for me as well on our dev cluster but it's a UPI (Master on VMware, Worker on bare metal). Hanging in the same state one Master and one Node will stay in not ready.
When logging in on to the failed master systemd reports:
[systemd]
Failed Units: 1
  gcp-hostname.service

-- Reboot --
Dez 01 18:07:00 fedora systemd[1]: Starting Set GCP Transient Hostname...
Dez 01 18:07:00 fedora afterburn[1052]: Dec 01 18:07:00.667 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #1
Dez 01 18:07:00 fedora afterburn[1052]: Dec 01 18:07:00.674 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:01 fedora afterburn[1052]: Dec 01 18:07:01.674 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #2
Dez 01 18:07:01 fedora afterburn[1052]: Dec 01 18:07:01.675 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:03 fedora afterburn[1052]: Dec 01 18:07:03.675 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #3
Dez 01 18:07:03 fedora afterburn[1052]: Dec 01 18:07:03.676 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:07 fedora afterburn[1052]: Dec 01 18:07:07.676 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #4
Dez 01 18:07:07 fedora afterburn[1052]: Dec 01 18:07:07.677 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:12 fedora afterburn[1052]: Dec 01 18:07:12.677 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #5
Dez 01 18:07:12 fedora afterburn[1052]: Dec 01 18:07:12.679 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:17 fedora afterburn[1052]: Dec 01 18:07:17.679 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #6
Dez 01 18:07:17 fedora afterburn[1052]: Dec 01 18:07:17.680 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:22 fedora afterburn[1052]: Dec 01 18:07:22.680 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #7
Dez 01 18:07:22 fedora afterburn[1052]: Dec 01 18:07:22.681 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:27 fedora afterburn[1052]: Dec 01 18:07:27.682 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #8
Dez 01 18:07:27 fedora afterburn[1052]: Dec 01 18:07:27.683 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:32 fedora afterburn[1052]: Dec 01 18:07:32.683 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #9
Dez 01 18:07:32 fedora afterburn[1052]: Dec 01 18:07:32.685 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:37 fedora afterburn[1052]: Dec 01 18:07:37.685 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #10
Dez 01 18:07:37 fedora afterburn[1052]: Dec 01 18:07:37.687 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora afterburn[1052]: Dec 01 18:07:42.687 INFO Fetching http://metadata.google.internal/computeMetadata/v1/instance/hostname: Attempt #11
Dez 01 18:07:42 fedora afterburn[1052]: Dec 01 18:07:42.689 INFO Failed to fetch: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora afterburn[1052]: Error: failed to run
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: writing hostname
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: maximum number of retries (10) reached
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: failed to fetch
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: error sending request for url (http://metadata.google.internal/computeMetadata/v1/instance/hostname): error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: error trying to connect: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: dns error: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora afterburn[1052]: Caused by: failed to lookup address information: Name or service not known
Dez 01 18:07:42 fedora systemd[1]: gcp-hostname.service: Control process exited, code=exited, status=1/FAILURE
Dez 01 18:07:42 fedora systemd[1]: gcp-hostname.service: Failed with result 'exit-code'.
Dez 01 18:07:42 fedora systemd[1]: Failed to start Set GCP Transient Hostname.

and the hostname was changed from master01 to fedora

and the hostname was changed from master01 to fedora

I haven't seen any hostname changes...

But i looks like if the issue has the same origin:
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.868474    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.800840    1293 kubelet_volumes.go:154] orphaned pod "5a1e2d9b-52b1-44ff-b2e0-b139c23f52cc" found, but volume subpaths are still present on disk : There were a total of 1 errors similar to this. Turn up verbosity to see them.
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.768358    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: I1201 19:22:29.681173    1293 csi_plugin.go:994] Failed to contact API server when waiting for CSINode publishing: csinodes.storage.k8s.io "fedora" is forbidden: User "system:node:okd4m01.bluecare.local" cannot get resource "csinodes" in API group "storage.k8s.io" at the cluster scope: can only access CSINode with t>
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.668254    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: I1201 19:22:29.626220    1293 worker.go:215] Non-running container probed: kube-apiserver-fedora_openshift-kube-apiserver(42774d6f-c001-41e0-ba24-2a6e4b02c8da) - kube-apiserver-check-endpoints
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.568145    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.468026    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.367882    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.267778    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.167639    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:29 fedora hyperkube[1293]: E1201 19:22:29.067529    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.967264    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.867153    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.766628    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.680391    1293 csi_plugin.go:994] Failed to contact API server when waiting for CSINode publishing: csinodes.storage.k8s.io "fedora" is forbidden: User "system:node:okd4m01.bluecare.local" cannot get resource "csinodes" in API group "storage.k8s.io" at the cluster scope: can only access CSINode with t>
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.666370    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.566136    1293 kubelet.go:2190] node "fedora" not found
Dez 01 19:22:28 fedora hyperkube[1293]: E1201 19:22:28.514858    1293 kubelet_node_status.go:92] Unable to register node "fedora" with API server: nodes "fedora" is forbidden: node "okd4m01.bluecare.local" is not allowed to modify node "fedora"
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511279    1293 event.go:291] "Event occurred" object="fedora" kind="Node" apiVersion="" type="Normal" reason="NodeHasSufficientPID" message="Node fedora status is now: NodeHasSufficientPID"
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511269    1293 event.go:291] "Event occurred" object="fedora" kind="Node" apiVersion="" type="Normal" reason="NodeHasNoDiskPressure" message="Node fedora status is now: NodeHasNoDiskPressure"
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511249    1293 event.go:291] "Event occurred" object="fedora" kind="Node" apiVersion="" type="Normal" reason="NodeHasSufficientMemory" message="Node fedora status is now: NodeHasSufficientMemory"
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511133    1293 kubelet_node_status.go:70] Attempting to register node fedora
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511100    1293 kubelet_node_status.go:526] Recording NodeHasSufficientPID event message for node fedora
Dez 01 19:22:28 fedora hyperkube[1293]: I1201 19:22:28.511090    1293 kubelet_node_status.go:526] Recording NodeHasNoDiskPressure event message for node fedora

Is there a workaround for this? I could rename the host to its old name but if possible i would rather not risk our dev cluster because of try and error.

Is there a workaround for this? I could rename the host to its old name but if possible i would rather not risk our dev cluster because of try and error.

I think your issue is slightly different since your nodes are being renamed...
are you able to do a DNS lookup of  api-int. ?

Yes, maybe because of UPI (external DNS)?

Well, this is interesting...  It looks like something may be broke in CoreOS fc33.
CoreDNS itself seems to be fine.  The coredns pods run on each host as privilege container and act as a DNS server on that host IP on port 53.  On both fc32 and fc33 the DNS itself works with dig and nslookup (nslookup needs -norec added)
However, after adding log to /etc/coreos/Corefile so that I can see better logs, there is a big difference.  Applications do not seem to be able to resolve the api-int. on fc33 hosts.  They can resolve other hosts (google.com,  *.apps. etc)
FC32 from ping tests
[INFO] <IP_ADDRESS>:33469 - 59898 "A IN api-int.dev-c1v4.os.maeagle.corp. udp 50 false 512" NOERROR qr,aa,rd 98 0.000242014s
[INFO] <IP_ADDRESS>:33469 - 57280 "AAAA IN api-int.dev-c1v4.os.maeagle.corp. udp 50 false 512" NXDOMAIN qr,aa,rd,ra 144 0.000897943s
[INFO] <IP_ADDRESS>:34459 - 58102 "PTR IN <IP_ADDRESS>.in-addr.arpa. udp 41 false 512" NOERROR qr,aa,rd 175 0.0001837s
[INFO] <IP_ADDRESS>:55297 - 51746 "A IN dmc.maeagle.corp. udp 34 false 512" NOERROR qr,aa,rd,ra 120 0.000907337s
[INFO] <IP_ADDRESS>:55297 - 54309 "AAAA IN dmc.maeagle.corp. udp 34 false 512" NOERROR qr,aa,rd,ra 84 0.000966276s
[INFO] <IP_ADDRESS>:45755 - 1724 "PTR IN <IP_ADDRESS>.in-addr.arpa. udp 44 false 512" NOERROR qr,aa,rd,ra 104 0.001262644s

FC33 from ping tests:
[root@dev-c1v4-ggwfp-worker-s55lj ~]# crictl logs -f 9c81f376d81e5 | grep -v plugin/mdns
.:53
[INFO] plugin/reload: Running configuration MD5 = 5cc99ff6925ba52e9e17689f1616cba7
CoreDNS-1.6.6
linux/amd64, go1.15.0,

FC32 dnslookup tests

[INFO] <IP_ADDRESS>:45943 - 32870 "A IN api-int.dev-c1v4.os.maeagle.corp. udp 50 false 512" NOERROR qr,aa,rd 98 0.00022074s
[INFO] <IP_ADDRESS>:41521 - 21814 "A IN oauth-openshift.apps.dev-c1v4.os.maeagle.corp. udp 63 false 512" NOERROR qr,aa,rd 124 0.000258591s
[INFO] <IP_ADDRESS>:41300 - 3757 "A IN dmc.maeagle.corp. udp 34 false 512" NOERROR qr,aa,rd,ra 120 0.001293433s
[INFO] <IP_ADDRESS>:42856 - 30833 "AAAA IN dmc-p03.maeagle.corp. udp 38 false 512" NOERROR qr,aa,rd,ra 124 0.00116467s

FC33 dnslookup tests
[INFO] plugin/reload: Running configuration MD5 = 5cc99ff6925ba52e9e17689f1616cba7
CoreDNS-1.6.6
linux/amd64, go1.15.0,
[INFO] <IP_ADDRESS>:39182 - 57890 "A IN api.dev-c1v4.os.maeagle.corp. udp 46 false 512" NOERROR qr,aa 90 0.00020603s
[INFO] <IP_ADDRESS>:60059 - 20225 "AAAA IN api.dev-c1v4.os.maeagle.corp. udp 46 false 512" NOERROR qr,aa,ra 140 0.001273169s
[INFO] <IP_ADDRESS>:41967 - 19272 "A IN api-int.dev-c1v4.os.maeagle.corp. udp 50 false 512" NOERROR qr,aa 98 0.000161355s
[INFO] <IP_ADDRESS>:57526 - 62586 "AAAA IN api-int.dev-c1v4.os.maeagle.corp. udp 50 false 512" NXDOMAIN qr,aa,ra 144 0.001409065s

As far as I can tell the /etc/coredns/Corefiles are identical...
. {
    log
    errors
    health :18080
    mdns dev-c1v4.os.maeagle.corp 0 dev-c1v4
    forward . <IP_ADDRESS> <IP_ADDRESS>
    cache 30
    reload
    hosts {
        <IP_ADDRESS> api-int.dev-c1v4.os.maeagle.corp
        <IP_ADDRESS> api.dev-c1v4.os.maeagle.corp
        fallthrough
    }
    template IN A dev-c1v4.os.maeagle.corp {
        match .*.apps.dev-c1v4.os.maeagle.corp
        answer "{{ .Name }} 60 in a <IP_ADDRESS>"
        fallthrough
    }
}

I'm not exactly sure what it means but it definately seems broken

Well, I think I found the issue:
FC32 from /etc/nsswitch.conf:
hosts:      files dns myhostname
FC33 from /etc/nsswitch.conf:
hosts:      files resolve [!UNAVAIL=return] myhostname dns
If I change FC33 /etc/nsswitch.conf to use
hosts:      files dns myhostname
I can ping api-int.
After rebooting, the nodes come up fine...
I'm not sure if this is an install issue or due to changes to FC33

Marked "node hostname changes to fedora" comments as offtopic, please use https://github.com/openshift/okd/issues/394 for that.

If I change FC33 /etc/nsswitch.conf to use
hosts: files dns myhostname

Oh, interesting. Renaming the ticket

This is probably due to this change: https://fedoraproject.org/wiki/Changes/systemd-resolved
and possibly also related to https://github.com/coreos/fedora-coreos-tracker/issues/679
cc'ing @dustymabe for awareness

@mcatanzaro @keszybz maybe you can help here. What has to change so that nsswitch.conf is automatically configured correctly for the resolution to work?

Let me know how I can help/test.
I'm going to test regular 4.6 IPI install now...

maybe you can help here. What has to change so that nsswitch.conf is automatically configured correctly for the resolution to work?

What you have currently, hosts: files resolve [!UNAVAIL=return] myhostname dns, looks perfect to me. That's almost the same as Fedora's new default, except without mdns (avahi), which you probably don't want in okd anyway. If you want to go back to legacy DNS behavior, you would remove resolve [!UNAVAIL=return]. I think your problem is that you have custom DNS servers listed in /etc/resolv.conf that are required for the cluster to work, but systemd-resolved has not been told about them, yes? /etc/resolv.conf is now a legacy file that is ignored. Software that thinks it can write to it is broken.
You have several options to fix this.
Normally you're supposed to use the systemd-resolved D-Bus API for this instead. That's intended to be used by network management software, like NetworkManager or third-party VPN clients. You would call SetLinkDNS(), but the timing is a bit tricky: "Network management software integrating with resolved is recommended to invoke this method (and the five below) after the interface appeared in the kernel (and thus after a network interface index has been assigned) but before the network interfaces is activated (set IFF_UP on) so that all settings take effect during the full time the network interface is up." So I'm not sure if that would work well for okd, but that is the ideal solution IMO.
Alternatively, since (I think) you want a very simple configuration with a static list of DNS servers used for every interface, you could ignore the usual per-interface configuration and just set some global DNS servers instead, using the DNS= line in /etc/systemd/resolved.conf. But if so, you need to make sure that you don't have network management software (like NetworkManager) assigning any per-link configuration using SetLinkDNS(), because the global configuration will be ignored if so. In Fedora, the global configuration is ignored by default because NetworkManager will always set link-specific configuration. This might be the best solution for okd if you don't have NetworkManager or any other network management software that knows about systemd-resolved.
If neither of those options sounds suitable, then the next thing I would try is configuring systemd-resolved to read rather than manage /etc/resolv.conf. By default -- what you have right now -- systemd-resolved manages /etc/resolv.conf for you, and writes to it will not work as expected. But you can change this by changing it to be a normal file rather than a symlink. If so, systemd-resolved should populate its configuration from what you have in /etc/resolv.conf. This might be a good option if you have trouble with either of the previous approaches, since it would allow you to continue writing to /etc/resolv.conf. You lose the benefits of systemd-resolved's rich DNS configuration, but those are probably only important on desktops, not so useful for okd, so it's not much loss. But you would still benefit from systemd-resolved's shared DNS cache.
 I think it's worth using systemd-resolved even if only for its DNS cache, but if it's too hard to get working, I wouldn't worry too much about it. You can revert back to your old nsswitch.conf, disable the systemd-resolved service, and move on with life. I you need DNSSEC to work, then you must disable systemd-resolved, at least for now, because DNSSEC is pretty broken and not likely to be fixed until Fedora 34. I hope that will be fixed in time for F34.

Normally you're supposed to use the systemd-resolved D-Bus API for this instead. That's intended to be used by network management software, like NetworkManager or third-party VPN clients. You would call SetLinkDNS(), but the timing is a bit tricky: "Network management software integrating with resolved is recommended to invoke this method (and the five below) after the interface appeared in the kernel (and thus after a network interface index has been assigned) but before the network interfaces is activated (set IFF_UP on) so that all settings take effect during the full time the network interface is up." So I'm not sure if that would work well for okd, but that is the ideal solution IMO.

I should clarify: that's the ideal solution if you don't have NetworkManager.
If you do have NetworkManager, then I forgot to mention the obvious/ideal solution: just configure your extra DNS servers with NetworkManager (either using nmcli, or the NetworkManager D-Bus API)! Then everything should work, because NetworkManager will handle configuring systemd-resolved for you, and it will do so at exactly the right time, for every network interface. (It sounds like your software is currently writing directly to /etc/resolv.conf, and then that breaks because NetworkManager doesn't know about it?)

@mcatanzaro thank you for that excellent write-up!
We do have NM, so I'll investigate what you suggested here.
We also hit https://github.com/coreos/fedora-coreos-tracker/issues/679 which might be related here but I'm not entirely sure - tl;dr of what I think happens there is this (quoting myself from over there):

tmpfiles will create the /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf symlink at boot only (per L!), but unconditionally at that time.
systemd-resolved will try to create the symlink itself, but only if DNSStubListener=no is not set. If the symlink is already there however, it barfs: systemd-resolved[894]: Failed to symlink /run/systemd/resolve/stub-resolv.conf: Permission denied

(reading that summary again, that might actually be a separate issue)

systemd-resolved has not been told about them, yes? /etc/resolv.conf is now a legacy file that is ignored

Not in OKD, we still need it. We disable DNS Stub so that kubelet (and NM) could read /etc/resolv.conf

Hmm... I won't comment on the specifics of your migration -- I understand that's harder than normal Fedora since RPM scriptlets won't work in CoreOS -- but since you configure DNSStubListener=no, then you have already implemented this solution:

If neither of those options sounds suitable, then the next thing I would try is configuring systemd-resolved to read rather than manage /etc/resolv.conf. By default -- what you have right now -- systemd-resolved manages /etc/resolv.conf for you, and writes to it will not work as expected. But you can change this by changing it to be a normal file rather than a symlink. If so, systemd-resolved should populate its configuration from what you have in /etc/resolv.conf. This might be a good option if you have trouble with either of the previous approaches, since it would allow you to continue writing to /etc/resolv.conf. You lose the benefits of systemd-resolved's rich DNS configuration, but those are probably only important on desktops, not so useful for okd, so it's not much loss. But you would still benefit from systemd-resolved's shared DNS cache.

I don't think that's the best option, because you are using NetworkManager -- why not just let it do its thing? it should work -- but it's an acceptable choice. In theory, I think this ought to work without you having to make any changes to /etc/nsswitch.conf. But since it seems to not be working, I would recommend the practical solution: remove resolve [!UNAVAIL=return] from the hosts line in /etc/nsswitch.conf, and move on.
P.S. Obligatory reminder: if you have authselect -- you probably do? -- don't modify /etc/nsswitch.conf directly, because that breaks authselect. Modify /etc/authselect/user-nsswitch.conf instead, then run authselect apply-changes.

I would recommend the practical solution: remove resolve [!UNAVAIL=return] from the hosts line in /etc/nsswitch.conf, and move on.

Well, if doing that, also disable systemd-resolved.service. It's not going to get used, since I can see in https://github.com/openshift/okd/issues/401#issuecomment-736041606 that you don't have the stub resolver listed in /etc/nsswitch.conf.

OK let me remove DNSStubListener=no and see if that works: https://github.com/openshift/okd-machine-os/pull/22

Hmm, OK the reason this was introduced in the first place was resolved causing CoreDNS to crashloop: https://github.com/coredns/coredns/blob/master/plugin/loop/README.md#troubleshooting-loops-in-kubernetes-clusters

@vrutkovs I think we should attempt to fix this by either
A: preventing resolved from putting local/loopback address in /etc/resolve.conf, or
B: configuring kubelet to use /run/systemd/resolve/resolv.conf instead of /etc/resolve.conf (as suggested in the coredns doc linked above)

OK let me remove DNSStubListener=no and see if that works: openshift/okd-machine-os#22

It should work as long as NetworkManager is configured to use your CoreDNS server for each needed network interface. (If NetworkManager doesn't know about CoreDNS, of course it can't work.)

@vrutkovs I think we should attempt to fix this by either
A: preventing resolved from putting local/loopback address in /etc/resolve.conf, or
B: configuring kubelet to use /run/systemd/resolve/resolv.conf instead of /etc/resolve.conf (as suggested in the coredns doc linked above)

A: corresponds to using DNSStubListener=no. That should work. I think B: should also work.
Either way, you're causing DNS lookups to totally bypass systemd-resolved, which leads me to question whether you really want it enabled at all.

B: configuring kubelet to use /run/systemd/resolve/resolv.conf instead of /etc/resolve.conf

That's probably the best solution, yes, but it would require a conditional change in MCO, which really hard to test and support.
Lets see if option A (implemented in https://github.com/openshift/okd-machine-os/pull/20) would work

OK a whole lot going on here.  First a clear discovery is that it's a really evil trap that systemctl disable systemd-resolved doesn't work - one must also disable the NSS module.  This seems to also impact privileged containers (which have a separate copy of /etc/nsswitch.conf).
Second, the api-int issue intersects with https://github.com/openshift/machine-config-operator/pull/2236

it's a really evil trap that systemctl disable systemd-resolved doesn't work - one must also disable the NSS module

nss-resolve by itself doesn't do anything if systemd-resolved is not running. (Though the opposite is not true.) So it should be OK to leave the nss module.

nss-resolve by itself doesn't do anything if systemd-resolved is not running. (Though the opposite is not true.) So it should be OK to leave the nss module.

Yeah that's what the [!UNAVAIL=return] is for. So in theory you should be able to leave nsswitch.conf alone and just systemctl disable it.
Sans bugs.

When do we expect a new release for the fixes for the hostname ('fedora')  and dns (nsswitch.conf) issues for testing?

nsswitch.conf would be added in https://github.com/openshift/okd-machine-os/pull/20, not quite sure how to approach hostname issue - iiuc we need a new NetworkManager RPM in FCOS next-devel?
I'll check for a better way to overlay additional RPMs in OKD content until it lands in Fedora

not quite sure how to approach hostname issue - iiuc we need a new NetworkManager RPM in FCOS next-devel?

I believe there are two hostname issues.
One is in reference to issues with DCHP resolved hostname which require (?) an NM fix...
The other, the one I am having issues with is regarding:  https://github.com/openshift/machine-config-operator/pull/2282 which pulls the hostname from vSphere.

I think one more issue here is that in nsswitch.conf, the dns entry now as of F33 has lower priority than myhostname on hosts.
It is:
hosts:      files resolve [!UNAVAIL=return] myhostname dns

while it should be:
hosts:      files resolve [!UNAVAIL=return] dns myhostname

while it should be:
hosts:      files resolve [!UNAVAIL=return] dns myhostname

isn't this being fixed with https://github.com/openshift/okd-machine-os/pull/20

@fortinj66 yes, but that's only an OKD specific workaround of the real issue

Gotcha...  I'm still feeling my way around the various bits and pieces here so some of my questions may be off the mark...

Included this change in https://amd64.origin.releases.ci.openshift.org/releasestream/4.6.0-0.okd/release/4.6.0-0.okd-2020-12-04-104706.
Keeping open until we ensure this change is required and does the trick

This seems to work.  All the master servers were able to reach api-int...
The hostname issue remains as they are all 'fedora'

I think one more issue here is that in nsswitch.conf, the dns entry now as of F33 has lower priority than myhostname on hosts.

That's intentional. From nss-myhostname(8):
       It is recommended to place "myhostname" either between "resolve" and
       "traditional" modules like "files" and "dns", or after them. In the
       first version, well-known names like "localhost" and the machine
       hostname are given higher priority than the external configuration.
       This is recommended when the external DNS servers and network are not
       absolutely trusted. In the second version, external configuration is
       given higher priority and nss-myhostname only provides a fallback
       mechanism. This might be suitable in closely controlled networks, for
       example on a company LAN.

I guess okd might qualify as a "closely-controlled network," but the former is more suitable for Fedora's default.

In many cases "closely controlled network" translates to production servers and clusters where DNS and DHCP are on the same local network. Those situations are quite plentiful. It might be helpful if there were a bit to flip on installation to account for this.

Once the new 4.6 stable release shows up as available I'll test a 4.5 -> 4.6 upgrade...

4.5 -> 4.6 upgrade succeeded with no observers issues...
Closing ticket


Plumb the use of event number for MTRBaseDevice read/subscribe

Fixes #26184

Okay Boris you're right about this already being there and I just missed it. Closing both PR and issue.


Rename syntax name

Then Syntax -> Open all with current extension as... -> JavaScript JSX.

IMO, I think JavaScript JSX should be renamed to something else (maybe JavaScript 6to5?). JSX isn't the only thing that has highlighting support, but generally/ideally anything that 6to5 supports syntactically (e.g. ES7+).

Also, the name nearly confused me because sublime-react also have a similar name: https://github.com/reactjs/sublime-react/blob/4dba5d41b8174df35af00299fcb2986464a747d5/syntax/jsx/tmLanguage/JavaScript (JSX).JSON-tmLanguage#L2

Yeah, I'm totally cool with this. FYI: The one thing we can't change is the filename, otherwise SublimeLinter-jsxhint might not work. The lowercased tmLanguage filename is the syntax's name. And SublimeLinter-jsxhint only has `'jsx', 'javascript_jsx', 'javascript (jsx)' listed.
Can I get another :+1: for the rename?

:+1:

Feel free to rename it, please just respond to this ticket with the target rename and I will add it to sublimelinter-jsxhint.

Done. Renamed to JavaScript 6to5

SublimeLinter-JSXHint 1.1.0 now has support for this name.


Add context to ErrorHandler

In order to correlate custom ErrorHandler logging with requests if would be very helpful if the ErrorHandler signature was expanded to include context.Context e.g.
type ErrorHandler func(ctx context.Context, w http.ResponseWriter, message string, statusCode int)

This however is a breaking change so another option could be to expand Options with a ErrorHandlerWithContext field.

Added two example PRs for this.
Ran into the missing context when migration to chi from gin which has a context in the validation middleware:
type ErrorHandler func(c *gin.Context, message string, statusCode int)

There is definitely a need for more info in the error handler.
Context is one such need, but the current matched Route, the Request, and the Request's  Headers — like Accept — are others.
I created a PR (#15) that (I think) addresses @pebo's use-case in this issue but also addresses others, and in a manner that will allow adding other info if such info is found to be needed by others in the future.  Hopefully PR #15 can supersede PRs #13 and #14 since they change error handling but don't address the use-cases that #15 address.

Would love to see this merged! Seems it's waiting on a review from the maintainer.

+1 for this feature.
I agree with @mikeschinkel that it should be not just the context.Context but the whole http.Request. It'd be also really useful to have access to the original error instead of just message string, to be able to match it with errors.Is/As. My use case is to ignore ErrPathNotFound/ErrMethodNotAllowed returned by the FindRounte method. Currently, we have to match the string, which is not perfect.
So I propose the new signature to be:
type ErrorHandler func(r *http.Request, w http.ResponseWriter, err error, statusCode int)

What do you guys think?

@tmzane — Definitely agree that having the original error could be useful. But changing the ErrorHandler signature would break existing code so I am not a fan of that.
Have you looked at PR #15?  I could see it added to ErrorHandlerOpts if #15 is accepted to resolve this PR, #14, my issue (#15) and your issue with error.


Text gets bigger inside Card on Android with Chrome

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
I'm using a Card to put inside some simple text.
If I add more

 in the card body the text of the card title and card body gets bigger.
Tested the issue on Android with Chrome stable (v111.0.5563.57).
Card with 1 paragraph, no issue, expected result:

Card with 3 paragraphs, you can see how the text is slightly bigger in this case:

Reduced test cases
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Bootstrap demo</title>
    <link<EMAIL_ADDRESS>rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous" />

          Card Title

With supporting text below as a natural lead-in to additional content.

With supporting text below as a natural lead-in to additional content.

With supporting text below as a natural lead-in to additional content.

What operating system(s) are you seeing the problem on?
Android
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
5.3.0-alpha1

@media (max-width: 767px) {
body {
font-size: 14px;
}
}
@media (min-width: 768px) {
body {
font-size: 16px;
}
}
try adding this...

Does not solve the issue.

It seems that the issue you're experiencing may be related to the default font-size of the text in the paragraphs. When you add more paragraphs to the card body, the font-size of the text appears to increase slightly, causing the text to appear bigger than expected.
To resolve this, you can add a CSS rule to explicitly set the font-size of the text within the card body. Add the following code to your CSS file:
.card-body p {
font-size: 1rem; /* Or adjust to your desired size */
}
This should set the font-size of all paragraphs within the card body to a consistent size, regardless of how many paragraphs are present.
Regarding the fact that this issue was tested on Android with Chrome stable (v111.0.5563.57), I suggest checking if there are any specific browser-related issues that might be causing this. I recommend testing the issue on other browsers and devices to see if the issue persists.

I just made some more test, no issue on Firefox (111.0) and Edge (110.0.1587.66) on Android 13.
The issue only happen with Chrome (v111.0.5563.57) on Android, no issue with Chrome (111.0.5563.64) on desktop (Linux Mint 21).
One strange thing;
If I set font-size: 1rem as you suggest, the issue still persist, but if I set 1.1rem or more, it works fine.
One more strange thing; The text size increase slightly in card-body AND in card-header too, and the card-header text isn't inside

From the other details you've provided, it appears that the problem is unique to Chrome for Android and might not be connected to the paragraphs' default font size. To fix this, consider increasing the font-size in the CSS rule for the card body by a few pixels over 1rem. The font-size of the text in the card-header can also be specifically changed by adding a separate CSS rule. Testing the code on several devices and browsers can help establish that the issue is unique to Chrome on Android, even though there may not be an easy fix.

It sounds like the issue you're experiencing is caused by a known bug in the Chrome browser for Android, where text inside a card element gets larger as more content is added.
One way to work around this issue is to add a custom CSS rule that sets a fixed font-size for the card element, like this:.
card {
font-size: 1rem;
}
This will ensure that the text inside the card element doesn't get larger as more content is added.


Consider adoptiong a Changelog

Please consider adopting: https://keepachangelog.com/en/1.0.0/
To provide a better history of revisions to crates and interfaces. I've had good success with adopting this practice in the past.

Example in use:
https://github.com/Carter12s/roslibrust/blob/master/CHANGELOG.md

I'm crazzy meant to file this on a different repo. Pay no attention to the lunatic on cold medicine.


Added ArrayConverter

This is helpful when for pipelines where you load the data with dask dataframe, and a downstream task like IncrementalSearch requires a dask array with known chunk sizes.

Alternatively I'll put forward the thought that we try hard to make all objects support dask dataframes and dask arrays without known chunk sizes.  Is there a list of these somewhere?

There's no list, but I could compile one.

we try hard to make all objects support dask dataframes and dask arrays without known chunk sizes.

There are probably places where unknown chunk sizes could be supported without much effort. However, things like https://github.com/dask/dask-ml/blob/b5b6954cbd8a4da89aa4da9612e970a0680290da/dask_ml/model_selection/_split.py#L160 will I think need known sizes (though a clever workaround may be possible). At that point having a way to specify the lengths up-front would be useful.

Closing this in favor of properly handling unknown chunks in more places.


Minor follow-up to WW-5050 changes to ContainerImpl

Minor follow-up to WW-5050 changes to ContainerImpl.

Made isStatic() utility method static, added javadoc comment.
Refactored isNotPublic() into isPublicForReflection() with negation moved
to calling locations.  Also added javadoc comment.
Added final declaration to several variables used in methods.
Added @Override annotation to overridden methods.

Coverage remained the same at 48.553% when pulling ee583c22f1f96b736424b56f7a2c9727cc1fc4af on JCgH4164838Gh792C124B5:WW-5050_Followup into 59e7caf404021b5dd54716ac5a61ce5b9a53f231 on apache:master.

Hello Struts Team.
Taking a second look at the changes to ContainerImpl made in PR #390 the meaning of isNotPublic() was not completely clear based on the method name.  This PR aims to make the intent of the method clearer and make it a "positive state method" like isStatic().
The other changes were just minor ones (finality, missing override annotations and making isStatic() itself static).
The changes are small enough that it seemed reasonable to attach this PR to the existing WW JIRA rather than creating a new one just for it (especially if people don't think the changes are reasonable).


Another Old Mixin Version Crash

using latest vanillafix version 1.0.10-150
crash1

DynamicSurroudings is the culprit.

DynamicSurroundings has fixed it. Coming next update. https://github.com/OreCruncher/DynamicSurroundings/issues/556


EN-949: fix variable validations (patch)

Turns out, this doesn't work. Creating a new PR to fix the syntax

https://github.com/quantum-sec/package-azure-networking/pull/18


Protect the shell with password

Allow changing with passwd

Probably, not requried because the access to the shell is either by physically connecting the cable or with bluetooth activated with the service card.


cant add integration, no error

I had to re-register my AC device in the comfort cloud. It looks perfectly fine in the mobile application, I can control it.
I'm trying to set up the integration again. I enter the login and password (the real one, or an incorrect one), it doesn't give any error, only the "Close" button.
I deleted the integration, downloaded it again, rebooted. Nothing helps.
I set a debug log for the integration in Config, but I don't think it even gets there.
Tried from several places, from several browsers, the situation is the same.

after homeassistant core upgrade successfully added.
can close this.


csv broken?

Christophers-iMac:BitcoinExchangeFH christopherchan$ bitcoinexchangefh -csv -csvpath data/ -instmts subscriptions.ini
Traceback (most recent call last):
File "/usr/local/bin/bitcoinexchangefh", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.6/site-packages/befh/bitcoinexchangefh.py", line 131, in main
ExchangeGateway.init_snapshot_table(db_clients)
File "/usr/local/lib/python3.6/site-packages/befh/exchange.py", line 73, in init_snapshot_table
[0,1], is_ifnotexists=True)
TypeError: create() got multiple values for argument is_ifnotexists
Christophers-iMac:BitcoinExchangeFH christopherchan$ ls data
Christophers-iMac:BitcoinExchangeFH christopherchan$

I have the same problem

I have the same problem (running on Ubuntu server 16):
ubuntu@XXXXX:~/foldername$ bitcoinexchangefh -csv -csvpath data/ -instmts subscriptions.ini
Traceback (most recent call last):
File "/home/ubuntu/.local/bin/bitcoinexchangefh", line 11, in
sys.exit(main())
File "/home/ubuntu/.local/lib/python3.5/site-packages/befh/bitcoinexchangefh.py", line 131, in main
ExchangeGateway.init_snapshot_table(db_clients)
File "/home/ubuntu/.local/lib/python3.5/site-packages/befh/exchange.py", line 73, in init_snapshot_table
[0,1], is_ifnotexists=True)
TypeError: create() got multiple values for argument 'is_ifnotexists'
The SQLite call seems to work perfectly fine though.

Hi,
I have the same problem,
called:
bitcoinexchangefh -csv -csvpath /home/asif/Desktop/ -instmts /home/asif/Desktop/Aurora/BitcoinExchangeFH/subscriptions.ini
fixed it my end, but then I get
2018-08-09 13:00:17,985 - ERROR
[ExchGwGatecoin]
Error in order book: 'module' object has no attribute 'Request'
2018-08-09 13:00:17,990 - ERROR
[ExchGwPoloniex]
Error in order book: 'module' object has no attribute 'Request'
2018-08-09 13:00:17,991 - ERROR
[ExchGwPoloniex]
Error in trades: 'module' object has no attribute 'Request'
2018-08-09 13:00:17,992 - ERROR
[ExchGwBittrex]
Error in order book: 'module' object has no attribute 'Request'
2018-08-09 13:00:17,996 - ERROR
[ExchGwWex]
Error in order book: 'module' object has no attribute 'Request'
2018-08-09 13:00:17,996 - ERROR
[ExchGwWex]
Error in trades: 'module' object has no attribute 'Request'


Steering Wheel Heater On while the APP/car reports off

Please check Services, Known Bug / Issues and Troubleshooting over here first: https://github.com/fuatakgun/kia_uvo/blob/master/README.md
Region and Brand of car
Kia E-Niro EU/netherlands
Version of the integration
2021-04-20 20:41:05.424
Describe the bug
A clear and concise description of what the bug is.
The Steering Wheel Heater = On while the APP/car reports off
Debug logs if an error occurred
E-NIRO Last Update changed to March 30, 2023 at 7:19 PM
7:20:52 PM - 7 minutes ago
E-NIRO Last Update changed to March 30, 2023 at 6:21 PM
6:21:43 PM - 1 hour ago
E-NIRO Steering Wheel Heater turned on
6:21:43 PM - 1 hour ago
E-NIRO Last Update changed to March 30, 2023 at 4:13 PM
4:21:00 PM - 3 hours ago
E-NIRO Steering Wheel Heater turned off
4:21:00 PM - 3 hours ago
E-NIRO Last Update changed to March 30, 2023 at 3:51 PM
3:51:36 PM - 4 hours ago
E-NIRO Last Update changed to March 30, 2023 at 1:34 PM
1:50:51 PM - 6 hours ago
E-NIRO Last Update changed to March 30, 2023 at 11:29 AM
Outlined here: https://github.com/fuatakgun/kia_uvo/blob/master/README.md
To Reproduce
Expected behavior
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context

Am I correct in saying you are on a version from 2 years ago?  Typically they are version numbers note dates.

Haha, my mistake. This is my cars version:

Where is the version ?? Noted that the file dates are 07 oct 2022 17:33:39 GMT

You are on the legacy version.  The new version is a breaking change so make sure you have some time to correct automations or what not.
At this point the old version isn't supported.

Ok. Is the new version pushed via HACS or in the HA as regular intergration?

HACS.

after upgrade (does not show in HACS as regular update) the problem is gone! Thanks for the suggestion


GetSkeletalActionData errors when a controller is InActive or Steam client is not running

When ever I run my Unity project from inside the Unity Editor (2017.4.1f1) using the SteamVR beta (1.1.1), while one of my controllers is powered down or not tracking, this error is thrown 3 times every frame for each inactive controller:

GetSkeletalActionData error (/actions/default/in/SkeletonLeftHand): InvalidHandle handle:<PHONE_NUMBER>037803296
UnityEngine.Debug:LogError(Object)
Valve.VR.SteamVR_Action_Skeleton:UpdateValue(SteamVR_Input_Sources, Boolean) (at Assets/SteamVR/Input/SteamVR_Action_Skeleton.cs:94)
Valve.VR.SteamVR_Input:UpdateSkeletonActions(SteamVR_Input_Sources, Boolean) (at Assets/SteamVR/Input/SteamVR_Input.cs:487)
Valve.VR.SteamVR_Input:UpdateSkeletonActions(Boolean) (at Assets/SteamVR/Input/SteamVR_Input.cs:462)
Valve.VR.SteamVR_Input:LateUpdate() (at Assets/SteamVR/Input/SteamVR_Input.cs:352)
Valve.VR.SteamVR_Behaviour:LateUpdate() (at Assets/SteamVR/Scripts/SteamVR_Behaviour.cs:214)

The same error is thrown when the controllers are active, but the Steam client is not running in the background.
These errors do not appear when using the stable version of SteamVR.

I just checked, and the same errors appear in standalone builds of my application, which is a bit worrying as some of my users might be on the SteamVR beta branch.

Experiencing same issues here!!! +1, what's going on with simple stuff like this can you explain??

Having trouble reproducing this locally but we'll look into it. What headset / controllers are you using?

#202 also refers to the same issue I think

I just checked with the other controllers, and the errors also appear when using Oculus touch or Windows MR controllers.
Interestingly, with the Windows MR controllers, the errors get thrown even when both controllers are active and tracking, probably because they don’t support the skeletal system yet.
Here are the steps needed to reproduce this issue:

Create a new project in Unity (I’m using 2017.4.1f1, but I’m not sure if it makes a difference)
Import the SteamVR plug-in from the Unity Asset Store (I’m NOT using the beta version of the plug-in)
Open the Interactions_Example scene
Make sure one of your controllers is powered down
Start play mode
Errors should appear in the Console window

Can confirm the same thing happens for me with Acer WMR at all times, after following this tutorial for actions:
https://www.youtube.com/watch?v=bn8eMxBcI70

Looks like this is a bug with SteamVR 1.1.0+ beta and the last version of the sdk. Can the people having this issue try the beta version of the plugin and report back? I believe this should be fixed in SteamVR Unity Plugin 2.1.5b2: https://github.com/ValveSoftware/steamvr_unity_plugin/releases/tag/2.1.5

I can confirm the error is gone. I use SteamVR 1.1.3 (no beta btw), and Unity 2018.2.17f1 with the SteamVR Unity Plugin 2.1.5b2.
Some additional things have changed, I suspect that this is intentional, but I am not familiar with the plugin yet. I literally just did the abovementioned tutorial and can say that two things have changed:

The SteamVR_DefaultAction doesn't exist anymore, and
I can access SteamVR_Input._default.Teleport.GetStateDown(SteamVR_Input_Sources.Any) directly, inActions seems to be gone.

It works like a charm but I'm not proficient with the stuff and can't evaluate the severity of 1).

Looks like this is a bug with SteamVR 1.1.0+ beta and the last version of the sdk. Can the people having this issue try the beta version of the plugin and report back? I believe this should be fixed in SteamVR Unity Plugin 2.1.5b2: https://github.com/ValveSoftware/steamvr_unity_plugin/releases/tag/2.1.5

Any idea when a stable release for version 2.1.5 will be available?
I'm using this plug-in in a released project so would like to avoid using beta versions.

I believe we've just fixed this bug with SteamVR beta 1.1.4. Can you check and verify?

Can confirm the issue is solved with SteamVR beta 1.1.4

I get this error too on my build. My build is a hybrid with desktop scenes and VR scenes. The first time I get into the vr scene from the desktop scene it works perfectly but if I exit VR and reenter a second time from the desktop scene it launches these errors:

I also Get this error running from the unity editor but strangely enough it only happens the first time that I run the project and then it doesn't happen again

It’s a SteamVR 2 bug that happens if the controller isn’t on when you first run the app
Sent from my iPhone

On Mar 27, 2019, at 1:49 PM, Mahallon<EMAIL_ADDRESS>wrote:
I also Get this error running from the unity editor but strangely enough it only happens the first time that I run the project and then it doesn't happen again
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

nope. I have the controllers active before I start the unity editor and I can see them in the steamVR loading void before the project loads. It invariably happens the first time that I run the project after opening up Unity. I can run the project 100 times and it won't happen again until I close unity and open it again. When it happens It happens for pose, skeletal, digital, and analog action data for all inputs that are mapped

Not sure then, doesn’t seem to affect builds
On Wed, Mar 27, 2019 at 5:43 PM Mahallon<EMAIL_ADDRESS>wrote:

nope. I have the controllers active before I start the unity editor and I
can see them in the steamVR loading void before the project loads. It
invariably happens the first time that I run the project after opening up
Unity. I can run the project 100 times and it won't happen again until I
close unity and open it again. When it happens It happens for pose,
skeletal, digital, and analog action data for all inputs that are mapped
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/steamvr_unity_plugin/issues/203#issuecomment-477359206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMCpsKfyuoAPAwL6Dj_rwjv2Qkk2DJ8Vks5va-YdgaJpZM4YszkB
.

--
Jaye Moore
<EMAIL_ADDRESS>(917) 470-8950

This still occurs... any hint? I thought this was gone but it again happens every second time I launch a VR scene from a flat desktop scene... using SteamVR 2.20


Running MySQL in the foreground

Using a sandbox, how can I run mysql in the foreground and not as a deamon service?

MySQL Sandbox was not designed for this.


Add ProducerMessage functions for partial type application

When creating ProducerMessages, type inference sometimes fails because there are multiple possible options for F[_] available. This especially happens when multiple cats instances are imported into scope. Without these, however, the type is correctly inferred as Id.
Here are some examples where F[_] cannot be inferred correctly.
import org.apache.kafka.clients.producer.ProducerRecord
import cats.implicits._
import fs2.kafka._

val record = new ProducerRecord("topic", "key", "value")

val passthrough = "passthrough"

ProducerMessage.single(record)

ProducerMessage.multiple(record)

ProducerMessage.passthrough(passthrough)

This pull request adds functions for partial type application, to explicitly specify F[_].
import cats.Id

ProducerMessage.single[Id].of(record)
ProducerMessage.single[Id].of(record, passthrough)

ProducerMessage.multiple[Id].of(record)
ProducerMessage.multiple[Id].of(record, passthrough)

ProducerMessage.passthrough[List].of(passthrough)

Since the key and value types are invariant, and can't generally be inferred for passthrough, they can instead be explicitly specified using withKeyAndValue.
ProducerMessage
  .passthrough[List]
  .withKeyAndValue[String, String]
  .of(passthrough)

The readme example has been updated to use partial type application, because users can be surprised to find that F[_] no longer infers correctly when they import cats instances.

Good improvement. Nice one


About CASIA NIR-VIS 2.0

Thank you very much for your work. I am currently applying for the CASIA NIR-VIS 2.0 data set. What is the general application period? Or is there any other data set recommendation.thk

Thank you for your interest in our work. You can try to get the links of some datasets from here: https://github.com/ZhaoJ9014/face.evoLVe.PyTorch#Data-Zoo


Create 0000-01-02-henryapz.md

I will just add a new file to complete the task

Goood

ddfzdfbzdfh

ddfzdfbzdfh

asdasdasdasd


Needed a favicon for github pages

@CodingSpecies and @AvidCoder101 we need a favicon for this GitHub page:
https://jobream.github.io/List-of-Learning-Resources/

Added favicon icon in assets we need to show it in github pages.


Need to enhance node logic to turn off Wifi based advertising and listening when we don't have a SSID

The issue here is if we are advertising (SSDP is turned on) and we lose our connection to the Wifi AP then what happens to the SSDP code?
Historically when we have lost radios (like bluetooth, e.g. someone went into airplane mode) we would turn off advertising and then restart when it came back automatically at the thaliMobile layer. But we don't have equivalent logic for Wifi. Do we need it?


Cmake error:FindFreetype

Hello, I did not find the *.sln file.
I installed rapidjson with vcpkg, and then encountered the following problems.
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.15/Modules/FindFreetype.cmake:157 (find_package_handle_standard_args)
  CMakeLists.txt:125 (find_package)

but I am sure I has install the freetype library with both 32 and 64bit version using vcpkg.
windows10, vs2019.
Any hints are greatly appreciated

Hi @mingy532,
I doubt that this is a problem with the CMake script since FindFreetype is provided by CMake itself. There are a few things you may want to double-check:

The vcpkg documentation says:

In order to use vcpkg with CMake outside of an IDE, you can use the toolchain file:
cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
cmake --build [build directory]

Make sure you have that CMAKE_TOOLCHAIN_FILE definition or CMake won't be able to find vcpkg packages. If you're using Visual Studio for CMake with the vcpkg integration installed it should add that for you.

If you're still having trouble, you can specify -DUSE_CAIRO=No during configuration to completely disable the Cairo backend and remove the dependency on these packages. The Cairo backend does not perform very well on Windows so you probably won't need it.

Finally, if you really want to have that backend, you can try manually changing the FreeType paths. It's easier to do it in cmake-gui.

On a side note, you may want to also run git submodule update --init --recursive to make sure the tree-sitter plugin builds successfully.

Sorry I don't understand cmake.
Can you tell me what is mentioned here
cmake -B [build directory] -S. -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
cmake --build [build directory]

What format should it be, I tried
cmake -B C:/Users/xxx/Desktop/codepad -S -DUSE_CAIRO=No. -DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake

But an error
CMake Error: No source directory specified for -S

and I don't know where to type the "-DUSE_CAIRO=No"。。

thanks,it work well.


--search --pattern

Can you please point me to documentation on how to specify patterns to use with --search --pattern?

On Windows, it works only with double quotes. Also I got some errors. The following threw NullPointerException:
--pattern "<myList> _:List </myList>"

And the following should have returned one  solution but it didn't:
--pattern "<myList> ListItem(1) </myList>"

However, when I did it like this, it worked:
--pattern "<myList> L:List </myList> requires 1 in L"

OK. This only shows the contents of the list 'L'. But how do I show the whole configuration like what --search does by default?

That's easy. Whenever you specify a variable, its contents are shown in the output. So just surround the pattern with your topmost cell, e.g. <T> and specify a variable like so:
<T> B:Bag <myList> L:List </myList> </T> requires size(L) >Int 0

The contents of B is your whole configuration.


Intel caffe compilation with latest release of dnnl

Is dnnl version v1.2.1 is compatible with intel caffe. I have changed the commit version in mkldnn.commit file to the commit version of the latest release, but I am getting error while compiling intel caffe. I just want to know whether this version of dnnl supports intel caffe or I am missing something.
Thanks in advance for any help/suggestion/discussion.
Some of the compilation errors are like this when I make intel caffe with latest release of dnnl.
./include/caffe/mkldnn_base.hpp: In constructor ‘caffe::CpuEngine::CpuEngine()’:
./include/caffe/mkldnn_base.hpp:74:31: error: ‘cpu’ is not a member of ‘dnnl::engine’
CpuEngine() : _cpu_engine(engine::cpu, 0) {}
^
./include/caffe/mkldnn_base.hpp: In member function ‘caffe::MKLDNNStream& caffe::MKLDNNStream::submit(std::vectordnnl::primitive)’:
./include/caffe/mkldnn_base.hpp:139:73: error: ‘struct dnnl::stream’ has no member named ‘submit’
MKLDNNStream  &submit(std::vector primitives) { _stream->submit(primitives); return *this; }
^
./include/caffe/mkldnn_base.hpp: In member function ‘bool caffe::MKLDNNStream::wait(bool)’:
./include/caffe/mkldnn_base.hpp:143:39: error: no matching function for call to ‘dnnl::stream::wait(bool&)’
bool res = _stream->wait(block);

Hi @manusilp029,
I think Intel Caffe supports only Intel MKL-DNN v0.x. The latest release is v0.21.3 -- you could try using it. I am not aware of any plans to migrate Intel Caffe to DNNL v1.+. I would suggest you to use PyTorch, MxNet, or TensorFlow that have recent DNNL version support.
I deleted you comment in #654 as unrelated to the topic there. The comment there was:

@manusilp029 says:
Hi @lisa0314 and @emfomenk, Can you please suggest me how to use DNNL with intel caffe. I am not  able to compile intel caffe with DNNL. The caffe with the mkldnn  provided with intel is not working when i use my application in multi  threaded scenario. Any help would be appreciated. Please excuse me for any grammatical errors. Thanks in advance.

Hi @emfomenk,
Thanks a lot for your reply. Unfortunately, I cannot change the framework from caffe to anything else. My issue is, mkldnn V 0.x with intel caffe is not working in multi threading environment. I am getting some memory corruption and double free errors. I think there is some issue in old mkldnn version. I am just looking for the explanation about how to use mkldnn in multi threading environment. So my question is,
Can I call mkldnn functions from two threads concurrently?
Thanks in advance.

Can I call mkldnn functions from two threads concurrently?

Only if you build mkl-dnn with MKLDNN_ENABLE_CONCURRENT_EXEC defined (either in CFLAGS or in CMake defines)

Hi @rsdubtso,
I have compiled mkldnn the same way as you are suggesting, But no luck. Will let you know about the issue, now I am working on it.
thanks a lot for ur time.

@manusilp029,
Applications developed with Intel MKL-DNN in general may be developed to be thread safe. IntelCaffe implementation is inherently not thread safe, see https://github.com/intel/caffe/issues/252. If you are locked to IntelCaffe the best course of action is to ask IntelCaffe maintainers for help or implement necessary changes yourself. We cannot comment on the scope of required changes unfortunately.
If you are flexible you may want to try OpenVINO, an Intel supported engine for deep learning model deployment. OpenVINO can run Caffe models with similar or better performance than IntelCaffe and thread safe.
OpenVINO langing page: https://github.com/opencv/dldt
Github: https://github.com/opencv/dldt

Closing due to lack of activity.


Learning Goals: Implement Entities and Database Changes

Checklist

[X] Server: I documented the Java code using JavaDoc style.

Motivation and Context

One part of my bachelor thesis is the implementation of the concept of learning goals. An instructor can define learning goals and connect them to lectures and exercises. Later this will be used to calculate a student's progress in learning goals.
Graphical Representation (ignore lecture content part for this PR)

Description

Implemented necessary entities and their relationships for learning goals
Steps for Testing

Help me by looking at the code and tell me if you notice anything that is wrong concerning JPA best practices

Test Coverage

No testing yet possible as this contains just the entities

Code looks good to me.
Is the LearningGoalRepository reserved for a future PR? I think a very basic implementation of that would fit well in here, too.

I am splitting it up into small PRs that make it easy to review. As I am not sure what querys i really need i decided not to implement any in this PR yet

Will be continued in: https://github.com/ls1intum/Artemis/pull/2178


chore(Init/Order): Rework files

Merge Init.Order.Lemmas and the part of Init.Algebra.Classes about relations into Order.Defs.

[x] depends on: #16022
[x] depends on: #16059

Well at least @digama0 wrote in the header of this file that a rework was needed 🤷

You have a merge conflict; can you merge master, please? Thanks!

@Vierkantor offered to do it, but looks like they're on holiday. Will do it tomorrow evening if they don't beat me to it

Thanks :tada:
bors merge

@jcommelin I am surprised bors goes forward with changes requested.

That looks surprising indeed. Perhaps because the commented lines are now "outdated" (for github's, but perhaps also bors' purposes)?


Features to support Ti50

TODO: Link these to the appropriate issues

MaybeValid<T> at least for T: Sized
FromBytes split from RefFromBytes or NoCell

Note that NoCell doesn't necessarily need to be recursive: Cell<T> can be NoCell even if T isn't

For tpm-rs:

Slice DSTs

Field projection inside Unalign
Over-align Align type

Need a type that doesn't have padding bytes so that you can go from &T -> &Align<T, U>
Need a type that does have padding bytes so that you can construct an Align<T, U> by value

cc @kupiakos

Alyssa, let me know which of these is needed for tpm-rs as opposed to just Ti50.

Triage: @kupiakos Are all of these still needed?

https://github.com/google/zerocopy/issues/1860 applies to "Field projection inside Unalign"
All of these would still be quite useful to various degrees


Hello Team,

Hello Team,
While creating the Standard load balancer backend pool, I can see it's been asking to add the VM's which are aligned with "Standard Public IP".
Not sure, why I'm not able to add the VM's without having and Public IP.
please assist with it.

@MangeshDange , If you deploy a Standard Load balancer and need to add a VM to the backend pool of the LB, then you must make sure you meet the following requirements.

Your VM which you are going to add to the backend pool, should either have Standard Public IP assigned or no IP assigned.

Even then if you are not able to assign, then make sure all the VMs in the availability sets of the VM has no public IP or Standard Public IP.

@MangeshDange , I am closing this issue, tag me if you have any further questions.

@MangeshDange , If you deploy a Standard Load balancer and need to add a VM to the backend pool of the LB, then you must make sure you meet the following requirements.

Your VM which you are going to add to the backend pool, should either have Standard Public IP assigned or no IP assigned.
Even then if you are not able to assign, then make sure all the VMs in the availability sets of the VM has no public IP or Standard Public IP.

@msrini-MSFT : I tried adding the witjout Public IP as well, but NO LUCK.
So is it mandate that, VM's must have the standard PIP which are supposed to be placed under Standard Load Balancer. If yes, then its not mentioned in the documentation.

@MangeshDange , Can you make sure all the VMs which is part of the availability set has no Public IP?

@msrini-MSFT : Nope ,i want to add multiple VM's from same Vnet. (Please exclude Availabilty set/Scale set).

@MangeshDange , It is a constraint. If the availability sets of the VM which you are trying to add to LB has basic SKU public IP, you will not be able to add.

@msrini-MSFT : Wanted to repeat again, I'm trying to add the 2 individual VM's to Load balancer.(Without PIP)
"NOT THE VM's UNDER AVAILABILTY SET nor VMSS".

@MangeshDange , I just tested the same in my lab environment. 2 VMs with no IP address can be added successfully to the backend pool of the Standard LB.
I would suggest you to open a support ticket to get it fixed. It seems to be an issue with your environment


fix(shippers): Add extra matcher for Canada Post

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (which adds functionality)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests
[ ] Documentation update
[ ] Adds a new shipper
[x] Update existing shipper

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:

They added an extra domain name?

I don't see any email in my gmail account with<EMAIL_ADDRESS>I only have some with the new one.
Maybe the address is different for me since I'm in Québec.

Note that the PR has some extra commits now. Maybe a rebase is needed.

Ya they occurred when I changed the base branch, not a problem tho.

Thanks!


Pin requirements to levels from original code

Added flask admin as the example uses that.

Should also resolve https://github.com/cs91chris/flask_autocrud/issues/6