test: Fix pod cleanup after various tests

See individual commits for more details.
According to the Cilium Ginkgo e2e test docs, All AfterEach statements are executed before all AfterAll statements.
Previously, some of this code was assuming that AfterAll inside a context would run first (to delete pods) and then the AfterEach would run outside the context (to wait for the pods to terminate), then AfterAll outside the context to finally clean up the Cilium pods. The result was that in issue #18447, the next test to run could hit a race condition where pods were deleted but did not fully terminate before Cilium was removed. Cilium ends up getting deleted before all the pods, which means that there is no longer any way to execute the CNI DEL operation for those pods, so they get stuck in Terminating state.
Other parts of the code seemed to just omit the check for whether the pods were correctly terminated or not.
Fix these isseus by moving checks that the test pods are fully terminated into the statements where the pods are deleted.
Fixes: 412e299df74f ("test: Move LRP tests to a separate suite")
Fixes: #18447
Fixes: #18566
Note, I initially marked this for backport to v1.10 based on the first LRP test refactor commit, but left it like this since it seems like it should make the testsuite a bit more robust in general. I don't know if each of the changes will successfully backport to v1.10 or not. If not, we can maybe just drop those changes from the commit. Or we could just decide to avoid backporting the PR to v1.10 altogether.

/test

:joy: of course this PR hits the exact same problem, but from a different test:
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.22-kernel-4.19/251/testReport/junit/Suite-k8s-1/22/K8sUpdates_Tests_upgrade_and_downgrade_from_a_Cilium_stable_image_to_master/
16:20:27  K8sDatapathConfig
16:20:27  /home/jenkins/workspace/Cilium-PR-K8s-1.22-kernel-4.19/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:473
16:20:27    Iptables
16:20:27    /home/jenkins/workspace/Cilium-PR-K8s-1.22-kernel-4.19/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:473
16:20:27      Skip conntrack for pod traffic
16:20:27      /home/jenkins/workspace/Cilium-PR-K8s-1.22-kernel-4.19/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:527

Am I approaching this the wrong way? Should we be making sure all of the tests clean up after themselves properly or should we just make sure that the first test in each test group gets the environment back into a good state?

Am I approaching this the wrong way? Should we be making sure all of the tests clean up after themselves properly or should we just make sure that the first test in each test group gets the environment back into a good state?

(Thanks GH for not refreshing the PR comments when I'm reviewing)
To be honest I kinda assumed that every test was already supposed to clean up after itself, unless a test suite is specifically designed with environment being kept around for several tests in a row (in which case the suite should clean up). So I was convinced your approach would be right...

To be honest I kinda assumed that every test was already supposed to clean up after itself, unless a test suite is specifically designed with environment being kept around for several tests in a row (in which case the suite should clean up). So I was convinced your approach would be right...

I think this is basically a decision we have to make :-) Note that this approach can be right, but the same class of bug is present elsewhere in the testsuite. The failure that happened here is not the exact same test or conditions as the one I reported in #18447, since the previous test was in K8sDatapathConfig, not K8sLRPTests.
The likelihood of this failure is based on (1) removing and redeploying Cilium, (2) race conditions between deleting app pods and starting the next test, and (3) how many different test files there are (because if a bug like this is caused by incorrect ordering between AfterEach() at the top level of the file and AfterAll() inside a context, then the bug only triggers wherever the AfterEach() happens at the wrong time, so based on the specific files and the probability of running a particular file after a test that doesn't clean up after itself correctly.
Maybe we just need to apply the same fix to K8sDatapathConfig and then we're done. I guess I'll just look over the other test files and look for a similar pattern.

/test

GitHub shenanigans -- CI image builds did not trigger. Closing and re-opening to force retrigger all actions.

/test

/test

Hit the same sort of problem again in K8sUpdates: https://jenkins.cilium.io/job/Cilium-PR-K8s-1.22-kernel-4.19/313/testReport/Suite-k8s-1/22/K8sUpdates_Tests_upgrade_and_downgrade_from_a_Cilium_stable_image_to_master/
The reason here is that in commit c18cfc874620163769f0f66863b1c15962d25e1f , we tried to re-deploy DNS pods after we reconfigure endpointRoutes mode in Cilium, however depending on a race condition in the testsuite (whether Cilium actually shuts down first or the DNS pods do), we may end up waiting forever for the coredns pods to terminate, but Cilium is no longer running and therefore can't handle the cleanup.
I think the solution may be to just scale the number of DNS pods down to 0, then uninstall Cilium, then scale it up during the K8sDatapathConfig and K8sCustomCalls suites' Afterall() functions.
=====
Hit a different problem with K8sVerifier failing, but this also looks like a test leakage issue this time from K8sBandwidthTest leaving netperf client pods lying around after completing. I've filed #18540 to track that one.
Also hit https://github.com/cilium/cilium/pull/17182.

/test-1.22-4.19

I don't yet know whether this PR is making the first problem I mentioned in the above comment more likely, or it's already present and this PR doesn't affect it. I guess we'll get at least one more round of feedback on that. Then we can either try to deal with the first issue above in this PR or in a subsequent separate PR. Seems like it will likely need backporting the same as https://github.com/cilium/cilium/commit/c18cfc874620163769f0f66863b1c15962d25e1f, so that probably motivates doing a dedicated separate PR for that one to separate it from the rest of the changes in this PR.

Seems like there's still potentially some issue specifically with this PR and the cleanup after K8sVerifier. I'll investigate.

Didn't yet figure out why the verifier test is failing on Cilium-PR-K8s-1.22-kernel-4.19, but I suspect it's because K8sDatapathConfig is not properly cleaning up after itself. Unfortunately the helpers in the tree aren't providing detail about which pods are still terminating, so I've just added an extra commit on top to improve the debug output when the current failure occurs. Will kick off the same test again to try to get more info.

/test-1.22-4.19

/test-1.22-4.19

/test

k8s-1.16-kernel-4.9 hit #18060, which blocked the whole run.
test-runtime Hit two peculiar problems:
(1) RuntimePolicies TestsEgressToHost Tests egress with CIDR+L4 policy to external https service failed to contact <IP_ADDRESS>. Looking into the monitor.log file in the test artifacts, Cilium hands the echo requests to the stack, and the stack has a default route pointing out of the node. So Cilium seems to be doing the right thing, it just doesn't receive any response from Cloudflare. This PR doesn't change any related code, and I see no other reports in the issues of similar behaviour. Infra issue? :shrug:
(2) RuntimePrivilegedUnitTests Run Tests  hit this:
	 flag provided but not defined: -check.vv
	 Usage of /tmp/go-build534159421/b001/prog_test.test:
	   -test.bench regexp
	     	run only benchmarks matching regexp
	   -test.benchmem
	     	print memory allocations for benchmarks
	   -test.benchtime d
	     	run each benchmark for duration d (default 1s)
	   -test.blockprofile file
	     	write a goroutine blocking profile to file
	   -test.blockprofilerate rate
	     	set blocking profile rate (see runtime.SetBlockProfileRate) (default 1)
	   -test.count n
	     	run tests and benchmarks n times (default 1)
	   -test.coverprofile file
	     	write a coverage profile to file
	   -test.cpu list
	     	comma-separated list of cpu counts to run each test with
	   -test.cpuprofile file
	     	write a cpu profile to file
	   -test.failfast
	     	do not start new tests after the first test failure
	   -test.list regexp
	     	list tests, examples, and benchmarks matching regexp then exit
	   -test.memprofile file
	     	write an allocation profile to file
	   -test.memprofilerate rate
	     	set memory allocation profiling rate (see runtime.MemProfileRate)
	   -test.mutexprofile string
	     	write a mutex contention profile to the named file after execution
	   -test.mutexprofilefraction int
	     	if >= 0, calls runtime.SetMutexProfileFraction() (default 1)
	   -test.outputdir dir
	     	write profiles to dir
	   -test.paniconexit0
	     	panic on call to os.Exit(0)
	   -test.parallel n
	     	run at most n tests in parallel (default 4)
	   -test.run regexp
	     	run only tests and examples matching regexp
	   -test.short
	     	run smaller test suite to save time
	   -test.shuffle string
	     	randomize the execution order of tests and benchmarks (default "off")
	   -test.testlogfile file
	     	write test action log to file (for use only by cmd/go)
	   -test.timeout d
	     	panic test binary after duration d (default 0, timeout disabled)
	   -test.trace file
	     	write an execution trace to file
	   -test.v
	     	verbose: print additional output
	 FAIL	github.com/cilium/cilium/test/test_results/RuntimePolicies_TestsEgressToHost_Tests_egress_with_CIDR+L4_policy_to_external_https_service/run/cilium/bpf/tests/prog_test	0.016s
	 FAIL
	 make: Leaving directory '/home/vagrant/go/src/github.com/cilium/cilium'

Stderr:
 	 make: *** [Makefile:138: tests-privileged] Error 1

I don't understand why this would occur on this PR and not elsewhere (master seems green). The Makefile line is the line where we iterate through all of the test packages where there are privileged tests. The check.vv parameter is a flag to gocheck, so plausibly if we removed gocheck from some test recently then this could explain it, but I see no such evidence in git logs.  It's also odd that the directory for running these unit tests is under the directory for the previous failing test, could the previous failing test somehow have inadvertently triggered this failure by triggering the privileged tests from the wrong directory? :shrug:
All other tests passed, despite previous failures :thinking: . I guess I'll just re-trigger CI again to go fishing for more failures.

/test

:shrug: Hit a bug earlier on, introduced debugging code, now the whole testsuite passes:
https://jenkins.cilium.io/job/Cilium-PR-K8s-GKE/7414/
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.16-kernel-4.9/633/
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.21-kernel-5.4/321/
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.22-kernel-4.19/340/
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.23-kernel-net-next/270/
https://jenkins.cilium.io/job/Cilium-PR-Runtime-net-next/1088/
I don't think the bug I observed ealier has anything specifically to do with this PR, but I'd like to catch it in the wild before merging this PR if I can. I'll give it another one or two shots and if I can't repro then I'll just mark this ready for another round of review / merging.

/test

net-next job: Seems to have raced against the build/tag of the images so the whole run failed:
18:07:08  + curl --silent -f -lSL https://quay.io/api/v1/repository/cilium/cilium-ci/tag/e8e6c17a30f9932d7f6d96c99f4f7e28448ea456/images
18:07:08  curl: (22) The requested URL returned error: 404

test-1.22-4.19 job seems to have failed in a beforeall in one of the K8sServicesTests where Cilium was stuck in terminating state:
First failed test. Pulling the sysdump, we can't get logs from the "terminating" container because of a lack of route available to the k8s2 node..?
Error from server: Get "https://<IP_ADDRESS>:10250/containerLogs/kube-system/cilium-hzhqt/cilium-agent?timestamps=true": dial tcp <IP_ADDRESS>:10250: connect: no route to host

Previous test was K8sServicesTest Checks service across nodes Tests NodePort BPF Tests with vxlan with L7 policy Tests NodePort with L7 Policy, which seemed to pass successfully without anything unusual going on. I've filed #18604 in case this shows up again, but right now it just seems like weird spontaneous loss of k8s2 VM in CI environment.

/test-1.22-4.19

test-1.23-net-next

/test-1.23-net-next

I picked out a few problems from the most recent two failures:

K8sBandwidth, K8sCustomCalls were skipping the Context rather than Describe, so some of the test prep code could run, which seemed unnecessary
K8sCustomCalls test could fail to completely clean up DNS after itself
The debug code I added earlier in this patch to find out which pods aren't cleaned up would just print timestamps instead of pod names.

The latest push of the PR addresses the above with the following diff on top of the prior version (Mostly addressed by the new patches on the top of the branch):
diff --git a/test/helpers/kubectl.go b/test/helpers/kubectl.go
index e94be73c6527..549a12ad4346 100644
--- a/test/helpers/kubectl.go
+++ b/test/helpers/kubectl.go
@@ -310,6 +310,10 @@ type Kubectl struct {
 	// ciliumOptions is a cache of the most recent configuration options
 	// used to install Cilium via CiliumInstall().
 	ciliumOptions map[string]string
+
+	// nDNSReplicas is the number of replicas for DNS pods in the cluster.
+	// Stored via kub.ScaleDownDNS(), used by kub.ScaleUpDNS().
+	nDNSReplicas int
 }

 // CreateKubectl initializes a Kubectl helper with the provided vmName and log
@@ -2047,11 +2051,62 @@ iteratePods:
 	}
 }

