NPM instructions?

I've searched for eosjs on npm and get a tonne of matches, none of which look official.  the README makes no mention of NPM.  seriously.  can we have instructions for installing this through NPM please?

It's on the front page of the doc site, which is the first link on the GH page.

We have removed the installation instructions on NPM in favor of Yarn for the 20.0.0 RC, but @tbfleming still makes a valid point as to the current location of NPM installation instructions.  Here is the direct link to the package on NPM... it is odd that it doesn't come up when you search eosjs, but if you let the autocomplete list populate below the search bar it will take you directly there.
For future reference, Yarn simply pulls from the NPM registry so if the README states yarn add eosjs that is equivalent to npm install eosjs.  Please let us know if you have any further issues and try to maintain a positive attitude; we're only here to help out.

sorry, not trying to be caustic and thank you for educating me as to the npm/yarn equivalence.  I don't understand why the NPM instructions would have been pulled from the homepage as that implies to the uneducated that it is necessary to install yarn (which I didn't want to have to do and the reason for my disagreeable tone). in any case, there's a large user base for NPM out there and having an extra couple of lines of instructions costs nothing and would save people like me the aggravation
and yes, I did also search for eosjs on npm but only to find 3 pages of modules none of which looked official.  I did find the package to which you have referred me, which also caused great distress as it's clearly been deprecated
the last thing I need is to struggle with code that fails because it's not official and outdated, so if it's not deprecated, can we mark it as such? and if it is, what am I to use in its place?

It's on the front page of the doc site, which is the first link on the GH page.

ah.  I didn't read the docs since installation instructions are right there on the README

I did find the package to which you have referred me, which also caused great distress as it's clearly been deprecated

Unfortunately that's an oddity with npm. Only one very specific version (20.0.0-f6c2e54.0) of the package was marked as deprecated, the package itself is very much alive and active.

it's something that should be fixed.  think of it from my perspective: I'm a brand new developer and the first thing I want to do is install eosjs: a) I can't find it on NPM, b) the README on github makes no mention of NPM, c) the one module that seems like it could be official has been deprecated
this is not promising.  could I be faulted for concluding that the software is immature and not well supported and thus shy away?

@ekkis We have manually pushed a 20.0.0-ffffff.0prerelease so the NPM website will no longer show the deprecated version as the most recent and you can install with npm install eosjs@edge.
As for your second question, you could be faulted for concluding that considering your issue was addressed by 3 people in under 24 hours and considering the public commit history of the project.  This repository has been consistently maintained and updated, and the issue with searching/deprecation on the npm website had only come to light yesterday.  We'll consider adding something regarding NPM installations or our choice to favor Yarn over NPM.

I'm greatly comforted with response time. it's clear this is active and I can rely on the community for support.  so thank you for that, and for addressing the issue with npm

incidentally, "if the README states yarn add eosjs that is equivalent to npm install eosjs" isn't quite true because I just did the install and the code on the README wouldn't run.  I would get "Error: Cannot find module 'eosjs/dist/eosjs-jssig'" -- but installing with eosjs@edge worked ok so if the yarn command on the README works, it's pulling @edge and is not exactly equivalent.  unless the code on the README breaks for a yarn install as well


US-21: Modifying a Vehicle Zone

AP-47 This acceptance test should validate the following:

Vehicle Zones' names and descriptions can be changed

Approved


S3 Timeouts

I'm getting timeouts when trying to upload to S3. Most likely something wrong with how I do things :)
The credentials are for the user which has AmazonS3FullAccess and AdministratorAccess. The bucket is located in US Standard.
#config/config.exs

use Mix.Config

config :slax, :ex_aws,
   access_key_id: [{:system, "acess"}, :instance_role],
   secret_access_key: [{:system, "secret"}, :instance_role],
   region: "us-west-1" ## timeouts with or without it, doesn't matter

defmodule Slax do
  use ExAws.S3.Client, otp_app: :slax

  def go(path) do
    contents = File.read(path)

    name = "#{ZBase32.encode(Path.basename(path))}#{Path.extname(path)}"

    {:ok, stat} = File.stat(path)
    size = stat.size |> Integer.to_string

    put_object("media.dmitriid.com", name, contents, [{:content_type, "image/png"}, {:content_length, size}])

  end
end

ex(1)> Slax.go("/.../a.png")
** (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %Slax{config: %{access_key_id: [{:system, "access"}, :instance_role], host: %{"ap-northeast-1" => "s3-ap-northeast-1.amazonaws.com", "ap-southeast-1" => "s3-ap-southeast-1.amazonaws.com", "ap-southeast-2" => "s3-ap-southeast-2.amazonaws.com", "eu-central-1" => "s3-eu-central-1.amazonaws.com", "eu-west-1" => "s3-eu-west-1.amazonaws.com", "sa-east-1" => "s3-sa-east-1.amazonaws.com", "us-east-1" => "s3.amazonaws.com", "us-west-1" => "s3-us-west-1.amazonaws.com", "us-west-2" => "s3-us-west-2.amazonaws.com"}, http_client: ExAws.Request.HTTPoison, json_codec: Poison, region: "us-west-1", scheme: "https://", secret_access_key: [{:system, "secret"}, :instance_role]}, service: :s3}}, 5000)
    ** (EXIT) time out
    (elixir) lib/gen_server.ex:564: GenServer.call/3
    (ex_aws) lib/ex_aws/config.ex:59: ExAws.Config.retrieve_runtime_value/2
    (elixir) lib/stream.ex:454: anonymous fn/4 in Stream.map/2
    (elixir) lib/enum.ex:2744: Enumerable.List.reduce/3
    (elixir) lib/stream.ex:1247: Enumerable.Stream.do_each/4
    (elixir) lib/enum.ex:790: Enum.find/3
    (ex_aws) lib/ex_aws/config.ex:45: anonymous fn/3 in ExAws.Config.retrieve_runtime_config/1
    (stdlib) lists.erl:1262: :lists.foldl/3
iex(1)>
10:11:57.412 [error] GenServer ExAws.Config.AuthCache terminating
** (CaseClauseError) no case clause matching: {:error, %{__exception__: true, id: nil, reason: :connect_timeout}}
    (ex_aws) lib/ex_aws/instance_meta.ex:5: ExAws.InstanceMeta.request/2
    (ex_aws) lib/ex_aws/instance_meta.ex:15: ExAws.InstanceMeta.security_credentials/1
    (ex_aws) lib/ex_aws/config/auth_cache.ex:37: ExAws.Config.AuthCache.refresh_config/2
    (ex_aws) lib/ex_aws/config/auth_cache.ex:27: ExAws.Config.AuthCache.handle_call/3
    (stdlib) gen_server.erl:629: :gen_server.try_handle_call/4
    (stdlib) gen_server.erl:661: :gen_server.handle_msg/5
    (stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:refresh_config, %Slax{config: %{access_key_id: [{:system, "access"}, :instance_role], host: %{"ap-northeast-1" => "s3-ap-northeast-1.amazonaws.com", "ap-southeast-1" => "s3-ap-southeast-1.amazonaws.com", "ap-southeast-2" => "s3-ap-southeast-2.amazonaws.com", "eu-central-1" => "s3-eu-central-1.amazonaws.com", "eu-west-1" => "s3-eu-west-1.amazonaws.com", "sa-east-1" => "s3-sa-east-1.amazonaws.com", "us-east-1" => "s3.amazonaws.com", "us-west-1" => "s3-us-west-1.amazonaws.com", "us-west-2" => "s3-us-west-2.amazonaws.com"}, http_client: ExAws.Request.HTTPoison, json_codec: Poison, region: "us-west-1", scheme: "https://", secret_access_key: [{:system, "secret"}, :instance_role]}, service: :s3}}
State: ExAws.Config.AuthCache

Hey!
Have you added :ex_aws to your applications list in your mix.exs file? The error here indicates that the config cache genserver isn't up and running, which means the ExAws application hasn't been started.

Yes, here's my mix.exs:
defmodule Slax.Mixfile do
  use Mix.Project

  def project do
    [app: :slax,
     version: "0.0.1",
     elixir: "~> 1.2",
     build_embedded: Mix.env == :prod,
     start_permanent: Mix.env == :prod,
     deps: deps]
  end

  def application do
    [applications: [:logger, :ex_aws, :httpoison]]
  end

  defp deps do
    [
      ex_aws:    "~> 0.4.10",
      poison:    "~> 1.2",
      httpoison: "~> 0.7",
      zbase32: "~> 1.0.0"
    ]
  end
end

I'm running it with iex -S mix
I feel like there's something really minor and stupid, can't figure out what it is :)

Ah well for one thing in your config.exs you spelled your environment variable "acess" is that the actual environment variable in your config? If ExAws gets nil back from the System.get_env effort it tries to hit the AWS instance meta-data service which won't exist locally.

Yes, the "acess" and "secret" are The correct AWS access and secret ID. In the trace that I get in the console I see that these are picked up correctly from the environment

Ah sorry that confused me because access is spelled incorrectly so I thought it was a typo problem.
I will try to reproduce locally.

I've been having the same error, with the same callstack. I changed the config to look like this:
config :project, :ex_aws,
access_key_id: "access_key",
secret_access_key: "secret_key"
and now it works. So the S3 client doesn't like the recommended configuration in the documentation.

We definitely don't want the documentation to be wrong. I will look at it this weekend.

Perfect! Thank you!
I'll get back to hacking over the weekend as well :)

