Rancher server crashed while creating Microsoft azure cluster with cloud provider set

Rancher versions:
rancher/rancher:
Steps to Reproduce:

Create a single node Microsoft Azure cluster with cloud provider set to Azure

Server crashed with the below error:
2018/05/07 09:19:36 [INFO] Syncing PodController Controller Done
E0507 09:19:36.273119       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:36.284709       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:36.794325       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:36.795641       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:37.807642       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:37.814594       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:39.816468       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:39.823757       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:43.829864       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:43.832899       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:51.848937       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:19:51.881678       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:20:07.863913       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:20:07.910434       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:20:39.884430       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:20:39.945438       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:21:43.898574       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:21:43.981714       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
2018-05-07 09:22:22.793625 I | mvcc: store.index: compact 545610
2018-05-07 09:22:22.901918 I | mvcc: finished scheduled compaction at 545610 (took 103.789206ms)
E0507 09:23:51.918362       1 generic_controller.go:204] RoleTemplateController project-owner [cluster-roletemplate-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:23:52.017601       1 generic_controller.go:204] ProjectRoleTemplateBindingController project-vbd2x/creator [cluster-prtb-sync] failed with : clusterRole.rbac.authorization.k8s.io "admin" not found
E0507 09:25:00.571634       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v3.NodeStatus
E0507 09:27:00.680005       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1beta2.DaemonSetStatus
E0507 09:27:07.667577       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1.ReplicationControllerStatus
E0507 09:27:09.104542       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1beta2.StatefulSetStatus
E0507 09:27:20.584152       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1beta1.IngressStatus
2018-05-07 09:27:22.823495 I | mvcc: store.index: compact 546108
2018-05-07 09:27:22.878995 I | mvcc: finished scheduled compaction at 546108 (took 53.141097ms)
E0507 09:27:23.626324       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1beta2.DeploymentStatus
E0507 09:27:35.608779       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1beta2.ReplicaSetStatus
E0507 09:27:43.161077       1 streamwatcher.go:109] Unable to decode an event from the watch stream: json: cannot unmarshal string into Go struct field dynamicEvent.Object of type v1.PodStatus
2018/05/07 09:28:03 [INFO] Provisioning cluster [c-6gdv5]
2018/05/07 09:28:03 [INFO] Creating cluster [c-6gdv5]
2018/05/07 09:28:03 [ERROR] Cluster c-6gdv5 previously failed to create

rancher/rancher:master 6/12
Was not able to reproduce. Single node with azure cloud provider set provisioned correctly.


Canvas template, component library and screen examples

The theming issue Microsoft had on the roadmap has been removed. No idea what that means, if they’ve abandoned what they worked on or what – but there is a demand for a canvas app template that we have to do something about.
I suggest @lucasveil and I create a tablet template based on the work Frida and I did last year.
Issue reporting
PowerApps related EDS Issues reported by citizen developers is handled in equinor/EDSPowerPlatform while issue reporting and integration with ALM is still being tested.

[x] Canvas app template  - shorturl: apps.equinor.com/edspowerapps

[x] Equinor Design System component library and example solution (preview)

Deployed version <IP_ADDRESS> to Citizen Dev and a few other development environments I have access to on 10.08.22

Themes.json (overriding variables) (investigate template files from CoE Theming components and Creators kit) -> #1377

[ ] Component library
General

[x] Theme variables

A behavioral component that sets global variables for native controls with properties that refer to the EDS properties.

Components as listed on eds.equinor.com
Feedback

[ ] Banner
[ ] Dialog
[ ] Progress indicators
[ ] Scrim *
[ ] Snackbar

Data display

[ ] Chip
[ ] Divider *
[ ] List *
[ ] Popover
[ ] Table *
[ ] Table data grid *
[ ] Tooltip *

Inputs

[x] Button
[ ] Date/timepicker *
[ ] Search *
[ ] Selection *
[ ] Text field *
[x] Toggle

Navigation

[ ] App launcher
[ ] Breadcrumbs
[ ] Drawer
[ ] Link *
[x] Menu
[ ] Pagination
[ ] Stepper
[ ] Table of contents
[ ] Top Bar **
[x] Tabs

Notes:
(*) "native" controls can function as as alternatives
(**) Combining native controls and/or several components

[ ] Request form and automation for deploying and updating component libraries in dev environments.

[ ] Update documentation + proofreading

I will continue this work, see suggestion in the #2134 spike.

