K8SPXC-821 tests: custom config from secret is not mounted to proxysql

https://jira.percona.com/browse/K8SPXC-821
Modified tests to check configuration values after adding secret with config

Test name
Status

upgrade-haproxy
passed

storage
failed

recreate
passed

big-data
passed

scheduled-backup
passed

scaling
passed

haproxy
failed

scaling-proxysql
passed

self-healing
passed

restore-to-encrypted-cluster
passed

security-context
failed

upgrade-proxysql
failed

init-deploy
failed

self-healing-chaos
failed

demand-backup
passed

self-healing-advanced
passed

smart-update
passed

limits
failed

monitoring-2-0
passed

self-healing-advanced-chaos
failed

affinity
failed

operator-self-healing
passed

pitr
passed

one-pod
passed

operator-self-healing-chaos
failed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

upgrade-consistency
failed

users
failed

demand-backup-encrypted-with-tls
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/17a843504448568352250c08619b530248f8488e
image: perconalab/percona-xtradb-cluster-operator:PR-944-17a84350

Test name
Status

haproxy
failed

scheduled-backup
passed

big-data
passed

storage
passed

scaling
passed

recreate
passed

upgrade-haproxy
passed

scaling-proxysql
passed

self-healing
passed

security-context
passed

restore-to-encrypted-cluster
passed

init-deploy
passed

upgrade-proxysql
passed

self-healing-chaos
passed

demand-backup
passed

limits
passed

self-healing-advanced
passed

monitoring-2-0
passed

smart-update
passed

affinity
passed

self-healing-advanced-chaos
passed

one-pod
passed

pitr
passed

auto-tuning
passed

operator-self-healing
passed

proxysql-sidecar-res-limits
passed

operator-self-healing-chaos
passed

users
passed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/7a67862c3c16911eaf48bdac89fdf0944679990c
image: perconalab/percona-xtradb-cluster-operator:PR-944-7a67862c

Test name
Status

recreate
passed

upgrade-haproxy
passed

restore-to-encrypted-cluster
passed

storage
passed

demand-backup
passed

self-healing
passed

pitr
passed

self-healing-chaos
passed

scheduled-backup
passed

demand-backup-encrypted-with-tls
passed

self-healing-advanced
passed

haproxy
failed

self-healing-advanced-chaos
passed

operator-self-healing
passed

operator-self-healing-chaos
passed

scaling
passed

big-data
passed

scaling-proxysql
passed

security-context
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/7a67862c3c16911eaf48bdac89fdf0944679990c
image: perconalab/percona-xtradb-cluster-operator:PR-944-7a67862c

Test name
Status

big-data
passed

upgrade-haproxy
passed

scheduled-backup
passed

haproxy
failed

recreate
passed

restore-to-encrypted-cluster
passed

demand-backup
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

scaling
passed

scaling-proxysql
passed

security-context
passed

storage
passed

self-healing
passed

self-healing-chaos
passed

self-healing-advanced
passed

self-healing-advanced-chaos
passed

operator-self-healing
passed

operator-self-healing-chaos
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/7a67862c3c16911eaf48bdac89fdf0944679990c
image: perconalab/percona-xtradb-cluster-operator:PR-944-7a67862c

Test name
Status

scaling
passed

recreate
passed

storage
passed

haproxy
failed

scheduled-backup
passed

upgrade-haproxy
passed

big-data
passed

scaling-proxysql
passed

self-healing
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

self-healing-chaos
passed

init-deploy
passed

self-healing-advanced
passed

smart-update
passed

limits
passed

monitoring-2-0
passed

demand-backup
passed

self-healing-advanced-chaos
passed

affinity
passed

one-pod
passed

auto-tuning
passed

operator-self-healing
passed

proxysql-sidecar-res-limits
passed

pitr
passed

users
failed

upgrade-consistency
passed

operator-self-healing-chaos
passed

demand-backup-encrypted-with-tls
failed

tls-issue-self
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/6ba38481abb9854f17bb274e5c35402836232a91
image: perconalab/percona-xtradb-cluster-operator:PR-944-6ba38481

Test name
Status

haproxy
failed

upgrade-haproxy
passed

recreate
passed

scaling
passed

big-data
passed

restore-to-encrypted-cluster
passed

scaling-proxysql
passed

demand-backup
passed

security-context
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

scheduled-backup
passed

storage
passed

self-healing
passed

self-healing-chaos
passed

self-healing-advanced
passed

self-healing-advanced-chaos
passed

operator-self-healing
passed

operator-self-healing-chaos
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/6ba38481abb9854f17bb274e5c35402836232a91
image: perconalab/percona-xtradb-cluster-operator:PR-944-6ba38481

Test name
Status

haproxy
passed

recreate
passed

storage
passed

restore-to-encrypted-cluster
passed

self-healing
passed

demand-backup
passed

self-healing-chaos
passed

pitr
passed

self-healing-advanced
passed

demand-backup-encrypted-with-tls
passed

self-healing-advanced-chaos
passed

scaling
passed

upgrade-haproxy
passed

scheduled-backup
passed

operator-self-healing
passed

scaling-proxysql
passed

operator-self-healing-chaos
passed

security-context
passed

big-data
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/944/commits/6ba38481abb9854f17bb274e5c35402836232a91
image: perconalab/percona-xtradb-cluster-operator:PR-944-6ba38481


Support for vendored OpenSSL

I want to use vendored OpenSSL. There's a feature vendored in rust-openssl, but it's not supported upwards

[dependencies]
tokio-openssl = "0.6"
openssl = { version = "0.10", features = ["vendored"] }


Release v0.4.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 86.139%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
435

Relevant Lines:
505

💛  - Coveralls


Fix the snapshot directory cleaning method

The snapshot directory cleaning  method FileHelper->cleanDirectory seems broken. Let's keep the last two weeks of files instead.
Also, if snapshot creation fails, it doesn't display an error message in the UI, let's return an error and display it to the admin.

The error handling portion of this ticket has been moved to #374


DOC: update installation notes

Linking to Gohlke's wheels is no longer necessary, as those are now uploaded to PyPI as well?
added some links

Maybe move the link to a side note that says that the Windows wheels on pypi are provided by Cohlke.

I added it back between brackets. Does that look OK?
I thought an actual note box would draw a bit too much attention, as for the end user it should actually not matter, they should just do pip install pyproj (although conda install pyproj is probably even better ;))


Not accepting variables

When I load the modpack up, it says that lines 189-190(the last two) are not valid variables. how come?
heres mod list btw https://pastebin.com/vb98VvTg

creativeDank*n*ullPanel lowercase n should be capitalized N
and the assignment should be lowercase C
the variables are case-sensitive, if you havent noticed


请教下，如果服务端节点消费扛不住，要新增节点了，不想改客户端的client.xml的ip,这个怎么做呢

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

你可以看看客户端的源码，其实client.xml里面的节点并不是需要客户端去创建TCP的机器，而是优先会去拉取集群router配置的机器，新增机器其实无妨，只要能保证client.xml配置里面至少一个机器可用就行了

好的，谢谢


[Bug][Gameplay] - Cannot move king when surrounded by kings

Cannot move king when surrounded by kings

Look at the red king Row 2 Column 8


Refused to set unsafe header "user-agent" - web page use

Maybe I am getting how to use it wrong...
I am using vbb-client on my web page to make a dynamic map of the public transportaton in my surroundings.
However, when I try to use it, I get "Refused to set unsafe header "user-agent" in console and script aborts.
Maybe I am not using it the right way?
It seems I cannot use index.js directly (I get an error) so I used browserify as directed.
I did npm install vbb-client
then I did browserify trafficmap.js -o bundle.js
then I included in a script tag bundle.js
Result: Refused to set unsafe header "user-agent"
By looking at code, I see that vbb-client tries to set its own user agent.
I'll attach my very simple js so maybe some glaring error might be spotted ...
`var vbbclient = require('vbb-client');
window.onload = function() {
var map = L.map('map').setView([52.457725, 13.540240], 13);
        L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '© OpenStreetMap contributors'
        }).addTo(map);

        L.marker([52.457725, 13.540240]).addTo(map)
            .bindPopup('Essentis Eco Hotel')
            .openPopup();
        map.on('moveend', function() {
            console.log(map.getBounds());

        });
        vbbclient.stations({id: '900000181505'}).then(function (result) {

console.log('Response from the endpoint ' + result)
}, function (error){
console.log('An error occurred: ' + error)
});
};`

Hey @mbariola,

Maybe I am getting how to use it wrong...

Doesn't look like it.

However, when I try to use it, I get "Refused to set unsafe header "user-agent" in console and script aborts.

This happens because in the browser, fetch() is not allowed to set a custom user agent. This only works in Node.js. The vbb-client tries to work in both though, and to see what people use vbb-client for, I set the user agent. However, it does not cause the vbb-client call to fail, it is only a warning being shown in the terminal.

It seems I cannot use index.js directly (I get an error) so I used browserify as directed.

That's the correct way to do it.
Did you get a result back eventually?

Hey, thanks for the quick response
No, I wasn't able to. I commented out the user - agent line and hard-coded
my x-identifier and I got a successful promise with an empty body.
When directly calling fetch, and passing the query string as I'd do from my
server, I get back the streamable data
On Fri, Sep 8, 2017, 17:59 Jannis Redmann<EMAIL_ADDRESS>wrote:

