rancher-monitoring-crd chart does not make use of global toleration settings

When attempting to install the rancher-monitoring chart in a cluster that has taints on all of it's nodes we were unable to proceed because the rancher-monitoring-crd did not use toleration values that we set in the global key of the values.yml file.
It appears that the subcharts in the rancher-monitoring chart make use of these global tolerations in the following way:
https://github.com/rancher/charts/blob/f09ed8dd2d0df893f2652c2a2c93b32b111d78b6/charts/rancher-monitoring/rancher-monitoring/14.5.100/charts/grafana/templates/_pod.tpl#L395-L398
However the deployments in the ranchering-monitroing-crd chart do not: https://github.com/rancher/charts/blob/f09ed8dd2d0df893f2652c2a2c93b32b111d78b6/charts/rancher-monitoring/rancher-monitoring-crd/14.5.100/templates/jobs.yaml#L55
Without being able to add our own tolerations the only way we could deploy monitoring in our Rancher RKE cluster was to remove the taints from a node before deploying the chart and then add it back later.
There may be another solution that we missed but it appears that the rancher-monitoring-crd template should make use of user defined tolerations.

Also, @peregrinator even with this fix, I don't believe our UI supports passing in values.yaml entries to the CRD chart at the current moment.
So I'm not sure how you will pass in the tolerations, unless you plan on using another method for installing this CRD chart into your Rancher cluster (e.g. if you manage it via fleet or some other method).

I believe that should work, but you will not be able to fix it before executing a fresh install.

Root cause
the rancher-monitoring-crd chart does not expose the options for setting nodeSelectors and tolerations, so the crd chart might fail to install in the environment where those are needed.
What was fixed, or what changes have occurred
add those fields in the values.yaml so we can specify nodeSelectors and tolerations when installing the crd chart.
Areas or cases that should be tested

fresh install of the crd chart
edit the crd app to add/remove  nodeSelectors and tolerations from the values.yaml file (could be done in the UI by editing the installed app)
set nodeSelectors and tolerations  when upgrading from previous version

What areas could experience regressions?
installation and upgrading should succeed
Are the repro steps accurate/minimal?
We need to use the Helm command-line tool to validate the issue because  Rancher Dashboard UI does not support setting values for the rancher-monitoring-crd chart at the moment.  see this issue

Setup for Reproduction

Rancher version: v2.6-2
Installation option (Docker install/Helm Chart):Docker
Proxy/Cert Details: self-signed

Information about the Cluster

Kubernetes version:v1.21.6-rancher1-1
Cluster Type (Local/Downstream):Downstream aws/ec2
4 worker nodes, 1 etcd nodes, 1 control plane node

Each worker node should have a taint added to it during the configuration steps. For example: qa=test:noschedule

Steps for Reproduction

Go to the apps and marketplace, install monitoring and the previously mentioned version
While waiting for install to process you can check whether the pods are being deployed or whether the app "rancher-monitoring-crd" is working in the "installed apps" page.
Once you see it's failed, use the kebab menu of the CRD to "edit/upgrade"
On the yaml page add tolerations equivalent to the previously created taints. For example:

tolerations:
- key: "qa"
  operator: "Equal"
  value: "test"
  effect: "NoSchedule"

Click save and return to the installed apps page.
View the yaml of the crd from the kebab menu and notice the previously added tolerations are not listed.

Setup For Validation

Rancher version: v2.6-head(0d14421)
Installation option (Docker install/Helm Chart):Docker
Proxy/Cert Details: self-signed

Information about the Cluster

Kubernetes version:v1.22.4
Cluster Type (Local/Downstream):Downstream aws/ec2
4 worker nodes, 1 etcd nodes, 1 control plane node

Each worker node should have a taint added to it during the configuration steps. For example: qa=test:noschedule

The following testcases validate the fix.
Fresh install of crd testcase:

Download the kubeconfig files for the local cluster and the aforementioned downstream cluster.
Download the charts-dev-v2.6 repository from the rancher repository
From either your file explorer go to charts-dev-v2.6-->charts-->rancher-monitoring-crd-->100.1.0+up19.0.3
within this directory you will edit the following yaml --> "values.yaml" _example below: _

tolerations:
- key: "qa"
  operator: "Equal"
  value: "test"
  effect: "NoSchedule"

now take the kubeconfig for your downstream cluster and copy it to the last mentioned path: charts-dev-v2.6-->charts-->rancher-monitoring-crd-->100.1.0+up19.0.3/<downstreamcluster.yaml>
now run the command:

export KUBECONFIG=<localcluster.yaml>
7. The previous command lets you run the following to install rancher-monitoring-crd via a helm install _example below:  _
helm install rancher-monitoring-crd . -n cattle-monitoring-system --create-namespace --kubeconfig <downstreamcluster.yaml>
Edit Yaml From Ui

In the downstream cluster with the aforementioned configuration try install monitoring v100.1.0+up19.0.3
Let rancher-monitoring-crd get to a failed state by waiting approximately 10 minutes.
Once the app is in a failed state edit the yaml to have the appropriate tolerations and that should allow for the app to be installed. Tolerations listed below:

tolerations:
- key: "qa"
  operator: "Equal"
  value: "test"
  effect: "NoSchedule"

Upgrading from Previous version Testcase

In the downstream cluster with the aforementioned configuration, with an earlier version of monitoring installed, for example: 100.0.0+up16.6.0 go to the apps & marketplace and update the app to a later version. i.e. 100.1.0+up19.0.3
Let rancher-monitoring-crd get to a failed state by waiting approximately 10 minutes.
Once the app is in a failed state edit the yaml to have the appropriate tolerations/node-selectors and that should allow for the app to be installed. Tolerations listed below:

tolerations:
- key: "qa"
  operator: "Equal"
  value: "test"
  effect: "NoSchedule"


Fix a CBMC proof breaking with the latest version of the tool

Description
The fix is simple: remove a flag for verbosity (essentially debugging).
Checklist:

[X] I have tested my changes. No regression in existing tests.
[X] My code is Linted.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks

This will need to be rebased after #3161 or manually inspected that no AWS credentials are added by the final approver.

/bot run checks

/bot run checks


Add better assertions for failing verifiable credential test.

This doesn't do much it just generates a better error message than the last test.
p.s. did you know chai expect allows custom error messages? can't seem to find them for should. Anyways, this means a failing test on travis actually returns an informative error instead of
     TypeError: Cannot read property 'should' of undefined

is now
1) issue()
       should issue a verifiable credential with proof:
     AssertionError: expected { Object (@context, id, ...) } to have property 'proof'
      at Context.property (tests/10-verify.spec.js:104:36)

@dmitrizagidulin hey are the assertions here correct? also check the error message.

👍 , thanks @aljones15 !

hey man so why is this failing then? I believe proof is a property on json-ld signatures:
https://w3c-dvcg.github.io/ld-signatures/#example-2-a-simple-signed-linked-data-document

@aljones15

hey are the assertions here correct?
Yeah, looking into it now (I figured we'd fix them on the update-contexts branch)


Send crawled transaction IDs to downloader

Motivation

The mempool crawler currently only logs crawled transaction IDs, but doesn't forward them so that the transactions can be downloaded and stored in the mempool.
This closes #2650.
Solution

The mempool::Crawler was updated to receive a handle to the mempool service, and after it receives crawled transactions it just forwards them to be queued in the mempool's transaction downloader.
Review
Anyone working on the mempool can review this PR.

Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

Follow Up Work

I updated the PR to include a test to ensure the crawler survives forwarding errors. This was a bit harder than I expected, and I ended up refactoring the tests a bit to try to make it readable. Hopefully it's not too complicated :sweat_smile:
You can see only the changes here.

Thanks again for the comprehensive tests here, I think they'll really help us get the error handling right.


Add Srcset Functionality

Q
A

Bug fix?
no

New feature?
yes

Tickets
Fix #148

License
MIT

This pull request adds srcset functionality to the bundle. It follows the same logic like 'src'.

Thank you for this @plamenh! I've opened #186 with your commit, just so I could rebase it onto the new build system. I'll merge it there :)


build failed

=== BUILD TARGET flutter_google_ad_manager OF PROJECT Pods WITH CONFIGURATION Release ===
/Users/fun/Documents/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_google_ad_manager-0.9.0/ios/Classes/FlutterGoogleAdManagerPlugin.m:2:9: fatal error:
'flutter_google_ad_manager/flutter_google_ad_manager-Swift.h' file not found
#import <flutter_google_ad_manager/flutter_google_ad_manager-Swift.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
=== BUILD TARGET flutter_google_ad_manager OF PROJECT Pods WITH CONFIGURATION Release ===
error: the following command failed with exit code 1 but produced no further output
CompileC
/Users/fun/Library/Developer/Xcode/DerivedData/Runner-dwjxktxyzlqgxkcekrcauicmhtfl/Build/Intermediates.noindex/Pods.build/Release-iphoneos/flutter_google_ad_manager.build/Obje
cts-normal/arm64/FlutterGoogleAdManagerPlugin.o
/Users/fun/Documents/flutter/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_google_ad_manager-0.9.0/ios/Classes/FlutterGoogleAdManagerPlugin.m normal arm64 objective-c
com.apple.compilers.llvm.clang.1_0.compiler
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.3 18D109, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
✗ Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] iOS toolchain - develop for iOS devices (Xcode 10.3)
✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
brew update
brew install --HEAD usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
✗ ios-deploy out of date (1.9.4 is required). To upgrade with Brew:
brew upgrade ios-deploy
[✓] Android Studio (version 3.2)
[✓] VS Code (version 1.37.0)
[✓] Connected device (1 available)
! Doctor found issues in 2 categories.

rm -rf ios
flutter create -i swift .


automatic sitemap.xml?

we noticed that our websites that migrated to Apostrophe2 took a huge hit in SEO ranking. And one of the major downsides looks like lack of sitemap leading to a drastic drop in crawled pages.
What do you guys do right now for sitemaps?