Experimented with modern controls which is in preview (of which we currently can't modify themes), the modern date-picker control is a huge improvement to the native date-picker. How ever, both the legacy and the modern control lacks the option for users to input date in the text-field. To overcome this limitation I have created some examples that links the date-picker control with text-input and labels that provides validation errors to the user during input. Input validation is currently limited to the Norwegian format for dates (nb_NO, e.g. 31.12.2023), but it should be fairly easy to provide additional formats based on the users language setting.
This is as close we can get to the EDS Date picker using native canvas app controls.
The examples have been shared with a citizen developer who will hopefully provide some feedback.

Moving this to backlog until further notice.


Replace BigInteger methods with kotlin operators

Feature Request
Self-explanatory. Should improve readability of some calculations

Hello, can you elaborate more?

Hello, I would like to participate and be able to give my first contribution, I would like more details, I hope you will take me into account, thank you!

Hey, in some places in our code, BigInteger methods are used to perform mathematical calculations. The goal is to replace them with kotlin operators.
Here's a little example:
low.add(high.shiftLeft(SHIFT))

should be replaced with
low + high.shiftLeft(SHIFT)

You're welcome to provide a PR for that and we will allocate some time to review it.

Hello @franciszekjob, did you give me permission to push, i have modified 10 files where BigInteger methods where used to Kotlin operators

@ChielokaCode in order to contribute, you need to open a pull request.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I'm mobile developer with 4 years of experience. My background is Java (1), Kotlin (3), Dart (1), Android (4) and Flutter (1). I have worked in both corporate and freelance environments. I love Kotlin. It's my favorite language programming. Sometimes, I like to look programming problems on Internet and solve it. This issue sounds like something similar.
How I plan on tackling this issue
First, I need to check the calculations that needs to be refactored. Depends on that, I could create functions for handle those calculations. Considering Kotlin allows operator overload, I could do something like this in order to refactor and existing method to use overloaded operators:
Code before refactoring:
data class Vector(val x: Int, val y: Int) {
fun add(other: Vector): Vector {
    return Vector(this.x + other.x, this.y + other.y)
}

}
val v1 = Vector(1, 2)
val v2 = Vector(3, 4)
val sum = v1.add(v2)
Code after refactoring:
data class Vector(val x: Int, val y: Int) {
operator fun plus(other: Vector): Vector {
    return Vector(this.x + other.x, this.y + other.y)
}

}
val v1 = Vector(1, 2)
val v2 = Vector(3, 4)
val sum = v1 + v2
If this approach is not satisfactory, please, let me know. If you have a suggestion about how this might be handle it, don't hesitate to chat with me.

Ey@ChielokaCode @xJeffx23En algunos lugares de nuestro código BigIntegerse utilizan métodos para realizar cálculos matemáticos. El objetivo es reemplazarlos con operadores de Kotlin.
He aquí un pequeño ejemplo:
low.add(high.shiftLeft(SHIFT))

Debería reemplazarse por
low + high shl SHIFT

Le invitamos a proporcionar una PR para eso y le dedicaremos algo de tiempo para revisarla.

I have made the necessary changes to replace the BigInteger methods with Kotlin operators in our code. Here are the details:
Changes made:
low.add(high.shiftLeft(SHIFT)) has been replaced with low + (high shl SHIFT)
low.subtract(high) has been replaced with low - high
low.multiply(high) has been replaced with low * high
low.divide(high) has been replaced with low / high
low.mod(high) has been replaced with low % high
Justification:
These changes make the code cleaner and more idiomatic in Kotlin, leveraging the language's available operators for mathematical operations.
Testing:
I have run all existing tests and added new tests to ensure that these changes do not introduce any errors.
Please review these changes and let me know if any further adjustments are needed.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
With a strong background in Kotlin development, I excel in leveraging Kotlin’s features to build efficient and maintainable applications. My expertise spans core language features, functional programming, and seamless Java interoperability. I bring hands-on experience from Android development and a commitment to best practices like unit testing and continuous integration. Staying updated with the latest trends, I am skilled at applying Kotlin's strengths to solve complex problems and deliver high-quality software solutions.
How I plan on tackling this issue
1 - Identify Usage: Find where BigInteger methods are used in the code.
2 Implement Operators: Define Kotlin operator extensions for BigInteger if needed (e.g., plus, minus).
3 Refactor Code: Replace method calls with the new operators.
4 Test: Run unit and regression tests to ensure functionality is intact.
5 Review: Have the changes reviewed and update documentation.
6 Deploy: Merge changes and monitor for any issues.


[Tree] Fix error when removing child from Tree

New last_child member was not properly updated
Will see if I can add a unit test to catch this as well

Fixes: https://github.com/godotengine/godot/issues/96205

Added a test to confirm the behavior, will push once CI has completed

Sorry, totally missed that one.  Fix looks good to me!

Thanks!

Thank you!


Fail to get technicolor dataset

Hello,
I have recently embarked on reproducing your experiment and find myself in need of the Technicolor Dataset. Unfortunately, despite reaching out to several of its authors, I have not received any responses. I am writing to inquire if you could provide access to this dataset, solely for the purpose of reproducing your code and furthering my understanding of the research. Your assistance would be immensely valuable to my work.
Thank you for considering my request, and I look forward to your reply.
Best regards,

I have the same problem


gcm_sender_id error

Changed gcm sender id to mine, and now it keeps having this alert error:

Messaging: Please change your web app manifest's 'gcm_sender_id' value to '103953800507' to use Firebase messaging. (messaging/incorrect-gcm-sender-id).

Have you also changed the Firebase initialisation code in the index.html file and entered your Firebase sender id in the service-worker.js file? It seems you are still using our demo configuration.

Yes i did

However, it still works when i manually grab and send the curl command. Just that the button to send the push on the page is disabled due to the error above.

Maybe you need to unregister the service worker so it loads with the new changed config

Our bad: according to Firebase documentation you need to enter that hard-code value in your manifest file. There's no need to enter your own sender id in the manifest as wrongly the README was stating.


Why the store is decentralized

Explain the concept of the store, what is the difference between the centralized and decentralized

https://event-storm.github.io/event-storm-documentation/docs/motivation/


Added conversion from LazyJSON.Number to Float32

This addresses part of  #16

I think you meant to link to #15 in the above comment.
Looks good to me though!

I'll update this package to use a Project.toml in a bit and do some general house-keeping on it. Then we can tag a new release!


Update pycaruna.py

Seems that Caruna has changed the API authentication. This seems to fix these issues.

I wish I'd seen this earlier, spent my afternoon coming to pretty much the same solution as you. See https://github.com/Jalle19/pycaruna/commit/11087294df22f3b6df0ac81995525976064f69ca

And I didn't notice these two and did my own solution

Sorry @mikafin. I just added License file and noticed then that Caruna has changed the API authentication and added an extra http post for it. I didn't mean to be rude but it was easier to update with my own code and decline your pull request.

No problem 👍 Clad that it's fixed now.


Drop dependency on Copy Relative Path extension

Since VSCode has absorbed CRP as a built-in feature in v1.26, drop the dependency on CRP extension

Refs: https://code.visualstudio.com/updates/v1_26#_copy-relative-path
Fixes: https://github.com/sdras/vue-vscode-extensionpack/issues/3

Hi @sdras, did you get a chance to take a look?


Add My Profile in Profile-a-Thon

I would like to add my profile in profile-a-thon.

@AsmitaMishra24 sure, go ahead!!


updates README docker instructions

Updates docker instructions on README file

just a general note, it's a pretty big anti-pattern to have to run docker with sudo so would be great if that could be avoided. The usual approach is to add the current user to the docker user group and re-start, or whatever.

@sam0x17 Similar topic in this Issue: https://github.com/opentensor/subtensor/issues/298 for reference.

@rajkaramchedu  is this something we can close now ? There has being a flurry of PRs addressing this , and wanted to be sure we have it covered

Closing this. See #298.


AdMobRewarded only show on emulator (IOS only)

Hi everybody
I run example in this project and have issue with AdMobRewarded on IOS. It run very well on emulator but when I test on my device (Iphone 6plus) then it return error : No ads to show. Can someone help me this problem?
Thanks for your support !

This is probably related to ad inventory. Could it be that you created the adUnitID just recently?

Same problem here

Hi all,
I've the same problem I'm using react-native-firabase admob module to serve ads and created the issue at https://github.com/invertase/react-native-firebase/issues/677
I also wanted to test this library to see if I could have chance to make it work but had no success.
As I also mentioned in the referenced issue I can succefully show rewarded videos on emulator.
On device the library can successfully show rewarded videos from other mediation networks. in my case I use AdColony and both device and emulator can show AdColony videos.
@minhducit83 @xap5xap did you have any chance to make this work?  Thanks.


[18.06] backport fix denial of service with large numbers in cpuset-cpus and cpuset-mems

Backport of https://github.com/moby/moby/pull/37967 for 18.06
git checkout -b 18.06_backport_upstream_dos_fix ce-engine/18.06
git cherry-pick -s -S -x a4b5c9d59bb0c56784b7d5e946cf0612b6debe4d

cherry-pick was clean; no conflicts
Using a value such as --cpuset-mems=1-9223372036854775807 would cause
dockerd to run out of memory allocating a map of the values in the
validation code. Set limits to the normal limit of the number of CPUs,
and improve the error handling.
Reported by Huawei PSIRT.

Need to update this one with the latest changes (after review comments on the upstream PR)

Updated; PTAL


Update workflow versions

Problem
Worked on updating workflow versions in cellpack dev meeting.
Solution
Changed the versions of setup-python to v5, checkout to v4, and node to v18.
Change summary:
workflow versions updated

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

Project coverage is 98.63%. Comparing base (b9a6c37) to head (f9b15ec).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #237   +/-   ##
=======================================
  Coverage   98.63%   98.63%
=======================================
  Files          18       18
  Lines         511      511
=======================================
  Hits          504      504
  Misses          7        7

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

@kvegesna I saw the error in the Analyze job, seems like the latest version for configure-aws-credentialsis v4. More info is in here: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions


This plugin changes the native Kibana tooltip/position

Hi,
Unfortunately, my installation of this plugin in the latest version of Kibana (5.6.2 and 5.6.3) changed the style and position of tooltips for the entire visualisations/dashboard.
I reported this issue initially in Kibana repo, but it turns out it is kbn_network:
https://github.com/elastic/kibana/issues/14589
Many thanks for your plugin i really enjoying it, I thought it might be helpful to report this.
Best,
Maziyar

Hi @maziyarpanahi ,
You are right, the problem is that the names of the tooltips css are the same.
I will take a look and fix it!
Thx

Solved!

Thanks mate! I really appreciate your work 👍


Ensure clean wasm instances

Addresses https://github.com/paritytech/substrate/issues/2051.
The runtime cache which substrate currently uses does reuse one runtime instance for every call.
In order to enable this the instance is cleaned up for every call. This leads to the problems detailed in
https://github.com/paritytech/substrate/issues/2051.
Following up to private discussions with @pepyakin and @folsen, this PR tries out an alternative
approach: it replaces the runtime cache with a pool of pre-created runtime instances. For every call a "fresh" instance is taken out of the pool, a background thread monitors the pool and adds new instances.
In order to make this possible I had to implement threadsafe types for wasmi (https://github.com/paritytech/wasmi/pull/189, not yet merged).
I did a first (very very simple) benchmark by timing invocations of call_in_wasm_module and running cargo run --release -- --dev for 40 blocks:
AuraApi_authorities:
master:    169  µs (100%)
pool:      196  µs (115%)

AuraApi_slot_duration:
master:    2192 µs (100%)
pool:      96   µs (4%)

BlockBuilder_apply_extrinsic:
master:    1805 µs (100%)
pool:      2551 µs (141%)

BlockBuilder_finalize_block:
master:    6035 µs (100%)
pool:      4774 µs (79%)

BlockBuilder_inherent_extrinsics:
master:    996  µs (100%)
pool:      1416 µs (142%)

Core_execute_block:
master:    1335 µs (100%)
pool:      965  µs (72%)

Core_initialize_block:
master:    1731 µs (100%)
pool:      2143 µs (123%)

GrandpaApi_grandpa_authorities:
master:    2357 µs (100%)
pool:      150  µs (6%)

GrandpaApi_grandpa_forced_change:
master:    136  µs (100%)
pool:      155  µs (113%)

GrandpaApi_grandpa_pending_change:
master:    122  µs (100%)
pool:      121  µs (99%)

OffchainWorkerApi_offchain_worker:
master:    3    µs (100%)
pool:      11   µs (366%)

There is some room for optimization though (Jef had some comments on the wasmi PR).
At first we had intended for the runtime pool to do more complex actions when adding instances to the pool. Right now it just clones a runtime instance from a "template instance". I measured the clone operation in release mode on dev over 40 blocks and it takes on average about 1 µs on my machine. So it seems rather cheap and I'm wondering if we could maybe even do this synchronously without having the overhead of a separate thread?
(The CI fails because I use wasmi = { path = "../../../wasmi", features = [ "threadsafe" ] } in the code, since that PR is not yet merged. That package is not (yet) available in the CI. All tests run locally though.)

Wouldn't it be much more clean to just restore the original data section?
This all looks like a big hack.

Wouldn't it be much more clean to just restore the original data section?

I assume you meant restoration of the original data snapshot as well as other components of an instance (basically, cloning an wasm instance), otherwise it would have the same problems as #2051 to some degree.
I think we might have tried to restore/to clean the whole memory instance, but it was taking considerably more time. I think that is the reason why we got the current optimization that attempts at zeroing the (heuristically detected) dirty areas of memory (I think @arkpar might have some info on this).
The proposed approach, at least conceptially (I haven't had a look at the code yet), is very simple, so I think I can repeat it here:

Create a pool of instances.
On one side of the pool is producers which replenish the pool in background threads.
On another side of the pool is consumers - wasm_executor which asks for an instance.

The general assumption behind this is the typical workload is more or less synchronous and thus the latency of wasm runtime execution matters more than actual spent time on preparing these instances. While threading and interthread communications definitely add some overhead, we are lowering the latency on the critical path to zero. Besides that, it doesn't use any specific feature of a wasm execution engine (wasmi at the moment), so this mechanism can be easily reused for another execution engine (i.e. #2634).
All of this and simplicity of the approach indicated that it is a good path to explore.
Although, it uncovered a problem with wasmi: wasmi in the current state is unusable in multithreaded environment, and I am not happy about it as well. That said, I think the general direction is still worth exploring.
Do you have anything in particular that you don't like in this solution (conceptually)?

Updates:

This approach uses a raw thread which is step backwards with respect to
https://github.com/paritytech/substrate/issues/2416
If the inital assumption that copying of whole memory takes too long is not true, then plain cloning of the runtime instance template is actually very tempting because of its simplicity.

At first we had intended for the runtime pool to do more complex actions when adding instances to the pool. Right now it just clones a runtime instance from a "template instance". I measured the clone operation in release mode on dev over 40 blocks and it takes on average about 1 µs on my machine. So it seems rather cheap and I'm wondering if we could maybe even do this synchronously without having the overhead of a separate thread?

If the inital assumption that copying of whole memory takes too long is not true, then plain cloning of the runtime instance template is actually very tempting because of its simplicity.

I'll try it out in a separate branch/PR. This would also save us from having to switch to thread-safe types for wasmi.

My complain was mostly about copying everything ^^ But if there is no better way, okay..
Conceptually I did not look that much into the code. In general you are right, we should not spawn raw threads in here. Then we need to take a look, how we evict old runtimes from the cache. Maybe it makes sense to remove them after some blocks and not directly as we see a new runtime.
And if we already touch this, I would really like to see the global cache variable gone and that the cache is passed in from the outside. Having global variables, was not a good solution from the beginning.

The problem is with the way rust-to-wasm toolchain organizes wasm memory. IIRC it allocates 1MB for the stack and and the data segment follows it. So each new runtime instance requires a 1MB write to memory, which impacts the performance when you have a lot of runtimes created for simple calls into WASM.
I'd really prefer this to be fundamentally fixed by avoiding that huge unnecessary work, rather than working around it. Pooling would waste CPU and will degrade heavily under load. E.g. when you have a lot of RPC requests coming in parallel, which is quite typical in various blockchain applications.

Pooling would waste CPU and will degrade heavily under load. E.g. when you have a lot of RPC requests coming in parallel, which is quite typical in various blockchain applications.

This is really good input. As I mentioned, the assumption was that the node has spare CPU time. If you think that is not the case then this would be an issue.
I have some ideas in mind how to fix itproperly. However, they would require non-trivial amount of modification to the current execution execution engine - wasmi - and for the execution engines that would be introduced in the future (#2634). Opting into this more sophisticated approach would inhibit experimentation as well.
But most importantly, this issue is pressing due to an upcoming audit. This solution seemed to be pretty simple and shouldn't have regressed the performance very much.
That said, I really agree that we need to use a proper solution eventually and I see the proposed solution as a stop-gap.

Would still love to see how it affects real block import performance. I.e. import 10000 testnet blocks from a file. Also please compare CPU load.

I'm closing this PR as we are currently favoring the approach from https://github.com/paritytech/substrate/pull/2938 and have stopped working on this one. If the other one turns out to be a dead end we can always reopen this PR.


Meta tag token doesn't appear to be working

Hi Mike,
There appears to be an issue when I set a meta tag with the content of {{ csrf_token() }}. I get the usual error of:
Symfony \ Component \ HttpKernel \ Exception \ BadRequestHttpException
CSRF token validation failed.

My meta tag is:
<meta name="csrf-token" content="{{ csrf_token() }}">

and I register the meta tag in my javascript:
Vue.http.headers.common['X-CSRF-TOKEN'] = $("meta[name='csrf-token']").attr('content');

Needless to say, it absolutely works fine until the token times out.

I was wondering if this might happen. I wonder if the session is not getting refreshed in your instance.
Can you post your kernel.php and routes.php here for me?

Sure.
My Kernal.php file looks like:
<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \GeneaLabs\LaravelCaffeine\Http\Middleware\LaravelCaffeineDripMiddleware::class
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web'  => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class
        ],
        'home' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class
        ],
        'api'  => [
            'throttle:60,1'
        ]
    ];
    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth'              => \App\Http\Middleware\Authenticate::class,
        'auth.basic'        => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest'             => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle'          => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'auth.organisation' => \App\Http\Middleware\OrganisationAccessOnly::class,
        'auth.interim' => \App\Http\Middleware\InterimAccessOnly::class
    ];
}

