Reduce item not found

Signed-off-by: Longhui li<EMAIL_ADDRESS>
Description

During the test, we found a lot of NOT_FOUND_EXTERNAL and NOT_FOUND_INTERNAL, which is not conducive to network analysis. Tracking and positioning found that partly due to the exclusion of daemonset, partly due to the fact that when there are multiple network cards, only the ip of one node is analyzed, and other traffic such as cilium_host is not clearly identified.
Related Issue

None
Motivation and Context

How Has This Been Tested?

Yes

Sorry for the late reply and thanks for your contribution.
The issue on DaemonSet is clear and your solution is correct and acceptable. But there are still two lines of code, where the issue stands, that need to be corrected. See lines 156 and 163.
https://github.com/KindlingProject/kindling/blob/be46fd60c52084d80eb66362c08c3fbf2155abbd/collector/pkg/metadata/kubernetes/k8scache.go#L153-L166
For the second issue, could you provide more details about "multiple network cards" to help us validate your solution? How is the node used? Are there any more fields for such nodes? What does the data look like you would like to see? Maybe we should open a new issue to discuss the case. These questions are important for further reference.

# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global em1
       valid_lft forever preferred_lft forever
6: p5p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global p5p1
       valid_lft forever preferred_lft forever
681: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global docker0
       valid_lft forever preferred_lft forever
685: cilium_host@cilium_net: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet <IP_ADDRESS>/32 scope link cilium_host
       valid_lft forever preferred_lft forever

For example, we have the em1 network card as the business network, the p5p1 network card as the cluster network, and the cilium_host network card as the internal network. Since k8s will only report one ip, for example, we correspond to the ip of p5p1. The traffic of other network cards is marked as NOTFOUND, which is not conducive to traffic analysis

Could you please marshal the metadata node.Status.Addresses of this node and attach the result here?

I'm guessing the motivation for why you added other interfaces. If there are mistakes, please feel free to point them out.
First, let me explain what is NOT_FOUND_EXTERNAL and NOT_FOUND_INTERNAL and when they will be assigned to namespace:

NOT_FOUND_EXTERNAL: The IP is not the pod IP in the K8s and it is not the internal IP, one of the interfaces the K8s cluster uses, either.
NOT_FOUND_INTERNAL: The IP is not the pod IP in the K8s, but it is the internal IP.

So when you see NOT_FOUND_*, it means the IP querying for Pods is actually not a Pod IP. This is unrelated with node addresses.
*_EXTERNAL and *_INTERNAL are related with node addresses. Once we only considered the "InternalIP" in K8s is INTERNAL, while your modification will make all node IPs be INTERNAL. Is this necessary? Could you please explain in which case the current data model is impracticable and why?

For example, the kubelet heartbeat check is an http request, and its source address is the ip of cilium_host, not the ip of the cluster network. Traffic that checks the availability of containers like this should also be counted as internal traffic. In addition, enter the cluster from node1, jump to node2 through vxlan, and then go to the target pod on node2. This kind of traffic is captured on node2, and the source IP is also cilium_host. Should it also be classified as internal traffic?
In k8s，node.Status.Addresses Only has cluster ip。

Thanks for your explanation. What is your opinion on this? @NeJan2020

According to the definition of NOT_FOUND_EXTERNAL and NOT_FOUND_INTRENAL, the interfaces that are not as InternalIP are also considered internal. So your idea is acceptable. However, there is still another concern we have to consider.
In this implementation, an agent can only get the interfaces on its node, and it doesn't know the interfaces on other nodes. This results in a situation where the same IP could be considered as having different statuses on different nodes. For example, if you have em1 <IP_ADDRESS> on node A, then it is considered "INTERNAL" on node A, but it is considered "EXTERNAL" on node B because the agent on node B only knows node A has an InternalIP, p5p1 <IP_ADDRESS>. I think this case will make data inconsistent on different nodes and make users more confused than before.
Kubernetes API doesn't provide interfaces of nodes. So to fix the issue above, we have to introduce another API to share interfaces between agents. This will increase the complexity and it is not what we want now for Kindling.

The *_INTERNAL is only used to mark whether the src/dst is on any node in the cluster, so adding ip of all network cards into NodeIp Map looks good.
But the current method can only get the network cards of the node where the agent is located. Would this cause agents on other nodes to mark the IP of cilium_host as *_EXTERNAL?

Are you still working on this PR? We are eager for your response.

I'm thinking about this too, I'll think about it first. I need to sort out what scenarios this kind of traffic will appear in

I figure it will take a long time to conduct a conclusion, but your changes on DaemonSet are great. How about we first merge that part and leave the issue behind for further discussion? If you agree, then please reset the changes on node_watch.go and I will merge this PR as soon as possible.

@dxsup commit has been updated.

Regarding whether it is necessary to share the network interface ip of machine A with other machines, I thought about the traffic situation:

When the vip is on machine A and the accessed service is on machine B, the traffic will be nat on machine A, including snat and dnat. And snat will become the cilium_host IP of A machine, which is used to return the original way. (Of course, I am talking about the case of using cilium vxlan. If you use bgp, it may be different. I am not familiar with this)

Cross-host traffic should be similar to this. And this will also be related to what kind of network components are used.
In cilium, various traffic types are distinguished:

Host
remote-node
cluste-ip
pod-ip
world( ip not found)

https://docs.cilium.io/en/stable/gettingstarted/terminology/#reserved-labels
I don't quite know how kindling handles the traffic forwarded from machine A to machine B and then to the pod. Is it necessary to do a finer-grained division like cilium?

Regarding whether it is necessary to share the network interface ip of machine A with other machines, I thought about the traffic situation:

When the vip is on machine A and the accessed service is on machine B, the traffic will be nat on machine A, including snat and dnat. And snat will become the cilium_host IP of A machine, which is used to return the original way. (Of course, I am talking about the case of using cilium vxlan. If you use bgp, it may be different. I am not familiar with this)

Cross-host traffic should be similar to this. And this will also be related to what kind of network components are used.
In cilium, various traffic types are distinguished:

Host
remote-node
cluste-ip
pod-ip
world( ip not found)

https://docs.cilium.io/en/stable/gettingstarted/terminology/#reserved-labels
I don't quite know how kindling handles the traffic forwarded from machine A to machine B and then to the pod. Is it necessary to do a finer-grained division like cilium?

Regarding whether it is necessary to share the network interface ip of machine A with other machines, I thought about the traffic situation:

When the vip is on machine A and the accessed service is on machine B, the traffic will be nat on machine A, including snat and dnat. And snat will become the cilium_host IP of A machine, which is used to return the original way. (Of course, I am talking about the case of using cilium vxlan. If you use bgp, it may be different. I am not familiar with this)

Cross-host traffic should be similar to this. And this will also be related to what kind of network components are used. In cilium, various traffic types are distinguished:

Host
remote-node
cluste-ip
pod-ip
world( ip not found)

https://docs.cilium.io/en/stable/gettingstarted/terminology/#reserved-labels
I don't quite know how kindling handles the traffic forwarded from machine A to machine B and then to the pod. Is it necessary to do a finer-grained division like cilium?

@dxsup How about this?

Kindling captures the syscalls that transmit messages via sockets to create topologies. These syscalls differ between the client and server sides, and we analyze them to obtain socket information.

On the client side, the source IP is of pods, and the destination IP is the one before DNAT. Kindling uses this data to generate kindling_topology_request_total.
On the server side, the source IP is the one after SNAT, and the destination IP is the one after DNAT. Kindling uses this data to generate kindling_entity_request_total. In this metric, the source IP is not used unless the option store_external_src_ip is enabled. If it is enabled, when the source is NOT_FOUND_EXTERNAL, it will generate a topology. This is what you saw before.

So in your case:

From the client side, a metric kindling_topology_request_total with VIP A(pod IP?) -> service IP is generated.
From the server side, the syscalls with cilium_host -> VIP B(pod IP?) are captured and a metric kindling_entity_request_total with VIP B (pod IP?) is generated. If the option store_external_src_ip is enabled, one more metric kindling_topology_request_total with cilium_host -> VIP B(pod IP?) is generated.

Back to your question, a more fine-grained division is good, of course. But unlike Cilium which is a CNI plugin, Kindling doesn't have the networking metadata inherently, so it is hard to identify every type of traffic. One of the obstacles is the issue we talked about earlier.

The network is indeed complex as you describe it, but tracking tools are also designed to make complex things simple. From the above figure, although different network components have different implementations, the most complicated one is the traffic number 4, and most of the business traffic used in production is in this direction. flow 4 in a
Snat and dnat will be performed on the machine, and only redirection is done, leaving few traces. After arriving at machine b, the traffic analysis will be clearer. Because it is all local traffic after all(But it is not easy to distinguish whether the traffic is redirected from a). As for traffic 1, although the path is the longest, because there is no nat, the analysis will be so much simpler. At present, during our use, it is mostly 4 traffic that is not clear. When using iptables in the past, there were traces in conntrack, but after using bpf, it is very difficult to check. Of course, these are also because we still do not know the principle of cilium not enough. I don't know how you think about packet tracking: https://lpc.events/event/7/contributions/683/attachments/554/979/lpc20-pkt-mark-slides.pdf, the power of opentrace is that it will flow In addition to business integration, I understand that kindling is also for these purposes. If the data is just an isolated island, it is difficult to analyze valuable data. Most of them need to rely on experience to analyze, and the threshold is also very high.
@dxsup

This is an idea of mine, I don't know if it can be realized. For different cni plug-ins, can kindling open some interfaces, like kubelet open cni, to implement different packet analysis strategies for different cni, I am happy to improve some packet collection and analysis methods for cilium scenarios

我发现你也是杭州的，直接中文沟通吧


⚠ ECDC Shop has degraded performance