Hey @mbariola https://github.com/mbariola,
Maybe I am getting how to use it wrong...
Doesn't look like it.
However, when I try to use it, I get "Refused to set unsafe header
"user-agent" in console and script aborts.
This happens because in the browser, fetch() is not allowed to set a
custom user agent. This only works in Node.js. The vbb-client tries to
work in both though, and to see what people use vbb-client for, I set the
user agent. However, it does not cause the vbb-client call to fail, it
is only a warning being shown in the terminal.
It seems I cannot use index.js directly (I get an error) so I used
browserify as directed.
That's the correct way to do it.
Did you get a result back eventually?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/derhuerst/vbb-client/issues/4#issuecomment-328144070,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEqp31vlbr1WKRNZaCwKzufZXW5qL2oiks5sgWR3gaJpZM4PRSnh
.

that is really weird. can you provide the stack trace you get via .catch()?

No, I wasn't able to. I commented out the user - agent line and hard-coded
my x-identifier and I got a successful promise with an empty body.

Which browser do you use?

hey @derhuerst , sorry, was AFK.

Which browser do you use?
Browser is Chrome latest running on Windows 10. Server is serving the page from a local LAN IP (192.x)

that is really weird. can you provide the stack trace you get via .catch()?

That's the funny thing, unless I am missing something really obvious, I have no catch results .. here's the current version of code. maybe you can see in the logs if there's some Test-WebClient-2 X-Identifier?
`
var vbbclient = require('vbb-client');
window.onload = function() {
var map = L.map('map').setView([52.457725, 13.540240], 13);
        L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '© OpenStreetMap contributors'
        }).addTo(map);

        L.marker([52.457725, 13.540240]).addTo(map)
            .bindPopup('Essentis Eco Hotel')
            .openPopup();
        map.on('moveend', function() {
            console.log(map.getBounds());
        });
        vbbclient.stations({id:<PHONE_NUMBER>05, identifier: "Test-WebClient-2"})
            .then(function (result) {
                console.log('Response from the endpoint ' + result)}
            , function (error){
                console.log('An error occurred: ' + error)})
                .catch(function (error){
                    console.log('Aha! Error');
                    console.log(error);
                });
    };

`

There's one more reason I can imagine why you don't see the errors/data: Check the filter of your browsers' dev console.

Hello,
I tried to show everything putting it on "verbose" level, but no errors came out.
If you like, I attached the whole zip of the folder, just run transport.php, maybe you'll be able to see the cause better than I
html.zip
.

If you like, I attached the whole zip of the folder

Your zip does not contain the package.json file. Nevertheless, It looks like you installed the latest version of vbb-client.

just run transport.php

I don't have PHP set up on my machine.
BTW you should probably change your API key, because your zip file contains it.

that's what happens when just woken up, I was sure I had removed all inessential files, thanks for the heads up
here goes w/ transport.html - no php in it
html.zip

Sorry, totally missed two issues:

You're querying /stations from the API with an id parameter, which will be ignored. If you want to search for stations by name, pass a query parameter. If you want to get data on a single station, use .station(id). If you want to get departures at a station, use .departures(id).
In the .then() function, you're concatenating your string 'Response from the endpoint ' with result. Because, in your specific case, result is an empty array, it gets converted to an empty string. You should therefore see just Response from the endpoint  in the dev tools console. console.log supports any number of arguments, so log like this: console.log('response', result).

I will clarify the docs here in vbb-client.

Thanks, I see I was including the id in the object and not outside of it, now I fixed it and it works, you might see the x-Identifier too . Thanks for the tip re console.log too, I'm more of a backend guy :-)

FYI vbb-client will work on the server side just like you used it in the browser now. Also, you won't get a warning about the user-agent header.


Query expression is generating the wrong type when grouping on tuples

The expected type of the grouping in the follwing expression is
IGrouping<int,(int * bool * string)>

but here we get
IGrouping<int,(string * int * bool)>

Looks like the type of the tuple is getting rotated
query {
    for (i,b,s) in query{ yield (1,true,"test")} do
    groupBy i into g
    select g
};;
//val it :
//  System.Linq.IQueryable<System.Linq.IGrouping<int,(string * int * bool)>> =
//  <seq>

can that be related to #277 ?

Yes, see #277 for explanation, you will have to iterate the groups and re-select

Is there a rule to know how the tuple is supposed to be reconstructed
the reordering does not seem to be consistent with different number of elements in the tuple
query {
    for (i,b,s,b2) in query{ yield (1,true,"test", 0.5)} do
    groupBy i into g
    select g
}

//val it :
//  val it :
//  System.Linq.IQueryable<System.Linq.IGrouping<int, (string * int * float * bool)>>
//= <seq>

This exemple is just for illustration but there are situation where i want to group on tuple with the same type and it makes it hard to know what the value represents. Is there any guidance for dealing with these cases ?

I believe it is reverse-alphabetical order.  Not exactly obvious nor intended, though I'm not sure how to make progress on changing this while respecting backwards compat. Any ideas?

This discussion is quite old. @dsyme should this be a bug?

I think we can close it, it's just an oddity


[Segment Replication] Handle failover in mixed cluster mode

Is your feature request related to a problem? Please describe.
In the event of failover for a segment replication enabled cluster, need to avoid a case where the replica with the highest opensearch version gets promoted to primary. If that happens, the replicas on older opensearch versions will not be able to read the segments sent by this primary.
Describe the solution you'd like
We want to ensure that the replica that's on the oldest opensearch version is promoted to primary in the event of a failover in a segment replication enabled cluster, which would take care of this problem in mixed version clusters.
Additional context
Created as follow up to #8265
Parent issue: #3881

@Poojita-Raj by furthest ahead/behind do you mean OpenSearch version or segments?

Sorry for the confusion @mch2 - Furthest ahead/behind refers to OpenSearch version. Updated the description accordingly.


Move RBAC into st2 codebase

EWC (previously StackStorm Enterprise) was opensourced with RBAC is now free & open.
Instead of having a dedicated RBAC package in this repository, move RBAC code to st2 codebase so rbac could be just easily enabled/disabled via st2.conf

Since we can include the RBAC package in the base install now, how is this difficult to enable/disable?

I can make a PR to combine this with StackStorm/st2, but I'm concerned about doing that with the LICENSE file and copyright files as is. I'm guessing that needs to be done by someone who works for ExtremeNetworks to make sure the licensing provenance is correct, right? Then, once that is done, I can help with moving the code over.

@cognifloyd You are absolutely right.
Created a dedicated issue https://github.com/StackStorm/st2-enterprise-rbac-backend/issues/33 to track that.
@m4dcoder we indeed need Extreme to change the License to Apache 2.0, remove EWC/product references and Extreme EULA for every open-sourced repository. Currently every repo contains proprietary license.

@armab @cognifloyd My question hasn't been addressed yet?  Why do we need to put the RBAC code back into st2 core?  Why can't we just rename the project and package to st2-rbac-backend?

@m4dcoder The RBAC was part of the st2 core before and its configuration is included in base st2.conf. It's not a LDAP module which is enabled like a plugin addition via st2 backend_kwargs.
Historically, we had some code in both st2 repos and outside of it because of the Enterprise reasons. Having those code references scattered across the repos makes less sense now.

Either way works just as well.  We already did the hard work to separate the feature out into a separate package. RBAC is an important feature but there are so many people using st2 core without it.  It's not really core feature principally speaking. I don't see it anymore difficult for a user to include it in the install and enable/disable it.  I just didn't see it necessary to unwind this again given the current flexibility as a separate package.  That's just my opinion and I'll stop here.

Discussed plans for 3.4.0 release with @m4dcoder. Understanding is that for the 3.4.0 release this would just stay as a separate package.

Closing as RBAC was integrated into st2 core via https://github.com/StackStorm/st2/pull/5086


Error not generated for nested generic array

🔎 Search Terms
error, nested, array, order
🕗 Version & Regression Information

This changed between versions 4.4.4 and 4.5.5 (from playground testing - all later version exhibit this behaviour).

⏯ Playground Link
https://www.typescriptlang.org/play/?ts=5.6.3#code/C4TwDgpgBAKuEEEoF4oDsCuBbARhATgNwBQoks8AQilDgPZ0A2EAhmiWdACIvAtyQYAdzoAeGFAgAPYBDQATAM4VISAD4qIlAHw0A3sShQ6aCAC4oCfPhYhReqMBEXL12+N0BfbSU8d4UDx8AhAwABb4EBDikjJySprqmjr6hsamFlY2dg5OdJluOY4RUQXZHlDelT7EfsTEzMCOEIrAAJZoAObhkRAAotYWQfzwPVHi8Ai6qAZGJuZQANq5zktQesAlC4uO+BjQALqVUAeeRwD055LWdPjKLMrSkADGsvK1JI3NrR3dIgP4Ia8EaCEQTVTTdZpeYWZaOVY7ABmLEYikOlQuVwI+Fu90eUhebw+9UuUAAqmhnnQsFg5E1Ni1oIwOi1HHQoGjoCjGNccXdiKSvrIfl1hHQAAqRIHBUZgkJTVKkuYZJYrfJrACsJwxAqudUFEHpACYWJKFsMQmLwVpIcL2qKRGaSA1Dd97d0ttKQaEttaFTNoSq4XlYetNr1Q1qjp4TmdiaSAMLU2loJp0DD0sJtZTM0xsjlRXm3KCI4vAE1QB6KNqdNAp4Au+kAZhYXstvpCKVQdt+YwghCgpIAymF04x5EX8AAaWgZqDyOistB0BuNt291YW2VieWQ2bpbZqyPauN1IUmtvb61d9cOugD0nY3HpRggKBtREF15tEyV+gAN2gKkaTpCAJ3TVcvmeMIIGeABrCxMFwAgaAAIgeeREVQh8rhRIRbEeG47hnB53yaRRRwwccSSuJMQNTYw5wAGSNAB2fNOSgKlrFgpon3wdIoCYpsjV1clKWTOkhLYysFCgXNWQARgADgAWiNRSOMLblJ2UbjIleV8aKgAB1W44LxWJCTA980Cgf8ABYADpnIcmccDnZcmjYN9GF4FDALuH80EUYggA
💻 Code
type TypeA = number;
type TypeB = boolean;
type DataTypeTwo<T extends TypeA | TypeB> = {
  one: Array<{ two:  Array<T> }>;
};
type DataTypeThree<T extends TypeA | TypeB> = {
  one: Array<{ two: Array<{ three: Array<T> }> }>;
};

