Feature #2358 NAT64 Support

[X] Redmine Issue: https://redmine.pfsense.org/issues/2358
[x] Ready for review

I've looked into this. Looks like there are 3 possible approaches.

Use the Packet Filter (PF) implementation. OpenBSD has implemented this, but after FreeBSD branched from it. It would require porting and re-implementing NAT64 in the FreeBSD branch. I have not looked into how difficult that would be.

Use Tayga as a package. I have installed the FreeBSD build of Tayga and it appears to work fine. It runs in user mode and is fairly independent from the rest of pfSense.

Use IPFW's NAT64 kernal module. IPFW is already installed (I think for Captive Portal? And traffic shaper?) and I have copied ipfw_nat64.ko from FreeBSD 11.3, loaded it, and it also appears to work fine right out of the box.

Went with IPFW (3) as it seems to be the cleanest. A few system-level things I need reviewed though:

The kernal module ipfw_nat64 needs to be added to the build. Edited builder_defaults.sh for this.

A few sysctl settings need to be set. IPFW needs to be enabled as a pfil.

Not that familiar with all the Capture Portal and traffic shaper use cases, so not sure how to test interaction. But did make sure the capture portal rules used a different set of rule numberings.

For UI elements, put them under Firewall -> NAT -> NAT64

For testing this, do make sure you have Firewall -> Rules to allow for the translated traffic.

@nickwhaley 2.4.5 will not get such a big change, please submit PR against master branch, what is today 2.5.0-DEVELOPMENT

Figured out how to setup and test Captive Portal since it also uses ipfw. Looks to be interacting badly, will fix.

Conflicting issues with captive portal fixed.

First an foremost thank you for creating a NAT64 feature!
I tried to install this patch and got an error:
**|diff --git a/tools/builder_defaults.sh b/tools/builder_defaults.sh
|index c46d03a14d2..36070a55a9e 100644
|--- a/tools/builder_defaults.sh
|+++ b/tools/builder_defaults.sh
No file to patch. Skipping...
Hunk #1 ignored at 137.
1 out of 1 hunks ignored while patching builder_defaults.sh
done**
If any one can help that would be great!
This is also my first time using patches do any help would be great ;)

@User-042
builder_defaults.sh is for the tools to build a pfSense release. It will not exist when installed.
If you are applying this patch to an existing pfSense install, you will need to acquire the corresponding FreeBSD version of your pfSense install and copy the /boot/kernal/ipfw_nat64.ko module manually.

How would i go about doing that?

@User-042 https://www.freebsd.org/where.html

IPFW NAT64 kernel support PR:
https://github.com/pfsense/FreeBSD-src/pull/35

It passes traffic only if you set net.inet.ip.fw.nat64_direct_output=1,
from ipfw(8):

net.inet.ip.fw.nat64_direct_output: 0
	     Controls the output method	used by	ipfw_nat64 module:

	     0	     A packet is handled by ipfw twice.	 First time an origi-
		     nal packet	is handled by ipfw and consumed	by ipfw_nat64
		     translator.  Then translated packet is queued via netisr
		     to	input processing again.

	     1	     A packet is handled by ipfw only once, and	after transla-
		     tion it will be pushed directly to	outgoing interface.

see also https://forums.freebsd.org/threads/nat64-with-ipfw-issues.70366/

It should set the prefix netmask in all cases, now if you set it to /32 it will skip it from the command arg:

# /sbin/ipfw -q nat64lsn NAT64_0 create prefix4 <IP_ADDRESS> prefix6 64:ff9b::/96
ipfw: Prefix length required

tested on 2.5.0.a.20200904.1850 with ipfw_nat64 module

It passes traffic only if you set net.inet.ip.fw.nat64_direct_output=1,
from ipfw(8):

net.inet.ip.fw.nat64_direct_output: 0
	     Controls the output method	used by	ipfw_nat64 module:

	     0	     A packet is handled by ipfw twice.	 First time an origi-
		     nal packet	is handled by ipfw and consumed	by ipfw_nat64
		     translator.  Then translated packet is queued via netisr
		     to	input processing again.

	     1	     A packet is handled by ipfw only once, and	after transla-
		     tion it will be pushed directly to	outgoing interface.

see also https://forums.freebsd.org/threads/nat64-with-ipfw-issues.70366/

It must set the prefix netmask in all cases, now if you set it to /32 it will skip it from the command arg:

# /sbin/ipfw -q nat64lsn NAT64_0 create prefix4 <IP_ADDRESS> prefix6 64:ff9b::/96
ipfw: Prefix length required

tested on 2.5.0.a.20200904.1850 with ipfw_nat64 module

@nickwhaley I've committed the chance on builder_defaults.sh to make it to build ipfw_nat64 kernel module on snapshots to it's easier for testing.
Can you please fix the issues mentioned above by @vktg so we can do a final review/testing and get it merged?

@rbgarga Will take a look at that.

@rbgarga Will take a look at that.

@nickwhaley we are working to release 2.5.0 in a near future.  Do you have plans to work on this patch soon? Otherwise I can move redmine ticket to a future release

this is a critical issue for us ipv6 users, please include this in the 2.5.0 release. @nickwhaley @rbgarga

@rbgarga Will push by the end of the week

@vktg Regarding net.inet.ip.fw.nat64_direct_output=1. I am not finding this to be required to pass traffic.
The problem with enabling that is that you no longer can filter any of the NAT64 traffic as all of it bypasses the PF firewall rules with this on (and be firewall software without firewalling). In addition you will loose the ability to NAT44 the output if you have native IPv4 subnets in addition to your NAT64 subnets.
It may be that you need PF firewall rules that match the result AFTER translation (similar to how NAT44 works) or else it will drop it. Please make sure that works to pass traffic for you. I.E. NAT64 64:ff9b::/96 -> <IP_ADDRESS>/24 you need a accept source net <IP_ADDRESS>/24 on the IPv6 side and accept source net 64:ff9b::/96 on the IPv4 side.
If so, I have a few ideas to mitigate that:

Create a bold note in the NAT64 Edit to advise to create firewall rules to allow traffic.
Implicitly allow all NAT64 traffic by automatically generating the rules.
Enable net.inet.ip.fw.nat64_direct_output=1 and loose the complexity of rules on top of translation. But also loose the ability to firewall the NAT64 traffic.

@vktg @rbgarga
Ended up doing combination of A and B. I really didn't want to lose the ability to apply PF firewall rules to this traffic, so net.inet.ip.fw.nat64_direct_output remains OFF. There is a note on the firewall rules required and some implicit rules for outbound nat-ed data.
The issue with /32 rules is also fixed. Should be ready for review.

@vktg @rbgarga
Ended up doing combination of A and B. I really didn't want to lose the ability to apply PF firewall rules to this traffic, so net.inet.ip.fw.nat64_direct_output remains OFF. There is a note on the firewall rules required and some implicit rules for outbound nat-ed data.
The issue with /32 rules is also fixed. Should be ready for review.

Awesome! Thank you!
@vktg can you re-do the tests please?

tested on 2.5.0.a.20201016.1850

The issue with /32 rules is also fixed. Should be ready for review.
Works.

It may be that you need PF firewall rules that match the result AFTER translation (similar to how NAT44 works) or else it will drop it. Please make sure that works to pass traffic for you. I.E. NAT64 64:ff9b::/96 -> <IP_ADDRESS>/24 you need a accept source net <IP_ADDRESS>/24 on the IPv6 side and accept source net 64:ff9b::/96 on the IPv4 side.

Works as expected!
But I found another weird issue - if you put your WAN IP in the IPv4 address field, it blocks any ingress/egress IPv4 traffic on it.
You can't ping any outside IPs from pfSense, Outbound NAT stops working..
Maybe some special rules needed or is this by design?
p.s. optional todo: Diagnostics / NAT64 states (for ipfw nat64lsn all show states)

tested on 2.5.0.a.20201016.1850

The issue with /32 rules is also fixed. Should be ready for review.
Works.

It may be that you need PF firewall rules that match the result AFTER translation (similar to how NAT44 works) or else it will drop it. Please make sure that works to pass traffic for you. I.E. NAT64 64:ff9b::/96 -> <IP_ADDRESS>/24 you need a accept source net <IP_ADDRESS>/24 on the IPv6 side and accept source net 64:ff9b::/96 on the IPv4 side.

Works as expected!
But I found another weird issue - if you put your WAN IP in the IPv4 address field, it blocks any ingress/egress IPv4 traffic on it.
You can't ping any outside IPs from pfSense, Outbound NAT stops working..
Maybe some special rules needed or is this by design?
p.s. optional todo: Diagnostics / NAT64 states (for ipfw nat64lsn all show states)

Thanks for testing this!  Lets wait to hear from @nickwhaley regarding your concerns.

But I found another weird issue - if you put your WAN IP in the IPv4 address field, it blocks any ingress/egress IPv4 traffic on it.

This is by design of the IPFW NAT64 module. Any traffic not matching a NAT64 state on the IPv4 address(s) will be dropped. I imagine that NAT64 cannot be combined with regular IPv4 without possible overlapping states. Not sure anything can be done about that.
But, this can be addressed by either reserving a IPv4 address specifically for NAT64. OR by creating a NAT64 mapping to an internal address range, then create a NAT44 mapping from those addresses to your WAN address.

I've been using this for a few days now (after 2 days of head-scratching at firewall rules) and it seems to work pretty well.
The one thing I think would be an improvement would be an enable log option that sets config log on the ipfw rule. It's something I found myself doing repeatedly after re-applying the nat64 rule in the webui. Having a persistent toggle for it would be great.
Thanks for the

No activity for six months. Is this PR still in progress or should it be closed?

@nickwhaley we are working to remove ipfw from pfSense and if we accept this patch we would add an extra ipfw dependency to be removed soon.  Because of that we can't accept this contribution.  Thank you!

@nickwhaley sad to see this PR closed. Is there any chance of providing some docs on this feature?

@imacks If we could use it then I would. But not when IPFW is being used. This needs to be entirely rewritten first.

@nickwhaley it's a pity. I was trying out this PR but couldn't get it to work as @frebib could. Evidently my understanding of ipfw must be wrong.
I have from ISP WAN pppoe as a:b:c:d::/64 and <IP_ADDRESS>. I configured nat64 a:b:c:d::/96 to <IP_ADDRESS>/16 allow embed private ip. WAN pf rule allow any from <IP_ADDRESS>/16 to LAN network (<IP_ADDRESS>/24) state none. On LAN pf rule allow any from a:b:c:d::/96 state none. Ping from outside to a:b:c:d::c0a8:0101 failed b'cos WAN pf is blocking. ipfw stats shows that it did not filter any packet.
While consolidating to pf is great, having a usable nat64 on pfsense may be many months off. I think many users like me who want to try this PR now would appreciate an example config to get started. Tks!