In c7edb0f, ECDC Shop (https://shop.memmingen-indians.de) experienced degraded performance:

HTTP code: 200
Response time: 14523 ms

Resolved: ECDC Shop performance has improved in 3f676d5 after 12 minutes.


Not taking sensor orientation into account

It seems that the sensor orientation is not being taken into account, ie my photos are sideways.
I remember other samples to use something to rotate the image correctly https://github.com/googlesamples/android-Camera2Basic/blob/master/kotlinApp/Application/src/main/java/com/example/android/camera2basic/Camera2BasicFragment.kt
Is this a problem with the sample or the library?

The library handles sensor orientation. Internally, it is done via CameraInfo.getSensorRotationDegrees(). You can see the relevant interface here.
What device are you using that takes photos sideways? Is the preview sideways as well?

I'm using a Huawei P30 Pro.
Checking the image in the sample app shows correctly, but in my Files app, or Solid Explorer, even when copying to my Mac, it shows sideways.
Maybe those apps are not handling the orientation tag correctly? (SE shows Orientation as 7)?
Would be nice to save the photo in the correct orientation, that's what the other app does, or not?

I'm having the same problem on Pixel. Apparently there's no way to store the rotation EXIF?

The issue could be related to how you are saving your file, it's possible that somewhere the EXIF information is stripped. I have tried taking multiple photos with different orientations on a Pixel 3 XL phone but they all appear "upright" when viewing them with the Files app as well as after sharing them with other apps (like Gmail).

Would be nice to save the photo in the correct orientation, that's what the other app does, or not?

To my understanding, the other app is doing the same -- setting the EXIF metadata but not actually rotating the image, but I could be wrong about that.

The EXIF info is being saved correctly, but that doesn't mean that other apps will handle the EXIF correctly, right? If I'm using a server to save the image and open it on another platform (i.e. iOS) or in the browser, the photo can be sideways or something.
What I'm doing in my app is that after saving the image, I rotate it. The gist: https://gist.github.com/tsuharesu/833dc98230855f32e0f9719d60ca5e1e
private suspend fun rotateImageCorrectly() = withContext(Dispatchers.IO) {
        val sourceBitmap = MediaStore.Images.Media.getBitmap(contentResolver, photoFile.toUri())

        val exif = ExifInterface(photoFile.inputStream())
        val rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)
        val rotationInDegrees = when (rotation) {
            ExifInterface.ORIENTATION_ROTATE_90 -> 90
            ExifInterface.ORIENTATION_ROTATE_180 -> 180
            ExifInterface.ORIENTATION_ROTATE_270 -> 270
            ExifInterface.ORIENTATION_TRANSVERSE -> -90
            ExifInterface.ORIENTATION_TRANSPOSE -> -270
            else -> 0
        }
        val matrix = Matrix().apply {
            if (rotation != 0) preRotate(rotationInDegrees.toFloat())
        }

        val rotatedBitmap =
            Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.width, sourceBitmap.height, matrix, true)

        rotatedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(photoFile))

        sourceBitmap.recycle()
        rotatedBitmap.recycle()
    }

The EXIF info is being saved correctly, but that doesn't mean that other apps will handle the EXIF correctly, right?

That's correct, but we can't feasibly accommodate for bugs in other applications. EXIF metadata embedded in JPEG images has been a well-established spec for a long time now.
By doing what is being suggested with your code snippet, you are re-compressing the JPEG image and thus there is a potential loss of quality (however insignificant that might be). You will also be compressing the image using Bitmap's compression method, whereas the JPEG provided to you by the CameraX API will be coming from the camera module itself, which is encoding the image in a way that has likely been optimized for the hardware.

@owahltinez you are correct with all your observations. I just wanted to share how I did to save the photo in the correct orientation.

Closing since we now understand that this is not an issue with the sample itself, just lack of proper EXIF support in other photo viewing software. Feel free to reopen if I'm not understanding correctly.

Good afternoon!
The problem really exists and for a long time I could not find a worthy solution. When using the front camera, the image on different devices is sideways or upside down, I'm not talking about the fact that it is a mirror.
In jpg itself there are meta tags and when manually specifying .setTargetAspectRatio it rotates.
This problem existed even before the advent of camerax, but we are well aware that camerax was implemented to simplify the implementation of camera solutions on all devices. But as the problem was, it remained, if you type in the search engine a request, why the image from the front camera is upside down and how to fix it, there will be many requests.
Here is my code:
void startCamera() {
        CameraX.unbindAll();

        String typeCamera = getIntent().getStringExtra("typeCamera");
        CameraX.LensFacing LensFacing = CameraX.LensFacing.BACK;
        int Rotation = getWindowManager().getDefaultDisplay().getRotation();

        if (typeCamera.equals("front")) {
            try {
                if (CameraX.hasCameraWithLensFacing(CameraX.LensFacing.FRONT)) {
                    LensFacing = CameraX.LensFacing.FRONT;
                    //Rotation = Surface.ROTATION_180;
                } else {
                    LensFacing = CameraX.LensFacing.BACK;
                }
            } catch (CameraInfoUnavailableException e) {
                e.printStackTrace();
            }
        }

        int aspRatioW = cameraView.getWidth(); //get width of screen
        int aspRatioH = cameraView.getHeight(); //get height
        Rational asp = new Rational(aspRatioW, aspRatioH); //aspect ratio
        Size screen = new Size(aspRatioW, aspRatioH); //size of the screen

        PreviewConfig pConfig = new PreviewConfig.Builder()
                .setTargetAspectRatio(asp)
                .setTargetResolution(screen)
                .setLensFacing(LensFacing)
                .build();
        Preview preview = new Preview(pConfig); //lets build it

        preview.setOnPreviewOutputUpdateListener(
                new Preview.OnPreviewOutputUpdateListener() {
                    //to update the surface texture we have to destroy it first, then re-add it
                    @Override
                    public void onUpdated(Preview.PreviewOutput output) {
                        ViewGroup parent = (ViewGroup) cameraView.getParent();
                        parent.removeView(cameraView);
                        parent.addView(cameraView, 0);

                        cameraView.setSurfaceTexture(output.getSurfaceTexture());
                        updateTransform();
                    }
                });

        /* image capture */
        ImageCaptureConfig imgCapConfig = new ImageCaptureConfig.Builder()
                .setCaptureMode(ImageCapture.CaptureMode.MIN_LATENCY)
                .setTargetRotation(Rotation)
                .setLensFacing(LensFacing)
                .build();
        final ImageCapture imgCap = new ImageCapture(imgCapConfig);

        final ImageButton cameraButton = findViewById(R.id.camera_button);

        cameraButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v(TAG, "CameraButton clicked");
                cameraButton.setVisibility(View.INVISIBLE);

                File file = new File(Environment.getExternalStorageDirectory() + "/" + System.currentTimeMillis() + ".jpg");
                imgCap.takePicture(file, new ImageCapture.OnImageSavedListener() {
                    @Override
                    public void onImageSaved(@NonNull File file) {

                        String msg = "Photo capture succeeded: " + file.getAbsolutePath();
                        Log.v(TAG, msg);

                        CameraX.unbindAll();

                        final Button okButton = findViewById(R.id.camera_buttom_ok);
                        okButton.setVisibility(View.VISIBLE);
                        okButton.setOnClickListener(null);

                        final Button renewButton = findViewById(R.id.camera_buttom_renew);
                        renewButton.setVisibility(View.VISIBLE);
                        renewButton.setOnClickListener(null);

                        okButton.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Log.v(TAG, "OkButton clicked");

                                okButton.setVisibility(View.INVISIBLE);
                                renewButton.setVisibility(View.INVISIBLE);

                                returnIntent.putExtra(RETURN_FILE, file.getAbsolutePath());
                                setResult(RESULT_OK, returnIntent);

                                finish();
                            }
                        });
                        renewButton.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Log.v(TAG, "RenewButton clicked");
                                recreate();
                            }
                        });
                    }

                    @Override
                    public void onError(@NonNull ImageCapture.ImageCaptureError useCaseError, @NonNull String message, @Nullable Throwable cause) {
                        String msg = "Photo capture failed: " + message;
                        Toast.makeText(getBaseContext(), msg, Toast.LENGTH_LONG).show();
                        if (cause != null) {
                            cause.printStackTrace();
                        }
                    }
                });
            }
        });

        /* image analyser */

        ImageAnalysisConfig imgAConfig = new ImageAnalysisConfig.Builder()
                .setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
                .setLensFacing(LensFacing)
                .build();

        ImageAnalysis analysis = new ImageAnalysis(imgAConfig);

        analysis.setAnalyzer(
                new ImageAnalysis.Analyzer() {
                    @Override
                    public void analyze(ImageProxy image, int rotationDegrees) {
                        //y'all can add code to analyse stuff here idek go wild.
                    }
                });

        //bind to lifecycle:
        CameraX.bindToLifecycle(this, analysis, imgCap, preview);
    }

Thanks very much !


Istio v2 upgrade fails from 1.8.6 to 1.9.x when policy is enabled previously and the charts are uninstalled and reinstalled upgrade version check failed: 1.8.6 -> 1.9.8. Error: found 1 unsupported v1alpha1 security policy

Rancher Server Setup

Rancher version: v2.5-head commit 47e2c3
Installation option (Docker install/Helm Chart): Docker install

If Helm Chart, Kubernetes Info: k3s
Cluster Type (RKE1, RKE2, k3s, EKS, etc):
Node Setup: 1 node
Version: v1.21.3+k3s1

Proxy/Cert Details: self-signed

Information about the Cluster

Kubernetes version: v1.20.10
Cluster Type (Local/Downstream): Downstream infrastructure provider 3 worker, 1 etcd, 1 cp
Proxy/Cert Details: self-signed

Describe the bug
If we install istio charts version v1.7.3 with policy enabled, upgrade it to later versions, installation fails. If we then uninstall istio charts and re-install with the version v1.8.6 [policy is not enabled, option not present] and upgrade it to v1.9.8, the upgrade still fails.
Note: Upgrade from v1.8.6 to v1.9.8 works fine on a freshly installed istio when no prior installation was made.
To Reproduce

Create a downstream cluster with the nodes config as mentioned above
Install istio v2 charts version v1.7.301 with policy enabled
Upgrade it to v1.8.600 [installation goes fine] and then upgrade to v1.9.8 [installation fails]
Uninstall istio from the apps - verified kiali crd and istio are removed and all the corresponding deployments
Install istio version v1.8.6
Deploy book demo app
Upgrade to v1.9.8 version [also happens if we upgrade to any 1.9.x version]