We generally make a point of using semantic markup and encourage our
clients to remember the need for relevant copywriting on each page, even if
a human user would find what they wanted graphically.
We also check whether sites can be fully explored with the "lynx" command
line browser, which is much like google in what it can and can't
understand.
Also, this tool I built is useful to check navigability (I apologize for
any i18n bugs): http://searchvision.boutell.com/
These Google Sitemaps are usually out of date, and when they are out of
date they are worse for your SEO than no sitemap at all. Of course it's
possible to write an apostrophe module that generates an up-to-date one,
but I'm not convinced this is the best way to improve your SEO. Only
empirical testing would show for certain.
The apostrophe-site-map module exists. It is currently only intended as a
tool for content strategists, not as a google sitemap generator, but it's
obviously a step in that direction, and we'd accept pull requests to make
it a full sitemap generator for those who want one.
On Wed, Jan 21, 2015 at 11:24 AM, Danny Povolotski<EMAIL_ADDRESS>
wrote:

we noticed that our websites that migrated to Apostrophe2 took a huge hit
in SEO ranking. And one of the major downsides looks like lack of sitemap
leading to a drastic drop in crawled pages.
What do you guys do right now for sitemaps?
—
Reply to this email directly or view it on GitHub
https://github.com/punkave/apostrophe/issues/186.

--
*THOMAS BOUTELL, *DEV & OPS
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com

Actually, from my experience a correct sitemap mechanism is quite an SEO advantage.
Google gives you an API to send a crawl request based on a sitemap, and from what I've seen it makes a huge difference. Especially in sites with time sensitive content and lots of pages (news/content-driven sites/blogs with competition e.t.c). We've noticed that if we published information before our competitors, and made sure our sitemap gets generated, pinged to google instantly, it makes a huge, huge difference.
The trick is to either have a frequently re-cached sitemap generator, or something like that - to never create an "expired sitemap" situation.
That's why I was asking if you have any automatic solution.
I'll see if we end up developing a module, and publish it here in this issue thread.

Thanks for sharing your experience with this issue.
I suggest looking at the apostrophe-site-map module I mentioned earlier,
since it is a long step down the road to being what you want.
On Wed, Jan 21, 2015 at 11:50 AM, Danny Povolotski<EMAIL_ADDRESS>
wrote:

Actually, from my experience a correct sitemap mechanism is quite an SEO
advantage.
Google gives you an API to send a crawl request based on a sitemap, and
from what I've seen it makes a huge difference. Especially in sites with
time sensitive content and lots of pages (news/content-driven sites/blogs
with competition e.t.c). We've noticed that if we published information
before our competitors, and made sure our sitemap gets generated, pinged to
google instantly, it makes a huge, huge difference.
The trick is to either have a frequently re-cached sitemap generator, or
something like that - to never create an "expired sitemap" situation.
That's why I was asking if you have any automatic solution.
I'll see if we end up developing a module, and publish it here in this
issue thread.
—
Reply to this email directly or view it on GitHub
https://github.com/punkave/apostrophe/issues/186#issuecomment-70873741.

--
*THOMAS BOUTELL, *DEV & OPS
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com

Looks like we can close this out, feel free to add the module here if you publish it.

Re opening because this is on radar for our clients lately too. It is likely we will build our own XML sitemap generator soon if no one else adapts the informational sitemap generator. One issue is that it must address all published snippets with a published index page, not just regular pages. There must also be provision to generate custom links. An incomplete sitemap is worse than none.

Always a man of his word, Tom has built said module: https://github.com/punkave/apostrophe-site-map.
This can now be closed with joyful resolution!


Sync master

Checklist

[x] No CHANGELOG update needed

[ ] No new tests needed

[ ] No documentation update needed

Need to figure out how to sync the submodule tests/data...


Enable Rubocop on builds

This has a side effect of bumping the minimum ruby version for the gem to 2.6, but given that both 2.5 and 2.6 are deprecated and that the only known client of this gem supports 2.6+, this shouldn't be an issue.


Respect decimal separator config and change the default to comma

The config is not respected at the moment (always overridden here), so we should:

Respect the decimal separator setting
Set the default to comma ("Yes"), to keep the current behavior

This way the exports stay the same for current users (comma is needed for usable Microsoft Excel compatibility) but make the usable for UK users as well (by changing the config setting).

You linked the wrong code part. The correct one: https://github.com/shopwareLabs/SwagImportExport/blob/c6d90ca7502c05265f3ea066bf18b3cc5fd598d4/Components/SwagImportExport/DbAdapters/ArticlesPricesDbAdapter.php#L131

Opened a PR for this: https://github.com/shopwareLabs/SwagImportExport/pull/22


AccessBot Hitting Slack Bolt API Rate Limit

Describe the bug
Customer just configured AccessBot. After resolving an issue with the Slack Email configuration, they hit the Slack Bolt API rate limit. They have ~86 users, so doesn't make sense.
To Reproduce
Just setting up an env to attempt repro.
Essentially, they just setup AccessBot and hit the rate limit after correcting a configuration error with the slack email settings, they didn't setup variables so email was set to string literal "None" initially. After correcting this in the config and restarting the container, they hit this limit.
Expected behavior
Ideally, not being rate limited.
Screenshots
Traceback from the log:
2022-05-17 12:47:25.844 PDT Traceback (most recent call last): File "/opt/conda/lib/python3.9/site-packages/errbot/core.py", line 546, in _execute_and_send for reply in replies: File "plugins/sdm/accessbot.py", line 112, in assign_role yield from self.get_role_grant_helper().request_access(message, role_name) File "/errbot/plugins/sdm/lib/helper/base_grant_helper.py", line 28, in request_access yield from self.__grant_access(message, sdm_resource, sdm_account, execution_id, request_id, flags) File "/errbot/plugins/sdm/lib/helper/base_grant_helper.py", line 73, in __grant_access yield from self.__request_manual_approval(message, sdm_object, sdm_account, execution_id, request_id, sender_nick, flags) File "/errbot/plugins/sdm/lib/helper/base_grant_helper.py", line 97, in __request_manual_approval self.__check_administration_availability() File "/errbot/plugins/sdm/lib/helper/base_grant_helper.py", line 167, in __check_administration_availability if self.__bot.config['ADMINS_CHANNEL'] and not self.__bot.channel_is_reachable(self.__bot.config['ADMINS_CHANNEL']): File "plugins/sdm/accessbot.py", line 308, in channel_is_reachable return self._platform.channel_is_reachable(channel) File "/errbot/plugins/sdm/lib/platform/slack_platform.py", line 52, in channel_is_reachable channel_list = self._bot._bot.channels() File "errbot-slack-bolt-backend/errbot_slack_bolt_backend/slackbolt.py", line 730, in channels conversations = self.__fetch_conversations(joined_only=joined_only, exclude_archived=exclude_archived, types=types) File "errbot-slack-bolt-backend/errbot_slack_bolt_backend/slackbolt.py", line 735, in __fetch_conversations conversations = self.__get_conversations(**kwargs) File "/opt/conda/lib/python3.9/site-packages/memoization/caching/plain_cache.py", line 42, in wrapper result = user_function(*args, **kwargs) File "errbot-slack-bolt-backend/errbot_slack_bolt_backend/slackbolt.py", line 687, in __get_conversations conversations = Utils.get_items(self.__get_conversations_page, kwargs=kwargs) File "errbot-slack-bolt-backend/errbot_slack_bolt_backend/slackbolt.py", line 125, in get_items raise Exception("Too many requests were made. Please, try again in 1 minute.") from e Exception: Too many requests were made. Please, try again in 1 minute.
Desktop (please complete the following information):
N/A
Smartphone (please complete the following information):
N/A
Additional context
Latest version of the AccessBot
IMPORTANT: Remember to select a label and project

hey @marysdm!
We tried to reproduce this error but we couldn't. We are testing in a pretty big organization with more than 5 thousand users and around 400 channels, so it's not clear to us that just setting the env configuration is causing this Exception. Can you please check if the costumer is still having this problem and provide us more details? Please ask the costumer to run the command plugin info AccessBot into Slack and share the output.
Thanks!

FYI @wrenhunter

@ wallrony This is still an issue. I've requested the info, will share when the customer comes back.

Customer shared output as screenshots, this should be in order. Let me know if you need anything else. :)

Ack

Customer has been silent since my request for full stack trace.


Glossary/x_message_id.md: Fix typos

Another small fix spotted while reading docs.

another good catch! thanks @pjdelport!

Hello @pjdelport,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


Callback for when a toast is dismissed.

Can you add a callback that gets executed whenever a toast is dismissed? Handling both timeouts and manually closing. Would be really helpful, thanks!

This has beel fixed in #52

This isn't being pulled into a live version from npm yet? @emilkowalski


Explicit cast from "extern fn()" to "fn()" required

fn setGate(n: u8, flags: u8, offset: fn()) {
    ...
}

extern fn isr0();

fn install() {
    setGate(0, ..., isr0);
}

/home/andrea/zen/kernel/isr.zig:95:41: error: expected type 'fn()', found 'extern fn()'
    idt.setGate(0, ..., isr0);

It feels like the linkage qualifier extern shouldn't be part of the type signature, or that the cast should happen implicitly.

I agree, and I believe this the same as #105


Move project to organisation

I think we could move the project to an GitHub Organisation  for better management

The project is already under a GitHub Organisation.


directResponse functionality doesn't work

Bug Description
When I follow the tutorial from official website, I found directResponse functionality doesn't work as expected.
https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPDirectResponse
Manifest I applied:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings-route
spec:
  hosts:
  - ratings.prod.svc.cluster.local
  http:
  - match:
    - uri:
        exact: /v1/getProductRatings
    directResponse:
      status: 503
      body:
        string: "unknown error"

Error log:
error: error validating "demo": error validating data: ValidationError(VirtualService.spec.http[0]): unknown field "directResponse" in io.istio.networking.v1alpha3.VirtualService.spec.http; if you choose to ignore these errors, turn validation off with --validate=false

Version
$ istioctl version
client version: 1.14.3
control plane version: 1.14.1
data plane version: 1.14.1 (2 proxies)
$ kubectl version --short
Client Version: v1.21.5
Server Version: v1.22.11-gke.400

Additional Information
No response