@imacks This pull request is closed; not months off. The NAT64 module for IPFW is either gone or being removed. IPFW itself is either gone or being removed. PF does not have NAT64 support and moving the NAT64 support from PF in OpenBSD is a large operation that no one is committed to doing. Also, a new UI would have to be made for a different NAT64 implementation regardless, which again, no one is committed to doing.
If you want to run this development version, then there isn't going to be any support for it, if it even still works at all. Would check the PF log to see what is being dropped and make a rule for that. IPFW isn't filtering packets here.


ROX-21995: Add gRPC message size metrics

Description
Quite often we get issues reported where the gRPC message size exceeded a certain predefined limit. The message is quite cryptic and we don't know which message type caused the threshold to be reached.
These metrics aim to:

Provide information when gRPC crashes due to message sizes
Provide understanding of how big messages can be (by type)
Provide metrics that can be alerted on before the threshold is reached

Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change

[ ] Checked metrics from CI runs

Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

high level view: how expensive is size in general?

high level question: how expensive is size in general?

I don't think it's too expensive, it makes calls .Msg() on child message type properties and calculates byte size for primitives.
Also, we are already calling .Size() elsewhere in the send message path in Sensor.


x64 emulation on ARM64 device not working correctly

Microsoft PowerToys version
.35
Running as admin
Yes
Area(s) with issue?
Image Resizer, MD Preview, PowerRename, PowerToys Run, SVG Thumbnail
Steps to reproduce
try to use apps
✔ Expected Behavior
supposed to work
❌ Actual Behavior
nothing zero zui
Other Software
No response
using surface pro x, before shortcuts window was not working but is now.
x64 emulation on surface pro x the following areas i selected do not work at all SVG preview works but not thumbnails.
i was able to get powertoys run to work by  manually opening PowerLauncher.exe in the directory when i enable the powertoys run it will automaticallyt disable it when opening window. also the plugins stick on loading untill i manually open PowerLauncher.exe
i have had no luck on others.  power rename and resizer not showing up in context menu at all.
i can manually open resizer and use the app like that....
. its almost like the hotkeys arnt loading somthing or something prevents context menu actions from being created
PowerToysReport_2021-04-08-11-18-18.zip

also the powertoys run hotkey would not open app untill i used this  command, and i used this command after creating that powertoys report.
takeown /f "C:\Program Files\PowerToys" /r
if you need another report or anything let me know please.

@pb5050.  This is a quirk of actually .NET Core and the fact stuff is mix mode it seems like.  Chatting with @snickler, he figured out a work around:
workaround
If you  include/copy the hostfxr.dll from the specific runtime to the folder of the app, it'll "work"
more background from @snickler
It's a common piece of weirdness when installing x64 .NET Core when ARM64 .NET Core exists. Everything gets installed in the same Program Files directory
When running the exes by itself, it tries to run under the latest SDK/runtime installed. When running dotnet PowerLauncher.exe or dotnet PowerLauncher.dll, it respects the runtimeconfig and attempts to run it as the 3.1.3 runtime.
The BIG ISSUE is that if a newer runtime/SDK was installed before this, it doesn't replace the dotnet.exe.
x64 and ARM64 dotnet.exe's don't co-exist, unfortunately.

Ultimately, i don't think this is something the PT team will fix, we'd rather do the correct fix with #490 and get ARM64 online properly which needs WinUI3 unpackaged support to come in

@pb5050 did that workaround work for you?

im sorry i have been really busy thank you for checking back! what exactly do i need to do lol im kinda computert savy but not to your guys levell lol
you had said
workaround
If you include/copy the hostfxr.dll from the specific runtime to the folder of the app, it'll "work"
what do you mean by runtime and where is this located?

are u refering to this file?
C:\Program Files\dotnet\host\fxr\3.1.13
i copied it into
C:\Program Files\PowerToys
and nothing should i have added a different file or into a diff spot?

Each tool inside the module folder. PT is a suite of apps.

okay so i coppied  the following

and placed it in everyone of these folders.

you can see here colorpicker is starting when i toggle the settlings switch, but it always has worked. you can see its using the .dll in the directory and  you can see its using the right dotnet folders.
My question  is im still getting this.
[2021-04-10 08:53:58.825981] [p-7368] [t-7244] [trace] Starting PowerToys Run from elevated process
[2021-04-10 08:53:58.863981] [p-7368] [t-7244] [error] Failed to start PowerToys Run
is there a build that will give very detailed debug logs? im trying to debug this with process mon and exts, but it would be so nice to have a very thorough log file so i can see whats  that [error] ???

@snickler may have some quick insights here as it was workaround.
Sadly right now we're focused on getting ARM support fully functional versus a workaround.  #490 is our tracked issue for that support

Absolutely that would
Be ideal, but I was just trying to get it half ass going in the meantime  my head hurts
Lol

@pb5050 try this https://github.com/dotnet/sdk/issues/16896#issuecomment-819593547

I will when I get home shouldn't be too long

Please keep us updated!

:)

https://github.com/dotnet/sdk/issues/16896#issuecomment-821995038
@pb5050 read COMPLETELY through the steps I gave on the comment. I explain where it's installed and how that path is set.

This the only error i can see now ......  Does this mean anything to you?

i did the install like you said,  and yes everything is way quicker and way better tbh. that helped everything i think i have tinkered with stuff so much...... It may be somthing i have changed or installed thats the issue now lol..... because it is running way smoother than it ever has. your install method helped big time with the performance, and other apps i had work now lol
i opened the powerlauncher manually and it works and boy is it way snappier than it was before, but its not automatically loading thats the only issue.
im still getting  this
[p-12900] [t-11192] [info] Launcher is enabling
[p-12900] [t-11192] [trace] Starting PowerToys Run from elevated process
[p-12900] [t-11192] [error] Failed to start PowerToys Run
[p-12900] [t-11192] [info] Launcher object is destroying
this is the only file i could find with errors. let me know if anything pops up in youe head im going to go grab somthing to eat lol and take a break.
2021-04-18.txt

see if you can directly launch PT Run via the exe, not through the runner.

i can! the way snickers had ,me edit the registry for that has me thinking  why nbot check my registry  ive done everything else. so i installed a older version of PT and it worked. but everytime i install a newer version it does not work.
HKEY_CURRENT_USER\SOFTWARE\Classes\AppUserModelId\PowerToysRun
ERROR 2
i came up with this in the  registry report. which ive added.  ive been doing some digging and it looks like maybe its my arm64 it confusing PT and leaving keys out. i need to figure out all the keys im missing or whatnot. i think this is the issue  im trying to extract the registry data and install them manually if needed but im having trouble finding a list.

i installed the new Dev build of windows arm everthing is working now, excpet the powerrun on new versions, and svg thumbnails. (which has never worked for me)
the MD and SVG previewpane work but not SVG thumnails.  i can manually load the PTRun , but its not as smooth and has glitches (which native arm will fix)
any ideas on the thumbnails im still tinkering lol