Result
Istio installation fails with the error in istioctl-installer
Warning [IST0002] (CustomResourceDefinition clusterrbacconfigs.rbac.istio.io) Deprecated: Custom resource type rbac.istio.io ClusterRbacConfig is removed
Warning [IST0002] (CustomResourceDefinition rbacconfigs.rbac.istio.io) Deprecated: Custom resource type rbac.istio.io RbacConfig is removed
Warning [IST0002] (CustomResourceDefinition servicerolebindings.rbac.istio.io) Deprecated: Custom resource type rbac.istio.io ServiceRoleBinding is removed
Warning [IST0002] (CustomResourceDefinition serviceroles.rbac.istio.io) Deprecated: Custom resource type rbac.istio.io ServiceRole is removed
Info [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection.
running istioctl upgrade
2021-09-09T21:03:27.552217Z	info	proto: tag has too few fields: "-"
Control Plane - istio-ingressgateway pod - istio-ingressgateway-6f5786b7cb-4776r - version: 1.8.6
Control Plane - istiod pod - istiod-cc6d7ccfc-lhn9b - version: 1.8.6
2021-09-09T21:03:27.932737Z	warn	found 6 CRD of unsupported v1alpha1 security policy: [clusterrbacconfigs.rbac.istio.io meshpolicies.authentication.istio.io policies.authentication.istio.io rbacconfigs.rbac.istio.io servicerolebindings.rbac.istio.io serviceroles.rbac.istio.io]. The v1alpha1 security policy is no longer supported starting 1.6. It's strongly recommended to delete the CRD of the v1alpha1 security policy to avoid applying any of the v1alpha1 security policy in the unsupported version
2021-09-09T21:03:27.932776Z	info	Error: upgrade version check failed: 1.8.6 -> 1.9.8. Error: found 1 unsupported v1alpha1 security policy: [meshpolicies.authentication.istio.io//default]. The v1alpha1 security policy is no longer supported starting 1.6. To continue the upgrade, Please migrate to the v1beta1 security policy and delete all the v1alpha1 security policy, See https://istio.io/news/releases/1.5.x/announcing-1.5/upgrade-notes/#authentication-policy and https://istio.io/blog/2019/v1beta1-authorization-policy/#migration-from-the-v1alpha1-policy
Error: upgrade version check failed: 1.8.6 -> 1.9.8. Error: found 1 unsupported v1alpha1 security policy: [meshpolicies.authentication.istio.io//default]. The v1alpha1 security policy is no longer supported starting 1.6. To continue the upgrade, Please migrate to the v1beta1 security policy and delete all the v1alpha1 security policy, See https://istio.io/news/releases/1.5.x/announcing-1.5/upgrade-notes/#authentication-policy and https://istio.io/blog/2019/v1beta1-authorization-policy/#migration-from-the-v1alpha1-policy
error found during istioctl upgrade

Expected Result
Istio installation should have gone through as it was un-installed and re-installed with no prior crds present.
Additional context
Ref issue: https://github.com/rancher/rancher/issues/33843

After checking through several different istio/istio sources, this is the recommended path to resolve these upgrade errors:
Check to see if you have resources to migrate
Run the following commands to generate a list of resources that will need migrated:
kubectl get policies.authentication.istio.io --all-namespaces
kubectl get meshpolicies.authentication.istio.io --all-namespaces
kubectl get rbacconfigs.rbac.istio.io --all-namespaces
kubectl get clusterrbacconfigs.rbac.istio.io --all-namespaces
kubectl get serviceroles.rbac.istio.io --all-namespaces
kubectl get servicerolebindings.rbac.istio.io --all-namespaces
If this does not output any resources, skip forward to the cleanup step.
Migrating Resources:
Using the resources that were output from the prevous section, determine if you would like to migrate them manually or utilize an Istio provided tool. Follow the Istio documentation to determine the specific changes you will need to make for your set up.
Additional Resources about the security policy deprecation:
https://istio.io/latest/news/releases/1.6.x/announcing-1.6/upgrade-notes/#support-ended-for-v1alpha1-security-policy
https://istio.io/latest/news/releases/1.5.x/announcing-1.5/upgrade-notes/#authentication-policy
Cleanup
Run the following commands to finish cleanup:
kubectl delete clusterrbacconfigs.rbac.istio.io --all-namespaces
kubectl delete meshpolicies.authentication.istio.io --all-namespaces
kubectl delete policies.authentication.istio.io --all-namespaces
kubectl delete rbacconfigs.rbac.istio.io --all-namespaces
kubectl delete servicerolebindings.rbac.istio.io --all-namespaces
kubectl delete serviceroles.rbac.istio.io --all-namespaces
And finally remove the istio-policy deployment:
kubectl delete deployment istio-policy --namespace istio-system
Once you have completed the steps to migrate and cleanup resources, you are ready to upgrade to a newer version of istio. Reminder: Istio supports one minor version upgrade at a time to enusre the best upgrade path. It is not recommended to go directly to the latest version if it is more than one minor version up.

Assigning to @ryansann for dev-validate.

I was able to validate that the original error can be avoided by following the instructions @brendarearden provided above.
The steps I followed were:

Deploy downstream RKE cluster
Install Istio v1.7.301
Install BookInfo app
Migrate / Cleanup
Upgrade to v1.8.600
Migrate / Cleanup
Upgrade to v1.9.600
Observe no errors and BookInfo application functions normally


Pgn parsing errors

https://drive.google.com/file/d/14G0l7D8yO6rPp9CCWA0iTw7_c9kKhVyj/view?usp=drive_link

oh, my mistakes. FIsher randoms.

i dont need fischer random. But stil multiple parsing errors in this files.

  It has black moves as e.g. "1. ... d5".  Extra spaces and too many dots. But, well, ChessBase and chess.com (not lichess.org to their credit) handle this garbage so I modified the Chess Forge's parser to tolerate that too.
Btw which site/tool generated this PGN?

🐍😜

Oh, ok, I take back the negativity from my above comment then :)

Seriously though, I thought this was from some web site and I was disappointed that they would not observe the exact PGN format.  However, if this is a script that you are developing, then it is understandable, just as the bugs in Chess Forge are :)  Anyway, it helped me make the parser more robust.
Btw I am really interested what the input to this script is.  Where do you get the "raw" text from and what format it is in?  You have produced a lot of very interesting Workbooks (not just in the sense that they expose issues in Chess Forge, but genuinely interesting).

Annotated games are download from chess.com. https://www.chess.com/analysis?tab=analysis
Bookmoves and  middlegame positions and Endgames are download from stockfish. https://github.com/official-stockfish/books
Puzzles from Lichess. https://database.lichess.org/#puzzles
I will share all my files here. (parsing error file also uploaded here GameOfTheDay.rar. Do check it. )
https://drive.google.com/drive/folders/1HzGE9TKIuVT76WURbePtbtp2dDcz4OUi?usp=drive_link

Oh, I missed the books folder on the stockfish github. Cool, thanks!


System names missing in Sentences tab

See e.g. http://quest.ms.mff.cuni.cz:7280/tasks/75-79/compare
The system names are empty everywhere (the drop-down list at the top, row headers, checkbox/radiobox descriptions "Show" / "Show diff for ").
It would be enough to call it SystemA and SystemB if the real name  is too long (but show the mapping to the real name at least once on the screen).

Done in b2521433008a25a09b2ff761421b1a93e189d33b. See http://quest.ms.mff.cuni.cz:7280/tasks/75-79/compare.


Pretty output for optimization elements

What is the expected enhancement?
Printing a quadratic program currently just prints the object reference. It would be nice if
print(quadratic_program)

would print a readable overview of the problem, as with quadratic_program.prettyprint().
We can do this by overloading the __str__ method. While changing this we probably
can also overload the __repr__ method to print a unique identifier of the quadratic program.
Should we do a similar thing for other objects?

I agree with you.
The drawback of prettyprint format is that it does not include the information of lower bounds and upper bounds of variables. So, I used LP format in the tutorials.

Including lower and upper bounds would probably good, yes. We can just add them to the output. Maybe we should remove the prettyprint function then as well, since it will be covered by __str__.

Hi @Cryoris , I am having look at it.
Should I wait with the pull request until #981 is merged, to avoid conflicts?

Great to hear!
The batch-generation PR should not touch the same places of code, I think you would be fine to start. 🙂

Hi @Cryoris
I implemented str method with export_to_lp_string,
and I agree to remove the prettyprint, since it is not used anywhere in qiskit.
How would you override the repr ? Its default implementation returns <qiskit.optimization.problems.quadratic_program.QuadraticProgram object at 0x1340c76d0> and overriding str does not change repr.
What other objects did you have in mind, where we could provide str implementation?


Add additional tests for tag functionality

Codecov Report

Merging #5446 into master will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5446      +/-   ##
==========================================
+ Coverage   82.82%   82.85%   +0.03%
==========================================
  Files         134      134
  Lines      147807   147807
==========================================
+ Hits       122417   122469      +52
+ Misses      25390    25338      -52

Impacted Files
Coverage Δ

src/if_xcmdsrv.c
86.17% <0%> (-0.36%)
:arrow_down:

src/drawline.c
84.64% <0%> (-0.14%)
:arrow_down:

src/terminal.c
81.81% <0%> (-0.04%)
:arrow_down:

src/window.c
88.33% <0%> (+0.03%)
:arrow_up:

src/channel.c
84.29% <0%> (+0.07%)
:arrow_up:

src/gui.c
63.63% <0%> (+0.15%)
:arrow_up:

src/tag.c
90.97% <0%> (+2.78%)
:arrow_up:

Continue to review full report at Codecov.

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


Add HomeKit support for media players

Description:
Adds support for media players in HomeKit. Entities will be shown as switches within HomeKit. Available modes are on_off, play_pause, play_stop, and toggle_mute. Uses supported_features to determine the default mode but can be customized in entity_config.
Related issue (if applicable): N/A
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#5378
Example entry for configuration.yaml (if applicable):
homekit:
  entity_config:
    media_player.living_room:
      mode: play_pause

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

This is already possible with templates. Why would we hack it into the HomeKit component?

@cdce8p

How do you plan to cover the case the switches for all modes should be added? IMO this should be the default as well. Can be excluded via the config.

Sorry, I don’t understand the question...

Most media_player entites support more then just one mode. I don't think it's far fetched to think that users also want to be able to control all of those from the Home App. Currently it's limited to just on swich per entity or am I getting something wrong?

OK, I thought that’s what you meant. Valid point, I agree that we should support multiple modes for one entity if possible. I’ll look into it.


Gradient looks Darker on Android vs. iOS

import 'package:flutter/material.dart';

void main() {
  runApp(new MaterialApp(
    home: new Scaffold(
      appBar: new AppBar(
        title: new Text("Android looks Darker"),
      ),
      body: new SizedBox.expand(
          child: new DecoratedBox(
        decoration: new BoxDecoration(
          gradient: new LinearGradient(
            begin: FractionalOffset.bottomCenter,
            end: FractionalOffset.topCenter,
            stops: <double>[0.2, 0.6, 1.0],
            colors: <Color>[
              new Color(0xCC000000),
              new Color(0x55000000),
              new Color(0x00FFFFFF)
            ],
          ),
        ),
      )),
      // For color comparison:
      floatingActionButton: new FloatingActionButton(
        onPressed: null,
        child: new Icon(Icons.add),
      ),
    ),
  ));
}

This report came in from Posse.  @chinmaygarde believes this is due to color correction never triggering on Android devices.  @brianosman

@chinmaygarde offered this diagnosis offline:
"""
After more investigation, it turns out that sRGB support is enabled on iOS but not on Android. sRGB support on Android is enabled via a check in the extensions here https://github.com/flutter/engine/blob/8ee1910ca9b20874022a7e931fdb9e7bb1baa62a/shell/platform/android/android_context_gl.cc#L220. I was able to find no Android device that reports that extension being present. Note however that adb shell dumpsys SurfaceFlinger does report that extension as being present. It is just not conveyed over to the application. @jason-simmons think it the EGL library hiding certain extensions from user applications.
From what I can tell, we are performing color correct rendering on iOS and cant perform the same on Android because the device says the extension is not present. Not sure how to proceed on this.
"""

@brianosman if you have a suggested workaround for how to achieve more similar looking coloring on Android and iOS that's also welcome. :)

Here is the iPhone Simulator (iPhone SE):

vs. a physical Moto G4:

@j9brown any ideas?

This turns out this also affects images in Posse's app.  Some images look extremely dark on Android vs. fine on iOS due to us not enabling color-correct Skia on Android.

With flutter/flutter@ead51eae68 on the same Moto G4 it's now:

That patches addressing this issue have landed.

For me, an issue with colours looking different still appears to be apparant.
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: FlatButton(
            color: const Color(0xFFFE9700),
            shape: StadiumBorder(),
            child: Text('Click me!'),
            onPressed: () {},
          ),
        ),
      ),
    ),
  );
}