let testingThreeErr: DataTypeThree<TypeA> = {
  one: [{ two: [ {three: [ true ] } ]}] // errors as expected
};
let testingTwoErr: DataTypeTwo<TypeA> = {
  one: [{ two: [ false ] }] // errors as expected
};

// Uncomment these lines to see all errors
// let testingTwoPre: DataTypeTwo<TypeA> = {
//   one: [{ two: [ 5 ] }]
// };
// let t2aPre: DataTypeTwo<TypeB> = testingTwoPre;

let testingThree: DataTypeThree<TypeA> = {
  one: [{ two: [ {three: [ 5 ] } ]}]
};
// Comment out this line to see error for t2a assignment
let t3a: DataTypeThree<TypeB> = testingThree; // Should error, but does not

let testingTwo: DataTypeTwo<TypeA> = {
  one: [{ two: [ 5 ] }]
};
let t2a: DataTypeTwo<TypeB> = testingTwo; // errors only if section above commented out

let check: number = "asdf"; // always errors, as it should

// Comment out L27 to see correct error on L32
// Uncomment L27 and lines 18-21 to see all errors correctly

// Works as expected in v4.4.4, but not any later versions

🙁 Actual behavior
No errors on lines 27 and 32 (assigning an incompatible type).
🙂 Expected behavior
Should error on those lines.
Additional information about the issue
The code works (i.e. gives correct errors) in version 4.4.4 (pg).
I assume this is to with depth limits, as it works fine for the two level case (DataTypeTwo)  - though if the bad assignment comes after the three level case then even this error is not shown. (i.e. need to comment out line 27 in the example for the bad assignment to the DataTypeTwo variable to correctly error).
Even more oddly, if a bad assignment to a DataTypeTwo variable is made before the bad assignment to a DataTypeThree, the DataTypeThree assignment begins to error correctly. (Uncomment lines 18-21 in the example).
Possibly related to #56291.

Looks like variance measurement has gone badly off the rails here (we're incorrectly allowing in T as a possible annotation).
Straightforward workaround is to add a variance annotation
type DataTypeThree<out T extends ...

Thanks for that workaround, though upon investigating it, it still doesn't seem to always work, such as when assigning a name to those generic types (i.e. type DataTypeThreeA = DataTypeThree<TypeA>.
In this pg an error isn't generated, unless lines 10-15 aren't commented out (or lines 18-21 as before).


Make delete more discoverable

Right now, deleting a function is buried in "Manage"
One thought was to add an ellipsis icon to the right of a function name and provide a contextual menu option for delete.
If we ever add a rename capability, this would also be a good place, potentially.

Current plan is to add delete in the Function app list.

Added to Function List


Better lyrics mode UI

Does the npm version have the latest features in last 4 commits?

such a great creation!


Usage with neovim

Has anyone used this with neovim? If so, can yall point me to instructions on how to set it up?

Unfortunately, it appears to be not supported by the lspconfig plugin https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md

Most of the functionalities of this language server relies on custom methods.
So it won't work on neovim even if you have the server set up.
We're trying to replace these custom capabilities with the standard protocol as much as possible though.


Map editing: symmetry

Enable symmetry when editing the map.
Initially only do so for textures and height (not for features).

Delay for next release - don't want to make things too complicated


ls: force fetching metadata when called with -L -Z

The metadata are not used but it permits to use the same path as the long format to ensure we return 1 on invalid symlinks when ls is invoked with ls -L -Z
should solve https://github.com/uutils/coreutils/issues/2928

Thanks for your PR :)


Preact issue

When you use Preact instead of React, a fixed aspect ratio causes the following issue:

Steps to reproduce on the demo page bundled with this repo:

Install preact and preact-compat
Add the following to the webpack config:

resolve: {
	alias: {
		react: 'preact-compat',
		'react-dom': 'preact-compat'
	}
}

Set a fixed aspect ratio (I used 16 / 9)
Set the state on change

onCropChange(crop) {
     this.setState({
	crop
     });
}

Open a large image
Adjust the window size so the image is scaled down

The same setup works with React.

Interesting! Looks like a tricky but interesting one to figure out, may take a little while for me to get around to looking into it

I think this issue may have been fixed in preact as I can't replicate it using 8.2.5. Please let me know if you still experience this issue.


Reduce default cluster size, fixes #32

Description
Sets the default cluster size to 100 and the std to 25 to produce more reasonable galaxy sizes.
Alternate Designs
N/A
Benefits

Faster_ generation, no unneeded systems.
Lower risk of running out of names

Possible Drawbacks
N/A
Applicable Issues
#32

Codecov Report

Merging #37 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #37   +/-   ##
=======================================
  Coverage   97.22%   97.22%
=======================================
  Files           4        4
  Lines         180      180
=======================================
  Hits          175      175
  Misses          5        5

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 d4b2e2a...fb5ec53. Read the comment docs.


Documentation/Recipe around integrating/interfacing ember-service-worker with an Ember Service.

For context, I'm looking to use ember-service-worker to facilitate push notifications using the PushSubscription API.
My app has a service which is responsible for maintaining user session information, and I would like to expose that session service to the service worker, so that it can map push subscriptions to a specific user. I imagine this is a fairly common pattern for folks who are looking to use service workers for the purpose of push subscriptions, however the documentation seems geared solely towards using service workers for the purpose of making apps offline first.

Have you ever found anything on this subject? I found this resource: https://developers.google.com/web/fundamentals/push-notifications/common-notification-patterns
It seems like you would need messages for this. Something like this on the service side?
navigator.serviceWorker.addEventListener('message', function(event) {
  referenceToService.handle(event);
}

I'm not really sure when to add this listener. In an initialiser? Or on the init of the service? init could probably work.
And we need this on the service worker side:
windowClient.postMessage(event);

To get a client the service worker needs to inspect self.clients https://developer.mozilla.org/en-US/docs/Web/API/Clients

Instead of relying on postMessage, I would either store it in Local Storage or IndexedDB if it's not sensitive data, or fetch it from the server if it is. The SW has free access to IDB and LS.

Why would you not use postMessage? Browser support?
Using the server does not really make sense to me for push notifications, since you would then need a push notification from the server that it has a message ;)
But LocalStorage (or SessionStorage) seems like a good alternative with the window.addEventListener('storage', function(event) {}) option.


Raytracing GLTF fails to vkAllocateDescriptorSets