thumbnails could be a few things.  this is something we'd put more debugging into for #490.
sorry :(


Fatal error if no udp threads but using quic

Fatal error if no udp threads but using quic
If proxy.config.http.server_ports contains an entry to allow quic
connections on a given port but there no udp threads ATS used to
silently ignore these connections.
Given that this configuration isn't valid we raise a fatal error.
We also raise a fatal error if quic is listed in server ports but ATS
was built without quic support.

[approve ci]


VPA not detecting OOM

All of this started from a ManagementClusterContainerIsRestartingTooFrequentlyAWS for aws-operator 10.17.0 on argali.
The pods keeps getting killed over and over.
aws-operator-10-17-0-57d7795b7c-tmk9k                             0/1     CrashLoopBackOff   20         153m    <IP_ADDRESS>   ip-172-19-8-183.cn-north-1.compute.internal   <none>           <none>

This is NOT OOMing:
Events:
  Type     Reason       Age                   From     Message
  ----     ------       ----                  ----     -------
  Warning  Unhealthy    60m                   kubelet  Readiness probe failed: Get "http://<IP_ADDRESS>:8000/healthz": dial tcp <IP_ADDRESS>:8000: connect: connection refused
  Warning  BackOff      49m (x110 over 140m)  kubelet  Back-off restarting failed container
  Warning  FailedMount  47m (x2 over 47m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-configmap" : failed to sync configmap cache: timed out waiting for the condition
  Warning  FailedMount  47m (x2 over 47m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-secret" : failed to sync secret cache: timed out waiting for the condition
  Warning  FailedMount  47m (x3 over 47m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-secret" : failed to sync secret cache: timed out waiting for the condition
  Warning  FailedMount  47m (x3 over 47m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-configmap" : failed to sync configmap cache: timed out waiting for the condition
  Normal   Pulled       43m                   kubelet  Container image "registry-intl.cn-shanghai.aliyuncs.com/giantswarm/aws-operator:10.17.0" already present on machine
  Normal   Created      43m                   kubelet  Created container aws-operator
  Normal   Started      43m                   kubelet  Started container aws-operator
  Warning  FailedMount  41m (x3 over 41m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-configmap" : failed to sync configmap cache: timed out waiting for the condition
  Warning  FailedMount  41m (x3 over 41m)     kubelet  MountVolume.SetUp failed for volume "aws-operator-secret" : failed to sync secret cache: timed out waiting for the condition
  Warning  Unhealthy    30m                   kubelet  Liveness probe failed: Get "http://<IP_ADDRESS>:8000/healthz": read tcp <IP_ADDRESS>:40052-><IP_ADDRESS>:8000: read: connection reset by peer
  Warning  Unhealthy    23m                   kubelet  Liveness probe failed: Get "http://<IP_ADDRESS>:8000/healthz": read tcp <IP_ADDRESS>:56122-><IP_ADDRESS>:8000: read: connection reset by peer
  Normal   Pulled       23m (x3 over 36m)     kubelet  Container image "registry-intl.cn-shanghai.aliyuncs.com/giantswarm/aws-operator:10.17.0" already present on machine
  Normal   Created      23m (x3 over 36m)     kubelet  Created container aws-operator
  Normal   Started      23m (x3 over 36m)     kubelet  Started container aws-operator
  Warning  Unhealthy    10m (x2 over 17m)     kubelet  Readiness probe failed: Get "http://<IP_ADDRESS>:8000/healthz": dial tcp <IP_ADDRESS>:8000: connect: connection refused
  Warning  BackOff      63s (x29 over 30m)    kubelet  Back-off restarting failed container

    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Fri, 18 Mar 2022 15:08:31 +0100
      Finished:     Fri, 18 Mar 2022 15:14:49 +0100

The pod is being terminated by the kernel because it reached the memory limit:
[702497.938003] Memory cgroup out of memory: Killed process 2492344 (aws-operator) total-vm:976220kB, anon-rss:238160kB, file-rss:38452kB, shmem-rss:0kB, UID:1000 pgtables:668kB oom_score_adj:997
[702497.948499] oom_reaper: reaped process 2492344 (aws-operator), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

But VPA does not detect that and thus does not scale up resources.
We suspect this is because of cgroups v2 https://github.com/kubernetes/kubernetes/issues/106331
Indeed we have the mentioned error message in the kubelet logs.
This affects all WCs > 17.0.0 and all MCs.
There seems to be an alternative implementation supporting v2 in k8s 1.22: https://kubernetes.io/blog/2021/11/26/qos-memory-resources/

Apparenty, we might have problems with cadvisor as well https://blog.kintone.io/entry/2022/03/08/170206

In general, cgroupsv2 seem to be an alpha feature in 1.22:
As an alpha feature, Kubernetes v1.22 can use the cgroups v2 API to control memory allocation and isolation. This feature is designed to improve workload and node availability when there is contention for memory resources.

took from https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md

VPA requires events with Reason Evicted to exists in order to detect a Pod OOming. There are none in k8s 1.21 when kernel kills the pod.

in anteater/deu01 (1.22.6 with cgroups v1) some pods are in OOMKilled state but still there are no events with Reason = Evicted

Testing on 16.1.2:
    State:          Terminated
      Reason:       OOMKilled
      Exit Code:    137
      Started:      Tue, 22 Mar 2022 16:19:18 +0100
      Finished:     Tue, 22 Mar 2022 16:20:59 +0100

but still no Evicted event. I wonder where it comes from at all...

Acccording to an old comment in an old issue in VPA repo (https://github.com/kubernetes/autoscaler/issues/1574#issuecomment-454129921):
Containers OOMKilled - we detect this as a change of pod status: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/pkg/recommender/input/oom/observer.go#L151
VPA is actively checking for containers whose Terminated reason is OOMKilled:
if containerStatus.LastTerminationState.Terminated != nil &&
containerStatus.LastTerminationState.Terminated.Reason == "OOMKilled" {

so the Event is not important, but I need to understand why the kubelet does not mark the container as OOMKilled.

OK there is nothing we can do as far as I can tell.
Cgroups V2 support is what it is right now and there is no magic flag to make it work better than this.
The bottom line is: VPA is not able to detect OOMs and might end up lowering resources of pods to the point they can't work in an unrecoverable way (if not with manual intervention).

Started a thread in k8s' slack, https://kubernetes.slack.com/archives/C0BP8PW9G/p1647966113673229
it might be a bug in dockershim

This is docker itself not setting the OOMKilled properly: seems not to be a kubernetes problem.
$ docker inspect 412a73ed3f75
...
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            ...

Known containerd bug: https://github.com/containerd/containerd/pull/6323

containerd fix PR is merged

Unfortunately, the fix didn't make it into containerd v1.5.11:

https://github.com/containerd/containerd/commits/release/1.5
https://github.com/containerd/containerd/tree/v1.5.11

Latest Flatcar v3033.2.4 has containerd v1.5.10
This is blocked until there is a Flatcar release with container v1.5.12.

upstream fix released in containerd 1.6.3 1 week ago

Since flatcar is slow to release containerd, we decided to patch VPA and make it circumvent the bug.

Workaround is deployed on all MCs.
Still looking for a way to deploy on WCs without waiting for a new release

Alternatives I can think of for WCs:

Bump the app's version in all involved releases. NO: releases are too old, not safe and against company rules.
Make new platform releases for azure and AWS. OK, but will take time to be delivered everywhere
Create a user-override-apps for every WC. Might be the best solution, but won't work for newly created clusters.

For WCs, we decided to just update the app in next releases and wait for clusters to be upgraded.
For now nothing else we can do, still waiting on flatcar for a proper fix

Still waiting on flatcar to ship containerd 1.5.12 or 1.6.3.
Current beta version is shipping 1.6.6

Flatcar 3227.2.0 released with fixed containerd

Blocked again as flatcar 3227.2.0 has broken networking

3227.2.1 -  testing that release

v18 is with 3227.2.1

We have 3227.2.1 now - Can we close this @whites11 ?

I guess so, yes


Add support for Llama 3.2 vision / Mllama

Feature request
Llama 3.2 vision seems to have a new model type "mllama" which TGI does not natively support. I saw there's an open PR for this (#2585) but wanted to create an issue in case others were searching for this as well.
Also, any expected timeline for when this would be released?
Motivation
transformers >= 4.45.0 supports this, so it seems that TGI should as well.
Your contribution
#2585 is already open.

This took a bit more time because TGI supports mllama with flash kernels without padding so it should end up being much faster than transformers and also alleviates some issues that transformers runs into.


drill: 0.8.1 -> 0.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/fcsonline/drill/releases.
meta.description for drill is: HTTP load testing application inspired by Ansible syntax
meta.homepage for drill is: https://github.com/fcsonline/drill
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.8.2 with grep in /nix/store/nzjzd1bklasw7cif78p8b21xxb43k1my-drill-0.8.2
found 0.8.2 in filename of file in /nix/store/nzjzd1bklasw7cif78p8b21xxb43k1my-drill-0.8.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
drill

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nzjzd1bklasw7cif78p8b21xxb43k1my-drill-0.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A drill https://github.com/r-ryantm/nixpkgs/archive/997b955af1359f4bcb0587efcee8c2bc4a7a5cc6.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nzjzd1bklasw7cif78p8b21xxb43k1my-drill-0.8.2
ls -la /nix/store/nzjzd1bklasw7cif78p8b21xxb43k1my-drill-0.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

drill

Maintainer pings
cc @Br1ght0ne for testing.

Result of nixpkgs-review pr 215470 run on aarch64-darwin 1

1 package built:

drill


select firestore database

Multiple firestore databases in one project is now in preview, it would be very nice to have the option to specify the trigger database

Can you provide more details and screenshots for this request?

Checkout this blog post: https://cloud.google.com/blog/products/databases/manage-multiple-firestore-databases-in-a-project
This is a value that will set when the firestore instance is created
getFirestore(app, 'some-db-name')

@aronsuarez
The provisioning of the function to monitor changes to a database is managed by the firebase team.  They would need to enable the ability to set up one extension to monitor multiple database.  Right now, you can install the extension multiple times to monitor one database per extension.  Have you tried this approach?

@smomin
I know the problem with observing multiple databases, but this isn't what I mean. I speak of installing the extension multiple times, but how can I configure the trigger database?

@aronsuarez
I have posted a question to the Firebase team if the extension is allows to select a trigger.  If there is a path forward, I will get it implemented.

hey @aronsuarez i have created a RC version of the extension.
<EMAIL_ADDRESS>Try it out.

Pushing this feature in v1.1.4.

The extension is currently not using the specified firestore database even after giving the correct database id its still only indexing data from (default)


regarding PORT

In Which Port , it is running .In my case it's neither running on 8080 or any other port,
and also i printout the (addr) from main and it is showing colon ( : )

fixed in https://github.com/appleboy/gin-lambda/commit/7152025255e09b3e7de5ad8cccc267c465924b1e


Initial proposal

My hope is to keep this repo short and simple.
Just a series of systemTests-like tests that download, translate, and build various open-source Java libraries on Travis.

If the build takes a long time, can you set it to run hourly.... or is Travis smart enough to just run it as fast as possible and then skip intermediate builds if there's too many requests.

there's no way to make this repo respond to changes in our core repo.
one of us has to actually run git submodule update && git commit && git push (or similar) to pull new changes from j2objc-gradle.git

Makes sense.
On Wed, Aug 26, 2015 at 8:45 PM Advay Mengle<EMAIL_ADDRESS>wrote:

there's no way to make this repo respond to changes in our core repo.
one of us has to actually run git submodule update && git commit && git
push (or similar) to pull new changes from j2objc-gradle.git
—
Reply to this email directly or view it on GitHub
https://github.com/j2objc-contrib/j2objc-common-libs-e2e-test/pull/1#issuecomment-135281249
.

ptal - rebased

LGTM with slight push back on the emphasis markers


Rail fixes

Remote app improvement and fixes, details in commit logs

Fully initialize new windows
Update local window on any change to size or position from server to address various race conditions
Remove bogus fullscreen toggle support for remote app
Always assign remote app windows a type
Only use visibility rects for XShape support
Change variables to correct signed type per RDP spec
Cleanup how we handle misc. X11 Atoms
Cleanup mouse event handling for local window move/size
Remove the "localWindowOffsetCorr" variables as they are really unneeded and just complicate the logic.
Handle windows that are dragged off the left side of the screen
Handle maximizing/unmaximizing remote app windows correctly

I plan for this PR to supercede PR 2900 from @peterh
I have included his updates and also made more changes to address other rail related issues in the current baseline.

It looks like this build is failing compiling tsmf, which is outside the scope of this change set. So, I suspect it is something unrelated to my changes.

@freerdp-bot test.

As far as I know RAIL it looks good to me.

Also looks good to me. Very nice.


Pod Update for swift 4.2

hi dear
can i ask you update installation of cocoapods for swift 4.2 ?

Hi dear,
https://github.com/RxSwiftCommunity/RxDataSources/releases/tag/3.1.0


[CWS] add config option to skip the timeout when using remote workloadmeta client

What does this PR do?
This PR optimizes the stream operation of the remote workload meta collector, by letting the Recv do its job and removing the DoWithTimeout call.
Each DoWithTimeout call creates a new goroutime, a new timer, and then select on it incurring a huge cost for each Recv Call.
DoWithTimeout is good for unfrequent calls, for example in the tagger where there is a real request/response model. In the case of a stream where we expect a lot of events to go through, this starts to be a bottleneck. Moreover we actually don't really want to have a 10 min timeout, if the connection is still up and the stream flowing we can continue receiving events.
Notebook showing the improvement https://ddstaging.datadoghq.com/notebook/7655823/paul-mar-12-2024-09-52
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Update capability and name for the Crunchy PostgreSQL Operator.

Thanks for this update. Would you also be able to add a couple of examples for the CRs in alm-examples as well as some links to documentation?

Hi Daniel,
I have made the suggested updates and a few more. We don't have any alm-examples just yet, but I can work with the team to try to have something for the upcoming 4.0 release.
Thanks!
Jonathan

Correct me if I'm wrong, but does the channel name field in postgresql.package.yaml need to be updated as well to correspond with the maturity value set to stable  now in the CSV?

Hi John,
You are correct, I missed that! I have updated the commit to reflect that.
Thanks!
Jonathan

Note that bumping the maturity is due to the Operator supporting provision, deletion, backup/restore of Postgres. This has always been the case, but we were under reporting the maturity of this Operator.

@jkatz Could you push a 'dummy' PR? We are currently testing our CI for community-operators, and the only way we know of updating the build is to add changes to the PR. Apologies for the inconvenience.

@SamiSousa Pushed.

Per @robszumski Also wanted to note that the operator does support scaling up/down PostgreSQL instances (which means adding/removing replicas), and failover (manual + automatic) too 😄

Hi! Is there anything else we need to do on our end for this patch? I believe I have incorporated all the requested feedback. Thanks!

@jkatz Could you push another 'dummy' commit? We just merged a fix for the CI issue we were having. Apologies for the inconvenience.

Hi - I wanted to check in to see what else needs to be done on this patch.
Since last checking in, we've rolled out v3.5.2 of the Crunchy PostgreSQL Operator. I'd love to get this one completed so I can then submit the updated version. Thanks!

Thank you!


Propagate provisioning status of a ProvReq into the Workload status

What type of PR is this?

/kind feature
What this PR does / why we need it:
It propagates the message from the Provisioning Request (condition Provisioned = false) into the Workload. The message will contain the expected time for the resources to be provisioned. Exposing this information to the users will allow them to understand why the job is still pending and how long until the resources will be available.
Which issue(s) this PR fixes:

Fixes #1749
Special notes for your reviewer:
Does this PR introduce a user-facing change?

ETA information of Provisioning Requests are now propagated to workloads.

/ok-to-test

Tested the feature end-to-end. I did observe that the workloads get the placeholder message "Provisioning Request wasn't provisioned." when the Provisioned flag was equal to False. The message later changed to "successfully provisioned" when Provisioned changes to True.
As far as I know it is as desired (knowing that the ETA messages are not provided by the DWS yet).
The question remains whether the message should be in Conditions or Admission Checks -- see the above comment.

About 6 weeks back, we were discussing putting this status in Conditions rather than Admission Checks. But looking at it again, I'm not coming up with any drawbacks of Admission Checks. If anything, I'd argue it's nicer to have all ProvReq info in one place (as is implemented in this PR). Are there any reasons to prefer Conditions over Admission Checks that I'm missing Yaroslava Serdiuk Patryk Bundyra?

I think users (data scientists) would like to check Workloads status to understand when it will be admitted / why it's pending, so I would update workload conditions as well.

I don't have a strong preference, but as long as we do not lose any information about ProvReqs I would lean towards keeping it in the Workload.Status.AdmissionChecks field

So, we have two options:

Create a new condition (something like Workload.Conditions.ProvisioningRequestProvisioned) and have the ETA message in there and also in the Workload.Status.AdmissionChecks.
Have the ETA message only in Workload.Status.AdmissionChecks . This is as it is currently implemented; the messages are visible to the users running for example kubectl describe workloads -- @yaroslava-serdiuk do you think it is not enough and we should also add it to Workload.Conditions?

@pajakd I think it's enough for now, let's leave as it is.

/release-note-edit
The message for a ProvisioningRequest being provisioned (which might include an ETA, depending on the implementation) is now propagated to workloads.

/release-note-edit
ProvisioningRequest: Propagate the message for a ProvisioningRequest being provisioned (which might include an ETA, depending on the implementation) to the Workload status


Fix/handle no prefix

🔗 Linked issue
https://github.com/adonisjs/road-to-v6/discussions/39
❓ Type of change

[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Before the change, create-adonisjs was not handling --no- prefix on boolean flags, not allowing to force install and forge git init without prompt.
I'm working on a JetBrains plugin for Adonis and I would like to use officially supported create-adonis tool to initialize project.
📝 Checklist

[x] I have linked an issue or discussion.
[x] I have updated the documentation accordingly.

This test https://github.com/adonisjs/create-adonisjs/actions/runs/6620367349/job/17986024364?pr=1#step:6:43 seems to be failing, can you please look into it?

Thanks for taking out time and working on the PR :)


BrGlamorousEditableLabelLook >> #defaultBackground is not taken into account

In this example, the background is gray instead of green:

Code snippet
BrEditableLabel new
		look: (BrGlamorousEditableLabelLook new
			defaultBackground: (Color green alpha: 0.5);
			glamorousRegularFont; fontSize: 25; bold);
		margin: (BlInsets top: 5 left: 0 bottom: 5 right: 0);
		padding: (BlInsets top: 5 left: 15 bottom: 5 right: 15);
		hFitContentLimited;
		vFitContent;
		text: 'my label'

The default background is properly set:

The default background is properly set:


HHH-12917 HHH-12918 HHH-12919

https://hibernate.atlassian.net/browse/HHH-12917
https://hibernate.atlassian.net/browse/HHH-12918
https://hibernate.atlassian.net/browse/HHH-12919

Merged.


Problem when using ssh-agent with triton profiles

I attempted to use an SSH key loaded into ssh-agent but it gave the following error;
The fingerprint of the SSH key you have registered for your account.
Alternatively, You may enter a local path to a public or private SSH key to
have the fingerprint calculated for you.
keyId: 62:fa:89:bd:86:dc:72:b8:88:04:a3:d9:27:f2:0a:4f

Saved profile "lon1".
Setting up profile "lon1" to use Docker.
triton profile create: error: Failed to parse /Users/foxx/.ssh/mykey as a valid
pem format key: PEM key is encrypted (password-protected). Please use the SSH agent
or decrypt the key.

However SSH agent is loaded and working fine, so I'm not sure how to fix this?
I also tried using a different key format, which didn't work either;
SHA256:aLjTvr6dyqQnycSfDJJqx0S2/4gckTPTTZIAPw8NG6k

Duplicate of https://github.com/joyent/node-triton/issues/108, closing


Feat/cookie page functionality

Good work buddy! Looks much cleaner now IMO.
In addition to the few minor comments I've left for clean-up, there's a bug if you try to accept/reject when you're unauthenticated.
Steps:

Be signed out, with 0 cookies (for auth, or our site, etc.)
Be on homepage (obviously)
Click accept/reject
You're re-directed to DSi
Login
You'll be redirected back to either /cookies/accept or /cookies/reject; but you get a 405 error.
You can navigate back to a proper page (e.g. / or /self-assessment etc.) and clicking the buttons will work at this point at least.

By removing the authorize, the issue with the redirection has been fixed.


notifications: Fix styling for sending group PMs to several people out-of-view

Notice the x being overlapped by the text content in this screenshot:

Reproducer:

Make your Zulip window narrow.
Narrow to a stream.
Use x to compose a PM to a set of several users.
Send the message; Zulip will notify you that the message appeared off-screen.

@timabbott does this look okay -

The problem here is that it should have the same styling as compose_close.

X may be too close to the corner (not sure) but otherwise looks good.  Open
a PR?
On Fri, Dec 21, 2018, 7:08 AM Akash Nimare<EMAIL_ADDRESS>wrote:

@timabbott https://github.com/timabbott does this look okay -
[image: image]
https://user-images.githubusercontent.com/2263909/50348919-2eb31b80-0560-11e9-9b84-f000b8575401.png
[image: image]
https://user-images.githubusercontent.com/2263909/50348954-45f20900-0560-11e9-9db2-d8c26b858f95.png
The problem here is that it should have the same styling as compose_close.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zulip/zulip/issues/11058#issuecomment-449412268, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACnm2poiEZAbHoRrZxt_38NprFzSX0VFks5u7PlogaJpZM4ZVZOQ
.

@zulipbot claim


Extra option under the 'General' tab

OS:
Ubuntu 16.10
Issue Descriptions:
There is an extra option under the 'General' tab, "This allows other applications to interface with GPMDP".
Steps to Reproduce:
Open the desktop settings, switch to the 'General' tab.

I thought this too, and was about to report it, however after diving into the code, it seems that it's just a mislabeled setting. This I believe actually turns on the WebSocket API.


Custom contract handling

Heya,
I am trying to interact with a custom contract (exchange).
Using the CLI eosc all works well, example message:
eosc push message exchange buy '{"buyer":{ "name": "inita", "number": "1516073924"}, "at_price":"5000000000000000", "expiration":"2018-12-31T23:59:59" , "quantity": "100", "fill_or_kill": "0"}' -S exchange -p inita@active

To me it seems the eosjs APIs are not supporting interactions like this yet - or I am using it wrong.
This code:
  const eos = eos.Localnet({
    keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'
  })

  const options = {
    broadcast: true,
    sign: true,
    scope: [
      "exchange"
    ],
    authorization: [{
      "account": "inita",
      "permission": "active"
    }]
  }

  eos
    .contract('exchange', options)
    .then((exchange) => {
      console.log(exchange)
      console.log("initialised exchange")
    })

Throws with
Error: [
    "Missing uint128 in bid.fields.at_price",
    "Missing uint128 in ask.fields.at_price"
]

It seems to interact with the contract (missing fields), which puzzles me. Any ideas?
When I try to send a message directly without using the contract function, I run into a cache issue:
  const msg = {"buyer":{ "name": "inita", "number": "1516073924"}, "at_price":"5000000000000000", "expiration":"2018-12-31T23:59:59" , "quantity": "100", "fill_or_kill": "0"}

  eos.transaction({
    scope: ['inita', 'initb', 'exchange'],
    messages: [
      {
        code: 'exchange',
        type: 'buy',
        authorization: [{
          account: 'inita',
          permission: 'active'
        }],
        data: msg
      }
    ]
  })

results in:
Error: Abi 'exchange' is not cached, call abiAsync('exchange') message.data transaction.messages

I tested with latest stable and eosjs@prerelease (6.1.1)

I need to add the types for encoding numbers larger an 64 bits.  I'm thinking they still use the varint encoding but I'm asking about that..

<EMAIL_ADDRESS>has been published as the latest release .. Let me know if this fixes everything for you..

thx man!


Add import of multi-file unified diff at review creation

Not all source control UI makes it easy to generate unified diff of individual files. For example, SourceTree does not display unified diff, but can export commit patches that use the unified diff format. Each patch may have one or more changed files.
We need the ability to import these patches, and pre-fill the file diff text areas.
Proposed workflow:

Export patch of multiple files from source control UI.
Start creation of new review unit.
Import patch to review unit. This should overwrite any files that have been manually added.
After import, the review unit should have as many files as there are in the patch. The file diff text area for each file should be filled out with the file's diff from the patch. The file name should be filled in with the file name from the diff, if available. The file content should be left blank.

Resolved in #13


make the type in deferred_factory more explicit

This PR makes the template type of deferred_factory_parameter more explicit.
That is,
deferred_factory_paramter<const FactoryType>(..).on(exec) returns shared_ptr<const FactoryType> and
deferred_factory_paramter<FactoryType>(..).on(exec) returns shared_ptr<FactoryType>
not deferred_factory_paramter<FactoryType>(..).on(exec)  returns shared_ptr<const FactoryType>
which is used in File Config such that users can get the non-const LinOpFactory from deferred_factory<LinOpFactory>

perhaps a general question, what is the point of a non-const factory? The generate and access to the parameters is const, so I don't know what can be done with a non-const factory.

When it is const type, users can not change its parameters unless they cast const away.
It is also related to the file config if we would like to move out the exec arguments.
build_from_config().on(exec) should give LinOpFactory like Solver::build().on(exec) not const LinOpFactory
For me, the explicit type should be considered prior to const internal because it directly indicates the return type and the explicit type can still handle the original cases.

Even for a non-const factory, the user can't change the parameters, since they are returned as a const reference. Anyway, I think modifying the parameters of a created factory doesn't fit into our workflow. They would need to create a new factory for that.
But I can still see the sense in changing it, only I think some of the use-cases are not valid.

If we were to turn the parameters from const LinOpFactory to LinOpFactory, we would lose const-correctness in general, because pointers don't preserve constness. So I tend to agree that this might loosen restrictions too much. Also modifying something statically that can be controlled from a config file by runtime seems the wrong approach. Maybe instead modify the parsed config?

the parameters still use the deferred_factory<const LinOpFactory> or  deferred_factory<const CriterionFactory>.
There should not be any changes to the normal factory setup. If you notice something might affect or destroy the constness in setup, I will try to fix that.

@upsj @MarcelKoch I have added tests to check whether the constructor and function can be compiled or not.
The checking for non-compiled function/constructor is only based on the signature, template and SFINAE.
If the compiliation error is in the function/constructor definition, the checking can not detect that.
I can only make the compilation failure for checking the missing allowed input in the original call. (first commit of this branch https://github.com/ginkgo-project/ginkgo/pull/1439/commits/6df7a426bea6dff684308d0d97b2c0e8fc62fd07 and the corresponding failed tests https://gitlab.com/ginkgo-project/ginkgo-public-ci/-/jobs/5403290151)
we use template <typename ... Args> such that the function declaration can allow anything, but it will throw the compiling error when passing vector to deferred_factory_parameters
After main fix, second commit https://github.com/ginkgo-project/ginkgo/pull/1439/commits/eb1aba118f122dd3687b10df53ae84efcd31c5a2 can compile it in https://gitlab.com/ginkgo-project/ginkgo-public-ci/-/jobs/5404992486. After that, it is replaced by the deferred_factory test.
Other than that, I also make mutable out which should stillbe the unintended usage mentioned in https://github.com/ginkgo-project/ginkgo/pull/1336. It's the last commit, so I can also move it to another pull request if needed.
I replace is_base_of ... && (std::is_const<FactoryType>::value || !std::is_const<ConcreteFactoryType>::value) by  is_pointer_convert_to which should be the same. I also reuse the macro in the solver_base.hpp.
Do we put deferred_factory_parameter type into detail?

rebase!

rebase!


Versioned Protos with Data Migration

This PR aims to solve a longstanding issue with our codebase, where changes to the size, indexing, or interpretation of protos completely break the sim for the majority of users, even when these changes are in principle a good idea. To solve this, a version number is introduced for our protos, in the form of a custom option for a placeholder ProtoVersion message. The front-end code then compares this version to the stored version number for any protos it tries to load from local storage or links, and automatically runs up-conversion functions on the old data if they do not match.
The functionality is tested against a "trivial but breaking" proto change where the Stat enum is simply re-ordered so that stats are grouped more intelligently. This has zero impact on core sim results (once the database is regenerated using the new schema), but would previously make the browser sim unusable without fully restoring defaults, since saved target armor values etc. would be incorrectly indexed. On this PR branch, local storage data and old sim links are correctly migrated to the new Stat schema upon a reload, making it possible to do more significant stats revisions in the future without adversely affecting our users.

Looks great, and easy to extend with new stuff!
Will make larger refactorings safer


Health incosistencies fix during nodes addition/removal

NodeAdd and NodeUpdate update the node state for clients so that they
can return the changes when client requests so. If a node was added and
then updated, its old and new version would be on the added list and its
old on the removed list. Instead, we can just update the node on the
added list.
Note that the setNodes() function on pkg/health/server/prober.go first
deletes the removed nodes and then adds the new ones, which means that
the old version of the node would be added and remain as stale on the
health server.
This was found during investigation of issues with inconsistent health
reports when nodes are added/removed from the cluster (e.g., #11532),
and it seems to fix inconsistencies observed a small-scale test I did to
reproduce the issue.
Fixes #11532.

test-me-please

Just re-read through a few times and I get it now :-)

I also wrote a more detailed explanation, hope it helps.

retest-4.9

Filed #12993 to follow up on 4.9 failures, seems like an unrelated issue.

K8s-1.12-Kernel-netnext CI failure Suite-k8s-1.12.K8sServicesTest Checks service across nodes Tests NodePort BPF Tests with direct routing and DSR is a known flaky test, can retry but I'm guessing it'll pass

retest-net-next

4.9 kernel CI failures got worse this time, Up from 22 failures to 71 :thinking: :
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.19-kernel-4.9/304/testReport/

Observed that this is not the only PR to be affected by the 4.9 issues so do not plan to have that block this PR. They also look completely unrelated to the code changes here.


Parse Garmin workout notes

Hi @PabiGamito , are the workout notes added before the activity is saved on Garmin?

In certain cases, and the case I'm interested in I think so. I pulled the fit file from Garmin right after the activity was synced; I didn't edit the activity at all and it had notes from the workout. This was a workout generated as a Garmin daily suggested workout — it was a sprint intervals workout and it had the following notes: "8x0:10@2:35/km".
In any case, would probably be good to properly confirm that this data is available at the time the fit file is processed in the pipeline. Any chance you might be able to suggest a quick and easy way to check this?

Could you send me the original FIT file so I can double check? I need to run the parser with log activated to figure out where the notes are stored. It's binary data, and at the moment I don't have any pointers to the workout notes on the FIT descriptors (you can see the current fields for workouts here).

Just tried parsing my fit file using FitParser's parse function and it seems to be able to extract the workout notes as expected.


Remove dead entries

I just checked a random 1000 entries sample from the 60,000 entries list and got 16% dead/unresolvable entries. This could be stripped to reduce size of the hosts file.
How do you deal with dead entries? Should these be contributed back to the original lists? Or should we implement some process that regularly identifies dead entries and adds them to a dead list? I agree the former is more elegant but I'm not sure how responsible the people maintaining the other lists are.

I believe that would be up to the list curators, but this is quite concerning, as one of the requirements for lists to be part of this project is that they are regularly curated.
Would love to hear @StevenBlack 's thoughts on this

I would be interested in validating domains on my list. First, I use certificate transparency logs to discover subdomains. This works pretty good- but it can also leave me with domains that are either dead, or not publicly accessible. The good thing is since I add domains programmatically, it shouldn't be much harder to add a second step to my script to do a DNS lookup to verify its resolvable. One minor hurdle is that the script would have to do a direct DNS lookup to something like <IP_ADDRESS> - since I often already have the domains blocked before adding them to the list

Ran it again with 10k entries, similar numbers (1666 dead entries). Full list is here https://gist.github.com/jonashaag/bda82d96f2797df2ff7367a52f12a9e6
This is the script I've been using; note that it may contain false positives because it always boils out when nslookup takes longer than 3 seconds.
import random
import subprocess
import time
hosts = [l.strip().replace('\032', ' ').split()[1] for l in open('hosts2').read().splitlines() if l.strip()]
sample = random.sample(hosts, 10000)
nfound = []
for host in sample:
    print(host)
    try:
        subprocess.check_call(['nslookup', host], timeout=3)
    except Exception as e:
        print('not found', host, e)
        nfound.append(host)
print(nfound)
print(len(nfound))

@jonashaag it would be helpful if you could include the source list in the output. Sources are located in data

Sorry can't tell what the 10k sample was but the source list was the main 60,000 entries list https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

Hi @jonashaag we rely on individual list curators to do this.
Offhand, I can probably "disappear" a domain fairly quickly, and reactivate it fairly quickly as well.  I'm talking, minutes, or hours at worse.   Depending on how you check, I can give you a false positive merely by disconnecting the box.  Or merely by editing a zone file.
If I was a trojan or virus author, I would certainly use this tactic.
I'm rather unconcerned with Type I errors, TBH.
Closing.

Steven @StevenBlack did you meant Type II errors ? 🤔😄

@funilrys  Right you are!   Although, in this case, it's whether Ho actually is.


select.h & functions.h: Include order matters

Include order matters for
#include <sqlpp11/select.h>
#include <sqlpp11/functions.h>

as including functions.h before select.h will cause compile issues.
clang-format sorts includes by default.
Is there some easy way to resolve this?

Thanks for the report!
I added a missing include in functions.h. on develop. That did the trick in the minimalist example I tried.


test

test adblockers for bromite

Hi,
this repo should only contain a small set of filter lists that I think are relevant to most people. I will close this PR without merging, but of course feel free to keep your repo up to date :)


Custom CA (PEM or CERT) on Docker Build

Feature description
Currently we are using a Corporate Proxy that requires custom CA Authority to be installed for SSL to work properly, resulting in errors like this one:
Command:
./gradlew buildNativeLambda -Pmicronaut.runtime=lambda

Output:
https://cdn.amazonlinux.com/2/core/2.0/x86_64/76a55ba3ad797033f12ba757bd259d6c315586d38db8c55e6669f36d326b3c1d/repodata/repomd.xml?instance_id=URLError&region=unknown: [Errno 14] curl#60 - "SSL certificate problem: unable to get local issuer certificate"
Trying other mirror.

Is it possible to "inject" a .pem or .cer with Custom CA Authority to be automatically installed?
Thanks

You should be able to tweak the generated file doing something like this:
tasks.named('dockerfileNative') {
    doLast {
    	def dockerFile = destFile.get().asFile
    	def lines = dockerFile.readLines()
    	lines.add(2, "COPY mycert.crt /path/to/mycert")
    	dockerFile.text = lines.join("\n")
    }
}

@melix , can we just add -k to curl and
RUN echo "ssl_verify=false" >> /etc/yum.conf

?

Not sure what you're talking about, there's no curl in default docker files the plugin creates. If there was, I don't think it would be a good idea to disable certificate verification in any case, it's a security issue.
So I would recommend you put your certificate files somewhere in your source tree and add something to install certificates in your docker image. I am unfortunately not a Docker expert so I'm not sure how this is doable in practice, but this link might help.

Update, this worked:
    doLast {
        def dockerFile = destFile.get().asFile
        def lines = dockerFile.readLines()
        lines.add(2, "RUN echo \"sslverify=false\" >> /etc/yum.conf")
        lines[4] = lines[4].replace("-4", "-k -4")
        dockerFile.text = lines.join("\n")
    }

Thanks


[2023-02-08 13:28:49] Downloading update (120,653 of 347,686 KB)...
[2023-02-08 13:28:49] Downloading update (122,371 of 347,686 KB)...
[2023-02-08 13:28:49] Downloading update (124,115 of 347,686 KB)...
[2023-02-08 13:28:49] Downloading update (125,838 of 347,686 KB)...
[2023-02-08 13:28:50] Downloading update (127,574 of 347,686 KB)...
[2023-02-08 13:28:50] Downloading update (128,809 of 347,686 KB)...
[2023-02-08 13:28:50] Downloading update (130,537 of 347,686 KB)...
[2023-02-08 13:28:50] Downloading update (132,263 of 347,686 KB)...
[2023-02-08 13:28:51] Downloading update (133,886 of 347,686 KB)...
[2023-02-08 13:28:51] Downloading update (136,926 of 347,686 KB)...
[2023-02-08 13:28:51] Downloading update (138,730 of 347,686 KB)...
[2023-02-08 13:28:52] Downloading update (140,476 of 347,686 KB)...
[2023-02-08 13:28:52] Downloading update (142,192 of 347,686 KB)...
[2023-02-08 13:28:52] Downloading update (143,929 of 347,686 KB)...
[2023-02-08 13:28:52] Downloading update (145,483 of 347,686 KB)...
[2023-02-08 13:28:53] Downloading update (147,208 of 347,686 KB)...
[2023-02-08 13:28:53] Downloading update (148,876 of 347,686 KB)...
[2023-02-08 13:28:53] Downloading update (150,640 of 347,686 KB)...
[2023-02-08 13:28:53] Downloading update (152,396 of 347,686 KB)...
[2023-02-08 13:28:54] Downloading update (154,108 of 347,686 KB)...
[2023-02-08 13:28:54] Downloading update (155,855 of 347,686 KB)...
[2023-02-08 13:28:54] Downloading update (157,415 of 347,686 KB)...
[2023-02-08 13:28:54] Downloading update (159,143 of 347,686 KB)...
[2023-02-08 13:28:55] Downloading update (160,886 of 347,686 KB)...
[2023-02-08 13:28:55] Downloading update (162,957 of 347,686 KB)...
[2023-02-08 13:28:55] Downloading update (164,649 of 347,686 KB)...
[2023-02-08 13:28:55] Downloading update (166,181 of 347,686 KB)...
[2023-02-08 13:28:56] Downloading update (167,847 of 347,686 KB)...
[2023-02-08 13:28:56] Downloading update (169,588 of 347,686 KB)...
[2023-02-08 13:28:56] Downloading update (171,317 of 347,686 KB)...
[2023-02-08 13:28:56] Downloading update (172,467 of 347,686 KB)...
[2023-02-08 13:28:57] Downloading update (174,042 of 347,686 KB)...
[2023-02-08 13:28:57] Downloading update (175,772 of 347,686 KB)...
[2023-02-08 13:28:57] Downloading update (177,694 of 347,686 KB)...
[2023-02-08 13:28:57] Downloading update (179,248 of 347,686 KB)...
[2023-02-08 13:28:58] Downloading update (180,965 of 347,686 KB)...
[2023-02-08 13:28:58] Downloading update (182,687 of 347,686 KB)...
[2023-02-08 13:28:58] Downloading update (183,910 of 347,686 KB)...
[2023-02-08 13:28:58] Downloading update (185,062 of 347,686 KB)...
[2023-02-08 13:28:59] Downloading update (186,128 of 347,686 KB)...
[2023-02-08 13:28:59] Downloading update (186,934 of 347,686 KB)...
[2023-02-08 13:28:59] Downloading update (187,790 of 347,686 KB)...
[2023-02-08 13:28:59] Downloading update (188,893 of 347,686 KB)...
[2023-02-08 13:29:00] Downloading update (190,085 of 347,686 KB)...
[2023-02-08 13:29:00] Downloading update (191,419 of 347,686 KB)...
[2023-02-08 13:29:00] Downloading update (193,016 of 347,686 KB)...
[2023-02-08 13:29:01] Downloading update (194,191 of 347,686 KB)...
[2023-02-08 13:29:01] Downloading update (195,554 of 347,686 KB)...
[2023-02-08 13:29:01] Downloading update (196,949 of 347,686 KB)...
[2023-02-08 13:29:01] Downloading update (198,289 of 347,686 KB)...
[2023-02-08 13:29:02] Downloading update (199,602 of 347,686 KB)...
[2023-02-08 13:29:02] Downloading update (200,786 of 347,686 KB)...
[2023-02-08 13:29:02] Downloading update (201,877 of 347,686 KB)...
[2023-02-08 13:29:02] Downloading update (202,781 of 347,686 KB)...
[2023-02-08 13:29:03] Downloading update (203,915 of 347,686 KB)...
[2023-02-08 13:29:03] Downloading update (205,123 of 347,686 KB)...
[2023-02-08 13:29:03] Downloading update (206,340 of 347,686 KB)...
[2023-02-08 13:29:03] Downloading update (207,573 of 347,686 KB)...
[2023-02-08 13:29:04] Downloading update (208,716 of 347,686 KB)...
[2023-02-08 13:29:04] Downloading update (209,685 of 347,686 KB)...
[2023-02-08 13:29:04] Downloading update (210,778 of 347,686 KB)...
[2023-02-08 13:29:04] Downloading update (211,790 of 347,686 KB)...
[2023-02-08 13:29:05] Downloading update (212,884 of 347,686 KB)...
[2023-02-08 13:29:05] Downloading update (214,555 of 347,686 KB)...
[2023-02-08 13:29:05] Downloading update (215,441 of 347,686 KB)...
[2023-02-08 13:29:06] Downloading update (216,777 of 347,686 KB)...
[2023-02-08 13:29:06] Downloading update (218,262 of 347,686 KB)...
[2023-02-08 13:29:06] Downloading update (219,658 of 347,686 KB)...
[2023-02-08 13:29:06] Downloading update (221,399 of 347,686 KB)...
[2023-02-08 13:29:07] Downloading update (222,862 of 347,686 KB)...
[2023-02-08 13:29:07] Downloading update (224,240 of 347,686 KB)...
[2023-02-08 13:29:07] Downloading update (225,771 of 347,686 KB)...
[2023-02-08 13:29:07] Downloading update (227,420 of 347,686 KB)...
[2023-02-08 13:29:08] Downloading update (228,985 of 347,686 KB)...
[2023-02-08 13:29:08] Downloading update (230,716 of 347,686 KB)...
[2023-02-08 13:29:08] Downloading update (232,242 of 347,686 KB)...
[2023-02-08 13:29:08] Downloading update (234,011 of 347,686 KB)...
[2023-02-08 13:29:09] Downloading update (235,528 of 347,686 KB)...
[2023-02-08 13:29:09] Downloading update (236,531 of 347,686 KB)...
[2023-02-08 13:29:09] Downloading update (237,653 of 347,686 KB)...
[2023-02-08 13:29:09] Downloading update (238,763 of 347,686 KB)...
[2023-02-08 13:29:10] Downloading update (239,971 of 347,686 KB)...
[2023-02-08 13:29:10] Downloading update (241,259 of 347,686 KB)...
[2023-02-08 13:29:10] Downloading update (242,720 of 347,686 KB)...
[2023-02-08 13:29:10] Downloading update (244,313 of 347,686 KB)...
[2023-02-08 13:29:11] Downloading update (246,029 of 347,686 KB)...
[2023-02-08 13:29:11] Downloading update (247,753 of 347,686 KB)...
[2023-02-08 13:29:11] Downloading update (249,477 of 347,686 KB)...
[2023-02-08 13:29:11] Downloading update (251,032 of 347,686 KB)...
[2023-02-08 13:29:12] Downloading update (252,756 of 347,686 KB)...
[2023-02-08 13:29:12] Downloading update (254,484 of 347,686 KB)...
[2023-02-08 13:29:12] Downloading update (256,211 of 347,686 KB)...
[2023-02-08 13:29:12] Downloading update (257,935 of 347,686 KB)...
[2023-02-08 13:29:13] Downloading update (259,566 of 347,686 KB)...
[2023-02-08 13:29:13] Downloading update (261,308 of 347,686 KB)...
[2023-02-08 13:29:13] Downloading update (262,859 of 347,686 KB)...
[2023-02-08 13:29:13] Downloading update (264,589 of 347,686 KB)...
[2023-02-08 13:29:14] Downloading update (266,513 of 347,686 KB)...
[2023-02-08 13:29:14] Downloading update (267,998 of 347,686 KB)...
[2023-02-08 13:29:14] Downloading update (269,567 of 347,686 KB)...
[2023-02-08 13:29:14] Downloading update (271,206 of 347,686 KB)...
[2023-02-08 13:29:15] Downloading update (272,844 of 347,686 KB)...
[2023-02-08 13:29:15] Downloading update (274,458 of 347,686 KB)...
[2023-02-08 13:29:15] Downloading update (276,064 of 347,686 KB)...
[2023-02-08 13:29:15] Downloading update (277,719 of 347,686 KB)...
[2023-02-08 13:29:16] Downloading update (279,245 of 347,686 KB)...
[2023-02-08 13:29:16] Downloading update (280,702 of 347,686 KB)...
[2023-02-08 13:29:16] Downloading update (282,025 of 347,686 KB)...
[2023-02-08 13:29:16] Downloading update (283,388 of 347,686 KB)...
[2023-02-08 13:29:17] Downloading update (284,613 of 347,686 KB)...
[2023-02-08 13:29:17] Downloading update (285,863 of 347,686 KB)...
[2023-02-08 13:29:17] Downloading update (286,832 of 347,686 KB)...
[2023-02-08 13:29:17] Downloading update (288,123 of 347,686 KB)...
[2023-02-08 13:29:18] Downloading update (289,626 of 347,686 KB)...
[2023-02-08 13:29:18] Downloading update (291,157 of 347,686 KB)...
[2023-02-08 13:29:18] Downloading update (292,638 of 347,686 KB)...
[2023-02-08 13:29:18] Downloading update (294,093 of 347,686 KB)...
[2023-02-08 13:29:19] Downloading update (295,525 of 347,686 KB)...
[2023-02-08 13:29:19] Downloading update (297,020 of 347,686 KB)...
[2023-02-08 13:29:19] Downloading update (298,412 of 347,686 KB)...
[2023-02-08 13:29:19] Downloading update (299,925 of 347,686 KB)...
[2023-02-08 13:29:20] Downloading update (301,407 of 347,686 KB)...
[2023-02-08 13:29:20] Downloading update (302,881 of 347,686 KB)...
[2023-02-08 13:29:20] Downloading update (304,310 of 347,686 KB)...
[2023-02-08 13:29:20] Downloading update (305,762 of 347,686 KB)...
[2023-02-08 13:29:21] Downloading update (307,029 of 347,686 KB)...
[2023-02-08 13:29:21] Downloading update (308,535 of 347,686 KB)...
[2023-02-08 13:29:21] Downloading update (310,054 of 347,686 KB)...
[2023-02-08 13:29:21] Downloading update (311,531 of 347,686 KB)...
[2023-02-08 13:29:22] Downloading update (313,134 of 347,686 KB)...
[2023-02-08 13:29:22] Downloading update (314,613 of 347,686 KB)...
[2023-02-08 13:29:22] Downloading update (316,125 of 347,686 KB)...
[2023-02-08 13:29:22] Downloading update (317,506 of 347,686 KB)...
[2023-02-08 13:29:23] Downloading update (318,985 of 347,686 KB)...
[2023-02-08 13:29:23] Downloading update (320,580 of 347,686 KB)...
[2023-02-08 13:29:23] Downloading update (322,161 of 347,686 KB)...
[2023-02-08 13:29:23] Downloading update (323,705 of 347,686 KB)...
[2023-02-08 13:29:24] Downloading update (325,304 of 347,686 KB)...
[2023-02-08 13:29:24] Downloading update (326,249 of 347,686 KB)...
[2023-02-08 13:29:24] Downloading update (327,794 of 347,686 KB)...
[2023-02-08 13:29:24] Downloading update (329,344 of 347,686 KB)...
[2023-02-08 13:29:25] Downloading update (330,931 of 347,686 KB)...
[2023-02-08 13:29:25] Downloading update (332,426 of 347,686 KB)...
[2023-02-08 13:29:25] Downloading update (333,941 of 347,686 KB)...
[2023-02-08 13:29:25] Downloading update (335,441 of 347,686 KB)...
[2023-02-08 13:29:26] Downloading update (336,578 of 347,686 KB)...
[2023-02-08 13:29:26] Downloading update (338,491 of 347,686 KB)...
[2023-02-08 13:29:27] Downloading update (339,243 of 347,686 KB)...
[2023-02-08 13:29:27] Downloading update (340,151 of 347,686 KB)...
[2023-02-08 13:29:27] Downloading update (341,026 of 347,686 KB)...
[2023-02-08 13:29:27] Downloading update (341,872 of 347,686 KB)...
[2023-02-08 13:29:28] Downloading update (342,750 of 347,686 KB)...
[2023-02-08 13:29:28] Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1.0)
Downloading update (343,630 of 347,686 KB)...
[2023-02-08 13:29:28] Downloading update (344,564 of 347,686 KB)...
[2023-02-08 13:29:28] Downloading update (345,444 of 347,686 KB)...
[2023-02-08 13:29:29] Downloading update (346,357 of 347,686 KB)...
[2023-02-08 13:29:29] Downloading update (347,181 of 347,686 KB)...
[2023-02-08 13:29:29] Downloading update (347,686 of 347,686 KB)...
[2023-02-08 13:29:29] Download Complete.
[2023-02-08 13:29:29] Saving metrics to disk (/home/helena/.local/share/Steam/package/steam_client_metrics.bin)
[2023-02-08 13:29:29] uninstalled manifest found in /home/helena/.local/share/Steam/package/steam_client_ubuntu12 (1).
[2023-02-08 13:29:30] Extracting package...
[2023-02-08 13:30:04] Installing update...
[2023-02-08 13:30:07] Cleaning up...
[2023-02-08 13:30:07] Update complete, launching...
[2023-02-08 13:30:07] Shutdown
steam.sh[2156]: Restarting Steam by request...
steam.sh[2156]: Running Steam on nixos 22.11 64-bit
steam.sh[2156]: STEAM_RUNTIME has been set by the user to: /home/helena/.local/share/Steam/ubuntu12_32/steam-runtime
setup.sh[2600]: Forced use of runtime version for 32-bit libdbusmenu-gtk.so.4
setup.sh[2600]: Forced use of runtime version for 32-bit libgtk-x11-2.0.so.0
setup.sh[2600]: Forced use of runtime version for 32-bit libcurl-gnutls.so.4
setup.sh[2600]: Forced use of runtime version for 32-bit libdbusmenu-glib.so.4
setup.sh[2600]: Forced use of runtime version for 32-bit libcurl.so.4
setup.sh[2600]: Forced use of runtime version for 64-bit libcurl-gnutls.so.4
setup.sh[2600]: Forced use of runtime version for 64-bit libcurl.so.4
setup.sh[2600]: Forced use of runtime version for 32-bit libdbus-1.so.3
run.sh[3164]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[2156]: Steam client's requirements are satisfied
Loaded SDL version 3.0.0-765-gc4db0725e
GetWin32Stats: display was not open yet, good
steamwebhelper.sh[3194]: Runtime for steamwebhelper: defaulting to /home/helena/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[3194]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
Failed to init SteamVR because it isn't installed
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
[2023-02-08 13:30:20] Startup - updater built Jan 31 2023 19:05:55
[2023-02-08 13:30:20] Startup - Steam Client launched with: '/home/helena/.local/share/Steam/ubuntu12_32/steam'
[2023-02-08 13:30:21] Loading cached metrics from disk (/home/helena/.local/share/Steam/package/steam_client_metrics.bin)
[2023-02-08 13:30:21] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2023-02-08 13:30:21] Using the following download hosts for Public, Realm steamglobal
[2023-02-08 13:30:21] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-02-08 13:30:21] Verifying installation...
[2023-02-08 13:30:21] Verification complete
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xeb822790
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xeb821060

(steam:3187): GLib-GObject-CRITICAL **: 13:30:54.162: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(steam:3187): GLib-GObject-CRITICAL **: 13:30:54.163: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
[2023-02-08 13:30:54] Shutdown

You shouldn't have to do that though. hardware.steam.enable enables driSupport32Bit internally. Are you sure you set it and it's active in your config?

I'm totally confused.🥴 Now Steam works for me without hardware.opengl.driSupport32Bit = true;(config)

As I said, hardware.steam.enable does that for you. You should only enable that.
You should also remove those overrides from systemPackages and use overlays rather than packageOverrides for all modifications.

I had the same issue and hardware.opengl.driSupport32Bit = true; fixed steam for me too.
Maybe the setting should be implied by steam being enabled?

@Geometer1729 that is already the case.
https://github.com/NixOS/nixpkgs/blob/5b23d0e51c440e717bec8cdf5fe695b03a12fe43/nixos/modules/programs/steam.nix#L49-L54


"Libertatea" is listed in the drop-down menu

Description:
"Libertatea" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Libertatea" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sat Libertatea, CĂLĂRAȘI (Dichiseni)".


Revise key docs like the home page, setup and contribution

Signed-off-by: Zimu Zheng<EMAIL_ADDRESS>What type of PR is this?
/kind documentation
What this PR does / why we need it:
Revise key docs like the home page, setup and contribution

Revise README.md
Revise homepage doc
Revise quick-start doc
Revise setup docs
Revise contribution docs

/lgtm

/approve


Solution
Eliminate tail-call recursion from stack.

This goes into the JIT plan. #148


fix(es/module): export update expr for bigint

Description:
For bigint,
ident ++ cannot be transformed into ident = ident + 1
export let foo = 1n;

foo++;

BREAKING CHANGE:

Related issue (if exists):

It seems that the export order is not stable.


✨ Add Lark Provider

Add Lark Bot Privider
This is Bot Doc https://www.larksuite.com/hc/zh-CN/articles/360048487736#3. 发送更个性化的消息
This is Message Doc
https://open.larksuite.com/document/ukTMukTMukTM/uADOwUjLwgDM14CM4ATN

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

@AnandChowdhary Please help to check this PR

Looks great!


FEATURE: Add optional update modes

Some users enjoyed the old update model, in which the spoilers would get sent to users ASAP.
The current model is a poll model, where users are notified that there are existing spoilers and must take action to receive them.
While I think the current model should be the default (so as not to surprise any data-restricted users), the old functionality should be maintained for those that want it.
We could simply create a new user column update_mode and have it be a foreign key of some static table (perhaps called update_modes that only has the two current entries). It would get extracted out to the User object and exposed to the update thread when deciding how to update users.
Alternatively, we could create an options JSON blob - this will give us more flexibility when it comes to creating new options but probably be a little less controlled in terms of possible inputs.
Thoughts @robin-pham?

whats easier for you to implement in this codebase?

It's much easier to just put a column in the users table, but its not at all extensible to new modes. I think the only issue with using the JSON1 SQLite extension is having to learn it


Question: Customise dayBuilder to list?

Thanks for this repo, super useful.
I have a particular requirement that I render the day events as a list view, not a month style grid of days, i.e. full width items.
Is there an easy way to change the dayBuilder such that it doesn't force the render of days as a grid, but instead lets me make my own vertical list?
Thanks again.

that's not a feature right now, this is something that could be implemented in the future by exposing a gridDelegate.


Generate ethereum address from public key

It's not secure to use mnemonic on server. It's better to calculate ethereum addresses corresponding to an extended public key.

I'm waiting on a reply in the money-tree repo for some advice on this.  It's a little beyond my knowledge without diving deep into the HD wallet spec. Let's see what they say before I go that route.

I merged a fix for this.


Double Reapeat Playlist Button

There is a second reapeat playlist button with hint: "undefinded" in playlist window.

This is my first bug report here, so if something is missing, just ask!
I don't know if this is settings specific, but it appears in both stable and developer build.

I see the third button as well now, but mine says Autoplay, so maybe Google finally realized the error of their ways in removing autoplay before.

The 2nd button doesn't exist when YC is disabled. Toggling it doesn't seem to do anything either.

The first auto-play button is for repeating the playlist not preventing auto-play of the next video in the playlist. However, the last button that @F43nd1r made a screenshot of is supposed to prevent the auto-play of the next video. This has now been fixed in the latest developer version.
@F43nd1r If you're still experiencing the undefined tooltip then report it again.


How to llama 2 conversion

Do we have any instruction to llama 2 conversion from pytorch to tensorflow?

I cannot feed
model = AutoGPTQForCausalLM.from_quantized(quantized_model_dir, use_cuda_fp16=False,device="cuda:0")
directly into below function
keras_model = nobuco.pytorch_to_keras(
model,
......
)
what should be done here? Thanks!
What should I do to transform it into


[7.x] Improve code readability

Asking a factory to make a view for us would make more sense than asking a view to make a view. These renamings don't affect how the code work, just make our code easier to read and understand.

Class property $view is protected, not private. That means it's a breaking change.

@antonkomarev I just forgot about that. I'm closing this PR now.


set() does not create a nested structure

Perhaps this is expected behaviour, but I do not understand why this does not work:
const obj = {};
mpath.set('a.b', 3, obj);
console.log(obj); // => {}

It returns an empty object {}, while I was expecting it to return { a: { b: 3 } }. Using .get() it works the other way around:
const obj = { a: { b: 3 } };
console.log(mpath.get('a.b', obj)); // => 3

Yeah, it looks like a bug because mpath is an implementation of a MongoDB-like path notation and MongoDB works as you expect.
@vkarpov15 Are there any similar bugs in mongoose?

What is the actual behavior if you do a
mpath.set('a.3.3', 3, obj);
I mean it could be
{"a": { "3": { "3": 3}}}
or
{ "a": [ undefined, undefined, [ undefined, undefined, 3]]}
or
...

@Uzlopak I think mpath should err on the side of consistency with the MongoDB server. So the first one you listed is the "correct" behavior.
MongoDB Enterprise > db.test.insertOne({})
{
	"acknowledged" : true,
	"insertedId" : ObjectId("61ea0ffcf42ebc54036f1abc")
}
MongoDB Enterprise > db.test.count()
1
MongoDB Enterprise > db.test.updateOne({}, { $set: { 'a.3.3': 3 } })
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
MongoDB Enterprise > db.test.findOne()
{
	"_id" : ObjectId("61ea0ffcf42ebc54036f1abc"),
	"a" : {
		"3" : {
			"3" : 3
		}
	}
}
MongoDB Enterprise >

But anyway, I ran into this limitation recently with Mongoose as well. I'll open an issue to track this in Mongoose

@vkarpov15
could be solved like this...
https://github.com/Uzlopak/mpath/commit/1e3b4318c79563041b2d243d420aa426b08c6483


GetRecordById via HTTP POST exception

Describe the bug
Executing a GetRecordById, including the Id element, request via HTTP POST throws an exception with the text: CSW: The Id parameter is missing.
To Reproduce
Steps to reproduce the behavior:
Send a HTTP POST request with a valid Id to your CSW instance, e.g.
<GetRecordById   service="CSW"   version="2.0.2"   xmlns="http://www.opengis.net/cat/csw/2.0.2"    xmlns:gmd="http://www.isotc211.org/2005/gmd"   xmlns:ogc="http://www.opengis.net/ogc"    xmlns:ows="http://www.opengis.net/ows"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">   <Id>yourID</Id>   <ElementSetName>full</ElementSetName> </GetRecordById>
Expected behavior
If the Id element is in the request and is valid, I expect to get a GetRecordByIdResponse instead of an Exception Report

hi, the key is to use the correct id. As an example, consider this record:
https://gpt.geocloud.com/geoportal2/rest/metadata/item/81b64034070743aea455078dbf560c0c/html
its content in the index is this:
https://gpt.geocloud.com/geoportal2/rest/metadata/item/81b64034070743aea455078dbf560c0c?pretty=true
its CSW GetRecordById request is: https://gpt.geocloud.com/geoportal2/csw?request=GetRecordByID&service=CSW&version=2.0.2&id=81b64034070743aea455078dbf560c0c
hope this helps

Hi and thanks for the quick response.
The problem here is that the HTTP POST body is not processed, the HTTP GET request you mentioned is working well. We want/have to provide the HTTP POST method, only providing HTTP GET is not working on the client side

We'll add this to our backlog as an enhancement request.


App crashes in production on first opening

OS Ubuntu
Reproduce: Delete the config folder

Fixed in #210


[GH-1078]: fixed the alignment issue of loading ellipses

Summary
Fix the alignment issue of the loading ellipses
Existing

New

Issue
Fixes https://github.com/mattermost/mattermost-plugin-jira/issues/1078

@raghavaggarwal2308 Updated the file name as per the suggestion, please have a look.

@Kshitij-Katiyar Based on the screenshot it looks like the loading ellipses is still not vertically centered with the text. It's sitting too low. Can we tweak that?

@Kshitij-Katiyar Based on the screenshot it looks like the loading ellipses is still not vertically centered with the text. It's sitting too low. Can we tweak that?

@matthewbirtch @mickmister Sure, here is the new alignment for the ellipses, please have a look.


pypi?

This looks really interesting! Any chance you can put it on pypi so it can get updated automatically?
I may try using this to build CircuitPython. I've been looking for a simple build system for it that isn't make.

PR #6 should take care of all @aappleby needs for uploading Hancho to PyPI if they choose so.

Thanks for the PR, that'll help a lot. I'm not quite ready to upload things to PyPI - I've got some bugs I need to fix that will require rewriting how template expansion works, but after that I think I'll be close to a viable "beta" version. At that point I'll look into PyPI again.


The case sensitive issue when filtering data with string.Contains method in both in memory and SQL Server.

I need EF 7 to generate statements similar to LIKE '%' + str + '%', so I implemented a ContainsTranslator. I also created tests for it. However, the test results were different  when running in memory test and SQL Server test because the string.Contains method is case sensitive in in memory (19 entries) and its translation LIKE '%' + str + '%' is case insensitive in SQL Server (34 entries). How should we address this to pass the test?

@RickyLin - For other operations like this we are currently applying the in-memory filter in addition to the database filter. This means folks get results that are consistent with the CLR behavior of the method/comparison (which is typically what people want). Of course, this means the database may return more rows than are ultimately returned from the LINQ query. If we find that performance is unacceptable in these situations we may have a flag to disable it.

FYI the issue tracking this is https://github.com/aspnet/EntityFramework/issues/474
Let us know if you are thinking about contributing a pull request for this :smile:

@rowanmiller - I think my problem is related to #474. But I'm not trying to solve the escaping issue in my case. :)
By the way I'm not an English native speaker :-( So sorry for misunderstanding if any.
I didn't see an in-memory filter is applied in addition to the database filter. I modified the QueryTestBase.cs, simply replaced "M" with "m" and 12 with 0, then ran the test.
    [Fact]
    public virtual void String_StartsWith_Literal()
    {
        AssertQuery<Customer>(
            cs => cs.Where(c => c.ContactName.StartsWith("m")),
            stateEntryCount: 0);
    }

the EntityFramework.InMemory.FunctionalTests succeeded since all contact names start with "M" but EntityFramework.SqlServer.FunctionalTests failed because the Sql Server returned 12 entries which was correct for Sql Server, it didn't seem an in-memory filter was working on the result Sql Server returned. This can be worked around by that no contact name starts with "m" in test data for now. But I can't take advantage of this workaround in my Contains test method. My point is that whether I can work around the same situation in my Contains test method by this:
the test method in QueryTestBase.cs
    [Fact]
    public virtual void String_Contains_Literal()
    {
        AssertQuery<Customer>(
            cs => cs.Where(c => c.ContactName.Contains("M")),
            stateEntryCount: 19);
    }

so EntityFramework.InMemory.FunctionalTests can succeed.
and in SqlServerQueryTest.cs
    public override void String_Contains_Literal()
    {
        // base.String_Contains_Literal(); // commented out, so it won't check if the entity count is 0

        Assert.Equal(
            @"SELECT [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[CustomerID], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
FROM [Customers] AS [c]
WHERE [c].[ContactName] LIKE '%' + @p0 + '%'",
            Sql);
    }

so EntityFramework.SqlServer.FunctionalTests don't care about the entity count from Sql Server is 34 and just care about the generated sql statement.
If I can do this, I think I can create a pull request so we can make the Contains method of string work in Where clause.

Makes sense, at one point we were actually still applying the in-memory filter after bringing results back from the database for operations such as .Where(c => c.Name == "Fred"), but it looks like that is no longer the case (sorry for the randomization).
@maumar should be able to help you out with how to handle this appropriately in the tests. I'm assuming you probably just want to override the test method in the test class and change the expected result count.

One way of handling this could be adding overloads to AssertQuery that would take two funcs, e.g.
        protected void AssertQuery<TItem>(
            Func<IQueryable<TItem>, IQueryable<object>> productQuery,
            Func<IQueryable<TItem>, IQueryable<object>> oracleQuery,
            bool assertOrder = false,
            int stateEntryCount = 0)
            where TItem : class
        {
            using (var context = CreateContext())
            {
                AssertResults(
                    productQuery(NorthwindData.Set<TItem>()).ToArray(),
                    oracleQuery(context.Set<TItem>()).ToArray(),
                    assertOrder);

                Assert.Equal(stateEntryCount, context.ChangeTracker.Entries().Count());
            }
        }

this way you can provide different query that would produce expected results and compensate for the difference between CLR and sql server (e.g add ToLower() calls in the comparison)

Although this would also require abstracting out the oracleQuery for this particular test between providers, so that for InMemory it does basic filter (case sensitive) and for SqlServer it does case insensitive filter (using the ToLower() etc).

I see we have a pull request for this now, so we can continue any discussion about test patterns on the review of the proposed code.

BTW - @RickyLin thanks for reaching out to us about this one... it's always great to have proactive discussions about things like this before we get a pull request... appreciate it!

merged in 76ad8c149d17ce698333e502d78509be1d4327e6 and b92eb1efa5cb46116197a8dde3d245afb243cab5


Kubernetes 1.10

See #219 for things this changes.
Closes #219.
Closes #171.

PTALA.

Good catch! git rebase --signoff master did the trick.