iOS looks as expected:

Android makes the colour appear darker/more vibrant:

This was closed over 2 years ago. :)  Would you be willing to open a new bug so we can look at your issue separately @MichaelM97?  A closed bug is unlikely to get the necessary attention.  Thanks.

@eseidelGoogle Done #39113 :)


Resolve rendering artifacts for long messages with line renderer

As mentioned in the README.md:
https://github.com/Byron/prodash/blob/a1054e89b6f5bbdead1a5c2f975cdce0da0700e7/README.md#L100-L106
Dynamically created messages will frequently be longer than a single line, and so messages rendered by code that is out of the UI's control (as with #8), make handling of longer lines more important.

Thanks for highlighting this. That would be fixed nearly for free with the VTE feature toggle, I'd hope, even though truncating a message with terminal escape sequences in it doesn't seem super trivial, but maybe can be made to work as an MVP that is better than not handling it at all.


The model from the example causes an error during build.

The model from the example causes an error during build.
Model from example
https://github.com/simolus3/moor/blob/master/moor/example/example.dart
Errors:
Failed to precompile build_runner:build_runner:
../../tools/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:1600:40: Error: Getter not found: 'topLevelVariable'.
      return kinds.contains(TargetKind.topLevelVariable);
                                       ^^^^^^^^^^^^^^^^
../../tools/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2024:23: Error: Getter not found: 'topLevelVariable'.
      case TargetKind.topLevelVariable:
                      ^^^^^^^^^^^^^^^^
../../tools/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2024:23: Error: Type 'dynamic' of the case expression is not a subtype of type 'TargetKind' of this switch expression.
 - 'TargetKind' is from 'package:meta/meta_meta.dart' ('../../tools/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib/meta_meta.dart').
      case TargetKind.topLevelVariable:
                      ^
../../tools/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.6.0/lib/src/error/best_practices_verifier.dart:2001:13: Context: The switch expression is here.
    switch (this) {
            ^
pub finished with exit code 1
The terminal process "/Users/***/development/tools/flutter/bin/flutter 'pub', 'run', 'build_runner', 'build'" terminated with exit code: 1.

And package MOOR on pub:
Pass static analysis
0/30
0/30 points: code has no errors, warnings, lints, or formatting issues
Failed to run dartanalyzer

The analyzer version 1.6.0 is broken, can you try adding this to your pubspec temporarily:
dev_dependencies:
  analyzer: ^1.7.0

This isn't moor's fault and will likely affect other packages too, but I'll take a look at what moor can do to fix this. I think the analysis failure on pub should be unrelated (obviously the analyzer shouldn't just crash), I'll take a look at that too.

The analyzer version 1.6.0 is broken, can you try adding this to your pubspec temporarily:
dev_dependencies:
  analyzer: ^1.7.0

This isn't moor's fault and will likely affect other packages too, but I'll take a look at what moor can do to fix this. I think the analysis failure on pub should be unrelated (obviously the analyzer shouldn't just crash), I'll take a look at that too.

Now he doesn't like the SDK
environment:
sdk: ">=2.12.0 <3.0.0"
So, because flutter_moor_example depends on both analyzer ^1.7.0 and flutter_test any from sdk, version solving failed.
pub get failed (1; So, because flutter_moor_example depends on both analyzer ^1.7.0 and flutter_test any from sdk, version solving failed.)
exit code 1

Uh oh, does analyzer: '>=1.1.0 <1.6.0' work?

It works:
https://github.com/dart-lang/sdk/issues/46142#issuecomment-848631599
dependency_overrides:
  analyzer: '1.5.0'

Uh oh, does analyzer: '>=1.1.0 <1.6.0' work?

And it works too


Intermittent block missed

On different machines we've seen a tx hit the mempool but the corresponding block failure to be recorded.
The problem fixes itself on restart, but until it's restarted the node is stuck.
The last time this happened it was a deadlock in the consensus package.
A good first start would be to add logging:

when a block hits the pubsub handler
when it gets decoded
after its validated
when it goes into consensus

There should already be logging around the remaining block handling events.

Looks like it makes it into the consensus engine but not out:
2023-09-18T17:35:33Z  [DEBUG]  Mempool: New transaction 90031a154aacb59cb583016d9d071d6c7c09f220984f4c2a1e526729e5bf0987
2023-09-18T17:35:33Z  [DEBUG]  [PUBSUB] new incoming block: 3ff3e6280cbb4f3da332b3e880464fdea0686f0a1ee46fc85a4722cdb4fe7c76
2023-09-18T17:35:33Z  [DEBUG]  [CONSENSUS] new block: 3ff3e6280cbb4f3da332b3e880464fdea0686f0a1ee46fc85a4722cdb4fe7c76

Closing for now.
There were two bugs that have been fixed. Not sure if any were the cause of this issue but we fixed:

A deadlock due to a bug in the locking when conflicting blocks were received.
Libp2p failing to connect some nodes through pubsub in some instances.

The deadlock was likely the main problem here as the bug was in the code when this issue was first opened.


I cant connect ( app cant find my band) miband 4

I'm trying establish a connection between app and band (mi band 4) but can't do it. Is that because I'm using miband 4?

it works with miBand 3 only

thank you @Spayker


AssetBundle $publishOptions['only'] still publishes empty directories

I currently have the following asset bundle:
class FontAwesomeAsset extends AssetBundle
{
    public $sourcePath = '@bower/components-font-awesome/';

    public $publishOptions = [
        'only' => [
            'css/*',
            'fonts/*',
        ],
    ];

    public $css = [
        'css/font-awesome.min.css',
    ];
}

Works good, but for some reason I still end up with the empty directories that aren't included in the "only" list. (less / scss). I think the "only" should apply to directories too, not just files.

I can confirm the issue

I've written the test for this: https://github.com/quantum13/yii2/commit/6923ae31ee5735ac6ad73707be1acb9432132628
I've also found out the reason, why it does not work:
AssetManager::publishDirectory calls FileHelper::copyDirectory
FileHelper::copyDirectory calls filterPath in which option 'only' used only for files (because of e11ce60023b1da918eac8359fe674beca5c7127e)
@samdark could you please say, is it expected behaviour of option 'only' of filterPath and it shouldn't be corrected to affect to both files and dirs?

The commit looks intentional. I'm not sure why though... @yiisoft/core-developers ?

I guess it's not expected

What's not expected?

I looked to commit again, it may be done for using for recursion in findFiles. If condition !is_dir will not exist, findFiles in current realization couldn't find files in directories which not satisfy "only".

It was an answer to

@samdark could you please say, is it expected behaviour of option 'only' of filterPath and it shouldn't be corrected to affect to both files and dirs?

