Error "Intersection results could not be merged" on array fields in zod 3.8.2

Consider the following example:
const arraySchema = zod.object({
  attachments: zod.array(zod.object({}))
});

console.log(
  arraySchema.and(arraySchema).safeParse({
    attachments: []
  })
);

I would expect a successful output, but the result is a ZodError:
ZodError: [
  {
    "code": "invalid_intersection_types",
    "path": [],
    "message": "Intersection results could not be merged"
  }
]

At the same time a very similar object schema is parsed successfully:
const objectSchema = zod.object({
  attachment: zod.object({})
});

console.log(
  objectSchema.and(objectSchema).safeParse({
    attachment: {}
  })
);

Here is a sandbox with zod 3.
Here is a sandbox with zod 2 which gives success for both cases.

running into this as well

@mmahalwy This issue prevents us from migrating to ver. 3, so the workaround for us is to stay on ver. 2 for now.
However, I assume that the fix should be significantly simple. I guess the issue is located in mergeValues https://github.com/colinhacks/zod/blob/0b7a9837b64cd8af5580424fe09e03d98958d917/src/types.ts#L2051
There's a check that the two values equal, or their types are ZodParsedType.object. But is case of arrays the type is probably different (ZodParsedType.array?).

@colinhacks Would you mind taking a look at the above PR?

oh wow, thanks @azhiv


[EL] Fix default response to HassTurnOn/HassTurnOff

The current default response is "Άνοιξαν τα φώτα στο {{ slots.name }}" ("Lights were turned on in {{ slots.name }}") resulting in nonsensical responses like "Άνοιξα τα φώτα στο καφετιέρα" ("Lights were turned on in coffee machine").
Change this to "Άνοιξε", to mimic what most other languages do.

The current default response is "Άνοιξαν τα φώτα στο {{ slots.name }}" ("Lights were turned on in {{ slots.name }}") resulting in nonsensical responses like "Άνοιξα τα φώτα στο καφετιέρα" ("Lights were turned on in coffee machine").
Change this to "Άνοιξε", to mimic what most other languages do.

This is unfortunately a common/known problem occurring with other languages as well. Your generalization approach makes sense. Just a thought from my side to consider. Maybe the word "Άνοιξα..."/"Έκλεισα..." could be a better fit as this is what HA is supposed to give as its answer.

So first of all, it seems in some languages {{ slot.name }} is included (e.g. English, German), while in others it's not (e.g. French, Dutch). I went for the second option here, but it seems there is no standard way.
Going back to the drawing board, allow me to use the same example: the response to «Άνοιξε την καφετιέρα». What are our options here?