-// RedeployDNS deletes the kube-dns pods and does not wait for the deletion
-// to complete. Useful to ensure that the pods are recreated after datapath
-// configuration changes.
-func (kub *Kubectl) RedeployDNS() *CmdRes {
-	return kub.DeleteResource("pod", "-n "+KubeSystemNamespace+" -l "+kubeDNSLabel)
+func (kub *Kubectl) setDNSReplicas(nReplicas int) *CmdRes {
+	res := kub.ExecShort(fmt.Sprintf("%s get deploy -n %s -l %s -o jsonpath='{.items[*].metadata.name}'", KubectlCmd, KubeSystemNamespace, kubeDNSLabel))
+	if !res.WasSuccessful() {
+		return res
+	}
+
+	// kubectl -n kube-system patch deploy coredns --patch '{"spec": { "replicas":1}}'
+	name := res.Stdout()
+	spec := fmt.Sprintf("{\"spec\": { \"replicas\":%d}}", nReplicas)
+	return kub.ExecShort(fmt.Sprintf("%s patch deploy -n %s %s '%s'", KubectlCmd, KubeSystemNamespace, name, spec))
+}
+
+// ScaleDownDNS reduces the number of pods in the cluster performing kube-dns
+// duties down to zero. May be reverted by calling ScaleUpDNS().
+func (kub *Kubectl) ScaleDownDNS() *CmdRes {
+	cmd := fmt.Sprintf("%s get deploy -n %s -l %s -o jsonpath='{.items[*].status.replicas}'", KubectlCmd, KubeSystemNamespace, kubeDNSLabel)
+	res := kub.ExecShort(cmd)
+	if !res.WasSuccessful() {
+		ginkgoext.Failf("Unable to retrieve DNS pods to scale down, command '%s': %s", res.GetCmd(), res.OutputPrettyPrint())
+		return res
+	}
+
+	n, err := strconv.Atoi(res.Stdout())
+	if err != nil {
+		ginkgoext.Failf("Failed to retrieve DNS replicas via '%s': %s", res.GetCmd(), err)
+		res.success = false
+		res.err = err
+		return res
+	}
+	kub.nDNSReplicas = n
+
+	res = kub.setDNSReplicas(0)
+	if !res.WasSuccessful() {
+		ginkgoext.Failf("Unable to scale down DNS pods, command '%s': %s", res.GetCmd(), res.OutputPrettyPrint())
+	}
+	return res
+}
+
+// ScaleUpDNS restores the number of replicas for kube-dns to the number
+// prior to calling ScaleDownDNS(). Must be called after ScaleDownDNS().
+func (kub *Kubectl) ScaleUpDNS() *CmdRes {
+	res := kub.setDNSReplicas(kub.nDNSReplicas)
+	if !res.WasSuccessful() {
+		ginkgoext.Failf("Unable to scale down DNS pods, command '%s': %s", res.GetCmd(), res.OutputPrettyPrint())
+	}
+	return res
+}
+
+// redeployDNS deletes the kube-dns pods and does not wait for the deletion
+// to complete.
+func (kub *Kubectl) redeployDNS() *CmdRes {
+	if res := kub.ScaleDownDNS(); !res.WasSuccessful() {
+		return res
+	}
+
+	return kub.ScaleUpDNS()
 }

 // RedeployKubernetesDnsIfNecessary validates if the Kubernetes DNS is
@@ -2070,7 +2125,7 @@ func (kub *Kubectl) RedeployKubernetesDnsIfNecessary(force bool) {
 	}

 	ginkgoext.By("Restarting Kubernetes DNS (-l %s)", kubeDNSLabel)
-	res := kub.RedeployDNS()
+	res := kub.redeployDNS()
 	if !res.WasSuccessful() {
 		ginkgoext.Failf("Unable to delete DNS pods: %s", res.OutputPrettyPrint())
 	}
@@ -2208,7 +2263,7 @@ func (kub *Kubectl) WaitTerminatingPodsInNsWithFilter(ns, filter string, timeout
 			where = "-n " + where
 		}
 		res := kub.ExecShort(fmt.Sprintf(
-			"%s get pods %s %s -o jsonpath='{.items[*].metadata.deletionTimestamp}'",
+			"%s get pods %s %s -o jsonpath='{.items[?(.metadata.deletionTimestamp!=\"\")].metadata.name}'",
 			KubectlCmd, filter, where))
 		if !res.WasSuccessful() {
 			innerErr = fmt.Errorf("Failed to connect to apiserver: %w", res.GetError())
@@ -2224,7 +2279,7 @@ func (kub *Kubectl) WaitTerminatingPodsInNsWithFilter(ns, filter string, timeout
 		nTerminating := len(podsTerminating)
 		kub.Logger().WithField("Terminating pods", nTerminating).Info("List of pods terminating")
 		if nTerminating > 0 {
-			innerErr = fmt.Errorf("Pods are still terminating:\n%s", podsTerminating)
+			innerErr = fmt.Errorf("Pods are still terminating: %s", podsTerminating)
 			return false
 		}
 		return true
diff --git a/test/k8sT/Bandwidth.go b/test/k8sT/Bandwidth.go
index 57ea882dafea..8ef8a02492ff 100644
--- a/test/k8sT/Bandwidth.go
+++ b/test/k8sT/Bandwidth.go
@@ -12,7 +12,7 @@ import (
 	"github.com/cilium/cilium/test/helpers"
 )

-var _ = Describe("K8sBandwidthTest", func() {
+var _ = SkipDescribeIf(helpers.DoesNotRunOnNetNextKernel, "K8sBandwidthTest", func() {
 	var (
 		kubectl        *helpers.Kubectl
 		ciliumFilename string
@@ -39,7 +39,7 @@ var _ = Describe("K8sBandwidthTest", func() {
 		kubectl.CloseSSHClient()
 	})

-	SkipContextIf(helpers.DoesNotRunOnNetNextKernel, "Checks Bandwidth Rate-Limiting", func() {
+	Context("Checks Bandwidth Rate-Limiting", func() {
 		const (
 			testDS10       = "run=netperf-10"
 			testDS25       = "run=netperf-25"
diff --git a/test/k8sT/CustomCalls.go b/test/k8sT/CustomCalls.go
index bc3530a74651..4f48ea942160 100644
--- a/test/k8sT/CustomCalls.go
+++ b/test/k8sT/CustomCalls.go
@@ -17,7 +17,22 @@ import (
 	"github.com/cilium/cilium/test/helpers"
 )

-var _ = Describe("K8sCustomCalls", func() {
+var _ = SkipDescribeIf(func() bool {
+	// Believe it or not, bpftool internally attempts to retrieve
+	// map info before updating a map, but BPF_OBJ_GET_INFO_BY_FD
+	// is not supported on kernel 4.9 (it was introduced in Linux
+	// 4.13). Skip on 4.9 kernels.
+	//
+	// This leaves us with 4.19 and net-next. Coverage should be
+	// identical on the two versions, so just run on net-next.
+	//
+	// Also skip on GKE because we do not have the source of the
+	// custom program available on a node, for the compiler pod to
+	// pick up (although technically, skipping 4.19 kernels already
+	// skips GKE).
+	return helpers.DoesNotRunOnNetNextKernel() ||
+		helpers.RunsOnGKE()
+}, "K8sCustomCalls", func() {

 	var (
 		kubectl *helpers.Kubectl
@@ -54,22 +69,7 @@ var _ = Describe("K8sCustomCalls", func() {
 		kubectl.ValidateNoErrorsInLogs(duration)
 	})

-	SkipContextIf(func() bool {
-		// Believe it or not, bpftool internally attempts to retrieve
-		// map info before updating a map, but BPF_OBJ_GET_INFO_BY_FD
-		// is not supported on kernel 4.9 (it was introduced in Linux
-		// 4.13). Skip on 4.9 kernels.
-		//
-		// This leaves us with 4.19 and net-next. Coverage should be
-		// identical on the two versions, so just run on net-next.
-		//
-		// Also skip on GKE because we do not have the source of the
-		// custom program available on a node, for the compiler pod to
-		// pick up (although technically, skipping 4.19 kernels already
-		// skips GKE).
-		return helpers.DoesNotRunOnNetNextKernel() ||
-			helpers.RunsOnGKE()
-	}, "Basic test with byte-counter", func() {
+	Context("Basic test with byte-counter", func() {

 		var (
 			yaml string
@@ -101,9 +101,11 @@ var _ = Describe("K8sCustomCalls", func() {
 		})

 		AfterAll(func() {
-			deploymentManager.DeleteCilium()
 			deploymentManager.DeleteAll()
-			kubectl.RedeployDNS()
+			kubectl.ScaleDownDNS()
+			ExpectAllPodsTerminated(kubectl)
+			deploymentManager.DeleteCilium()
+			kubectl.ScaleUpDNS()
 		})

 		installPods := func() {
diff --git a/test/k8sT/DatapathConfiguration.go b/test/k8sT/DatapathConfiguration.go
index 1d537103f560..d01c609d66db 100644
--- a/test/k8sT/DatapathConfiguration.go
+++ b/test/k8sT/DatapathConfiguration.go
@@ -44,8 +44,10 @@ var _ = Describe("K8sDatapathConfig", func() {
 	})

 	AfterAll(func() {
+		kubectl.ScaleDownDNS()
+		ExpectAllPodsTerminated(kubectl)
 		deploymentManager.DeleteCilium()
-		kubectl.RedeployDNS()
+		kubectl.ScaleUpDNS()
 		kubectl.CloseSSHClient()
 	})

/test

/test

/test-1.22-4.19

/test-1.23-net-next

/test-1.22-4.19

/test-1.22-4.19

/test-1.23-net-next

/mlh new-flake Cilium-PR-K8s-1.12-kernel-4.19

/test-1.22-4.19

/test-1.23-net-next

/test-1.22-4.19

/test-1.23-net-next

4.19 hit #18634 again => maybe we are introducing this in the PR?

4.19 hit #18634 again => maybe we are introducing this in the PR?

The relevant code changes would be that this PR is removing the "AfterEach" for the overall services test (because of bad ordering of cleanup events), then this PR adds an "AfterAll" in the context where this test fails. The test that fails is the second test in the group.
I can try changing that particular cleanup change for the graceful termination tests to use AfterEach (inside the context, so it runs first).
Looks like this failed in about 2/11 runs above.

I'm hoping that commit https://github.com/cilium/cilium/commit/d4739ad757d8d84dd65302e0e85e985b51198d69 will fix the above issue.

While at it, we should remove this duplicate code that deploys the yaml - https://github.com/cilium/cilium/blob/master/test/k8sT/Services.go#L1639-L1641. I can fix this in a separate PR if you don't want to do it in this PR.

Please do, I'm hoping that this PR is now in a good state to merge & stabilize the tree.

Can you confirm the commit? Might as well double check that too.

The commit is https://github.com/cilium/cilium/pull/18448/commits/30a6d9091d3c224a34bdea2a27e263a6f029020d . I can't confirm it in the commit message unfortunately because github will rewrite the commit shas. Hence I just rearranged the commits to be in order so that this statement would be correct for the next commit. (The only reason for these gymnastics is to prevent introducing the failure into the tree then removing it again, so I moved the commit earlier in the ordering in this branch).

/test

Travis hit pull ratelimit issue, ignoring (prior versions passed successfully and this PR is focused on ginkgo test code which isn't tested by Travis). Everything else passed, the PR has been reviewed, and this fixes a common CI flake on master. Merging.


Is it possible to provide a pre-trained model？

@phybrain Thanks for your interest in our paper. Unfortunately, the original implementation is based on a private codebase that I don’t have access to the data and we are not able to share them to you. This repo is a reimplementation of PICK that you can used to train customized data by youself. Sorry!

I am going to close this issue due to no response. Please feel free to reopen or create a new one if you have more questions.


WebSocketListener.onMessage never called

I am running okhttp 3.0.1 with websocket support on Android 4.3.0 and 4.4.2. My app opens a websocket successfully with the server, which sends messages, but the handler WebSocketListener.onMessage is never invoked on the client side.
The code to set up the webscket is as follows:
Request request = new Request.Builder().url(getWebsocketUrl()).build();
WebSocketCall call = WebSocketCall.create(okHttpClient, request);
call.enqueue(new WebSocketListener() {
    @Override
    public void onOpen(WebSocket webSocket, Response response) {
        log.info("onOpen: Successfully opened websocket: {}", response);
    }

    @Override
    public void onFailure(IOException e, Response response) {
        log.error(String.format("Error opening websocket: %s", response), e);
    }

    @Override
    public void onMessage(ResponseBody message) throws IOException {
        log.info("onMessage: Message {}", message);
        EventDto eventDto = gson.fromJson(message.charStream(), EventDto.class);
        handleEvent(eventDto, subscriber);
        message.close();
    }

    @Override
    public void onPong(Buffer payload) {
        log.info("onPong: Payload {}", payload);
    }

    @Override
    public void onClose(int code, String reason) {
        log.info("Websocket closed ({}): {}", code, reason);
    }
});

The setup code for okhttp itself is as follows:
@Provides
Interceptor getAuthorizationInterceptor(final CredentialsProvider credentialsProvider) {
    return new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            String credentials = credentialsProvider.getUsername() + ":"
                    + credentialsProvider.getPassword();
            String basic =
                    "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
            Request request =
                    chain.request().newBuilder().addHeader("Authorization", basic).build();
            return chain.proceed(request);
        }
    };
}

@Provides
OkHttpClient getHttpClient(
        SSLSocketFactory sslSocketFactory, Interceptor authorizationInterceptor) {
    return new OkHttpClient.Builder()
            .sslSocketFactory(sslSocketFactory)
            .hostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return Objects.equal(hostname, SERVER_IP);
                }
            })
            .addInterceptor(authorizationInterceptor)
            .readTimeout(5, TimeUnit.MINUTES)
            .build();
}

The logs indicate that onOpen is called. There are no further errors. However, onMessage is never called, despite the server having sent messages via the channel.
The client setup does work without problems in my integration tests, which do not run in Android. In that setting the connection to the sever is done without ssl and without the authentication interceptor.
The same OkHttpClient is used to communicate with a REST API on the same server, and this communication works without difficulties. Therefore I do not believe that the problem were a error in the configuration of OkHttpClient.
I'd greatly appreciate any insight you can offer to fix this. Thank you.

One further observation: I have determined that the setup works without problems, also on Android devices, when not using SSL. The SSL setup however works just fine when accessing a REST service on the same server. The problem seems to be the combination of SSL and Websocket.

Not sure if it'll help you, but I've faced similar issue: as soon as connection was established client app sent a message via WebSockets and no messages were then received by the client.
The reason was that backend (Python + Tornado for WebSockets)  was not able to parse the message (little error in client app's serialization) and connection then was not used by the backend anymore, on client app it died after readsocket timeout.
I'd suggest to: log all callbacks, open connection and periodically send pings without sending any messages to the server and check if connection stays alive for a long time and if you receive pongs. If that works fine, then try to trigger backend to send you a message without sending messages from client. If that works fine too then try to send message from client and see what happens with the connection.
Another reason of the problem may be an incorrect implementation of WebSockets on the backend side.

Could you provide an executable test case to demonstrate the problem? This file will get you started:
okhttp-ws-tests/src/test/java/okhttp3/ws/WebSocketCallTest.java

No clear action for us to take here.


Ansible using older access method to GitHub

Hello there!
On October 24th, 2020 at 12:42 (UTC) your application (Ansible - Admins) used an access token (with the User-Agent python-requests/2.14.2) as part of a query parameter to access an endpoint through the GitHub API.
https://api.github.com/user
Please use the Authorization HTTP header instead as using the access_token query parameter is deprecated.
Depending on your API usage, we'll be sending you this email reminder on a monthly basis.
Visit https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param for more information about suggested workarounds and removal dates.
Thanks,
The GitHub Team

This doesn't cause a problem as we are in dire need of replacing our ansible server which is not currently being used as it's old (See #756) ... I don't want to completely remove it until we've got a replacement running, but I'm going to close this on the basis that no specific action will be taken on the old server to mitigate it other than shutting it down at some point.
(Side note: I finally have a bit more time and getting this replaced is near the top of my priority stack)


Does this search forward?

Maybe I'm confused, but this doesn't seem to search forward for me.  The prev only seems to backtrack but not actually look for words past the cursor.
This isn't how JetBrain's cyclic word expansion works.

Sorry for the late reply, next searches from the cursor to the top of the file. prev should do exactly opposite for the cursor to the bottom of the file.

"The prev only seems to backtrack but not actually look for words past the cursor." I see this point, I must have overlooked this since I don't really use this feature, thanks for reporting I'll try to correct this.

I've fixed this issue in the latest commit. Thanks for reporting.


Bug in https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-boost-test-for-cpp?view=vs-2019

In the document, the following code are not correct
#include <boost/test/included/unit_test.hpp\>

It should be
#include <boost/test/included/unit_test.hpp>

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f45fbddc-51f2-1c42-eaf2-f78e6220a9e7
Version Independent ID: 1ce72223-80ab-651a-40f3-dc8112b2a3cf
Content: How to use Boost.Test for C++ - Visual Studio (Windows)
Content Source: docs/test/how-to-use-boost-test-for-cpp.md
Product: visual-studio-windows
GitHub Login: @corob-msft
Microsoft Alias: corob

@zhenxuanjameszhang -- I have updated the documentation and it should be live by tomorrow.

Dear William,
Thanks for your quick response on improving documentation!
Regards,
James

From: William Anton Rohm @.>
Sent: Monday, January 10, 2022 9:16 PM
To: MicrosoftDocs/visualstudio-docs @.>
Cc: James Zhang @.>; Mention @.>
Subject: Re: [MicrosoftDocs/visualstudio-docs] Bug in https://docs.microsoft.com/en-us/visualstudio/test/how-to-use-boost-test-for-cpp?view=vs-2019 (Issue #7519)
@zhenxuanjameszhanghttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzhenxuanjameszhang&data=04|01|jameszhang%40microsoft.com|624438bac62641a97ccb08d9d4c180f0|72f988bf86f141af91ab2d7cd011db47|1|0|637774749832569133|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=jM2UZ7B%2F7rGShOOihq4lW8MSETHg3ivWpOPbQyY7UpY%3D&reserved=0 -- I have updated the documentation and it should be live by tomorrow.
—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fvisualstudio-docs%2Fissues%2F7519%23issuecomment-1009607290&data=04|01|jameszhang%40microsoft.com|624438bac62641a97ccb08d9d4c180f0|72f988bf86f141af91ab2d7cd011db47|1|0|637774749832569133|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=G%2FccoHc2Z3wmKbrO2up3gwXXUbtMeAizdMo6WE9oIiE%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABRAGW5QZ7RBNQK3DD34NEDUVO4KJANCNFSM5LVKIQAA&data=04|01|jameszhang%40microsoft.com|624438bac62641a97ccb08d9d4c180f0|72f988bf86f141af91ab2d7cd011db47|1|0|637774749832619120|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Lag4s4mOUbEmlTpC6KCE%2FJzq3S8weWzaYrXAYKjh18s%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|jameszhang%40microsoft.com|624438bac62641a97ccb08d9d4c180f0|72f988bf86f141af91ab2d7cd011db47|1|0|637774749832619120|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=cT2s0wFW4SXfFNz%2Fz6kkq0ZaokjtreQf93EVRUC2SyQ%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|jameszhang%40microsoft.com|624438bac62641a97ccb08d9d4c180f0|72f988bf86f141af91ab2d7cd011db47|1|0|637774749832619120|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Hw0m3I7CMIS0aRG0ZR5YrFyyRRmibj8bl5CVsEowVi0%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>


Error in solver choice via suggestions

In suggestions.py, if suggest fails to provide a list of suggestions, one should return
[(None, None, DEFAULT_OPTIMIZER.__name__)]
and not
[(None, None, DEFAULT_OPTIMIZER)]
since DEFAULT_OPTIMIZER is not of string type, which is the case if suggestions are provided.

Otherwise, the program seems to fail.

Whoops. Thanks for that. Fixed it.


font-size: max(vw, px) causes internal error

NPM version (npm -v): 6.4.1
Node version (node -v): v10.10.0
Node Process (node -p process.versions):
Node Platform (node -p process.platform): darwin
Node architecture (node -p process.arch): x64
node-sass version (node -p "require('node-sass').info"):

node-sass	4.13.0	(Wrapper)	[JavaScript]
libsass  	3.5.4	(Sass Compiler)	[C/C++]

npm node-sass versions (npm ls node-sass<EMAIL_ADDRESS>
Repro CSS:
h1 { font-size: max(1vw, 20px); }

Error:
[0] {
[0]   "status": 3,
[0]   "message": "Incompatible units: 'vw' and 'px'.",
[0]   "formatted": "Internal Error: Incompatible units: 'vw' and 'px'.\n"
[0] }

It seems legit CSS according to https://developer.mozilla.org/en-US/docs/Web/CSS/max

This is only supported in dart-sass https://sass-lang.com/documentation/syntax/special-functions#min-and-max
You need to use string interpolation (similar to CSS variables) for this to work outside of dart-sass
h1 { font-size: #{"max(1vw, 20px)"}};

Ahh I see.
For posterity, it seems that also calc(max(1vw, 20px)) works.
Closing as a workaround is available (maybe the error message could give some better clues though)

thank you

Best solution: sass is case sensitive, css is not, so MIN(10px, 5vh) will run as css no problem :)
Other solutions, which didn't work for me because of controller/system tests crashing:

unquote("min(10px, 5vh)")
calc(min(10px, 5vh))

For all of the above, any variables need to be wrapped in #{$my-var} brackets

unquote("min(10px, 5vh)")

Best solution: sass is case sensitive, css is not, so MIN(10px, 5vh) will run as css no problem :)
Other solutions, which didn't work for me because of controller/system tests crashing:

unquote("min(10px, 5vh)")
calc(min(10px, 5vh))

For all of the above, any variables need to be wrapped in #{$my-var} brackets

unquote("min(10px, 5vh)") --> solution for me


New official Local API revealed ...

It could be that things are coming more official ... at least to include local devices as controllable devices ...
https://developers.google.com/actions/smarthome/concepts/local

Not sure if I am reading this right, is this new thing via the cloud? Our use case is to open a brand new chromecast and run api calls directly through the REST at port 8008. Do this new api have something like that? Where I can just scan the network and control casts with no pre configuration ? (casts on ethernet, on WiFi  they need configuration)

My understanding is that the new local API is for the GH devices to control other 3rd party devices locally, not for you to be able to control the GH devices locally.

Yeah, as @claytonjn says, this is mostly for different services like IoT device manufacturers like Philips. Any action can be pushed to a device through GH instead of a 3rd party cloud.
This repo is for controlling GH itself, locally.


Parse Khronos metadata (primarily for SupportedApiProfileAttributes and GL/CL groups)

This PR aims to add a lot of XML parsing logic, particularly with regards to the following items:

API Sets: Which features/extensions symbols fall into. We'll use this later to make the SupportedApiProfileAttributes accurate for later consumption by the analyzer that we want to make.
Enum Groups: Creating C# enums from the spec where the associated Khronos header does not have C enums doing this for us.

This PR does not change codegen yet, that will come in a subsequent PR

@curin This is now ready for review.

Is there a reason why do the two "Constant" files have backticks in their names?

That's just my personal style of representing generics in file names (you can see this on main as well). We should decide on one as a team if it's not desirable.

That's just my personal style of representing generics in file names (you can see this on main as well). We should decide on one as a team if it's not desirable.

I never noticed, what I do (and what I thought was the general standard) is to not include the generic in the file name

Yeah I noticed Curin uses an “OfT.cs” suffix, so we all have different styles here haha.


[Flaky Test] OIDC challenge tests pulling live metadata from AAD

Tests like OpenIdConnectChallengeTests.OnRedirectToIdentityProviderEventCanSetState set a test authority to "https://login.microsoftonline.com/common" but don't mock out the backchannel so they download real metadata from AAD and sporadically fail. http://aspnetci/project.html?projectId=XPlat&testNameId=3997679956897486128&tab=testDetails
Change the tests to mock out the backchannel and load a static metadata doc.
@ryanbrandenburg

It primarily fails on Ubuntu
System.InvalidOperationException : IDX20803: Unable to obtain configuration from: 'https://login.microsoftonline.com/common/.well-known/openid-configuration'.
---- System.IO.IOException : IDX20804: Unable to retrieve document from: 'https://login.microsoftonline.com/common/.well-known/openid-configuration'.
-------- System.Net.Http.HttpRequestException : An error occurred while sending the request.
------------ System.Net.Http.CurlException : SSL peer certificate or SSH remote key was not OK
   at Microsoft.IdentityModel.Protocols.ConfigurationManager`1.GetConfigurationAsync(CancellationToken cancel)


Document Django's built-in JSONField

@adamchainz is there any implementation difference between this package and the built-in version by Django? If we migrate to that, will previously-stored data be fine for use?

I have no idea


MInors changes:

Replace with <>
Simplify conditions and avoid extra checks.
Use java array style

Coverage decreased (-1.1%) to 82.662% when pulling 240eb7230d16112c933f2c1618de5faa1e5280c6 on arturobernalg:feature/minor_changes into a9fe614a0d6cd998b3a9e6df5f49f73a1b69b840 on apache:master.


feat: LinearEquiv.congrQuadraticMap and LinearMap.BilinMap.congr₂

LinearEquiv.congrQuadraticMap matches LinearMap.compQuadraticMap, while LinearMap.BilinMap.congr₂ somewhat matches LinearMap.compr₂.
Used in  #14988

I'm not super happy with the naming, but I also don't have any better ideas.
Maybe another reviewer does!
maintainer merge

If we're going to bikeshed over names then another possibility for LinearMap.BilinForm.congr₂ would I guess be LinearMap.BilinForm.congrRight. But I'd be happy to merge either choice.

I think that would be rather confusing, because LinearMap.BilinForm.compRight sounds like it ought to be analogous, but is about the (right) domain rather than the codomain.

@mans0954 Unrelated, but github gives the following warning:

The head ref may contain hidden characters: "mans0954/congr\u2082"

I think it's good to stick to ascii for branch names.

So, is the consensus for LinearMap.BilinForm.congrRight? I've pushed a commit with that.

you get the definition in this PR by swapping LinearMap with BilinMap, not by swapping LinearEquiv with BilinMap.

I'm afraid this has been going on for so long I have no recollection of where I adapted it from now.

@eric-wieser is this what you mean?
https://github.com/leanprover-community/mathlib4/pull/17454/commits/ecc76192283f364be42a44e2885910ff8b26a7d4

Yes, that's what I meant. @jcommelin, are you happy with those?
bors d=@jcommelin

@jcommelin are you able to merge this PR now please?

bors merge


ML: Mobile - filter menu (functionality)

Two changes to the filter menu on mobile to improve UX:

[ ] Update the filter panel to appear full screen and slide up from the bottom of the screen (see gif below). It currently slides in from the left below the app bar, it's a strange UX
[ ] When a user selects a category, sort option or filter option in the menu, an "Apply" button appears fixed to the bottom (see gif below). A user can select one or multiple things and then tap apply which will then update the markets listed and close the modal window

If a user clicks X, it won't apply anything they have selected

Couple of issues:

The Hamburger menu icon is still visible when the filters panel opens. It shouldn't be
When the filters panel is open the header bar with the 'Filters' title and 'X' icon should be fixed in place. The content scrolls underneath.
When I scroll to the bottom of the filters panel, the invalid markets options 'show' is half covered by the Safari menu bar at the bottom of the screen


[doc] Update .gitlab-ci.yml submodule management

Update .gitlab-ci.yml section about submodule management (ref.: Git Submodule Strategy on gitlab-ci documentation).
Procedure tested today on my private repo.

We have moved the Hugo site source to its own repository, so we would appreciate if you could open this PR directly in hugoDocs:  https://github.com/gohugoio/hugoDocs/pulls

Done! PR 262


RenderTargetTexture: Fix render pass ids when resizing the texture

See https://forum.babylonjs.com/t/setmaterialforrendering-not-work-after-resizing-rendertargettexture/41052

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/13889/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13889/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13889/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/13889/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/13889/merge
https://gui.babylonjs.com/?snapshot=refs/pull/13889/merge
https://nme.babylonjs.com/?snapshot=refs/pull/13889/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/13889/merge#BCU1XR#0


Allow opening OS finder at sync download location

https://github.com/microsoft/vscode/issues/192271
Repro:

Run command Developer: Download Settings Sync Activity

I get this notification, but then I had to manually open Windows Explorer and find the folder I selected:

Added Open Folder command only for desktop


LuaJ graphic problems

After I enabled LuaJs compiling to Java bytecode, I got some wierd graphics problems:

The text I type in doesn't show up, and the suggestions for what to type are messed up
Text I print out with print() is fine though

I'm moving this to the LuaJC repo as it is a bug there. I'll post something here once I've actually fixed it.

Fixed in <IP_ADDRESS>


When we called the 'get' method in a modified field on PreUpdate event, it loses value

Preupdate code:
   public function preUpdate(PreUpdateEventArgs $eventArgs)
    {
        $documento = $eventArgs->getDocument();

        if (!$documento instanceof Producto) {
            return;
        }

        $dm = $eventArgs->getDocumentManager();
        $uow = $dm->getUnitOfWork();

        // Actualizamos importes
        if (!is_numeric($documento->getEntrada()->getImportes()->getDescuento())) {
            $documento->getEntrada()->getImportes()->setDescuento(0);
        }
        $documento->getEntrada()->getImportes()->setEuros($documento->getEntrada()->getImportes()->getComprado() - $documento->getEntrada()->getImportes()->getDescuento());

        // Regeneramos el documento
        $meta = $dm->getClassMetadata(get_class($documento));
        $uow->recomputeSingleDocumentChangeSet($meta, $documento);

    }

If we change 'comprado' field value lost new value, but if we remove
$documento->getEntrada()->getImportes()->getComprado()

New value is saved.

@meigallodixital could you transform this into failing test case?

Test class:
<?php

namespace TestProject\ProductoBundle\Tests\Controller;

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;

class DefaultControllerTest extends KernelTestCase
{
	/**
	 * @var \Doctrine\ODM\DocumentManager
	 */
	private $dm;

	/**
	* {@inheritDoc}
	*/
	public function setUp()
	{
		self::bootKernel();
		$this->dm = static::$kernel->getContainer()
			->get('doctrine_mongodb')
			->getManager();
	}

    public function testComprado()
    {
    	$producto = $this->dm->getRepository('ProductoBundle:Producto')->findOneByCodigo('14031700095');
        if (!$producto) {
            throw $this->createNotFoundException($this->get('translator')->trans('producto.no.encontrado'));
        }
        $producto->getEntrada()->getImportes()->setDescuento(0);
        $producto->getEntrada()->getImportes()->setComprado(20);
        $this->dm->flush();
        $this->assertEquals(20, $producto->getEntrada()->getImportes()->getComprado());
        $producto2 = $this->dm->getRepository('ProductoBundle:Producto')->findOneByCodigo('14031700095');
        $this->assertEquals(20, $producto2->getEntrada()->getImportes()->getComprado());
    }
}

'comprado' field initial value: 10.
Asserts: OK (1 test, 2 assertions)
With getComprado() method active on preUpdate:
{
    "entrada" : {
        "importes" : {
            "descuento" : 0,
            "comprado" : 10,
            "euros" : 20
        }
    }
}

With getComprado() method removed on preUpdate:
{
    "entrada" : {
        "importes" : {
            "descuento" : 0,
            "comprado" : 20,
            "euros" : 20
        }
    }
}

If we print comprado value just before  of  $uow->recomputeSingleDocumentChangeSet($meta, $documento); command, it gives 20 in two cases.

[Link to app] (https://drive.google.com/file/d/0B8vL4J3n5FV4OWpCVDRRbEVreUk/view?usp=sharing)
This is an application with a simple form (without validations, etc) + the event. Field codigo must be set manually ;)
In the first submit with comprado changed field, the event does subtraction correctly, but does not save the new value of comprado, continues saving old value. If we do not change the value of comprado and resend this is stored properly, but if we again change value continues without saving.
In other words:
if field comprado have value of 100, send 200 and next send 250 continues saving 100.
if field comprado have value of 100, send 250 and next send 250 it saves first time 100 and second 250.
In all cases substraction is done correctly with the new value.
I really appreciate any help you can provide.

@meigallodixital I've run the application you sent and managed to execute it after getting rid of PHP error in Controller but I fail to see what is/should be happening over there. It would make things a lot easier to have (failing) test case prepared like these here as we can use it in future as regression test. Also can you please use English while writing code? It is far more readable then :)

There are a missing $ in the controller on example app :(
We think that we found the problem an hour ago.
We were thinking that a document PreUpdate mongodb event with embebed subdocuments was unique. In the tests we have seen that the event listener makes a Preupdate for each class doctrine document, in this case 3 calls. We are not sure who was doing recomputeSingleDocumentChangeSet method with the previous configuration.
We're now changing events for each embedded class document. We think that this was the origin of the problem.
My question now is how  we can access from a event of a class embedded  to parent  document data.

UnitOfWork::getParentAssociations should help you if I remember correctly :)

thanks a lot!

@meigallodixital closing the issue, feel free to reopen if anything would go wrong on ODM's side :)


Readme.md

@spborder: can you pls. create a short README, so we know what this repo is about?

Closing issue


Added Coalesce Animation Background

Fixes Issue🛠

Closes #462
Description👨💻

Added a coalesce background under backgrounds component
Type of change📄

[x] New feature (non-breaking change which adds functionality)

This has been tested✅

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/Beautiify/assets/125905089/94d6987c-7f2e-4df2-b2af-afe1339591bb

Merged 🥳 @saurav2208


Add high-resolution option

Hi,
my first python code.
Feel free to comment and give any advice about it
I was wondering about making it  resolution_button.find_element_by_tag_name("li") more explicit but it works now and any changes of frontendmasters' layout would require change here anyway.

And I was thinking about making it more generic --resolution=low,mid,high but for now I don't see "demand" for it.

Have you tested it? and it works right?

I tested it manually. It's working. Maybe instead of sleep we can use something like wait_for(element, timeout). If something like this exists and works we can both save seconds and be 100% sure that part of page we are interested is loaded.


add  to loading blog cards

https://mui.com/components/skeleton/

consider using <paper> to match look of some other cards too?


Fix typo in README.md

Thank u. I also lock the dependecy on<EMAIL_ADDRESS>to keep the tests passing.


Skps sdk json6

Description

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] Please add REST spec PR link to the SDK PR
[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code.
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@shriku11 can you onboard to azure GitHub using aka.ms/azuregithub
Also please provide link to the spec and also can you fix the title of the PR so that we know what this change is all about.
As soon as you onboard, you will be authenticated to run CI.

@shahabhijeet I am already onboarded to GitHub using aka.ms/azuregithub
If you click on edit for 1st comment by me in PR that is template I filled you will see in description section what this PR is about and link to Swagger doc. I am also adding it here,
Description

Could someone start reviewing this PR? Thanks!

@azuresdkci add to whitelist

Joined the Azure org, how do I trigger the CI now? I have no new changes to push. As far as I know this only triggers if I add new changes.

@azuresdkci test this please

@shahabhijeet , any idea how long this CI should take? This seems stuck for last 4 hours.

@shahabhijeet , The tests are fixed. Could you take a look and if good merge this PR?


Use of try-except within MinGW/Clang on Windows

Neither GCC nor Clang fully support the try-except MSVC extension and so any builds as of 2c27950 fail in non-MSVC Windows environments. I have seen some dirty hacks to implement SEH outside of MSVC but they are far from portable.
See the use of __try and __except within win/fs.c, also see here for reference.
I am not sure what the best solution is, but I don't see reason for the memcpy to fail. For that reason I want to propose something simple:
diff --git a/src/win/fs.c b/src/win/fs.c
index 83dfdca9..b2835628 100644
--- a/src/win/fs.c
+++ b/src/win/fs.c
@@ -786,6 +786,7 @@ void fs__read_filemap(uv_fs_t* req, struct uv__fd_info_s* fd_info) {
     int err = 0;
     size_t this_read_size = MIN(req->fs.info.bufs[index].len,
                                 read_size - done_read);
+#ifdef _MSC_VER
     __try {
       memcpy(req->fs.info.bufs[index].base,
              (char*)view + view_offset + done_read,
@@ -797,6 +798,11 @@ void fs__read_filemap(uv_fs_t* req, struct uv__fd_info_s* fd_info) {
       UnmapViewOfFile(view);
       return;
     }
+#else
+    memcpy(req->fs.info.bufs[index].base,
+           (char*)view + view_offset + done_read,
+           this_read_size);
+#endif
     done_read += this_read_size;
   }
   assert(done_read == read_size);
@@ -978,6 +984,7 @@ void fs__write_filemap(uv_fs_t* req, HANDLE file,
   done_write = 0;
   for (index = 0; index < req->fs.info.nbufs; ++index) {
     int err = 0;
+#ifdef _MSC_VER
     __try {
       memcpy((char*)view + view_offset + done_write,
              req->fs.info.bufs[index].base,
@@ -989,6 +996,11 @@ void fs__write_filemap(uv_fs_t* req, HANDLE file,
       UnmapViewOfFile(view);
       return;
     }
+#else
+    memcpy((char*)view + view_offset + done_write,
+           req->fs.info.bufs[index].base,
+           req->fs.info.bufs[index].len);
+#endif
     done_write += req->fs.info.bufs[index].len;
   }
   assert(done_write == write_size);

Reproducible on almost all non-MSVC Windows builds. Possibly fixes or related to #2391?

Yeah, I don't see why we need those either. We are not using this anywhere else IIRC.
Ping @libuv/windows
@cjihrig We may want to fix this before release.

One of the buffers is a memory-mapped file. If something fails while accessing the hard drive, it will be reported as an exception.
I'm OK with removing the __try block for non-MSVS compilers, with a note in the documentation that using memory mapped files can crash the program when libuv is compiled with those.

SGTM. Didn't we have a thing to disable CRT exceptions? Or is that something else?

I'm currently blocking the 1.31.0 release on this and one other patch. Is anyone currently working on (or planning to work on) this?

I think @Crunkle 's proposal is good. If they are not able to PR it I can.

PR created, thanks!
I'm not too familiar with the possible exceptions but I agree, either a warning pragma or, even better, a small note in the docs could be a good addition.


Deployable Fin design

Deployable fins are the most aerodynamic option because they will not be inhibited by the slipstream created by the body


qat: Add a note on plugin deployment with AppArmor

Codecov Report

Merging #1576 (7e52142) into main (0ffe7d0) will decrease coverage by 0.07%.
Report is 14 commits behind head on main.
The diff coverage is 14.00%.

:exclamation: Current head 7e52142 differs from pull request most recent head b9e6849. Consider uploading reports for the commit b9e6849 to get more accurate results

@@            Coverage Diff             @@
##             main    #1576      +/-   ##
==========================================
- Coverage   49.63%   49.56%   -0.07%
==========================================
  Files          42       42
  Lines        4948     4965      +17
==========================================
+ Hits         2456     2461       +5
- Misses       2351     2361      +10
- Partials      141      143       +2

Files
Coverage Δ

pkg/controllers/reconciler.go
4.56% <ø> (ø)

pkg/controllers/dlb/controller.go
17.07% <0.00%> (-0.29%)
:arrow_down:

pkg/controllers/qat/controller.go
9.52% <0.00%> (-0.21%)
:arrow_down:

pkg/controllers/dsa/controller.go
6.74% <0.00%> (-0.04%)
:arrow_down:

pkg/controllers/iaa/controller.go
6.74% <0.00%> (-0.04%)
:arrow_down:

pkg/controllers/gpu/controller.go
48.01% <36.84%> (+0.31%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

superseded by #1591


Question about why u use Redis and how do you use it ?

Hello fuma- nama. I have a small question.
What is the job of redis in your shark chat project?

Last reading time of channels
Cache for Shark AI
Last message of channels


ERROR pytest.PytestRemovedIn8Warning: The (fspath: py.path.local) argument to YamlTestFile is deprecated. Please use the (path: pathlib.Path) argument instead.

Hello !
It looks like this library is using a deprecated pytest function argument, that makes tests fail when warning are not allowed in the testsuite.
See https://docs.pytest.org/en/latest/deprecations.html#fspath-argument-for-node-constructors-replaced-with-pathlib-path
==================================== ERRORS ====================================
______________________ ERROR collecting tests/__init__.py ______________________
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/pluggy/_hooks.py:265: in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/pluggy/_manager.py:80: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/pytest_mypy_plugins/collect.py:143: in pytest_collect_file
    return YamlTestFile.from_parent(parent, fspath=path)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/_pytest/nodes.py:630: in from_parent
    return super().from_parent(parent=parent, fspath=fspath, path=path, **kw)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/_pytest/nodes.py:261: in from_parent
    return cls._create(parent=parent, **kw)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/_pytest/nodes.py:140: in _create
    return super().__call__(*k, **kw)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/_pytest/nodes.py:585: in __init__
    path = _imply_path(type(self), path, fspath=fspath)
/opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/_pytest/nodes.py:114: in _imply_path
    stacklevel=3,
E   pytest.PytestRemovedIn8Warning: The (fspath: py.path.local) argument to YamlTestFile is deprecated. Please use the (path: pathlib.Path) argument instead.
E   See https://docs.pytest.org/en/latest/deprecations.html#fspath-argument-for-node-constructors-replaced-with-pathlib-path
=========================== short test summary info ============================
ERROR tests/__init__.py - pytest.PytestRemovedIn8Warning: The (fspath: py.pat...
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 0.15s ===============================

PR is more than welcome! Please, feel free to ask any questions 🙂

Doesn't seem like 7.0 was formally released yet. PyPI has only RC at the moment https://pypi.org/project/pytest/#history


Erubi support

It would be nice to get nanoc support for Erubi: it should be faster and have a reduced memory footprint compared to ERB and Erubis.
I took a quick look at the code, and while adding a filter is trivial it seems it would take some effort to make it work properly with the nanoc capturing helpers.

I haven’t taken a very close look, but running Erubi with bufvar: '_erbout' should work with the capturing helper.

Migrated to nanoc/features/issues/8.

Ok, thanks. As an aside, I noticed their claim of 86% faster HTML escaping is based on simply replacing a chained gsub by CGI.escapeHTML (https://github.com/jeremyevans/erubi/commit/ad418917a5c75e969f1bbf213c1a95b84c4c56e8)
Nanoc is doing a chained gsub as well here so we could easily copy/replace that code with CGI.escapeHTML to get that same speedup.


Duplicate entry error when scaling cluster up

When I scale up my cluster from 1 to 2 replicas (cleaning up after failures I got upgrading to 0.3) the slave each time starts up and immediately fails with
"Could not execute Write_rows event on table ntppool.log_scores; Duplicate entry '3863639305' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000100, end_log_pos 13259"

One curious thing is that it says the slave lag is already >86400 seconds (it might have been a day since I went down to one replica to get the system working).  Why wouldn't the backup snapshot be up to date?

Ah, I figured this out I think.
From glancing through the code I wonder if it's because the cluster got the mysql.presslabs.org/skip-gtid-purged annotation set (from when the operator was upgraded). Then now when I make a new replica, the value isn't set after the clone.

Hi @abh,
From what version of the operator did you do the upgrade? I'm wondering that maybe is the upgrade logic that is quilty for this.
And I think you are right that annotations should be removed after the cluster is successfully updated and all pods are from the new generation.

Hi @AMecea -- from the latest 0.2 version.


Do not merge roles but replace them

I think we need this to be able to change the Roles on out production servers @jannisvisser. Can you double check if this does not break something


Feature: Return threshold and safe owners in getSafeInfo for apps

What it solves

Sets the base for https://github.com/gnosis/safe-apps-sdk/issues/196
Sets an empty safe record as a default value for the safe selector
Fixed inconsistencies in selectors returning safe, some of them return undefined, and some return empty safe object structure. I also added a way to pass safeAddress so the object will be created with the correct safe address

How this PR fixes it
Just includes it in the response
How to test it

Use https://github.com/gnosis/safe-test-app
It logs safe info
The logged message should include owners, threshold

I tested with the steps I provided and it works (see screenshot). The E2E bot seems to be trippin, all the runs were successful. I also tested the scenario (adding an existing safe) manually and it worked. Therefore, I merge this

Nice! 🎉


 Let's dicuss anything you don't like about it. I don't have my heart set on doing all of these things, I just had some spare time.

This looks like a lot of good improvements to me. I particularly like the new name and the fact that things are properties instead of Get...() methods now.

Is there a good reason for this type to be public? Presumably we want users to program against the NavigationManager instance?

Because of JS interop. I'm planning to fix it.

Ready for another look @SteveSandersonMS @javiercn - I rebased this on top of my other PR so depending on when you look you might need to skip that commit.

@SteveSandersonMS @javiercn Ping

I would have hope that we figured out something for all the shared initializations we need to do in this area, because I think we keep piling up those things in circuithost, but I recognize that that is orthogonal to this PR and we might get to do it if we have time.

Cool idea but I think it's really unlikely we'll be able to make this better. However, I think the concept count will be limited for 3-4 in this area.


Add support for namespaces

We constantly have to edit package.json files and tsconfig.es5.json because we use a company namespace, examples: @cognitec/ui, @cognitec/authentication, etc.
When I want to use the generator, I am in .../@cognitec/ folder. I typically mkdir, example: mkdir ui then I run the generator, e.g. yo angular2-library and I enter in the name of the package, e.g. @cognitec/ui but this results in a flat module ID of cognitec-ui instead of what we need.
It would be wicked awesome if the generator was capable of figuring out from the package name that the user enters, e.g. @cognitec/ui, that the user is in the @cognitec folder and proceeded to create the ui folder, and package.json and tsconfig.es5.json files that contained @cognitec/ui as the package name and flat module ID.
Thanks for this excellent generator. It has been invaluable to us.

@izifortune Any update on this? I would love to have this enhancement.

Sorry @Adam I will make some time this week to share this

Hi @adamk33n3r  please have a look at this PR #283. Hope i'm not missing anything there

@izifortune — Thank you for your follow-up, much appreciated! 🏆


Each "New Terminal" runs pyenv shell 3.7.1

Environment data

VS Code version:$ code --version
1.28.2
7f3ce96ff4729c91352ae6def877e59c561f4850
x64

Extension version (available under the Extensions sidebar): 2018.9.2
OS and version: Ubuntu 18.04.1
Python version (& distribution if applicable, e.g. Anaconda):$ pyenv version
3.7.1 (set by /home/dhermes/.pyenv/version)
2.7.15 (set by /home/dhermes/.pyenv/version)
3.6.7 (set by /home/dhermes/.pyenv/version)
3.5.6 (set by /home/dhermes/.pyenv/version)
3.4.9 (set by /home/dhermes/.pyenv/version)
pypy2.7-6.0.0 (set by /home/dhermes/.pyenv/version)
pypy3.5-6.0.0 (set by /home/dhermes/.pyenv/version)
miniconda2-4.3.30 (set by /home/dhermes/.pyenv/version)
miniconda3-4.3.30 (set by /home/dhermes/.pyenv/version)

Type of virtual environment used (N/A | venv | virtualenv | conda | ...): pyenv
Relevant/affected Python packages and their versions: N/A

Actual behavior
When I launch New Terminal [Ctrl+Shift+`], the newly opened terminal always runs
$ pyenv shell 3.7.1

corresponding to my default Python. But as can be seen from the output of pyenv version above, 3.7.1 is already my default Python. Calling pyenv shell 3.7.1 sets the PYENV_VERSION=3.7.1 environment variable, which results in
$ pyenv version
3.7.1 (set by PYENV_VERSION environment variable)

i.e. it has the undesired behavior of disabling my secondary pyenv environments.
Expected  behavior
Nothing happens at all when a new shell is launched.
Steps to reproduce:

Select ${HOME}/.pyenv/versions/.../bin/python as the default Python

Logs
N/A

You can add "python.terminal.activateEnvironment": "false" to your settings to disable the activation.

Thanks @brettcannon, I figured there was some setting that I just wasn't finding.
ISTM that there is nothing to activate if the default pyenv environment is already the intended one.
Cheers and thanks for all your great work!


The variable 'startN' is being used without being initialized

Hi, I am getting this error when running .\ethminer -G:

I'm seeing the same on Windows 10, this little debugger alert pops up, and in the output, it mining hash rate drops to 0.  If I click abort, obviously it crashes, but if I click ignore, it proceeds, and in fact, resets itself, and then mining seems to work again.

I found where I think this error comes up:
https://github.com/Genoil/cpp-ethereum/blob/master/libethcore/EthashCUDAMiner.cpp#L199
I may go into the debugger to check for certain, but clearly this value isn't initialized before it is used.  Set it to 0 at the very least?

Actually, that wasn't where the failure happens, it's in EthStashGPUMinder.cpp:
https://github.com/Genoil/cpp-ethereum/blob/master/libethcore/EthashGPUMiner.cpp#L186
breaks on line 189.  I'll fix this and see if it pops up elsewhere.  Technically, shouldn't we turn on compiler warnings maybe and treat the warnings as bugs, fix those things, and submit this back as a pull request?

@JohanTh did you manage to get your build done easily?  Wondering how you handled the windows dependencies.  The server is down, and I had to grab them manually from the etherium site, and plug them in using the cmake -D flags for each library and variable.
In any case, it looks like you can patch your build by setting startN = 0 in those two places I mention above.  Will see if this works.

@truedat101 I changed the variable like that but then I gave up on this because it made my computer lag too much. I downloaded the dependencies manually but unfortunately I can't remember what I did with them.

ethminer runs at about 18% of my cpu with 8 cores available.

@truedat101 I'm also getting this issue - I tried initializing startN to 0 in both places. Instead of flagging the error, now my GPU just crashes at the same point in computation. This happens in benchmarking or in actually mining, have you found any solution to this?

Also having this issue

What GPUs are you guys running @nicklit and @jbrundrett ?  Most definitely I found that not all GPUs will work with the default opencv implementation.  There are a number of options with running ethminer that may help out with your specific situation.  And did you guys fix the errors in both places where the value is uninitialized?

@truedat101 Running on an NVIDIA GTX 970 with the 382.53 drivers. I tried setting the variables to 0 in both places, and I believe I got passed the error only to find another error. I'm not too familiar with what I am doing. I may mess with it again tonight.

@nicklit my GTX 960 was failing similarly at some point, due to lower memory from what I understand.  Perhaps we can start some additional output (a pastebin) to see where you are failing with the 970.


False positives on react/jsx-props-no-multi-spaces with generic component

Setup: eslint 5.14.1 with @typescript-eslint/eslint-plugin 1.4.0
Minimal case:
<Foo<T> bar />

Error:
Expected only one space between "Foo" and "bar"

It's very surprising that TS allows that; Foo<T> looks like a type, but the first item in a jsx element has to be a value.

It's very surprising that TS allows that

That's how you do generic JSX components in TypeScript.

I'm still surprised they chose to deviate from the jsx spec for that.

But is it actually deviating from the spec, since it's never actually in the jsx when it gets compiled?
Like, I think its fuzzy on both sides - I can't think of a cleaner way they could have done it 😕

Yes, it is. I'd say <Foo: Foo<T> /> would be much cleaner, and would stick to the "stuff after : is types" space.
That ship has obviously sailed, though.

I've not got the jsx spec in front of me, but why is it deviating from the spec to have a generic type straight after the component name, but not a colon?

I suppose it’s more than in typescript itself, generics syntax only appears in type space, and in this case, it’s appearing in value space - so it seems inconsistent with typescript too.

Fair enough. What are the chances of getting a fix? Even if it has to be behind a typescript: true style option?

I don't think it has to be behind an option; this change would be removing a false error only for typescript users.
I think a PR would be fine.


picotool: 1.1.0 -> 1.1.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/raspberrypi/picotool/releases.
meta.description for picotool is: Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary
meta.homepage for picotool is: https://github.com/raspberrypi/picotool
Updates performed

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 1.1.1 with grep in /nix/store/ygqxhdr13c6g2kch1hn4z4j2kb28gjiy-picotool-1.1.1
found 1.1.1 in filename of file in /nix/store/ygqxhdr13c6g2kch1hn4z4j2kb28gjiy-picotool-1.1.1

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
picotool

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ygqxhdr13c6g2kch1hn4z4j2kb28gjiy-picotool-1.1.1 \
  --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 picotool https://github.com/r-ryantm/nixpkgs/archive/c181fb980739d08d5ceceaef78ecb2d3303eacde.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/ygqxhdr13c6g2kch1hn4z4j2kb28gjiy-picotool-1.1.1
ls -la /nix/store/ygqxhdr13c6g2kch1hn4z4j2kb28gjiy-picotool-1.1.1/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:

picotool

Maintainer pings
cc @muscaln for testing.


My nodeos could not push transaction with "FC Exception encountered while processing chain.push_transaction"

1.Run nodeos on my VM ubuntu16
2.Try to push my signed transaction to blockchain
3.Fail and the log from nodeos
error 2020-02-11T09:10:36.860 nodeos    http_plugin.cpp:696           handle_exception     ] FC Exception encountered while processing chain.push_transaction
There is no more useful infomation but FC Exception?So how can I fix this problem?

From @heifner
The "FC Exception encountered while processing chain.push_transaction" is nothing to worry about. 2.0 has diff default logging than 1.8 so you now get this for every failed push_transaction which could be for any reason. For example, the contract had an assert that was tripped, or user ran out of cpu, etc.

You can see the reason for the failure by enabling debug level logging on your api node. Here is an example logging.json https://github.com/EOSIO/eos/blob/master/programs/nodeos/logging.json
If you don't want gelf logging here is one without gelf logging. Rename to logging.json and place along side your config.ini file. Or via https://developers.eos.io/manuals/eos/latest/nodeos/logging/setup-logging.json
logging.json.txt

Sorry for late response.Thank you very much.


import run/adapt from lib/cjs instead of lib

Hi @mightyiam, thank you for taking your time to send us this PR. We appreciate it, but have you noticed that adapt.ts is anyway compiled to lib/adapt.js?
https://github.com/cyclejs/cyclejs/blob/d1848d163cf9a52a04b925e19cf550c60032fc78/run/package.json#L54
This was a measure we did in order to avoid the breaking change.

@staltz sorry, I should have commented on this PR. Here, this is what this is about: https://github.com/cyclejs/cyclejs/issues/744#issuecomment-345654214.


GraphDef version incompatibility

Hi
I've encountered a problem that when I'm loading the frozen graph with your example code:
ValueError: Converting GraphDef to Graph has failed. The binary trying to import the GraphDef was built when GraphDef version was 440. The GraphDef was produced by a binary built when GraphDef version was 527. The difference between these versions is larger than TensorFlow's forward compatibility guarantee.
Any ideas how to solve this problem?
Thank you~

You did not provide a command to reproduce. I have updated the repo recently and please use the Docker container to reproduce the examples. I don't accept troubleshooting without using a Docker container.


Bug:

Description
Since I installed and reinstalled your program, it happens regularly that the app "hangs" after clicking through as I do in Windows Explorer or that it closes itself during use. It seems that it (after starting) cannot keep up with the clicking of the mouse. Not even when this happens quietly. I would like to see a solution for this.
Steps To Reproduce

Files Version
<IP_ADDRESS>
Windows Version
Windows 11, version 23H2
User ID
4fb43b16-47f0-4c02-9812-857840ec7fd5
Log File

Thanks for the report

Can you please upload (Do not copy and paste content) the debug.log file directly to GitHub (email attachments don't work) . You can get it in Files settings > About > Open log folder.
Can you provide the steps to reproduce this issue, including what your clicking

at Files.Shared.Extensions.SafetyExtensions.IgnoreExceptions(Func`1 action, ILogger logger, Type exceptionToIgnore)
2024-12-24 12:34:31.6375|Information|Drive added: J:, Fixed
2024-12-24 12:34:31.6391|Information|System.Runtime.InteropServices.COMException (0x80004005): Niet nader omschreven fout
Niet nader omschreven fout
at WinRT.ExceptionHelpers.g__Throw|39_0(Int32 hr)
at ABI.System.Collections.Specialized.NotifyCollectionChangedEventHandler.NativeDelegateWrapper.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)    at Files.Shared.Extensions.LinqExtensions.AddSorted[T](IList1 list, T item)
at Files.App.ViewModels.UserControls.Widgets.DrivesWidgetViewModel.<Drives_CollectionChanged>b__28_0()
at Files.Shared.Extensions.SafetyExtensions.IgnoreExceptions(Func`1 action, ILogger logger, Type exceptionToIgnore)
2024-12-24 12:34:31.6746|Information|Drive added: K:, Fixed
2024-12-24 12:34:31.7225|Information|System.Runtime.InteropServices.COMException (0x80004005): Niet nader omschreven fout
Niet nader omschreven fout
at WinRT.ExceptionHelpers.g__Throw|39_0(Int32 hr)
at ABI.System.Collections.Specialized.NotifyCollectionChangedEventHandler.NativeDelegateWrapper.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)    at System.Collections.ObjectModel.Collection1.Remove(T item)
at Files.App.ViewModels.UserControls.Widgets.DrivesWidgetViewModel.<Drives_CollectionChanged>b__28_0()
at Files.Shared.Extensions.SafetyExtensions.IgnoreExceptions(Func`1 action, ILogger logger, Type exceptionToIgnore)
2024-12-25 12:16:42.4192|Information|App launched. Launch args type: LaunchActivatedEventArgs
2024-12-25 12:16:45.2282|Information|Drive added: C:, Fixed
2024-12-25 12:16:45.3533|Information|Drive added: D:, Fixed
2024-12-25 12:16:45.3945|Information|Drive added: E:, Fixed
2024-12-25 12:16:45.7203|Information|Drive added: F:, Fixed
2024-12-25 12:16:45.7721|Warning|Invalid path: S:\My Drive
2024-12-25 12:16:45.8594|Warning|Invalid path: S:\My Drive
2024-12-25 12:16:45.9037|Information|Adding cloud provider "iCloud Drive" mapped to E:\iCloudDrive
2024-12-25 12:16:46.0677|Information|Drive added: G:, Fixed
2024-12-25 12:16:46.4620|Information|Drive added: H:, Fixed
2024-12-25 12:16:46.6287|Information|Drive added: J:, Fixed
2024-12-25 12:16:46.7243|Information|Adding cloud provider "iCloud Photos" mapped to C:\Users\hgkle\Pictures\iCloud Photos\Photos
2024-12-25 12:16:46.7321|Information|Drive added: K:, Fixed
2024-12-25 12:16:46.9229|Information|Adding cloud provider "Dropbox" mapped to E:\Dropbox
2024-12-25 12:16:46.9787|Information|Drive added: K:
2024-12-25 12:16:47.0063|Information|Drive added: J:
2024-12-25 12:16:47.1091|Information|Adding cloud provider "OneDrive" mapped to E:\OneDrive
2024-12-25 12:17:04.5277|Information|STORE: Checking for updates...
2024-12-25 12:17:06.0055|Information|Running on ARM: False
2024-12-26 12:11:27.6797|Information|App launched. Launch args type: LaunchActivatedEventArgs
2024-12-26 12:11:29.6953|Information|Drive added: C:, Fixed
2024-12-26 12:11:29.7638|Information|Drive added: D:, Fixed
2024-12-26 12:11:29.9220|Information|Drive added: E:, Fixed
2024-12-26 12:11:29.9588|Information|Drive added: F:, Fixed
2024-12-26 12:11:30.0645|Information|Drive added: G:, Fixed
2024-12-26 12:11:30.0683|Warning|Invalid path: S:\My Drive
2024-12-26 12:11:30.0744|Warning|Invalid path: S:\My Drive
2024-12-26 12:11:30.0889|Information|Adding cloud provider "iCloud Drive" mapped to E:\iCloudDrive
2024-12-26 12:11:30.1230|Information|Drive added: H:, Fixed
2024-12-26 12:11:30.1862|Information|Drive added: J:, Fixed
2024-12-26 12:11:30.2338|Information|Drive added: K:, Fixed
2024-12-26 12:11:30.2658|Information|Adding cloud provider "iCloud Photos" mapped to C:\Users\hgkle\Pictures\iCloud Photos\Photos
2024-12-26 12:11:30.3371|Information|Drive added: K:
2024-12-26 12:11:30.3649|Information|Drive added: J:
2024-12-26 12:11:30.3781|Information|Adding cloud provider "Dropbox" mapped to E:\Dropbox
2024-12-26 12:11:30.4863|Information|Adding cloud provider "OneDrive" mapped to E:\OneDrive
2024-12-26 12:11:44.0779|Information|STORE: Checking for updates...
2024-12-27 11:19:00.3458|Information|App launched. Launch args type: LaunchActivatedEventArgs
2024-12-27 11:19:02.6150|Information|Drive added: C:, Fixed
2024-12-27 11:19:02.7026|Information|Drive added: D:, Fixed
2024-12-27 11:19:02.7459|Information|Drive added: E:, Fixed
2024-12-27 11:19:02.9942|Information|Drive added: F:, Fixed
2024-12-27 11:19:03.0157|Warning|Invalid path: S:\My Drive
2024-12-27 11:19:03.0225|Warning|Invalid path: S:\My Drive
2024-12-27 11:19:03.0245|Information|Adding cloud provider "iCloud Drive" mapped to E:\iCloudDrive
2024-12-27 11:19:03.0465|Information|Drive added: G:, Fixed
2024-12-27 11:19:03.1182|Information|Drive added: H:, Fixed
2024-12-27 11:19:03.1860|Information|Drive added: J:, Fixed
2024-12-27 11:19:03.2392|Information|Adding cloud provider "iCloud Photos" mapped to C:\Users\hgkle\Pictures\iCloud Photos\Photos
2024-12-27 11:19:03.2508|Information|Drive added: K:, Fixed
2024-12-27 11:19:03.3789|Information|Adding cloud provider "Dropbox" mapped to E:\Dropbox
2024-12-27 11:19:03.3909|Information|Drive added: K:
2024-12-27 11:19:03.4216|Information|Drive added: J:
2024-12-27 11:19:03.4962|Information|Adding cloud provider "OneDrive" mapped to E:\OneDrive
2024-12-27 11:19:25.6340|Information|STORE: Checking for updates...
2024-12-27 11:24:00.7406|Information|Running on ARM: False
2024-12-27 12:19:35.0689|Information|App launched. Launch args type: LaunchActivatedEventArgs
2024-12-27 12:19:37.1936|Information|Drive added: C:, Fixed
2024-12-27 12:19:37.2612|Information|Drive added: D:, Fixed
2024-12-27 12:19:37.4449|Information|Drive added: E:, Fixed
2024-12-27 12:19:37.4933|Information|Drive added: F:, Fixed
2024-12-27 12:19:37.5783|Information|Drive added: G:, Fixed
2024-12-27 12:19:37.5917|Warning|Invalid path: S:\My Drive
2024-12-27 12:19:37.5976|Warning|Invalid path: S:\My Drive
2024-12-27 12:19:37.5991|Information|Adding cloud provider "iCloud Drive" mapped to E:\iCloudDrive
2024-12-27 12:19:37.6307|Information|Drive added: H:, Fixed
2024-12-27 12:19:37.6835|Information|Drive added: J:, Fixed
2024-12-27 12:19:37.7215|Information|Drive added: K:, Fixed
2024-12-27 12:19:37.7679|Information|Adding cloud provider "iCloud Photos" mapped to C:\Users\hgkle\Pictures\iCloud Photos\Photos
2024-12-27 12:19:37.8461|Information|Adding cloud provider "Dropbox" mapped to E:\Dropbox
2024-12-27 12:19:37.8630|Information|Drive added: K:
2024-12-27 12:19:37.8879|Information|Drive added: J:
2024-12-27 12:19:37.9407|Information|Adding cloud provider "OneDrive" mapped to E:\OneDrive
2024-12-27 12:19:50.2031|Information|STORE: Checking for updates...
2024-12-27 12:19:59.7426|Information|Drive added: L:
2024-12-27 12:20:00.2625|Information|Drive added: L:
2024-12-27 12:20:03.5810|Information|Running on ARM: False
2024-12-28 11:55:37.8947|Information|App launched. Launch args type: LaunchActivatedEventArgs
2024-12-28 11:55:40.9247|Information|Drive added: C:, Fixed
2024-12-28 11:55:40.9869|Information|Drive added: D:, Fixed
2024-12-28 11:55:41.1542|Information|Drive added: E:, Fixed
2024-12-28 11:55:41.1982|Information|Drive added: F:, Fixed
2024-12-28 11:55:41.2784|Warning|Invalid path: S:\My Drive
2024-12-28 11:55:41.2842|Warning|Invalid path: S:\My Drive
2024-12-28 11:55:41.2858|Information|Adding cloud provider "iCloud Drive" mapped to E:\iCloudDrive
2024-12-28 11:55:41.3036|Information|Drive added: G:, Fixed
2024-12-28 11:55:41.3562|Information|Drive added: H:, Fixed
2024-12-28 11:55:41.3970|Information|Drive added: J:, Fixed
2024-12-28 11:55:41.4212|Information|Adding cloud provider "iCloud Photos" mapped to C:\Users\hgkle\Pictures\iCloud Photos\Photos
2024-12-28 11:55:41.4280|Information|Drive added: K:, Fixed
2024-12-28 11:55:41.4684|Information|Drive added: L:, Removable
2024-12-28 11:55:41.5426|Information|Adding cloud provider "Dropbox" mapped to E:\Dropbox
2024-12-28 11:55:41.5710|Information|Drive added: L:
2024-12-28 11:55:41.5936|Information|Drive added: K:
2024-12-28 11:55:41.6209|Information|Drive added: J:
2024-12-28 11:55:41.6691|Information|Adding cloud provider "OneDrive" mapped to E:\OneDrive
2024-12-28 11:55:55.3554|Information|STORE: Checking for updates...
2024-12-28 11:55:55.9414|Information|Running on ARM: False
2024-12-28 14:12:33.0638|Information|STORE: Checking for updates...
2024-12-28 14:12:33.1807|Information|The app is being activated. Activation type: LaunchActivatedEventArgs
2024-12-28 14:12:33.5145|Information|Drive added: C:, Fixed
2024-12-28 14:12:33.5511|Information|Drive added: D:, Fixed
2024-12-28 14:12:33.6045|Information|Drive added: E:, Fixed
2024-12-28 14:12:33.6722|Information|Drive added: F:, Fixed
2024-12-28 14:12:33.7158|Information|Drive added: G:, Fixed
2024-12-28 14:12:33.7565|Information|Drive added: H:, Fixed
2024-12-28 14:12:33.8009|Information|Drive added: J:, Fixed
2024-12-28 14:12:47.2556|Information|Drive added: K:, Fixed
2024-12-28 14:12:47.6685|Information|Drive added: L:, Removable
2024-12-28 14:14:26.2777|Information|The app is being activated. Activation type: ProtocolActivatedEventArgs


Dashboard

When I go to the Sign In from the / page I somehow always get a page with a white background:

Refreshing or going to sign in from /docs is ok.

I'm not sure if this is a problem with my account or some problem with Preview, but the dashboard (and mentions of the account in docs and / page) is not loading correctly for me:

323-d7472cc670a4ed6f.js:1 No default team found for user 936c6b78-3cd1-499c-b921-c8e5b5dbfda9

Failed to load resource: the server responded with a status of 403

I'm not sure if this is a problem with my account or some problem with Preview, but the dashboard (and mentions of the account in docs and / page) is not loading correctly for me:

323-d7472cc670a4ed6f.js:1 No default team found for user 936c6b78-3cd1-499c-b921-c8e5b5dbfda9

Failed to load resource: the server responded with a status of 403
With the request return message: permission denied for table team_stripe_info

This is due to security, there's query which is referencing table, which isn't publicly accessible. The data aren't used, so it should be easy to resolve

I don't know if this was in scope, but one thing I am missing is a current bill for this month. In Usage I can see how much CPU and RAM I used, but I don' see how much it costs.

This is now implemented in the Usage section.

Are we missing anything else or we can get this to production?

There are some deploy errors during build.


Add to README.md info about getting access token

Now users can't know how to get access token for startrek

I've omitted the link intentionally as I don't have full confidence it is to be shared publicly. When we  "release" that link will be included internally (e.g. Slack or Notion). Perhaps I'll ask our security engineers if it's ok.


Project type shopware6 keeps overwriting APP_URL

Run a Diagnostic and Paste Link Here
https://gist.github.com/susannemoog/2b36c2feb9746392606c6eedf4353d0c
Describe the bug
With a project of type shopware6 manual changes to the APP_URL are not possible, as every restart adds an additional line with the original ddev created value.
To Reproduce
name: shopware
type: shopware6
docroot: public
php_version: "7.4"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.3"
mysql_version: ""
nfs_mount_enabled: false
mutagen_enabled: false
use_dns_when_possible: true
composer_version: "2"
web_environment: []

Add APP_URL manually to .env
(Re)Start ddev
Open .env
Adjust APP_URL ddev created to http
Restart ddev

Results in something like this in the .env:
APP_ENV="dev"
APP_URL="http://shopware.ddev.site"
...
# =================
# Configuration added by ddev
APP_URL="http://shopware.ddev.site"
# =================
# Configuration added by ddev
APP_URL="http://shopware.ddev.site"
# =================
# Configuration added by ddev
APP_URL="http://shopware.ddev.site"
# =================
# Configuration added by ddev
APP_URL="https://shopware.ddev.site"

Expected behavior

If APP_URL is already set, do not add another one

Version and configuration information (please complete the following information):
config.yaml - see above
version info - see gist above
Shopware installation according to https://susi.dev/ddev-shopware-6/

Thanks, will try to get it fixed up.


react-native-video don't work with Expo

Thank you for reporting this, I'll update our list accordingly.


[FLINK-6817] [table] Fix NPE when preceding is not set in OVER window

Thanks for contributing to Apache Flink. Before you open your pull request, please take the following check list into consideration.
If your changes take all of the items into account, feel free to open your pull request. For more information and/or questions please refer to the How To Contribute guide.
In addition to going through the list, please provide a meaningful description of your changes.

[x] General

The pull request references the related JIRA issue ("[FLINK-XXX] Jira title text")
The pull request addresses only one issue
Each commit in the PR has a meaningful commit message (including the JIRA id)

[x] Documentation

Documentation has been added for new functionality
Old documentation affected by the pull request has been updated
JavaDoc for public methods has been added

[x] Tests & Build

Functionality added by the pull request is covered by tests
mvn clean verify has been executed successfully locally or a Travis build has passed

@sunjincheng121  I've added a OverWindowWithPreceding class

I'm fine with this change. I think we should also include this in 1.3.1, what do you think @fhueske?

Yes, looks good to me as well. +1 for merging and including in 1.3.1

merging...


Create the initial frontend

React is going to be used for the frontend, but some thought needs to be put into how to render the text. Zif should be able to render as may lines of text as nvim can handle, so it needs to be efficient.

There is now some sort of frontend that can render as you type! It's a bit shitty, but it's a start.


Connect to SQL server - VSCODE

Connection error! ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

try to concet without asking for password

Unfortunately, the new authorization system (MySQL 8) is not supported.
More info -> #104


Issue with the identity service in Blazor application

After Signing-In to the user that does not exists, the identity service defines the Internal Exception but this exception is not handled in Blazor application. Please, I request you to resolve this issue.

I will provide solving of this issue in frontend_merge branch.

I will provide solving of this issue in frontend_merge branch.

Thank you, @an2508374, I am looking forward for update.

I've fixed it, we will have such alert there:

@an2508374 thank you! Nice work!


upgrade workflow dependencies, add arm64 support

solves https://github.com/grafana/k6-operator/issues/187
Pls make any changes if required.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@yorugac thanks for the feedback, I'll send individual PRs as you mentioned.
Yes, have checked the ARM Images, and it works https://github.com/audacioustux/k6-operator/pkgs/container/k6-operator

Hi @audacioustux, it's been awhile; hope you're well :slightly_smiling_face:
How is it going? Would you be able to continue with this PR?

Hi @yorugac, sorry got busy with other stuffs. https://github.com/audacioustux/k6-operator I could make the ARM64 support work here, but that was a bit too involved than I had anticipated. + The fact that there's hard-coded image uri in the code made it a bit difficult to make a well-tested PR.
Also, I couldn't make the browser tests work https://github.com/grafana/xk6-browser/issues/1239 (I think it's not related to Arm though) and couldn't manage the time to look into it either.
I think the first thing that needs to be done, is to fix that hardcoded container image URI issue (for example: https://github.com/grafana/k6-operator/blob/c2e81d8c83297561e4539a2377dbd90ad9dab887/pkg/resources/jobs/stopper.go#L19)
For the ARM64 support, I can hopefully send the PR in next weekend (30/31 March), sorry for keep you waiting.

Hi @audacioustux, thanks for quick response!
Yes, the browser tests are a "known" issue: #289 AFAIR, some cases have worked and some didn't. Investigating this wasn't prioritized yet but good thing you've opened the issue in xk6-browser repo as well :+1:

I think the first thing that needs to be done, is to fix that hardcoded container image URI issue

:thinking: you meant for testing? To test custom images, you can pass them as part of TestRun CR definition, i.e. starter.image in this example.

For the ARM64 support, I can hopefully send the PR in next weekend (30/31 March)

That would be amazing; thank you.
Btw, re-reading this PR: I've asked to have CI updates as separate PRs -- would you like me to take those, to reduce the "change request"?

you meant for testing? To test custom images, you can pass them as part of TestRun CR definition, i.e. starter.image in this example.

Umm, as far I can remember, even though starter and runner image was declared in TestRun manifest, it was spawning grafana/k6-operator. May have to re-check that actually...

Btw, re-reading this PR: I've asked to have CI updates as separate PRs -- would you like me to take those, to reduce the "change request"?

Yes please.

@yorugac Hi, pls let me know if the push works correctly and if anything needs to be changed.

On CI changes in push.yaml: I've gone through these ones by now and they seem to be mostly OK. buildx question remains: it seems like the issue we encountered was around ~ v0.10 so maybe v0.12 will be fine. If this version change is not necessary for ARM, I'd prefer to see it in another PR.

umm which issue exactly? I updated the version just to be on safe side and hoped it's most likely backward compatible. I wasn't sure if the "platform" value is supported in the previous version, so tried to save one trial and error.

To test this workflow (without further changes), I'll need to merge this PR first 😂 In general, that's why I request as minimal version of changes as possible: it can be pretty time-consuming to debug CI issues so it's best when they're small and atomic.

I see. that's actually the issue I was referring to earlier. I think the current situation of the repo is a bit hard to rollout new changes or for community contributions. I actually had plan for adding Devcontainers support, that I think should significantly make things easier and streamlined - we may discuss about that later at some point.

On buildx: yes, I meant that issue. Basically Docker manifests got broken with newer version. I've been checking the GH changelogs: it seems like it's still an issue even now... There might be a way to make a fix without pinning a version but for now let's not change that line with buildx version. I think ARM build should work anyway, right?

https://github.com/audacioustux/k6-operator/actions/runs/8500731873/job/23282902694 the push.yml worked with the buildx version pinned to 0.9.1, kept the USER 65532:65532 in starter dockerfile... tested in k8s and working

which version has ARM support?


[flutter_tools] flush UI thread tasks before finishing hot restart

Description
Improve our ability to measure the performance of hot restart. Also flush all UI thread tasks before calling the hot restart "complete" in benchmark mode.
If this is successful at stabilizing the benchmarks, this should be enabled for "normal" hot restart so that we can accurately track execution time.

The goal of this PR is to remove some unreliability around our current hot restart benchmarks, and then attempt to reload the isolate/string parsing change


Typo in README: "regularassignment"

The README has a typo, it says "regularassignment" when it should say "regular assignment".

Thanks for the report! Fixed in the webui file editor :-)