and my routes.php file is:
<?php

Route::group(['middleware' => ['web']], function () {

    // This is the current route the app is on.
    Route::get('/jobs/{slug}', [
        'as' => 'viewjob',
        'middleware' => 'auth',
        'uses' => 'JobController@show'
    ]);

    // This is the route that is hit via the a post request.
    Route::post('/shortlist/add/{bidId}', [
        'as' => 'addtoshortlist',
        'middleware' => 'auth.organisation',
        'uses' => 'ShortlistController@store'
    ]);

}

and with vue.js I'm making a call like this:
        /*
         * Add a bid to a shortlist.
         */
        shortlistBid: function(bidId) {
            var self = this;

            this.shortlistingBid = bidId;

            this.$http.post('/shortlist/add/' + bidId)
                .success(function() {
                    this.getBids();
                    this.shortlistingBid = false;
                });
        },

The issue must be with the refreshing of the tokens in my view. Somehow it's not taking place.

Laravel 5.2 project, same overall issue here. I have Caffeine installed as instructed in the docs, it does appear to be working at all anymore. Receiving TokenMismatchException errors for the login form and Ajax pages throughout the project. Here is my CSRF token meta:
<meta name="csrf-token" id="csrf-token" content="{{ csrf_token() }}">

I am also using VueJS, same settings as olimorris

@mikebronner I owe you an apology! I was using this on my dev machine and Laravel DebugBar always seems to these errors:
XMLHttpRequest cannot load http://myproject.dev/_debugbar/open?op=get&id=7993e14d3edd1828e4b3d1be9e39939b. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access

Now when I use BarryVDH's Cors package, these errors stop and Laravel Caffeine works.
@opheliadesign can you see if you're having the exact same issues then I think this issue can be closed!

Ah, that's good to know! I will add a note to the README.

 All better now :)


Additions, refinement and bugfixes

Fixed a bug in CallOwnerFunction where it would not bind correctly.
Fixed an bug where flow nodes were in the palette, even if they were in inaccessible plugins (now FlowNode palette respects plugin access rules)
Added expanded CustomOutput access
Clarified editor-accessible vs. runtime accessible information for custom in/outputs
Split out some functionality for subsystem registration to be called separately (to support our object pooling model)

Merged that, thanks a lot! :)


add log message for mismatched lshealthcheck counts

What this PR does / why we need it:
Add more detailed log message when the number of lshealthchecks is not in the expected range.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

Add more detailed log message when the number of lshealthchecks is not in the expected range.

Only an idea. I assume the LaaS is using cached k8s clients. Might this be perhaps a timing problem with an outdated cache?

@achimweigel I was assuming that an uncached client is used: https://github.com/gardener/landscaper-service/blob/main/pkg/utils/uncached_client.go#L9C1-L9C1
If a client with caching is used, this should be changed.

I guess you are right and uncached clients are used. At least I haven't found another one.


Rename InlineCopier to ConservativeTreeCopier, use it in TypeMaps

Another attempt to fix #17242.
Previous attempts: #17256 and #21884.

The context of this PR is best described in https://github.com/scala/scala3/issues/21595 and https://github.com/scala/scala3/issues/17242.


task2.

Codecov Report

Merging #176 (e29ef28) into master (be09e3b) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #176   +/-   ##
=======================================
  Coverage   94.81%   94.81%
=======================================
  Files         116      117    +1
  Lines        3951     3956    +5
=======================================
+ Hits         3746     3751    +5
  Misses        205      205

Flag
Coverage Δ

unittests
94.81% <100.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

domainlab/tasks/b_task.py
96.96% <100.00%> (-1.07%)
:arrow_down:

domainlab/tasks/b_task_classif.py
100.00% <100.00%> (ø)

domainlab/tasks/task_folder.py
91.66% <100.00%> (ø)

domainlab/tasks/task_mnist_color.py
100.00% <100.00%> (ø)

domainlab/tasks/task_pathlist.py
95.34% <100.00%> (ø)

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


Fix typo

than => then

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


Define roles and their responsibilities in a PR

Reviewer and Assignee of a PR should be separate roles.

Reviewers do code review, and eventually approve the PR
Assignee is a maintainer, who monitors the progress of the PR, coordinates the review process, and merges PR after it's approved.
When submitting a new PR, the author is encouraged to choose Reviewer(s) and Assignee for the PR. If either Reviewer or Assignee is left blank, maintainers will choose them for the PR.
However, for PowerShell Team members, You are required to choose them yourself for the PR.
Note that, even if you are not designated as a Reviewer for a PR, you can still feel free to jump in and review the change.

The PR author is responsible to drive the PR to the Approved state. The author should ping the reviewer(s) when they don't respond timely enough (or event talk to them if you can). If the review process is making no progress (or too slow), the author can always contact the Assignee to help coordinate the process, for example, if the reviewer(s) don't respond back for too long, the Assignee can review the existing comments and decide if the PR is in good state or a new reviewer should be pulled in.
A template will be added to pull request, to remind the author to choose Reviewer(s) and Assignee for the PR.

