Memory leak in driver version 10.2.0?

Driver version
10.2.0
SQL Server version
Tested against several different SQL server versions; this is clearly not server version dependent.
Client Operating System
Tested on various Windows versions, as well as OSX; this is clearly not operating system dependent.
JAVA/JVM version
Corretto 17
Table schema
Not applicable
Problem description
Following update from version 9.4.1.jre11 to 10.2.0.jre17 our application consumes considerably more memory and exhibits clear signs of a memory leak when pooling a a number of JDBC connections. Everything except the driver version (Client OS, SQL server, JRE, application code)  is exactly the same, so the only reasonable explanation is that the driver update causes the problems.
Example heap memory consumptions in our application (i.e. amount of memory not available for GC) with 50 pooled, mostly idle connections (only a query or two per second):

9.4.1.jre11: 206MB; GC will reliably release memory down to this level over time, i.e. no signs of memory leak.
10.2.0.jre17: 244MB; this floor quickly increases over time - after only a couple of minutes it's up to 273MB, eventually causing an OutOfMemoryError.

Again: everything is exactly the same except for the driver update, and this behaviour is consistent on different platforms. We have been using this driver in previous versions for years in the exact same way without any indication of these kinds of problems.
Expected behavior
After deploying a new version without any documented breaking changes I would have expected everything to work as it did before.
Actual behavior
Error message/stack trace
OutOfMemoryError eventually follows, as the memory incrementally consumed by the connections appears to be difficult to GC.
Any other details that can be helpful
JDBC trace logs

Hi @marthursson,
Thank you for your report, we'll look into it further and get back to you as soon as we can. To assist us in handling this issue, any additional details or documentation that you can provide, would be appreciated. The most useful would be:

A application reproducing the bug seen above
A complete stack trace of the error
Any queries and table schema used leading to the appearance of the bug

@Jeffery-Wasty