I think it land in v1.15

miss in v1.15 release-notes cc @istio/release-managers-1-15
linked to PR https://github.com/istio/istio/pull/39776 and https://github.com/istio/api/pull/2407

@zirain Thank you!


No Issue, Thank you for your hard work!

Let me know if you got my donation ~ (Sent Via Paypal)

thank you! <3

thank you! <3


Skip forbidden resources as they are rarely required

In a multi-tenant cluster, rarely do users have permissions to view all API resources. This makes it so any resource that is forbidden to the user will be skipped.

I think this is agreeable, there's just a little bug that we need to assign to errResult only if it's not a Forbidden error. I'll push that commit and merge.

Any updates on that?

+1, would be nice to see this merged.

+1 waiting for it

+1, would be nice to see this merged.

sorry for the delay - missed this.
hows this look?

+1
Hello, When do you think this fix can be merged ?
Thanks

it seems --rm-dist flag got removed from goreleaser, in favor of --clean.


tf.test.gpu_device_name() allocated all GPU memory

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
yes

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Linux Ubuntu 16.04

Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
no

TensorFlow installed from (source or binary):
binary

TensorFlow version (use command below):
1.4.1

Python version:
3.6

Bazel version (if compiling from source):

GCC/Compiler version (if compiling from source):

CUDA/cuDNN version:
8.0

GPU model and memory:
1050Ti / 4Gb

Describe the current behavior
My code was 'checking for GPU' by calling tf.test.gpu_device_name()
Then it would go to set GPUoptions to allow_growth.
It caused tf to allocate full GPU memory for the process.
If I remove tf.test.gpu_device_name() then allow_growth works as expected.
Describe the expected behavior
tf.test.gpu_device_name() to NOT allocate GPU memory. Only starting a session should.
Code to reproduce the issue
Other info / logs

In order to expedite the trouble shooting process can you please provide minimal code snippet to validate the issue reported here. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Problem with create AmazonMQ rabbitmq

What happened?
I'm trying to create AmazonMQ RabbitMQ broker but nothing happenes.
I get only information:
cannot determine creation result - remove the crossplane.io/external-create-pending annotation if it is safe to proceed

How can we reproduce it?

My broker forProvider spec:
spec:
  deletionPolicy: Orphan
  forProvider:
    autoMinorVersionUpgrade: false
    deploymentMode: CLUSTER_MULTI_AZ
    engineType: RabbitMQ
    engineVersion: 3.10.10
    hostInstanceType: mq.m5.large
    publiclyAccessible: false
    region: eu-west-1

What environment did it happen in?
Crossplane version: v1.9.0
Crossplane-aws version: v0.31.0