in RADV (Mesa 24) I am seeing VK_ERROR_OUT_OF_POOL_MEMORY from the vkAllocateDescriptorSets call inside createDescriptorSets
It seems the issue is that the Descriptor Set Layout last binding is a 6 bindings (the last being VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT) but the Descriptor Pool used is not big enough to hold it
Thread 0, Frame 0:
vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0x570db5e02ea0
    pCreateInfo:                    const VkDescriptorSetLayoutCreateInfo* = 0x7fffd36f8530:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO (32)
        pNext:                          const void* = VkDescriptorSetLayoutBindingFlagsCreateInfo
        flags:                          VkDescriptorSetLayoutCreateFlags = 0
        bindingCount:                   uint32_t = 6
        pBindings:                      const VkDescriptorSetLayoutBinding* = 0x570db5fff6b0
            pBindings[0]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff6b0:
                binding:                        uint32_t = 0
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR<PHONE_NUMBER>)
                descriptorCount:                uint32_t = 1
                stageFlags:                     VkShaderStageFlags = 1280 (VK_SHADER_STAGE_RAYGEN_BIT_KHR | VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = UNUSED
            pBindings[1]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff6c8:
                binding:                        uint32_t = 1
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (3)
                descriptorCount:                uint32_t = 1
                stageFlags:                     VkShaderStageFlags = 256 (VK_SHADER_STAGE_RAYGEN_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = UNUSED
            pBindings[2]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff6e0:
                binding:                        uint32_t = 2
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (6)
                descriptorCount:                uint32_t = 1
                stageFlags:                     VkShaderStageFlags = 3328 (VK_SHADER_STAGE_RAYGEN_BIT_KHR | VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR | VK_SHADER_STAGE_MISS_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = UNUSED
            pBindings[3]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff6f8:
                binding:                        uint32_t = 3
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER (1)
                descriptorCount:                uint32_t = 1
                stageFlags:                     VkShaderStageFlags = 1536 (VK_SHADER_STAGE_ANY_HIT_BIT_KHR | VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = NULL
            pBindings[4]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff710:
                binding:                        uint32_t = 4
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER (7)
                descriptorCount:                uint32_t = 1
                stageFlags:                     VkShaderStageFlags = 1536 (VK_SHADER_STAGE_ANY_HIT_BIT_KHR | VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = UNUSED
            pBindings[5]:                   const VkDescriptorSetLayoutBinding = 0x570db5fff728:
                binding:                        uint32_t = 5
                descriptorType:                 VkDescriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER (1)
                descriptorCount:                uint32_t = 15
                stageFlags:                     VkShaderStageFlags = 1536 (VK_SHADER_STAGE_ANY_HIT_BIT_KHR | VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR)
                pImmutableSamplers:             const VkSampler* = NULL
        pNext:                          VkDescriptorSetLayoutBindingFlagsCreateInfo = 0x7fffd36f8550:
            sType:                          VkStructureType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO<PHONE_NUMBER>)
            pNext:                          const void* = NULL
            bindingCount:                   uint32_t = 6
            pBindingFlags:                  const VkDescriptorBindingFlags* = 0x570db5fdaca0
                pBindingFlags[0]:               const VkDescriptorBindingFlags = 0
                pBindingFlags[1]:               const VkDescriptorBindingFlags = 0
                pBindingFlags[2]:               const VkDescriptorBindingFlags = 0
                pBindingFlags[3]:               const VkDescriptorBindingFlags = 0
                pBindingFlags[4]:               const VkDescriptorBindingFlags = 0
                pBindingFlags[5]:               const VkDescriptorBindingFlags = 8 (VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT)
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pSetLayout:                     VkDescriptorSetLayout* = 0x570db60b9420

Thread 0, Frame 0:
vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0x570db5e02ea0
    pCreateInfo:                    const VkDescriptorPoolCreateInfo* = 0x7fffd36f8580:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO (33)
        pNext:                          const void* = NULL
        flags:                          VkDescriptorPoolCreateFlags = 0
        maxSets:                        uint32_t = 1
        poolSizeCount:                  uint32_t = 4
        pPoolSizes:                     const VkDescriptorPoolSize* = 0x570db6346ef0
            pPoolSizes[0]:                  const VkDescriptorPoolSize = 0x570db6346ef0:
                type:                           VkDescriptorType = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR<PHONE_NUMBER>)
                descriptorCount:                uint32_t = 1
            pPoolSizes[1]:                  const VkDescriptorPoolSize = 0x570db6346ef8:
                type:                           VkDescriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (3)
                descriptorCount:                uint32_t = 1
            pPoolSizes[2]:                  const VkDescriptorPoolSize = 0x570db6346f00:
                type:                           VkDescriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER (6)
                descriptorCount:                uint32_t = 1
            pPoolSizes[3]:                  const VkDescriptorPoolSize = 0x570db6346f08:
                type:                           VkDescriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER (1)
                descriptorCount:                uint32_t = 1
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pDescriptorPool:                VkDescriptorPool* = 0x570db62c1730

Thread 0, Frame 0:
vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets) returns VkResult VK_ERROR_OUT_OF_POOL_MEMORY (-1000069000):
    device:                         VkDevice = 0x570db5e02ea0
    pAllocateInfo:                  const VkDescriptorSetAllocateInfo* = 0x7fffd36f84f0:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO (34)
        pNext:                          const void* = VkDescriptorSetVariableDescriptorCountAllocateInfo
        descriptorPool:                 VkDescriptorPool = 0x570db62c1730
        descriptorSetCount:             uint32_t = 1
        pSetLayouts:                    const VkDescriptorSetLayout* = 0x570db5d3b400
            pSetLayouts[0]:                 const VkDescriptorSetLayout = 0x570db60b9420
        pNext:                          VkDescriptorSetVariableDescriptorCountAllocateInfo = 0x7fffd36f8540:
            sType:                          VkStructureType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO<PHONE_NUMBER>)
            pNext:                          const void* = NULL
            descriptorSetCount:             uint32_t = 1
            pDescriptorCounts:              const uint32_t* = 0x7fffd36f84cc
                pDescriptorCounts[0]:           const uint32_t = 15
    pDescriptorSets:                VkDescriptorSet* = 0x570db5d3b3f8
        pDescriptorSets[0]:             VkDescriptorSet = 0

Thanks for bringing this up. Interestingly there is no validation error reported, probably due to the ray tracing samples using VK 1.1.

So I was curious about the lack of Validation error, but looking, I think this is valid, if you provide a smaller descriptor pool the VK_ERROR_OUT_OF_POOL_MEMORY is the expected behavior

Exactly. It's valid starting with either VK 1.1 or VK 1.0 and one of the maintenance extensions.
I'll push a fix for this in a moment.

Can you test again. I've just pushed a fix. Kinda embarrassing, I actually read the no. of images but forgot to assign them to the pool size /

It's valid starting with either VK 1.1 or VK 1.0 and one of the maintenance extensions

Awww, yes, I know what you mean... I have an internal Validation issue already to start improving these types of warnings, will add this to the list

Can you test again

It is still failing, the following gets it to work for me
diff --git a/examples/raytracinggltf/raytracinggltf.cpp b/examples/raytracinggltf/raytracinggltf.cpp
index 65f929a8..bf925b2e 100644
--- a/examples/raytracinggltf/raytracinggltf.cpp
+++ b/examples/raytracinggltf/raytracinggltf.cpp
@@ -524,6 +524,8 @@ public:
                        { VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, 1 },
                        { VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1 },
                        { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1 },
+                       { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1 },
+                       { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1 },
                        { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, static_cast<uint32_t>(model.textures.size()) }
                };
                VkDescriptorPoolCreateInfo descriptorPoolCreateInfo = vks::initializers::descriptorPoolCreateInfo(poolSizes, 1);

Thanks for the fix! I am still looking into a better way to help make it more obvious you are going to hit a VK_ERROR_OUT_OF_POOL_MEMORY for vkAllocateDescriptorSets in the VVL

Thanks. Adding a way to detect this via the layers would be very much appreciated :)


[LGA] Investigate - Secrets

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--prisma-cloud-docs--hlxsites.hlx.page/
After: https://--prisma-cloud-docs--hlxsites.hlx.page/
Worker: https://prisma-cloud-docs-production.adobeaem.workers.dev/?branch=

LGA content reviewed and signed off by Alan Zhang via Slack.


w2ui should support internationalization

We would like to provide our UI in various languages. What is the best way to achieve this.
Best would be if w2ui provides some framework for this.

It's already implemented: http://w2ui.com/web/docs/w2utils.lang
You can find the language files here: https://github.com/vitmalina/w2ui/tree/master/src/locale
Note that some of the files may not be up-to-date.
Unfortunately, there's no English "master" file, but I did my best to extract all translated strings (from w2ui 1.5) for the German file https://github.com/vitmalina/w2ui/blob/master/src/locale/de-de.json and I brought all entries in all the JSON files in alphabetical order (see #1239), which should make it easier to compare them.

Thanks for the hint, I seem to have tomatos on my eyes while searching for this.
I have added a question to the discussion page. I would appreciate if you could answer it there.
I apologize for opening this ticket and close it.

I have added a question to the discussion page.

I don't have a disqus account.

Does it automatically translate application provided texts, e.g. the "text" and "hint" property?

No, you would have to translate the hint/text first. Example: item.hint = w2utils.lang('Yes')

Is it possible to load two locale files, one for the application and one for w2ui? Or do I have to merge the same.

No, you would have to merge the translations into one file.
Or use a third-party lib like i18next for the application, that supports loading multiple files and namespaces. That way you can keep w2ui translations and application translations separated.

I hesitate to take i18next as it is a big thing. So I am glad that there is some support in w2ui and I plan to use this.
I guess I will do a merge of the locale files in my build pipeline.
As a pity w2ui loads the locale file via AJAX thus blocking to run the app from the file system.

As a pity w2ui loads the locale file via AJAX thus blocking to run the app from the file system.

By default, AJAX calls are async and do not block the app.
However, w2ui explicitely uses a sync (or rather async : false) AJAX call in w2utils.locale().
You could write your own non-blocking w2utils.locale() function.
It's basically a copy&paste job ob w2utils.locale(), you only need to change async    : false to async    : true. BUT, if you do that, I suggest you also pass a callback function to your locale(), so you know when the new language is fully loaded (or when loading failed).
Off Topic: I've done some node.js programming with web APIs, and nothing is synced there - it's basically a "callback hell", but you get used to it.

For the time being, I will not do this. I rather think simply to submit the locale hash instead of the the filename.

I reopen this, since it appears to me that translation is not consistently supported.

menu item and menu tooltip


Loopy for Arlington Leaderboard Bug

Competitors are reporting that the leaderboard is not counting their loops even though all 8 segments show up in their rides' segment lists.  I have not experienced this issue personally even when completing a loop in 2 separate rides, so I can offer no help with diagnostics.  See here for details

Looking at data I think there's an issue with syncing efforts from Strava, sometimes they don't appear to be there when we ask. Plausibly can be resynced.

I am pretty sure after recent fixes that we really have this fixed.


[Display PR] New Implementation

This PR is created for CI testing purpose.

The progress is now tracked in the upstream repo.


Fix some remaining test failures

So far the issues with the spec/services/template/upgrade_customization_service_spec have been resolved.
My local environment does not run all the feature tests, so I may need to use this PR as a runner service

After getting the upgrade.rake syntax fixed up, it looks like the rubocop-ing has broken a large portion of the tests:
Finished in 19.81 seconds (files took 4.38 seconds to load)
1387 examples, 733 failures, 2 pending


Bug 2009352: IR-120: Implementing metrics for ImageStreams

Created a prometheus Gauge to monitor the number of ImageStreamTags present in the cluster. Sums them up into two distinct groups:

ImageStreams imported inside 'openshift' namespaces
ImageStreams imported outside 'openshift' namespaces
ImageStreams pushed inside 'openshift' namespaces
ImageStreams pushed outside 'openshift' namespaces

This is the metric, as reported by prometheus:
image_registry_image_stream_tags_total{location="openshift",source="imported"} 368
image_registry_image_stream_tags_total{location="openshift",source="pushed"} 0
image_registry_image_stream_tags_total{location="other",source="imported"} 0
image_registry_image_stream_tags_total{location="other",source="pushed"} 0

This PR also creates a prometheus metric to export the storage in use:
sh-4.4$ curl --insecure -s https://localhost:60000/metrics |grep storage_type
# HELP image_registry_storage_type Holds the storage in use for the image registry
# TYPE image_registry_storage_type gauge
image_registry_storage_type{storage="GCS"} 1
sh-4.4$

/assign @flavianmissi

/assign @dmage

/retest

/lgtm

/lgtm

/label docs-approved
/label px-approved
/assign @xiuwang

/label qe-approved
The metrics could be updated.
sh-4.4$ curl --insecure -s https://localhost:60000/metrics
HELP image_registry_image_stream_tags_total Number of image stream tags. Source is either 'imported' or 'pushed'. 'location' label shows if the tag lives in one of the 'openshift' namespaces or 'other'
TYPE image_registry_image_stream_tags_total gauge
image_registry_image_stream_tags_total{location="openshift",source="imported"} 370
image_registry_image_stream_tags_total{location="openshift",source="pushed"} 1
image_registry_image_stream_tags_total{location="other",source="imported"} 0
image_registry_image_stream_tags_total{location="other",source="pushed"} 1
image_registry_operator_storage_reconfigured_total 7
HELP image_registry_storage_type Holds the storage in use for the image registry
TYPE image_registry_storage_type gauge
image_registry_storage_type{storage="EmptyDir"} 1
image_registry_storage_type{storage="PVC"} 1
image_registry_storage_type{storage="S3"} 1

/cherry-pick release-4.10

/cherrypick release-4.10


Fifth attempt CalculateAverage_zerninv

Check List:

[x] Tests pass (./test.sh zerninv shows no differences between expected and actual outputs)
[x] All formatting changes by the build are committed
[x] Your launch script is named calculate_average_zerninv.sh (make sure to match casing of your GH user name) and is executable
[x] Output matches that of calculate_average_baseline.sh

Execution time: 15s
Execution time of reference implementation: 6m

attempt to optimize temperature parsing approach

Could you please squash this into one commit off of latest main? Thx!


Implement migrateClient function in ClientState

Based on feedback received on Ethan Frey's audit of 08-wasm, the CheckSubsituteAndUpdateState function of the ClientState interface is overloaded (updates the client state, the consensus state and its associated metadata) and error prone. We acknowledge this and see the benefit of splitting this API into 2 different functions.
This issue addresses the implementation of the first function, one that would update only the client state. For the time being, the 02-client ClientState interface function is not modified and this new function may be implemented only in 08-wasm's own ClientState implementation and be used in its implementation of CheckSubsituteAndUpdateState.
Possible pseudo-code for the function:
func (cs ClientState) migrateClient(store storetypes.KVStore, substituteClient exported.ClientState) error {
  substituteClientState, ok := substituteClient.(*ClientState)
  if !ok {
    return errorsmod.Wrapf(
      clienttypes.ErrInvalidClient,
      fmt.Sprintf("invalid substitute client state. expected type %T, got %T", &ClientState{}, substituteClient),
    )
  }

  // 08-wasm's implementation of Status will check that the code hash in substituteClientState
  // is in the allow list of code hashes
  if status := substituteClientState.Status(ctx, substituteClientStore, cdc); status != exported.Active {
    return errorsmod.Wrapf(types.ErrClientNotActive, "cannot migrate to client with status %s", status)
  }

  payload := sudoMsg{
    MigrateClient: &migrateClientMsg{ // new payload message
      ClientState: substituteClientState,
    },
  }

  _, err := wasmCall[emptyResult](ctx, store, &cs, payload)
  return err
}

Contracts will need to implement the function to handle the migrateClientMsg message.
We also agreed that we could use the client recovery flow to migrate to a new contract, if needed (e.g. in the situation that a new contract needs to be deployed to fix a bug). However, as I am writing this I just realised that for this to work we need the light client with the existing contract to expire first (or make it not active somehow), since we check in 02-client's RecoverClient that the subject client is not active. For this reason I am adding the needs discussion label to discuss how to handle this.