Hello. I need help:)
There is big mismatch in docs of functions, what they realy and docs of functions which they use.
I do not know what to fix.
Chain of calls which use this $publishOptions with option 'only':
AssetBundle::publish() -> AssetManager::publish() -> AssetManager::publishDirectory() -> BaseFileHelper::copyDirectory() -> BaseFileHelper::filterPath()
AssetBundle::publish():
In guide (http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#asset-options) is written that syntax 'fonts/' can be used to copy only dir fonts (i.e. whole dire fonts with subdirs and files).
It doesn't work
BaseFileHelper::copyDirectory():
In phpdoc: A path matches a pattern if it contains the pattern string at its end. For example, '.php' matches all file paths ending with '.php'.
It also doesn't work
BaseFileHelper::filterPath():
In phpdoc (lreference to BaseFileHelper::findFiles): Directory paths are not checked against them. Same pattern matching rules as in the "except" option are used (http://www.yiiframework.com/doc-2.0/yii-helpers-basefilehelper.html#findFiles()-detail)

Must AssetBundle::publish() and BaseFileHelper::copyDirectory() work as written in guide and doc? Or maybe docs must be rewritten?

The weird behaviour of option 'only' was already reported in #7307.

php         'except' => [             'fonts/',             'css/',         ]
works fine w/o asterisks
but 'only' only with asterisks + empty folders - as mentioned above

I have the same problem...
I wanted that the less file in my assetBundle is converted but i don't want the *.less files published to the assets directory.
I tried this settings the conversion itself works perfectly without publishOptions.
But as also written here https://github.com/yiisoft/yii2/issues/2511 these 2 options were added for exactly this reason.
So how does it work??
public $css = [
        'css/breadcrumbs.less',
];

public $publishOptions = [
        "only" => [
            "css/*",
            "js/*",
        ],
        'except' => [
            "doc/",
            //"*.less",    // css file ins't generated any more...
        ],
        "forceCopy" => YII_DEBUG,
];

with "only"=>[ "css/"] which is given in the guide http://www.yiiframework.com/doc-2.0/guide-structure-assets.html it only creates an empty css directoy. With "only"=>[ "css/*"]  it copies at least every file from the css directory.
The problem is with the except  *.less no css file is generated at all.
Can someone explain how the only and except parameters should work so that I get my css file generated from the less file but don't publis the less file?
I thought those parameters have been added for this issue https://github.com/yiisoft/yii2/issues/2511

Still no fix?


Missing textures

Some of the weapons have missing textures. I'm using the latest version of the mod.

same issue, same exact weapons causing the issue. mod version 1.4.2: running on Quilt version 1.19.2: loader version 17.11 (latest)

I'm having the same issue. In my case I think it's due to an incompatibility with brrp used by Extended Block Shapes
I'm using Fabric 0.14.12 1.19.2 and more mods.

I am as well, and can't figure out why. I own a server, and it upsets me that none of us can use any of the cool weapons. If anyone has any fixes, please let me know!

Yes it happens due to an incompatibility with brrp. Medieval Weapons uses ARRP.

you can fix that, using this mod https://www.curseforge.com/minecraft/mc-mods/arrp/files

With the latest version of this mod you can use either BRRP or ARRP but not both at the same time.
Be aware that other mods can include one of these.


Update release package contents [phab:D378]

Created by schroederc at 2015-06-30 17:48:29:

shahms accepted this revision at 2015-06-30 18:19:18

schroederc closed via commit 33d06e037008fce34216f8923d130b7f734cbf8f at 2015-06-30 18:20:03


Deprecation of add_custom_parameter?

It feels really odd that add_custom_parameter is deprecated when it's still in the documentation and I can't find any info on the suggested replacement, so is that available somewhere?
For example, this is the documentation I could find and it shows add_customer_parameter:
https://docs.newrelic.com/docs/apm/agents/python-agent/python-agent-api/addcustomparameter-python-agent-api/
https://docs.newrelic.com/docs/data-apis/custom-data/custom-events/collect-custom-attributes/

The documentation page isn't updated yet, it should be live this afternoon.
The API was just renamed to add_custom_attribute and add_custom_attributes instead of parameter to match other agents. The existing APIs will continue to work as a pass through with a deprecation warning.

Could that info be provided somewhere? Maybe in the release notes?

We have tweaked the release notes to clarify that the original API has been renamed. The API guide docs regarding this change are undergoing review from our docs team and should be up once that process has completed.

Could that be updated in the release notes here on GitHub as well? I typically just see them here and imagine that's true for a lot of developers (i.e. that documentation on the website is nice but typically not where developers will look for it)

Definitely, we totally understand and appreciate the feedback! Once our release notes go live on the docs site, we update the GitHub release with a link to the notes. The v8.3.0 release has now been updated.


Add Faker::StrangerThings

Added Stranger Things character and quotes with passing tests and docs.

@Connerh92 could you please rebase, install the new gems and run bundle exec rubocop -a?

Could you please update the CHANGELOG.md and add the title of this PR + your github id?

Thanks for helping out.


a little foolish question

Hi, I'm a beginner in learning flask, would you love to answer me some questions? plz< _>
emm,I don't know how to start this project,by flasky file? I have learnt to run manage.py to work that, but
in the current version, seems this file do not exist.
Then, there is so much config file in the project, looks like so confusing, mystifying for me.I am reading the book for weeks, I find myself always lost in riddles.Need i understand or master them?
TKS.

This repository is for the 2nd edition of my book. If you have the 1st edition, then use this repository instead: https://github.com/miguelgrinberg/flasky-first-edition.
The manage.py file and the Flask-Script extension are not necessary with newer versions of Flask, for that reason the 2nd edition of the book does not have them.


(Vagrant) When host changes network (IP subnets), hostkeeper doesn't renew via DHCP

Hmm, right now I could "renew" the IP through issuing:
$ vagrant reload
$ vagrant provision

Not sure if this is a proper solution or just worked by accident.


Update cluster.parameters.json with updated AKS version

Update AKS version from 1.22.4 (no longer available in most locations) to AKS 1.22.11 (which is available in most locations)

Looks like someone else already fixed this so I'm canceling the pr


Breast_Cancer_Prediction

Related Issue

Info about the related issue #97

[x] GSSOC Participant

[x] Contributor

Closes: #97  that will be closed through this PR
Added a Breast Cancer Prediction Model
Give a clear description what modifications you have made
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Describe how have you verified the changes made
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[ x] My changes generate no new warnings.
[ x] I have added tests that prove my fix is effective or that my feature works.
[ x] Any dependent changes have been merged and published in downstream modules.

Screenshots

Original
Updated

Original Screenshot
Updated Screenshot

@adithya-s-k @miraj0507 Please review and merge if alright.

Labels are given at the issue stage which already has been assigned , don't
worry about this
On Sun, 9 Jul 2023 at 17:03, smty2018 @.***> wrote:

@adithya-s-k https://github.com/adithya-s-k @miraj0507
https://github.com/miraj0507 can you please add the labels, otherwise
it wont be added to our scores . Thanking you in advance.
—
Reply to this email directly, view it on GitHub
https://github.com/CognitiveLab-tech/World-of-AI/pull/121#issuecomment-1627688965,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO5FSUS5GIJK3ORLXQTFERDXPKJI7ANCNFSM6AAAAAAZDTA42Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

Labels are given at the issue stage which already has been assigned , don't worry about this
…
On Sun, 9 Jul 2023 at 17:03, smty2018 @.> wrote: @adithya-s-k https://github.com/adithya-s-k @miraj0507 https://github.com/miraj0507 can you please add the labels, otherwise it wont be added to our scores . Thanking you in advance. — Reply to this email directly, view it on GitHub <#121 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO5FSUS5GIJK3ORLXQTFERDXPKJI7ANCNFSM6AAAAAAZDTA42Q . You are receiving this because you were mentioned.Message ID: @.>

@miraj0507 it's not getting counted...can you add the proper labels please


[Improvement 11072][common] Added HTTPS request support in kerberos environment

Purpose of the pull request
Added HTTPS request support in kerberos environment
This close#11072
Brief change log
Verify this pull request
This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

Merging #11127 (18a31bd) into dev (083ab2b) will increase coverage by 0.07%.
The diff coverage is 49.78%.

:exclamation: Current head 18a31bd differs from pull request most recent head ff94d22. Consider uploading reports for the commit ff94d22 to get more accurate results

@@             Coverage Diff              @@
##                dev   #11127      +/-   ##
============================================
+ Coverage     40.36%   40.43%   +0.07%
- Complexity     4865     4874       +9
============================================
  Files           943      950       +7
  Lines         37061    37179     +118
  Branches       4068     4073       +5
============================================
+ Hits          14958    15032      +74
- Misses        20600    20635      +35
- Partials       1503     1512       +9

Impacted Files
Coverage Δ

.../org/apache/dolphinscheduler/common/Constants.java
83.33% <ø> (ø)

...phinscheduler/common/utils/KerberosHttpClient.java
73.07% <0.00%> (+73.07%)
:arrow_up:

.../datasource/api/client/CommonDataSourceClient.java
0.00% <0.00%> (ø)

...atasource/api/plugin/DataSourceClientProvider.java
0.00% <0.00%> (ø)

...r/plugin/datasource/hive/HiveDataSourceClient.java
1.36% <0.00%> (+0.03%)
:arrow_up:

...er/master/builder/TaskExecutionContextBuilder.java
64.70% <ø> (ø)

...ler/server/master/event/TaskDelayEventHandler.java
0.00% <0.00%> (ø)

...r/master/event/TaskRejectByWorkerEventHandler.java
0.00% <0.00%> (ø)

...er/server/master/event/TaskResultEventHandler.java
0.00% <0.00%> (ø)

...r/server/master/event/TaskRunningEventHandler.java
0.00% <0.00%> (ø)

... and 56 more

Help us with your feedback. Take ten seconds to tell us how you rate us.

Good job! LGTM~

very thankful~~


Move config referencing out of plugin constructor

Move constructor code into hooks wrapper so that config parsing and setup is done in hooks rather than constructor. This allows for serverless variable interpolation to happen before the plugin executes.

not ready - wip

reopen

Cheers @mike-suggitt 🍻


add wrong space in attribute when formating html

Input
The code looked like this before beautification:

Expected Output
The code should have looked like this after beautification:

Actual Output
The  code actually looked like this after beautification:

Steps to Reproduce
Environment
OS:All
Settings
with any Setting

Hay there, I am new to open source, can you please mentor me and assign me some new basic issue which I can solve and give back to this open source community.

Hello can you assign me this task? And elaborate more and provide SS

It looks like this doesn't repro in the current version.

yeah its closed, I just saw the tag my bad

@xNOVA2 No problem, please look at one of the other "good first issue` items.


Mairold camera launcher multi image fix

Platforms affected
Motivation and Context
Api did not allow to select multiple media files from  library. It was possible to export media from device library one by one.
Description
Api was built so that it would get single Uri from Intent , process the Uri and send back to caller in required type (DATA_URL or FILE_URI).
Changes were made mainly in processResultFromGallery function. After changes it checks if Intent has single Uri or multiple Uris. Gathers them and puts into List of Uris. After that depending on the required destType (URL or URI) the Uris are processed one by one and results (URL Base64 String or URI filepath) are put into JSONArray which is then returned to caller with callbackContext.
Minimal changes were made also in other  functions in order for the multi media select to work.
Testing
MediaType == Photo changes were tested through debugging process and manual testing on the device.
Debugging showed that both DATA_URL and File_URL are successfully gathered to JSONArray and sent out to caller.
As caller was set up to only process first BASE64 of List then only first picture appears to UI. Technically with little change all pictures can appear on caller side.
MediaType == Video is not tested but technically  should work. Will return JSONArray containing files real paths.(Uris)
Checklist
None of below is properly checked :)

[ ] I've run the tests to see all new and existing tests pass
[ ] I added automated test coverage as appropriate for this change
[ ] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
[ ] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
[ ] I've updated the documentation if necessary

New commitment pushed with requested fixes.


An import path cannot end with a ".ts" extension. (TS 2.0.3)

Generating a new project with jspm init and specifying typescript as my transpiler, the convention for picking up typescript files is as follows:
packages: {
    "pets-gui": {
      "main": "main.js",
      "meta": {
        "*.ts": {
          "loader": "plugin-typescript"
        }
      }
    }
  }

My understanding is that this means everything with the .ts extension in the import is run through the typescript transpiler plugin.
However, Typescript 2.0.3 (called externally for intellisense) will report this as an error: An import path cannot end with a ".ts" extension. Consider importing './app.routing' instead, for instance. Of course, if I do that, the .ts files aren't transpiled by systemjs, and it just reports 404's as it tries to load "./app.routing" which doesn't exist.
Is there a work-around so I don't have to choose between SystemJS and my intellisense?
Apologies if this is the wrong place to raise this issue. Originally reported at https://github.com/jspm/jspm-cli/issues/2103
0.17.0-beta.28
Running against local jspm install.

devConfig: {
    "map": {
      "plugin-typescript"<EMAIL_ADDRESS>    },
    "packages": {
<EMAIL_ADDRESS>{
        "map": {
          "typescript"<EMAIL_ADDRESS>        }
      }
    }
  },

I think you need to add the defaultExtension: "ts" setting, see here for example

@jlost using jspm 0.17.0-beta.28 here and defaultExtension: "ts" on my package config works perfectly.
Here is what your config should look like.
packages: {
    "pets-gui": {
      "main": "main.ts", // or just "main"
      "defaultExtension" : "ts",
      "meta": {
        "*.ts": {
          "loader": "plugin-typescript"
        }
      }
    }
  }

Note that in the above you cannot use "main.js" it must be "main.ts" or simply "main".
The change in TypeScript behavior should not affect you. Importing files with an explicit .ts extension was never supposed to work and it doesn't need to. Even though it worked in the past it was a bad practice because it coupled your source to how it was transpiled.

@aluanhaddad

The change in TypeScript behavior should not affect you. Importing files with an explicit .ts extension was never supposed to work and it doesn't need to. Even though it worked in the past it was a bad practice because it coupled your source to how it was transpiled.

Users of plugin-typescript are very much affected.  Now we must have separate directories for TS, JS, TSX, and JSX files.  So we get no benefits from the decoupling.  If we ever needed to change the file extension, we will still have to change our import statements and the file name, but now we also have to change the directory.

@mavericken I see the problem. You have multiple source extensions in the same directory and thus setting "defaultExtension": "ts" does not resolve the problem. Actually, in TypeScript 2.0, TypeScript will try to resolve a file with a .js extension to a .ts or .tsx file if not found. So perhaps using .js extensions for your imports would be more effective.

@aluanhaddad Well, for TypeScript compiler itself, extension-less can already do the same thing, as it will also find the .ts or .tsx file.  I feel that the role of plugin-typescript is to allow any valid typescript to be imported into SystemJS.  Right now, this is not the case, as a valid typescript can contain both TS and TSX files in the same folder, but SystemJS + Plugin-Typescript cannot do that, so currently there exists valid typescript programs which Plugin-Typescript cannot support.


Fix default NodePaths saved in scene

Fixes #91591
I spent whole day writing tests for both #91591 and #82670
In the end it turned out that disabling #83343, or at least part of it, fixes both issues. I don't know what to think about it, maybe I'm missing something.
Putting as draft. If it's a correct solution I assume more code needs to be removed.

Maybe it would be good to ask @warriormaster12 to try this MR; it could help to make progress on it?
That would be beneficial to prevent regression on #83343.

I can certainly give it a look however I'm not sure if I'm going to be able to give any useful input on the matter since my understanding of the code is as much as I touched.

Hmm the assumption that I made in property_utils.cpp in regards of affecting duplication was wrong. Duplicating a node still works even without if check. The only thing that changes is an ability to revert exported Node values in  my_level.tscn provided by @Cronos87. Reverting them does nothing. Other variable types don't allow you to revert values in an instantiated  scene unless a user has changed the values.
However, if this only causes a cosmetic inconsistency then I don't see an issue in reverting the change.

Pushed a solution that doesn't break reverting.

There's a shadowing warning:
2024-06-02T09:13:55.7158314Z In file included from tests/test_main.cpp:115:
2024-06-02T09:13:55.7160011Z ./tests/scene/test_node.h: In function 'void TestNode::DOCTEST_ANON_FUNC_6591()':
2024-06-02T09:13:55.7446392Z ##[error]./tests/scene/test_node.h:526:9: error: declaration of 'child' shadows a previous local [-Werror=shadow]
2024-06-02T09:13:55.7448644Z   526 |   Node *child = ps->instantiate(PackedScene::GEN_EDIT_STATE_MAIN);
2024-06-02T09:13:55.7449569Z       |         ^~~~~
2024-06-02T09:13:55.7451191Z ./tests/scene/test_node.h:498:8: note: shadowed declaration is here
2024-06-02T09:13:55.7452605Z   498 |  Node *child = memnew(Node);
2024-06-02T09:13:55.7453464Z       |        ^~~~~

Thanks!

Many thanks for the fix and review! 🙏


Slicing with sorted lists maintains block structure

Previously indexing with a list would form one large block.  Out of
order elements in the list were handled by concatenating many block
slices together, then indexing again.
Now, if that list is sorted, we can index per block without shuffling
data around.  This stops giant-blocks from occurring and should improve
memory performance.
Example
In [1]: import dask.array as da
In [2]: x = da.ones(10, blockshape=(5,))

Unordered case, slice, concatenate, slice
In [3]: x[[1, 9, 2, 8]].dask
Out[3]:
{('wrapped_1', 0): (<function numpy.core.numeric.ones>, (5,)),
 ('wrapped_1', 1): (<function numpy.core.numeric.ones>, (5,)),
 ('x_1', 0): (<function operator.getitem>,
  (<function numpy.core.multiarray.concatenate>,
   (list,
    [(<function operator.getitem>, ('wrapped_1', 0), ([1, 2],)),
     (<function operator.getitem>, ('wrapped_1', 1), ([3, 4],))]),
    0),
  ([0, 3, 1, 2],))}

Ordered case, just straight slicing
In [4]: x[[1, 2, 8, 9]].dask
Out[4]:
{('wrapped_1', 0): (<function numpy.core.numeric.ones>, (5,)),
 ('wrapped_1', 1): (<function numpy.core.numeric.ones>, (5,)),
 ('x_2', 0): (<function operator.getitem>, ('wrapped_1', 0), ([1, 2],)),
 ('x_2', 1): (<function operator.getitem>, ('wrapped_1', 1), ([3, 4],))}

Fixes #137

cc @shoyer

Sweet! This should be a big help for groupby/resample in xray.

Care to exercise merge your privilege?

Sure, once I get a chance to look this over on my computer. Probably Sunday.


Video::get_basic_info() panics with unlisted videos

Here's an example:
#[tokio::main]
async fn main() {
    let video = rusty_ytdl::Video::new("LUq4oHF8W78").unwrap();
    let info = video.get_basic_info().await;
}

The commit 11f37d4 solved the issue. Thanks for the report.


email confirmation via code instead of link

I am planning to use this library in a single page application. If possible I would like my users to use a confirmation code/key rather than clicking on a link in order to confirm their email. That way they would not have to reload the app after sign up. Is there a way to do that?
I was thinking about encrypting the selector and token using a random key, then:

send the key to the user via email
send the encrypted selector and token to the app
have the user input the key in the app
have the app send both key and encrypted selector and token to the server
decrypt selector and token server side and then use $auth->confirmEmail

I don't know if it is doable, or secure.

This is definitely possible.
The important thing to pay attention to is that you will most likely want your confirmation codes to be short, e.g. 6-digit numeric codes.
This limits the key space so much that encryption with such codes as keys is basically useless.
What you could do instead is, in your database, create a simple plaintext mapping of your custom confirmation codes (e.g. 6-digit numeric) to the ones generated and used by this library:
TABLE confirmation_codes_to_selectors_and_tokens
COLUMN confirmation_code (e.g. 482947)
COLUMN selector (e.g. iHFvWfAL16n79ryAMBbpxSN9)
COLUMN token (e.g. YOWyHY8jGvmKxgXVI9hmv9Rp)

The short codes, however, have considerably less entropy than the selectors and tokens used by this library. That means they are much more likely to be guessed by attackers.
To prevent easy guessing, you should certainly limit the duration for which your custom codes are valid, and you may include a user ID or email address in the list of mappings so that attackers cannot guess codes for all users at once.
Does that help?

It does help, thank you very much.


bump version to 0.0.26-SNAPSHOT

Current coverage is 69.87% (diff: 100%)

Merging #158 into master will decrease coverage by 0.43%

@@             master       #158   diff @@
==========================================
  Files            59         59
  Lines          2358       2191   -167
  Methods           0          0
  Messages          0          0
  Branches        301        292     -9
==========================================
- Hits           1658       1531   -127
+ Misses          616        579    -37
+ Partials         84         81     -3

Powered by Codecov. Last update 5a8abfe...ec54689


Add FlatFieldCorrection in s991 .ini

There is no Flat field correction in the documentation of the s991 and when trying to use the API like in the 711 but for the 991, it doesn't work so I think this functionality is not implemented


PR: manpage generator: overcome encoding issues (#1109)

I found a fairly easy way to overcome the encoding issues addressed in #1109. I guess the proposed changes should be sufficient here. Generating man pages for the I18NDemo given in the examples section of the repo works perfect now.
Unfortunately, the patch breaks two exiting tests and I didn't find an easy way to make them work again. Can you have a look here?
Also while not strictly necessary, I would suggest to explicitly add the encoding attribute to the generated .adoc files (second commit).
Do we need test(s) for the patch? If so, can you take over or can you bring me on the right track here? Thanks.

Codecov Report

Merging #1112 into master will increase coverage by 0.04%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1112      +/-   ##
============================================
+ Coverage     94.35%   94.40%   +0.04%
  Complexity      448      448
============================================
  Files             2        2
  Lines          6612     6612
  Branches       1773     1774       +1
============================================
+ Hits           6239     6242       +3
+ Misses          100       97       -3
  Partials        273      273

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/picocli/CommandLine.java
94.25% <0.00%> (+0.04%)
309.00% <0.00%> (ø%)

Continue to review full report at Codecov.

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

Hi @deining, thanks for the PR.
I am not sure which tests broke, if I apply the patch all tests in picocli-codegen seem to pass.
Overall I like what you are doing here, and I would go one step further and make this an option, so that users can control the encoding. Making UTF8 the default seems a good idea.
What do you think?

About additional tests, once we add an option where users can control the encoding, I can add a test with some multi-byte character text.

Overall I like what you are doing here, and I would go one step further and make this an option, so that users can control the encoding. Making UTF8 the default seems a good idea.
What do you think?

According to this comment, asciidoctor discarded the :encoding: attribute and solely relies on UTF-8 as encoding for .adoc files. Having this learnt, letting the user control the encoding of the generated file does not seem an option to me any more. Also my second commit needs to be discarded.

Ah interesting. Like you said, that rules out the idea of user-specified encoding.
That simplifies things, that is good.
Thanks for investigating!
You mentioned some tests were breaking, but I did not see that. Which tests were that?
Other than that, I think this PR is ready to be merged.

Other than that, I think this PR is ready to be merged.

I typed a bit too fast... :-) Can you discard your second commit so we no longer add the :encoding: attribute?

Just discarded second commit.
About the breaking tests: these were false alarms.
PR should be ready for merging.

Thank you! Bedtime for me now. Will look further tomorrow!

Merged into master! Thanks for the contribution!


Fix bug in array items

This PR fixes a bug that's happening when a Schema object of type array contains an items property which itself is an array.
An example to reproduce the bug:
asyncapi: 2.0.0
info:
  title: Test
  version: 1.0.0

channels:
  test:
    publish:
      message:
        payload:
          type: array
          items:
            - type: object

The reason is that items can be either an array of objects or an object.

FYI @zdne, I found the bug on the playground :) Will deploy it as soon as possible. Thanks for reporting!