I upgraded crossplane-aws to v0.37.1 with the same result.
In crossplane-aws logs I see:
2023-03-06T08:02:19.544Z	INFO	Starting EventSource	{"controller": "managed/user.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "User", "source": "kind source: *v1alpha1.User"}
2023-03-06T08:02:19.544Z	INFO	Starting Controller	{"controller": "managed/user.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "User"}
2023-03-06T08:02:19.544Z	INFO	Starting EventSource	{"controller": "managed/broker.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "Broker", "source": "kind source: *v1alpha1.Broker"}
2023-03-06T08:02:19.544Z	INFO	Starting Controller	{"controller": "managed/broker.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "Broker"}
2023-03-06T08:02:19.663Z	INFO	Starting workers	{"controller": "managed/broker.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "Broker", "worker count": 10}
2023-03-06T08:02:19.664Z	DEBUG	provider-aws	Reconciling	{"controller": "managed/broker.mq.aws.crossplane.io", "request": "/test-mq-fjfvh-2ndnq"}
2023-03-06T08:02:19.664Z	DEBUG	provider-aws	cannot determine creation result - remove the crossplane.io/external-create-pending annotation if it is safe to proceed	{"controller": "managed/broker.mq.aws.crossplane.io", "request": "/test-mq-fjfvh-2ndnq", "uid": "866209d1-8881-4321-bebe-47e573d537b0", "version": "169860802", "external-name": ""}
2023-03-06T08:02:19.665Z	INFO	Starting workers	{"controller": "managed/user.mq.aws.crossplane.io", "controllerGroup": "mq.aws.crossplane.io", "controllerKind": "User", "worker count": 10}
2023-03-06T08:02:19.665Z	DEBUG	events	cannot determine creation result - remove the crossplane.io/external-create-pending annotation if it is safe to proceed	{"type": "Warning", "object": {"kind":"Broker","name":"test-mq-fjfvh-2ndnq","uid":"866209d1-8881-4321-bebe-47e573d537b0","apiVersion":"mq.aws.crossplane.io/v1alpha1","resourceVersion":"169860802"}, "reason": "CannotInitializeManagedResource"}
2023-03-06T08:02:19.690Z	DEBUG	provider-aws	Reconciling	{"controller": "managed/broker.mq.aws.crossplane.io", "request": "/test-mq-fjfvh-2ndnq"}
2023-03-06T08:02:19.690Z	DEBUG	provider-aws	cannot determine creation result - remove the crossplane.io/external-create-pending annotation if it is safe to proceed	{"controller": "managed/broker.mq.aws.crossplane.io", "request": "/test-mq-fjfvh-2ndnq", "uid": "866209d1-8881-4321-bebe-47e573d537b0", "version": "169860910", "external-name": ""}
2023-03-06T08:02:19.693Z	DEBUG	events	cannot determine creation result - remove the crossplane.io/external-create-pending annotation if it is safe to proceed	{"type": "Warning", "object": {"kind":"Broker","name":"test-mq-fjfvh-2ndnq","uid":"866209d1-8881-4321-bebe-47e573d537b0","apiVersion":"mq.aws.crossplane.io/v1alpha1","resourceVersion":"169860910"}, "reason": "CannotInitializeManagedResource"}

can you remove the crossplane.io/external-create-pending annotation - and check the logs again ?


Vagrant docker mesos uid

Mesos user on the agent is pinned to a uid/gid
Mesos user can have a list of groups to be added to
python2 pip and virtualenv are installed (via epel) available outside of a scl environment
Docker/Vagrant port forwarding doesn't like private network ips so overriding mesos to listen on all ips
Cleanup variable overriding in the Vagrantfile so those values can be overiden from the commandline
Switched mesos image backend from "copy" to "overlay" (stays "copy" on vagrant development)

@dvbalen I noticed some of our pipelines expect virtualenv to be at /usr/local/bin/virtualenv or /usr/local/bin/virtualenv-2.7.  While they probably shouldn't be using the full path, I manually added symlinks for now to just get things working, so we should probably add those to the python2 stuff as well.

Closing in favor of #11 which rebased on recent changes.


[BUG] Something is causing Port Exhaustion on an hourly basis (on Linux ASP)

Library name and version
Microsoft.Azure.WebJobs.Extensions.ServiceBus 4.3.0
Describe the bug
First, we're not sure this is caused by the ServiceBus package entered above in "Library name and version", but we're suspecting it. It might be something else...
We're seeing spikes of "New SNAT connections established" every hour on Linux App Service Plan P1v2: 1. We first saw it on our service plan where our real system is running and immediately began looking for things in our code that might cause this (no reuse of HttpClient etc). We found nothing.
Then I created a brand new Azure Function App, hosted on a brand new App Service Plan P1v2 (nothing else on that ASP). The function app has:

One ServiceBusTrigger that consumes messages from a queue and write to the standard log output
One TimerTrigger that produces a message on the queue every five minutes
A HttpTrigger that produces a message on the queue when invoked

I deployed this yesterday evening and left it alone over night:

The reports shows that new SNAT Connections has been established every hour, and sometimes there are so many new connections that they cause port exhaustions and results in failing connections.

On this image you can see a huge spike at 01:20 and then new, albeit a bit smaller, spikes at 02:20, 03:20, 04:20 and 05:20.
This is the exact same behavior we're seeing on our real system. Even with little to no load at all (we're not yet in production) we keep seeing the errors for Port Exhaustion in the diagnostics tool. We're not quite sure if this is actually impacting the performance of our system but as we've been fixing port exhaustion issues in other systems last year (these were caused by HttpClient being used in an incorrect way) we're always on our toes when we see these kind of error reports.
Expected behavior
Not seeing any Port Exhaustion errors in an app with no load at all and almost no code at all.
Actual behavior
Port Exhaustions on an almost hourly basis on an Azure Function App doing almost nothing at all.
Reproduction Steps
Create an Azure Service Bus Namespace
Create a queue called snat on that namespace
Create a new App Service Plan: Linux P1v2
Create a new Azure Function App
Create the following Functions:
[FunctionName("QueueMessageProducer")]
public static async Task RunAsync(
    [TimerTrigger("0 */5 * * * *")] TimerInfo myTimer,
    [ServiceBus("snat", Connection = "AzureServiceBus")] IAsyncCollector<string> messages,
    ILogger log)
{
    var now = DateTime.UtcNow;
    log.LogInformation($"C# Timer trigger function executed at: {now}");

    await messages.AddAsync($"Message from QueueMessageProducer {now}");
}

[FunctionName("QueueTrigger")]
public static Task RunAsync([ServiceBusTrigger("snat", Connection = "AzureServiceBus")] string myQueueItem, ILogger log)
{
    log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");

    return Task.CompletedTask;
}

Deploy it and let it run and then look at the reports in Troubleshoot under Diagnose and solve problems. It's quite a long delay on the SNAT reports so you might have to let it run for a while...
Environment
Hosting: Azure Function App (running on App Service Plan  Linux P1v2)
Azure Function runtime: dotnet
Azure Function version: v3
Target Framework: netcoreapp3.1
The following package references were used:
<PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.29" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Http" Version="3.0.12" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="4.3.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.4" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.13" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />

Just an update of the Azure Function App "New SNAT Connection Established". Spikes every hour, and now they're increasing. Still same "load" on the app (one message, every 5 minutes, nothing else).

Hi @jenspettersson.   Thank you for reaching out and we regret that you're experiencing difficulties.   I notice that you're using an older version of the Service Bus extensions which bind to a legacy version of the Service Bus client library.   You may want to consider updating to v5.2.0 of the Microsoft.Azure.WebJobs.Extensions.ServiceBus package and see if the behavior persists.
For now, I've transferred this issue to the repository where v4.3.0 of the  Microsoft.Azure.WebJobs.Extensions.ServiceBus package is maintained as #176 so the folks best able to assist are made aware.   I'm going to mark this as addressed, but if you see the same behavior with v5.0+ of the extensions package, please "/unresolve" this issue and let us know.

//fyi:  @JoshLove-msft, @shankarsama, @DorothySun216

...if you see the same behavior with v5.0+ of the extensions package, please "/unresolve" this issue and let us know.

Just updated to: <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="5.2.0" /> and also changed the target framework to .net6.0 and the azure functions version to v4 and after a couple of hours running we still see spikes. Will let it run over night again, but at first glance, it doesn't seem like it made any difference.
/unresolve

Hi @jenspettersson.   Thank you for confirming.  Tagging and routing to the team member best able to assist.

We've seen this issue before but never quite got to the bottom of it. As a workaround, it seems that using Windows App Service does not cause this issue.
https://github.com/Azure/azure-sdk-for-net/issues/24851

Are you able to collect a memory dump?

@jenspettersson Are you able to collect a memory dump?

Never done it on a Linux App Service Plan with an Azure Functions App. Any pointers? The dotnet command is not available for me when SSH:ing

FYI - The spikes of new (and also pending and failed) connections continued over night when running the latest packages:

The application still only produces one message and consume that message every five minutes.
As this P1v2 App Service Plan costs us money and we're only using it to illustrate this problem, we are probably going to stop this app and remove the App Service Plan later today.

Another FYI - We disabled all functions, but let the actual function app running: Still spikes.

Later today we're going to stop the Azure Function App but let the App Service Plan be for a couple of hours to see what happens... Maybe it's something in the Function Host that causes the connections? Connections to a storage account?

That is very interesting. @karshinlin have you seen this kind of behavior before? Port exhaustion is occurring even when no functions are present.

One final graph for today, this time we turned off the only app on this App Service Plan at around 15.00 UTC (earlier we only disabled the functions):

This graph is the Port Usage, and we see that once an hour something is using more than half of all the ports that are allocated, even if there is no running app on the App Service Plan. I'm certain that if we would have a "real" app running with connections to a database, service bus, some HttpClients etc, and some actual load we would probably see port exhaustions during these peaks.
We know that you can avoid outbound port usage if you use a VNET for your Azure resources but we still think this behavior is a bit strange.

And when checking in this morning, the graphs were crazy... Here are the Failed & Pending connections from tonight:

And here are the SNAT Port Usage:

And finally the New SNAT Conenctions established:

Once again, this time a STOPPED Azure Function App on a dedicated App Service Plan - Linux P1v2. Curious on what's going on here...

Thank you for the detailed analysis @jenspettersson. Since the issue does not appear related to the Service Bus extension, or even the Functions runtime, I think at this point our best bet would be for you to submit a support ticket so this can be examined by someone from the App services team.
Would you be able to submit a ticket with this link - https://azure.microsoft.com/en-us/support/create-ticket/


Button created

@mundadapurva  Please align the button in the center.

@mundadapurva Please align the button in the center.

Done

Thank you @mundadapurva for your contribution. 🚀
Star the repo if you like it. 🌟

Thank you @mundadapurva for your contribution. 🚀 Star the repo if you like it. 🌟

Can you label it as hacktoberfest-accepted?

Thank you!


Difficulties with unigradicon-warp

Hi, thanks for making uniGradICON.
The instructions look simple enough and unigradicon-register works fine. However I'm having trouble with unigradicon-warp when trying to warp labels.
This works fine:
unigradicon-register --fixed=$fixed_image_file --fixed_modality=mri --moving=$moving_image_file --moving_modality=mri --transform_out=$transform_path --warped_moving_out=$warped_image_path --io_iterations None
This has issues:
unigradicon-warp --fixed $fixed_image_file --moving $moving_label_file  --transform $transform_path --warped_moving_out $warped_label_path --nearest_neighbor
Issues:
File "/unigradicon_testing_space/github_pip/uniGradICON/src/unigradicon/init.py", line 312, in wa
rp_command
interpolator = itk.NearestNeighborInterpolateImageFunction.New(moving)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/unigradicon_conda/lib/python3.11/site-packages/itk/support/template_class.py", line 734, in New
raise itk.TemplateTypeError(self, input_type)
itk.support.extras.TemplateTypeError: itk.NearestNeighborInterpolateImageFunction is not wrapped for input type None.
To limit the size of the package, only a limited number of
types are available in ITK Python. To print the supported
types, run the following command in your python environment:
itk.NearestNeighborInterpolateImageFunction.GetTypes()

Possible solutions:

If you are an application user:
** Convert your input image into a supported format (see below).
** Contact developer to report the issue.

 When configuring ITK with CMake, you can set
ITK_WRAP_${type} (replace ${type} with appropriate pixel type such as
double). If you need to support images with 4 or 5 dimensions, you can add
these dimensions to the list of dimensions in the CMake variable
ITK_WRAP_IMAGE_DIMS.

Supported input types:
itk.Image[itk.SS,2]
itk.Image[itk.UC,2]
itk.Image[itk.US,2]
itk.Image[itk.F,2]
itk.Image[itk.D,2]
itk.Image[itk.Vector[itk.F,2],2]
itk.Image[itk.CovariantVector[itk.F,2],2]
itk.Image[itk.RGBPixel[itk.UC],2]
itk.Image[itk.RGBAPixel[itk.UC],2]
itk.Image[itk.SS,3]
itk.Image[itk.UC,3]
itk.Image[itk.US,3]
itk.Image[itk.F,3]
itk.Image[itk.D,3]
itk.Image[itk.Vector[itk.F,3],3]
itk.Image[itk.CovariantVector[itk.F,3],3]
itk.Image[itk.RGBPixel[itk.UC],3]
itk.Image[itk.RGBAPixel[itk.UC],3]
itk.Image[itk.SS,4]
itk.Image[itk.UC,4]
itk.Image[itk.US,4]
itk.Image[itk.F,4]
itk.Image[itk.D,4]
itk.Image[itk.Vector[itk.F,4],4]
itk.Image[itk.CovariantVector[itk.F,4],4]
itk.Image[itk.RGBPixel[itk.UC],4]
itk.Image[itk.RGBAPixel[itk.UC],4]
itk.PhasedArray3DSpecialCoordinatesImage[itk.F]
itk.PhasedArray3DSpecialCoordinatesImage[itk.UC]

Thank you for the detailed report! We will work on this

Hi! I have added a test to verify that unigradicon-warp works as expected on labelmaps, see https://github.com/uncbiag/uniGradICON/pull/20 . I haven't been able to replicate your issue on a generic label map, so I need more information on the labelmap that is causing the code to break for you.
Could you post the output of this code on your labelmap?
python

import itk
label = itk.imread("your-labelmap-here.nrrd")
print(label)
print(label.GetLargestPossibleRegion().GetSize())

Thank you, here it is.
`Image (0x8288290)
RTTI typeinfo:   itk::Image<int, 3u>
Reference Count: 1
Modified Time: 786
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 604
UpdateMTime: 785
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [160, 160, 192]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [160, 160, 192]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [160, 160, 192]
Spacing: [1, 1, 1]
Origin: [0, 0, 0]
Direction:
1 0 0
0 1 0
0 0 1
IndexToPointMatrix:
1 0 0
0 1 0
0 0 1
PointToIndexMatrix:
1 0 0
0 1 0
0 0 1
Inverse Direction:
1 0 0
0 1 0
0 0 1
PixelContainer:
ImportImageContainer (0x8288520)
RTTI typeinfo:   itk::ImportImageContainer<unsigned long, int>
Reference Count: 1
Modified Time: 782
Debug: Off
Object Name:
Observers:
none
Pointer: 0x8497cd0
Container manages memory: true
Size: 4915200
Capacity: 4915200
itkSize3 ([160, 160, 192])`

Ok! The test now fails, matching your report. It looks like itk doesn't support warping signed int labelmaps, which is surprising but knowing ITK, not that surprising haha. A first pass at a solution is to add a flag for casting int labelmaps to a type that the InterpolateImageFilters support, such as float or double- perhaps with a cast back before saving the image- I will look in to this

Hi! Your issues should now be fixed in the linked pull request. Until we merge it to main and update the pypi package, you can use it locally with
dicon.git@test-unigradicon-warp-issue```

When I do this, the label mask is not seen.
Is this likely because of the meta data contained in an image not otherwise captured in the label data? If so, how can I rectify this?
doing a print of the fixed_image, moving mask and the fixed_label
fixed_image:
Image (0xce6f340)
  RTTI typeinfo:   itk::Image<unsigned char, 3u>
  Reference Count: 1
  Modified Time: 3034
  Debug: Off
  Object Name:
  Observers:
    none
  Source: (none)
  Source output name: (none)
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 2850
  UpdateMTime: 3033
  RealTimeStamp: 0 seconds
  LargestPossibleRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  BufferedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  RequestedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  Spacing: [1, 1, 1]
  Origin: [-77.6102, 71.9206, 72.2747]
  Direction:
1 -1.11759e-08 8.46921e-09
-1.03464e-08 2.32831e-10 -1
1.11759e-08 -1 4.65661e-10

  IndexToPointMatrix:
1 -1.11759e-08 8.46921e-09
-1.03464e-08 2.32831e-10 -1
1.11759e-08 -1 4.65661e-10

  PointToIndexMatrix:
1 8.46921e-09 -1.11759e-08
1.11759e-08 -4.65661e-10 -1
-1.03464e-08 -1 -2.32831e-10

  Inverse Direction:
1 8.46921e-09 -1.11759e-08
1.11759e-08 -4.65661e-10 -1
-1.03464e-08 -1 -2.32831e-10

  PixelContainer:
    ImportImageContainer (0xce69460)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, unsigned char>
      Reference Count: 1
      Modified Time: 3030
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0xd717d70
      Container manages memory: true
      Size: 4915200
      Capacity: 4915200

moving_label:
Image (0xd16fae0)
  RTTI typeinfo:   itk::Image<int, 3u>
  Reference Count: 1
  Modified Time: 3782
  Debug: Off
  Object Name:
  Observers:
    none
  Source: (none)
  Source output name: (none)
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 3600
  UpdateMTime: 3781
  RealTimeStamp: 0 seconds
  LargestPossibleRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  BufferedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  RequestedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  Spacing: [1, 1, 1]
  Origin: [0, 0, 0]
  Direction:
1 0 0
0 1 0
0 0 1

  IndexToPointMatrix:
1 0 0
0 1 0
0 0 1

  PointToIndexMatrix:
1 0 0
0 1 0
0 0 1

  Inverse Direction:
1 0 0
0 1 0
0 0 1

  PixelContainer:
    ImportImageContainer (0xd16c8e0)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, int>
      Reference Count: 1
      Modified Time: 3778
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0xe077d90
      Container manages memory: true
      Size: 4915200
      Capacity: 4915200

fixed_label (as shown before):
Image (0xd05c300)
  RTTI typeinfo:   itk::Image<int, 3u>
  Reference Count: 1
  Modified Time: 4155
  Debug: Off
  Object Name:
  Observers:
    none
  Source: (none)
  Source output name: (none)
  Release Data: Off
  Data Released: False
  Global Release Data: Off
  PipelineMTime: 3973
  UpdateMTime: 4154
  RealTimeStamp: 0 seconds
  LargestPossibleRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  BufferedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  RequestedRegion:
    Dimension: 3
    Index: [0, 0, 0]
    Size: [160, 160, 192]
  Spacing: [1, 1, 1]
  Origin: [0, 0, 0]
  Direction:
1 0 0
0 1 0
0 0 1

  IndexToPointMatrix:
1 0 0
0 1 0
0 0 1

  PointToIndexMatrix:
1 0 0
0 1 0
0 0 1

  Inverse Direction:
1 0 0
0 1 0
0 0 1

  PixelContainer:
    ImportImageContainer (0xd05c590)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, int>
      Reference Count: 1
      Modified Time: 4151
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0xf337da0
      Container manages memory: true
      Size: 4915200
      Capacity: 4915200

Yes, most likely the spacing, origin and direction of the segmentation mask should match the image- since they appear to have the same Size. Ideally this could be fixed in whatever software produced the mask, as whenever images get separated from their spatial metadata, bugs lurk. However, in this case just copying the image metadata onto the mask should work- just verify that they align after you do this operation, by for example opening both images in 3D Slicer which is a metadata-aware image viewer. something like
In [8]: mask = itk.imread('mask'), img = itk.imread('img')
In [9]: mask.SetOrigin(img.GetOrigin())
In [10]: mask.SetDirection(img.GetDirection())
In [11]: mask.SetSpacing(img.GetSpacing())
In [12]: itk.imwrite(mask, "mask_with_metadata.nrrd")


Broken vite typing for Plugin in dist

When attempting to build, I receive the following error:
Error: node_modules/unplugin-icons/dist/vite.d.ts:4:60 - (TS2552) Cannot find name 'Plugin$1'. Did you mean 'Plugin'?

Upon inspection, there seems to be a broken link with Vite when building (node_modules/unplugin-icons/dist/vite.d.ts)

Should be fixed


Potential character encoding bug?

Actual behavior (the bug)
Okay, so I have been trying to use Javalin to replace something which talks to a legacy system where the database is Windows-1252 encoded and hit something where Javalin behaves differently to raw embedded Jetty & Servlets.  I have been able to drop this down to an absolute minimal test case.
Expected behavior
If you set the page encoding on the html (via either a header or a meta tag) and on the form (via accept-encoding) to Windows-1252 and then set the request and response encoding to Windows-1252 prior to accessing any parameters, you should be able to send the entire Windows-1252 character set to Javalin and have it "echo'd" back unaltered.  This works fine with a raw jetty servlet, but when tried on Javalin the characters get mangled.
My guess is that Javalin accesses the stream before my handler gets called, meaning that the ServletRequest.setCharacterEncoding method doesn't do anything.
To Reproduce
See three attached files (in a zip since uploading .kt files isn't allowed)
testcase.zip

JavalinExample is the simplest possible Javalin example I could think of
RawJettyExample is an example of doing the same via a servlet with embedded jetty
form.html is a html page which has the right meta tag / accept-encoding set on the form and has the entire Win-1252 charset in the textarea.  The file has been saved with Windows-1252 encoding.

Basically you simply need to start the JavalinExample and submit the form to it and you will see the characters come back garbled.  Then start the RawJettyExample (you will need to include jetty-servlets as a dependency) and submit the form and you will see the characters reflected back exactly as they were in the form.
Additional context
Whether you want to do anything about this (since it only really affects legacy systems not using UTF-8 by default) I don't know, but it does mean that you can't accept data in any character set other than UTF-8 in Javalin as far as I can see.  It would be great if you could confirm whether it is definitely Javalin causing this and not that I've done something dumb!

Oh.  Just as an additional note, I also tried using a before handler to set the request character encoding - without success.

Hi @tomhillrails ! Could you paste your code direclty in this issue? You can put it in between triple backticks

Then people will be more likely to test out your example.

Sorry.  I figured having the source code as files was easier.  Here you go
This is the Javalin version which doesn't echo back characters correctly
import io.javalin.Javalin

object JavalinExample {
  fun run(){
    val server = Javalin.create().start(9999)

    server.post("/*"){ context ->

      //set the default request and response encoding prior to reading any parameters.  this *should* force the
      //parameters to be read in the relevant character encoding and for the response to be written in that character
      //set if not overridden
      context.req.characterEncoding = "Windows-1252"
      context.res.characterEncoding = "Windows-1252"

      //set the content type to include a character set as well for certainty
      context.contentType("text/html;charset=Windows-1252")

      //and now simply echo back the parameter
      context.result(context.formParam("test")?:"")
    }
  }

  @JvmStatic
  fun main(args: Array<String>) = run()
}

This is the version using raw jetty servlets which does reflect back the characters correctly
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.ServletHandler
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

object RawJettyExample {
  class MyServlet:HttpServlet(){
    override fun doPost(req: HttpServletRequest, resp: HttpServletResponse) {
      //set the default request and response encoding prior to reading any parameters.  this *should* force the
      //parameters to be read in the relevant character encoding and for the response to be written in that character
      //set if not overridden
      req.characterEncoding = "Windows-1252"
      resp.characterEncoding = "Windows-1252"

      //set the content type to include a character set as well for certainty
      resp.contentType = "text/html;charset=Windows-1252"

      //and now simply echo back the parameter
      resp.writer.write(req.getParameter("test")?:"")
    }
  }

  private fun run(){
    val jetty = Server(9999)
    val handler = ServletHandler()
    handler.addServletWithMapping(MyServlet::class.java,"/*")
    jetty.handler = handler
    jetty.start()
    jetty.join()
  }

  @JvmStatic
  fun main(args: Array<String>) = run()
}

and finally, this is a form which contains the Windows-1252 character set in the textarea and submits to localhost:9999.
<!doctype html>

    <title>Test from webserver</title>
    <meta http-equiv="Content-Type" content="text/html;charset=Windows-1252">

    <form action="http://localhost:9999/print" method="POST" accept-charset="Windows-1252">
      <textarea rows="10" cols="200" name="test">
            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?  † ‡ ˆ ‰ Š ‹ Œ   Ž     ‘ ’ “ ” • – — 	 ™ š › œ   ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ? ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
      </textarea>

      <button type="submit">save</button>
    </form>

Thanks @tomhillrails! I'm not able to run it at the moment, but did you try <meta charset="Windows-1252"> in your  tag?

I've tested this locally now, there is definitely something funky going on.

@Test
fun `URLEncoded form-params work Windows-1252`() = TestUtil.test { app, http ->
    app.post("/") { ctx -> ctx.result(ctx.formParam("fp")!!) }
    val encoded = URLEncoder.encode("æøå", "Windows-1252")
    val response = Unirest.post(http.origin)
            .header("Content-Type", "text/plain; charset=Windows-1252")
            .field("fp", encoded)
            .asString()
    assertThat(response.body).isEqualTo("æøå")
}

When Javalin accesses these form-parameters through the request body, they come out as fp=%25E6%25F8%25E5, which is what you get if you encode æøå twice with Windows-1252. This is not specific to this encoding, we see the same issue with ISO-8859-1. We don't see the same issue with query params.
There are no problems with just UTF-8:
@Test
fun `form-params work UTF-8`() = TestUtil.test { app, http ->
    app.post("/") { ctx -> ctx.result(ctx.formParam("fp")!!) }
    val response = Unirest.post(http.origin)
            .field("fp", "æøå")
            .asString()
    assertThat(response.body).isEqualTo("æøå")
}

The issue can be resolved by doing
ContextUtil.splitKeyValueStringAndGroupByKey(
    string = URLDecoder.decode(body(), characterEncoding),
    encoding = characterEncoding
)

But I would like to understand what's going on before merging that...

This turned out to not be a bug after all. When encoding properly, everything works:
@Test
fun `URLEncoded form-params work Windows-1252`() = TestUtil.test { app, http ->
    app.post("/") { it.result(it.formParam("fp")!!) }
    val response = Unirest.post(http.origin)
        .header("Content-Type", "text/plain; charset=Windows-1252")
        .body("fp=${URLEncoder.encode("æøå", "Windows-1252")}")
        .asString()
    assertThat(response.body).isEqualTo("æøå")
}

@Test
fun `URLEncoded form-params work Windows-1252 alt`() = TestUtil.test { app, http ->
    app.post("/") { it.result(it.formParam("fp")!!) }
    val response = Unirest.post(http.origin)
        .header(Header.CONTENT_ENCODING, "text/plain; charset=Windows-1252")
        .field("fp", "æøå")
        .asString()
    assertThat(response.body).isEqualTo("æøå")
}

Sorry. I figured having the source code as files was easier. Here you go
This is the Javalin version which doesn't echo back characters correctly
import io.javalin.Javalin

object JavalinExample {
  fun run(){
    val server = Javalin.create().start(9999)

    server.post("/*"){ context ->

      //set the default request and response encoding prior to reading any parameters.  this *should* force the
      //parameters to be read in the relevant character encoding and for the response to be written in that character
      //set if not overridden
      context.req.characterEncoding = "Windows-1252"
      context.res.characterEncoding = "Windows-1252"

      //set the content type to include a character set as well for certainty
      context.contentType("text/html;charset=Windows-1252")

      //and now simply echo back the parameter
      context.result(context.formParam("test")?:"")
    }
  }

  @JvmStatic
  fun main(args: Array<String>) = run()
}

This is the version using raw jetty servlets which does reflect back the characters correctly
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.ServletHandler
import javax.servlet.http.HttpServlet
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

object RawJettyExample {
  class MyServlet:HttpServlet(){
    override fun doPost(req: HttpServletRequest, resp: HttpServletResponse) {
      //set the default request and response encoding prior to reading any parameters.  this *should* force the
      //parameters to be read in the relevant character encoding and for the response to be written in that character
      //set if not overridden
      req.characterEncoding = "Windows-1252"
      resp.characterEncoding = "Windows-1252"

      //set the content type to include a character set as well for certainty
      resp.contentType = "text/html;charset=Windows-1252"

      //and now simply echo back the parameter
      resp.writer.write(req.getParameter("test")?:"")
    }
  }

  private fun run(){
    val jetty = Server(9999)
    val handler = ServletHandler()
    handler.addServletWithMapping(MyServlet::class.java,"/*")
    jetty.handler = handler
    jetty.start()
    jetty.join()
  }

  @JvmStatic
  fun main(args: Array<String>) = run()
}

and finally, this is a form which contains the Windows-1252 character set in the textarea and submits to localhost:9999.
<!doctype html>

    <title>Test from webserver</title>
    <meta http-equiv="Content-Type" content="text/html;charset=Windows-1252">

    <form action="http://localhost:9999/print" method="POST" accept-charset="Windows-1252">
      <textarea rows="10" cols="200" name="test">
            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?  † ‡ ˆ ‰ Š ‹ Œ   Ž     ‘ ’ “ ” • – — 	 ™ š › œ   ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ? ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
      </textarea>

      <button type="submit">save</button>
    </form>

Thanks so much. Your example really helped me!

Thanks so much. Your example really helped me!


Jewelry Enchanting UI

Wondering if it would be possible to have an inventory overlay to make enchanting easier on the eyes. Something along the lines of what OSBuddy has where there's translucent green/red boxes so you know which piece to click on next.
Can't find a photo of the behaviour on OSBuddy (as its a Pro feature) but I can clarify further if necessary.

Yeah I'll get onto it :D

We have inventory tags, and jagex added differentiating between enchanted and unenchanted jewellery already.


Add tests for various tier cases

Our Tier setup is pretty complex now and we only have partial test coverage. It's a core part of the flow, so let's add tests for all of them to avoid edge-case bugs.
Here are the cases to cover on the frontend:

[ ] /donate
[ ] /donate/:amount
[ ] /donate/:amount/:frequency
[ ] /order/:Tierid
[ ]  - with presets amounts and interval (any amount and interval)
[ ]  - with fixed amount and interval (ex: $10/monthly)
[ ]  - with paid tickets (changeable quantity with fixed amount)
[ ]  - with free tickets (changeable quantity)
[ ] /:collectiveSlug/events/:eventSlug
[ ]  - with multiple ticket tier showing on the same page (it's a different route)
[ ] /redeem
[ ] Tier Component test cases
[ ] - Tickets (specific amount with quantity)
[ ] - Presets (anything goes)
[ ] - Fixed ($10/monthly)

For each test case,

verify payment options shows up (if needed)
tier info (amount, interval, quantity, presets) is displayed correctly
order amount is displayed correctly (on orderForm)
if changeable, UI changes appropriately
order is generated to send to backend appropriately

marking this with a label for when someone takes on tiers refactoring


[SPARK-38945][K8S] Simply KEYTAB and PRINCIPAL in KerberosConfDriverFeatureStep

What changes were proposed in this pull request?

This PR simply KEYTAB and PRINCIPAL in KerberosConfDriverFeatureStep and shorten the range of  import org.apache.spark.internal.config.
Why are the changes needed?

Reduce unnecessary code.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Pass the GA

@dongjoon-hyun
It would be good if you could take a look when you have time, thanks!


Changes to Kata are partially applied(???)

To be honest, I don't know whether this is a bug with CW or not, or if I just mis-remembered, but a few days ago, I was asked to change the following part of the Preloaded code in my incidence geometry Kata series (example below for Kata #5 but similar for other Kata in my series as well):
structure incidence (point line : Type) (incident_with : point → line → Prop) :=
  (I₁ : ∀ P Q, P ≠ Q → ∃! l, incident_with P l ∧ incident_with Q l)
  (I₂ : ∀ l, ∃ P Q, P ≠ Q ∧ incident_with P l ∧ incident_with Q l)
  (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧
    ∀ l, ¬(incident_with P l ∧ incident_with Q l ∧ incident_with R l))

def SUBMISSION := ∀ (point line : Type) (incident_with : point → line → Prop)
  (s : incidence point line incident_with) P,
  ∃ l, ¬incident_with P l
notation `SUBMISSION` := SUBMISSION

into the following:
class incidence (point line : Type) (incident_with : point → line → Prop) :=
  (I₁ : ∀ P Q, P ≠ Q → ∃! l, incident_with P l ∧ incident_with Q l)
  (I₂ : ∀ l, ∃ P Q, P ≠ Q ∧ incident_with P l ∧ incident_with Q l)
  (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧
    ∀ l, ¬(incident_with P l ∧ incident_with Q l ∧ incident_with R l))

def SUBMISSION := ∀ (point line : Type) (incident_with : point → line → Prop)
  [incidence point line incident_with] P,
  ∃ l, ¬incident_with P l
notation `SUBMISSION` := SUBMISSION

The difference between the former and the latter is that structure is changed to class and (s : incidence point line incident_with) is changed to [incidence point line incident_with].
So I applied this change to each of the Kata in my series (8 total) and re-published. I remember clearly that after each re-publish, I would look at the Kata again to double-check that all changes have been applied, and I couldn't find any issues back then - all 8 Kata have been successfully updated.
But now, I noticed that the changes have only been fully applied for Kata #1 and #2 of the Series. For Kata #3 through #8, (s : incidence point line incident_with) has been changed to [incidence point line incident_with] but structure has not been changed to class.
@kazk If time allows, may you check the database records for the affected Kata in my series and see if anything weird might be happening? I'm not sure if this is reproducible at all or whatever, so if you can't find anything then I'm fine with this Issue being closed. In any case, I will be manually re-updating my affected Kata.

I don't see anything wrong with the data. Codewars' database have issues, but I don't think anything like this was reported before.

Changes made to preloaded code of Incidence Geometry #5:
2020-04-04T15:01:06.841Z (Original, has class incidence)
/-
  Incidence geometry in Lean, referenced from
  https://sites.math.washington.edu/~lee/Courses/444-2009/theorems-incidence.pdf
  and the lecture notes for MATH 4221 (not publicly available on the Internet)
-/

-- Undefined terms and axioms of incidence geometry
-- In incidence geometry, there are 3 undefined terms:
-- - Point
-- - Line
-- - \"Incident with\"/\"lies on\", e.g. point P is incident with / lies on line l
-- And there are 3 axioms:
-- - I₁: For every pair of distinct points P and Q there is exactly 1 line l such
--   that P and Q lie on l
-- - I₂: For every line l there exist at least two distinct points P and Q such
--   that both P and Q lie on l
-- - I₃: There exist three points that do not all lie on any one line
-- Note that the three points in I₃ are implicitly assumed to be distinct, because
-- otherwise one could construct a trivial model with only one point and no lines
-- that trivially satisfies the axioms, which is uninteresting, and some of the
-- theorems stated below do not hold in the trivial model
class incidence (point line : Type) (incident_with : point → line → Prop) :=
  (I₁ : ∀ P Q, P ≠ Q → ∃! l, incident_with P l ∧ incident_with Q l)
  (I₂ : ∀ l, ∃ P Q, P ≠ Q ∧ incident_with P l ∧ incident_with Q l)
  (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧
    ∀ l, ¬(incident_with P l ∧ incident_with Q l ∧ incident_with R l))

-- Two lines are said to intersect if there exists a point incident with both
def intersect {point line : Type} {incident_with : point → line → Prop}
  (l₁ l₂ : line) := ∃ P, incident_with P l₁ ∧ incident_with P l₂

-- Two lines are said to be parallel if no point is incident with both of them
def parallel {point line : Type} {incident_with : point → line → Prop}
  (l₁ l₂ : line) := ¬∃ P, incident_with P l₁ ∧ incident_with P l₂

-- A set of points is collinear if there exists a line such that every point in
-- the set is incident with it
def collinear {point line : Type} {incident_with : point → line → Prop}
  (S : set point) := ∃ l, ∀ P ∈ S, incident_with P l

-- A set of lines is concurrent if there exists a point incident with every line
-- in the set
def concurrent {point line : Type} {incident_with : point → line → Prop}
  (S : set line) := ∃ P, ∀ l ∈ S, incident_with P l

def SUBMISSION := ∀ (point line : Type) (incident_with : point → line → Prop)
  (s : incidence point line incident_with) P,
  ∃ l, ¬incident_with P l
notation `SUBMISSION` := SUBMISSION

2020-04-05T11:36:46.714Z (changed to structure incidence)
@@ -19,7 +19,7 @@
 -- otherwise one could construct a trivial model with only one point and no lines
 -- that trivially satisfies the axioms, which is uninteresting, and some of the
 -- theorems stated below do not hold in the trivial model
-class incidence (point line : Type) (incident_with : point → line → Prop) :=
+structure incidence (point line : Type) (incident_with : point → line → Prop) :=
   (I₁ : ∀ P Q, P ≠ Q → ∃! l, incident_with P l ∧ incident_with Q l)
   (I₂ : ∀ l, ∃ P Q, P ≠ Q ∧ incident_with P l ∧ incident_with Q l)
   (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧

2020-04-07T03:34:34.285Z
@@ -25,24 +25,6 @@ structure incidence (point line : Type) (incident_with : point → line → Prop
   (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧
     ∀ l, ¬(incident_with P l ∧ incident_with Q l ∧ incident_with R l))

--- Two lines are said to intersect if there exists a point incident with both
-def intersect {point line : Type} {incident_with : point → line → Prop}
-  (l₁ l₂ : line) := ∃ P, incident_with P l₁ ∧ incident_with P l₂
-
--- Two lines are said to be parallel if no point is incident with both of them
-def parallel {point line : Type} {incident_with : point → line → Prop}
-  (l₁ l₂ : line) := ¬∃ P, incident_with P l₁ ∧ incident_with P l₂
-
--- A set of points is collinear if there exists a line such that every point in
--- the set is incident with it
-def collinear {point line : Type} {incident_with : point → line → Prop}
-  (S : set point) := ∃ l, ∀ P ∈ S, incident_with P l
-
--- A set of lines is concurrent if there exists a point incident with every line
--- in the set
-def concurrent {point line : Type} {incident_with : point → line → Prop}
-  (S : set line) := ∃ P, ∀ l ∈ S, incident_with P l
-
 def SUBMISSION := ∀ (point line : Type) (incident_with : point → line → Prop)
   (s : incidence point line incident_with) P,
   ∃ l, ¬incident_with P l

2020-04-07T05:26:23.512Z
@@ -26,6 +26,6 @@ structure incidence (point line : Type) (incident_with : point → line → Prop
     ∀ l, ¬(incident_with P l ∧ incident_with Q l ∧ incident_with R l))

 def SUBMISSION := ∀ (point line : Type) (incident_with : point → line → Prop)
-  (s : incidence point line incident_with) P,
+  [incidence point line incident_with] P,
   ∃ l, ¬incident_with P l
 notation `SUBMISSION` := SUBMISSION

2020-04-10T03:03:12.808Z (changed to class incidence)
@@ -19,7 +19,7 @@
 -- otherwise one could construct a trivial model with only one point and no lines
 -- that trivially satisfies the axioms, which is uninteresting, and some of the
 -- theorems stated below do not hold in the trivial model
-structure incidence (point line : Type) (incident_with : point → line → Prop) :=
+class incidence (point line : Type) (incident_with : point → line → Prop) :=
   (I₁ : ∀ P Q, P ≠ Q → ∃! l, incident_with P l ∧ incident_with Q l)
   (I₂ : ∀ l, ∃ P Q, P ≠ Q ∧ incident_with P l ∧ incident_with Q l)
   (I₃ : ∃ P Q R, P ≠ Q ∧ Q ≠ R ∧ P ≠ R ∧


[BUG] Volume is seen in faulted state when navigating to backup page after the last backup has been deleted and before the Backupstore Poll Interval interval has passed

Describe the bug
Volume is seen in faulted state when navigating to backup page after the last backup has been deleted and before the Backupstore Poll Interval interval has passed
To Reproduce

Create a volume vol1, attach to workload in Cluster A
Write data
Set Backupstore Poll Interval as 6000 (a large value)
Take a backup b1
Create a DRV volume test in Cluster A from vol1 b1
Write data and take a backup b2
Before the Backupstore Poll Interval interval has passed and restore of b2 happens on DRV, Delete latest backup - b2
The DRV volume goes into restoring state
The DRV volume is in Faulted state now.
Longhorn Manager logs

time="2020-05-22T22:07:49Z" level=warning msg="volume-new-2-r-de5a0267: time=\"2020-05-22T22:07:23Z\" level=info msg=\"Successfully initiated incremental restore for s3://sowmya-rc1-longhorn@us-east-2/?backup=backup-65ea78e187714e6e&volume=volume-new to volume-delta-backup-72fff603be5e4f37.img\""
time="2020-05-22T22:07:49Z" level=warning msg="volume-new-2-r-de5a0267: time=\"2020-05-22T22:07:45Z\" level=error msg=\"Backup Restore Error Found in Server[failed to get object: backupstore/volumes/74/e0/volume-new/blocks/41/6f/416f7cb65b6623d6af031a8bd7eeb53b3d418cb8238386af144d61f1849b444c.blk response: {\\n  Body: <nil>,\\n  ContentType: \\\"application/xml\\\"\\n} error: AWS Error:  NoSuchKey The specified key does not exist. <nil>\\n404 D50075AA4AE49B56\\n]\""
time="2020-05-22T22:07:49Z" level=warning msg="volume-new-2-r-de5a0267: time=\"2020-05-22T22:07:45Z\" level=error msg=\"failed to incremental restore: failed to get object: backupstore/volumes/74/e0/volume-new/blocks/41/6f/416f7cb65b6623d6af031a8bd7eeb53b3d418cb8238386af144d61f1849b444c.blk response: {\\n  Body: <nil>,\\n  ContentType: \\\"application/xml\\\"\\n} error: AWS Error:  NoSuchKey The specified key does not exist. <nil>\\n404 D50075AA4AE49B56\\n\""
time="2020-05-22T22:07:49Z" level=debug msg="Prepare to delete instance volume-new-2-r-de5a0267"

backup-65ea78e187714e6e --> is the last backup
longhorn-support-bundle_ff0f2e60-8253-4ca8-a162-72109efca3a7_2020-05-22T22-11-18Z.zip
Expected behavior
Volume should not be in faulted state
Environment:

Longhorn version: master - 05/22/2020
Kubernetes version: 1.17.5
Node OS type and version: linus 18.04

Check again once https://github.com/longhorn/longhorn/issues/1393 is done.

Verified on Master - 07-10-2020
Validation - Passed
Followed the repro steps from https://github.com/longhorn/longhorn/issues/1392#issue-623561580, the DR volume stayed healthy didn't go to Faulted state.
Also, taking another backup in the same volume resulted in smooth incremental restore next time.

Manual test steps are updated https://github.com/longhorn/longhorn-tests/wiki/Manual-Test-Plan#dr-volume-related-latest-backup-deletion-test


Minor styling updates to utilization charts per UXD review

Also re-adds dist/angular-patternfly.js

Also re-adds dist/angular-patternfly.js

I know this sounds silly but can we do this as a separate PR?  I'm happy to open one to re-add this file.

I know this sounds silly but can we do this as a separate PR? I'm happy to open one to re-add this file.

Actually see https://github.com/patternfly/angular-patternfly/pull/52

I will resubmit


Enable subtitle toggling for mediathek player

This would require a custom control bar for exo player with subtitle button. The subtitle settings could be removed and the last state of the toggle button should be saved across videos.

I've no idea on how to enable/disable a text track dynamically in exo player.

done 👍


Gnu screen + Oh my zsh + French Accents not getting along

Hi,
We I launch screen and I'm in a folder with accents i.e ~/Téléchargement, screen tab that displays the $(pwd) cannot refresh as it doesn't process the accents correctly.
I address it by modifying the following file : oh-my-zsh/lib/termsupport.zsh
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
with
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE | iconv -f utf8 -t ascii//TRANSLIT
I not sure it's an issue and there should be definitly a better way to do it.
Just wanted to let you know...
Cheers...

I know this is old but I can't reproduce this. Which terminal emulator are you using?

Ah ah ah hello, I can't remember as it was quite a long time. But I believe it was Gnome terminal. I can surely be closed if there were no other report of this bug ever since.

I did try it with GNOME Terminal. If you can reproduce this again reopen it.


BUG: List GitHub commit crashing for pytorch/pytorch

Describe the bug
The query that lists GitHub commits is crashing for pytorch/pytorch and possibly affecting the results of multiple checks that depend on this information, such as CI-Tests. CI-Tests is currently resulting in "no pull request found", but manually analysing there are PRs.
Reproduction steps
Steps to reproduce the behavior:

Run Scorecard v4.12.0 for pytorch/pytorch
View the following error

Error: RunScorecard: internal error: ListCommits:error during graphqlHandler.setup: internal error: githubv4.Query: non-200 OK status code: 502 Bad Gateway body: "{\n   \"data\": null,\n   \"errors\":[\n      {\n         \"message\":\"Something went wrong while executing your query. This may be the result of a timeout, or it could be a GitHub bug. Please include `CC1C:6B70:ABEBD8:15D971F:64FB2BE3` when reporting this issue.\"\n      }\n   ]\n}\n"
2023/09/08 14:13:04 error during command execution: RunScorecard: internal error: ListCommits:error during graphqlHandler.setup: internal error: githubv4.Query: non-200 OK status code: 502 Bad Gateway body: "{\n   \"data\": null,\n   \"errors\":[\n      {\n         \"message\":\"Something went wrong while executing your query. This may be the result of a timeout, or it could be a GitHub bug. Please include `CC1C:6B70:ABEBD8:15D971F:64FB2BE3` when reporting this issue.\"\n      }\n   ]\n}\n"

Expected behavior
I expected Scorecard to detect the commits.
Additional context

I'm noticing the same issue intermittently - sometimes I get results, sometimes not. When I set --commit-depth lower, e.g. to 5, I still get errors but less frequently. Re-running scorecard might fix the issue in the Scorecard viewer.
The GraphQL handler calls GitHub's GraphQL endpoint here: https://github.com/ossf/scorecard/blob/846fb19724435f0c6465af44adf505ad6b2fc941/clients/githubrepo/graphql.go#L204
In GraphQL, handler.RateLimit.Cost usually returns 1, so I doubt we're exceeding a hardcoded limit (and the 502 confirms this). According to https://github.com/orgs/community/discussions/24844, all API calls (including GraphQL) hit a 10-second timeout, which can happen when the data returned is too large. We could try reducing the commit depth required to page (e.g. from 99 -> 20?) in: https://github.com/ossf/scorecard/blob/846fb19724435f0c6465af44adf505ad6b2fc941/clients/githubrepo/graphql.go#L198
But I don't think commit depth alone is the culprit, we could also try playing with the parameters here: https://github.com/ossf/scorecard/blob/846fb19724435f0c6465af44adf505ad6b2fc941/clients/githubrepo/graphql.go#L30-L37

Oh, right! Thanks for the info, Raghav! As you said, it's probably because the data returned is too large in this case. I believe playing with the pullRequestsToAnalyze and other parameters may be the right direction here, instead of commit depth.


allowed uneven slices in batch inverse

This change is

#519  👈
dev

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ohad-starkware and the rest of your teammates on  Graphite

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.16%. Comparing base (d3e0c90) to head (7d70108).
Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #519      +/-   ##
==========================================
- Coverage   94.16%   94.16%   -0.01%
==========================================
  Files          60       60
  Lines        9240     9238       -2
  Branches     9240     9238       -2
==========================================
- Hits         8701     8699       -2
  Misses        485      485
  Partials       54       54

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Test coverage

To help find untested configurations, it would be helpful to have test coverage reports.
This could be a simple synthetic value to start (number of tested routing entries vs total number of routing entries).
And possibly be extended to provide 'code coverage' reports indicating which lines of a configuration file are covered by the tests.
Using one of the well established formats for the 'code coverage' reports might be useful when integrating the coverage reports with external tools.

@x-way Hi, I would like to work on this task. Thank you!


Create mondia.txt

Official website: https://nehalennia.nl/
IT-related course: https://nehalennia.nl/sites/default/files/2020-09/NehalenniaSSG_Schoolgids_2020-2021_versie%20072020.pdf (on page 17, informatica (ICT) is listed as a multi-year subject)
EMail domain: https://nehalennia.nl/tips-thuiswerken-breeweg (towards the middle<EMAIL_ADDRESS><EMAIL_ADDRESS>and above that<EMAIL_ADDRESS><EMAIL_ADDRESS>for teachers
I'm so sorry none of these documents are in English, but my school only has a Dutch website.

@willem640 I corrected the pull request to make it conforming the repository rules. Pull request merged. Thank you!

Thanks!


Multiple accounts drops doesn't work

Here is an example of my tokens config:
"tokens": ["555555555", "666666666"],
I logged in with 1st account, get auth token, log out, log in with 2nd account, get auth token. Then close chromium.
Unfortunately, after 'node index.js' it starts running, then Finding streamers... and that's it - endless Finding streamers without any further messages.
Any ideas?

Most likely, something has changed on twitch in half a year, so it doesn’t work or you are trying to look in a category where there are no drops.

I checked, everything works. Try not to log out of your account after receiving the cookie. Most likely after the exit they change and you do not have authorization.

But how can I login into BOTH accounts in one browser without logging out? Or should I use an incognito tab?

yeah, use the incognito tab

Here we go! Now it works. i believe every account should be opened and logged in using the new incognito tab.
Thank you for your help!
btw... after all night of 'watching' twitch :D i noticed that the last drop wasn't claimed. For example - there are 6 drops and i can get every new drop after 4 hours of watching the stream.  First 5 drops were claimed successfully. Last one - wasn't claimed. I just open the browser and claim it by myself. Dunno is it a bug or it should be like that.
I will check again when the next drops will be available. Thanks again.

Thank you very much for the feedback, I've added a message if authorization via cookies does not work.


Scrolling speed is too slow

In https://github.com/servo/servo/issues/5660 they decided that glutin should be sending a more reasonable scrolling speed than it is doing. They shouldn't need to do post processing to fix it.

Well, glutin just returns the number of wheel movements.
For example if you roll one "tick", it generates an event containing 1.

cc @pcwalton @jdm ^^

There isn't the idea of a "tick" for trackpad scrolling. You need a "number of pixels" abstraction.

As a comparison, Wayland provides sub-pixel precision scrolling with a trackpad, but the event generated by the compositor when using a mouse is a scroll of 10 pixels for each "tick".
Looks like it's x11 the problem here, as it's the only one measuring the scrolling in "ticks". Windows seems to provide an amplitude as well ( https://github.com/tomaka/glutin/blob/master/src/api/win32/callback.rs#L112-L121 ), so it might be relevant to normalize x11 on this.

Would this be fixed by the change in #405 of providing an f64 instead of an i32 so you can get precise scrolling when available?

With #405 the value would still be -1 or 1. #405 is a bugfix for win32 more than anything else.

PR for this - https://github.com/tomaka/glutin/pull/483

PR #483 has been merged. This can be closed. Glutin now allows the platform to express scroll deltas either in pixels or lines/chunks/rows. When expressed in lines, it is up to the app to scroll a suitable amount. This is now done in Servo.

Nice!


Vis specs: content section

User story
As a maker of IBM.com experiences, I need design specs for the layout patterns that accurately reflect what's available in code so that I can design, build, and communicate with a clear understanding of what to expect.
Notes from the epic
There are a few different cases where the design spec may not reflect eh code accurately:

Some of the designs were changed during development for various reasons
Some of the designs specs were not created accurately as we went through the ontological restructuring of the patterns and subpatterns.

Additional Information

This issue is dependent on the Spacing and Pattern Structure in Visual Specs & Code #35 and the Visual Spec Standards #36 issues included on the Ideation board.

Acceptance criteria

[ ] Design specs are available in PDF format in this Box fodler

Moving this issue to backlog until the Ideation  work is finished.


Configurable client deregistration check result status

This pull request allows users to configure a per-client deregistration check result status. The default deregistration check result status is still 1 (warning). This pull request also adds the save functionality to client registration.
Example configuration:
{
  "client": {
    "...": "...",
    "deregister": true,
    "deregistration": {
      "status": 3
    }
  }
}

Closes https://github.com/sensu/sensu/issues/1491

Looks good! 👍


refactor: Rename MyNaiveDate to NaiveDate (+ chore).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

42 of 42 (100.0%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.04%) to 91.537%

Files with Coverage Reduction
New Missed Lines
%

imap-types/src/imap4rev1/response.rs
1
82.44%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
7636

Relevant Lines:
8342

💛  - Coveralls


An RSS feed might be nice.

An RSS feed might be nice, and the topics page would be the most obvious place to provide the feed for.
There is some logic for filtering content based on a user's triggers (ostrich mode), as well as stickied topics, that will need consideration. I assume that the feed's content would correlate with the current topics page for both of those features. Probably no need to consider spoiler mode, though.
I assume I am not the only person who still uses RSS feeds.

Rubbish idea, sorry.


JSON in a stream value

Hello,
Is it possible to put a JSON in a stream entry, as a value ? And if so, how ?
Thank you in advance

Oh well, I just found this : https://github.com/RedisJSON/RedisJSON/issues/196
Sorry for bothering you guys, and have a nice day !


Performance warning in re-order

The demo notebook or reordering gives performance warning when calling re-order:
# Time the reordering operation.
time_ordering = %timeit -o stmat.copy().stm.reorder(xlabel="azimuth", ylabel="range")
time_ordering

/storage/miniforge3/envs/mbl_stmtools/lib/python3.11/site-packages/xarray/core/indexing.py:1430: PerformanceWarning: Slicing with an out-of-order index is generating 230 times more chunks
  return self.array[key]

This seem to be inevitable since we are performing reorder. It seems we can

Supress the warning
Check some Dask reordering, e.g. :https://docs.dask.org/en/stable/order.html

As we discussed, this performance would warning probably only apply while the data is split into a lot of small chunks (in this case 230 times as many).
However, inside the stm.reorder(...) function, the data is already re-chunked into larger chunks directly after this call to xarray.Dataset.sortby(...).
So, I will suppress the warning and check whether the function description properly mentions that this could be an expensive operation.


Update mindscape.Raygun4Net.AspNetCore to v6

This package has been updated to support the latest configuration method in .NET Core 2.1 (IConfiguration vs IConfigurationRoot), but unfortunately some classes/namespaces have been moved around so they are no longer the same between Mindscape.Raygun4Net and mindscape.Raygun4Net.AspNetCore (RaygunClient is now in Mindscape.Raygun4Net.AspNetCore for example). This could be fixed by using some conditional statements based on the framework being used, but that's pretty ugly. It's possible the better solution is to just create a new serilog-sinks-raygun-core package that only targets netstandard2.0.

I just ran into this into a very similar problem because of the namespace difference between Mindscape.Raygun4Net.AspNetCore and Mindscape.Raygun4Net.
For interest sake, would it not be a better solution to allow the sink to accept a namespace parameter and then reflecting the associated Client, Builders and Messages?


bump go versions 1.15-1.18 in disto-base make, builderbase

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


Leaking Event Handler

There's currently a bubbled event being watched on document that appears to be bound to document regardless of whether a textcomplete component is initialized.
Attaching an event handler on every bubbled click event is fairly expensive. This most likely should be part of the components initialize and destroy method, so that it doesn't continue to evaluate on every click event in your site/app.
To make sure its attached once across components you'll most likely need to use some novel strategy, but it could be accomplished using something like unique ids, or namespaced events.

Hi @jlukic, thanks for opening the issue.
I agree that global click event handler costs a bit but I'm not sure it is worth optimized. Does it cause performance issues in your app?

I'm working on a single page app with something like 50+ distinct pages. Only a few of them use the textcomplete component, however all click events on all pages fire the textcomplete event handler.
There's no specific issue with the event handler performing poorly, however the design might cause memory issues. The event handler carries a reference to dropdownViews which prevents it from being properly garbage collected by the browser.


Initial code coverage

Only 43%! We can do better.

Changes Unknown when pulling 757b899d9be1dc7346a13c0af4f3f4732a91a1b3 on coveralls into ** on master**.

Changes Unknown when pulling 7572557b85d9b2bf3fa83c0209c2f5ed43029192 on coveralls into ** on master**.


Fullscreen image

Is it possible to show an image in fullscreen, i.e. cut off on the left and the right, like the css attribute 'object-fit: cover', but access this hidden parts by pinching/dragging? Object-fit is not working as well as centered flex layout, where the image container is overflowed of the window view on the x-axis. Is there any other approach to implement this?

@NePheus  I have the same issue did you find this out?