Thinking about an alternative flow for migrating clients (i.e. a flow that is different to the client recovery flow).
Context
In x/wasm contract migration requires the contract to have an address, which is passed in the env parameter. In 08-wasm we currently do not have addresses for the light client contracts. In x/wasm the contract address is generated during contract instantiation
In x/wasm there is MsgMigrateContract with a field contract that is the address of the contract that should be migrated. The code_id field references the new contract that migrates to. MsgInstantiateContract has an admin field that specify who can perform migrations and this is stored in the ContractInfo during contract instantiation.
During migration it is checked that the caller (the signer of MsgMigrateContract can modify the contract (it uses the admin address stored in ContractInto during instantiation. In case of governance, the admin address does not matter, since the governance policy will allow migration if the signer is the governance module.
To execute the migration, the env variable passed to wasmVM.Migrate contains the address of the contract that should be migrated. In the call to wasmVM.Migrate the code hash of the new contract is also passed.
Proposal
This proposal requires doing some changes in https://github.com/cosmos/ibc-go/pull/4292. Instead of only storing the code hash of the contracts that are uploaded, we go back to the initial design, where we had a key in the store of the form code_hash/{code_hash}, but instead of storing the byte code of the contract, we store the contract address that we generate. If we want to use the migrate feature of wasmVM we need to have an address for each contract that is uploaded. We could generate a contract address using the code hash and a similar trick as we do when we generate the interchain account address. Then during StoreCode we generate the address and store it under the specified code hash (i.e. we have a mapping like code_hash/{code_hash} -> {contract_address}).
During the Initialize call we already have access to 08-wasm store to check that the code hash of the contract that we are going to instantiate is part of the allow list (https://github.com/cosmos/ibc-go/pull/4292). We use the store to query the given code hash and get the contract address, and we use this contract address pass it to wasmVM.Instantiate in the env parameter.
x/wasm exposes contract addresses to the external world and implements a elaborate permission scheme for migration, but in 08-wasm we could keep it simple and:

Do not use contract addresses outside of the module (i.e. addresses would only be known and used inside the module).
Allow only governance to migrate a contract.

Then we could have a new message (e.g. MsgMigrateContract) and RPC endpoint (e.g. MigrateContract). MsgMigrateContract could have the following fields:

The code hash of the contract that we will migrate from.
The code hash of the contract we will migrate to.

Using the code hash of the contract we migrate from, we retrieve the contract address and can use it in the call to wasmVM.Migrate. If possible, it might be nice to determine in MigrateContract endpoint the client IDs that use the old code hash and change their client states to use the new code hash, but I am not sure how to achieve this. Alternatively, MsgMigrateContract could also include a list of client IDs that should be migrated and we could check that the client state of those do use the old code hash before migrating to the new one. I guess if a contract should be migrate to a new version, it would be nice to migrate all clients; I cannot see any situation where you would keep the client using the old contract, but maybe I am missing something.
Advantages

We do not require modifications to 02-client to change the check that enforces subject clients to not be active if they are going to be recovered.

Questions

What happens to a contract when you migrate from it? Is it still usable? Can it still be instantiated?
Is wasmVM.Migrate idempotent? In case we cannot/should not migrate all clients in one go and we need to migrate the clients specified in the message, then wasmVM.Migrate may be called multiple times, so it would be good to know if it is idempotent.

I'm in favour of using wasmVM.Migrate. Isn't it possible for us to use the clientID (ex 08-wasm-0) as the contract address? We could also make this a more general thing (for example providing the clientID as contract address to the Env)

We discussed and decided to implement the new RPC endpoint for migrating the byte code of a contract (for which I will open a new issue). We will close this issue and use https://github.com/cosmos/ibc-go/issues/4862 for the implementation changes needed in CheckSubstituteAndUpdateState.


issues found by clang analyzer

source/utils/pistache/src/common/http_header.cc:148:11: warning: Value stored to 'found' is never read
          found = true;
          ^       ~~~~
source/utils/pistache/src/server/router.cc:246:7: warning: Method called on moved-from object 'params' of type 'std::vector'
      params.pop_back();
      ^~~~~~~~~~~~~~~~~
source/utils/pistache/src/server/router.cc:265:7: warning: Method called on moved-from object 'splats' of type 'std::vector'
      splats.pop_back();
      ^~~~~~~~~~~~~~~~~

Will try to address later, if I have time.

@win32asm Hello, looks like that warnings in router.cc are false positive, do you agree with me?

@dennisjenkins75 I think this issue can be closed.

Confirm, running clang analyzer on latest code shows the issue is fixed.
Thanks, @hyperxor, @dennisjenkins75 !


YARN-10320.Replace FSDataInputStream#read with readFully in Log Aggregation

Description of PR
Replace FSDataInputStream#read with readFully in Log Aggregation

JIRA : YARN-10320

How was this patch tested?
Current Units are checking the change
For code changes:

[x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 40s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
38m 28s

trunk passed

+1 :green_heart:
compile
1m  7s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
1m  0s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
0m 58s

trunk passed

+1 :green_heart:
mvnsite
1m  6s

trunk passed

+1 :green_heart:
javadoc
1m 13s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
1m  3s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
2m  9s

trunk passed

+1 :green_heart:
shadedclient
21m 38s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 46s

the patch passed

+1 :green_heart:
compile
0m 49s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
0m 49s

the patch passed

+1 :green_heart:
compile
0m 44s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
0m 44s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 34s

the patch passed

+1 :green_heart:
mvnsite
0m 42s

the patch passed

+1 :green_heart:
javadoc
0m 46s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
0m 46s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
1m 46s

the patch passed

+1 :green_heart:
shadedclient
20m 47s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
4m 58s

hadoop-yarn-common in the patch passed.

+1 :green_heart:
asflicense
0m 52s

The patch does not generate ASF License warnings.

103m  7s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4486

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux ff313b24207f 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 5dbead09c4408d80427b2bf1d96da69f59158319

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/1/testReport/

Max. process+thread count
559 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Thanks @ashutoshcipher  for the patch. There is one more reference to read() at 804. Can you validate that as well.
  int actualLength = checksumFileInputStream.read(b);

Thanks @ashutoshcipher for the patch. There is one more reference to read() at 804. Can you validate that as well.
 int actualLength = checksumFileInputStream.read(b);

Thanks for pointing it out @PrabhuJoseph - I have made the changes. Thanks.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 51s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
42m 47s

trunk passed

+1 :green_heart:
compile
1m  2s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
1m  0s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
checkstyle
0m 49s

trunk passed

+1 :green_heart:
mvnsite
0m 58s

trunk passed

+1 :green_heart:
javadoc
1m  5s

trunk passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
0m 56s

trunk passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
2m  5s

trunk passed

+1 :green_heart:
shadedclient
24m 10s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 43s

the patch passed

+1 :green_heart:
compile
0m 46s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
0m 46s

the patch passed

+1 :green_heart:
compile
0m 41s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
javac
0m 41s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 28s

the patch passed

+1 :green_heart:
mvnsite
0m 44s

the patch passed

+1 :green_heart:
javadoc
0m 44s

the patch passed with JDK Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
0m 42s

the patch passed with JDK Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

+1 :green_heart:
spotbugs
1m 47s

the patch passed

+1 :green_heart:
shadedclient
23m 54s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
4m 44s

hadoop-yarn-common in the patch passed.

+1 :green_heart:
asflicense
0m 42s

The patch does not generate ASF License warnings.

111m 44s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/4486

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 62b100924735 4.15.0-175-generic #184-Ubuntu SMP Thu Mar 24 17:48:36 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 8da8aedacdfee5f6df280c40de31352a3084bfc6

Default Java
Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Private Build-11.0.15+10-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_312-8u312-b07-0ubuntu1~20.04-b07

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/2/testReport/

Max. process+thread count
600 (vs. ulimit of 5500)

modules
C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-4486/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Latest Patch looks good, +1. Will commit it.


IOS 10 - Document text garbeled

I have found the following issue on IOS 10 (iPhone 6) that appeared right after the IOS 10 update.
I have PDF documents transformed and displayed with viewer.js in an in app iOS webview but the text appears garbled when in vertical mode (it works well).
The issue does not happen on any other Android webview or mobile simulators. It does not happen when the phone is put in horizontal mode either.
It looks like a CSS letter spacing issue. I unfortunately lack means for debugging because i don't own the iOS app.

We also encountered this problem in our app with iOS 10 too. It looks like something changed in iOS 10 with the rendering of fonts and when combined with the viewer library it sometimes uses a bigger font-size than it should be (in our case, the font was being rendered at 18px when it should have been 12px) and rendering a bigger font in the same amount of space makes it looks squished. After digging around a bit, we managed to find a way around it by getting the viewer to use a different embed strategy when rendering the svg. You can change it by passing it in the options when creating the viewer:
this.viewer = Crocodoc.createViewer(this.ui.fileViewer, {
  plugins: {
    ....
  },
  url: session.urls.assets,
  ...,
  embedStrategy: 3
});

For more details on embedStrategy, here's a snippet of the relevant code:
// Embed the svg directly in html via inline svg.
// @NOTE: NOT CURRENTLY USED -  seems to be slow everywhere, but I'm keeping
//        this here because it's very little extra code, and inline SVG might
//        be better some day?
EMBED_STRATEGY_INLINE_SVG = 3,

We tested this change in iOS in our in-app viewer (using WKWebView), Safari, Chrome and Firefox and it works well. We also tested it with some iOS 9 devices and it worked well there too. However, as the comments above mention, it does feel slower so it's not ideal but it worked for us.

Using 3 as theembedStrategy didn't work for me. However, embedStrategy of 8 seems to work okay.

Oh interesting.... hmm, what kind of documents were you having trouble rendering? Ours was mostly docs, spreadsheets and presentations from both google docs and MS office.

I've been testing with docx.

Thanks for letting us know. We also tested with docx and they seemed okay (both from an exported Google doc and one generated by MS office), so now i'm curious about what the differences are.

I have tried both fixes but none of them worked. It got worse with the second option in fact.
Any other lead ?

I think I found a fix...
Adding -webkit-text-size-adjust: none; to the styles in each  block for the iframed svg layer fixes things.
Some related reading:

https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust
https://bugs.webkit.org/show_bug.cgi?id=84186 (? unsure if this is relevant)
https://trac.webkit.org/changeset/206119 (? unsure if this is relevant, timeline & description seem relevant)

Will work on a patch & update to viewer.js

Sorry guys, thank you for the fix. Which file can i download to try the fix ? The viewer js in the /src dir ?

Updated library is available at (either):

https://github.com/box/viewer.js/tree/master/dist
https://cdnjs.com/libraries/viewer.js

Are you testing on Mobile safari or real iOS webviews ? I don't think it fixes the issue inside an iOs web view app. Not on my end.


Provide me  a Simple Example with Java

Greetings, install this library with some problems in my raspberry pi, for example I had to use:
./gradlew assemble -x signArchives
...
...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:javadoc UP-TO-DATE
:javadocJar UP-TO-DATE
:sourceJar UP-TO-DATE
:assemble
BUILD SUCCESSFUL in 22s
6 actionable tasks: 6 up-to-date
without the above, it generated an error:
:processResources
:classes
:jar
:javadoc
:javadocJar
:sourceJar
:signArchives FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':signArchives'.

Cannot perform signing task ':signArchives' because it has no configured signatory

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 12m 55s
7 actionable tasks: 7 executed
However someone could provide me with a simple example of how to use it in java.
thank you.

Hi,
you can easily include this library in Java by using Maven as a project and build management system.
Within a Maven-based project, you have to create a pom.xml file and include the rpi-ws281x-java dependency as follows:
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>rpi-ws281x-java-test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>com.github.mbelling</groupId>
            <artifactId>rpi-ws281x-java</artifactId>
            <version>2.0.0</version>
            <type>pom</type>
        </dependency>
    </dependencies>
</project>

Then, in a newly created Java class, you can instantiate an object of the Ws281xLedStrip class, something like this:
import com.github.mbelling.ws281x.Ws281xLedStrip;
// ...
Ws281xLedStrip strip = new Ws281xLedStrip(4, // led count
                18, // GPIO pin, must support pwm
                800000, //frequency
                10, //DMA, see also https://github.com/jgarff/rpi_ws281x/issues/224
                maxBrightness, //brightness
                0, //pwm channel, GPIO 18 supports PWM0
                false, //invert
                LedStripType.WS2811_STRIP_RGB,
                true // clear on exit
        );
// switch on LED 0 with RGB values:
int pixelIndex = 0, r = 100, g = 200, b = 100;
strip.setPixel(pixelIndex, r, g, b);
strip.render();

I would suggest looking into the comments of that class: https://github.com/rpi-ws281x/rpi-ws281x-java/blob/master/src/main/java/com/github/mbelling/ws281x/Ws281xLedStrip.java to get an idea of what it can provide you with.


OperationOutcome "Patient // OperationOutcome.Location is deprecated, please use OperationOutcome.Expression"

Describe the bug
I stored my custom FHIR profile, and even though it stores the profile properly, it is unable to create and validate new resource properly.
FHIR Version?
Stu3/R4/R5
Stu3
Data provider?
CosmosDB/SQL Server
To Reproduce
Steps to reproduce the behavior:

Create Patient Profile structure as given below. Using POSTMAN
x-ms-profile-validation is set to TRUE
POST {{fhirurl}}/StructureDefinition

Body
{
  "resourceType": "StructureDefinition",
  "url": "http://cihi.ca/fhir/nsir/StructureDefinition/TutorialPatient",
  "name": "TutorialPatient",
  "status": "draft",
  "fhirVersion": "3.0.2",
  "kind": "resource",
  "abstract": false,
  "type": "Patient",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Patient.identifier",
        "path": "Patient.identifier",
        "min": 1
      },
      {
        "id": "Patient.name",
        "path": "Patient.name",
        "min": 1
      },
      {
        "id": "Patient.gender",
        "path": "Patient.gender",
        "min": 1
      }
    ]
  }
}

Create new Patient

{
    "resourceType" : "Patient",
    "meta" : {
        "profile":[
            "http://cihi.ca/fhir/nsir/StructureDefinition/TutorialPatient"
        ]
    },
    "birthDate": "1950-01-02",
    "gender": "male",
    "identifier": [
        {
            "system": "http://example.com/something",
            "value": "test"
        }
    ],
    "name": [
        {
            "use":"official",
            "given": ["ABC"],
            "family": "DEF"

        }

    ]
}

Expected behavior
Once you create, it should give you below
{
    "resourceType": "Patient",
    "id": "25b4123e-4123-48c1-9e84-9605cef78ea3",
    "meta": {
        "versionId": "1",
        "lastUpdated": "2023-02-13T21:48:40.303+00:00",
        "profile": [
            "http://cihi.ca/fhir/nsir/StructureDefinition/TutorialPatient"
        ]
    },
    "identifier": [
        {
            "system": "http://example.com/something",
            "value": "arjun"
        }
    ],
    "name": [
        {
            "use": "official",
            "family": "DEF",
            "given": [
                "ABC"
            ]
        }
    ],
    "gender": "male",
    "birthDate": "1950-01-02"
}

Actual behavior
When I try to create new Patient, I receive this error
POST {{fhirurl}}/Patient
{
    "resourceType": "OperationOutcome",
    "id": "31a5faf4ba6c5f8b5777be0a9eb836be",
    "meta": {
        "lastUpdated": "2023-02-13T22:03:37.6992072+00:00"
    },
    "issue": [
        {
            "severity": "error",
            "code": "incomplete",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "4000"
                    }
                ],
                "text": "Unable to resolve reference to profile 'http://cihi.ca/fhir/nsir/StructureDefinition/TutorialPatient'"
            },
            "location": [
                "Patient // OperationOutcome.Location is deprecated, please use OperationOutcome.Expression"
            ],
            "expression": [
                "Patient"
            ]
        }
    ]
}