@TravisEz13 thanks for catching them. I think I fixed them all this time, can you take a look again?

@mirichmo @TravisEz13 the conversation about "collaborators" got hidden by Github, but that comment still stands.

Hi Reviewers, I think I have addressed all the comments, can you please take another look?

@joeyaiello Thanks for the review! I have addressed your comments. Please take another look.

I can not to choose Reviewer(s) and Assignee for my PR 😕

@iSazonov hmm, I didn't know about that ... so I guess then all non-powershell-team users cannot choose Reviewer and Assignee? @TravisEz13 do you happen to know if that's the case?
@SteveL-MSFT, the collaborator has been changed to Collaborator.

@daxian-dbw I just submitted a review to PSScriptAnalyzer and I cannot even assign a reviewer there.

@daxian-dbw Yes, it is. Personally for me it is not a problem. I can always make a ping by "/cc".


Counts from command line summary do not match up with row counts in materialized results

Describe the bug
The counts reported on the command line by the open source data-diff program are correct for rows exclusive to table a, exclusive to b and changed rows.  However, the counts of the result rows in the materialized results table do not match what I would expect based on those counts.  Only the count of rows exclusive to table B is correct.  SQL outside of data-diff confirms the inaccuracy of the materialized results.
Make sure to include the following (minus sensitive information):
data-diff \
  $VACANT_LOTS_DB \
  public.li_complaints \
  backup_.li_complaints \
  -k service_request_id \
  -c '%' \
  -m 'backup_.li_complaints_diff' \
  --stats

The run output + error you're getting. (including tracestack)

247415 rows in table A
246058 rows in table B
1560 rows exclusive to table A (not present in B)
203 rows exclusive to table B (not present in A)
929 rows updated
244926 rows unchanged
1.01% difference score

Extra-Info:
  diff_counts = {'service_request_id_a': 19, 'service_code_a': 15, 'service_name_a': 19, 'address_a': 19, 'subject_a': 19,
'y_a': 19, 'x_a': 19, 'status_a': 19, 'geometry_a': 19}
  exclusive_count = 19
  table1_count = 247415
  table1_sum_x = -18593115.109934963
  table1_sum_y = 9894894.846454354
  table2_count = 246058
  table2_sum_x = -18491140.8768517
  table2_sum_y = 9840625.990917146

Count from SQL against the materialized table:
select is_exclusive_a, is_exclusive_b, count(*) from backup_.li_complaints_diff
group by is_exclusive_a,is_exclusive_b;
 is_exclusive_a | is_exclusive_b | count
----------------+----------------+-------
 f              | f              |   832
 f              | t              |   203
 t              | f              |   795

Raw counts from the source and target tables:
select count(*) from li_complaints p where not exists (select service_request_id from
backup_.li_complaints where service_request_id = p.service_request_id) ;
 count
-------
  1560
(1 row)

select count(*) from backup_.li_complaints b where not exists (select service_request_id from
li_complaints where service_request_id = b.service_request_id) ;
 count
-------
   203
(1 row)

Run data-diff with the -d switch for extra debug information.
see attached file data-diff-debug.txt
data-diff-debug.txt

Describe the environment
data-diff 0.11.1
Python 3.11.4
os: Ubuntu Linux on WSL on Windows 10
PostgreSQL 14 on Ubuntu

I think I figured it out, the default --table-write-limit of 1000 was the problem.  I increased it and the numbers look correct in the materialized table now.


Enable AlignHash cop

For discussion.
Followup to https://github.com/capistrano/capistrano/pull/1594

No strong opinion either way on this one.


open_ppt on MacOS

I'm not sure how the libreoffice command works on linux. It's probably easy, but I only have headless linux machines without libreoffice available right now.

I think on Linux, we could use xdg-open, just like using open on MacOS. Most Linux should support this.
I was quite irritated when I got an error about not finding PowerPoint on my Linux and about to drop the package, when I figured out, that the file was written fine, only opening failed....

This is great, thanks for immediately opening a PR!
Maybe we should put a generic try/catch around the open_ppt and throw a warning if the opening fails, to avoid future frustration like @PaulDebus encountered?
Also feel free to version bump to 0.5.1. Then I will register directly after merging.

FWIW, https://github.com/tpapp/DefaultApplication.jl might also have been worth considering / trying here.

@carstenbauer I will open a "good first issue" to remember this


Update PERMIT_TYPEHASH to more commonly adopted permit typehash

Let's consider changing the PERMIT_TYPEHASH in Erc20Permit.sol to the more commonly adopted hash:
keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

The benefit of doing this would be that future contracts inheriting from Erc20Permit would be compatible with the commonly used frontend library eth-permit to create valid signatures.

#24 has been merged.


Aur package installs to subdir?

I'm probably being daft here, but shouldn't
install -Dm 755 "handlr-${pkgver}" -t "${pkgdir}/usr/bin/handlr"

In the aur package be
install -Dm 755 "handlr-${pkgver}" "${pkgdir}/usr/bin/handlr"

?
Don't we want to install a binary named handlr, not a binary named handlr-version in a directory named handlr?

No, you're absolutely right. The handlr-regex-bin AUR package was installing everything in the wrong places. It should be fixed now.
Thanks for catching it!


feat: Add the ability to checkpoint an existing server, and spawn a read-only server on that view.

It would be nice to be able to spawn a read-only server on a snapshot of a given server.
This PR implements this feature, and introduces two new flags --use-checkpoint and --keep-checkpoint to manage the snapshot.

--- FAIL: TestBitmap (846.21s)
    --- FAIL: TestBitmap/SETBIT/GETBIT/BITCOUNT/BITPOS_boundary_check_(type_bitmap) (150.90s)
        bitmap_test.go:204:
            	Error Trace:	/Users/runner/work/kvrocks/kvrocks/tests/gocase/unit/type/bitmap/bitmap_test.go:204
            	Error:      	Received unexpected error:
            	            	read tcp <IP_ADDRESS>:50435-><IP_ADDRESS>:50429: i/o timeout
            	Test:       	TestBitmap/SETBIT/GETBIT/BITCOUNT/BITPOS_boundary_check_(type_bitmap)

The above check failure seems to be an unrelated i/o timeout; is there a way to rerun the checks?

--- FAIL: TestBitmap (846.21s)
    --- FAIL: TestBitmap/SETBIT/GETBIT/BITCOUNT/BITPOS_boundary_check_(type_bitmap) (150.90s)
        bitmap_test.go:204:
            	Error Trace:	/Users/runner/work/kvrocks/kvrocks/tests/gocase/unit/type/bitmap/bitmap_test.go:204
            	Error:      	Received unexpected error:
            	            	read tcp <IP_ADDRESS>:50435-><IP_ADDRESS>:50429: i/o timeout
            	Test:       	TestBitmap/SETBIT/GETBIT/BITCOUNT/BITPOS_boundary_check_(type_bitmap)

The above check failure seems to be an unrelated i/o timeout; is there a way to rerun the checks?

Yes, it's a flaky test and not related to this PR.

@PragmaTwice @git-hulk could you take another look at this? It seems the previous opportunity to merge was missed because new changes made it to the unstable branch.

Would you mind also add example for how you'd like use this? ( better on doc of cli or doc of project?)

apologies for the linter back and forth: i'm unable to build this locally with the same set-up as the linter uses, so a lot of these issues fall through the cracks

@mapleFU I'm not sure how to edit the docs, but one example workflow is the following.
Start a read-write Kvrocks server writing data to ~/kvrocks-dir, for the purposes of writing important data.
$ kvrocks [...] --dir ~/kvrocks-dir

Say the user realizes some of the important data is incorrect: they'd like to debug their script and run it on a copy of the data, possibly changing it. They'd like to do this without fear of corrupting or changing the original server's copy of the data:
$ mkdir ~/debug-dir
$ kvrocks [...] --dir ~/kvrocks-dir --snapshot-dir ~/debug-dir


Using webhook with legacy V2