Άνοιξε. (What was implemented here)
Καφετιέρα άνοιξε.
Άνοιξα.
Άνοιξα καφετιέρα.
Άνοιξα την καφετιέρα. (Sounds great, but I'm not sure if it is possible to reuse the article from the prompt?)

So first of all, it seems in some languages {{ slot.name }} is included (e.g. English, German), while in others it's not (e.g. French, Dutch). I went for the second option here, but it seems there is no standard way.
Going back to the drawing board, allow me to use the same example: the response to «Άνοιξε την καφετιέρα». What are our options here?

Άνοιξε. (What was implemented here)
Καφετιέρα άνοιξε.
Άνοιξα.
Άνοιξα καφετιέρα.
Άνοιξα την καφετιέρα. (Sounds great, but I'm not sure if it is possible to reuse the article from the prompt?)

Your point about the lack of a standardized approach is valid. The success of implementation depends on the chosen language and optimizing it for coherent and proper output. Regarding your pull request (PR), I plan to merge it for the general/default output. The 'article' issue is unresolved, a common problem in other languages too. From your list, I prefer the last two options, though I have concerns about the success of the final option's implementation as well (A targeted ML approach would likely be more effective for the future in addressing the linguistic nuances of the affected languages.).


Several JS samples have odd module import practice

In several samples, modules are imported on multiple lines:
const {MessageFactory} = require('botbuilder');
const {CardFactory} = require('botbuilder');

Should look like:
const {MessageFactory, CardFactory} = require('botbuilder');

@ryanvolum - added to our backlog.

Please reopen until bug is resolved.

@ryanvolum - most of these were resolved back in August. The remaining issue in one topic has been resolved. Feel free to open this issue if you find anymore.


Error in the release

I am getting following error when deploying the release. Actually I am using NodeWebkit and making a release using this seed project
Potentially unhandled rejection [2] ReferenceError: Error loading "app/login/login" at file:///C:/Users/ADMINI~1/AppData/Local/Temp/nw9104_8193/dist/app/login/login.js
babelHelpers is not defined

This should be fixed now. Please verify

Thanks @marjan-georgiev  I will check and revert back.


Disable public access for ingestion with governance portal public access: yep or nope?

Hello, thanks in advance for reading! Two things:

Is it possible to restrict access to the Microsoft Purview managed storage account and event hub namespace (for private endpoint ingestion only) but keep portal access enabled for users across the web?
No.

(1) The above guidance appears to be outdated or superseded by a private preview firewall setting called "Disabled for ingestion only (Preview)" that is described in the new catalog-firewall.md page @ 01bc9c7:48
If so, this is a welcome security hardening control that addresses several submissions in the Purview Feedback forum. Nice!
(2) The following guidance has a type III error that answers the wrong question:

If public network access is set to Allow, does it mean the managed storage account and event hub namespace can be publicly accessible?
No... These resources are deployed with a deny assignment to all principals, which prevents any applications, users, or groups from gaining access to them.

Actually this is exactly what it means if we are talking about security, and the mitigating control is a firewall

Network access: Contact with one or more functions of a service across a communications network by a user or process. / (NIST)

This is not the first official Azure guide to use the term "public access" when defining contact  OR authentication/authorization depending on context, which confuses all of my colleagues in equal measure:  it hides complexity for a novice and requires careful parsing by an expert to inhibit the standard meaning (access=contact).
It is not my understanding that an RBAC deny assignment excludes/disables all the other authentication schemes for Event Hub (like SAS and Azure AD user tokens) available for public internet users who make freely make contact with the service fabric. If is the case for Purview, a special callout would be helpful.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 640c7d00-d66f-f6ba-28c9-f15395c604d6
Version Independent ID: c8b599db-1bbe-53ee-984e-ac79cbb2d2c7
Content: Microsoft Purview private endpoints and managed vnets frequently asked questions (FAQ) - Microsoft Purview
Content Source: articles/purview/catalog-private-link-faqs.md
Service: purview
Sub-service: purview-data-catalog
GitHub Login: @Zeinam
Microsoft Alias: zeinam

@s4parke
Thanks for your feedback! We will investigate and update as appropriate.

@s4parke
Thank you for bringing this to our attention.
I've delegated this to content author @zeinab-mk, who will review it and offer their insightful opinions.

@s4parke - Thanks very much for taking the time!
I've got a pull request open to resolve the first FAQ question so that it references the preview feature.
I'm following up on what security measures are in place for the managed resources so we can clarify this question to provide more accurate security information.

@s4parke -
Thanks again for your patience. You're quite right that RBAC deny assignment does not exclude/disable all the other authentication schemes for Event Hub (like SAS and Azure AD user tokens) available for public internet users who make freely make contact with the service fabric.
The deny RBAC prevents any principal (internal or external users) except the Purview account from accessing the manages resources with RBAC authentication schemes.
I will update the language from 'publicly accessible'. I can see how that would cause confusion.

You should see these doc updates by tomorrow morning at the latest!
If you have any other questions, or if any other clarification is needed, reach out again anytime!
Thank you!

#please-close

Thanks so much! I really appreciate it. On Mar 13, 2023, at 4:14 PM, Whitney Henderson @.***> wrote:
@s4parke -
Thanks again for your patience. You're quite right that RBAC deny assignment does not exclude/disable all the other authentication schemes for Event Hub (like SAS and Azure AD user tokens) available for public internet users who make freely make contact with the service fabric.
The deny RBAC prevents any principal (internal or external users) except the Purview account from accessing the manages resources with RBAC authentication schemes.
I will update the language from 'publicly accessible'. I can see how that would cause confusion.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>


po2json handles braces wrong.

In the german po file:
msgid "Your login for {event_name}"
msgstr "Zugangsdaten für {event_name}"

The resulting JSON:
"Your login for {event_name}":"Zugangsdaten für \\{event_name\\}"

Maybe related to https://github.com/mikeedwards/po2json/pull/78.
Breaks stuff here: https://github.com/OpenSlides/OpenSlides/pull/4177
Visible in Openslides: settings->participants->email->help texts for message body and subject.

po2json is no longer used


Fix various device clock quirks

As discussed on the Megaton Hammer Discord server, this PR addresses various implementation quirks for device clocks.
First of all, the clock initialization routine used to be completely broken just because of a very unfortunate mask mismatch in the Clock.set_reset method. I noticed that through writing to the I2C MMIOs, which hung the SoC for me - a clear indicator that the I2C clock was down at this point, though it should've actually been enabled. As a logical consequence, I suppose this holds true for any other clock as well.
Second, it may happen in rare cases that a device clock gets taken out of reset, before it is even enabled, which might bring us back to what I stated before. That's why every other clock now gets an additional 2 microseconds after the MMIO write to the enable register, before it is taken out of reset.
And last but not least, the KFUSE clock doesn't seem to follow the rules as all other clocks. It takes additional time to commit the changes written to the MMIOs, so I added additional usleeps, when KFUSE is being initialized.

Also, looking at the UART code, this FIXME might be related to this issue.


Add required directories for actions and update-deps action

Description

@stacietaylorcima had requested a PR to automate updating of new team repos so that mentors don't have to run npm update and push any changes manually.
This PR introduces a GitHub action that runs npm update in a new repo that is generated from this template repo.
This workflow has one job - npm-update. It will only run when the new repo's main branch is created.
This is what happens when this workflow runs:

GitHub creates a virtual machine and installs macos.
Another action from the marketplace called checkout runs which checks out the newly generated repo into the virtual machine.
The marketplace action setup-node installs Node.
npm update is run.
The .github is untracked from Git.
The deletion of .github and any updates to package-lock.json are added and committed.
The changes are pushed from the virtual machine back to the main branch of the new repo.

The .github directory is removed from the new repo because it has nothing to do with what the team is working on so it's just noise.
@mxmason has a PR open and approved that moves some dependencies into devDependencies. If that is merged into main the --dev flag should be added to the workflow's npm update command so that those dependencies are included in any updates that may take place.
Testing Steps / QA Criteria
I'm not totally sure of the best way for reviewers to test this. I think that forking this repo and testing the creation of new repos from the template may be the simplest.

Fork https://github.com/skillitzimberg/smart-shopping-list to your GitHub account.
From your fork, click the Use This Template button.
Name the new repo you are generating from the template.
Click the Create repository from template button.
Once the new repo is generated, go to the Actions tab.
To view logs from the steps being run in the action, click the update-deps workflow.

Sometimes npm update can take a while, just like it can on your own computer and the GitHub ui can hang up. Just refresh the page or come back to it in a few minutes.

I decided that the GH Actions was the best way to handle this because while Dependabot can keep the deps up-to-date, it will create PRs that someone will have to go through and merge. Or you can set up a GH Action to automate the merging of those PRs, so this solution just seemed simpler.


Encrypted images

Hi,
First of all thanks for the great work!
We're starting to use encrypted image files and we're wondering what the best way would be to allow some processing(decryption) of the downloaded images.
Ideally we could hook into the download and cache mechanism to receive a byte array of the downloaded data, process it and then return it to the cache to be persisted in plain-text.
A possible solution would be to allow developers to provide their own implementation of IDownloadCache, either when initializing FFImageLoading or through IoC. Btw, does FFImageLoading use IoC?
Another, less flexible but simpler solution, would be to allow developers to provide a function when initializing FFImageLoading, that performs some processing on the downloaded byte array and then returns it, e.g.  Func<byte[], byte[]>.
What do you think about this and do you already have plans to support a scenario where the images are encoded?

Good news! It's already possible to provide your own IDownloadCache.
Please have a look at https://github.com/molinch/FFImageLoading/wiki/Advanced-Usage

Hi Fabien,
Thanks for the quick reply.
I wasn't aware of that. After looking into it for a few minutes it seems indeed that it is possible to do exactly what we want.
For the record: Call ImageService.Initialize(customConfig), where customConfig is an instance of Configuration that has a reference to a custom implementation of IDownloadCache.
Thank you again and from our point of view this issue can be closed.


Faviconfix

Related Issue
Fixes:  #1836
Description
Favicons fix in pages which has not proper links and also correct path in booklistswap.html
before

After

Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Checklist:

[x] I have made this change from my own.
[x] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@RitiChandak @anuragverma108 @huamanraj @RishabhDhawad Please check it and merge!


Pass Uint8List to Pointer

Hi there,
I have a C function with the Following signature
bool sendFrame(int width, int height, int channelNumber, void *data, bool clone);

data here being a raw image.
My ffi function signature is:
  final int Function(int, int, int, Pointer<Void>, int) rPPGSendFrame = rPPGLib
      .lookup<
          NativeFunction<
              Int32 Function(
                  Int32, Int32, Int32, Pointer<Void>, Int32)>>("sendFrame")
      .asFunction();

(the bools have to be converted to ints because the bool type is not supported yet (right?))
I'm trying to call this method from dart with a Uint8List coming from a frame of the camera stream https://pub.dev/documentation/camera/latest/camera/Plane-class.html but I'm not sure how to convert/allocate my Uint8List to void *
Any idea?
Cheers!

 So, you'll have to convert it into a pointer into the C heap.
  Uint8List list;
  final pointer = allocate<Uint8>(count: list.length());
  for(int i = 0, ...){
    pointer[i] = list[i];
  }
  final voidStar = pointer.cast<Void>();
  // function call
  free(pointer);

@theochampion, does this work for you?
I'll close this issue, please reopen if need be.

@dcharkes I am trying to get image data copied as a pointer and pass it to a opencv c++ function using dart ffi. Could you give me a hint of how to make it work?
TIA

@muck27 could you give more details.
P.S. Feel free to open a new issue rather than reusing an old one if you have a different problem.

Also from which package allocate is coming from?

This package. package:ffi.

Because list.length() is changed to list.length

Must have been a typo on my side. It is indeed a property: https://api.dart.dev/stable/2.17.5/dart-core/List/length.html

Note for people coming across this issue:

If you can get the memory in C to begin with (instead of a Uint8List in the Dart heap), that would avoid copying all together.
Exposing a mem-copy API from Uint8List to Pointers is tracked in https://github.com/dart-lang/sdk/issues/43968.


Chat room randomly disconnects / splice method doesn't exist?

Error message says something about "breaking the rules of hooks".
Also, it says the method "splice" for useColorScheme.splice doesn't exist. Maybe you could look into that? I uncommented it, but it is in the removeUser method in chatUsers.js.

I need more context regarding the first issue at hand... when does that happen? Have you tried restarting the server? It might be because we're not disconnecting users from the socket. It might also just be a result of modifying the front end while both the frontend and backend are running on localhost (it happened to me a couple of times). With regards to the latter error, that is just a typo. The splice method should be called on the chatUsers list (I think thats what its called). I sent this all on slack this morning (Just figured I'd let you know in case you're not getting the notifications again).

I need more context regarding the first issue at hand... when does that happen? Have you tried restarting the server? It might be because we're not disconnecting users from the socket. It might also just be a result of modifying the front end while both the frontend and backend are running on localhost (it happened to me a couple of times). With regards to the latter error, that is just a typo. The splice method should be called on the chatUsers list (I think thats what its called). I sent this all on slack this morning (Just figured I'd let you know in case you're not getting the notifications again).

Thanks, that all sounds good. I think it might because of the lack of disconnecting too... we'll figure it out


WslRegisterDistribution failed with error: 0x80070426

Windows Version
Microsoft Windows [Version 10.0.22631.4169]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
No response
Distro Version
Ubuntu
Other Software
No response
Repro Steps
Run wsl --install or wsl --install Ubuntu or ubuntu.
Expected Behavior
Ubuntu Launches Successfully.
Actual Behavior
C:\Windows\System32>wsl --install
Ubuntu is already installed.
Launching Ubuntu...
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070426
Error: 0x80070426 The service has not been started.

Press any key to continue...

Diagnostic Logs
WslLogs-2024-09-13_08-13-28.zip

Same issue as #12030

Not sure what service is off but from what I could find online, these services are running and set to Automatic:

Microsoft Account Sign-in Assistant (wlidsvc)
WSLService

Microsoft Store is working fine and downloading fine.
Not sure if there's something else I need to look for.

thanks for reporting the issue. can you please collect networking logs using instructions at https://github.com/microsoft/WSL/blob/master/CONTRIBUTING.md#collect-wsl-logs-for-networking-issues?
the script will create a zip with name starting with "WslNetworkingLogs"

WSL Networking Logs:
WslNetworkingLogs-2024-09-14_00-18-19.zip

bump. I can't use docker desktop because of this issue.


chore(main): release 1.7.1

:robot: I have created a release beep boop
1.7.1 (2023-07-13)
Bug Fixes

set onSecondaryRateLimit and onRateLimit options (#16) (3d9d6b8)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/stordco/actions-sync/releases/tag/v1.7.1 :sunflower:


Allow to cancel in-flight requests

@sschepens @xetorthio plz review.

I can't set it in the Request structure because the Do function (which creates the underlying http.Request) does receives a pointer reference. As we can't change that then it's not possible to assign new fields to the Request.

Ok. We'll review braking changes to the API for a possible future version


Show result of incremental percent in Kibana

Current OSRM output following log during customization
[info] Cell Update Status(count for levels): (20691,1693,112,5) of (21515,1692,111,4) be updated.  About 96.48% in total.

Which will represent the amount of cells be touched during customization.
During normal condition, all cell will be re-calculated.
During incremental mode, we only re-calculated cell when there is speed update.  Manage amount of cell be touched is helpful to know the performance of customization.
For how to setup ELK env on your local, you could refer to here: https://github.com/Telenav/osrm-backend/tree/master-telenav/docker-orchestration/elk-compose/docker-elk
For how to update Telenav's ELK stack, you could got to this wiki for information: https://spaces.telenav.com:8443/display/map/ELK+for+OSRM+Log+analysis

Loggin on to Kibana(location could be found at telenav wiki) and change to root
Use osrm-test for experiment

Update local logs, copy all logs for Oct/Nov to folder of local-efs-file
cd /home/tnuser/local-efs-file
cp -n ../efs-mount-point/20191* .

Go to folder /etc/logstash/conf.d and open 30-osrm-log.conf
Modify pattern to support new log format

You could use your local Kibana -> dev tools -> Grok Debugger to help you write new decoding rules
For given example

[2019-11-06T23:32:00 UTC] [info] Cell Update Status(count for levels): (20691,1693,112,5) of (21515,1692,111,4) be updated.  About 96.48% in total.

Here could be a grok pattern
\[%{TIMESTAMP_ISO8601:timestamp} UTC\] \[%{LOGLEVEL:log-level}\] Cell Update Status\(count for levels\)\: \(%{NUMBER:level0_updated_cell_cnt},%{NUMBER:level1_updated_cell_cnt},%{NUMBER:level2_updated_cell_cnt},%{NUMBER:level3_updated_cell_cnt}\) of \(%{NUMBER:level0_total_cell_cnt},%{NUMBER:level1_total_cell_cnt},%{NUMBER:level2_total_cell_cnt},%{NUMBER:level3_total_cell_cnt}\) be updated.  About %{NUMBER:cell_update_percentage}% in total.

Decoding result is
{
  "level0_updated_cell_cnt": "20691",
  "level2_updated_cell_cnt": "112",
  "level0_total_cell_cnt": "21515",
  "level2_total_cell_cnt": "111",
  "log-level": "info",
  "level1_updated_cell_cnt": "1693",
  "level3_updated_cell_cnt": "5",
  "level1_total_cell_cnt": "1692",
  "cell_update_percentage": "96.48",
  "timestamp": "2019-11-06T23:32:00",
  "level3_total_cell_cnt": "4"
}

Update pattern in the file of 30-osrm-log.conf

      if "_grokparsefailure" in [tags] {
         grok {
             match => { "message" => "\[%{LOGLEVEL:log-level}\] Cell Update Status\(count for levels\)\: \(%{NUMBER:level0_updated_cell_cnt},%{NUMBER:level1_updated_cell_cnt},%{NUMBER:level2_updated_cell_cnt},%{NUMBER:level3_updated_cell_cnt}\) of \(%{NUMBER:level0_total_cell_cnt},%{NUMBER:level1_total_cell_cnt},%{NUMBER:level2_total_cell_cnt},%{NUMBER:level3_total_cell_cnt}\) be updated.  About %{NUMBER:cell_update_percentage}% in total."}
         }

      }

Upload logs to Kibana (you could find location on telenav wiki)

/opt/logstash-2.2.2/bin/logstash -f /etc/logstash/conf.d/30-osrm-log.conf

Go to Kibana check result, please select "osrm-test", and you could seach with "cell_update_percentage".
Current log don't contains "Cell Update Status", I didn't find any result.


Update cli-usage.md

Changed  line 174 "ddev drush launch"  to "ddev launch"
Joanne + Ian (New to DDEV and issue queue)
The Problem/Issue/Bug:
"ddev drush launch"  is not a valid command and will error
How this PR Solves The Problem:
"ddev launch"  is the required command
Manual Testing Instructions:
Run through the D9 quickstart installation instructions, it should complete correctly.
Automated Testing Overview:

Not sure how to automate a test for this
Related Issue Link(s):
N/A
Release/Deployment notes:

Unknown

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


HiveServerException

This might be a existing issue: I see this error often and i believe its related to hadoop process being being interrupted. Is there a workaround for this. Help is much appreciated.
Caused by: HiveServerException(message:Query returned non-zero code: 1, cause: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.RuntimeException: Error while running command to get file permissions : java.io.IOException: java.lang.InterruptedException

Could you please provide a test case/setup to reproduce this error?
best regards
/Pelle

Closing since no feedback received for well over a year.


Method to add service_name to all spans

This commit adds a with_service_name method to PipelineBuilder and Exporter to allow users to set the service name in one place, following the behaviour of the Datadog and Zipkin exporters.
It also sets a default service.name value if the user does not configure one.

I noticed that the doc test for with_trace_config already handles this particular case, but having a method specifically for it would match other exporters, and would also make it possible to supply a default value.

Thanks a lot. I think this makes sense to me. I want to have another look at the spec to remind myself how service.name is supposed to work. Will try to do this tomorrow.

I looked a bit closer now. My thoughts are:

Defaulting to "unknown_service" is good. According to the spec we should handle this in the SDK somehow.

Both the Zipkin and Jaeger exporter should use the service.name from the span attributes. I don't think they do, so they are currently not spec compliant.

For Application Insights we use the service.name to set the Cloud role context tag. As far as I know this tag is optional. But I don't know if there is a best practice around setting this to some default value. If there is, it definitely makes sense to add that here.
Based on this my feeling is that:

We should add the default value for service.name to opentelemetry-rust.

We should fix the Zipkin and Jaeger exporter so they take the service.name attribute into account.

We can add a convenience function to the pipeline builder here to set the service name. I think I would prefer if that would add the service.name to the trace config. But I think this might not work because the resource is behind an Arc.

I'm happy to help with any of those.
What do you think?

Thank you for your detailed reply, and apologies for not replying sooner!

Based on this my feeling is that:

We should add the default value for service.name to opentelemetry-rust.
We should fix the Zipkin and Jaeger exporter so they take the service.name attribute into account.
We can add a convenience function to the pipeline builder here to set the service name. I think I would prefer if that would add the service.name to the trace config. But I think this might not work because the resource is behind an Arc.

I'm happy to help with any of those.
What do you think?

I've talked through this with my coworker who knows more Rust than I do (I'm afraid I'm quite new at it), and he and I can work on rewriting the convenience function for the pipeline builder so that it adds service.name to the trace config.
Based on the specification for resources, it looks like the correct behaviour if someone sets service.name in both with_trace_config and with_service_name is to take the name from the later of the calls, so we'll bear that in mind.
The other two changes (adding the correct behaviour to opentelemetry-rust, and fixing the Zipkin and Jaeger exporters) both sound good, but I'm not sure I have the bandwidth or the knowledge of Rust to help with them.
Would it be okay to implement the spec-compliant default in opentelemetry-application-insights for now, and then move it over to opentelemetry-rust later? I can include that as part of this PR as well.

Hi @isobelhooper, sorry for the delayed response. This looks great, thank you. I'm going to create a new release with this soon.
Regarding the Zipkin/Jaeger changes: don't worry about it. It's cool if you happen to find the time. I'm sure otherwise someone else is going to do it eventually 🙂

I just pushed version 0.14.0. Thanks for working on this! 🙂


Fix link to wallet interface in altcoins.md

The link was pointing to bitcoin/wallet.go which has probably
been moved.
Changed the link to point to OpenBazaar/wallet-interface
repository instead.

Coverage remained the same at 27.604% when pulling 6ad4e0fc73604e111c84e16f68d02827a5436caf on ChluNetwork:fix_link_in_altcoins into ec5267d3bdc1f4099c371ade5b397eaa2f222b80 on OpenBazaar:master.


Since RSSFeedItem has a closed initializer, how can I mock some results when testing?

I'd like to be able to mock my RSS feed for unit testing. How can I provide a mock array of RSSFeedItem instances?

Hi, @ksoftllc
FeedKit doesn't restrict you to async parsing. You could just do:
let feedURL = URL(string: "http://images.apple.com/main/rss/hotnews/hotnews.rss")!
let parser = FeedParser(URL: feedURL)

// Instead of the async closure
let result = parser.parse()

Does this help?
Cheers

Hi, @ksoftllc
You can't, at the time. Look for FeedKit's existing unit tests. That's all we have.
I'll make sure to open the initializers to outside the framework in the near future. For now it will have to wait.
Thanks

Hoping you decide to permit some sort of mocking in the future. I'd like to be able to unit test my code with predictable contents. That rules out using real RSS feeds. I'm going to try using httpbin.org for my testing. Thanks for the quick response.

I will. In the meantime, if you're considering httpbin.org, maybe have a look at the BaseTestCase class. You could just provide the file locally, if that helps.

Hi, @ksoftllc.
The commit above should have fixed it. I'll still have to release a new version, but in the meantime, if you point your dependencies manager to the master branch, it should work fine.
I'll close this for now. Mock away 😃
Thanks


home-assistant is stuck

Home Assistant Version (eg. 2023.2): 2023.2.3
Ember Mug Component Version (eg. 0.5.0): 0.5.0

Description
It's just stuck. I made a coffee and now home assistant is dead. 100% CPU on one core. pyrasite gdb stack trace below
Logs / Errors
Stack for thread<PHONE_NUMBER>
  File "/srv/homeassistant/bin/hass", line 8, in <module>
    sys.exit(main())
  File "/srv/homeassistant/lib/python3.10/site-packages/homeassistant/__main__.py", line 214, in main
    exit_code = runner.run(runtime_conf)
  File "/srv/homeassistant/lib/python3.10/site-packages/homeassistant/runner.py", line 128, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 636, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 603, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1906, in _run_once
    handle._run()
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/srv/homeassistant/lib/python3.10/site-packages/dbus_fast/aio/message_reader.py", line 28, in _message_reader
    process(message)
  File "/srv/homeassistant/lib/python3.10/site-packages/dbus_fast/message_bus.py", line 853, in _process_message
    return
  File "/srv/homeassistant/lib/python3.10/site-packages/bleak/backends/bluezdbus/manager.py", line 858, in _parse_msg
    for device_path, _, on_value_changed in self._device_watchers:
  File "/srv/homeassistant/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 152, in on_value_changed
    callback(bytearray(value))
  File "/srv/homeassistant/lib/python3.10/site-packages/ember_mug/connection.py", line 345, in _notify_callback
    return

This might be unrelated but:
coordinator.py:163 calls self.async_request_refresh() from a non-async method and so it is never awaited:
Feb 08 16:39:40 raspberrypi hass[13542]: /home/homeassistant/data/home-assistant/custom_components/ember_mug/coordinator.py:163: RuntimeWarning: coroutine 'DataUpdateCoordinator.async_reques
t_refresh' was never awaited
Feb 08 16:39:40 raspberrypi hass[13542]:   self.async_request_refresh()
Feb 08 16:39:40 raspberrypi hass[13542]: RuntimeWarning: Enable tracemalloc to get the object allocation traceback

I saw a crash with "too many open files" with this error before but i think you already fixed one occurnence of this bug already, so it might not be related.

Oh, yikes! That's not good! Thank you very much for the all the information.
You are quite right that that is an async function. I changed it and I'll create beta 6. Hopefully that's all it was. Has this happened before? The line of the stacktrace is just a return in a callback, so I don't think it's a problem itself. 🤔

Haha yes you're right I think the stack trace is not entirely useful but it's the best I could do. It seems like something is looping forever without ceding control back to the event loop, but every time I ran the backtrace I just got some innocuous line like, as you say, return...
If that doesn't fix it I think there are other ways to debug something like this, but it requires setting up audit hooks or something ahead of time.

No, it's still very much appreciated. I think you're completely right. If it was running endlessly somewhere it effectively just spit out whichever line it got tired on. I changed it to request the update in the hass event loop, so it shouldn't happen any more.
Has this happened before? I'm just wondering if there's a way to verify if this resolves it or not. If not we can leave it open for a little bit, but I defintely don't want to release the beta if it's crashing Home Assistant.

Hey, sorry I can't really say... I've been messing around a lot with my raspberry pi lately and have had a lot of crashes related to overclocking (which wasn't a problem for years but now is), compiling python 3.10 with the old gcc in Debian 11 (have you ever seen python SIGBUS? 🤣), moving to dbus-broker and possibly some other things I was playing with. I'm also testing changes to other custom components so...
I'm happy to leave it open and keep an eye on it. Let's say if I don't see any crashes by next week we can close it. Don't worry: I drink a lot of coffee.

Haha, no worries. I completely get that. No, I honestly never have. Oh that must not be fun, not a huge fan of Debian for that reason (ancient packages), hopefully it's entertaining at least.
I've had a few crashes of Home Assistant too, that I thought it was related to my unstable VM (that I've been meaning to recreate...), but perhaps it was the same issue.
Thanks! That would be much appreciated. I will too. I think if neither of us have issues by next week we should be OK and I'll release finalize the release. I have more I want to add, but it's never really finished so, need to release it at some point. It can always be fixed later. Haha, perfect, same ☕

# lsof +E -aU -p $(pidof python3.10) indicates the bug.
After running for a few hours, hass has hundreds of unix sockets open. After I remove the ember_mug component and wait 4h, it has 5 (two for logging stdout/stderr, two are an internal socketpair, and one is the dbus bluetooth connection). Unfortunately lsof can't determine the names of the unix sockets, so I can't be sure that the hundreds of open files are dbus connections.
It's possible this is a bug in hass, possibly an interaction with dbus-broker which is recommended instead of dbus-daemon, but I can't report it to them if I can't reproduce it without custom components...

Yeah, it definitely can be more stable, but you always end up needing something up to date and it can get sketchy quick. But I understand.
Oh ok, well that's something.
Oh yikes! Well, that's confirmation that it's related to the integration, then. Thank you very much for your debugging.
I looked through the issues on Bleak and there are a few mentions of similar things occurring when the Bluetooth client is reused. I have noticed it keeps re-connecting, which isn't necessarily bad, but clearly this means something isn't getting cleanup up before establishing a new connection. I didn't have time tonight, sadly, but I'll try and figure this out tomorrow night and/or this weekend.

I am certainly looking forward to Debian 12 :rofl:
OK that makes sense. My mug is normally sitting upstairs and my raspberry pi with its tiny PCB antenna is downstairs, maybe 10m away through wall and floor, so it fails to reconnect often. That could be why I'm seeing this problem so quickly.
If there is anything I can do to help debug further please let me know.

I bet! Shouldn't be too long now.
Oh ok. That makes good sense
I did a lot of testing different things. Rewrote a part of the logic in the python library. I didn't have any issues today, so I created 0.5.0 beta 7.
I'm hoping this does it 🤞
I saw that one other Bluetooth library uses a timeout to cleanup old sessions so it might come to that if this doesn't work.
Thanks! If you don't mind testing beta 7 that would be much appreciated. If it doesn't work I'll try with the timeouts. I'll keep testing it this week too.

Hey, thanks so much for all your hard work!
I've pulled the main branch and it's still leaky. 80 sockets open in an hour...
home-assistant.log

Thanks! It'll be possible to get this sorted soon. It was so much easier before these Bluetooth proxies. (As cool as they are, they are quite problematic)
Damn, thanks very much for testing!
I'm testing with the disconnect timeout in main. Hopefully, it'll work.
Not sure what to try if it doesn't.
The only other thing that seemed to work was extremely agressive, and prevented the mug from switching to new devices, thus prevents proxies from working.

Oh my. Ok, I think I may have found the issue....
I made yet another Beta (8).

Oh my. Ok, I think I may have found the issue.... I made yet another Beta (8).

Testing it now...

It looks good! I think I'm using beta 9... Is this using the timeout solution you mentioned?
(homeassistant) homeassistant@raspberrypi:~/data/home-assistant/custom_components $ while sleep 30; do echo -n "$(sudo lsof +E -aUp $(pidof python3.10) 2>/dev/null | wc -l) "; done
12 12 12 12 12 12 14 14 14 14 7 7 8 8 9 10 9 8 9 9 9 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 13 13 13 16 16 14 14 14 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7

Awesome! Thanks so much for testing!
0.5.0-beta-8 should be the latest.
It does include the timeout fix, that I added in beta-7, but I figured out this morning that that's not the issue... It's something so simple and infuriating. TLDR, all I had to do was remove is True from the conditions to check if it is connected to prevent it from constantly reconnecting....
Details:
I did some digging through bleak and discovered that while the base client declares the property is_connected and being a boolean, however, the bluezdbus client actually returns a special class to warn about deprecations which implements __bool__, but is not a boolean. So, my self._client.is_connected is True was always False and thus constantly reconnecting....
In the end, I don't know if I need to keep the timeout fixes, but I suppose it might be a good safeguard against leaks in future.

I removed the disconnect timer, I'll do one last beta and if there are no issues over the next day or two I'll make the official release of 0.5.0.

Seems to work fine. I've released 0.5.0 so we'll see how it goes. Please feel free to re-open or create a new issue if it comes back, but I think it's fixed. Thanks for your help!

Actually I was going to reply saying the same thing yesterday, but then life got in the way. I actually feel like it's much more reliable now. I get continuous graphs without gaps 😊 thanks so much!

Actually I was going to reply saying the same thing yesterday, but then life got in the way. I actually feel like it's much more reliable now. I get continuous graphs without gaps blush thanks so much!

Awesome, I'm glad! I get that, no worries. Thanks for your help. :)


IDictionary<String,Object> this object is passed in items in data grid, error comes in sorting.

🐛 Bug Report

Converted datatable object to IDictionary<String,Object>, and passed this as an input to fluent data grid values binded properply but sorting is not working.

No repro code, no steps, no version info ==> No help
Follow the template. It is provided for a reason.
You probably need to specify your own GridSort like:
GridSort<Country> nameSort = GridSort<Country>.ByAscending(x => x.Name, StringLengthComparer.Instance);


Expose event and context of Netlify Function in Next.js pages and API routes

When a page is being SSR-ed by a Netlify Function, allow users to access the function's event and context parameters. These can be accessed as a property on the req object in all SSR-ed pages and in API routes:

req.netlifyFunction.event
req.netlifyFunction.context

Example
const Page = () =>
Hello World!
;

export const getServerSideProps = async ({ req }) => {
  // Get event and context from Netlify Function
  const {
    netlifyFunction: { event, context },
  } = req;

  // Access Netlify identity
  const { identity, user } = context.clientContext;

  // Modify callbackWaitsForEmptyEventLoop behavior
  context.callbackWaitsForEmptyEventLoop = false;

  // See how much time is remaining before function timeout
  const timeRemaining = context.getRemainingTimeInMillis();

  return {
    props: {},
  };
};

export default Page;

Use Cases
This allows users to access/leverage Netlify identity for their Next.js page (see https://github.com/netlify/next-on-netlify/issues/20).
It also allows users to modify the callbackWaitsForEmptyEventLoop behavior (see https://github.com/netlify/next-on-netlify/issues/66#issuecomment-719988804).
Fixes #20

@lindsaylevine @ehmicky: Is netlifyFunction the appopriate name for making the event and context objects available on the req object?
I opted for netlifyFunction, because I wanted a name that makes it clear that this is not Next.js behavior and thus won't work on any other platform. But if you think something else would be better, let's change it! 😊 (Best to change it now, because changing it later would probably be a breaking change and require a major version bump.)

PS: Why make the event and context objects available via the req parameter? Because the req and res objects are passed as-is through Next.js to pages and API routes (https://github.com/netlify/next-on-netlify/blob/818cb9196750d8dd06c30157c07b9b169b97064c/lib/templates/renderNextPage.js#L24). We can add any number of custom properties onto the req (or res) object and they will be available to users.

If we're happy with netlifyFunctionParams, this is ready to be merged! LMK and I can do the merging :)

do it!!!


add socketio api

Hi,
I finally got found the time to finish the implementation for the feature discussed here.
I also created a PR for the audiocontrol2 side. Since it might take some time for the PR to be released you might want to test this implementation against a local audiocontrol2 installation. For the tests to succeed you will need a running player that supports next/previous. I used mpd with a few songs in the playlist. Looking forward to hear what you think about it.

This is super :)
If the audiocontrol2 PR gets accepted, no problem on my side accepting this PR

Hi Diogo,
I started to do some refactoring of the homeassistant plugin to use the code from my PR. I realized that I would like to refactor audiocontrol2sio.py to better address the needs of the plugin.
I am uncertain whether you will like that or not. You started this repository as 'Python library to interface with Hifiberry OS API'. This sounds to me like 'general purpose wrapper' of the REST API. At the moment my PR also tries to reflect this. Would you support if I break with this and focus on the needs of the HA plugin?

From HA view point the supporting library should be generic and not focus on HA itself.
This basically means somethings stay in this library and other should go into the HA component itself.
I think the REST API will not go away, just create a new class to interface the SocketIO interface. Then in the component we can switch to that class.

I did not want to suggest to remove the REST API and I of course I put all the new socketio related stuff in a new module/class. What I meant is, if it is OK for you if for example the metadata is not stored as json/dict but instead the Metadata class has corresponding attributes.

That is fine :)
This is a python API, pythonic representation is spot on

Yes
On 25 Mar 2022, 10:00 +0100, schnabel @.***>, wrote:
@schnabel commented on this pull request.

In pyhifiberry/audiocontrol2sio.pyhttps://github.com/dgomes/pyhifiberry/pull/4#discussion_r835072927:

+from socketio import AsyncClient, AsyncClientNamespace
+
+from .consts import DEFAULT_HOST, DEFAULT_PORT
+
+_LOGGER = logging.getLogger(name)
+
+class Audiocontrol2SIO:
+

def init(self, sio) -> None:

   self.connected = False

   self.metadata = Metadata(sio)

   self.player = Player(sio)

   self.volume = Volume(sio)

   self._sio = sio

@willholdowayhttps://github.com/willholdoway do you agree?
—
Reply to this email directly, view it on GitHubhttps://github.com/dgomes/pyhifiberry/pull/4#discussion_r835072927, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABGKGPBNYAATXYTI4VGHBCLVBV6BRANCNFSM5LAI7SGA.
You are receiving this because you were mentioned.Message ID: @.***>


chore: create pull_request_template

I didn't realise you could just add .md to the file. Is this any better?


Error in expected_error.py

Hello,
I noticed a bug in your expected_error.py. In line 70, the loss variable which is supposed to be log/binary is being replaced with a local variable. As a result after the first iteration the if statement does not execute and the loss remains constant. Just change the variable to nloss or something else and it should work.
Thank you,

Also i think you need to take a argmin instead of argmax. And when evaluating loss using refitted_proba, you should exclude the point already being queried to calculate the future loss.

Thanks! These were indeed wrong, I have fixed them. The changes were merged to the master branch!

your refitted_proba should not include x_idx for future loss right ? otherwise your training point is in test too.

Sorry, I have also fixed that but forgot to push the commit :) Now it is pushed and merged to the main branch.


[FAQ] Added FAQ for 'canceled by admin' or a cluster failure in job failure

This PR is a part of the issue: Move FAQs to the GTN (Determining the job failure type) of the Galaxy Hub Repository
Kindly suggest any improvements or amendments.
Thanks to @jennaj for helping me with the content.

I renamed the names and will update the link once the PRs are merged.

Hopefully that is the correct commit type

Great -- the placeholder for the link is good

Once PR #3404 gets merged, I will get the links added, as it has references in every other job failure type!


[LoadBalancerManager:200][redisson-netty-2-48][]Unable to unfreeze entry

redisson version: 3.18.1
redis env: aws elastic cache redis cluster
config as below
clusterServersConfig:
idleConnectionTimeout: 30000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
subscriptionsPerConnection: 5
sslEnableEndpointIdentification: true
sslProvider: "JDK"
pingConnectionInterval: 30000
keepAlive: true
tcpNoDelay: true
nameMapper: !<org.redisson.api.DefaultNameMapper> {}
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
slaveConnectionMinimumIdleSize: 24
slaveConnectionPoolSize: 64
failedSlaveReconnectionInterval: 3000
failedSlaveCheckInterval: 180000
masterConnectionMinimumIdleSize: 24
masterConnectionPoolSize: 64
readMode: "SLAVE"
subscriptionMode: "MASTER"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
dnsMonitoringInterval: 5000
natMapper: !<org.redisson.api.DefaultNatMapper> {}
nodeAddresses: "xxx.xxx.amazonaws.com:6379"
scanInterval: 5000
checkSlotsCoverage: true
threads: 16
nettyThreads: 64
codec: !<org.redisson.codec.MarshallingCodec> {}
referenceEnabled: true
transportMode: "NIO"
lockWatchdogTimeout: 30000
checkLockSyncedSlaves: false
reliableTopicWatchdogTimeout: 600000
keepPubSubOrder: true
useScriptCache: false
minCleanUpDelay: 5
maxCleanUpDelay: 1800
cleanUpKeysAmount: 100
nettyHook: !<org.redisson.client.DefaultNettyHook> {}
useThreadClassLoader: true
addressResolverGroupFactory: !<xxx.xxx.xxx.DnsAddressResolverGroupFactory> {}
there are huge error logs as below
[LoadBalancerManager:200][redisson-netty-2-48][]Unable to unfreeze entry: [freeSubscribeConnectionsAmount=0, freeSubscribeConnectionsCounter=value:50:queue:0, freeConnectionsAmount=0, freeConnectionsCounter=value:64:queue:0, freezeReason=MANAGER, client=[addr=redis://<IP_ADDRESS>:6379], nodeType=SLAVE, firstFail=1674898223183] java.util.concurrent.CompletionException: org.redisson.client.RedisConnectionException: Unable to init enough connections amount! Only 0 of 24 were initialized. Server: <IP_ADDRESS>/<IP_ADDRESS>:6379     at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) ~[?:?]     at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1523) ~[?:?]     at java.util.concurrent.CompletableFuture.allOf(CompletableFuture.java:2409) ~[?:?]     at org.redisson.connection.balancer.LoadBalancerManager.unfreezeAsync(LoadBalancerManager.java:197) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.balancer.LoadBalancerManager.unfreezeAsync(LoadBalancerManager.java:122) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.MasterSlaveEntry.slaveUpAsync(MasterSlaveEntry.java:467) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.cluster.ClusterConnectionManager.addRemoveSlaves(ClusterConnectionManager.java:570) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.cluster.ClusterConnectionManager.checkSlaveNodesChange(ClusterConnectionManager.java:496) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.cluster.ClusterConnectionManager.lambda$updateClusterState$11(ClusterConnectionManager.java:473) ~[redisson-3.18.1.jar:3.18.1]     at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1183) ~[?:?]     at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2299) ~[?:?]     at org.redisson.cluster.ClusterConnectionManager.lambda$updateClusterState$14(ClusterConnectionManager.java:473) ~[redisson-3.18.1.jar:3.18.1]     at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) [?:?]     at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) [?:?]     at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) [?:?]     at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2137) [?:?]     at org.redisson.client.handler.CommandDecoder.completeResponse(CommandDecoder.java:467) [redisson-3.18.1.jar:3.18.1]     at org.redisson.client.handler.CommandDecoder.handleResult(CommandDecoder.java:461) [redisson-3.18.1.jar:3.18.1]     at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:392) [redisson-3.18.1.jar:3.18.1]     at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:205) [redisson-3.18.1.jar:3.18.1]     at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) [redisson-3.18.1.jar:3.18.1]     at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) [redisson-3.18.1.jar:3.18.1]     at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) [netty-codec-4.1.85.Final.jar:4.1.85.Final]     at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) [netty-codec-4.1.85.Final.jar:4.1.85.Final]     at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) [netty-codec-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.85.Final.jar:4.1.85.Final]     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.85.Final.jar:4.1.85.Final]     at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.85.Final.jar:4.1.85.Final]     at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.85.Final.jar:4.1.85.Final]     at java.lang.Thread.run(Thread.java:832) [?:?] Caused by: org.redisson.client.RedisConnectionException: Unable to init enough connections amount! Only 0 of 24 were initialized. Server: <IP_ADDRESS>/<IP_ADDRESS>:6379     at org.redisson.connection.pool.ConnectionPool.createConnection(ConnectionPool.java:104) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.pool.ConnectionPool.initConnections(ConnectionPool.java:92) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.pool.ConnectionPool.initConnections(ConnectionPool.java:77) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.pool.SlaveConnectionPool.initConnections(SlaveConnectionPool.java:30) ~[redisson-3.18.1.jar:3.18.1]     at org.redisson.connection.balancer.LoadBalancerManager.unfreezeAsync(LoadBalancerManager.java:194) ~[redisson-3.18.1.jar:3.18.1]     ... 37 more

Hello sir ,
I am new to open source contribution.
I already know java , my tech stacks & tools includes C, C++ , Python , Java, JavaScript , HTML , CSS , SQL , Bootstrap, ReactJS, ExpressJS, NodeJS & Git . I need a little help from your side to contribute to these amazing projects.

Can you share full stack trace?

... 37 more

Can you share full stack trace?

this is the prod logs, be truncated

@mrniko FYI,anyway thanks first

we need a full stack trace to get the cause

I'm not sure if this is the same or a separate issue, but yesterday I upgraded our Redisson version from 3.17.4 to 3.19.2. We're using AWS Elasticache (cluster mode disabled, engine version 6.0.5), with about 2000 instances of various services using this cluster.
Most of the configuration we're using is on default values, but we toned down the connection pool sizes (for both primary and replicas) a bit.
What we saw was:

millions of logs with Unable to unfreeze entry almost identical to the original post in this issue
CPU usage across entire cluster skyrocketed, which caused more and more instances to timeout when trying to resolve both primary and replicas
almost all GET type commands switched from hitting replicas to hitting primary

I suspect that the GET type commands switched to hitting primary node because the connection pool to replicas. Looking at the AWS metrics dashboard shows the CPU maxing out happened before the GET requests switched
Downgrading back to previous version and rolling it out to production seem to have resolved the issue. There were no other code changes in our deployment, only the Redisson version upgrade. I have never seen this happen before, all other deployments were smooth.
(blue is primary node)

Due to the size of our production environment, the increase was nearly instant on our biggest region, but on our 2nd biggest region it seems to have happened a bit more gradually over a couple of hours (which might point to some leak, of something)
I cannot reproduce this in live production environment with trace or debug level logs in this environment (due to the amount of logs being sent, and it hurting our production environment), but I hope this information was useful. I can provide more screenshots of different metrics if it will help.

"We're using AWS Elasticache (cluster mode disabled, engine version 6.0.5), with about 2000 instances of various services using this cluster.
my production use case very similar to yours, there are about 200 instances connect to a aws redis cluster which contains 64 master and 64 slave nodes
hope helpful

@yinyansheng
Can you try it with 3.17.6, 3.17.7 and 3.18.0 versions?

@ofir-popowski
Can you share connections amount at that moment as well?

@ofir-popowski

millions of logs with Unable to unfreeze entry almost identical to the original post in this issue

Can you share couple of traces?

@mrniko

Can you share couple of traces?

Sadly I do not have any trace level logs available. I can share other (error/warn) level logs if that would help, but stacktrace is identical in all of them, with several different "main" messages: unable to unfreeze entry, unable to add slave, io.netty.channel.ConnectTimeoutException: connection timed out.
The following is the very first error log, at 15:20:27
Unable to unfreeze entry: [freeSubscribeConnectionsAmount=1, freeSubscribeConnectionsCounter=value:50:queue:0, freeConnectionsAmount=21, freeConnectionsCounter=value:64:queue:0, freezeReason=MANAGER, client=[addr=rediss://replica.REDACTED-HOST:6379], nodeType=SLAVE, firstFail=1675610427399]

java.util.concurrent.CompletionException: org.redisson.client.RedisConnectionException: Unable to init enough connections amount! Only 21 of 24 were initialized. Redis server: replica.REDACTED-HOST/REDACTED-IP:6379
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
	at java.base/java.util.concurrent.CompletableFuture$BiRelay.tryFire(CompletableFuture.java:1423)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$0(ConnectionPool.java:155)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at org.redisson.connection.pool.ConnectionPool.promiseFailure(ConnectionPool.java:318)
	at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$6(ConnectionPool.java:277)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at org.redisson.client.RedisClient$1$2.run(RedisClient.java:250)
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.redisson.client.RedisConnectionException: Unable to init enough connections amount! Only 21 of 24 were initialized. Redis server: replica.REDACTED-HOST/REDACTED-IP:6379
	at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$0(ConnectionPool.java:154)
	... 19 common frames omitted
Caused by: java.util.concurrent.CompletionException: io.netty.channel.ConnectTimeoutException: connection timed out: replica.REDACTED-HOST/REDACTED-IP:6379
	at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367)
	at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376)
	at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1019)
	... 11 common frames omitted
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: replica.REDACTED-HOST/REDACTED-IP:6379
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:261)
	at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
	at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:153)
	... 8 common frames omitted

Do you see this message "Hostname: {} has changed IP from" in logs?

No logs containing the string "hostname" at all. There was no node failure that we could see in the AWS dashboards

Can you share connections amount at that moment as well?

Does this issue related to slave nodes only?

Yes I think it was slave nodes only. While master node was under a lot of pressure from the increasing amount of operations, I did not see any errors connecting or working with the master node itself

@ofir-popowski
Can you share your Redisson config?

We're using replicated servers, with 2 nodes, one pointing to the primary endpoint and one pointing to the reader endpoint.
All of our Redisson config values are on default, except for the following:
masterConnectionPoolSize: 10
masterConnectionMinimumIdleSize: 1
slaveConnectionPoolSize: 10
slaveConnectionMinimumIdleSize: 1
timeout: 10000

do you see records below? how many?
"slave: {} is down"
"slave: {} added"
"slave: {} is up"

0 search results for logs with these strings

@ofir-popowski
When does the issue start happening? From the application start?

The deployment with the upgraded Redisson version started at about 15:05. Seeing as it's somewhere between 1500-2000 instances, it took some time for the deployment to finish all of them (about 45 minutes). The first error log was at 15:20.
I do not think it was from application start. If I had to guess, I think each instance starting with the upgraded version put more and more pressure on the replicas, until they started to fail connections

sorry.  downgrade the version is not allowed in prod env

@ofir-popowski @yinyansheng
When does the issue start happening? From the application start?

not from application start, we deploy the service many days and it occurs.
firstly i guess the issue may cause by redis node failover. the error logs disappear after i restart the services

@yinyansheng @ofir-popowski
Can you share logs since application start moment till the first exception?

@yinyansheng @ofir-popowski
Do you see error "slave {} has been disconnected after {} ms interval since moment of the first failed connection" in logs?

@mrniko I would like to apologize and correct a previous mistake. I said there were no logs like these:

"slave: {} is down"
"slave: {} added"
"slave: {} is up"

But I was mistaken. I was looking at ERROR logs only and those seem to be INFO. Yes there are multiple logs like that.
The attached file is a log (in reverse order) from a single pod. It's the very first pod that was started with Redisson 3.19.2

Do you see error slave {} has been disconnected after {} ms interval since moment of the first failed connection or info master {} used as slave in logs?

I do not see the "has been disconnected" in the logs, but there are "used as slave" logs
log.log

Thanks much for the logs.
I see the cause, you specified replica.CACHE-HOST.amazonaws.com as slave which resolved to a single slave out of other slaves in round robin. This is caused slave up/down "slave: [addr=rediss://replica.CACHE-HOST.amazonaws.com:6379] is down"... "slave: replica.CACHE-HOST.amazonaws.com/..43.33:6379 is up".
https://github.com/redisson/redisson/issues/4437#issuecomment-1305253310
With replica.CACHE-HOST.amazonaws.com you won't be able to use all replicas with the same application instance. Hostname resolution in replica mode has been introduced since 3.17.7 version.

@ofir-popowski
To resolve this issue I can introduce scanHostNames setting which will be false by default.

thanks, could you describe the resolve solution in more detail.

@yinyansheng
It's related to replicated servers mode. For cluster mode I need logs since application start moment till the first exception. Can you provide it?

@ofir-popowski
monitorIPChanges setting has been added

Thank you for the quick solution!
I'm not sure I understand what the issue was, and how it was resolved. I'm also unsure how should I decide whether this configuration should be false or true.
I can try it out and let you know if it helped or not.
Additionally, in the meantime, I managed to reproduce the same issue with version 3.17.7

The rise in CPU is from the moment of deploying the 3.17.7 version

he rise in CPU is from the moment of deploying the 3.17.7 version

Hostname resolution during node scan process in replicated mode has been introduced since 3.17.7 version. You need to use 3.17.6 or wait for 3.19.3 release. monitorIPChanges is false by default. So you don't need to change configuration

@yinyansheng
It's related to replicated servers mode only. For cluster mode I need logs since application start moment till the first exception. Can you provide it?

i got these error logs two weeks ago, and after restart services ,  do not occur again

@yinyansheng
I'm closing it then. Let me know if you get it again and please attach the logs next time.

@yinyansheng
I'm closing it then. Let me know if you get it again and please attach the logs next time.

sure thanks for your help

Unable to unfreeze entry: [freeSubscribeConnectionsAmount=0, freeSubscribeConnectionsCounter=value:50:queue:0, freeConnectionsAmount=0, freeConnectionsCounter=value:64:queue:0, freezeReason=MANAGER, client=[addr=redis://<IP_ADDRESS>:6379], nodeType=SLAVE, firstFail=1674898223183] java.util.concurrent.CompletionException: org.redisson.client.RedisConnectionException: Unable to init enough connections amount! Only 0 of 24 were initialized.

This error was fixed in https://github.com/redisson/redisson/issues/4902


Update README.md

Description

Motivation and Context

How Has This Been Tested?

Documentation

CheckList

[ ] PR title addresses the issue accurately and concisely
[ ] Updates Documentation and Docstrings
[ ] Adds tests
[ ] Adds instrumentation (logs, or UI events)

@DeepakBhatt13 hey, do you want to add your team to our user?


Variant openssl is not defined.

I tried to run this command in Mac OS X:
phpbrew install --no-test php-5.3.10 +apxs2=/usr/sbin/apxs +pear +pdo +sqlite +mysql +openssl

But phpbrew show me the error:
Variant openssl is not defined.

My phpbrew version is 1.0.2.

openssl variant is not defined in 1.0.2    :-)


Error in unit tests: Metadata file 'nuget: EducationExtension, -' could not be found

If a unit test loads a teacher notebook with a cell containing '#r nuget: EducationExtension', the kernel will throw a command failed event "Metadata file 'nuget: EducationExtension, -' could not be found."

This issue has morphed into #97


clarify EOL table

Fixes #7775.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/1120807a0d5a7936c0a84037bd4459c40bc1bd2d/
Edited pages:

releases/release-support-policy.md

@yingzhuchin Just want to make sure this CSS addition is ok. Let me know!

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/cd9497d15b8b9adb2475b3d09bdd59358124649c/
Edited pages:

releases/release-support-policy.md

@yingzhuchin Just want to make sure this CSS addition is ok. Let me know!

Thanks, Ryan! Can you add a corresponding change to customstyles.scss as well?

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/28859360a0335b9548e23dec1134d3e4f521a5fc/
Edited pages:

releases/release-support-policy.md


RUSTSEC-2022-0046  - Out-of-bounds read when opening multiple column families with TTL

Affects rocksdb < 0.19.0
See https://rustsec.org/advisories/RUSTSEC-2022-0046
merk issue: https://github.com/nomic-io/merk/issues/62

Waiting on https://github.com/liftedinit/merk/pull/7 to get merged.


Exposes Setting View's camera type

Provide appropriate android API for the same
Fixes #479

@blair1618 want to have a quick look at this one?

Looks good to merge once CI is all green.


istio-sidecar.deb (1.3.3) is not a debian format archive

Bug description
Installing istio-sidecar.deb (1.3.3) is not working with the following error message :
sudo dpkg -i istio-sidecar.deb
dpkg-deb: error: `istio-sidecar.deb' is not a debian format archive
dpkg: error processing archive istio-sidecar.deb (--install):
 subprocess dpkg-deb --control returned error exit status 2
Errors were encountered while processing:
 istio-sidecar.deb

Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[X] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
Package shoud install correctly.
Operation works with the previous version (1.3.2)
Steps to reproduce the bug
$ curl -L https://storage.googleapis.com/istio-release/releases/1.3.3/deb/istio-sidecar.deb > istio-sidecar.deb

$ sudo dpkg -i istio-sidecar.deb
dpkg-deb: error: `istio-sidecar.deb' is not a debian format archive
dpkg: error processing archive istio-sidecar.deb (--install):
 subprocess dpkg-deb --control returned error exit status 2
Errors were encountered while processing:
 istio-sidecar.deb

Version (include the output of istioctl version --remote and kubectl version)
As this is for mesh expansion its out of the scope of any cluster
Environment where bug was observed (cloud vendor, OS, etc)
Debian, on premise

I think this is fixed in 1.4, https://gcsweb.istio.io/gcs/istio-build/dev/1.4-alpha.0039742337ddf3b766ac974e9a7aad003896cfcf/deb/ looks to be the right format.

@howardjohn Thanks !


[Potential Conflict] Wild World

Running this mod alongside Wild World makes this pop up when starting up (on both the client and server):
Method overwrite conflict for setFeatures in betterend.mixins.common.json:GenerationSettingsAccessor, previously written by me.andre111.wildworld.mixin.MixinGenerationSettings. Skipping method.
Here's a direct link to their MixinGenerationSettings.java for reference.

Thank you for report, I will add suffix to function to prevent conflicts

Thank you for report, I will add suffix to function to prevent conflicts

Fixed in 0.8.6

Fixed in 0.8.6


"failed to get proxy infos: unable to find any Istiod instances" when trying to uninstall a revision

Bug Description
Note : asdf below is used to switch to different istioctl CLI version
$ kind create cluster --image=kindest/node:v1.22.9
[...]

$ k version --short
Client Version: v1.22.11
Server Version: v1.22.9

# Use 1.12.9 CLI version
$ asdf global istioctl 1.12.9

$ istioctl version --remote=false
1.12.9

$ istioctl install --set revision=1-12-9 -y
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Installation complete                                                                                Making this installation the default for injection and validation.

Thank you for installing Istio 1.12.

$ k get deploy,svc -n istio-system
NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/istio-ingressgateway   1/1     1            1           65s
deployment.apps/istiod-1-12-9          1/1     1            1           81s

NAME                           TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                                      AGE
service/istio-ingressgateway   LoadBalancer   <IP_ADDRESS>   <pending>     15021:30051/TCP,80:32292/TCP,443:31853/TCP   64s
service/istiod-1-12-9          ClusterIP      <IP_ADDRESS>     <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP        81s

$ istioctl version
client version: 1.12.9
control plane version: 1.12.9
data plane version: 1.12.9 (1 proxies)

# Use 1.13.7 CLI version
$ asdf global istioctl 1.13.7

# Install a canary release
$ istioctl install --set revision=1-13-7 -y
WARNING: Istio is being upgraded from 1.12.9 -> 1.13.7.
WARNING: Before upgrading, you may wish to use 'istioctl analyze' to check for IST0002 and IST0135 deprecation warnings.
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Installation complete
Thank you for installing Istio 1.13.

$ istioctl version
client version: 1.13.7
istiod version: 1.12.9
istiod version: 1.13.7
data plane version: 1.13.7 (1 proxies)

Now trying to uninstall the old revision displays the message failed to get proxy infos: unable to find any Istiod instances and does nothing :
$ istioctl x uninstall  --revision istiod-1-12-9
failed to get proxy infos: unable to find any Istiod instances
No resources will be pruned from the cluster. Please double check the input configs

✔ Uninstall complete

Additional note : If I use the --purge option, it removes all istio resources and that is not what I want (as I am using canary releases and want to only uninstall a revision)
Version
$ istioctl version
client version: 1.13.7
istiod version: 1.12.9
istiod version: 1.13.7
data plane version: 1.13.7 (1 proxies)

$ k version --short
Client Version: v1.22.11
Server Version: v1.22.9

Additional Information

istioctl bug-report
Target cluster context: kind-kind
Running with the following config:
istio-namespace: istio-system
full-secrets: false
timeout (mins): 30
include: {  }
exclude: { Namespaces: kube-node-lease,kube-public,kube-system,local-path-storage }
end-time: 2022-08-22 22:13:22.799293285 +0200 CEST
Cluster endpoint: https://<IP_ADDRESS>:38603
CLI version:
version.BuildInfo{Version:"1.13.7", GitRevision:"0a6c3a4ae3f1f34e7a33dd6a2a4cbdffc8d32daa", GolangVersion:"go1.17.12", BuildStatus:"Clean", GitTag:"1.13.7"}
The following Istio control plane revisions/versions were found in the cluster:
Revision 1-13-7:
&version.MeshInfo{
{
Component: "istiod",
Info:      version.BuildInfo{Version:"1.13.7", GitRevision:"0a6c3a4ae3f1f34e7a33dd6a2a4cbdffc8d32daa", GolangVersion:"", BuildStatus:"Clean", GitTag:"1.13.7"},
},
}
Revision 1-12-9:
&version.MeshInfo{
{
Component: "istiod",
Info:      version.BuildInfo{Version:"1.12.9", GitRevision:"d85042dbcde912bd21e26c19f283414fc6346f9f", GolangVersion:"", BuildStatus:"Clean", GitTag:"1.12.9"},
},
}
The following proxy revisions/versions were found in the cluster:
Revision 1-13-7: Versions {1.13.7}
Fetching proxy logs for the following containers:
istio-system/istio-ingressgateway/istio-ingressgateway-65c4fcff9b-vq2wd/istio-proxy
istio-system/istiod-1-12-9/istiod-1-12-9-df74db6b5-md9tl/discovery
istio-system/istiod-1-13-7/istiod-1-13-7-6c4c8d47d7-db569/discovery
Fetching Istio control plane information from cluster.
Running istio analyze on all namespaces and report as below:
Analysis Report:
Info [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection.
Creating an archive at /home/guillaume/bug-report.tar.gz.
Cleaning up temporary files in /tmp/bug-report.
Done.

@istio/wg-environments-maintainers cc @zirain

istioctl x uninstall --revision istiod-1-12-9

is this a mistake? should be  istioctl x uninstall --revision 1-12-9?

@zirain oh yes you are right ! my command was wrong indeed.
But in this case, a message to inform that the revision I requested (istiod-1-12-9 in my mistaken experiment) is not an installed revision would be nice.
I think it would be feasible as I just discovered during my test to confirm your hypothesis that the revisions list could be displayed by a command :
istioctl x revision list
REVISION TAG      ISTIO-OPERATOR-CR                   PROFILE REQD-COMPONENTS
1-12-9   default  istio-system/installed-state-1-12-9 default base
                                                              istiod
                                                              ingress:istio-ingressgateway
1-13-7   <no-tag> istio-system/installed-state-1-13-7 default base
                                                              istiod
                                                              ingress:istio-ingressgateway

but maybe this suggestion should be in another ticket...?

So maybe the uninstall command could check if the revision is part of this list...?

yes, would you like to send a PR?


Migrating to Bazel 7.0 cause issue with the CC compiler not being found

I'm using this code to generate docker image. It works perfectly on Bazel 6.4.0 but when I run it on Bazel 7.0 I get this error:

ERROR: /private/var/tmp/_bazel_romain/aab898f10bfeb90def8d69f3c9616e24/external/bazel_tools/tools/cpp/BUILD:58:19: in cc_toolchain_alias rule @@bazel_tools//tools/cpp:current_cc_toolchain:
Traceback (most recent call last):
File "/virtual_builtins_bzl/common/cc/cc_toolchain_alias.bzl", line 26, column 48, in _impl
File "/virtual_builtins_bzl/common/cc/cc_helper.bzl", line 219, column 17, in _find_cpp_toolchain
Error in fail: Unable to find a CC toolchain using toolchain resolution. Target: @@bazel_tools//tools/cpp:current_cc_toolchain, Platform: @@//tools/bazel:linux_arm64, Exec platform: @@local_config_platform//:host
ERROR: /private/var/tmp/_bazel_romain/aab898f10bfeb90def8d69f3c9616e24/external/bazel_tools/tools/cpp/BUILD:58:19: Analysis of target '@@bazel_tools//tools/cpp:current_cc_toolchain' failed

load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template")
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_image_layer")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_push", "oci_tarball")

def oci_js_binary_image(name, binary_data, binary_entry_point = None, binary_args = [], **kwargs):
    """Simplify the use of oci_image building properly the associated targets

    Args:
        name: name of this target. used to derive the name of the final targets
        binary_data: list of labels to use in js_binary data field
        binary_entry_point: label of the binary entrypoint
        binary_args: list of arguments passed to the binary when running on the image
        **kwargs: Passed to oci_image.
    """
    js_binary(
        name = "{}_img-bin".format(name),
        data = binary_data,
        entry_point = ":src/index.js" if (binary_entry_point == None) else binary_entry_point,
    )

    oci_js_image(
        binary_target = ":{}_img-bin".format(name),
        binary_args = binary_args,
        name = name,
        **kwargs
    )

def oci_js_image(name, binary_target, binary_args = [], **kwargs):
    """Simplify the use of oci_image building properly the associated targets

    Args:
        name: name of this target. used to derive the name of the final targets
        binary_target: label to use in js_image_layer binary
        binary_args: list of arguments passed to the binary when running on the image
        **kwargs: Passed to oci_image.
    """

    js_image_layer(
        name = "{}_img-layer".format(name),
        binary = binary_target,
        platform = select({
            "@platforms//cpu:arm64": "//tools/bazel:linux_arm64",
            "@platforms//cpu:x86_64": "//tools/bazel:linux_amd64",
        }),
        root = "/app",
        tags = [
            "manual",
        ],
        visibility = ["//visibility:__pkg__"],
    )

    oci_image(
        name = "{}_img".format(name),
        base = "@debian",
        # This is going to be /{root of js_image_layer}/{package_name()}/{name of js_binary}.sh
        cmd = [
            "/app/{}/{}".format(
                native.package_name(),
                Label(binary_target).name,
            ),
        ] + binary_args,
        entrypoint = ["bash"],
        tags = [
            "manual",
        ],
        tars = [
            ":{}_img-layer".format(name),
        ],
        user = "www-data",
        workdir = "/app",
        **kwargs
    )

    expand_template(
        name = "{}_img-stamp".format(name),
        out = "_stamped.tags.txt",
        template = "//tools/bazel:img_tags_tmpl",
        substitutions = {
            "STABLE_BUILD_TAG": "registry.gitlab.com/xxx/{}:latest".format(
                native.package_name(),
            ),
        },
        stamp_substitutions = {
            "STABLE_BUILD_TAG": "registry.gitlab.com/xxx/{}:{{STABLE_BUILD_TAG}}".format(
                native.package_name(),
            ),
        },
    )

    oci_tarball(
        name = "{}_img-tar".format(name),
        image = ":{}_img".format(name),
        repo_tags = ":{}_img-stamp".format(name),
        visibility = ["//visibility:public"],
    )

    oci_push(
        name = "{}_img-push".format(name),
        image = ":{}_img".format(name),
        repository = "registry.gitlab.com/blade-group/dev/cbp-shadow/oidc/{}".format(
            native.package_name(),
        ),
        remote_tags = ":{}_img-stamp".format(name),
        visibility = ["//visibility:public"],
    )

I'm using rules_oci 1.6.0.

Could you test this with --noincompatible_enable_cc_toolchain_resolution? That flag was flipped in 7.0.0.

Hi @mortenmj,
It works perfectly with the flag --noincompatible_enable_cc_toolchain_resolution
Does it means my machine have incompatible cc toolchains ?
I'm on a Apple PC 14" with a M1 (arm64)
I have clang installed  via xcode:
 ✘ romain@MacBook-Pro-de-Romain  ~  clang --version
Apple clang version 15.0.0 (clang-15<IP_ADDRESS>.5)
Target: arm64-apple-darwin23.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

This is not related to rules_oci. Can you file an issue in Bazel instead?


add unit test for 503

Change connection logic so that after an error that is not 403 or 3xx (redirect), we retry find_servers.
Also add unit test for this (code 503).

@bill1600 Please update the CHANGE log


{ACR} Update Storage SDK used for uploading source in ACR

Related command

az acr build
az acr pack build
az acr run
az acr task run
Description

Corresponding PR in azure-cli-extensions repository for containerapp module: https://github.com/Azure/azure-cli-extensions/pull/6313
The az containerapp up command contains multiple flows that call the upload_source_code function to push user-provided application source code to a Storage blob that an ACR Build/Task would then be executed against. However, while writing tests against these flows, I found that an exception was being thrown when the Storage blob client was trying to upload the source, and the exception only ever said utf8. This issue only occurred within the test suite and never with live runs of the command.
I looped in the Storage SDK for Python folks and they recommended updating the Storage SDK from V1 (ResourceType.DATA_STORAGE) to V2 (ResourceType.DATA_STORAGE_BLOB), which is the change being made in this PR (and the containerapp PR linked above). There is still a flow within the az containerapp up command that relies on the acr module and its upload_source_code function directly (through the acr_task_run function), so the intent of this PR is to update the Storage SDK here to re-enable the tests for this containerapp flow in the other repository.
The related commands I listed above are the ones I found that call the upload_source_code function that is being updated, but if there are any other instances that I may have missed, please let me know.
Note: there is another case of this outdated Storage SDK being used in the _stream_utils.py file, but I didn't update the stream_logs function that it's used in as a part of this PR.
Testing Guide

I have live-only tests for the az containerapp up scenario in the other repository's PR, but if there are any tests you'd like for me to introduce in this PR, please let me know (I haven't had a chance to dive too deep into the existing acr test coverage).
History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

ACR

@cormacpayne, please fix the CI error first.

@jsntcy -- just pushed a commit to remove the unused import that was failing style checks 👍

@cormacpayne Could you please re-run some related tests in live mode to ensure this PR change is in line with expectations?

@zhoxing-ms -- Hey Xing, I just refreshed the recordings for existing tests using commands that would be affected by this change. Please feel free to let me know if there's anything else required on my side.


How to update the child item from the parent item ?

Hi everyone,
I have my parent item with a checkbox and i want that when i check the checkbox, the checkbox of the child pass to checked but the problem is that for now i didn't find anything to this, because if i try to access the child in the parent, i will "itemView may not be null", i didn't click on the child for now.
How to update the child item from the parent item ?
Thank you for your help

Hi @MickaelRomaniello,
You'll probably want to do something like the following:

Update your child model to reflect the checked/unchecked state
Get the index of your parent, and the index of your child/children within that parent
Call notifyChildChanged or notifyChildRangeChanged with that information.

This should trigger the views to update if they are displaying, and if not they should be correct when they are bound.


Added Render-Atlanta's Podcast Seriues

Added our Culture & Code podcast to the podcast lineup

Hello @ThugDebugger!
As the podcasts page is no longer maintained I will close this PR as outdated.
Thank you!


font style improvement ,hovering effect and improvement in javascript code

when clicked on search button or random hero button no effect shown when on it.
while clicking on random hero button text in input text remain does not clear

@Prajwal0225  sir i would like to work on this issue
please assign these issues to me


prop-shorthand: Add support for nested arrays

let fooArray;

fooArray = [{
    bar: [false],
    num: 1
}, {
    bar: [true],
    num: 2
}];

Method 1:
fooArray = _.filter(fooArray, (foo) => { // warning: Prefer property shorthand syntax
    return foo.bar[0];
});

console.log(fooArray);

Method 2:
fooArray = _.filter(fooArray, ['foo.bar[0]', true]);

console.log(fooArray); // output = [] (empty array)

method1 shows warning message to use prop-shorthand syntax. While using shorthand syntax in method 2 it returns empty array.

The path in Method 2 is incorrect. Your path foo.bar[0] is looking for object.foo.bar[0]. You just want:
fooArray = _.filter(fooArray, ['bar[0]', true]);

What @jdalton said is correct. The rule works fine.

Thanks @jdalton. Works fine now. 👍

@jdalton now assuming below object. Is there any way to check for truthy (string) values? sorry I didn't see any example of this kind in doc so posting here.
let fooArray;

fooArray = [{
    bar: ["foostring"],
    num: 1
}, {
    bar: [false],
    num: 2
}];

I want to check if string is present or not. below example returns empty array in this case.
filterdArray = _.filter(fooArray, ['bar[0]']); // output: []

When you compare to a value, you can use either _.matchesProperty shorthand or matches shorthand.
The former (and what you asked in the first question) requires an array with a pair of path to value.
The latter requires an object (like the docs for _.matches
What you're trying to use is the _.property shorthand, which does not require an array.
That is:
filteredArray = _.filter(fooArray, 'bar[0]'); // output: [{bar: ["foostring"], num: 1}]

Hope this helps!

Thanks @ganimomer for the clarification. That really helped.


Editor image issues

Background
When working on the Block to Text editor, it was noticed images weren't loading which prevented progress through the steps.
Problems
Problem 1 - editor not loading on block to text branch
As a precursor to all of this, it was noted the editor doesn't load on the block-to-text-integration preview branch
This is due to a CORS error, it seems that the API images route won't allow the domain. Yesterday, I (Conor) updated the ALLOWED_ORIGINS env var to include this domain and rebuilt on staging, but the error persists
Problem 2 - images not loading on production
Scott found these two URLs where images aren't loading

https://editor.raspberrypi.org/en/projects/world-happiness-measures
https://projects.raspberrypi.org/en/projects/mapping-data

Problem 3 - images referenced by local name
Locally, when everything is set up and running, and run Step 7 on block to text (local url), I noticed that the editor was asking for dog.webp which resolved to a localhost URL, instead of requesting this image from editor-api, which would return a rails active storage URL. There is a new environment variable (ASSETS_URL='https://staging-editor-api.raspberrypi.org/') but this didn't seem to do the trick.
For some reason this requests the image name instead of the image URL
Problem 4 - editor can constantly reload
Magda has an issue locally where the editor constantly reloads. @magdalenajadach mind filling this bit in on any symptoms?

Working notes
I am not in Thurs or Fri, so I'm writing down where we are up to
Problem 1 - editor not loading on block to text branch

Visit https://block-to-text-integration.projects-ui.pages.dev/en/exercises/example-exercise
Note that web-component.js loads in dev tools
Press "run" and note that p5.js and p5-shim.js fail to load

it seems that these URLs are https://staging-editor.raspberrypi.org/branches/output_only_wc/shims/processing/p5/p5-shim.js
instead of https://staging-editor-static.raspberrypi.org/.../shims/processing/p5/p5-shim.js
QUESTION: should we be on the output_only_wc branch? I recall hearing we should be using main and that the editor_output_wc branch isn't meant to be merged as the equivalent work has already been done in main

I'm still unclear where the ASSET_URL env var is being set for this deployment: https://github.com/RaspberryPiFoundation/editor-ui/blob/00dbfc27d95434d24d30f8eab0ce7c344d58d644/src/components/Editor/Runners/PythonRunner/PythonRunner.jsx#L46-L47
But yes can confirm that I am seeing the result as being https://staging-editor.raspberrypi.org/... rather than https://staging-editor-static.raspberrypi.org/...
As with Conor's note above, I'm also confused with exactly what the output_only_wc branch is and where it's deployed to (and should it not be main?)
In order to unblock, I've done two things:

Added a page rule here which forwards anything on https://staging-editor.raspberrypi.org/branches/output_only_wc/*/processing/p5/* to https://staging-editor-static.raspberrypi.org/branches/output_only_wc/$1/processing/p5/$2 - this allows p5.js and the shim to be loaded successfully
Added in a Access-Control-Allow-Origin: * response header here, as even when loading the p5 and shim JS using the redirect above, there was a CORS error being returned

These are of course a bit heavy-handed and not meant to be long-term fixes by any means, but do allow https://block-to-text-integration.projects-ui.pages.dev/en/exercises/example-exercise to be run successfully eg.

Just wanted to pop a couple of quick responses here initially:

ASSETS_URL is set in the web component build pipeline, its a little too implicit for my liking but I've never had time to sort it but here it's being set for prod with all other builds falling back to the default value.
ASSETS_URL is needed for the the editor web component to obtain the correct custom libraries and shims. This wasn't needed when we had the interface in the same app as the editor React application because it defaults to the root of the host app but now we're exclusively using the web component its needed all the time.
output-only-wc was a feature branch used to add the required behaviour for the block to text alpha (PR here), it wasn't productionised as is but rather done incrementally, but we've since found out things like the asset-identifier doesn't work. Other than that all the functionality should be in main
Due to using a feature branch (output-only-wc) that predated the editor web component separation the ASSET_URL wasn't set in this build so it'll try and source the Skulpt libraries and shims from the apps root.
With us switching back to main - must've been a manual change because projects-ui using the same web component for the projects x editor integration pages (set in tf here) - the ASSET_URL is not an issue so the page rules aren't needed

Cheers both!
Just a note after working with @sra405 today (Scotts message above literally just came through while typing, so I'll try to be concise):

We managed to find the env var that was set to the output_only_wc thus causing the wrong URLs. This change wasn't reflected in Terraform, so setting this to the default value and rebuilding on GitHub via GitHub actions set the correct URLs.
It then became clear there was an issue (as Scott mentioned above) with the implementation of asset-identifier; despite working originally, somehow this functionality hasn't remained functional as hoped. This meant the project doesn't load images, hence the image errors.
To fix, we instead set the project identifier - this means the project loads both assets and code from bridge-prototype project, with the code immediately being overwritten by the code provided. The aim of separating code and asset loading was to not have to overwrite anything which should make things simpler and more predictable in the future. However it's not essential.
I'll create a ticket for the assets identifier work

This should explain Problem 1 and Problem 3

CSV issues should now be solved with https://github.com/RaspberryPiFoundation/editor-ui/pull/1062 - this appeared initially to be image issues however only impacted specific projects, it turned out these were loading in data or files that weren't properly attached to the DOM for Skulpt to pickup from the shadow DOM 🤦

I've now deleted the temporary page rule and response modifier in Cloudflare (had seen they had already been disabled) 👍

Closing as I believe this is now resolved, and the constant reloading issue doesn't appear to have persisted

Thanks all for your input and help with this!


added owner and group

failed to install on ubuntu-14.02 without owner and group set.

Coverage remained the same at 100.0% when pulling abdef84b588cd9d38d8baefaa699367a64402c7a on franklinwise:patch-zip into 39971a16a01a0aeaa3289767d2e2c6c1ee0e1ab7 on johnbellone:master.

Coverage remained the same at 100.0% when pulling 43bc5e3ecbd6ffd52a3f225cdde090b3adbabde6 on franklinwise:patch-zip into 39971a16a01a0aeaa3289767d2e2c6c1ee0e1ab7 on johnbellone:master.