After hitting POST second time, the new patient is created.
Same is happening when I try to validate.

@LTA-Thinking could this be related to caching?

@brendankowitz yes, I think this is due to caching.
@arjun8001, does this deployment have multiple instances? If it is one of our managed offerings it does. The instances poll the database for new definitions every 10 minutes. It looks like the request that failed hit an instance that hadn't picked up the new definition yet, while the successful request hit the service that created the definition and was updated at that time. Does the new definition work reliably after waiting a few minutes?
@feordin, does this sound correct?

@LTA-Thinking
The new definition was picked up.

I made the definition.
Made a request to create tutorial patient- rejected
Made a request to create tutorial patient- accepted
Made a request to create tutorial patient- rejected
Made a request to create tutorial patient- accepted

below are the two services that I created one is for R4 and one is for STU 3 and I have been using for STU3

@arjun8001 - is this issue resolve, can we close the issue?

@EXPEkesheth ,
It is not resolved. I have been waiting to hear from you guys.

Hi @arjun8001
Sorry for the delay. We are aware of some users having issues with the polling not picking up new Profiles on instances they weren't created on. My question, and I believe Ketki's follow up, was trying to find out if the issue persisted after some time had passed. This will help us determine if you are being affected by the known bug, or if the polling worked correctly for you but just is taking too long.

Thanks for providing information. We have added this in backlog for further investigation.
AB#98127

We have also noticed the same issue. Based on our logs, this seems to have started to occur on 2023-02-15, and has been happening sporadically since.
The error reported in details.coding[0].text is always "Unable to resolve reference to profile '{profile_url}'". The profile resources definitely exist on the server, and the validation process works before and after the "issue" is seen in the logs.
Any update on this issue is appreciated as we have disabled profile validation on some services as a workaround for this problem.
FHIR Version?
R4
Data provider?
CosmosDB
{
    "resourceType": "OperationOutcome",
    "id": "a8831a235e1c1633109b0177c2c8ceb5",
    "meta": {
        "lastUpdated": "2023-03-01T13:16:44.9637258+00:00"
    },
    "issue": [
        {
            "severity": "error",
            "code": "incomplete",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "4000"
                    }
                ],
                "text": "Unable to resolve reference to profile 'http://hl7.org/fhir/uv/pocd/StructureDefinition/MdsDevice'"
            },
            "location": [
                "Device // OperationOutcome.Location is deprecated, please use OperationOutcome.Expression"
            ],
            "expression": [
                "Device"
            ]
        }
    ]
}

I did have this problem too, what fixed it for me was checking if this folder C:\Users\%USER%\AppData\Local\Temp\FhirArtifactCache-4.3.0....\specification was empty. If it's not, then it's not causing this problem. Otherwise, remove the cache folder and restart.

We are also experiencing the same issue on the managed service. I tried both with a built-in profile (us-core-patient) and a custom profile, both are present in the service. Both validation outcomes give the "Unable to resolve reference to profile ..." error.
{     "resourceType": "OperationOutcome",     "issue": [         {             "severity": "error",             "code": "incomplete",             "details": {                 "coding": [                     {                         "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",                         "code": "4000"                     }                 ],                 "text": "Unable to resolve reference to profile 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient'"             },             "location": [                 "Patient // OperationOutcome.Location is deprecated, please use OperationOutcome.Expression"             ],             "expression": [                 "Patient"             ]         }     ] }

Thanks for reporting the issue . Backlog feature [#105394]

We are experiencing the same issue with the OSS version running as an App Service. We cannot make use of $validate due to this issue. Is there an expected fix date?


Docker build error

Hi there,
I am trying to deploy this service to Google Cloud Go as docker container but I can't build the project locally.

Your help is greatly appreciated!

Hi @StevenKnoop,
On Windows, the binary generated by Go is likely hugo-mx-gateway.exe (i.e. with .exe extension vs no extensionon on Linux), you may have to update the Dockerfile accordingly.
R.

Thank you for your reply @rchakode
Sorry I didn't declare that I am using Windows CMD to build this image. I tried adding the ARG Variables to the Dockerfile but I get the same error except this time step(2/6) is cancelled.

This is the updated Dockerfile:
FROM alpine:3.11.6

ARG GOOS="linux"
ARG GOARCH="amd64"

ARG RUNTIME_USER="mxgateway"
ARG RUNTIME_USER_UID=4583

RUN addgroup -g $RUNTIME_USER_UID $RUNTIME_USER && \
    adduser --disabled-password --no-create-home  --gecos "" \
    --home /app --ingroup $RUNTIME_USER --uid $RUNTIME_USER_UID  $RUNTIME_USER

COPY entrypoint.sh bin/hugo-mx-gateway  LICENSE /app/
COPY templates /app/templates

RUN chown -R $RUNTIME_USER:$RUNTIME_USER /app

WORKDIR /app
ENTRYPOINT ["sh", "./entrypoint.sh"]

Your input would be appreciated.

Check the binary generated in the bin directory after the build

The bin folder was always empty after builds.
Mr @ruanbekker was a great help, he supplied me with the following information to successfully build the image locally on Windows.
Add these variables to your environment(Dockerfile):
ARG GOOS="windows"
ARG GOARCH="amd64"
ARG GO111MODULE="on"

And run this command to generate the binary in the bin folder
go build -a -tags netgo -ldflags '-w="-static"' -o .\bin\hugo-mx-gateway -v -buildvcs=false
Thank you to @rchakode, @ruanbekker and @sn for all the help


Add method in tenant manager to retrieve tenant by organization id.

Purpose

Adding a new method to retrieve tenant using the associated organization id.

required functionality is added via https://github.com/wso2-extensions/identity-organization-management/pull/52


[Test-Proxy] Propagate more detail for proxy exceptions

When using an old endpoint in Record mode, I just get back a 500 from the test proxy. I can see in the proxy error output, that there was an HttpRequestException - No such host is known.
Can we include this exception in the response?
      Connection id "0HMDA5RCFFRRC", Request id "0HMDA5RCFFRRC:00000002": An unhandled exception was thrown by the application.
      System.Net.Http.HttpRequestException: No such host is known. (joloveventgridcloudevent-topic.westus2-1.eventgrid.azure.net:443)
       ---> System.Net.Sockets.SocketException (11001): No such host is known.
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
         at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
         at System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext context, CancellationToken cancellationToken)

/cc @scbedd

Closing in favor of https://github.com/Azure/azure-sdk-tools/issues/2328


1412 - Number of Good Pairs

Description of the Problem
Given an array of integers nums.
A pair (i,j) is called good if nums[i] == nums[j] and i < j.
Return the number of good pairs.
Example 1:
Input: nums = [1,2,3,1,1,3]
Output: 4
Explanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.
Example 2:
Input: nums = [1,1,1,1]
Output: 6
Explanation: Each pair in the array are good.
Example 3:
Input: nums = [1,2,3]
Output: 0
Constraints:
1 <= nums.length <= 100
1 <= nums[i] <= 100
Code
class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:

Link To The LeetCode Problem
[LeetCode]https://leetcode.com/problems/number-of-good-pairs/)

I would like to be assigned to this.


⚠ SkipTheCommericals has degraded performance

In 08a48ab, SkipTheCommericals ($STC) experienced degraded performance:

HTTP code: 200
Response time: 1684 ms

Resolved: SkipTheCommericals performance has improved in 9627b00.


ensure standalone binary can work without embedded cache

          The problem is that I am running the PyInstaller locally to test if the new binja backend works. If I run the PyInstaller command without generating the rule cache first. The generated executable will complain the rule cache is missing when I run it. Note, I added the above code snippet in the section `3. Compile binary using PyInstaller`

Originally posted by @xusheng6 in https://github.com/mandiant/capa/pull/1343#discussion_r1126428957

@williballenthin @mr-tz do you think we can use exec_statement from PyInstaller.utils.hooks in to cache the ruleset (using capa.rules.cache.cache_ruleset) before proceeding to build the executable? Would that be optimal?