CCO Azure Governance Dashboard Version 2.6 Still has broken links to SVG files

CCO Azure Governance Dashboard Version 2.6 still has broken links to SVG files,w hicvh have since moved repos e.g.
https://azure.github.io/ccodashboard/assets/2020_Icons/StorageAccount.svg

Fixed with the new release, all the URIs are linked to the CCOInsights repo.


Hide content, avatars, etc from unsafe groups

There seem to be groups on chirp.social that aren't SFW, such as porn focused groups.
Idk if you tolerate those or don't want those on it, but if you do want to allow, then at least make it mandatory to mark it as nsfw and hide avatars and alike from being shown.
I say this because there is at least one such group and images and posts aren't behind a CW, which can be really bad if minors stumble upon it.
It would probably better to disallow NSFW in general but this is something up to you to decide.

@Andre601 Hi! Good point about minors. This is an important issue...
I put a NSFW/sensitive flag to the profile page that people can opt in to. For the ones that had "porn" in the name I went ahead and added that flag.
Closing the issue, but please let me know if you have any other thoughts!


Missing metrics on oracle-short

I have setup oracle_export 1.1.1 on Centos 6.9 64bit with Oracle <IP_ADDRESS>.0.
I can set oracle-short UP (with blue) in prometheus target. However, I run below commands without data return:
curl -s http://localhost:9161/metrics|grep oracledb_uptime
curl -s http://localhost:9161/metrics|grep oracledb_session
Starting command is as below:
/usr/local/bin/oracle_exporter -configfile "/home/appuser/oracle.conf"
INFO[0000] Starting Prometheus Oracle exporter 1.1.1     source="main.go:940"
INFO[0000] Config loaded:  /home/appuser/oracle.conf     source="main.go:942"
INFO[0000] Listening on :9161                            source="main.go:950"
Content of the configfile(/home/appuser/oracle.conf) is as below:
connections:

connection: /@
database: WSCTEST
instance: wsctest
alertlog:

file: /home/wang/app/oracle/diag/rdbms/wsctest/wsctest/trace/alert_wsctest.log
ignoreora:

ORA-00001
ORA-01033
ORA-01041
ORA-01089
ORA-01555
ORA-28
ORA-235
ORA-609
ORA-3136
queries:

sql: "select 1 from dual"
name: sample1
sql: "select 2 from dual"
name: sample2

Hello changmao01 !
With wich user do you connect to your instance or your database ?
In your oracle.conf, you must add your monitoring user and it password.
Exemple :
connections:
connection: user/password@wsctest
database: WSCTEST
instance: wsctest
alertlog:
file: /home/wang/app/oracle/diag/rdbms/wsctest/wsctest/trace/alert_wsctest.log
ignoreora:
ORA-00001
ORA-01033
ORA-01041
ORA-01089
ORA-01555
ORA-28
ORA-235
ORA-609
ORA-3136
queries:
sql: "select 1 from dual"
name: sample1
sql: "select 2 from dual"
name: sample2
#################
Before do it, create your user and password on your database and add grant select for all views and data that you want to collect on database.

After you do the curl command, do you see any error messages , like:
 ERRO[0010] Error connecting to database: ORA-12154: TNS:could not resolve the connect identifier specified  source="main.go:790"
If not, show the output of the curl command without grep!

@Seth1u , I have created one oracle database account for oracle export and grant some privileges to that account.

@floyd871 , I did not see ORA- errors after running curl command. Below are some abstracts:
curl -s http://localhost:9161/metrics|grep -v '^#'
go_gc_duration_seconds{quantile="0"} 6.5023e-05
go_gc_duration_seconds{quantile="0.25"} 7.3382e-05
go_gc_duration_seconds{quantile="0.5"} 7.4265e-05
....
go_threads 16
oracledb_error_unix_seconds{database="WSCTEST",dbinstance="wsctest"} 1.563732e+09
oracledb_exporter_last_scrape_duration_seconds 0.010519231
oracledb_exporter_last_scrape_error 0
oracledb_exporter_scrapes_total 6
oracledb_up{database="WSCTEST",dbinstance="wsctest"} 0
process_cpu_seconds_total 0.14
process_max_fds 65535
process_open_fds 17
process_resident_memory_bytes 3.2612352e+07
process_start_time_seconds 1.56375869435e+09
process_virtual_memory_bytes 8.74799104e+08
process_virtual_memory_max_bytes -1
promhttp_metric_handler_requests_in_flight 1
promhttp_metric_handler_requests_total{code="200"} 5
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
[appuser@scsp00395 ~]$ curl -s http://localhost:9161/metrics|grep -v '^#'|wc
50     100    2000
Below are some environments:
[appuser@scsp00395 ~]$ env|grep ORACLE
ORACLE_SID=wsctest
ORACLE_HOME=/home/wang/app/oracle/product/11.2.0/db_1

@Seth1u ,
Just now I read your comments again, and got the answer.
There're something wrong in my oracle.com as below:
/@
It should be replaced as:
user/password@tnsname
Replace the symbol "<" and ">".

Delete the file access.conf. Then the exporter scrapes the whole alertlog-file. Did you have ORA-xxxx in your alertlog file at all?

Hello it work now. thanks!
But when i define in oracle.conf
ORA-00001
ORA-01033
ORA-01041
ORA-01089
ORA-01555
ORA-28
i don't found it in oracledb_error{dbinstance=~'$dbinstance',ignore="1"}

Did you see them when you omit ignore="1" ?


more status codes from Google Maps API

This adds more status codes as shown in the Google Maps API Documentation (see status codes here):

ZERO_RESULTS indicates that the geocode was successful but returned no results. This may occur if the geocoder was passed a non-existent address.
UNKNOWN_ERROR indicates that the request could not be processed due to a server error. The request may succeed if you try again.

Hope you can check! :)

Thanks for this, but I don't think these are errors we need to support:

If a developer needs to handle the case where no results are returned they can just check results.size == 0 rather than raising an exception.
The unknown error might be useful, but in the context of a Ruby app it should be called something like TemporaryServerError. However, Google is not clear on whether it's temporary ("may succeed if you try again") so I'm a little hesitant to label it as such.

Let me know your thoughts. Do you have specific needs for these in your app?

Thanks for the comment. My use case is that when a host sets up a property (vacation rental), he/she first supplies a street address, postal code, and country code. These will be used for geocoding.
If something about the request went wrong, it would be appropriate to inform the host that there's a problem that's not her fault. But if the request is successful but no results were found, it's better to tell the host that she needs to check if the street address, postal code, and country code she's given are correct.
For the ZERO_RESULTS error, I agree to simply check if there are no results via its size.
I think UnknownError is still something vaguely defined by Google, and might be broken down into more specific errors in the future. Closing this one then!


got this error

Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 2: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 3: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 4: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 5: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 6: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 7: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 8: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 9: invalid_grant error processing request
Logging into Reddit...
Log in success! Retrieving post info...
An error occurred in main() on attempt 10: invalid_grant error processing request
Attempted to upload 10 times with no luck... ending script.

Make sure you have put your info in correctly inside config.py. I had this issue because I was using a google account which doesnt have a password so I was unable to login through the api. Make sure u use an account that has a password and not sign up with other services.

Precisely what @casperrr mentioned. I recommend making a separate account. The README.md has a tutorial linked. Let me know if the issue persists.


refactor: improve user experience for newbie

I agree, that the documentation and README.md file in particular needs full rework, because it's current version is just a placeholder for the time being.


After Cumulative Update (KB5023706) WSL Started to generate time out error

Windows Version
10.0.22621.1413
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu-20.04
Other Software
No response
Repro Steps
Here's my log collect-wsl-logs.ps1](https://github.com/Microsoft/WSL/blob/master/diagnostics/collect-wsl-logs.ps1
WslLogs-2023-03-15_23-08-07.zip
Expected Behavior
Wsl should run
Actual Behavior
C:\Windows\System32>wsl
The operation timed out because a response was not received from the virtual machine or container.
Error code: Wsl/Service/CreateInstance/HCS_E_CONNECTION_TIMEOUT
Diagnostic Logs
WslLogs-2023-03-15_23-08-07.zip

Also when docker desktop starts it gives me this error:

Docker version 20.10.23, build 7155243

@BenokanDeepBlue - I'm see an ext4 filesystem, but the logs are a bit incomplete. Would it be possible to re-collect /logs from scratch so i can see the full sequence of events?

Completely stop docker
start collecting logs
launch docker
observe error
stop collecting logs

thanks!

@benhillis Thanks a lot! I just did what you said now, I hope this would be useful.
WslLogs-2023-03-16_17-07-31.zip

Thank you @BenokanDeepBlue.
Looking at the logs, the issue is that the disk is corrupted:
1299	False	Microsoft.Windows.Lxss.Manager	GuestLog	0	03-16-2023 09:07:58.520	"	"	"text: 	""[    2.383738] EXT4-fs (sdc): VFS: Can't find ext4 filesystem ""
vmId: 	{102e7cd7-8654-4211-92c8-83594b846954}"				6728	14476	5		00000000-0000-0000-0000-000000000000

Unfortunately this probably means that the data in this disk has been lost. According the logs, the corrupted disk is:
C:\Users\benok\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

You can look at this page for more information on how to repair corrupted disk, but unfortunately based on the error the filesystem is probably not repairable


Fix quite subtle but nasty bug in linear map tuple types computation