I am trying to use webhook to listen to to webhook action and update product stock amount/price, delete product and create new product accordingly on my app. The woocommerce store is using Version 2.2.4, which webhook can not be created on the wordpress portal (correct me if I am wrong, I can't find it anyway) So I try to create webhooks via API.
I tried the example on documentation, the get actions work and the webhook count is zero. That's correct because I haven't any so far. Then I try on the post action to create my own:
data = {webhook:  {name: "Add to cart webhook", secret: "randomsecrectstring", topic: "action.woocommerce_add_to_cart",delivery_url: "http://requestb.in/1exdwip1" } } woo_store.post("webhooks", data)
The response is code 500 as below:
{"errors"=>[{"code"=>"woocommerce_api_cannot_create_webhook", "message"=>"Cannot create webhook: 0"}]}
I know the delivery url won't work, but this should at least create a webhook. Any idea which part goes wrong? Thanks!

This wrapper support legacy V2.
But seems like you need to read the docs: https://woothemes.github.io/woocommerce-rest-api-docs/v2.html
And note that here is not a support channel for the REST API. You this GitHub only to report problems with this wrapper (something that is not your case).


Remove .gif images from imageList

Pull Request Test Coverage Report for Build 489

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 85.769%

Totals

Change from base Build 488:
0.0%

Covered Lines:
2025

Relevant Lines:
2361

💛  - Coveralls


Compiler error on trying to assign a value to a cast object's property

Demonstration
When casting an object using the as operator and trying to assign a value to one of its properties ((object as Something).property = value), the compiler errors out with a failed assertion:
/build/ponyc/src/ponyc-0.35.1/src/libponyc/pass/refer.c:142: generate_multi_dot_name: Assertion `0` failed.

The error also appears if there are intermediary methods ((object as Something).some_method().property = value).

I should also note that one can currently work around the bug using a match expression.

Given the assert location, this regression was probably introduced in #3304

My old build from january, 2020 was still affected

The linked code no longer fails with an assertion error; it now emits the following error:
can't reassign to a consumed identifier in a try expression if there is a partial call involved
      (a as Wumpus).hunger = 1
                           ^

which definitely points to #3304 as the source of this. It's not clear to me why the AST_FLAG_CNSM_REASGN is assigned here, since no field is being consumed here, afaik.

The updated Pony code from OP should now be:
class Wumpus
  var hunger: USize = 0

actor Main
  new create(env: Env) =>
    let a: (Wumpus | None) = Wumpus
    try
      (a as Wumpus).hunger = 1
    end

The error message notes "can't reassign to a consumed identifier", although there's no visible consume in the code.
The issue comes from the fact that as desugars to a consume: https://github.com/ponylang/ponyc/blob/deb1494a4ba423b5c46743062b00ccf5f4bf7942/src/libponyc/ast/parser.c#L1012-L1021
There are a few possibilities to go forward:

The desugaring takes place during the expr pass. At this point we already know if we need to consume the variable, so it would be possible to place the consume expression only if it was needed.

Similarly to what we did with with, we could stop treating as as sugar for a match block, and treat it as its own, separate thing that we bring all the way down to IR. One concern with this is that it would lead to duplication of the different checks that we apply to match blocks, so they could get out of sync in the future.


Update code for additions - rev1

Description

Related Issue

Type of Change

[ ] 📚 Examples / docs / tutorials / dependencies update
[ ] 🔧 Bug fix (non-breaking change which fixes an issue)
[ ] 🥂 Improvement (non-breaking change which improves an existing feature)
[ ] 🚀 New feature (non-breaking change which adds functionality)
[ ] 💥 Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🔐 Security fix

Checklist

[ ] I've read the CODE_OF_CONDUCT.md document.
[ ] I've read the CONTRIBUTING.md guide.
[ ] I've updated the code style using make codestyle.
[ ] I've written tests for all new methods and classes that I created.
[ ] I've written the docstring in Google format for all the methods and classes that I used.

Addresses issues #271 #270 #175 #28


Tagged Union/Associated Data in enum support

This is like a normal Rust enum except we have a known limited choice, and this means we have to add a discriminator field and the subsequent bits. This is very useful to represent bit fields inside a C union.
Final size of the enum is (discriminator bits + max(content of each enum)). Examples coming soon.
#[tagged(discriminator_bits = 2)]
enum Entity {
  Human { foo: u1 } = 0b00,
  Dog { foo: u2 } = 0b10,
  Cat { bar: u4 } = 0b01,
  Squirrel { foo_bar: u6 } = 0b11,
}

This means we have a u8 field because we have a u2 header/discriminator + max(all enum trailing content) = u6 so u8. This is indicated by the dominant size of Squirrel. All others will have their unused bits zero-extended.

thanks for the proposal. let's clarify this a little.
I've summarized what I understand from your proposal (please feel free to correct me) and added additional questions in parenthesis.

the enum has only "named fields" variants (do you want to additionally support tuple variants?), but not unit variants
all of the variants' fields are arbitrary_ints (or would you like to support any Bitsized type?)
variants have only one field (or would you like to allow Hamster { foo: u1, bar: u4, baz: u1 }?)
the enum is not annotated with #[bitsize(n)]. instead it is annotated with #[tagged(discriminator_bits = n)]
the enum is filled (I assume fallback would not be allowed?)
the discriminator is the MSB of the bitfield (or is it in the LSB position?)
let k = n + max_bitsize_of_any_variant. the generated bitfield for a variant would be a concat of: the discriminator, the field(s) of the variant, then zero-padding to length k

thanks for the proposal. let's clarify this a little. I've summarized what I understand from your proposal (please feel free to correct me) and added additional questions in parenthesis.

the enum has only "named fields" variants (do you want to additionally support tuple variants?), but not unit variants
all of the variants' fields are arbitrary_ints (or would you like to support any Bitsized type?)
variants have only one field (or would you like to allow Hamster { foo: u1, bar: u4, baz: u1 }?)
the enum is not annotated with #[bitsize(n)]. instead it is annotated with #[tagged(discriminator_bits = n)]
the enum is filled (I assume fallback would not be allowed?)
the discriminator is the MSB of the bitfield (or is it in the LSB position?)
let k = n + max_bitsize_of_any_variant. the generated bitfield for a variant would be a concat of: the discriminator, the field(s) of the variant, then zero-padding to length k

I just think of it like this:
| discriminator bits | largest variant bits |

So using the example above:
| 2 bits | largest variant = Squirrel = 6 bits |

This is nice because the current Rust enum implementation won't be able to optimize the discriminator size (it almost always takes one byte at the least), so we can pack the whole thing into one byte rather than having align_up(8 + 6) = 16 bits = 2 bytes. One byte savings could be significant!

https://alic.dev/blog/dense-enums
Just saw this on HN today. Could be useful.


Allow for setting context of Docker build

fixes #18

I think de37b4e also fixes a bug, whereby you are trying to obtain cacert_path/cert_path/key_path/tls_verify from the template results, rather than the molecule configuration?

Closing due to lack of updates. Feel free to reopen if needed.


Add description to ex_authorize_security_group_ingress (same for all …

…cidrIps)
Add description to ex_authorize_security_group_ingress
Description
Added 'description' parameter to the ex_authorize_security_group_ingress method.
If provided, it will add the given description to the cidr_ip's affected by the insertion
Status

done, ready for review
future work could be done to add the possibility of add a different description to each cidr_ip in the the ipranges

Checklist (tick everything that applies)

[X] [Code linting]
[ ] Documentation
[X] [Tests] Tested on our aws integration
[ ] ICLA (required for bigger changes)

Thank you @r2ronoha for your interest in libcloud. We're happy that you chose this project for your first GitHub contribution! ✨
The change itself is nice, thanks! Two things are missing before we can integrate it in libcloud:

describe the new description parameter in the docstring of ex_authorize_security_group_ingress
add an automated test for the new parameter. I'm happy to hear that you tested it on your AWS integration, but we need an automated test to ensure that your change continues to work in the future. See test_authorize_security_group_ingress in libcloud/test/compute/test_ec2.py and the corresponding libcloud/test/compute/fixtures/ec2/authorize_security_group_ingress.xml fixture.

Make sure to ask for help if anything is unclear.

@r2ronoha Thanks! We're nearly there.
Is the description expected to appear in the response when you're using the real EC2 service? Ideally, the test should ensure that the description was actually taken into account, possibly using fake EC2 requests (test fixtures).
Oh, and the lint does not pass, see https://travis-ci.org/apache/libcloud/jobs/283747844 which says "libcloud/compute/drivers/ec2.py:7454:27: E128 continuation line under-indented for visual indent".

@pquentin I have made a quick update to solve the lint issue

Codecov Report

Merging #1122 into trunk will increase coverage by 0.82%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           trunk    #1122      +/-   ##
=========================================
+ Coverage   85.4%   86.22%   +0.82%
=========================================
  Files        346      348       +2
  Lines      66191    67385    +1194
  Branches    5892     5964      +72
=========================================
+ Hits       56528    58103    +1575
+ Misses      7265     6850     -415
- Partials    2398     2432      +34

Impacted Files
Coverage Δ

libcloud/test/compute/test_ec2.py
97.93% <100%> (+0.02%)
:arrow_up:

libcloud/compute/drivers/ec2.py
74.28% <100%> (+0.27%)
:arrow_up:

libcloud/test/common/test_base.py
90.74% <0%> (-9.26%)
:arrow_down:

libcloud/__init__.py
71.42% <0%> (-3.58%)
:arrow_down:

libcloud/storage/base.py
82.8% <0%> (-2.55%)
:arrow_down:

libcloud/test/test_init.py
61.53% <0%> (-2.47%)
:arrow_down:

libcloud/common/cloudstack.py
86.59% <0%> (-1.83%)
:arrow_down:

libcloud/test/compute/test_upcloud.py
91.39% <0%> (-0.81%)
:arrow_down:

libcloud/test/compute/test_azure_arm.py
99.37% <0%> (-0.63%)
:arrow_down:

libcloud/test/common/test_openstack_identity.py
97.94% <0%> (-0.62%)
:arrow_down:

... and 48 more

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 ce5d3be...305ec76. Read the comment docs.

Thank you! Merged in trunk. ✨

Excellent @pquentin Do we know when this will be available?

@r2ronoha I would like to release a new version before the end of July, we'll see if that happens! (We would new maintainers to maintain a faster pace.)

Cool, thx for the info


Option to disable resizing all-day events

Version
1.7.0
Development Environment
Chrome, Linux
Current Behavior
I have single day events that I want to allow to be rescheduled, but they can never be more than one day long.  I didn't see an option in the Schedule to do something like that.
Expected Behavior
Allow the drag section of an event to be disabled

@jgadbois

You can make an event read-only by using Schedule.isReadOnly property.

https://github.com/nhnent/tui.calendar/blob/master/docs/getting-started.md#set-a-schedule-as-read-only

Or you can make your calendar read-only to disable creating or modifying events by users.

https://github.com/nhnent/tui.calendar/blob/master/docs/getting-started.md#read-only-calendar

Thanks @dongsik-yoo.   I don't think isReadOnly will work because I want the event to be draggable to another day, but not resizable

I can accomplish for now by hiding the handle in css


NSwag 10.0 not "noImplicitAny"-friendly anymore

Hi,
When generating a TypeScript file from a swagger definition with NSwagStudio 10.0, it now produces a function named "blobToText" which has an implicitly-typed any parameter.
function blobToText(blob: Blob): Observable<string> {
    return new Observable((observer) => {
        let reader = new FileReader();
        reader.onload = function() {
            observer.next(this.result);
            observer.complete();
        }
        reader.readAsText(blob);
    });
}

When compiling TypeScript with the "noImplicitAny" flag, it fails due to this missing type.

TS7006: Parameter 'observer' implicitly has an 'any' type.

In my case, this function is not even used.
I've attached a sample nswag file reproducing this issue.
test.zip

Should be fixed with v10.1 (if the function is not used, it should be tree-shaked away from angular)


Update to latest React Native

Update the iOS build part, what we should do is we should use <React/...> imports everywhere. We should not export any headers outside of this package as we are not making them reusable.
Otherwise, export under <RCTFBAds/...>

This may turn out to be helpful https://github.com/callstack-io/react-native-fbads/pull/28

Updated and released few days ago


fix(lldb): broken lldb-argdumper symlink

addendum to your PR on nixpkgs

sorry false alarm, it doesn't actually fix the issue I'm trying to solve


Consider using similar timestamp policy to Zabbix sender

Timestamps
If values are sent using zabbix_sender from a file with timestamps, then these timestamps will be adjusted to match server time. For instance, if an item's timestamp is “10:30:50”, the current time on zabbix_sender's machine is “10:40:03”, and the current time on Zabbix server's machine is “10:40:05”, then the item's value will be stored in the database with a timestamp of “10:30:52”.
Similarly, if a value is first sent to Zabbix proxy, which later sends it to Zabbix server, the timestamp will be first adjusted to match Zabbix proxy time, and then it will be adjusted to match Zabbix server time.

Sending alerts from a file with timestamps is not a use-case I'm familiar with.


[BUG] vela cap uninstall <Capability> doesn't print successful/failed message

Fixed already.reopen if still exist.


How to set a custom payload (json) for validation errors?

I'm trying to apply Javalin validation functionalities in my project and I'd like to ask some questions:

In Javalin documentation a JavalinValidation.validate() method is mentioned, but I can't find in version 3.9.0. Am I missing something?
By default a validation error response has a payload of type text/plain containing the error message. Is there a out-of-the-box way to return a custom json object with additional data (and a custom structure)?
If I should to implement it by myself, could it be a helpful feature to add to the project?

I also noticed there's an open issue about some new validation feature (#998). Maybe there is something not well documented related to my questions?
Thanks!

Hi @davioooh,

In Javalin documentation a JavalinValidation.validate() method is mentioned, but I can't find in version 3.9.0. Am I missing something?

The JavalinValidation.validate() method is from 2.X, I'll fix the docs.

By default a validation error response has a payload of type text/plain containing the error message. Is there a out-of-the-box way to return a custom json object with additional data (and a custom structure)?

In your browser, or in postman? It should return JSON by default if the client asks for JSON. You can collect the errors manually, as shown here: https://javalin.io/documentation#validator-error-collection

If I should to implement it by myself, could it be a helpful feature to add to the project?

All PRs will be considered :)