The configuration from the docs works for me. I think the reason for the timeouts might be that you did not namespace the region option with s3 as in
config :slax, :ex_aws,
   access_key_id: [{:system, "acess"}, :instance_role],
   secret_access_key: [{:system, "secret"}, :instance_role],
   s3: [region: "us-west-1"]

So if it's not present, it will use us-east-1 by default which is not your region I believe and if you put the way you did (without namespacing with s3), it would probably just be ignored and us-east-1 would be used anyway.

Yes, you should specify the keys directly. It turns out that "US Standard" is actually us-east-1 (see here). So the config should be:
config :slax, :ex_aws,
   access_key_id: "access_key",
   secret_access_key: "secret_key",
   region: "us-east-1"

I guess it can be closed then

I am getting the same error using the following config
config :resend, :ex_aws,
  access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role],
  secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role],
  region: "us-east-1"

Thing is, I also use the Arc library which builds upon ExAws (uses its configuration), and it works fine

I'm a bit confused about what the :resend part of the config is. If you're trying to do the global :ex_aws config it should be config :ex_aws, etc

It's the name of the application, removing it makes no difference

I mean, it may not have solved your problem but I assure you it makes a difference. What code are you running that times out? I need to look at how arc uses ExAws, it seems like it doesn't use config the same way precisely.

Yeah my bad, it didn't make a difference in the case of Arc
I am trying to store an object
ExAws.S3.put_object!(@bucket, "some_key", "some_data")

Ok. Yeah so maybe ARC uses the :ex_aws config key under your application's name, not sure. ExAws.S3 function calls will use the top level config :ex_aws stuff. If you do ExAws.S3.new can you post the config that comes out?. MAKE SURE TO REMOVE YOUR SECRET KEY!!! it will be in there.

 That doesn't make any sense. Are you sure you've got your environment variables set correctly? The only time config even does an http request is if it's trying to use the instance role, which it only falls back on if the environment variables return nil.

My apologies, it turned out my env variables was being sourced in iex where I was debugging.
It works correctly now that the env variables are being loaded correctly
Thanks for the help

No worries!

@boydm 's solution works. thanks man.

Wanted to mention that this version of configuration worked for me:
config :ex_aws,
  access_key_id: ["KEY_ID", :instance_role],
  secret_access_key: ["SECRET_KEY", :instance_role]


fix gnostic dep

i think the gnostic dep might be causing issues... after trying to move over to go mod tidy
github.com/wercker/stern/kubernetes imports
        k8s.io/client-go/kubernetes imports
        k8s.io/client-go/discovery imports
        github.com/googleapis/gnostic/OpenAPIv2: module github.com/googleapis/gnostic@latest found (v0.6.9), but does not contain package github.com/googleapis/gnostic/OpenAPIv2

have seen gnostic causing issues in the past... https://github.com/knative/serving/issues/10668

Could you try using github.com/stern/stern?
go get github.com/stern/stern

I am closing this issue due to inactivity.


WIP DO NOT MERGE : Connection cache diff callback

Not merging. target branch has been merged in already -> target changed. closing.


TypeError: Cannot read properties of undefined (reading 'bind')

I'm having an issue with a setup that worked just fine until now:
<project>/node_modules/.pnpm/fictional@2.0.2/node_modules/fictional/hash.js:7
var generateKey = siphash.string16_to_key.bind(siphash)
                                          ^