.github/workflows/build.yml:55 already builds the cache and embeds it into the standalone binary.

ah i see so move that configuration into the PyInstaller to ensure the step can't be missed. neat!
yeah i think this is reasonable to try

nice, note the note:

As of v5.0, usage of this function is discouraged in favour of the new PyInstaller.isolated module.


Typo thing - grid element

We have a typo in this line. Dunno what is witdh  but think it may be width.

PR 😉


Merge op ufm 2

Description

Repeat of PR-3 however without squash merging, to preserve git history

Metadata

Fixes #devinfra-126

Weird diff, I was trying to restore history, going to close for now


1 paste requires 2 undo operations to revert

VSCode Version:  1.52.1
OS Version: MacOS 10.15.7

Steps to Reproduce:

Copy a single line of code which is within other code (ts, html, doesn't seem to matter, as long as there is indentation) - example: </div> which is within another div
move to end of line, press enter (cursor will be aligned under first div), and paste, now it's: </div> (new line) </div>, with second one aligned with last open <div>
press cmd-Z - the new </div> does not go away, instead it becomes aligned with the first one
press cmd-Z again. Now the second </div> goes away

I would expect 1 undo would take me back to how the editor existed before I pressed cmd-v. But it appears that the auto-indenter is adding its own memo to the stack, and the editor's undo operation does not recognize that they are together.

Does this issue occur when all extensions are disabled?: Yes

Do you have the format on paste setting enabled?
Like you mentioned, the paste and format are probably being treated as separate modifications.

I looked that setting up, and no it was not set.
I tried with and without that setting, and sometimes it needs one undo, and sometimes two. It depends on what content I'm copying and pasting. It's pretty erratic.

This sounds like it is caused by "editor.autoIndent": "full" (the default). The idea is that text that is pasted and differs in indentation to your code gets "auto indented" to the right indent level for you. You can turn this off via "editor.autoIndent": "advanced" for example.

I think the question is, should the paste action take up multiple events in the undo stack?  When pasting, I can see how it would make sense to a user that it is only one single action and should be undone with one command.

Well, the problem is that by default, in vscode, paste can lead to an extra step after pasting caused by adjusting indentation. This extra step could produce undesireable effect, and it can therefore be undone separately. It is similar in thinking to format on paste, but it is indentation auto-adjust on paste...

I agree that it can be beneficial keeping them separate.
Would this be something that a user setting could be used to control?  If it is enabled, then these side effects would be combined with the previous action.  Then it would only require 1 undo.
How feasible is it to track these side effects and push them into a single undo action?

I personally don't think it is that big of a deal to justify a setting. If there are a lot more people hitting this, then I would add a setting. In my mind, pasting is pasting and adjusting. You can undo once to get the verbatim paste and twice to undo the paste completely.
If we want to add a setting, this can be easily implemented here, by removing the call to this.editor.pushUndoStop(); and instead calling this._editor.popUndoStop() to remove the undo stop introduced by the core paste handler.


Remove games when filtering

Hello! When I see the new "lacks tags" filter, I think of going far: Having the hability of have that for every filter.
For example, when general filtering, if you right-click on "platform/Steam" will show all games that aren't from Steam. And when you are filtering on the actual list, if you right-click on "platform/Steam" will remove from the current filtered list games that are from Steam, leaving all games that aren't from that platform.

Sounds like a good idea, but I'm wondering about the implementation. Maybe there should be an option to invert all of the listed filters? So e.g. a list of filters:

Has never been played
Is on platform
etc.

becomes:

Has been played
Is not on platform
etc.

I'm not quite sure if the default stance of the filters should be changed (e.g. Has never been played would be replaced by Has been played as the default, but Is on platform would remain as it is) and then use the invert filters option. Or maybe the filters should default to whatever is most likely to be the most commonly used case (e.g. I think that people are more likely to look for games that they have not played as opposed to games that they have played, if that is the only criterion). Another example is the Has tag filter, which I think would be used much more than the inverse and thus should remain the default for quick access. Perhaps the invert filters option should be at the top of the list of filters as well to make it quicker to access?
Maybe there should also be an option to invert the current filter stack? So if you've applied a few filters and want the games that are excluded by the filters, then you could just choose this option and the skin will display the games that were excluded by the filter stack.
What do you think?

Maybe there should be an option to invert all of the listed filters at the top-level?

Sounds well enough, with that you can see what will you get, making easier to the people to understand what will happen.

I'm not quite sure if the default stance of the filters should be changed (e.g. Has never been played would be replaced by Has been played as the default, but Is on platform would remain as it is) and then use the invert filters option. Or maybe the filters should default to whatever is most likely to be the most commonly used case (e.g. I think that people are more likely to look for games that they have not played as opposed to games that they have played, if that is the only criterion). Another example is the Has tag filter, which I think would be used much more than the inverse and thus should remain the default for quick access.

I think the same, default state could be the most commonly used case to try to avoid unnecessary clicks (IMO "Has tags", "Has never been played", "Is not installed", "is on platform" and "Random game"). By the way, just a funny idea I get, maybe Random game could remove a random game when inversed? :joy:

Perhaps the invert filters option should be at the top of the list of filters as well to make it quicker to access?

I think that's the best way, yes. It would be more used than "clear filters" or "cancel", so seems logical placed it on first place. Other option I think is doing that when you right click on "filter" title, and go back to "normal" filter when you left click. With that you can invert filters wherever you are, but I'm not very certain about if it's a good idea.

Maybe there should also be an option to invert the current filter stack? So if you've applied a few filters and want the games that are excluded by the filters, then you could just choose this option and the skin will display the games that were excluded by the filter stack.

Sounds useful indeed!

 I do appreciate the joke regarding Random game, but I labeled them properly to prevent the frustration the suggested behavior might cause if the label didn't change along with the behavior.

I just tested and seems to work like a charm! Thanks!


Username /password is incorrect

I can use the mobile number and password to login in Android Panasonic smart app。
but can't bind in hacs. it throw a  username /password is incorrect exception.
why? does sth I miss?

I saw many users from China trying to access their accounts with this component.
Can you confirm you are using this app? This component only works with the account created by this app.
Ref: https://github.com/osk2/panasonic_smart_app/issues/15#issuecomment-1075315514


ngx_http_auth_ldap_module.c:33:18: fatal error: ldap.h: No such file or directory

compile error at debian... he miss a ldap.h file... where i can get it?
`
-o objs/addon/nginx-auth-ldap/ngx_http_auth_ldap_module.o
/home/nginx-addons/nginx-auth-ldap//ngx_http_auth_ldap_module.c
/home/nginx-addons/nginx-auth-ldap//ngx_http_auth_ldap_module.c:33:18: fatal error: ldap.h: No such file or directory
#include <ldap.h>
^
compilation terminated.
objs/Makefile:1645: recipe for target 'objs/addon/nginx-auth-ldap/ngx_http_auth_ldap_module.o' failed
make[2]: *** [objs/addon/nginx-auth-ldap/ngx_http_auth_ldap_module.o] Error 1
make[2]: Leaving directory '/root/nginx-1.10.2/debian/build-nginx'
Makefile:8: recipe for target 'build' failed
make[1]: *** [build] Error 2
make[1]: Leaving directory '/root/nginx-1.10.2/debian/build-nginx'
`

@nixmomo  did you get any solution to resolve this?
why you closed this issue?

@nixmomo how do you fix it?

I installed libldap2-dev and openldap on the server where I build my nginx deb files.
If you don't resolve it with installing dependencies i can build a deb package if you use Debian or ubuntu

Good work, thanks a lot !
I installed openldap-devel and resolved this problem.
# yum install -y openldap-devel

Unfortunately, I meet a another error in debian7:
src/os/unix/ngx_files.c: In function ‘ngx_write_chain_to_file’:
src/os/unix/ngx_files.c:294:34: error: ‘IOV_MAX’ undeclared (first use in this function)
src/os/unix/ngx_files.c:294:34: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [objs/src/os/unix/ngx_files.o] Error 1
make[1]: Leaving directory `/usr/local/src/tengine-2.2.0'

I have installed libevent-dev, but didn't work.

For builds on Ubuntu need to be installed the following LDAP related packages:
# apt install libldap2-dev ldap-utils


glob expansion for partials search

For my own use, I found it convenient to be able to use glob patterns to specify where to search for partials. As I thought others may like that too, I documented and tested the feature to offer it through this pull request.
This pull request adds options.glob to specify a glob pattern (that will be interpreted by minimatch) to search for partial files.
In the glob pattern, the user may use these variables:

$0 for the whole partial name.
$1 for the directory part
$2 for the basename part

The pattern will by expanded and the first match will be used. If more than one file was matched, a warning will be printed.
This allows a rather intuitive (from my point of view) way to specify more complex search criteria for partial files.
For instance, I don't want to implement my own function (that must also read the files) just to allow any files extension for partials. With this feature, I can simply specify: glob: '$0.*'
Or, even for more complex use cases, I still like writing patterns more. If I have two folders for partials, I can specify: {dir1/$0.ext1,dir2/$0.ext2}

Thanks!


Make issues found exit non-zero (2)

Why 2? Because 1 is used for help string. But this way one can use the tool in a test script (for instance) and have it exit non zero for any issues found.
I did not make it an unsigned long long but rather an unsigned long just for a bit more portability (even though unsigned long long should be fine in 2023) and because it should not matter anyway. I incremented the counter but having it be a short int and just setting it to 1 would also suffice.

Thanks @xexyl

Thanks @xexyl

Happy to help!