We need lowered type for branch trace enum in order to compute linear map tuple type. However, the lowering of branch trace enum type depends on the types of its elements (the payloads are linear map tuples of predecessor BB).
As lowered types are cached, we cannot populate branch trace enum entries in the end as we did before: we already used wrong lowered types for linear map tuples.
Traverse basic blocks in reverse post-order traver order building linear map tuples and branch tracing enumns in one go, ensuring that we've done with predecessor BBs before processing the BB itself.
Fixes #68392

@swift-ci Please test

Tagging @BradLarson @jkshtj

@swift-ci Please test

@swift-ci please test

To give more context: previously we calculated lowered type of Enum out of empty EnumDecl. As a result, all these SIL types were deemed as trivial (unless e.g. generic) despite us adding more non-trivial Enum cases later on.

@swift-ci please test

@swift-ci please test macos

@slavapestov

You're not supposed to mutate EnumDecls like that at all and changing the order of iteration is only papering over the issue. Type lowering caches the results because it assumes the inputs are immutable. You need to build your AST before you get to SIL.

Exactly! And this was what the bug fixed. Now we are building enum AST types before corresponding SIL types and the iteration order enforces this.
It is not quite possible to build all AST types before the SILGen due to way how autodiff is done. In particular, the element types of these enums correspond to the SIL BBs. Do you see any sane way how we can do the things before SILgen?
Tagging @rxwei

It is not quite possible to build all AST types before the SILGen due to way how autodiff is done. In particular, the element types of these enums correspond to the SIL BBs. Do you see any sane way how we can do the things before SILgen?

Can you enforce this by collecting all the constituents that would go into building the enum somewhere during SILGen, then create the EnumDecl and populate it in one shot, before handing it off? That way you can never access the incomplete declaration.

@slavapestov

Can you enforce this by collecting all the constituents that would go into building the enum somewhere during SILGen, then create the EnumDecl and populate it in one shot, before handing it off? That way you can never access the incomplete declaration.

Ok, this is what I tried to explain in the comment (chicken-and-egg problem), but seems the explanation was confusing. Let me explain what is going on in detail.
Consider we're having the following SIL function:
entry:
...
 apply %f
 apply %g
 cond_br %cond, bb1, bb2
bb1:
 br bb3
bb2:
 apply %h
 br bb3
bb3:
 apply %j

In order to generate derivative for this function we need to:

Capture active values (pullbacks of active calls)
Trace of execution flow

This is done via so-called linear map tuples.  We create tuple for each BB capturing the pullbacks of the active calls. Also, for all but the entry BB we're creating branch tracing enums with entries corresponding to predecessor BBs and the payloads being linear map tuples of predecessors.
So, for the function above we will have:

For entry linear map tuple would be (pullback of %f, pullback of %g) (assuming these calls are active)`
For bb1 linear map tuple would be (enum1)
For bb2 linear map tuple would be (enum2, pullback of %h)
For bb3 linear map tiple would be (enum3, pullback of %j)

The branch tracing enums would be:
enum enum1 {
  case entry((pullback of %f, pullback of %g)) // linear map tuple of entry
}

enum enum2 {
  case entry((pullback of %f, pullback of %g)) // linear map tuple of entry
}

enum enum3 {
  case bb1((enum1)) // linear map tuple of bb1
  case bb2((enum2, pullback of %h)) // linear map tuple of bb2
}

Note that linear map tuple of bb3 is created in "telescopic" fashion capturing recursively linear map tuples (with pullbacks and branch tracing enums. We fill these tuples (and enums) in the forward derivative pass and use them in backward fashion in reverse pass.
So, in order to construct a linear map tuple for a BB we need to know:

All pullbacks of this BB
The linear map tuple types of all predecessor BBs

And this is what essentially what this PR does now:

We iterate over all BBs in reverse post-order traversal order
When we see the BB we already know that all its predecessors were already processed
Since all its predecessor BBs are processed we already have linear map tuple types of predecessors
We create EnumDecl, add all cases for predecessor BBs and lower the AST type to SIL type
We create linear map tuple type for the current BB using newly created EnumDecl plus checking all apply's of the BB. The corresponding EnumDecl is immutable now, we never touch it anymore (there is assert to check that all linear map tuple types of predecessor BBs are known by this moment).

Previously we populated EnumDecls in the very end and this obviously caused some subtle ownership issues :)
I hope this is a bit more clear and explains what is going on. If you're having some other suggestions how the things might be organized (ideally without going via AST types) in other way, we would like to hear! Unfortunately, we have to create new types inside SIL autodiff passes and this causes some churn here and there. If would be perfect if we'd not need to go this way.

@swift-ci please test macos

@slavapestov Will you please let me know if you're having further comments to the explanation above? Thanks!

@slavapestov ping :)

@slavapestov Thanks!


Versioned::$versionableExtensions - need a way to change this other than changing Versioned.php

Currently Versioned.php has this protected static pretty much hard coded:
protected static $versionableExtensions = array('Translatable' => 'lang');

It's used in two places. What if we changed the references to it from:
Versioned::$versionableExtensions

to
Config::inst()->get('Versioned', 'versionableExtensions')

Allowing it to be manipulated from other modules via:
Config::inst()->update('Versioned', 'versionableExtensions', array('Extension' => array('suffix1','suffix2')));

Fixed with https://github.com/silverstripe/silverstripe-framework/pull/5085


feature request: zoom to map viewer's location

It'd be pretty awesome if the Builder had a switch to turn on 'detect and zoom to user location' for published maps, like is coded in this tutorial: https://carto.com/docs/tutorials/query_by_distance/
cc @saleiva

Approaching this as part of the Embed redesign. Thanks!


Suggestion: Highlight on linked terms

Currently, this plugin highlights a term in the unlinked references. The same feature would be nice to have for linked references as well.

Oh yes, I will give an option in plugin settings.

Check it in newest version, need to enable this manually in settings.


ep 04

https://www.youtube.com/watch?v=NG4yUhe-7cU

Great stuff Gavin, looking forward to checking it out!


Cannot find module 'request'

Hey there I am facing this issue can anyone has solution of it. I just changed my bot owner name , account name and the private keys in postpromoter.js file but getting this error here's the error down below
Error: Cannot find module 'request'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
at Function.Module._load (internal/modules/cjs/loader.js:529:25)
at Module.require (internal/modules/cjs/loader.js:658:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (/data/data/com.termux/files/home/postpromoter/postpromoter.js:2:15)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)

npm install request -g

I also tried this but not working
I execute the file by "node postpromoter.js"
As nodejs isn't working


Add more tests around using -f Dockerfile via the CLI

Mainly to make sure we don't treat the -f value as relative to the
root of the build context, but instead it must be relative to the current
dir.
Signed-off-by: Doug Davis<EMAIL_ADDRESS>

LGTM

@duglin would you mind adding this too https://gist.github.com/tiborvass/8cfec4a2500195e94fad ?
It's a fix of one test I added.

@tiborvass done - check to make sure I got all of it.

LGTM

@duglin hey sorry to be annoying again, but I believe there are still duplicate tests. I'm also checking for ../outsideDockerfile, maybe we should consolidate our tests into one?

@tiborvass if you want... I'm not too concerned about too many tests :-)

@tiborvass looking at the current list of testcases between those two funcs I see this:
FUNC: TestBuildRenamedDockerfile
files created:
context/Dockerfile
context/files/Dockerfile
context/files/dFile
context/dFile
context/files/dFile2

Tests: (dir run in, -f usage, context path provided, failure?)
A) from context     no -f                       .
B) from context     -f files/Dockerfile         .
C) from context     --file files/dFile          .
D) from context     --file dFile                .
E) from context     --file /etc/passwd          .         failure
F) from files       -f ../Dockerfile            ..
G) from files       -f /.../files/Dockerfile    ..
H) from files       -f ../Dockerfile            .         failure
J) from /tmp        no -f                       context
I) from /.../files  -f dFile2                   .

FUNC: TestBuildDockerfileOutsideContext
files created:
/tmp/context/Dockerfile  ENV X Y
/tmp/outsideDockerfile   ENV x y
/tmp/context/dockerfile1 -> /tmp/context/../outsideDockerfile
/tmp/context/dockerfile2 -> /tmp/outsideDockerfile

Tests:
J) from /tmp/context -f ../outsideDockerfile      .  failure
K) from /tmp/context -f /tmp/context/dockerfile1  .  failure
L) from /tmp/context -f /tmp/context/dockerfile2  .  failure
M) from /tmp         -f Dockerfile                /tmp/context/  failure

I think just J is a dup of E.  If you agree I can remove J.

@duglin thanks so much!
Just to make sure we're talking about the same tests, I'm gonna remove ambiguity:
you put H) then J) then I), I'm gonna refer to those as H), J1) and I).
Later you put J) and K), I'm gonna refer to those as J2) and K).
A) seems to be the most normal build case, and it's covered by all tests using buildImageFromContext.
E) I would prefer not to use /etc/hosts, but rather a directory we create that's outside the context, like /tmp in TestBuildDockerfileOutsideContext. It's also not exactly a dup of J2).
G) not sure what that tests? /.../ is weird
H) however is a dupe of J2)
I) I'm not sure what this tests for (again that weird /.../). Looks like D) to me

@tiborvass - sorry about the typos - clearly I don't know my ABC's  :-)
A) yes its the normal case and therefore a dup of lots of tests, but I liked like to keep it because as I look at the full set of tests w.r.t. this feature I like having a complete stand-alone set in one spot. I'm sure there are plenty of dups like this if we looked across ALL of the testcases for all features.
I can change E) to use something other than /etc/passwd but to me its not the same as the other test because I wanted to use an abs path, not a relative one.  It shouldn't matter but I wanted to test it.
G) the /.../ syntax was just my way of saying that we specify a full abs path to the dockerfile, instead of a relative one. So, that might be a dup of others (like K and L) but the reason I added it was to make sure that the CLI didn't do something weird like pickup a Dockerfile from some place else in the tree above it.  Was thinking of how git will walk the tree to find files. I know we don't do this today so its a bit preemptive.
J2) yes we can probably remove that one as a dup of H)
I) vs D) - on this one we can probably remove I) - the reason I added it was because of the way I specified the context to the test tool - so its probably more of a test of the testing infrastructure than Docker itself.
Net: remove J2) and I)   ok?
But overall, I'm not sure we should be too concerned with dup testcases - its holes in the coverage that a bigger concern.  One or two extra ones isn't a big deal to me.

@tiborvass you ok with removing J2 and i ?