I've removed the outdated info from the docs now.

In your browser, or in postman? It should return JSON by default if the client asks for JSON.

I'm using Postman for my test. Sorry, you're right: adding the Accept header to the request I'm a getting a JSON representation.
OK, I'll work on it and if the result worth sharing I'll consider opening a PR.
Thank you very much. :)


Cannot use QueryCounter properly

Describe the bug
QueryCounter cannot be used with Redis chains because every Redis message gets put into the message wrapper as unknown.
To Reproduce
Steps to reproduce the behavior:

Create a chain with a Redis destination and QueryCounter. null-redis should suffice for this.
Send a query e.g. "SET foo bar", "GET foo"
Check the metrics  at http://localhost:9001 and observe the QueryCounter metric still at 0

Expected behaviour
The RedisSource should have a similar option to the Cassandra one to turn on or off query processing.
An integration test for QueryCounter should be added to observability_int_tests.rs

This issue refers to problems that were solved by the removal of MessageDetails.


docs: clarify CommonJS with optimizeDeps.exclude

Description
As a follow-up to #3927, let's clarify that CJS dependencies cannot be added to optimizeDeps.exclude.
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[x] Documentation update
[ ] Other

If an ESM dependency has a CommonJS dependency, it also cannot be excluded.

This has been probably the most commonly hit issue for SvelteKit apps. The issue is that all Svelte components need to be excluded (and SvelteKit in fact searches for these packages and automatically adds them to the exclude configuration) because the raw .svelte components must be passed to the Svelte compiler. If the package has already been bundled then the .svelte components have already been converted to .js before we try to build the app, which won't work. https://github.com/vitejs/vite/issues/3024 refers to this specifically with a lot of people hitting it in the higher traffic https://github.com/vitejs/vite/issues/2579.
Is there a way to exclude a package, but not its dependencies? That would help us tremendously. I'm not sure if there's a hard constraint around it being implemented the way it is now or that's just what was done without a specific need for it


Arrows do not appear

I have a PDF file with a figure where the arrows do not appear. The PDF can be downloaded with the following link:
http://dl.dropbox.com/u/2603224/bug.pdf
I use windows 7 32 bit and use Firefox Aurora 11.0a2

Hi, I'm unable to reproduce issue with latest addon and Windows 7. The arrows look fine.
Are you using the latest addon from http://mozilla.github.com/pdf.js/extensions/firefox/pdf.js.xpi ?

I have checked it but I'm running the latest version.
Maybe i have to clarify the 'arrows'. The 3 blocks in figure 2.9 don't have arrows in them. When i open the pdf in adobe reader I can see that all the blocks are connected by arrows. In pdf.js they are connected by lines instead of arrows.

OK confirmed. The arrows for the three boxes at the bottom of the figure are very tiny, almost invisible. This seems to be a problem only on Windows though, they display fine on my Mac.


Deploy-Storage-sslEnforcement has syntax errors which prevent it from being loaded in azure

When trying to load the policy to azure, either with GUI or CLI, receive an error message:

Creating policy definition 'Azure Storage deploy a specific min TLS version requirement and enforce SSL/HTTPS' in 'management-group' failed. The policy '1a2b3c4d-abc5-9876-fa54-f7e6d5c4b3a2' has defined parameters 'effect,minimumTlsVersion' which are not used in the policy rule. Please either remove these parameters from the definition or ensure that they are used in the policy rule.

You can copy/paste the file content into azure GUI when trying to add a new policy, or load directly from the file with CLI and both ways reproduce the error.
The cause appears to be multiple lines with one too many opening brackets leading to the failure, e.g.:
111                    "name": "[[concat(parameters('resourceName'))]",
112                    "location": "[[parameters('location')]",

There are more lines but I won't list them all here.

@apocalysque You will find the same in every ALZ custom policy, as it is required for the Bicep engine that generates the policy definition package. It isn't a bug, it is deliberate - in order to deploy ALZ policies, you will need to remove the first [ where ever it is escaped. See other issues: https://github.com/Azure/Enterprise-Scale/issues/1461

Closing as this is by design, feel free to re-open if you have additional feedback.


[Packager] Global require replace (ala webpack's resolve.alias and browserify's builtins)

I am working on making modules that depend on browserify's builtins compatible with react-native.
My current pull request over at node-haste supports the browserify builtins but unfortunately node-haste is depended upon by other packages, so I am looking for a more generic solution.
The first solution that came to my mind is to support a config option with "global replacements".
This way, we could tell node-haste to replace / alias packages.
How are we feeling about supporting this?
To me this seems an obvious problem that we should fix since it will make a lot more packages compatible with react-native, the most important win being (imo) having access to all the streaming libraries.
Related issues

https://github.com/facebook/react-native/issues/5917
Fixed, But only works on a per-module level, this issue is for replacing modules on a global level, allowing us to "imitate" browserify's builtins.

https://github.com/facebook/react-native/issues/5881
Twilio client uses the "crypto" browserify builtin

https://github.com/facebook/react-native/issues/5555
Somebody that wants to use builtins

https://github.com/facebook/react-native/issues/4022 and https://github.com/facebook/react-native/issues/4098
Requiring a package that expects process to be present (maybe already fixed by the addition of the "browser" and "react-native" field)

https://github.com/facebook/react-native/issues/4018
Someone trying to use (a package that depends on) the "net" package

https://github.com/facebook/react-native/issues/1871
More people wanting node-ish support in react-native

https://github.com/facebook/react-native/issues/5988
Somebody trying to use a library that depends on the "stream" builtin

There are probably a bunch more out there but this is what I could collect with a couple of searches.

+1

+1000

The product pains for this is https://productpains.com/post/react-native/packager-support-resolvealias-ala-webpack/ Please Bump

+1

This definitely sounds useful. As an issue, this seems like a duplicate of the product pains link, so I'm going to close this issue in favor of that.