There is no specific stack trace to point out (the OutOfMemoryError doesn't necessarily occur related to JDBC access, it's just that eventually there's no more heap space so that error can happen pretty much anywhere). I'm monitoring the memory usage in jconsoleand the occupied memory after GC increases over time.
As far as I can see it's not related to any specific query; this happens when the application is is in idle mode so there are no statements executed that returns any data; only very simple select queries. Pretty much all of the actual statements are initiated periodically by the DB pool to verify that the connections are still alive (i.e. SELECT 1).

At this time I don't have the time to set up an isolated application demonstrating the problem or dive too deeply into troubleshooting. We're basically fine with the previous version of the driver for now, but it felt reasonable to report this problem since clearly something significant has changed in the latest version. However the relevant basics of our application is as follows:

A Spring (version 5.3.10) application using Spring JDBC for DB access, running in Tomcat 9
Connection pooling is managed by the application (as opposed to the Tomcat container) using Commons DBCP2 (version 2.9.0)

Relevant settings are: initialSize = maxTotal = maxIdle = minIdle = 50, testWhileIdle = testOnBorrow= true, validationQuery=SELECT 1.
Connection properties:

encrypt=false
socketTimeout=1000000
queryTimeout=900`
prepared statement caching is off (more specifically: on or off doesn't appear to make any difference).

I do hope the above will help you figure out what's happening.

Hi @marthursson,
Thank you for the above, it certainly helps. If you're able to, can you try using the 10.1.0 preview release, and verify whether the same issues arise? This will help us in narrowing down the problem to either the 10.1.0 or 10.2.0 release.

I've encountered the exact same problem after migrating from 9.4.1.jre11 to 10.2.0.jre11.  This application used 200mb on average at 9.4.1. After the migration to 10.2.0 it repeatedly OOM'd at 500mb+. One of my colleagues made a heap dump to analyze this problem. Does that help? Screenshot below:

Hi @waynerijsdijk,
Thank you, this does help. Can I ask of you the same thing I asked the original poster, that is, does this still happen with the 10.1.0 preview release? A reproduction app would also be useful, but in lieu of this, would you be able to provide your application setup and/or environment?

hi @waynerijsdijk
do you have a standalone java repro app for the issue?

The application that I have checked today had an average memory usage of around 144mb (max mem usage in 3 weeks of runtime was around 350mb) with driver 9.4.1-jre11. It has setting encrypt=false and it uses integrated security as authentication. That's my baseline.
The exact same application uses 553mb after running for two hours with driver 9.5.0-jre11-preview. The memory usage seems to grow way faster starting from 10.1.0-jre11-preview. It took about 45 minutes to reach 500mb+. The same behavior as 10.1.0-jre11-preview is seen in 10.2.0-jre11.
I checked 10.2.0-jre11 with user/pass auth (instead of integrated security authentication), but that does not provide me with any better results.
It looks like the troubles started in 9.5.0-jre11-preview somehow and got worse after that. I don't have a standalone reproduction app for this problem (yet) @lilgreenbird.

The information provided so far has been very helpful, but we're still unsure on a few key points. We're mostly interested in what happens before memory leak occurs, that is, while the leak may be observed during application idle, or during a few small queries, knowing what is done beforehand is probably more useful for our purposes.
@marthursson I know you mentioned its not related to any specific query, but is there some other commonality that could be present? Could the leak be showing up after many successive queries, does it show after both reads and writes?
@waynerijsdijk Is the leak also observed during an idle state? Similarly, is there any common traits between what happens before the leak is observed?
Again, thank you both for all the information provided so far, any further information you can supply would be greatly appreciated.

@Jeffery-Wasty In this case idle mode means that the open connections are mostly just sitting there, waiting for stuff to do. There are no updates, and the only queries that happen are:

SELECT 1 (issued by the connection pool for checking that the connections are still alive)
SELECT TOP 1 id FROM stuff_to_do WHERE start_time <= GetDate() (this is obviously not the exact SQL; the point is that it's a very simple query, and it never returns any data when the application is in this state).

Without any knowledge of the inner workings of the driver, my guess would be that this is related to long-living connections in general. Note that the application connection pool will keep the connections alive for the entire application lifetime. Dead connections will be discarded by the driver and new ones will be created immediately, so if connections actually die and the driver fails to properly clean up resources related to that it could also possibly be a problem (note that I have not noticed anything to indicate that the connections actually die, I'm merely speculating).

@Jeffery-Wasty Tried with 10.1.0.jre11-preview and it appears the problem is present in that version as well.

@marthursson Thank you for the update. It would help us narrow the problem down even more if you would be able to confirm whether the problem persists with the 9.5.0-jre11 preview.

An update on our end. We've been unable to replicate the leak so far, testing in version 10.2.0jre17. This includes tests designed to mimic the results posted @waynerijsdijk, where large amounts of data are read and written. And where the connection is kept alive for a long time.
To proceed with this, we'll need a little bit more info on the situation:
@marthursson - What does the application do before it becomes idle? You're absolutely right that nothing done during the idle state should lead to a problem, but some more information about what happens beforehand would be useful. Is it a transaction with a large amount of data? Many transactions? Is the same type of operation performed before the application is idle? What about the type of data being used? Anything helps here.
@waynerijsdijk - Similar to above. What is happening in your situation before the memory leak. You mention it takes ~45mins to get to ~500mb of usage. Is it similar to @marthursson where the application is in an idle state? If not what is being done during that time?
This is an issue we would like to solve as soon as we can and so any information you can provide will immediately be put to use.

Regarding our status on the issue: we're still unable to replicate the bug in the versions mentioned above. Without further information we are unable to progress on this issue. From previous comments it would seem that both of you do have some workaround the problem, by using older versions, so, unless new information is provided, we will move forward on closing this issue one week from this date.

hi @marthursson @waynerijsdijk
As mentioned we have tried our best to try to reproduce this issue by running stress tests and profiling to mimic the results as seen above however we are unable to see any memory issues despite our efforts. It seems this may exist in some edge cases that we are unable to see at the moment that is why we were asking for more information to help identify the root cause. Without more info there is not much more we could do at this point so we regret to have to close this issue for now. If you have more info please feel free to request re-opening. Thanks.

Hi @lilgreenbird,
I'm encountering what appears to be the same memory leak as reported by @marthursson and @waynerijsdijk. While I don't have a standalone test case that I can share with you at this time, I can recreate the problem easily in my test environment, so perhaps I can help. My test uses a connection pool. In my test scenario, I'm only changing the driver. What I see is:

9.2.1.jre11 works
9.4.1.jre16 works
9.5.0-SNAPSHOT.jre17-preview leak present
10.2.0.jre17 leak present

Using 9.4.1.jre16, memory looks like:

Using 9.5.0-SNAPSHOT.jre17-preview or 10.2.0.jre17:

Visualvm memory profile shows the following near the end of the run for 9.4.1.jre16:

The profile near the end of the 10.2.0.jre17 run shows:

So this superficially looks like a leak of prepared statements, but only after some triggering event. Not sure what that event is yet though.

Upon reviewing the heap, I think the issue I've encountered has been reported as #1781.

hi @dballardgh
Thanks for the info, yes we have fixed that in our 11.1.1 release, could you please verify if this fixed your issue?


Add character Gregg, the Egg

Hero Description

Gregg is an Egg with magical powers.
One of his powers, is to control two magic eggs that are around him.
Your eggs are like magic orbs, only in the shape of an egg.

Concept Art

Inspiration

The inspiration comes from Cartoons and Nintendo games.

Moves
He stands, breathing, while his magic eggs revolve around him.
[STICK] Walk
He runs in a cute way, with his magic eggs spinning around him.

Idle
Normal.

[LEFT] Gregg Smash
Description Gregg gathers his strength and jumps, when he falls, he deals area damage.

(This ability has synergy with the ultimate).

[MIDDLE] Copy Egg

Description Gregg uses one of his magic eggs to make an identical copy of himself. If someone attacks the copy, they are stunned for X seconds. If someone enters the Gregg area, they take root.
Animation The clone is in Idle.

If there is nothing around, the clone is only on guard for X seconds.

Guard animation Keep looking around.

After X seconds, the egg breaks and the ability is undone.

[RIGHT] Oval Gusts

Description Gregg uses one of his magic eggs to make a burst attack on enemies in front of him. Each hit egg causes more damage, in total there are 3 eggs.

Works well as a basic attack.

[Q] Ultimate: The Mystic Egg

Description Channels for a short time, and is immune to any type of damage for a short time. During that time, his eggs revolve around him, causing a lot of damage to enemies around him.
[E] TAUNT
Tasks

[x] Idle
[x] Walk
[x] [LEFT] Gregg Smash
[ ] [MIDDLE] Copy Egg
[ ] [RIGHT] Oval Gusts
[ ] [Q] Ultimate: The Mystic Egg

Approved for work!

Day 05/15

Resume

Created the Issue (Concept Arts, Skills)
Model

Hours Worked 6:23

Day 05/18

Resume

Idle
Walk

Hours Worked 6:14

Day 05/19

Resume

[LEFT] Gregg Smash

Hours Worked 6:17

Day 05/20

Resume

[MIDDLE] Copy Egg
[RIGHT] Oval Gusts

Hours Worked 7:28

Day 05/21 and 05/22

Resume

[E] Taunt
[Q] Ultimate: The Mystic Egg

Organization of Files and Issue

*Hours Worked 9:17


Fix small helm chart typo

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: tzilist
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: mandarjog
If they are not already assigned, you can assign the PR to them by writing /assign @mandarjog in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @tzilist. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Never mind, I misread how it works! :P


Make CursorBuilder independent of mapping scope, add contramap

On top of #320, will rebase if that goes in.
We've found this very handy, particularly for leaf nodes and wrappers around standard types (lists, options, etc).
The reason I haven't made it a Cats type class instance is that I wasn't sure if it's lawful? There are some ContravariantMonoidalLaws. Maybe it should be called something else 🤷

This and #320 are definite improvements ... thanks!
I'd be tempted to combine #320 and #321 ... there's no real need for them to be separate.
You'll need to bump tlBaseVersion to 0.11 to keep MiMa happy.

Poke @milessabin :)

I'll merge this now and make a couple of changes in a follow-on PR,

Rename CursorBuilder to GenericCursorBuilder.
Drop the type alias of CursorBuilder in GenericMappingLike. Its only purpose is preserving backwards compatibility, and we don't really want to care about that until after a 1.0 release.


[KOGITO-138] - Upgrade operator to use Go Mod instead of Dep

Jira: https://issues.jboss.org/browse/KOGITO-138
Upgrade the operator to use GO modules.
The operator currently uses dependency management tool "dep" which is supposed to be replaced with GO modules.
Many thanks for submiting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[x] You have read the contributors guide
[x] Pull Request title is properly formatted: [KOGITO-XYZ] Subject
[x] Pull Request contains link to the JIRA issue
[x] Pull Request contains description of the issue
[x] Pull Request does not include fixes for issues other than the main ticket
[x] Your feature/bug fix has a unit test that verifies it
[x] You've tested the new feature/bug fix in an actual OpenShift cluster

Hi @ricardozanini @bmozaffa @tchughesiv , Could you please review this pull request? Thanks.

Thanks, @ricardozanini @bmozaffa . I have squashed the commits.


Install on top of existing Prometheus and grafana docker?

I already have Pi-Hole, Prometheus and grafana Dockers running on my Pi as I have a dashboard setup for monitoring the rpi. Is there any way I can set up the internet pi as a separate dashboard within my existing grafana and Prometheus dockers?

Yes, I had the same problem. I think you have a conflict for port 9090.
I changed the internet-pi's use of 9090 to 9080.
For this, I had to perform two changes:

.internet-monitoring/docker-compose.yml
Change prometheus port setting from
`ports:

9090:9090toports:
9080:9090`

./templates/prometheus.yml.j2 from
- targets: ['localhost:9090']
to
- targets: ['localhost:9080']

Hope this helps.

Does this solution result in two Prometheus/Grafana containers running side by side (one standalone, and one part of the Internet Pi)?
I actually came here looking to see if there's a way to incorporate Internet Pi into an existing Grafana/Prometheus service so I just have a single login to see all my dashboards in a single place.

Thanks!
On further consideration, I think I’ll just let it run with its own Grafana/Prometheus. :)

On Jun 27, 2022, at 7:57 AM, martinbrose @.***> wrote:
Pretty sure it would result in two Prometheus/Grafana containers.
If you want to add the internet monitoring to your existing Grafan/Prometheus, you would need to get creative and remove the Grafana/Prometheus tasks from the ansible internet-monitoring task (folder tasks).
And then add the required configs from the folder templates, internet-monitoring/prometheus, and internet-monitoring/grafana into your existing installs.
Plus, you would need to remove prometheus and grafana sections from the docker-compose.yml. And somehow you need to make sure that your existing Prometheus can reach the internet-pi docker containers.
So quite a bit of complexity... but not unsolvable.
—
Reply to this email directly, view it on GitHub https://github.com/geerlingguy/internet-pi/issues/306#issuecomment-1167320293, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGI5CYWS74WDSHAL4SNSCW3VRGQNBANCNFSM5LSCNYPA.
You are receiving this because you commented.


Suggestion: Nerf mobs from mobspawner

Heya.
In spigot.yml there is an option to nerf mobs spawned by spawner. This option just makes the mob unable to move/attack. I was hoping you could add a real nerf (less xp/item drops & slower spawns) from the mobspawner.
Not sure if it’s possible, but if it is… would love to see it in Purpur😄💖

API for this has already been exposed in Paper, so would be best left up to a plugin to implement where everyone's differing opinions and needs could be met


Android and iOS

Hi,
It support android and ios?
Thanks.

Android and iOS should now be supported with the latest ARM compatibility updates made.

Android and iOS should now be supported with the latest ARM compatibility updates made.

Android and iOS should now be supported with the latest ARM compatibility updates made.

Android and iOS should now be supported with the latest ARM compatibility updates made.

Hi,
This latest version is on conan repository?
Thanks.

Hi,
This latest version is on conan repository?
Thanks.

I don’t think so, but I don’t maintain that
On Thu, 7 Jan 2021 at 21:41, Paulo Coutinho<EMAIL_ADDRESS>wrote:

Hi,
This latest version is on conan repository?
Thanks.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/mjansson/mdns/issues/33#issuecomment-756371364, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZJWUSMIYUVJZF4R7T75TDSYYL7TANCNFSM4SJYYUMA
.

I don’t think so, but I don’t maintain that
On Thu, 7 Jan 2021 at 21:41, Paulo Coutinho<EMAIL_ADDRESS>wrote:

Hi,
This latest version is on conan repository?
Thanks.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/mjansson/mdns/issues/33#issuecomment-756371364, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZJWUSMIYUVJZF4R7T75TDSYYL7TANCNFSM4SJYYUMA
.

There is a tag/release for the new/current version with ARM support?

There is a tag/release for the new/current version with ARM support?

There is now, 1.2

There is now, 1.2


[project-monitoring] Helm Chart crashs with disabled Grafana

Describe the bug
The Project Monitoring Helm Chart has the option to disable Grafana installation. Helm crashs if this option is set (enabled: false).
To Reproduce
disable Grafana
Result
Helm Chart crashs
Expected Result
Grafana is disabled and will not installed in the target project.
Additional context
The root cause are unknown variable names in this rbac file. The resourceNames are generated from call-nested which loops over all sub-charts, which is happily only Grafana. But we disabled Grafana and this variables and part of code are not available.

testing status - passed. moving to closed
testing information -
rancher image 2.6.13
prom fed chart version 0.3.1
monitoring- 100.2.0+up40.1.2
K8- v1.24.13
testing activities-

installed latest monitoring chart
installed 0.3.1 prom federator chart. checked box to edit yaml
updated yaml to disable grafana
confirmed successful installation, and that grafana is disabled in yaml (see screenshot)
navigated to project monitoring and created a project monitor
confirmed all grafana links within project monitoring display a 404 and no grafana charts are displayed (see screenshot)

testing notes:
grafana is still installed on the system in places because project monitoring utilizes it.
screenshots:


Fix test_discovery::test_wait_neighbours

That test could fail when one of the randomly generated Nodes had
an IP address that was not reachable. Now it uses hard-coded
IP addresses.
Closes: #1605

Merged this as it will potentially make CI a little smoother so it's good to have it in as soon as possible.


Erroneous black cross in Success and Error inputs

Using IE 11 - Success and Error fields show a black cross underneath the success/error images (see attached images)

Hi @tubeway1964 ! I will attach a file that will fix this bug for you and what you have to do is to replace in the project assets/material-kit/_inputs.scss the partial _inputs.scss with the new one. Please compile your scss with Koala and be sure that the output path is assets/css/material-kit.css. Hope that everything will work fine!
_inputs.scss.zip


docs(tekton): add readme file in core and pipelines package

Add Readme in core and pipelines package

removed yarn.lock


chore(ci): add github actions workflow

Thanks, I tested this vs. current CircleCI setup and the CircleCI version is still a bit faster.


More specific runtime guard function signatures

I wrote this up as an issue, but I figured I'd just go ahead and submit a patch.
I was unsure as to why check, and perhaps to a lesser extent guard have a type signature of check(x: any): A rather than check(x: A): A ? At the moment, it kinda seems the wrong way around. The any should be on the outside so that the typechecker can infer when we're trying to use the checks/guards wrong, before we get anywhere near runtime.
Let's look at check first: check even throws an error if x is not an A. That means there is no valid codepath out of check if x is not an A, therefore couldn't x: A on input? If my typechecker knows that check expects an A and it knows that my x is not an A (it could) then it could tell me that before I've even run my code. Trivial example: Number.check("abc") makes no sense and could be easily typechecked before we get to runtime, yet the type defs happily let that pass, even though we know upfront that this function will not return.
Onto guard which is similar, but guard returns a boolean. This one is more complicated because a false does not break execution like throwing an Error, suggesting it might be expected behaviour to pass in something that is not an A. However the name guard suggests an expectation that x should be an A, and again, if my typechecker knows that x is definitely not an A, then it would be nice to be told at typecheck time. Now, if you legitimately use a function called guard, knowingly passing in something that your typechecker already knows by type definition, is not an A, then you could save yourself an if statement there. One use case that springs to mind is if you have something like an x: Foo | Bar and you want to if (Foo.guard(x)) { ... } else if (Bar.guard(x)) { ...} then you could instead if (Foo.guard(x as Foo)) { ... } else if (Bar.guard(x as Bar)) { ...} which would be better than guard accepting any by type, and losing the ability to typechecker to defend users from situations it can infer are unintended e.g. String.guard(12).
In summary, shouldn't any be on the outside of the type definition, not in it?
Tests and typecheck both pass.

Coverage remained the same at 99.101% when pulling dfe870a42d21fa5cada37e82184f0f2aa0482928 on lukebarton:typed-fns into 69b8724302ebe780270ded2b7cb94e24f3259e70 on pelotom:master.

This means that this will fail at typecheck time:
const runType = Record({ foo: String, bar: Number });
const value: { qux: number } = { qux: 12};
runType.check(value);

However, as you'd expect, this will still pass at typecheck time:
const runType = Record({ foo: String, bar: Number });
const value: any = await someApiResponseThatNeedsRuntimeRefinement();
runType.check(value);

Hmm... I understand your point, but doing type assertions like Foo.check(x as Foo) in almost every check looks quite redundant to me. Furthermore, I know this is just a subjective opinion, but the most unpleasant thing is, it shall effectively prohibit passing just unknown values to check functions without as any. I'm sure it would be absolutely weird API...
@pelotom Can I hear your advice about this, if you spare some time?

Hm, I'm not sure I understand. The purpose of check is to take an object about which we potentially know nothing and validate that it has the specific static type associated with the runtype. So perhaps the right type is
check(x: unknown): A;

I can't remember if there was some specific reason I used any instead of unknown; perhaps it's just a legacy from the days before unknown existed.
Technically we should be able statically constrain the input to be a supertype of the runtype, but as far as I know there's no good way to express this. For instance if there was a super keyword that let you constrain a type to be a supertype of another known type, then this might be the best signature:
check<B super A>(x: B): A;

With conditional types we can sort of approximate this with
check<B>(x: B): A extends B ? A : never;

which states that we know statically that the call will not return successfully if the input type is not a supertype of the runtype in question.

That has to be the right direction I think too. Returning never type in invalid codepaths seems to be enough to notify it's statically invalid.


Unable to write list/array type data

I am trying to save a pandas dataframe to a table which contains columns of type list of strings (array). I am doing it using df.to_sql() using sqlalchemy engine. It doesn't seem to be working. I am getting the following error
(databricks.sql.exc.NotSupportedError) Could not infer parameter type from value: ['11th gen laptop', 'natural silver laptop', '1tb and 256gb laptop', '6n038pa#acj laptop', 'intel core i3 laptop', 'fhd display laptop', 'intel uhd laptop', '15s-dr3506tu laptop', '8gb ram laptop', 'hp laptop', 'windows 11 home laptop'] - <class 'list'>
When I use use_inline_params=True, I am getting the following error
(databricks.sql.exc.ServerOperationError) [UNBOUND_SQL_PARAMETER] Found the unbound parameter
Details:
databricks-sql-connector[sqlalchemy]==3.1.1
Python 3.8.10
Databricks Serverless SQL hive_metastore catalog

Hi @akhileshpachipulusu-inviz-DataScience! Can you please provide some more details to help us with debugging:

are you using an AWS or Azure instance?
are you using Warehouse or Compute cluster? Which DBR version it runs?
please provide a minimal code snippets for both cases (native and inline parameters) that reproduces you issue.

Thank you!

When I use use_inline_params=True, I am getting the following error
(databricks.sql.exc.ServerOperationError) [UNBOUND_SQL_PARAMETER] Found the unbound parameter

FYI this won't work since SQLAlchemy always uses server bound parameters. If you attempt this with connector version 2.9.3 it may work better for you, since that version of the SQLAlchemy dialect used inline parameters.


LS: Add code action completing missing trait members in impl

Closes #5944
Changes

If impl block is missing some members of an implemented trait, a quick fix filling those members appears
Known generic arguments are inserted in impls, unknown substituted with placeholders
Inserted code is not formatted

This change is

Moved to LS repo: https://github.com/software-mansion/cairols/pull/4


Allow users to customize the canary pod node affinity

Checklist

[ ] The PR has a meaningful title. It will be used to auto-generate the
changelog.
The PR has a meaningful description that sums up the change. It will be
linked in the changelog.
[ ] PR contains a single logical change (to build a better changelog).
[ ] Update the documentation.
[ ] Categorize the PR by adding one of the labels:
bug, enhancement, documentation, change, breaking, dependency
as they show up in the changelog.
[ ] Link this PR to related issues or PRs.

I was too fast 😅 Saw no golden changes and thought ✅


[ReferenceIntegrity] - get_class replaced by Common ClassUtils::getClass

This add support for proxies in ReferenceIntegrityListener

Hello, and thank you for your contribution.
In the interest of spring cleaning and package modernization, I'm going through and closing old issues and pull requests that have had no recent activity, do not have associated tests, or have failing tests.
If you are still experiencing this issue or wish to contribute an up-to-date pull request, please create a new issue.
Thank you!


remove go-mode-autoloads because it will be generated during installa…

Fixes https://github.com/melpa/melpa/issues/5019

The file exists because of historical reasons (the original go-mode that we replaced included the file, unfortunately.)
But at this point, the presence of the file is probably causing more harm than good.

This PR will not be enough to fix the bug though. I think we will need ;;;###autoload comments in go-mode.el too.

go-mode.el has plenty of autoload cookies, and to the best of my knowledge they cover all the functions that are worth autoloading. Did we miss any?
FTR, the existing go-mode-autoloads file is generated from the autoload cookies, it isn't hand-written.

FTR, the existing go-mode-autoloads file is generated from the autoload cookies, it isn't hand-written.

So you should be good to go. (Consider this a friendly ping.)

@tarsius there we go.

Thanks!


add MarketType to template creation

closes #3612

Well need to use sdk constants for market type. John can make the updates since he needs to use the sdk constants.


[BUG] Sequences + Segmentation Codec does not support buffers of ><PHONE_NUMBER> bytes

🐛🐛 Bug Report
⚗ Current Behavior
Using Sequences+Segmentation cause buffer error
Input Code
...
schema = {
    'image': Image(shape=(None, None, 3), dtype='uint8', max_shape=(max_width, max_width, 3)),
    'bbox': Sequence(dtype = BBox()),
    'segmentation' : Sequence(dtype=Segmentation(shape=(None, None, 1), dtype='uint8', max_shape=(max_width, max_width, 1), names=['dauca'])),
}
...

for i in range(len(imgIDS)):
    image_file = images_PATH + imgs[i]['file_name']
    image = cv.imread(image_file)
    Dataset['image',i] = image
    annotationIDS = coco.getAnnIds(imgIDS[i])
    annotations = coco.loadAnns(annotationIDS)
    masks = []
    bboxes = []
    for annotation in annotations:
        masks.append(coco.annToMask(annotation))
        bbox = annotation['bbox']
        x1 = bbox[0]
        y1 = bbox[1]
        x2 = bbox[0]+bbox[2]
        y2 = bbox[1]+bbox[3]
        bboxes.append([x1,y1,x2,y2])
    Dataset['segmentation',i] = masks
    Dataset['bbox',i] = bboxes

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-ffd0c54ff948> in <module>
     17         bboxes.append([x1,y1,x2,y2])
     18     print('number of masks : {}, image size : {}'.format(len(masks),image.shape))
---> 19     WeedBot_Dataset['segmentation',i] = masks
     20     WeedBot_Dataset['bbox',i] = bboxes
/opt/conda/lib/python3.7/site-packages/hub/api/dataset.py in __setitem__(self, slice_, value)
    352             self._tensors[subpath][:] = assign_value  # Add path check
    353         else:
--> 354             self._tensors[subpath][slice_list] = assign_value
    355
    356     def resize_shape(self, size: int) -> None:
/opt/conda/lib/python3.7/site-packages/hub/store/dynamic_tensor.py in __setitem__(self, slice_, value)
    218         slice_ = self._get_slice(slice_, real_shapes)
    219         value = self.check_value_shape(value, slice_)
--> 220         self._storage_tensor[slice_] = value
    221
    222     def check_value_shape(self, value, slice_):
/opt/conda/lib/python3.7/site-packages/zarr/core.py in __setitem__(self, selection, value)
   1119
   1120         fields, selection = pop_fields(selection)
-> 1121         self.set_basic_selection(selection, value, fields=fields)
   1122
   1123     def set_basic_selection(self, selection, value, fields=None):
/opt/conda/lib/python3.7/site-packages/zarr/core.py in set_basic_selection(self, selection, value, fields)
   1214             return self._set_basic_selection_zd(selection, value, fields=fields)
   1215         else:
-> 1216             return self._set_basic_selection_nd(selection, value, fields=fields)
   1217
   1218     def set_orthogonal_selection(self, selection, value, fields=None):
/opt/conda/lib/python3.7/site-packages/zarr/core.py in _set_basic_selection_nd(self, selection, value, fields)
   1505         indexer = BasicIndexer(selection, self)
   1506
-> 1507         self._set_selection(indexer, value, fields=fields)
   1508
   1509     def _set_selection(self, indexer, value, fields=None):
/opt/conda/lib/python3.7/site-packages/zarr/core.py in _set_selection(self, indexer, value, fields)
   1554
   1555             # put data
-> 1556             self._chunk_setitem(chunk_coords, chunk_selection, chunk_value, fields=fields)
   1557
   1558     def _process_chunk(self, out, cdata, chunk_selection, drop_axes,
/opt/conda/lib/python3.7/site-packages/zarr/core.py in _chunk_setitem(self, chunk_coords, chunk_selection, value, fields)
   1702         with lock:
   1703             self._chunk_setitem_nosync(chunk_coords, chunk_selection, value,
-> 1704                                        fields=fields)
   1705
   1706     def _chunk_setitem_nosync(self, chunk_coords, chunk_selection, value, fields=None):
/opt/conda/lib/python3.7/site-packages/zarr/core.py in _chunk_setitem_nosync(self, chunk_coords, chunk_selection, value, fields)
   1763
   1764         # encode chunk
-> 1765         cdata = self._encode_chunk(chunk)
   1766
   1767         # store
/opt/conda/lib/python3.7/site-packages/zarr/core.py in _encode_chunk(self, chunk)
   1817         # compress
   1818         if self._compressor:
-> 1819             cdata = self._compressor.encode(chunk)
   1820         else:
   1821             cdata = chunk
numcodecs/lz4.pyx in numcodecs.lz4.LZ4.encode()
/opt/conda/lib/python3.7/site-packages/numcodecs/compat.py in ensure_contiguous_ndarray(buf, max_buffer_size)
    100     if max_buffer_size is not None and arr.nbytes > max_buffer_size:
    101         msg = "Codec does not support buffers of > {} bytes".format(max_buffer_size)
--> 102         raise ValueError(msg)
    103
    104     return arr
ValueError: Codec does not support buffers of ><PHONE_NUMBER> bytes

but after image 13th image user gets this error: Codec does not support buffers of ><PHONE_NUMBER> bytes caused by 'segmentation'
Expected behavior/code
⚙ Environment
Environment should be added

Python version(s): python3.7
kaggle kernel on Kaggle notebook

🧰 Possible Solution  (optional)
I suggested switching Sequnces+Segmentation to Tensor with an additional dimension.
'segmentation' : Tensor(shape=(None, None, None, 1), dtype=‘uint8’, max_shape=(max_elements, max_width, max_width, 1))

didn't work, the same error, we tried manually setting the chunks to (1,3008,3008,1), didn't work then we tried to change the compressor
changing to ZSTD solved.

Hmm.. we somehow got a 2GB+ chunk. What were the maximum dimensions of the Segmentations? The current implementation of sequences is ideal only for small amounts of data.

I am afraid the issue here is inner implementation. I doubt we support lists for setitem.

@davidbuniat @AbhinavTuli
The code below worked for me.
import PIL
from pycocotools.coco import COCO
import numpy as np

import hub
from hub.schema import Image, BBox, Sequence, Segmentation
from hub import Dataset

max_width = 2000

schema = {
    "image": Image(
        shape=(None, None, 3),
        chunks=3,
        dtype="uint8",
        max_shape=(max_width, max_width, 3),
    ),
    "bbox": Sequence(dtype=BBox()),
    "segmentation": Sequence(
        dtype=Segmentation(
            shape=(None, None, 1),
            chunks=9,
            dtype="uint8",
            max_shape=(max_width, max_width, 1),
            names=["dauca"],
        )
    ),
}

annFile = "./data/anno2017/instances_val2017.json"
images_PATH = "./data/val2017/"
coco = COCO(annFile)
imgIDS = coco.getImgIds()
imgs = coco.loadImgs(imgIDS)

ds = Dataset("./data/coco", mode="w", shape=(len(imgIDS),), cache=False, schema=schema)

for i in range(len(imgs)):
    image_file = images_PATH + imgs[i]["file_name"]
    image = np.array(PIL.Image.open(image_file))
    if image is not None and image.shape[-1] == 3 and len(image.shape) == 3:
        ds["image", i] = image
    annotationIDS = coco.getAnnIds(imgIDS[i])
    annotations = coco.loadAnns(annotationIDS)
    masks = []
    bboxes = []
    for annotation in annotations:
        masks.append(coco.annToMask(annotation))
        bbox = annotation["bbox"]
        x1 = bbox[0]
        y1 = bbox[1]
        x2 = bbox[0] + bbox[2]
        y2 = bbox[1] + bbox[3]
        bboxes.append([x1, y1, x2, y2])
    if masks:
        ds["segmentation", i] = masks
    if bboxes:
        ds["bbox", i] = bboxes

Closing


changed the regex to enable equality operator between numbers, fixes …

…#5, closed #5

Great, @MichaelRSilva! Thanks.


IOS - App jumped after request the money from user

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Launch the app and log in with any account
Tap on any user
Tap on plus button
Select Request Money
Put amount and tap Continue

Expected Result:
App should continue the action without jumping after request the money from user
Actual Result:
App jumped after request the money from user
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/154304893-32a8da01-7664-4ea9-8ce6-8b2f45588c44.MP4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

@danieldoglas At the timeline 0.10 sec in the video attached, there's weird jerk after completing IOU and returning back to chat again.

@danieldoglas Huh... This is 4 days overdue. Who can take care of this?

@danieldoglas Still overdue 6 days?! Let's take care of this!

Triggered auto assignment to @Christinadobrzyn (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Ok, setting this as External since we won't need any changes on backend to fix it.

Ah very interesting catch! Created Upwork job post
Internal job posting - https://www.upwork.com/ab/applicants/1496647407337132032/job-details
External job posting - https://www.upwork.com/jobs/~0192323f35298e036a

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (Exported)

Triggered auto assignment to @pecanoro (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Not overdue, waiting for someone to propose a solution.

Price doubled to $500 - still waiting on proposals

Proposal
The jumping might be caused by the layout shifts while hiding keyboard when going back to Chat Screen.
As we always go back to the chat screen after pressing the button regardless of success or failure of the action performed. We can immediately hide the keyboard on button press using Keyboard.dismiss() so that the keyboard will already be hidden when we go back.

Proposal
The jumping might be caused by the layout shifts while hiding keyboard opened for What's it for?  input, when going back to Chat Screen.
As we always go back to the chat screen after pressing the button regardless of success or failure of the action performed. We can immediately hide the keyboard on button press using Keyboard.dismiss() so that the keyboard will already be hidden when we go back.

Proposal
We can check if the virtual keyboard is opening then we add dismiss for it incomponentWillUnmount
File locate need to add: https://github.com/Expensify/App/blob/main/src/components/IOUConfirmationList.js
componentWillUnmount() {
        if(VirtualKeyboard.isOpen()) {
            Keyboard.dismiss();
        }
    }

If Regaron's proposal is legal to do please go ahead with him.  I saw he is still in progress with his first PR.

@pecanoro @rushatgabhane Could you guys take a look into the proposal?

Hmm, I can't repro this bug.
https://user-images.githubusercontent.com/29673073/158651502-ef3f9815-19d3-47df-b2cb-8d4d2b61fc58.mov

@rushatgabhane it seems happening in real device, with older phone it could jump lower than my video here.
https://user-images.githubusercontent.com/5449119/158930422-36d9dfa0-e764-4c8c-a311-5255a01fc9ea.MOV

I saw it more noticeable on send money action than request money.

Hmm, both flows are essentially identical.
@Regaron @phivh could you please help us understand. How does it look like before and after your suggested fix?

Might be a bit late but here is what I've seen:
###App Jumping:
https://user-images.githubusercontent.com/18470532/161366152-fd77786f-56d0-4925-875f-55c026415ca5.mov
###Proposal:
https://user-images.githubusercontent.com/18470532/161366162-368503f0-8d74-4ed7-84df-b0b6b6993f1c.mov


USB host pass through

What this PR does / why we need it:
This PR allows USB devices that are plugged to the cluster's Nodes to be allocated to VMs running in said Nodes.
Staring with main components and a simple use case
A new CRD called NodeConfig is introduce to allow requiring USB devices.
apiVersion: usb.kubevirt.io/v1alpha1
kind: NodeConfig
metadata:
  name: test
  namespace: default
spec:
  usb:
    resourceName: kubevirt.io/storage
    usbHostDevices:
      - selectByVendorProduct: 46f4:0001

An admin can bind one or more USB devices to the resourceName. The user can request those USB devices by requesting the resourceName in the VMI spec:
spec:
  domain:
    devices:
      hostDevices:
      - deviceName: kubevirt.io/storage
        name: my-storage-usb-devices

The device is allocated when VMI is started.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #9382
Special notes for your reviewer:
This PR is functional and can be locally tested with emulated USB devices thanks to https://github.com/kubevirt/kubevirtci/pull/996
(toso) $ export KUBEVIRT_PROVIDER=k8s-1.26-centos9
(toso) $ export KUBEVIRT_TAG=latest
(toso) $ export KUBEVIRT_PROVIDER_EXTRA_ARGS="--usb 20M --usb 30M --usb 40M"
(toso) $ make cluster-up
...
(toso) $ ./cluster-up/ssh.sh node01
(node01) $ dmesg | grep -i idVendor=46f4
[    1.204437] usb 4-1: New USB device found, idVendor=46f4, idProduct=0001, bcdDevice= 0.00
[    1.204501] usb 3-1: New USB device found, idVendor=46f4, idProduct=0001, bcdDevice= 0.00
[    1.330900] usb 4-2: New USB device found, idVendor=46f4, idProduct=0001, bcdDevice= 0.00

Note that you have to enable the HostDevices featureGates.
Release note:

Introduces NodeConfig CRD
Implements USB host pass through

PS: Tests failure are related to CI image needing an update to include a few emulated USB devices for the functional test. See https://github.com/kubevirt/kubevirtci/pull/996

/cc

/cc

PS: Tests failure are related to CI image needing an update to include a few emulated USB devices for the functional test. See kubevirt/kubevirtci#996

@victortoso @xpivarc  do we have already an idea of which lanes the functional tests will run? I think we need a PR in project-infra to enable the emulated devices, am I correct?

@victortoso there is still some work, but it starts having a shape :). I left some comments  and I have a couple of questions:

Do you also consider the case when the device plugin has already been started and you plug a newly allowed device?
Does the feature gate HostDevices also control the installation of the NodeConfig CRD or is it always installed and we enable the host-devices in the VMI API?

I am asking about 2) because, if the device plugin is always deployed and eventually shows the resources on the node

@victortoso I think it will be interesting to understand how cluster-admins would like to identify the allowed USB devices on the node? Maybe you could ask for feedback on the mailing list

Hi Alice! Thanks for the quick review :)

@victortoso @xpivarc do we have already an idea of which lanes the functional tests will run? I think we need a PR in project-infra to enable the emulated devices, am I correct?

I don't know, I haven't touched KubeVirt's ci yet. I can work on it but I need some reference to what should I be doing.

Do you also consider the case when the device plugin has already been started and you plug a newly allowed device?

At the moment, the device checking in the Node happens when we receive a NodeConfig. If the device is already running, it'll not be updated automatically. It shouldn't be hard to fix this, it can be combined with the device health (e.g: unplugged -> Unhealthy) which is not implemented as well.

Does the feature gate HostDevices also control the installation of the NodeConfig CRD or is it always installed and we enable the host-devices in the VMI API?

The NodeConfig is not attached to HostDevices feature gate, only the USB pass through is. So, we can create NodeConfig with HostDevice featureGate disabled but we can only usb pass through if HostDevices feature gate is enabled.

I am asking about 2) because, if the device plugin is always deployed and eventually shows the resources on the node

Yes, the USB device plugin always runs and the resources should appear.

@victortoso I think it will be interesting to understand how cluster-admins would like to identify the allowed USB devices on the node? Maybe you could ask for feedback on the mailing list

I agree 100%. I'll write an email Today.

Thank you @victortoso! Looks great!
I fully agree agree with @alicefr's comments about the CRD name [1] and setting and ground to use DRA [2].
To fully address these comments I think we need to take a step back and think, in general, how we want to handle host passthrough. What I would like to see as an outcome of the effort is setting the ground for passthough flows that would serve not only USB devices. I think that would be a huge step forward.
As @alicefr suggested, I think that DRA might perfectly fit our needs here. If we do think it does, then we can either rely on it and declare USB passthrough as alpha as well, or we can just set the ground for it and use it when it's grauduated.
Regarding the name, if we're going to follow DRA's approach, then we can consider calling it UsbPassthroughParameters or something similar. This way, in the future, we can introduce OtherDevicePassthroughParameters for any OtherDevice we wish to passthrough in the same way.
Do you think we should rely on DRA even though it's alpha and define this API as alpha as well?
Do you think we should set the ground for DRA but in the meantime write our own logic? If so, how can we scale it when we'd need to support host passthrough for more devices?
Do you agree we should rely on DRA at all? Are there any better alternatives?
Thanks for the discussion and great work!

Hi @iholder101, thanks for the review!

Do you think we should rely on DRA even though it's alpha and define this API as alpha as well?

No. I agree that DRA would be a better API for this but because it is in alpha and might take some time to get into stable, I'd rather do a simpler approach Today and move it to DRA when it hits stable. I mean, I know users using virtctl usbredir as a workaround for the lack of USB host pass through and this would be a step up from that.

Do you think we should set the ground for DRA but in the meantime write our own logic? If so, how can we scale it when we'd need to support host passthrough for more devices?

If no one started an experiment in moving to DRA, I think that would be helpful to understand it. At the moment, I don't know how to create e.g: USBDevicesConfig CRD in a way that it could be a reusable by DRA. Also, because it is in alpha, I wonder if it can't change.

Do you agree we should rely on DRA at all? Are there any better alternatives?

Yes. At the very least, the ResourceClaim should solve several concerns wrt device allocation, not just for USBs. I'm not aware of alternatives. My suggestion is to do some basic support Today and evolve in the future.
JFYI, in the meanwhile, I'm addressing @alicefr comments and waiting to get support for functional tests in CI https://github.com/kubevirt/project-infra/pull/2872

@victortoso I think it will be interesting to understand how cluster-admins would like to identify the allowed USB devices on the node? Maybe you could ask for feedback on the mailing list

+1

Thank you @victortoso! Looks great!
I fully agree agree with @alicefr's comments about the CRD name [1] and setting and ground to use DRA [2].
To fully address these comments I think we need to take a step back and think, in general, how we want to handle host passthrough. What I would like to see as an outcome of the effort is setting the ground for passthough flows that would serve not only USB devices. I think that would be a huge step forward.
As @alicefr suggested, I think that DRA might perfectly fit our needs here. If we do think it does, then we can either rely on it and declare USB passthrough as alpha as well, or we can just set the ground for it and use it when it's grauduated.
Regarding the name, if we're going to follow DRA's approach, then we can consider calling it UsbPassthroughParameters or something similar. This way, in the future, we can introduce OtherDevicePassthroughParameters for any OtherDevice we wish to passthrough in the same way.
Do you think we should rely on DRA even though it's alpha and define this API as alpha as well? Do you think we should set the ground for DRA but in the meantime write our own logic? If so, how can we scale it when we'd need to support host passthrough for more devices? Do you agree we should rely on DRA at all? Are there any better alternatives?
Thanks for the discussion and great work!

DRA is quite new. I agree in a sense that we should do some POCs, especially if we can address use cases that are hard if not even impossible to implement with a plain device plugin. For example, reservation of a device would be interesting.
That being said in Kubevirt we don't rely on alpha features as they have no guarantee of compatible changes or surviving the next release.
The PR does target a reasonable use case IMHO and brings a relatively small API to do so. Improvements to the API, more general solutions to pass-through or  DRA support should not be required for this PR to merge.

/cc @vladikr

DRA is quite new. I agree in a sense that we should do some POCs, especially if we can address use cases that are hard if not even impossible to implement with a plain device plugin. For example, reservation of a device would be interesting. That being said in Kubevirt we don't rely on alpha features as they have no guarantee of compatible changes or surviving the next release.
The PR does target a reasonable use case IMHO and brings a relatively small API to do so. Improvements to the API, more general solutions to pass-through or DRA support should not be required for this PR to merge.

One note on my side, I haven't put DRA as a requirement for this PR. I think the CRD for USB devices can be designed in 2 directions as a central place or multiple instances.
In the case of multiple instances, I wanted to highlight that this can be designed as a CRD that eventually could be used as a parameter for the resource class with DRA.
However, I agree with @xpivarc DRA is too new and I think a PoC for DRA can be done as a follow-up.

/cc @vladikr

I'm sorry that I am so very late to review this.
My main concern is the way how USD devices are configured now in the CR. That there is a CR per resource instead of a list of resources mapped to devices.
I've commented in line.
Also, I find the name of the CR a little misleading and inconsistent with the version name.
apiVersion: usb.kubevirt.io/v1alpha1
kind: NodeConfig

Do we anticipate configuring anything else on the node with this CR in the future?
If not, perhaps we can call kind something like NodeUSBAttachmentConfiguration or anything that explicitly states that we are exposing the USB devices and not something else on the node.
Other than that, it's a geat PR! Thanks @victortoso !

Hi, several updates in this iteration and I'll update the top commit with the changes shortly.
First of all, notice that this is rebased but also on top of https://github.com/kubevirt/kubevirt/pull/10050 (depends on) for updating rpms properly. This should go away soon.
I tried to be careful in not missing suggestions but it was a big change overall, I can point out the following changes:

Removed the NodeConfig CRD. We are not using KubeVirt CR comment
Added USB lavel and moved functional test to sig-compute, should work with emulated usb devices now
We now check that VM has USB HostDevice configured prior to add -usb to QEMU - Lubo
Named explicity the Selectors struct type and created a field for each member "vendor" and "product" instead of single "vendor:product" string - Lubo
Functional tests are restoring old configs including feature gates - Alice
Added qemu-kvm-device-usb-host-${QEMU_VERSION} also for aarch64 - Alice
Code style, using switch instead of long if-else - Alice
Using strings.Split() when possible - Alice

Just a quick recap of test failures:
1.25, 1.26 and 1.27 have the same failures as https://github.com/kubevirt/kubevirt/pull/10050 due libvirt!500
1.25 fails also with functional test due lack of emulated usb device there (see https://github.com/kubevirt/project-infra/pull/2872). Not sure if best to add it or skip 1.25.

PR needs rebase.

I plan to rebase after https://github.com/kubevirt/kubevirt/pull/10050 gets solved

Just to clarify, the reason we depend on https://github.com/kubevirt/kubevirt/pull/10050 is because we are introducing a new RPM in this PR, the qemu-kvm-device-usb-host. The current version in centos stream 9 is 8.0.0 while current QEMU in KubeVirt is 7.2.0. We should not mismatch QEMU and its usb-host driver.

Rebased
I went over every commit to run make generate and make to be sure the PR was building on every commit.

/test pull-kubevirt-unit-test

Do we still rely on virt stack bump?

Yes! We need a new rpm, qemu-kvm-device-usb-host and adding it without virt stack bump would mean adding the usb-host driver of higher version of qemu itself. We probably don't want to do that.
@alicefr and @xpivarc thanks for the reviews, I'll address them and update this PR when the virt stack bump is done. Overall, it seems we are arriving to minor details and the overall design seems fine.

@victortoso how's this going?

@victortoso how's this going?

Hi @stu-gott , I'll submit a new iteration soon after we resolve the bump of libvirt/qemu with https://github.com/kubevirt/kubevirt/pull/10050. I expect it to happen this week. The reason is explained in this comment.
I'm also looking forward to see this code merged :)

Highlight of changes from the last version:

Rebased
use describe table (Alice)
changed converter changes to use address pool and code logic for pci/mdev (Lubo)
merged the generated commits into a single one (Lubo)
fixed too verbose, verbosity 2 -> 5 (Lubo)
use libvmi (instead of tests) (Lubo)
nit: function var ending with Func instead of Var (Lubo)
nit: use consts where possible (Lubo)
nit: use filepath.Join() (Lubo)

/retest-required

/retest-required

/retest-required
20:55:57:   [FAIL] [sig-storage] Storage Starting a VirtualMachineInstance [Serial]with lun disk [It] should run the VMI created with a DataVolume source and use the LUN disk [sig-storage]
20:55:57:   tests/storage/storage.go:1309

and
20:05:59:   [FAIL] [rfe_id:393][crit:high][vendor:cnv-qe@redhat.com][level:system][sig-compute] VM Live Migration [Serial] with a dedicated migration network [It] Should migrate over that network [sig-compute-migrations, sig-compute]
20:05:59:   tests/migration/migration.go:3514
20:05:59:

@alicefr, @vladikr, @xpivarc changes were made and CI seems happy. When you have the time, could you please take another look?
Lubo, I only now replied to some of your questions. I left the conversation unresolved for now. Sorry for the delay.
PS: I've started working on changes for the user-guide, I'll reference it here later Today when I submit it

@victortoso about 98ecb13681746145f103f64ca0d30b6202af16cb, why do we need to declare the entire resource unhealthy if a single device is unhealthy? Cannot we just reduce the number of available resource?

@victortoso great work! A part from the question above a some details, it looks good!

@victortoso about 98ecb13, why do we need to declare the entire resource unhealthy if a single device is unhealthy? Cannot we just reduce the number of available resources?

I think your suggestion is better, I'll change the code.

/approve
/hold
For it looks good, put on hold to let other review it

/retest-required
14:31:50: Summarizing 2 Failures:
14:31:50:   [FAIL] [sig-compute]VMI with external kernel boot with external alpine-based kernel only (without initrd) [It] ensure successful boot [sig-compute]
14:31:50:   tests/watcher/watcher.go:195
14:31:50:   [FAIL] [rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-compute]Config With a DownwardAPI defined [It] [test_id:790]Should be the namespace and token the same for a pod and vmi [sig-compute]
14:31:50:   tests/watcher/watcher.go:195
14:31:50:
14:31:50: Ran 546 of 1531 Specs in 5143.645 seconds
14:31:50: FAIL! -- 544 Passed | 2 Failed | 2 Pending | 983 Skipped

/retest-required
* pull-kubevirt-e2e-k8s-1.26-sig-storage

15:17:20:   [FAIL] [sig-storage] Storage Starting a VirtualMachineInstance [Serial]with lun disk [It] should run the VMI created with a DataVolume source and use the LUN disk [sig-storage]
15:17:20:   tests/storage/storage.go:1309
15:17:20:
15:17:20: Ran 51 of 1531 Specs in 2582.757 seconds
15:17:20: FAIL! -- 50 Passed | 1 Failed | 2 Pending | 1478 Skipped
15:17:20: --- FAIL: TestTests (2583.03s)
15:17:20: FAIL

* pull-kubevirt-e2e-k8s-1.27-sig-compute

16:51:06:   [FAIL] [sig-compute]VMI with external kernel boot with external alpine-based kernel only (without initrd) [It] ensure successful boot [sig-compute]
16:51:06:   tests/watcher/watcher.go:195
16:51:06:
16:51:06: Ran 546 of 1531 Specs in 5168.456 seconds
16:51:06: FAIL! -- 545 Passed | 1 Failed | 2 Pending | 983 Skipped

/retest-required

/retest-required
I think the test will now succeed thanks to https://github.com/kubevirt/kubevirt/pull/10451 !

@victortoso Thanks! It looks good to me.
/lgtm
I'll let @xpivarc to remove the hold. I know he wanted to have another look.

/hold cancel


use a heuristic to determine whether or not to use asynchronous publishing

See: https://github.com/ros2/rmw_connext/pull/183#issue-162256750
The proposal from the linked pull request would be, use synchronous publishing:

if the reliability is BEST_EFFORT (type bounded or unbounded)
if the reliability is RELIABLE and the type is bounded and the maximum size is less than MAX_SYNC_PAYLOAD

Where MAX_SYNC_PAYLOAD is some maximum size that can be used without asynchronous publishing.
Use asynchronous publishing:

if the reliability is RELIABLE and the type is bounded and the maximum size is more than MAX_SYNC_PAYLOAD
if the reliability is RELIABLE and the type is unbounded (has no maximum size)

Something else to consider is whether or not messages with unbounded size can always be published with synchronous publishing, even with reliability as BEST_EFFORT.

Closing, since with Foxy now being End-of-Life, this repository is no longer used.


New assist to add/edit hide at import for ambiguous import

This PR adds a new assist to add/update hide to imports when ambiguous_import is triggered.

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.

Note that this repository uses Gerrit for code reviews. Your pull request will be automatically converted into a Gerrit CL and a link to the CL written into this PR. The review will happen on Gerrit but you can also push additional commits to this PR to update the code review.

Requested @bwilkerson to review on Gerrit, as he wrote the options list to fix ambiguous_import.


Make logger work with progress bar

Fixes #69 and replaces #70.
Basically this just removes and restores the progress bar whenever something gets logged.
cc @evocateur

Looks good, thanks!


Python Basics I Kahoot

https://create.kahoot.it/share/khoot-ds-04-python-i/a88b362e-ef9f-4968-92a0-052d86ff1241


IETF standard for I-JSON compliant extended numeric data types

A limited research effort validated my suspicions that platform architects have created (or are in the process of creating), their own proprietary solutions for supporting data types which doesn't naturally fit into the number universe limited by IEEE-754 double precision.
As an example the .NET DataContractJsonSerializer serializes BigInteger as "myBigInteger":{"_bits":[1156841472,1164153218],"_sign":1} which is entirely incompatible with the same solution for Java.
Related:
https://github.com/OAI/OpenAPI-Specification/issues/845
https://github.com/javaee/jsonb-spec/issues/80#issuecomment-383465639
https://github.com/dotnet/corefx/issues/29271
https://github.com/json-iterator/go/issues/267
Is there anybody out there who might be interested in co-authoring an Internet-Draft addressing this topic?

@cyberphone I'm not aware of anyone in the .net space who would voluntarily use the DataContractJsonSerializer.  The performance is way below any of the other tools available.  It isn't the default serializer used by recent Microsoft tooling and as far as I know there is no more work going into it.  I wouldn't recommend basing any decisions on the behaviour of that library.

Thanx @darrelmiller Json.NET seems to do a more reasonable job:
using System;
using System.Numerics;

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

namespace newtonsoft
{
    public class MyObject
    {
        public string id;

        public long counter;

         public BigInteger biggie;
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyObject myObject = new MyObject
            {
                counter = 3,
                id = "johndoe",
                biggie =<PHONE_NUMBER>6556566L,
            };
            Console.OutputEncoding = System.Text.Encoding.Unicode;
            Console.WriteLine(JsonConvert.SerializeObject(myObject));
        }
    }
}

Output:
{"id":"johndoe","counter":3,"biggie":65655565656556566}

However, it is not I-JSON compatible which this particular issue is about.  I'm just looking for a suitable "home" for such definitions.

JSON.NET has an extensibility mechanism to change how types are serialized, so if you wanted to follow the I-JSON recommendation for serializing big integers you could do that.  Personally, I try to avoid automatic type serializers, so it's not a problem I've run into before.
Petitioning the various JSON parsing libraries to implement a "I-JSON" mode seems like most promising approach to reach your goal.  Although, I suspect it is going to be an uphill battle.  I don't often hear people talking about I-JSON.

I don't often hear people talking about I-JSON.

As far as I remember whenever I mentioned that specification it was considered and adopted.

I don't often hear people talking about I-JSON.

Agreed. There are though important standards out there (like JOSE) that without mentioning it effectively are based on/compliant with I-JSON beacuse they target browsers and Node.js as well.
There's not an awful lot of JSON-based software that uses a "money" type.  However, the only public schemes I'm aware of indeed use an I-JSON compliant serialization.
It is possible that only Oracle/Java will support a true I-JSON option since (as you say), annotations can do the same job.  How OpenAPI eventually will deal with the list of proposed new data types should also have an impact on the success or failure of this quest 😂

It turned out that the Oracle/Java JSON API actually is I-JSON compatible by default through a method which I have coined Adaptive Notation:
{
  "BigDecimal.large": "1E+999",
  "BigDecimal.small": 1,
  "BigInteger.large": "240777489003222785532321",
  "BigInteger.small": 1,
  "Long.large":<PHONE_NUMBER>854775807,
  "Long.small": 1
}

@darrelmiller How would this fit into OpenAPI?   I mean, could this evolve into a JSON standard?
Personally I prefer schemes where you either use JSON Number or JSON String, rather than mixing these depending on the actual value.  However, the most important is finding a common solution.
https://github.com/cyberphone/I-JSON-Number-System#extended-numeric-data-types-compliant-with-i-json

This topic has now reached an unprecedented level of weirdness:
https://github.com/tc39/proposal-bigint/issues/24#issuecomment-404874878

I don't see any specific action for us to take here (it's not a repo for discussing new IETF I-D ideas, nor is it a repo for .NET implementations of JSON), and the OP has stated that he's moved on to CBOR in a separate issue, so I'm closing this.


VA Profile Sync - Update Lambda with the Comp & Pen Id Filter#684

#684
Updated lambda function with Comp & Pen ID filter to check if communicationChannelID is equal to 5 or not.
Wrote a unit test as a current placeholder because we have to test the PUT request first in another ticket #704, of which the format will change.

Dave has a test to verify db writing scenarios so it would be repetitive to have it here. Wrote a unit test as a current placeholder because we have to test the PUT request first in another ticket https://github.com/department-of-veterans-affairs/notification-api/issues/704, of which the format will change.


No code completion for new addin references

Newly added addin references do not show up in code completion.

This is no longer an issue with MD 7.0.


Cross-platform clean shutdown mechanism

Cross-platform clean shutdown support with --shutdown-ipc FD flag
Fixes #726
On Windows there is no standard reliable mechanism to politely ask a process to stop. There is only the brutal TerminateProcess. Using that by default is not great since it means the node always has to revalidate its chain DB on startup.
This adds an ad-hoc mechainsim that Daedalus can use to reliably shut down the node process. The --shutdown-ipc flag takes the FD of the read end of an inherited pipe. If provided, the node will monitor that pipe when when the write end of the pipe is closed then the node will initiate a clean shutdown. So Daedalus can explicitly terminate the node by closing the write end of the pipe. If Daedalus terminates uncleanly then the pipe will also be closed and the node will also shut down.
Although this mechanism is needed for Windows, it is also cross-platform so it can be used by Daedalus across all platforms.

I've ran some tests on the cardano-node executable and this looks good. Non-brutal shutdowns are leaving the clean file in state as expected, brutal shutdowns by killing the PID are not, and there were no deadlocks or issues re-starting the node.

bors merge


ace: 6.3.3 -> 6.4.2

Motivation for this change
Updated
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Merged in 3d9d879bc0d54bf22988b16f40b3c04c04753bc8. Thank you.


NBCR-2024-001: Create a new paper to define the Unique Asset ID (UAI)

As discussed this week during our sync meeting, I have separated the definition of the UR types from the URI format that we have named Unique Asset ID (UAI) based on a suggestion of @Maher4Ever.
I have also applied most of the suggestion of @Maher4Ever in this new definition of the UAI format, in order to have a starting point.
@irfan798 Feel free to propose changes as well.

@irfan798 I have added the range of index for the derivation path as we discussed during our sync meeting.


Adding score XML string in demo does not show cursor

For a quick test, I am replacing https://github.com/jimutt/osmd-audio-player/blob/master/demos/umd-web/app.js#L5-L7 with something like:
const scoreXml = `
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.1 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
 <score-partwise version="3.1">
   <movement-title>Chord Symbol Example</movement-title>
   <identification>
   [...]
`.trim();

which puts the XML straight into the demo source. The XML file is here.
The sheet gets displayed properly, and I can play it, but the green cursor does not show or advance. What am I missing? Thanks!

Maybe there are a couple instructions left undone in the UMD. I had to add
audioPlayer.cursor.show();
to my code to get the cursor to show but it still doesn't advance.

Thanks! It's just weird that it works correctly on the example, downloaded file. I'll dig more when I get the chance.

@jimutt I am in Xcode and I get the following errors when I run with the audio player. Maybe this has something to do with the cursor display problem? It plays the audio fine.

@infojunkie Thanks, I'll look into it too. I've been having occasional issues a bit now and then with the cursor visibility though and I think it's closer to OSMD than it is to the audio player. I'll see if I figure it out anyhow.

@matty90278  My Xcode and native iOS development skills are unfortunately very close to zero. But in the error message you showed I see nothing that seems related to the actual audioplayer. I'm able to find some similar error reports for other software and libraries though. It seems more platform related (iOS, Webkit, webview):
https://bugs.webkit.org/show_bug.cgi?id=204261
https://github.com/Scirra/Construct-3-bugs/issues/3477

@matty90278 your app doesn't have the necessary entitlements (authorizations to use certain features of the phone set), namely MediaPlayback.
https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html
(This Apple documentation is, as usual, not very helpful. You probably need to modify your Entitlements.plist)

Hi there,
We've also noticed there are issues with cursor following the played note when playing .xml file, but didn't encounter that issue while playing .mxl filled, maybe that helps


Title: Adding web development project

Is your feature request related to a problem? Please describe.
I want to add a GIF search app.
Describe the solution you'd like.
I will create it using html, css and javascript . Please assign this to me under GSSOC'24.
Describe alternatives you've considered.
No
Add any other context or screenshots about the feature request here.
No response

In which category I should add this , basic or intermediate ?


⚠ Turnos 24x7 has degraded performance

In 54cdf54, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 3344 ms

Resolved: Turnos 24x7 performance has improved in 2cf8bc3.


migrations

Coverage remained the same at 99.167% when pulling 86167a8ecedf05063bd62c99ace6750b84b25265 on bugfix/tweak-migration-build into a5440e820fc7a6c8da2820d7c0497839fc107102 on master.


[ENH] Fix sort by appearance bug when dropna=True

PR Description
Please describe the changes proposed in the pull request:

Fix sort by appearance bug when dropna=True
Simplify sort by appearance logic
move names_transform logic to single location

from pandas import NA
treatments = dict(
  id = range(1,6),
  A = ("A", NA, "A", NA, NA),
  A_date = (1, NA, 2, NA, NA),
  B = (NA, "B", "B", NA, NA),
  B_date = (NA, 3, 2, NA, NA),
  other = (NA, NA, NA, "C", "D"),
  other_date = (NA, NA, NA, 1, 5)
)
treatments = pd.DataFrame(treatments)
treatments
   id     A A_date     B B_date other other_date
0   1     A      1  <NA>   <NA>  <NA>       <NA>
1   2  <NA>   <NA>     B      3  <NA>       <NA>
2   3     A      2     B      2  <NA>       <NA>
3   4  <NA>   <NA>  <NA>   <NA>     C          1
4   5  <NA>   <NA>  <NA>   <NA>     D          5
# dev

treatments.pivot_longer(
    index = 'id',
    names_to = ['date', 'treatment'],
    names_pattern = ['.+date$', '.+'],
    dropna = True,
    sort_by_appearance = True,
)

File ~/miniforge3/envs/playground/lib/python3.9/site-packages/numpy/core/fromnumeric.py:57, in _wrapfunc(obj, method, *args, **kwds)
     54     return _wrapit(obj, method, *args, **kwds)
     56 try:
---> 57     return bound(*args, **kwds)
     58 except TypeError:
     59     # A TypeError occurs if the object does have such a method in its
     60     # class, but its signature is not identical to that of NumPy's. This
   (...)
     64     # Call _wrapit from within the except clause to ensure a potential
     65     # exception has a traceback chain.
     66     return _wrapit(obj, method, *args, **kwds)

ValueError: cannot reshape array of size 6 into shape (5)

# PR
treatments.pivot_longer(
    index = 'id',
    names_to = ['date', 'treatment'],
    names_pattern = ['.+date$', '.+'],
    dropna = True,
    sort_by_appearance = True,
)

   id treatment date
0   1         A    1
1   2         B    3
2   3         A    2
3   3         B    2
4   4         C    1
5   5         D    5

This PR resolves #1168 .

PR Checklist

Please ensure that you have done the following:

[ ] PR in from a fork off your branch. Do not PR from <your_username>:dev, but rather from <your_username>:<feature-branch_name>.

[ ] If you're not on the contributors list, add yourself to AUTHORS.md.

[ ] Add a line to CHANGELOG.md under the latest version header (i.e. the one that is "on deck") describing the contribution.

Do use some discretion here; if there are multiple PRs that are related, keep them in a single line.

Automatic checks
There will be automatic checks run on the PR. These include:

Building a preview of the docs on Netlify
Automatically linting the code
Making sure the code is documented
Making sure that all tests are passed
Making sure that code coverage doesn't go down.

Relevant Reviewers

Please tag maintainers to review.

@ericmjl

🚀 Deployed on https://deploy-preview-1169--pyjanitor.netlify.app

My bad, obvious miss from me. Will add tests


Simulate an HTTP 304 response

Version
0.14.27
Platform
Linux hostname 6.5.3-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Wed, 13 Sep 2023 08:37:16 +0000 x86_64 GNU/Linux
Description
When a header is included like If-Modified-Since: Tue, 03 Oct 2023 00:39:17 GMT while the modification date is older than the request date some servers still respond with a status code 200.
Example with curl:
$ curl -v -w "%{http_code}" -z "Tue, 03 Oct 2023 00:39:17 GMT" https://bulk.openweathermap.org/sample/current.city.list.min.json.gz
*   Trying <IP_ADDRESS>:443...
* Connected to bulk.openweathermap.org (<IP_ADDRESS>) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN: server accepted http/1.1
* Server certificate:
*  subject: CN=*.openweathermap.org
*  start date: Jun 30 00:00:00 2023 GMT
*  expire date: Jul 30 23:59:59 2024 GMT
*  subjectAltName: host "bulk.openweathermap.org" matched cert's "*.openweathermap.org"
*  issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
*  SSL certificate verify ok.
* using HTTP/1.1
> GET /sample/current.city.list.min.json.gz HTTP/1.1
> Host: bulk.openweathermap.org
> User-Agent: curl/8.3.0
> Accept: */*
> If-Modified-Since: Tue, 03 Oct 2023 00:39:17 GMT
>
< HTTP/1.1 200 OK
< Server: openresty
< Date: Tue, 03 Oct 2023 04:18:33 GMT
< Content-Type: text/plain
< Content-Length: 1555072
< Last-Modified: Mon, 17 Apr 2017 16:39:38 GMT
< Connection: keep-alive
< ETag: "58f4efca-17ba80"
< Expires: Tue, 03 Oct 2023 04:19:33 GMT
< Cache-Control: max-age=60
< Accept-Ranges: bytes
<
* The requested document is not new enough
* Simulate an HTTP 304 response
* Closing connection
* TLSv1.2 (OUT), TLS alert, close notify (256):
304

Should hyper have the same behavior of simulation the 304?
BTW, this is the login from curl:
  if(data->set.timecondition && !data->state.range) {
    /* A time condition has been set AND no ranges have been requested. This
       seems to be what chapter 13.3.4 of RFC 2616 defines to be the correct
       action for an HTTP/1.1 client */

    if(!Curl_meets_timecondition(data, k->timeofdoc)) {
      *done = TRUE;
      /* We're simulating an HTTP 304 from server so we return
         what should have been returned from the server */
      data->info.httpcode = 304;
      infof(data, "Simulate an HTTP 304 response");
      /* we abort the transfer before it is completed == we ruin the
         reuse ability. Close the connection */
      streamclose(conn, "Simulated 304 handling");
      return CURLE_OK;
    }
  } /* we have a time condition */

hyper does less things than curl. I don't think hyper should handle this itself. It's something for a higher level client that provides files and caching support, in my opinion.

Would reqwest be a better place for this to be added or should it be done using reqwest-middleware?

If reqwest had fuller support for files and caching and stuff, then it'd make sense. It doesn't have that, though. I can't speak to reqwest-middleware.

Thanks @seanmonstar!


slice function output error result

Bug description
sql like :  select slice(array_column, start_position, length) from table where column_i = 'x'
slice use error output position,i don't know the function  need apply selection vector, i think needn't, but the function apply it, i fix it to produce right result , more detail can see my commit
https://github.com/facebookincubator/velox/pull/5481
System information
Velox System Info v0.0.2
Commit: fb417821433ba61bdaa7eb1452a177032d7011a0
CMake Version: 3.26.4
System: Darwin-22.5.0
Arch: arm64
C++ Compiler: /opt/homebrew/opt/llvm@14/bin/clang++
C++ Compiler Version: 14.0.6
C Compiler: /opt/homebrew/opt/llvm@14/bin/clang
C Compiler Version: 14.0.6
CMake Prefix Path: /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr;/opt/homebrew;/usr/local;/usr;/;/opt/homebrew/Cellar/cmake/3.26.4;/usr/local;/usr/X11R6;/usr/pkg;/opt;/sw;/opt/local
Result copied to clipboard!
Relevant logs
No response

Hi @hn5092, Do you mind updating the title to English and describe what you came across in the Bug Description section? This would allow more people to help you.

Hi @hn5092, Do you mind updating the title to English and describe what you came across in the Bug Description section? This would allow more people to help you.

Hi @hn5092, Do you mind updating the title to English and describe what you came across in the Bug Description section? This would allow more people to help you.

update it,  pls review and and cheky my commit is fix right ,thx

if right, i will writer test case

@kagamiori

@yingsu00


Article is missing source code for Chunk class

Type of issue
Missing information
Description
Currently no source code for Chunk class is present in the article. It was there before but seems to be accidentally left out by changes of commit 6d40b3d7.
Page URL
https://learn.microsoft.com/en-us/dotnet/csharp/linq/group-results-by-contiguous-keys
Content source URL
https://github.com/dotnet/docs/blob/main/docs/csharp/linq/group-results-by-contiguous-keys.md
Document Version Independent Id
8ffa29aa-af74-9f39-7e6c-04fd46538177
Article author
BillWagner
Metadata

ID: eacf9e34-5e7f-37f4-24ad-1dd66fbabb9f
Product: dotnet-csharp
Technology: csharp-linq

Thanks @mrkaarel
I just submitted a PR to address this.


failed to run debbootstrap

https://pastebin.com/cLBD6AF8
Please describe your issue:
im trying to install trusty with xiwi and core targets,  but keep getting the error in the title

Okay, I have found the issue behind this.
Merely having ChromeBrew installed breaks debootstrap

Yup, I had what may have been a similar problem with busybox installed. It was using the wrong 'extractor' and kept bombing out. There was a PR https://github.com/dnschneid/crouton/pull/3420 that fixed it but maybe the chromebrew ar is causing problems for you.
-DennisLfromGA
Closing. Please re-open if this issue is still a concern.


Is there a style guide for writting css+sass ?

Does Orchard 2 or Orchard 1 follows any convention for deciding the default css classes Orchard  renders with html? I mean like SMACSS, BEM or a combination of both ... https://thesocietea.org/2016/06/combining-bem-and-smacss/

Not one that I've ever been able to discern. :)
I would be hugely in favor of adopting BEM methodology, and some BEM-based naming convention. I think the author of the article you linked to has slightly misinterpreted the main focus of BEM though, to me BEM is much more about how to mentally reason about the structure of markup in terms of blocks and elements, than the practicalities of how you should format your CSS.
I don't like SMACSS much, it is too prescriptive in details and it touts too many conventions that I find to be bad. But a sub-optimal convention applied consistently is infinitely better than no convention at all.

I like BEM too. But bootstrap and MDL do not use this.

That's a good point Steve. It would be awkward to mix BEM for everything we add, with the "let the name parts fall where they may and then put dashes between" style for everything that Bootstrap adds.

This may be irrelevant. I've made a start on creating a set of common tag helpers for the admin which abstracts all the markup. So, the author can just use custom tags and attributes and it just works. No need to know specific bootstrap styles and therefore you could easily switch from bootstrap to mdl for example.
These common components will make it super quick and consistent to author admin screens. For example, Click Me or Click Me
Let me know what you think, the finer details are yet to be ironed out so feedback is welcome.
Thanks

Tag Helpers baked by shapes I hope.

@stevetaylor yes use custom attributes and tags instead of ones related to technology. If we are able to agree a consistent naming we are going to save a lot of work for each new theme we want to create, because we won't need to fight vs the technology and arbitrary decisions taken in default templates creating new templates for everything. This also will make our sites more friendly for third party companies that don't know orchard but you want they develop a theme for your page cause it is more likely they can do the work only changing sass and css. Or at least will be less likely they need to change cshtml templates. For those case it would be great to have a special chapter in the docs explaining: Our tags and attributes conventions, dynamic layouts and placement.

Another point is that Orchard needs to provide infrastructure for supporting the convention. For example BEM allows to mix blocks. But for that in child block you need to know the parent block to reflect it in the child class. https://en.bem.info/forum/4/
If we consider the zones as blocks, we will need to know in blocks rendered within zones the name of the area in which they are rendered to reflect it on their class, so for example from the template of a content type we would need access to know in which area that content item is being rendered.

Sorry, no I never got to finish the tag helpers but I believe that the approach still provides value through abstraction.  The issue we had with Orchard 1 was that the admin UI was all over the place with module authors re-creating grids and forms or copying and pasting.  This led to inconsistencies and wasted time.
BEM, is a naming convention primarily to provide a namespace to components which avoids clashes with another component.  This helps when updating the CSS to ensure only that component is affected.
BEM is seen as a work around and is only used in today's world under certain circumstances.  There are still valid reasons to use BEM but there are alternatives available.
Web Components (see my 2014 orchard talk) has the shadow dom which eliminates the need fo BEM.
If you didn't want to use Web Components (well supported now) there are build tools such as JavaScript generated styles that provide dynamic namespaces without the "thinking overhead" that comes with BEM.  Styled Components is one such example.
I agree that the use of Bootstrap etc. should not overly affect the approach, but such frameworks have gotten out of flavour as their value has diminished with the introduction of flex-box, css-grid and web components.

Sorry, no I never got to finish the tag helpers but I believe that the approach still provides value through abstraction. The issue we had with Orchard 1 was that the admin UI was all over the place with module authors re-creating grids and forms or copying and pasting. This led to inconsistencies and wasted time.

Yes for that purpose tag helpers are justified

BEM, is a naming convention primarily to provide a namespace to components which avoids clashes with another component. This helps when updating the CSS to ensure only that component is affected.
BEM is seen as a work around and is only used in today's world under certain circumstances. There are still valid reasons to use BEM but there are alternatives available.
Web Components (see my 2014 orchard talk) has the shadow dom which eliminates the need fo BEM.
If you didn't want to use Web Components (well supported now) there are build tools such as JavaScript generated styles that provide dynamic namespaces without the "thinking overhead" that comes with BEM. Styled Components is one such example.
I agree that the use of Bootstrap etc. should not overly affect the approach, but such frameworks have gotten out of flavour as their value has diminished with the introduction of flex-box, css-grid and web components.

So, we agree that current themes need to be based on any of those solutions. However, at least months ago when I was more in contact with Orchard Core I didn't see movements towards any of those directions. That's why I talked of BEM. But even better would be more advanced solutions like the ones you propose. Is this sth that has changed lately? Is there any intention of changing things on that direction?

Lately I have enjoyed with this library https://github.com/OrchardCMS/OrchardCore/issues/2704 that helps to have elements following MVVM pattern using server side Viewmodel that communicates with client side of the element with SignalR in client side.
Maybe it is another interesting alternative cause it allows to provide components encapsulating not only client side but also server side within the same component.

For frontend themes same reasonament you give would have been valid to provide not nice and stylish themes with Core.  However for Orchard Core themes provided are specially nice and stylish. The reason I guess you did that it is to attract people looking for a CMS to ease most common jobs as having a decent looking web by default.
Problem of offering frontend themes without solving css isolation is you don't save that work to anyone. Because anyone interested on it will need to override ALL the templates of the modules it uses.  However if Orchard choose one strategy for those themes at least for those  who need it will appreciate Orchard as a very straightforward solution cause save them work because all templates follow convention stablished.
Morever if the Orchard conttibutors have this on mind while develop they will provide the needed infrastructure for that by frontend themes.   For example when I tried to use BEM with Orchard 1 I found that I needed many changes in the core to support what I needed,  cause within a shape I was not able to know within what ancestrors shapes a shape was rendered to decide a BEM class fo a tag.
I agree  sth based on React (like Styled Components)  or Web Components is too much intrusive for front themes because not everybody will agree with it.  That's why I prefer  BEM,  cause by default it provides a solution by default to the problem but it is easy to ignore those classes for anyone not interested on them. The major con I see of BEM is its verbosity,  that's why I prefer a variation like ABEM https://css-tricks.com/abem-useful-adaptation-bem/
So, I think it is better to provide a solution than no solution at all for default frontend themes.  And it seems best solution would be the one that less force to anything to other theme devs.


fix(update_expected)!: remove unreported subtests a la tests

This is something I forgot to do while implementing process-reports/update-expected originally! Oops. 😳 Mozilla had accumulated ~55k lines of metadata that it didn't need because this hadn't been implemented yet.
I've observed that wptrunner may not report subtests in wptreport.json artifacts in some cases. This may cause some noise in folks' existing Try runs, and we might need to make this an option later, if the problems aren't easy to resolve.

@sagudev, you'll probably be interested in this. It may clear out a significant amount of metadata for you, and it might cause some noise for you (see OP).

Mozilla had accumulated ~55k lines of metadata that it didn't need because this hadn't been implemented yet

This are subtest that got changed (renamed, removed, more sub options or whatever changes their name), right?

I've observed that wptrunner may not report subtests in wptreport.json

This is alarming, but I have a hunch that the problem is in cts rather than in wptrunner. It will be interesting to see how this affects servo.
Tnx for the heads up, this reminds me that I should work on https://github.com/ErichDonGubler/moz-webgpu-cts/issues/106, but something always comes up in servo 😭.

@sagudev:

This are subtest that got changed (renamed, removed, more sub options or whatever changes their name), right?

Yep, that's right!

This is alarming, but I have a hunch that the problem is in cts rather than in wptrunner. It will be interesting to see how this affects servo.

🤔 Let's tag @kainino, then, just in case they've heard of something of the sort! For your convenience, Kai, we're referring to this in the OP:

I've observed that wptrunner may not report subtests in wptreport.json artifacts in some cases. This may cause some noise in folks' existing Try runs, and we might need to make this an option later, if the root cause isn't easy to resolve.

CC @jimblandy, @teoxoy, @nical, who will likely be reviewing a patch against mozilla-central later in response to this change. 😛

wptrunner may not report subtests in wptreport.json artifacts in some cases

Do you have any concrete example or are they random?

My first thought would be that we're reporting completion to tesharness.js before we finish all the tests. I am pretty sure this is handled correctly but it could be buggy. I've had trouble using the testharness.js interface before.
If you can reproduce the issue I'd greatly appreciate if you can investigate a bit, or file a bug with repro steps.

@sagudev, @kainino0x: I have some concrete examples, but I'll have to see if I can make them smaller and remember more details; the time I saw it was when a test with a texture format parameter reported TIMEOUT.
I'll file an issue in this tracker for follow-up.

Filed https://github.com/ErichDonGubler/moz-webgpu-cts/issues/137.


WIP generics draft

Codecov Report

Merging #52 (1d5c3e2) into master (ed70c0a) will increase coverage by 4.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #52      +/-   ##
==========================================
+ Coverage   95.21%   99.36%   +4.14%
==========================================
  Files          18        6      -12
  Lines        1379      625     -754
==========================================
- Hits         1313      621     -692
+ Misses         47        3      -44
+ Partials       19        1      -18

Flag
Coverage Δ

cli
?

package
99.36% <ø> (ø)

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

Impacted Files
Coverage Δ

cmd/ensure/internal/ifacereader/ifacereader.go

cmd/ensure/internal/mockgen/template.go

cmd/ensure/internal/ensurefile/validation.go

cmd/ensure/internal/fswrite/fswrite.go

cmd/ensure/internal/mockwrite/mockwrite.go

cmd/ensure/internal/uniqpkg/uniqpkg.go

cmd/ensure/internal/mockwrite/tidy_mocks.go

cmd/ensure/internal/cmd/root.go

cmd/ensure/internal/mockgen/mockgen.go

cmd/ensure/internal/mockwrite/mock_destination.go

... and 2 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 ed70c0a...1d5c3e2. Read the comment docs.


Future architecture OpenSCD-core

As a developer
I would like to see know the OpenSCD-core and plugins global to-be architecture
So I understand the architecture and can build components/plug-ins and see the missing pieces
This is needed to align the architecture with the open source community.
Acceptance criteria:
drawing of the future architecture
Explanation of the components and it their role
Including related ADR's
Location:
https://wiki.lfenergy.org/display/SHP/OpenSCD+next+architecture

Still todo:

[ ] Bus EventBus with drawings and problem
[ ] Check Theming
[ ] Repository split (pro's/con's and alternatives)
[ ] List of future repositories
[ ] Addon motivation

List of future Repositories:
[] @openscd/oscd-components => Custom Webcomponents for OpenSCD
[] @openscd/oscd-file-handling => plugins: @openscd/oscd-open, @openscd/oscd-save, @openscd/oscd-new
[] @openscd/oscd-editors => plugins: Substation plugin
[] @openscd/oscd-ied => plugins:  @openscd/oscd-import-ied, @openscd/oscd-compare-ied, @openscd/oscd-virtual-ied
[] @openscd/oscd-validating => plugins: @openscd/oscd-validate-template, @openscd/oscd-validate-schema