TypeError: Cannot read properties of undefined (reading 'bind')
    at Object.<anonymous> (<project>/node_modules/.pnpm/fictional@2.0.2/node_modules/fictional/hash.js:7:43)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Object.transformer (/Users/xxx/.npm/_npx/fd45a72a545557e9/node_modules/tsx/dist/register-DxMxtvGN.cjs:2:1122)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Module._load (node:internal/modules/cjs/loader:1024:12)
    at Module.require (node:internal/modules/cjs/loader:1233:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (<project>/node_modules/.pnpm/fictional@2.0.2/node_modules/fictional/index.js:1:16)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Object.transformer (/Users/xxx/.npm/_npx/fd45a72a545557e9/node_modules/tsx/dist/register-DxMxtvGN.cjs:2:1122)

Node.js v20.15.1
 ELIFECYCLE  Command failed with exit code 1.

Can anyone help with this error or point me in the right direction? The error originates in the snaplet/seed library, this is the related issue: https://github.com/snaplet/seed/issues/189

Same issue here

Same issue for me.

Hi there, I tried reproduce, directly with<EMAIL_ADDRESS>tsx, and also via latest @snaplet/seed (using pnpm, and a supabase-based db) - no luck just yet.
@Aietes @josematute @jmgunter To help track it down: what version of @snaplet/copycat and @snaplet/seed are you on?

This is what I have in package.json:
...
"@snaplet/copycat": "^5.0.0",
"@snaplet/seed": "^0.97.20",
...

Thanks @josematute, tried to reproduce on those versions, still no luck.
I'll need your help to get some more details to figure out what's going on.
Could you share the output of this:
cd node_modules/fictional && node -e 'console.log(require("siphash"))'

cd node_modules/fictional && node -e 'console.log(require("siphash"))'

@justinvdm here it is:
{
  hash: [Function: hash],
  hash_hex: [Function: hash_hex],
  hash_uint: [Function: hash_uint],
  string16_to_key: [Function: string16_to_key],
  string_to_u8: [Function: string_to_u8]
}

Thanks @josematute, I'll need to keep digging to try figure this out.
In the meantime, it is a long-shot, but it might be worth upgrading to the latest @snaplet/seed (0.98.0) to see if this happens to resolve the issue (it comes with breaking changes but the release notes suggest it would need to be done by 31 August 2024 anyways). I can't see how it would be at all related, but fictional, siphash and copycat haven't really changed recently, while @snaplet/seed has. Probably a red herring, but maybe there's something there.

I think the problem might be that our projects are defined as a module (ESM) in the package.json by setting "type": "module". Does the module provide both CJS and ESM?

Same issue here

So oddly enough, deleting the /node_modules/siphash/lib/siphash.ts file fixes the issue for me and lets me run the npx tsx seed.ts file and generate the seed script. Unfortunately removing this file also removes all the types from the seed.ts file so it's not a long term fix but at least lets me run my scripts while we get this sorted out.

I think the problem might be that our projects are defined as a module (ESM) in the package.json by setting "type": "module". It looks like the required module siphash is CJS only, and therefore doesn‘t work when used in ESM.
Switching snaplet/seed versions does not help, I tried various versions earlier today.

I suspected it was something around this too at first, and tried to reproduce along these lines, but didn't have any luck:

"type": "module" in package.json
Writing a .mjs script that uses fictional directly and calling it with node
Running a .ts script with same content and using npx tsx
Running npx tsx seed.ts to test if having @snaplet/seed in the mix had anything to do with it

So oddly enough, deleting the /node_modules/siphash/lib/siphash.ts file fixes the issue for me and lets me run the npx tsx seed.ts file and generate the seed script. Unfortunately removing this file also removes all the types from the seed.ts file so it's not a long term fix but at least lets me run my scripts while we get this sorted out.

Ah! That gives a thought - it could me related to how the tsconfig is defined, and tsx is looking at that. @jmgunter could you share your tsconfig?

Ok I just figured it out. The culprit is tsx. running npx<EMAIL_ADDRESS>seed.ts works even with the ts file

So oddly enough, deleting the /node_modules/siphash/lib/siphash.ts file fixes the issue for me and lets me run the npx tsx seed.ts file and generate the seed script. Unfortunately removing this file also removes all the types from the seed.ts file so it's not a long term fix but at least lets me run my scripts while we get this sorted out.

Ah! That gives me an idea - it could me related to how the tsconfig is defined, and tsx is looking at that. @jmgunter could you share your tsconfig?

Sure:
{
  "compilerOptions": {
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "bundler",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next"
      }
    ],
    "paths": {
      "@/*": ["./*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
  "exclude": ["node_modules"]
}

Nice find @jmgunter. It looks like this was the relevant change to tsx: https://github.com/privatenumber/tsx/commit/3df00f4e64fd013ef8bc789b0be0496a033f4d3d
It looks like siphash's having a ts export is confusing how tsx resolves after that change. Fortunately we can work around this in fictional, I'll see if I can get that fixed.
In the meantime, you have the workaround you discovered with npx<EMAIL_ADDRESS>

Thank you for looking into this and getting to a workaround that quickly! Looking forward to a potential longer-term workaround in fictional.

The tsx version stuff fixed it for me as well.

Hi everyone, I've released fictional 2.0.3 which should fix the issue (https://github.com/oftherivier/fictional/commit/ad5323a3d52197c902e8bd20ec2b53a35809a862).
I was able to reproduce the issue for the case of @snaplet/seed using @jmgunter's tsconfig, then confirm that the new fictional version fixed the issue for that case.
For @snaplet/seed usage, the new fictional release is in within the version range for latest copycat's fictional dependency, so you won't need to upgrade anything. You will need to get the fictional transitive dep updated in your lockfile though.
Easiest way would probably be to uninstall then reinstall copycat. For example, for yarn:
yarn remove @snaplet/copycat@<current_copycat_version_in_your_package_json>
yarn add -D @snaplet/copycat@<current_copycat_version_in_your_package_json>

Hope that helps!


Dedupe code in tests

There are a few convenience functions in tests that I've started copy and pasting between them. We should factor them out to a common package of some sort.

@jdoliner what do you think about this now?

Closing for now, after the submitted fixes already and since we're refactoring the other stuff


Chapter1 why this

Why this?
If the this mechanism is so confusing, even to seasoned JavaScript developers, one may wonder why it’s even useful. Is it more trouble than it’s worth? Before we jump into the how, we should examine the why.
However, the this mechanism provides a more elegant way of im‐ plicitly “passing along” an object reference, leading to cleaner API design and easier reuse.
The more complex your usage pattern is, the more clearly you’ll see that passing context around as an explicit parameter is often messier than passing around a this context. When we explore objects and prototypes, you will see the helpfulness of a collection of functions being able to automatically reference the proper context object.


fix sqllogicaltest result

Which issue does this PR close?

Closes #.
Rationale for this change
CI failed in #9442 #9439
What changes are included in this PR?
Current CI related withsqllogicaltest is failed
Are these changes tested?

Are there any user-facing changes?

cc @SteveLauC

PTAL @alamb @Dandandan

merge to fix ci

Thank you @jackwener  and @jayzhan211


Github integration not working

Any time I try to commit a diagram to Github it shows a message: "File not found"

Are you using any browser extensions? Are there any errors in the console? What browser and version and what operating system are you using? Is the repo public or private?

Sorry, my bad... My company network had issues connecting with Github.

I have the same issue. The console say "Failed to load Drive Realtime API library.". I am using Firefox 58.0.2 and a plublic repository on github.


[CELEBORN-326)] [Flink] lifecycleManager supports flink-yarn-session mode to handle multiple Flink jobs.

…n mode to handle multiple Flink jobs

What changes were proposed in this pull request?
lifecycleManager in FlinkJobMaster supports flink-yarn-session mode to handle multiple Flink jobs
Why are the changes needed?
As yarn session mode, jobManager and taskManagers will share across multiple jobs, if we use one lifecycleManager perJob, that will cause two major problem

(map)ShuffleClientImpl can not reuse  in taskManager
multiple jobs register will use many connection and port that will consume lots of system resource.

Does this PR introduce any user-facing change?
No
How was this patch tested?
UT/Manual Test

@FMX @zhongqiangczq


Enforce thread safety on common transform operations

Until now, thread safety has been enforced only on child mutation (in CompositeDrawable). This extends the same checks to Transformable, covering common operations which can lead to game crashes from cross-thread enumeration and other weirdness.
I implemented this out of necessity after crashing twice from cross-thread enumeration in the transform stack and wanting to find the bad actor. It helped locate this and several other cases, which I will be fixing as follow-up pull requests (~2 osu! side, one harder one framework side in VisibilityContainer, only affecting custom implementations).
Breaking changes
Games will now throw (and crash) immediately on performing cross-thread transform operations
This may mean that as a framework consumer you need to re-think how you are performing operations between drawables. The easiest way to avoid issue is to use Schedule to force the target code to be on the correct thread.

Overall not really sure of merging the CompositeDrawable helper into this use case. The following might be a micro-optimisation concern, but: I do know the JIT knows how to de-branch "throw helpers" (i.e. methods that always throw and never return), but I'm not sure how that will behave behind a virtual call. The helper being virtual might incur some overhead that on a large scale might turn out to not be all that negligible, and if it does, having separate throw helpers for transform and child mutation will resolve most of the current awkwardness pointed out in the above review.

Overall not really sure of merging the CompositeDrawable helper into this use case. The following might be a micro-optimisation concern, but: I do know the JIT knows how to de-branch "throw helpers" (i.e. methods that always throw and never return), but I'm not sure how that will behave behind a virtual call. The helper being virtual might incur some overhead that on a large scale might turn out to not be all that negligible, and if it does, having separate throw helpers for transform and child mutation will resolve most of the current awkwardness pointed out in the above review.

I considered but wrote off optimisation considerations since all the operations this was added to should be rare usages. If you think this is necessary to consider, then we either need to:

Move LoadThread to Transformable
Cast inside the helper method

If it's about optimisation, the second one gets ruled out. I was intentionally trying to avoid moving LoadThread, but what do you think? If it's internal maybe it doesn't matter?

I considered but wrote off optimisation considerations since all the operations this was added to should be rare usages. If you think this is necessary to consider, then we either need to:

Move LoadThread to Transformable
Cast inside the helper method

If it's about optimisation, the second one gets ruled out. I was intentionally trying to avoid moving LoadThread, but what do you think? If it's internal maybe it doesn't matter?

I considered but wrote off optimisation considerations since all the operations this was added to should be rare usages. If you think this is necessary to consider, then we either need to:

Move LoadThread to Transformable
Cast inside the helper method

If it's about optimisation, the second one gets ruled out. I was intentionally trying to avoid moving LoadThread, but what do you think? If it's internal maybe it doesn't matter?

I considered but wrote off optimisation considerations since all the operations this was added to should be rare usages. If you think this is necessary to consider, then we either need to:

Move LoadThread to Transformable
Cast inside the helper method

If it's about optimisation, the second one gets ruled out. I was intentionally trying to avoid moving LoadThread, but what do you think? If it's internal maybe it doesn't matter?

Hmm, right. It makes zero sense to have LoadThread in Transformable... probably fine to have the method virtual, then. Seeing that the override is sealed, only direct calls from Transformable should incur the penalty - any call from Drawable and inheritors should not use a callvirt due to the sealing.
For added style points - thoughts on the following patch?
diff --git a/osu.Framework/Graphics/Containers/CompositeDrawable.cs b/osu.Framework/Graphics/Containers/CompositeDrawable.cs
index 4639b8a1c2..efc62af463 100644
--- a/osu.Framework/Graphics/Containers/CompositeDrawable.cs
+++ b/osu.Framework/Graphics/Containers/CompositeDrawable.cs
@@ -447,7 +447,7 @@ protected internal int IndexOfInternal(Drawable drawable)
         /// <returns>False if <paramref name="drawable"/> was not a child of this <see cref="CompositeDrawable"/> and true otherwise.</returns>
         protected internal virtual bool RemoveInternal(Drawable drawable)
         {
-            EnsureMutationAllowed();
+            EnsureChildMutationAllowed();

             if (drawable == null)
                 throw new ArgumentNullException(nameof(drawable));
@@ -485,7 +485,7 @@ protected internal virtual bool RemoveInternal(Drawable drawable)
         /// </param>
         protected internal virtual void ClearInternal(bool disposeChildren = true)
         {
-            EnsureMutationAllowed();
+            EnsureChildMutationAllowed();

             if (internalChildren.Count == 0) return;

@@ -523,7 +523,7 @@ protected internal virtual void ClearInternal(bool disposeChildren = true)
         /// </summary>
         protected internal virtual void AddInternal(Drawable drawable)
         {
-            EnsureMutationAllowed();
+            EnsureChildMutationAllowed();

             if (IsDisposed)
                 throw new ObjectDisposedException(ToString(), "Disposed Drawables may not have children added.");
@@ -574,7 +574,7 @@ protected internal void AddRangeInternal(IEnumerable<Drawable> range)
         /// <param name="newDepth">The new depth value to be set.</param>
         protected internal void ChangeInternalChildDepth(Drawable child, float newDepth)
         {
-            EnsureMutationAllowed();
+            EnsureChildMutationAllowed();

             if (child.Depth == newDepth) return;

@@ -607,7 +607,7 @@ protected internal void ChangeInternalChildDepth(Drawable child, float newDepth)
         /// </remarks>
         protected internal void SortInternal()
         {
-            EnsureMutationAllowed();
+            EnsureChildMutationAllowed();

             internalChildren.Sort();
             aliveInternalChildren.Sort();
@@ -1181,7 +1181,7 @@ internal set

         public override void ApplyTransformsAt(double time, bool propagateChildren = false)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             base.ApplyTransformsAt(time, propagateChildren);

@@ -1194,7 +1194,7 @@ public override void ApplyTransformsAt(double time, bool propagateChildren = fal

         public override void ClearTransformsAfter(double time, bool propagateChildren = false, string targetMember = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             base.ClearTransformsAfter(time, propagateChildren, targetMember);

@@ -1223,7 +1223,7 @@ internal override void AddDelay(double duration, bool propagateChildren = false)

         public override IDisposable BeginAbsoluteSequence(double newTransformStartTime, bool recursive = true)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             var baseDisposalAction = base.BeginAbsoluteSequence(newTransformStartTime, recursive);
             if (!recursive)
@@ -1242,7 +1242,7 @@ public override IDisposable BeginAbsoluteSequence(double newTransformStartTime,

         public override void FinishTransforms(bool propagateChildren = false, string targetMember = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             base.FinishTransforms(propagateChildren, targetMember);

@@ -1279,6 +1279,8 @@ protected TransformSequence<CompositeDrawable> FadeEdgeEffectTo(Color4 newColour
         protected TransformSequence<CompositeDrawable> TweenEdgeEffectTo(EdgeEffectParameters newParams, double duration = 0, Easing easing = Easing.None) =>
             this.TransformTo(nameof(EdgeEffect), newParams, duration, easing);

+        internal void EnsureChildMutationAllowed() => EnsureMutationAllowed(nameof(InternalChildren));
+
         #endregion

         #region Interaction / Input
diff --git a/osu.Framework/Graphics/Drawable.cs b/osu.Framework/Graphics/Drawable.cs
index a00989da09..965af4431a 100644
--- a/osu.Framework/Graphics/Drawable.cs
+++ b/osu.Framework/Graphics/Drawable.cs
@@ -2538,7 +2538,9 @@ internal virtual bool BuildPositionalInputQueue(Vector2 screenSpacePos, List<Dra
             return true;
         }

-        internal sealed override void EnsureMutationAllowed()
+        internal sealed override void EnsureTransformMutationAllowed() => EnsureMutationAllowed(nameof(Transforms));
+
+        internal void EnsureMutationAllowed(string member)
         {
             switch (LoadState)
             {
@@ -2547,20 +2549,20 @@ internal sealed override void EnsureMutationAllowed()

                 case LoadState.Loading:
                     if (Thread.CurrentThread != LoadThread)
-                        throw new InvalidThreadForMutationException(LoadState, "not on the load thread");
+                        throw new InvalidThreadForMutationException(LoadState, member, "not on the load thread");

                     break;

                 case LoadState.Ready:
                     // Allow mutating from the load thread since parenting containers may still be in the loading state
                     if (Thread.CurrentThread != LoadThread && !ThreadSafety.IsUpdateThread)
-                        throw new InvalidThreadForMutationException(LoadState, "not on the load or update threads");
+                        throw new InvalidThreadForMutationException(LoadState, member, "not on the load or update threads");

                     break;

                 case LoadState.Loaded:
                     if (!ThreadSafety.IsUpdateThread)
-                        throw new InvalidThreadForMutationException(LoadState, "not on the update thread");
+                        throw new InvalidThreadForMutationException(LoadState, member, "not on the update thread");

                     break;
             }
@@ -2657,8 +2659,8 @@ private class EmptyDrawable : Drawable

         public class InvalidThreadForMutationException : InvalidOperationException
         {
-            public InvalidThreadForMutationException(LoadState loadState, string description)
-                : base($"Cannot mutate the state of a {loadState} {nameof(Drawable)} while {description}. "
+            public InvalidThreadForMutationException(LoadState loadState, string member, string invalidThreadContextDescription)
+                : base($"Cannot mutate the {member} of a {loadState} {nameof(Drawable)} while {invalidThreadContextDescription}. "
                        + $"Consider using {nameof(Schedule)} to schedule the mutation operation.")
             {
             }
diff --git a/osu.Framework/Graphics/Transforms/Transformable.cs b/osu.Framework/Graphics/Transforms/Transformable.cs
index e14d0491fd..7c5deae5cf 100644
--- a/osu.Framework/Graphics/Transforms/Transformable.cs
+++ b/osu.Framework/Graphics/Transforms/Transformable.cs
@@ -138,7 +138,7 @@ private void updateTransforms(double time, bool forceRewindReprocess = false)
         /// <param name="toRemove">The <see cref="Transform"/> to remove.</param>
         public void RemoveTransform(Transform toRemove)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             getTrackerForGrouping(toRemove.TargetGrouping, false)?.RemoveTransform(toRemove);

@@ -155,7 +155,7 @@ public void RemoveTransform(Transform toRemove)
         /// </param>
         public virtual void ClearTransforms(bool propagateChildren = false, string targetMember = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             ClearTransformsAfter(double.NegativeInfinity, propagateChildren, targetMember);
         }
@@ -171,7 +171,7 @@ public virtual void ClearTransforms(bool propagateChildren = false, string targe
         /// </param>
         public virtual void ClearTransformsAfter(double time, bool propagateChildren = false, string targetMember = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             if (targetMember != null)
             {
@@ -195,7 +195,7 @@ public virtual void ClearTransformsAfter(double time, bool propagateChildren = f
         /// <param name="propagateChildren">Whether to also apply children's <see cref="Transform"/>s at <paramref name="time"/>.</param>
         public virtual void ApplyTransformsAt(double time, bool propagateChildren = false)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             if (RemoveCompletedTransforms) throw new InvalidOperationException($"Cannot arbitrarily apply transforms with {nameof(RemoveCompletedTransforms)} active.");

@@ -212,7 +212,7 @@ public virtual void ApplyTransformsAt(double time, bool propagateChildren = fals
         /// </param>
         public virtual void FinishTransforms(bool propagateChildren = false, string targetMember = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             if (targetMember != null)
             {
@@ -242,7 +242,7 @@ public virtual void FinishTransforms(bool propagateChildren = false, string targ
         /// <returns>An <see cref="InvokeOnDisposal"/> to be used in a using() statement.</returns>
         public IDisposable BeginDelayedSequence(double delay, bool recursive = true)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             if (delay == 0)
                 return null;
@@ -289,7 +289,7 @@ public DelayedSequenceSender(Transformable transformable, double delay, bool rec
         /// <exception cref="InvalidOperationException">Absolute sequences should never be nested inside another existing sequence.</exception>
         public virtual IDisposable BeginAbsoluteSequence(double newTransformStartTime, bool recursive = true)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             double oldTransformDelay = TransformDelay;
             double newTransformDelay = TransformDelay = newTransformStartTime - (Clock?.CurrentTime ?? 0);
@@ -333,7 +333,7 @@ public AbsoluteSequenceSender(Transformable transformable, double oldTransformDe
         /// <param name="customTransformID">When not null, the <see cref="Transform.TransformID"/> to assign for ordering.</param>
         public void AddTransform(Transform transform, ulong? customTransformID = null)
         {
-            EnsureMutationAllowed();
+            EnsureTransformMutationAllowed();

             if (transform == null)
                 throw new ArgumentNullException(nameof(transform));
@@ -372,6 +372,6 @@ public void AddTransform(Transform transform, ulong? customTransformID = null)
         /// Check whether this transformable is in a state where mutation of thread-safe properties is allowed.
         /// Will throw on failure.
         /// </summary>
-        internal abstract void EnsureMutationAllowed();
+        internal abstract void EnsureTransformMutationAllowed();
     }
 }

Looks good.
I've made some minor changes to the xmldoc to better describe what these methods are actually doing (not sure why it mentioned state previously; it has nothing to do with the drawable's state).

Looks good.
I've made some minor changes to the xmldoc to better describe what these methods are actually doing (not sure why it mentioned state previously; it has nothing to do with the drawable's state).


chore(deps,cargo)!: bump prost-wkt dependencies to 0.4

Closes #50
Closes #51
Closes #52
These have to be combined to pass CI.
This is a breaking change because the deprecated encoded method from the
MessageSerde trait was removed.

bors r+


The second-order gradient of tf.math.log and tf.math.log1p is 0 when the input is NaN.

Click to expand!
Issue Type
Bug
Source
binary
Tensorflow Version
2.9.2
Custom Code
Yes
OS Platform and Distribution
No response
Mobile device
No response
Python version
3.8
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I was trying some loss functions and I find when the output of `tf.math.log1p` and `tf.math.log` is NaN, second-order gradients of one variable in these functions are still 0.0. Here is the equation of the loss function that causes this issue:

res = tf.math.log(tf.math.sqrt(1-x)-y+y)

When 1-x<0, tf.math.sqrt outputs NaN and res is also NaN. However, the second-order derivative of y in this equation is 0.0. Since NaN indicates some potential errors during model training and this special value should be manifested to the derivative, I think output 0.0 when receiving NaN is not optimal.
For your reference, I also tried on PyTorch and found that the second-order derivative of y in PyTorch is NaN, which I think would be better.
Please note that this issue happens in both tf.math.log and tf.math.log1p operators, while does not occur in operators such as tf.math.sin. Specifically, if I change the equation to tf.math.sin(tf.math.sqrt(1-x)-y+y), the second-order derivative of y is NaN.

### Standalone code to reproduce the issue

```shell
Access this colab link (https://colab.research.google.com/drive/1UvQFl6wyvcrfqfu_x1lbOFVTHmO0n0bO?usp=sharing) or run below code to reproduce the issue.

import tensorflow as tf
x = tf.Variable(100.)
y = tf.Variable(100.)
with tf.GradientTape() as g1:
  with tf.GradientTape() as g0:
    g0.watch(y)
    res = tf.math.log(tf.math.sqrt(1-x)-y+y)
  first_order_gradient = g0.gradient(res, y)
second_order_gradient = g1.gradient(first_order_gradient, y)

print("TensorFlow's output is: ", first_order_gradient, second_order_gradient)

import torch

x = torch.tensor(100., requires_grad=True)
y = torch.tensor(100., requires_grad=True)
res = torch.log(torch.sqrt(1-x)-y+y)
first_order_gradient = torch.autograd.grad(res, (y,), create_graph=True)
second_order_gradient = torch.autograd.grad(first_order_gradient, (y,), create_graph=True)

print("PyTorch's output is: ", first_order_gradient, second_order_gradient)

### Relevant log output

```shell
TensorFlow's output is:  tf.Tensor(nan, shape=(), dtype=float32) tf.Tensor(0.0, shape=(), dtype=float32)

PyTorch's output is:  (tensor(nan, grad_fn=<AddBackward0>),) (tensor(nan, grad_fn=<AddBackward0>),)

@sushreebarsa,
I was able to reproduce the issue on tensorflow v2.9, v2.11 and nightly. Kindly find the gist of it here.

This is a bit of an oddball.
Your input function is actually independent of y, since analytically
log(sqrt(1-x)-y+y)) = log(sqrt(1-x))

So technically, the first derivative w.r.t. y should be zero.  Except that we don't do analytical math, so we end up with a NaN * 0 = NaN.
For the second derivative, we have special handling inside the reciprocal gradient (reciprocal being the gradient of log) that avoids generating NaNs when passing zero gradients through the singularity at 0.  This is where we are returning 0, and where something like sin does not.  I can make that consistent to return NaN.  But really, your gradients should technically be zero.


docs: fix typo in docs visible on main page

What kind of change does this PR introduce?
Docs typo fix.
PR replaces https://github.com/puppeteer/puppeteer/pull/9604 which was automatically closed by GitHub.
Did you add tests for your changes?
n/a
If relevant, did you update the documentation?
Yes
Summary
Fix typo visible on main page of site.
Does this PR introduce a breaking change?
No
Other information
n/a

Thanks!


Release: find a home for binaries + further information

As mentioned before, it would be great, if there were at least a central place to inform about the latest release and upcoming releases, especially for consensus critical updates.
Tutorials or setup guides would be ice on the cake, but to keep it minimal, a super simple landing page should include:

version information
links to binaries
file checksums
ideally GPG signatures
ideally release notes and a change log

Ideally, such a landing page would be hosted at http://www.omnilayer.org/release or similar.

I think all these issues related to release should be raised on the main repo rather than my development branch - the main repo has a much broader audience for discussions like this :)

https://github.com/mastercoin-MSC/mastercore/issues/291


Add generic function IsDocument

Better than if brdoc.IsCPF(document) || brdoc.IsCNPJ(document) { everywhere

Hey, Guilherme! Thanks for spending your time trying to improve this project!
I think I can't see the problem this PR is trying to solve. I don't think brdoc.IsCPF(...) || brdoc.IsCNPJ(...) is such an annoying boilerplate and, if it is, it seems like something the codebase importing this library should be worried about. Personally, I'd rather leave the library without this smaller functions and let the API simpler.
Again, thank you for your help! 😄

Ok, thanks for the feedback. I'll be using the fork. I've stumbled in a project where this verification was constant and it kind of annoyed me. :sweat_smile:


Bypass route protection on search-index build (server)?

Hi!
Love the plugin/theme you have built here!
My Setup
Docusaurus tutorial page modified with a client side auth wrapper around the root element.
Problem
After running the build my search-index.json file includes all routes/pages but is missing context information. This leads to always "no results" when searching:
[{"documents":[{"i":1,"t":"","u":"/blog/first-blog-post","b":[]},{"i":2,"t":"","u":"/blog/long-blog-post","b":[]},{"i":3,"t":"","u":"/blog/archive","b":[]},{"i":4,"t":"","u":"/blog/welcome","b":[]},{"i":5,"t":"","u":"/docs/hello","b":[]},{"i":6,"t":"","u":"/docs/intro","b":[]},{"i":7,"t":"","u":"/blog/mdx-blog-post","b":[]},{"i":8,"t":"","u":"/docs/tutorial-basics/congratulations","b":[]},{"i":9,"t":"","u":"/docs/tutorial-basics/create-a-document","b":[]},{"i":10,"t":"","u":"/docs/tutorial-basics/create-a-blog-post","b":[]},{"i":11,"t":"","u":"/docs/tutorial-basics/markdown-features","b":[]},{"i":12,"t":"","u":"/docs/tutorial-extras/translate-your-site","b":[]},{"i":13,"t":"","u":"/docs/tutorial-extras/manage-docs-versions","b":[]},{"i":14,"t":"","u":"/docs/tutorial-basics/create-a-page","b":[]},{"i":15,"t":"","u":"/docs/tutorial-basics/deploy-your-site","b":[]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/2",[]],["t/3",[]],["t/4",[]],["t/5",[]],["t/6",[]],["t/7",[]],["t/8",[]],["t/9",[]],["t/10",[]],["t/11",[]],["t/12",[]],["t/13",[]],["t/14",[]],["t/15",[]]],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}}]

Description
I have somewhat of an edge case problem.. I need to protect the whole page via client side authentication. I'm aware that the content is only "hidden", which is sufficient for my usecase (no sensitive content).
What I have done to enable the authentication is:

Add a theme/Root.js to the standard docusaurus starter project
Wrap {children} in the auth context provider
Protect routes with a component that checks for authentication and returns children, or redirects to an authentication page if not authenticated

function WithAuth({ children }) {
  const { isLoading, error, isAuthenticated, loginWithRedirect } = useAuth0();
  const location = useLocation();
  // catch loading or error states
  if (isLoading) return
Loading...
;
  if (error) return
Oops... {error.message}
;

  if (!isAuthenticated) {
    loginWithRedirect({ appState: { returnTo: location.pathname }});
    return
Redirecting ...
;
  } else {
    return <>{children}</>;
  }
}

export default function Root({children}) {
  const { siteConfig } = useDocusaurusContext();
  const history = useHistory();
  const location = useLocation();

  const onRedirectCallback = (appState) => {
    history.push(appState?.returnTo || location.pathname);
  };

  return (
    <Auth0Provider
      domain={siteConfig.customFields.AUTH0_DOMAIN}
      clientId={siteConfig.customFields.AUTH0_CLIENT_ID}
      redirectUri={siteConfig.customFields.BASE_URL}
      onRedirectCallback={onRedirectCallback}
    >
      <WithAuth>
        {children}
      </WithAuth>
    </Auth0Provider>
  );
}

This works as it should.
Now, when I build the project it generates the search-index.json, but the index is missing all the respective information for each page/md file and so forth (see above). Means auth works, but search doesn't.
=> It seems like the local search crawler finds all of the pages, but can't access the content data because of the auth wrapper.
When I remove the auth wrapper the search-index.json is correctly populated with the content data and search works fine, but auth doesn't.
Question
Is there any way to bypass the auth during the server build? Alternatively, maybe even a setting to turn off the auto generation of search-index.json on every build? This would mean I have to manually build the search-index.json and put it into the static folder before every push, but I guess that's better than no search at all.
I obviously prefer some way to bypass the auth during the build process for automation purposes.
Cheers

Small update.. I have gone into the code of this lib and found out what exactly the problem is.
When the Auth wrapper is present the SSR build consists of all pages with Loading... , hence the empty search index. This is intended, since we want to authenticate the user before showing anything first.
If I implement a check for "isBrowser" and disable the auth for the SSR, search works again as the search-index.json is built with the content being there instead of Loading.... This results in a short flash of the respective page content when someone visits a page (SSR) before going into a loading state on the client side (CSR).
This kind of defeats the purpose for me. The only possible solution here would be provide some sort of optionial building of the search-index.json, but I understand if that is out of scope for this lib.

Interesting case, I didn't know we can implement an auth guard with Docusaurus, since it's a static site generator.
This plugin builds the search index right after Docusaurus built your pages, I don't know what's the output pages when you wrapped the root with an auth guard, if they contain loading... only, I think there is nothing we can do in one build.
Maybe you can build twice, one with auth enabled, another with auth disabled. Then move the search-index.json from the latter output into the former output. But, yes, it's out of scope for this lib.

@weareoutman haha yes. Bit of a hacky solution to be honest. Works better than I expected because of the way the SSR pages are built.
Basically all pages, both SSR and CSR, are being rendered as
Loading...
 (see the WithAuth wrapper in my initial issue above). Because of this the search plugin can't read any content, but all the pages are present in the search index.
I agree it won't be possible in one build. I think the easiest solution to at least enable search for this use case is making the  search-index.json build by this plugin optional.
That way I could for example build a small hook, that builds it locally, put the search-index.json in the static folder and just access it on the client. Currently my pipeline automatically generates the search-index.json in a container and overwrites a statically built one.

I write such a code snippet and it builds the search index while I protect the site with Auth0:
export default function Root({children}): JSX.Element {
    const isBrowser = useIsBrowser();
    return isBrowser ? (<Auth0Provider ...> ... </Auth0Provider>) : <>{children}</>
}

Replace isBrowser with env var BUILD and wrap a script:
#!/usr/bin/env bash

ROOT_DIR=$(git rev-parse --show-toplevel)
# shellcheck disable=SC2164
cd "$ROOT_DIR"

BUILD=1 yarn docusaurus build
mv build/search-index.json search-index.json
BUILD=0 yarn docusaurus build
mv search-index.json build/search-index.json

Hi,
I have the same problem when running in production.
See my Root.js:
import React, { useEffect, useState} from 'react';
import { MsalProvider, AuthenticatedTemplate, UnauthenticatedTemplate, useMsal, useMsalAuthentication} from "@azure/msal-react";
import { PublicClientApplication, InteractionStatus, InteractionType} from "@azure/msal-browser";
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';

// Default implementation, that you can customize
export default function Root({children}) {

  const {siteConfig} = useDocusaurusContext();

  const isProduction = process.env.NODE_ENV === 'production';
  const redirectUri = isProduction ? `https://${siteConfig.organizationName}.github.io${siteConfig.baseUrl}index.html` : 'http://localhost:3000/';

  const msalConfig = {
    auth: {
      clientId: "xxx",
      authority: 'xxx',
      redirectUri: redirectUri
    },
    cache: {
      cacheLocation: 'localStorage',
      storeAuthStateInCookie: false,
    }
  };

  const pca = new PublicClientApplication(msalConfig);
  const isLocalDevelopment = process.env.NODE_ENV === 'development';

  const authProvider = isLocalDevelopment ? (

        {children}

    ) : (
      <MsalProvider instance={pca}>

        <UnauthenticatedTemplate>
          <Login/>
        </UnauthenticatedTemplate>

        <AuthenticatedTemplate>
          {children}
        </AuthenticatedTemplate>

      </MsalProvider>
    );

  return <>{authProvider}</>;
}

function Login() {
  const request = {
    scopes: ["User.Read"],
    prompt: 'select_account'
  }

  const { login, error } = useMsalAuthentication(InteractionType.Silent, request);
  const msalInstance = useMsal();

  useEffect(() => {
    if (error && msalInstance.inProgress === InteractionStatus.None) {
      login(InteractionType.Redirect, request);
    }
  }, [error, login, request, msalInstance]);

  return null;
};

When I remove the Authentication components from the MsalProvider it works fine:
But then I do not have my authentication wrapper ;)
<MsalProvider instance={pca}>
    {children}
</MsalProvider>

Is there a way to manually add the Search bar component / force it?
Setting the forceIgnoreNoIndex: true in the docusaurus.config.js does not work for me.


Fix category links in media detail

Description
The prefix "Category:" is not expected by the category activity. I changed the category links in the media detail view to no longer add that prefix.
Additionally, I added a workaround for a crash where the media detail fragment somehow lost it's context.
Tests performed
Tested prodDebug on Huawei P8 Lite with API level 23.
Screenshots (for UI changes only)
Category browser now no longer sometimes displays "Category:" in the title bar.

Codecov Report

Merging #3957 into master will decrease coverage by 2.35%.
The diff coverage is 0.00%.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7c5fafa...49bf12b. Read the comment docs.

I forgot to test that menu entry, should be fixed now.


[BUG] markdownShortcutPlugin throws "Prism is not defined" error when minified

[x] I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
[x] I have read the documentation and cannot find an answer.

Describe the bug
When the markdownShortcutPlugin is enabled - if you build your project using esbuild (a very popular bundler, also used in Vite/etc) with --minify enabled, at runtime the app throws the following error:
bundle.js:170 Uncaught ReferenceError: Prism is not defined
Reproduction
As this is specific to a build process, I've set up a new minimal reproduction repo here as I'm not sure it's possible in codesandbox? https://github.com/dylanpyle/mdxeditor-esbuild
To Reproduce
Steps to reproduce the behavior:

Clone the repo
npm install
./compile
open index.html
Observe the runtime error

To confirm that it's specific to the markdownShortcutPlugin, remove this plugin from app.tsx and run ./compile again; observe that the app now loads successfully.
Expected behavior
The app loads the editor.
Screenshots

Desktop (please complete the following information):

OS: macOS
Browser: Chrome 126.0.6478.57
Dependencies:

  "dependencies": {
    "@mdxeditor/editor": "3.4.1",
    "esbuild": "0.21.5",
    "react": "18.3.1",
    "react-dom": "18.3.1"
  }

Additional context
This issue is not present when the output bundle is not minified.

I've reported it here.
https://github.com/facebook/lexical/pull/5828#issuecomment-2160350493
As a workaround, we've had to use the CDN version of prism and add it to the index.html... It's ugly but fixes it. Still trying to figure out how to avoid needing Prism.

I'm almost certain that the shortcuts assume the inclusion of the default Lexical code block implementation. It's unlikely for Lexical to fix this, I believe. The proper way would be to inline the shortcut implementation in the MDXEditor and maybe drop the reference to @lexical/markdown. Which would be a shame, as the shortcut code is quite complex.

For what it's worth - based on the docs I thought it was this plugin that provided the Command-[B/U/I/K] shortcuts, but they seem to work without it — so not pressing on my end. Worth updating the docs to specify that?

I'm also facing the same issue with Next.js (14.2.3). I've tried to manually assign Prism to the window object (window.Prism = Prism), but then I get the error Cannot set properties of undefined (setting 'triple-quoted-string').
This only happens when building for production, though. It works as expected in dev.

Is there any update on fixing it? I encountered the same issue 🥲


Support multiple VoiceCommands on Interactables

Describe the problem
Some apps like to configure multiple voice commands on their buttons .
Examples - System supported "Select" and a custom voice command which is typically the tooltip to trigger a button (see it say it pattern)
Describe the solution you'd like
It would be great if intractables  support multiple voice commands. Expose an array of VoiceCommands on Interactable.
Additional context
Checkout Behavior in Remote Assist app for more context

@CDiaz-MS  This is covered by the voice keywords in InteractiveElement, correct? @ritijain buttons created with the InteractiveElement pattern should support arbitrary keywords, pending @CDiaz-MS info

We appreciate your feedback and thank you for reporting this issue.
Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.
Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.
Please note that MRTK3 was released in August 2023. It features an all new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visithttps://www.mixedrealitytoolkit.org.
Thank you for your continued support of the Mixed Reality Toolkit!


Azure IoT middleware for FreeRTOS sample for Espressif ESP32

Purpose
Add a Azure IoT middleware for FreeRTOS sample for Espressif ESP32.
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test
Follow steps in demos\projects\ESPRESSIF\esp32\README.md
What to Check
That the sample works on a Espressif ESP32 board.
Other Information

Thanks for all the really hard work Ewerton! Really appreciate it and I'm sure people are going to really like having this sample there. Shows off what we have built really well.


Dexter can't identify when it's stepped into the right source files

I have a problem with this code [0], which seems to be designed to make the debugger "continue" if we're not yet in a correct source file. On windows under dbgeng, step_info.current_location.path is
 c:\users\jmorse\source\debuginfo-tests\dexter-tests\hello.c

And self.context.options.source_files is
['C:\\Users\\gbmorsej\\source\\o\\debuginfo-tests\\dexter-tests\\hello.c']

Which are two very different strings. The symptom is that dbgeng doesn't implement "go"; but even if it did, this would still be broken.
Ultimately I don't think we should be trying to resolve the paths that the debugger coughs up into paths on the actual filesystem -- or if we do, we should make that the debugger drivers problem, not generic code.
[0] https://github.com/SNSystems/dexter/blob/861102e88937c5a2000b8bf02362dee45371bcdd/dex/debugger/DebuggerBase.py#L158

Aaaannnddd, this turns out to be necessary for things like lldb to not be infinitely stepping through the implementation of printf and the like. So this portion of code does need to be sticking around.

We should probably call os.path.normpath in that code that you highlighted to make sure that when comparing paths we're actually comparing like for like.

Ah, that might be a better / more general fix, I'll try that


Provide example code for media player volume slider

Is there an example code for this volume slider?

Cant find it in the docs and also cant find a way to configure it (slider uses the full button size)

Hi, this is a slider that appears when you click on the audio volume icon only in the media player card. This is by default.

thanks


Could not download postgres driver

Is this a known issue? Or is this a temporary outage?

https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.0.jre7/postgresql-42.2.0.jar

I think it is some kind of glitch. Right now it works fine for me..

Just doing housecleaning - haven't had this issue since, evidently a CDN issue or something.


Refine keys api

waiting for #2410 and #2444 to be merged.
fix #2369

@MarinPostma I can remove DUMPS_GET action in this PR if you want, or do you prefer to do it in another one ?

No it's ok we'll do it in another or to keep things tidy

We need to handle it in dumps

Ok so let's review!

Hey @mdubus,
Now that we changed the API key system, we cannot use the master key as the key provided to the mini-dashboard, instead, we should ask the user to provide the admin key and not the search key as the dashboard needs to access the list of indexes.
Could you please change the text message in the modal and ask for help from @ManyTheFish to find a good name and text?
Thank you!

bors merge


move semantics for sf::Context

Description

This PR is related to the issue #2483
Tasks

[ ] Tested on Linux
[x] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode({1280, 720}), "Minimal, complete and verifiable example");
    window.setFramerateLimit(60);
sf::Context context;
sf::Context other { context };

    while (window.isOpen())
    {
        for (sf::Event event; window.pollEvent(event);)
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.display();
    }
}

Now that m_context can be null we need asserts in all member functions that ensure that nobody tries to call these functions from a moved-from sf::Context instance. Here's a good example of what that should look like:
https://github.com/SFML/SFML/blob/39ba64cfc63866a868c94a41ca331c12235c190e/src/SFML/System/Vector2.cpp#L90C7-L90C7

If you're move-assigning into an existing context, don't you still need to run the code in the destructor before the moved-to context steals the state of the moved-from context? In general this is how you do move assignment for types with non-empty destructors. The moved-to type has to call the cleanup code in its destructor first before being assigned to. This is why I question whether default move operations are correct.
At this point in SFML's development I think we've already used default move operations in as many places as we can. Now we're left with a bunch of immovable types with custom destructors that likewise need custom move operations that are tricky to correctly implement.

@tbetten Do you plan on revisiting this PR?

Closed for inactivity


Linux editting window keeps refreshing and kernel automatically get interrupted every a few seconds

Applies To

[X] Notebooks (.ipynb files)
[ ] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
I am on linux (Ubuntu 20.04LTS), using a local python kernel.
When I am editting any line, it keeps interrupting my input every a few seconds, and jump me out of the cell editor, and to the global jupyter notebook level. For example when I am typing something, it jumps me out of the cell editor automatically and what I am inputting will mess up because it is now interpreted as global shortcut keys. etc. like b for blank cell, m for markdown, v for pasting a cell down below. This behavior also persists when executing any cell. The execution will be interrupted almost randomly. I checked the shortcut binding and it does not show any conflicts. Also it is very unlikely to be a hardware issue since no other application have any abnormal behavior.
VS Code Version
1.78.2
Jupyter Extension Version
v2023.4.1011241018
Jupyter logs
No response
Coding Language and Runtime Version
python 3.8.15
Language Extension Version (if applicable)
Python Extension
Anaconda Version (if applicable)
22.11.1
Running Jupyter locally or remotely?
Local

My guess is that the file on disk keeps getting updated and triggers refresh of the model. @luobroad do you happen to have auto save turned on?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


frontend: Improve HPA, PDB, Resource Quota

Cleaned https://github.com/headlamp-k8s/headlamp/pull/1050 and updated snapshots
Changes:
This PR contains following changes:

Fix more lable missing in HPA target

Remove duplicated HPA detail event table and add contdition table

Improve unit of request and limit in resource quota and make them human readable

Improve UX fro RQ and HPA

Fix null reference error in resource quota status

Hey @yolossn , I have tested this PR. It looks good to me. Thanks for your improvement.

Thanks for the changes @yolossn . I have merged it.


Can I use with an huge graph structure?

I'm developing an application in which I need a structure to represent a huge graph between 1 000 000 and 6 000 000 nodes and 10 or 300 edges from each node. The nodes representation will contain some attributes.
Can I use petgraph to do it? What is petgraph limits? memory use ?

Memory will be limiting as well as algorithmic issues. 300 edges per node might already be slow depending on what you want to do, but since that's still a sparse graph I think petgraph should manage it.


FIX: Update style for solution titles to agree with #12

This re-applies the style for solution node titles as discussed in #12

Codecov Report

Merging #48 (dbd4ddc) into master (26c3150) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #48      +/-   ##
==========================================
+ Coverage   92.95%   92.98%   +0.03%
==========================================
  Files           6        6
  Lines         440      442       +2
==========================================
+ Hits          409      411       +2
  Misses         31       31

Flag
Coverage Δ

pytests
92.98% <100.00%> (+0.03%)
:arrow_up:

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

Impacted Files
Coverage Δ

sphinx_exercise/post_transforms.py
93.79% <100.00%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 26c3150...dbd4ddc. Read the comment docs.


Create benchmarks for base64

Motivation
We love benchmarks. In order to ensure that our base64 performance does not regress we should have a bunch of benchmarks that test different aspects. Since we will have a bunch of those in the future lets get them into a separate target.
Changes

Create Base64Benchmarks target
Add Base64 benchmarks

Use scaling factor one if the example data is sufficiently large (1MB)
Use scaling factor kilo if the example data is so small that measuring perfs overhead is to large (mostly in the jwt head examples)

Result
We have baselines to test against.

@swift-ci test

@swift-ci test

Oops - @kperryua already did that 😛


[NodeJS发送消息速度好慢

Before Creating the Enhancement Request

[X] I have confirmed that this should be classified as an enhancement rather than a bug/feature.

Programming Language of the Client
Node.js
Summary
测试单节点for循环进行消息发送，每秒只能发送700条左右
Motivation
测试单节点for循环进行消息发送，每秒只能发送700条左右
Describe the Solution You'd Like
测试单节点for循环进行消息发送，每秒只能发送700条左右
Describe Alternatives You've Considered
测试单节点for循环进行消息发送，每秒只能发送700条左右
Additional Context
测试单节点for循环进行消息发送，每秒只能发送700条左右

Perhaps you could try putting the consumer and producer into a node.js worker to avoid the latency caused by the single-threaded event loop.
I'm not sure if the latency is caused by having too many queues in the event loop, but you could try it.

I only tested the message sending rate by performing a loop-based message sending test. Both the C++ and Java clients achieved about 2000 messages per second, but the rate for the Node.js client is significantly lower. I'm not sure if there's an issue with the testing method.


Cannot deploy 'NRT Authentication Methods Changed for VIP Users' Analytic Rule

Describe the bug
'NRT Authentication Methods Changed for VIP Users' cannot be deployed.
https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Azure Active Directory/Analytic Rules/NRT_AuthenticationMethodsChangedforVIPUsers.yaml
To Reproduce
Steps to reproduce the behavior:

Go to add new rule. Select
See error 'distinct' operator: Failed to resolve scalar expression named '["User Principal Name"]'. on the Rule Logic Page

Expected behavior
We should see no error.

Hi @rweirtbg, We were able to deploy the query as this is part of Azure Active Directory solution. Can you please re try from your end? Also please make sure that the sample data is there in your workspace.

Hi @rweirtbg, Gentle Reminder: We are awaiting for your response on this issue. If you still need to keep this issue active please respond on it in the next 2 days. If we don't receive response, we will be close this issue.

Hi @rweirtbg, Since we have not received a response in the last 5 days, we are closing https://github.com/Azure/Azure-Sentinel/issues/8187 your issue as per our standard operating procedures. If you still need support for this issue, feel free to re-open at any time. Thank you for your co-operation.

Hi @v-rbajaj ,
Here's the screenshot.

I've got same error with this analytical rule. Please fix it.

Hi @rweirtbg, We were able to deploy the query as this is part of Azure Active Directory solution. Can you please re try from your end? Also please make sure that the sample data is there in your workspace.

Is it possible to reopen issue? I've tested this rule on two differente tenants, same error.


audo

[Enter feedback here]

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

ID: 0a6cc248-f9e9-6fca-f2b0-46497ba91a4f
Version Independent ID: 27815eeb-485e-11ec-c78f-d14893f36add
Content: Security auditing (Windows 10) - Windows security
Content Source: windows/security/threat-protection/auditing/security-auditing-overview.md
Product: m365-security
Technology: mde
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@e0i . please close this issue #9991 immediately.


Parse SDK ParseQuery .include query error

Hey @darshana-ios, can we get more details on what you are seeing?
It's really hard to be able to triage/investigate this issue without more details.


Guide on failed checks

Is there a guide for "failed checks"?

Reall good question which will be addressed via https://github.com/ropensci-review-tools/pkgcheck/issues/151, so i'll close this one here for now. Thanks for asking!


onPinchEnd support

Great work on this! Can you please also add PinchEnd support? I'm not a Git user so I can't contribute myself.

Agree. The pinch start event is rather important too. Would be really nice to have all the hammer events supported actually :)

Has this been resolved?

This was added in commit f8e6afab5817b3f2a99bbc115fa1d7d737f99063. This issue can be closed.


Are nested if statements possible?

The following code:
{% if project.technologies_used %}

    'made with:'

    {% for technology in project.technologies_used %}
      {% if technology.website %}{%endif%}

      {% if technology.website %}{% endif %}

{% endif %}

Is giving me the following error:
Error: Unexpected end of tag "if" on line 20 in file

Is this because nested if statements aren't possible? The line indicated by the error is the last line in the example I gave.

You are missing a {% endfor %}.

D'oh. Thanks.


MRU panics when calibration file is not found

Reproduce:

Delete the navcam flats
Try to calibrate a navcam
BOOOM!

This happens when a new cal file is added but /updatemanifest.sh is not run.

Also when caldata.toml is missing or if user specifies a calibration profile that doesn't exist

Removed panics and replaced with smarted handling of anyhow::Result

Completed


[Feature Request] Add the ability to localize into other languages

I'm creating a ready-made server solution and would like to translate the messages in the /help command into my language, so that it would be easier for future administrators using the plugin to understand the commands and their functionality.
The most ideal solution is to add the ability to localize all plugin messages so that they can be translated into other languages, as well as design them in a single style (I also want to make help commands in the same server style)
I’m not sure how much this will be a necessary functionality directly, but I’m sure that it will be an excellent addition to the existing functions of the plugin

All of the messages from cloud are now translatable: 93e5335fecafe8d5277e28edf11e81210b6b6e54
https://crowdin.com/project/incendo-cloud
Leaving this issue open until the AP-specific messages are localizable.


VSCode complains about webpack syntax code in an html file

Please help me understand how I can resolve this situation.  From Visual Studio Code 1.24.1, on Windows 10, I have an html file that is associated to a  Webpack project.  It looks like this...
<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <meta name="viewport" content="<%= htmlWebpackPlugin.options.mViewPort %>">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <link rel="icon" type="image/png" sizes="16x16" href="<%= htmlWebpackPlugin.options.mViewPort %>">
        <link rel="stylsheet" href="<%= htmlWebpackPlugin.options.mfonts %>">
        <link rel="icon" type="image/png" sizes="16x16" href="<%= htmlWebpackPlugin.options.favicon %>">
        <title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>

    <script src="<%= htmlWebpackPlugin.files.chunks.main.entry %>">

</body>
</html>

But Visual Studio Code is complaining about line 14 (script element towards the bottom) and is saying that Deceleration or statement expected and Expression expected.  (1)Why is this happening, (2) How can I disable this error if its not a bug?
Many thanks!

I resolved my issue by closing my script block! Sorry for the post!


Gaussian Blur in PowerToys Run

Summary of the new feature/enhancement
I'd like to propose PowerToys Run to blur behind the search bar. This matches up a bit to how mcOS and iS do their system-wide search bar and looks a bit cleaner, in my opinion. As this is likely to have a performance hit, it should be an option not a default, and matching up with fluent design it seems it should be a Gaussian Blur.
Proposed technical implementation details (optional)
I'd like to state it's probably better to blur across all active monitors, rather than just the current. Or at least to have an option for that.
Maybe the option for this feature could also follow the system-wide Transparency effects setting too.

+1 for this.
Also a darkened/blurred background for the entire screen as an option it would be great

We are tracking those two items in: https://github.com/microsoft/PowerToys/issues/2428
In the initial proposal we are using Acrylic in the search bar and results list. Additionally, we have a semi-transparent backdrop so it stands out a bit more (similar to Shortcut Guide). Please provide any feedback you have there so we can track it :)!

Hi @lazerl0rd, as @niels9001 mentioned the issue is being tracked in #2428. Please add to the conversation there!
closing as duplicate issue


Update eWeLink_ZB-SW02.md

adding z4d and alternative zigbee id

The fact that it's a TYZB01_6sadkhcy means its not eWeLink. Whats the link to the device?


Combine authorization for Okta and Server2server

This PR fixes the problem that Okta and Server2server auth had two different ways of tracking claims, which required two different ways of doing Authorization, which made it very hard to implement both types of Auth in a single Azure function.
Okta sends "organization" (Okta Group) claims, and server2server auth sends "scope" claims, per our "FHIR Auth standard". This PR is behind-the-scenes refactoring so that, internally, both styles are tracked as "scope" claims.
Currently only the Waters submission, the Delivery, and the Submission API, and ValidateFunction endpoints implement both styles of Auth.   This PR is prep work for implementing both styles of auth for many other functions, in particular, the settings functions.
For more info
Background information can be found in the 0016-authorization.md proposal doc, in this PR. (https://github.com/CDCgov/prime-reportstream/blob/jim/settings-auth/prime-router/docs/proposals/0016-authorization.md)
See #5290 for detailed work done.
Test Steps:

In addition to running regular smoke tests on this branch, be sure to run the okta auth test, not currently part of the regular smokes:

./prime test    (Run the regular smoke test)
./prime login --staging    (Be sure to login with a primeadmin user)
./prime test --run oktauth

Test the UI.

Changes

A very comprehensive list of changes can be found in #5290.

Checklist
Testing

[X] Tested locally?
[X] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[ ] (For Changes to /frontend-react/...) Ran npm run lint:write?
[X] Added tests?

Process

[N] Are there licensing issues with any new dependencies introduced?
[Y] Includes a summary of what a code reviewer should test/verify?
[N] Updated the release notes?
[N/A] Database changes are submitted as a separate PR?
[N/A] DevOps team has been notified if PR requires ops support?

Linked Issues

Fixes #5290

To Be Done

Follow-on work is in #1946, and tickets linked from there.

Specific Security-related subjects a reviewer should pay specific attention to

Does this PR include changes in authentication and/or authorization of existing endpoints?
Answer: YES

If you answered 'yes' to any of the questions above, conduct a detailed Review that addresses at least:

What are the potential security threats and mitigations? Please list the STRIDE threats and how they are mitigated

Answer:
Potential threats are Spoofing and Elevation of Privilege.
Mitigation is a comprehensive set of unit tests, and two large smoke tests:
./prime test --run server2serverauth,oktaauth
Tests for elevation of privilege have been added to the smoke tests.

Have you ensured logging does not contain sensitive data?  YES
Have you received any additional approvals needed for this change?  YES

That's a lot of code smells?


HDFS-16310. RBF: Add client port to CallerContext for Router

JIRA: HDFS-16310.
We mentioned in #3538 that adding the client port to the CallerContext of the Router.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m  3s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
11m 19s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
24m 18s

trunk passed

+1 :green_heart:
compile
23m 31s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
19m 47s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
3m 51s

trunk passed

+1 :green_heart:
mvnsite
3m 49s

trunk passed

+1 :green_heart:
javadoc
2m 50s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
4m  8s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
7m 10s

trunk passed

+1 :green_heart:
shadedclient
23m 18s

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

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 22s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 40s

the patch passed

+1 :green_heart:
compile
22m 43s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
22m 43s

the patch passed

+1 :green_heart:
compile
19m 55s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
19m 55s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
3m 43s

the patch passed

+1 :green_heart:
mvnsite
3m 49s

the patch passed

+1 :green_heart:
javadoc
2m 54s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
4m 35s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
9m  4s

the patch passed

+1 :green_heart:
shadedclient
25m  0s

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

_ Other Tests _

+1 :green_heart:
unit
17m 23s

hadoop-common in the patch passed.

-1 :x:
unit
331m 12s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs in the patch passed.

-1 :x:
unit
37m 38s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
1m  0s

The patch does not generate ASF License warnings.

609m 52s

Reason
Tests

Failed junit tests
hadoop.hdfs.tools.TestDFSAdminWithHA

hadoop.hdfs.server.federation.router.TestRouterRpcMultiDestination

hadoop.hdfs.rbfbalance.TestRouterDistCpProcedure

hadoop.hdfs.server.federation.router.TestRouterRpc

Subsystem
Report/Notes

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

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

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

uname
Linux a54cef6a1f5f 4.15.0-153-generic #160-Ubuntu SMP Thu Jul 29 06:54:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / c95077422057f600eb89d98f43d2b73fea1fb0db

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

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

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

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs hadoop-hdfs-project/hadoop-hdfs-rbf U: .

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

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

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

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 56s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 2 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
13m 15s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
24m 38s

trunk passed

+1 :green_heart:
compile
26m 42s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
19m 56s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
3m 49s

trunk passed

+1 :green_heart:
mvnsite
3m 48s

trunk passed

+1 :green_heart:
javadoc
2m 52s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
4m 12s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
7m 19s

trunk passed

+1 :green_heart:
shadedclient
23m 12s

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

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 22s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 40s

the patch passed

+1 :green_heart:
compile
22m 36s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
22m 36s

the patch passed

+1 :green_heart:
compile
20m  1s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
20m  1s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
3m 45s

the patch passed

+1 :green_heart:
mvnsite
3m 45s

the patch passed

+1 :green_heart:
javadoc
2m 49s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
4m  6s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
7m 52s

the patch passed

+1 :green_heart:
shadedclient
23m 49s

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

_ Other Tests _

+1 :green_heart:
unit
17m 24s

hadoop-common in the patch passed.

+1 :green_heart:
unit
328m 57s

hadoop-hdfs in the patch passed.

-1 :x:
unit
37m 17s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
1m  9s

The patch does not generate ASF License warnings.

609m 55s

Reason
Tests

Failed junit tests
hadoop.hdfs.rbfbalance.TestRouterDistCpProcedure

Subsystem
Report/Notes

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

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

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

uname
Linux 6e591de47bbb 4.15.0-153-generic #160-Ubuntu SMP Thu Jul 29 06:54:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / f1f402f949d45da4a2afab76885ba374b69d0fd0

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

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

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

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs hadoop-hdfs-project/hadoop-hdfs-rbf U: .

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

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

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

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m  1s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
12m 38s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
24m 21s

trunk passed

+1 :green_heart:
compile
5m 54s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
5m 22s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m 13s

trunk passed

+1 :green_heart:
mvnsite
2m  4s

trunk passed

+1 :green_heart:
javadoc
1m 40s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
2m 20s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m 36s

trunk passed

+1 :green_heart:
shadedclient
23m  6s

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

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 23s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 49s

the patch passed

+1 :green_heart:
compile
5m 52s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
5m 52s

the patch passed

+1 :green_heart:
compile
5m 31s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
5m 31s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m  6s

the patch passed

+1 :green_heart:
mvnsite
1m 57s

the patch passed

+1 :green_heart:
javadoc
1m 28s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
2m 12s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m 47s

the patch passed

+1 :green_heart:
shadedclient
23m 15s

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

_ Other Tests _

+1 :green_heart:
unit
356m 42s

hadoop-hdfs in the patch passed.

-1 :x:
unit
33m  3s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt
hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 57s

The patch does not generate ASF License warnings.

525m 11s

Reason
Tests

Failed junit tests
hadoop.hdfs.rbfbalance.TestRouterDistCpProcedure

Subsystem
Report/Notes

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

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

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

uname
Linux 2c5b168f9454 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 0bad062784569c647a1103c6816c91668d9ff50e

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3635/3/testReport/

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

modules
C: hadoop-hdfs-project/hadoop-hdfs hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3635/3/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

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

This message was automatically generated.

There's a failure with TestRouterDistCpProcedure but I don't see how it can be related.
Can you confirm?

There's a failure with TestRouterDistCpProcedure but I don't see how it can be related. Can you confirm?

Thank @goiri for your review. This failed unit test is unrelated to the change. It failed because timeout and work fine locally.

Hi @tasanuma @jojochuang @ferhui @ayushtkn , could you please take a look at this. Thank you very much.

@tomscut With the latest commit, it seems Router adds a client port even if dfs.namenode.audit.log.with.remote.port=false. We may want to add a client port only when dfs.namenode.audit.log.with.remote.port=true. What do you think of it?

@tomscut With the latest commit, it seems Router adds a client port even if dfs.namenode.audit.log.with.remote.port=false. We may want to add a client port only when dfs.namenode.audit.log.with.remote.port=true. What do you think of it?

Thanks @tasanuma for your careful consideration and comments. This problem does exist at present. But dfs.namenode.audit.log.with.remote.port should only work within the Namenode. We can treat the Router as the client of Namenode. From the perspective of the Namenode, the behavior of the client is not controllable because the real client may also set the clientPort. What do you think of this?

@tomscut Thank you for your explanation. It makes sense to me. Now I'm +1.

Merged it. Thanks for all your contributions to this work, @tomscut. Thanks for your review, @goiri.

Thanks @tasanuma for your comment and the merge.