[forwardport] Cannot edit vSphere node template that creates from RancherOS or Clone

Forwardport of rancher/rancher#23796

Available in latest2.

Tested in rancher\rancher:master-head version 781cd0fdc.
Can create and edit vSphere node templates without issue.


Getting id of asset always null

When i invoke
Transaction lastTransaction  = TransactionsApi.getTransactionById(id); - here i get not null trasaction
Asset asset = lastTransaction.getAsset() - here i get not null asset
asset.getId() - here i get null, but when i check asset id in mongo it is not null

Hey @NikitaLos ,
Asset Id needs to be retrieved in different ways depending on the fetched Transaction was CREATE tx or TRANSFER tx. You are getting null asset id, because you are fetching from CREATE tx.  Structure for Tx object/ json for CREATE and TRANSFER tx are different. So, asset id needs to be fetched differently.
Below is a sample method to get asset id for both types of transactions. Hope it helps -
public String getAssetId(String txId) throws IOException {
		String assetId = null;
		//get the transaction
		Transaction tx = TransactionsApi.getTransactionById(txId);
		//in case of CREATE operation, tx id is the asset id
		if(tx.getOperation().contains(Operations.CREATE.name())) {
			assetId = tx.getId();
		}
		//in case of TRANSFER operation, asset id is stored in asset object
		else {
			assetId = tx.getAsset().getId();
		}

		return assetId;
	}

If above snippet, solved your issue, then please close this issue.

Thanks for explanation @innoprenuer!


Improvements to aggregator and generator APIs

Description
Here is a sample generator from LLM tutorial:
from typing import List

class Dialog(BaseModel):
    id: int
    text: str

def text_block(id: List[int], sender: List[str], text: List[str]) -> Dialog:
    columns = zip(text, sender)
    conversation = ""
    for text, sender in columns:
       conversation = "\n ".join([conversation,f"{sender}: {text}"])
    yield Dialog(id=id[0], text=conversation)

chain = DataChain.from_csv("gs://datachain-demo/chatbot-csv/").agg(text_block, output={"dialog": Dialog}, partition_by="id").save()

This syntax has a number of issues:

Input Column names are implictly made into list names. This is awkward because argument "sender" is a list that would be better named "senders".

Passing lists from SQL limits out-of-memory operations

The aggregation key when passed as a parameter does not have to be a list because it is identical in every record

Here is a proposed updated signature:
def text_block(id: int, sender: Iterator[str], text: Iterator[str]): -> dict[str, str]
    columns = zip(text, sender)
    conversation = ""
    for text, sender in columns:
       conversation = "\n ".join([conversation,f"{sender}: {text}"])
    yield {"id": id[0], "conversation": conversation}

chain = DataChain.from_csv('gs://datachain-demo/chatbot-csv/').agg(text_block, partition_by='id').save()

That's great idea!
It seems you are also proposed the idea of returning dict and use keys of the dict as return signals. I recommend creating a separate issue for that - these two are not related to each other and dict as an output might be a challanging since we have a built-in dict already.
Without this, the API should look the one below. @volkfox please correct me if I'm missing anything.
def text_block(id: int, sender: Iterator[str], text: Iterator[str]) -> tuple[int, str]:
    columns = zip(text, sender)
    conversation = ""
    for text, sender in columns:
       conversation = "\n ".join([conversation,f"{sender}: {text}"])
    yield id, conversation

chain = (
    DataChain.from_csv('gs://datachain-demo/chatbot-csv/')
    .agg(res=text_block, partition_by='id', output={"id": int, "conversation": str} )
    .save()
)


Allow a task to execute an extension command.

#63153
Creates a mechanism for allowing an extension to define a task that actually executes an extension command.
This pull request is just to gather some initial feedback.
The implementation is not yet done.
What needs to be considered:

Cancellation support when an extension command is running as a task
Allow a task to be defined in JSON (update the JSON schema)
Reconcile a task-definition's properties with "options" that can be specified by a task provider.
And more that I may be missing..

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

Is there an issue for this? Has it been discussed with anyone?

      Is there an issue for this? Has it been discussed with anyone?

This is being discussed with @dbaeumer in an offline email thread. No issue has been opened yet. This PR is for preliminary thinking only.

@GabeDeBacker thanks for the PR. I am very busy the next couple of days. I will not find time before next week. Sorry for that.
The underlying issue for the PR is: https://github.com/Microsoft/vscode/issues/11396

@GabeDeBacker Look quickly at the terminal changes. They should come as a separate PR since I think they do make sense in isolation and are useful for other tasks.

I am trying to chain 3 manual steps together for building documentation:

Run C# script using oleg-shilo.cs-script (VS Code command)
Export markdown to html using yzane.markdown-pdf (VS Code command)
Run C# script to fix plantuml urls using oleg-shilo.cs-script (VS Code command)

I am hoping to have this in a task in tasks.json.  This sounds like it may give the ability to do that.  At the moment, I have to have the correct file open in the editor for the run commands to work.  Perhaps that can be passed as an arg to the command or maybe there is an "open file" command in VS Code that could be put in this sequence.  Just throwing it out there for use-case consideration.


Some comments on the X11 platform

Hi,
I cam across Druid via https://www.reddit.com/r/rust/comments/h9z66n/changelog_for_druid_06_updated_from_05_two_weeks/.  The changelog then links to a couple of things which then lead to more issues.  I feel like I provide some useful input and hence I am opening this issue. I will try to add things to the already existing issues where applicable.

https://github.com/xi-editor/druid/pull/599#issuecomment-609376693

Resizing the window on the left site makes it blink temporarily towards the
direction I drag on the right.

[ ] Random guess:

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L182
You are telling the X11 server to fill any exposed area with white before sending an expose event. I'd recommend just removing this line. The default background is None, which means that the server just sends an Expose event without drawing anything beforehand.

This goes completely crazy when sizing it < 0 width, the window just flies
away to the right joy. Does not happen when resizing on the right side

This makes no sense to me. X11 windows must have at least a size of 1x1. Sounds like a weird interaction with your WM, but I am not really sure what is going on.

Application does not exit when closing the window

You seem to have figured out WM_PROTOCOLS already. Anyway, I recommend reading EWMH and scrolling through the table of contents of ICCCM (I have never read all of ICCCM myself, I think).

https://github.com/xi-editor/druid/pull/599#issuecomment-609459142

Window redraw flashes: [...]

[ ] How are you redrawing? I see that cairo is involved. Are you trying directly to the cairo surface that represents your window? In that case, redrawing is "live" and intermediate steps are already visible (welcome to X11).

I recommend looking at double-buffering. With cairo, this is as simple as cairo_surface_create_similar (this is the C function) on the surface.  Internally, this creates an X11 pixmap (if called on an X11 surface) and sets this up as a cairo surface. You can then draw to this surface and only copy your finished drawing to the X11 window.
If you are already doing double-buffering: Sorry for missing that part of the code.

[ ] By the way, you are calling cairo_surface_flush() where necessary, right?  (Necessary = the drawing should actually be sent to the X11 server now.)

https://github.com/xi-editor/druid/issues/475

Currently figure out the screen's refresh rate and sleep (!) for however long
based on the refresh rate, which is probably not what we want to do. Better
way to sync draws?

I have no clue about druid, but please tell me that you are only doing this if there is an active animation. I saw some screenshot of a calculator somewhere and that does not look like something that needs to be redrawn many times per second...?

https://github.com/xi-editor/druid/issues/475

Timer support implemented (WindowHandle::request_timer, etc)
Idle handle support (WindowHandle::get_idle_handle, etc)

You basically need to write your own main loop. The usual low-level X11 libraries that I have seen do not provide one for you. x11rb falls into this category.
Actually, you already wrote a very simple main loop, but so far it can only handle X11 events and nothing else:
https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/application.rs#L271-L286
As an example on how a very simple version of this might look at, I recommend looking at (the main ingredient is poll_with_timeout): https://github.com/psychon/x11rb/blob/a6bd1453fd8e931394b9b1f2185fad48b7cca5fe/examples/xclock_utc.rs.
Basically:

Call poll_for_event() to handle all the events that were read from the socket to the X11 server.
Now there is nothing left to do. You might want to call this "idle" and run your idle-something-code.
Wait for the X11 socket to become readable. Welcome to low-level unix programming and raw file descriptors.

This waiting can be done with a timeout. Here, you'd need to keep a list of timers around and calculate when the next one expires.

Repeat from the beginning.

This related to #934 and #935. I haven't written this to either of them since it does not completely fit with either of them.
In case you have the luxury of ignoring thread, the above works. In this case, you can also add a single call to xcb_flush() (well, connection.flush()) at the end of the main loop iteration. That way, you do not have to flush anywhere else (assuming your forbid functions that take a long time to return, but that would completely block your main loop and so I guess you do).
If you have to support threads: Don't.
If you still have to support threads: The Qt guys have not found a correct way to handle events in the main thread while other threads might also use the X11 connection. Their solution is to spawn a thread which always calls xcb_wait_for_event() in a loop and sends the result to the thread that runs the main loop (...via some Qt-internal mechanism that I know nothing about).

I also took a look at the code in https://github.com/xi-editor/druid/tree/master/druid-shell/src/platform/x11.
https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/application.rs#L224
I recommend only handling the last MotionNotify event in a series of events. If the X11 server generated these events faster than you can handle them, your application may lag behind more and more.
E.g. imagine a program that shows a cross at the current mouse position while it is inside of its window (just for the sake of argument). This program sleeps for a second after drawing its content (also just for the sake of argument). When the mouse cursor moves across the window, one can now see the old mouse positions to be drawn with a lot of delay. I hope this description makes sense.
A simple way to avoid this is to keep a "pending" MotionNotify event around while processing events. If a newer MotionNotify event comes in, the pending one is simply discarded. Some things, e.g. "mouse left the window" depend on the order of events and in this case the pending event would be handled.
Perhaps some code can explain this better than my weird explanation above:
https://github.com/awesomeWM/awesome/blob/e7113d7191e37c5b0faedccff6caf82d8e0bd77c/awesome.c#L392-L425

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/application.rs#L296-L297

We need to queue up the destruction of all our windows.  Failure to do so
will lead to resource leaks.

Huh? Can someone tell me more about this? The X11 server automatically destroys all your resources when you close the connection (unless you use the SetCloseDownMode request and specify something else to happen).
Or is this about something like an Rc cycle, i.e. a leak inside of the Rust program?

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/keycodes.rs
This looks so simple. You should keep it at that version of the code. :-)

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L94-L140

[x] After your switch to x11rb, I recommend taking a look at https://docs.rs/x11rb/0.5.0/x11rb/macro.atom_manager.html

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L460-L471

[ ] Please, please set the _NET_WM_NAME property. It has type UTF8_STRING. I actually do not know how to decode STRING properties correctly, but just the fact that X11 is older than Unicode makes this scary.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L293

[ ] You might want to .finish() your cairo surface before destroying the underlying window. Most likely, it makes no difference, but in the cases where it makes a difference, it saves you some X11 errors.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L260

[ ] Why are you storing a cairo context? I think storing a cairo surface makes more sense. Contexts are very cheap to create.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L333-L354

[ ] The X11 server does not care about your SendEvent request. It just forwards its content. Why do you need this to go through the X11 server instead of handling this internally?

Edit: Found an explanation at https://github.com/xi-editor/druid/pull/989/commits/fe132195b4d53f63a9f791c13f89136eed584c55#diff-31f2e83ba4096702ec15dea2f88c18edR336-R339
    /// 3) Someone calls `invalidate` or `invalidate_rect` on us. We send ourselves an expose event
    ///    and end up in state 2. This is better than rendering straight away, because for example
    ///    they might have called `invalidate` from their paint callback, and then we'd end up
    ///    painting re-entrantively.

In this case I would say: Why not use your "soon existing" idle infrastructure instead? That would still save a round-trip to the server.

[ ] Speaking of which, I would kind of expect that you keep around a dirty region.  This contains all the pixels which need to be redrawn. Instead, you seem to redraw immediately when you receive an Expose event:

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/application.rs#L175-L182

[ ] Well, expose events only contain a rectangle. For non-rectangular exposes, the server generates a series of Expose events. All but the last one have a non-zero count member. count == 0 indicates that this is the last expose event for now.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L358-L360

[ ] Uhm. Just keep that around in some variable. You get ConfigureNotify events when the size changes. That would avoid one round-trip to the X11 server.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L433

[ ] With a reparenting WM, this does not do anything. There is some section in ICCCM somewhere that explains how to do this. I guess it involves sending an event to the root window.

https://github.com/xi-editor/druid/blob/d810d30b95da52b3ca89efe63bd3b88b15b5a42b/druid-shell/src/platform/x11/window.rs#L443

[ ] ICCCM forbids SetInputFocus with CurrentTime. Never ever may anything do that. Welcome to "X11 is mechanism, not policy".

[ ] Apropos violating ICCCM: There are lots of properties that you have to set before mapping your window, e.g. WM_CLASS. Also, WM_CLIENT_MACHINE and WM_COMMAND would be "nice to have". Oh and _NET_WM_PID (from EWMH, not ICCCM) is also a nice-to-have.

Feel free to ping me as @psychon with questions in the future on other issues. There is certainly a lot that I do not know, but perhaps there are also bits and pieces that I can help with.
Edit:

[x] I added some checkboxes to this in the hope that this simplifies tracking things in this big dump. Feel free to edit this post to check the boxes where applicable.

Thanks a lot for going through the trouble of giving us some feedback!
Some of the points I personally already know, others not. In both cases it's great to have some of this written down. I'll also give some replies to a few points below.
Regarding the white flash and not setting the background white, that's probably related indeed. Windows had the same issue which was fixed in #915.
Regarding the draw scheduling, the master code is just a temporary hack. We do have a better solution in the works in #989 which will cut down on a lot of useless work and add buffering and v-sync.
Regarding MOTION_NOTIFY - I understand your concern but odds are we would like to receive more of these not less. Supporting high precision drawing can't work without receiving a lot of these and all of them. Imagine drawing a specific curve with your mouse. If profiling ends up showing that high frequency mouse events are too costly then we might switch it to an option, but that's a big if.
Regarding resource leaks during application quit - yes this is about cleanup in druid-shell Rust code, not X11 resources per se.
Regarding _NET_WM_NAME and _NET_WM_PID etc. I think it makes sense to support as many of these as we can. It's mostly just a case of the X11 backend being at a really early stage.

I did the atom_manager thing as part of the x11rb port.

By the way, you are calling cairo_surface_flush() where necessary, right? (Necessary = the drawing should actually be sent to the X11 server now.)

I think we might not be, actually... (I opened up an issue on piet)

BTW, the initial commit of this (by me) was a super huge hack to see if we could get something else in the Rust ecosystem working. Code that I submitted is definitely not production-ready, but it's nice to have the list of stuff that's wrong! :)

#989 fixed a number of these, so I checked them off

I wanted to chime in here, to thank both Charles for getting the platform started, and psychon for giving constructive feedback. There's a lot of knowledge there, and it should serve as a useful guide for our corps of volunteers who are working on this. And of course to jneem for working to improve it :)

Thanks for getting it started, @crsaracco! I never would have written an x11 backend from scratch, but now that it's here I'm having a lot of fun (and learning a lot, too) tinkering with it.


Added crossterm backend.

This PR is implementing crossterm for Cursive. It is still a work in progress and has to be tested more. Down below you will find a list of thing that has to be checked or tested.

[X] Keyboard Input Handling
[X] Coloring
[x] Mouse input Handling

[X] Linux
[x] Windows (seems to not always capture mouse)

[x] Performance (Windows is a bit laggy sometimes)
[x] Cursor Hiding Windows.

What is crossterm?
Crossterm is similar to termion a terminal manipulation library, however, it supports all UNIX systems and Windows systems down to Windows 7.

On the latest master I started using cfg-if for the impl Default for Cursive blocks, I think that's the only conflict that needs fixing.

Awesome, I think it is ready for the merge


[Enhancement] enable use meta scan in simple min/max agg query

What type of PR is this：

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 72 / 73 (98.63%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMinMaxAggToMetaScanRule.java
68
69
98.55%
[150]

:large_blue_circle:
com/starrocks/sql/optimizer/Optimizer.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/MetaScanNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/RuleType.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/LogicalPlanPrinter.java
1
1
100.00%
[]

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 73 / 74 (98.65%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMinMaxAggToMetaScanRule.java
69
70
98.57%
[151]

:large_blue_circle:
com/starrocks/sql/optimizer/Optimizer.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/MetaScanNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/RuleType.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/LogicalPlanPrinter.java
1
1
100.00%
[]

[FE PR Coverage Check]
:heart_eyes: pass : 73 / 74 (98.65%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMinMaxAggToMetaScanRule.java
69
70
98.57%
[111]

:large_blue_circle:
com/starrocks/sql/optimizer/Optimizer.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/MetaScanNode.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/RuleType.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/LogicalPlanPrinter.java
1
1
100.00%
[]

run starrocks_admit_test


Added support for camunda 7.11 and latest (camunda 7.12)

added project to support camunda  7.11
implemented API methods for camunda 7.12 - unreleased

Hey @martinschimak,
do you have time to look into this contribution?
Cheers,
Tassilo

Hey @ieugen,
the problem you are facing with the Contributor License Agreement is due to the fact, that the user @devlabel-machines is the author of the commit. Only the author of the commit can sign the CLA.
Cheers,
Tassilo

Hi,
I've fixed that. Tanks for bringing it to my attention.

Hi @ieugen,
@martinschimak asked me to review this PR. It will happen within the next two weeks.
Cheers,
Alexander

Hi @ieugen
I reviewed your PR, it looks good!
There are some small details that I would like to change.

.gitignore: please revert this. I personally think this is a good change, but it should be in a separate PR.
In ProcessInstanceDelegateImpl there are formatting changes. Could you please revert them?
The unit tests you added are a copy of 7.6, please revert this. They are not necessary, because the CI builds should test it with the versions specified. If there are new aspects you want to test, please add a unit test.

Could you commit these changes in the near future (like in 1 or 2 weeks)? I also could revert the mentioned changes with another PR, if you don't have time for these changes. Just let me know!
I will extend the CI build with another PR, so it will run with newer engine versions.
The CI build of your PR fails, because of Java 6 incompabilites. I talked to @martinschimak, we will remove Java 6 from CI.
Thank you for your PR, it helps a lot!
Cheers,
Alexander

Merged for some further work to be done by @alexanderseik