Error trying to connect to AWS

Hello! I'm new to Elixir and trying to get a connection to AWS. I've setup AWS S3 and able to connect to it other environments, so I believe my credentials are good. However, I'm unable to connect here. The changes to mix.exs and config.exs are as follows:
#mix.exs
  def application do
    [applications: [:ex_aws, :hackney, :poison]]
    [extra_applications: [:logger]]
  end
  defp deps do
    [
      {:ex_aws, "~> 1.1"},
      {:poison, "~> 2.0"},
      {:hackney, "~> 1.6"}
    ]
  end
#config.exs
  config :myapp, :ex_aws,
    access_key_id: [{:system, "xxxxxxx"}, :instance_role],
    secret_access_key: [{:system, "xxxxxxx"}, :instance_role],
    region: "us-west-2"

The following error shows. Also, not sure why it is picking up 'AWS_ACCESS_KEY_ID' when i've specified it in config. Error indicates may be environment variables, but not sure where/how it needs to be set. Thanks for any assistance!
** (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: %{"ap-northeast-1" => "s3-ap-northeast-1.amazonaws.com", "ap-northeast-2" => "s3-ap-northeast-2.amazonaws.com", "ap-south-1" => "s3-ap-south-1.amazonaws.com", "ap-southeast-1" => "s3-ap-southeast-1.amazonaws.com", "ap-southeast-2" => "s3-ap-southeast-2.amazonaws.com", "ca-central-1" => "s3-ca-central-1.amazonaws.com", "eu-central-1" => "s3-eu-central-1.amazonaws.com", "eu-west-1" => "s3-eu-west-1.amazonaws.com", "eu-west-2" => "s3-eu-west-2.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.Hackney, json_codec: Poison, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000)
    ** (EXIT) time out
    (elixir) lib/gen_server.ex:737: GenServer.call/3
    (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
    (elixir) lib/stream.ex:495: anonymous fn/4 in Stream.map/2
    (elixir) lib/enum.ex:3080: Enumerable.List.reduce/3
    (elixir) lib/stream.ex:1403: Enumerable.Stream.do_each/4
    (elixir) lib/enum.ex:868: Enum.find/3
    (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
    (stdlib) lists.erl:1263: :lists.foldl/3
iex(2)>
16:43:00.772 [error] GenServer ExAws.Config.AuthCache terminating
** (RuntimeError) Instance Meta Error: {:error, %{reason: :timeout}}

You tried to access the AWS EC2 instance meta, but it could not be reached.
This happens most often when trying to access it from your local computer,
which happens when environment variables are not set correctly prompting
ExAws to fallback to the Instance Meta.

Please check your key config and make sure they're configured correctly:

For Example:

ExAws.Config.new(:s3)
ExAws.Config.new(:dynamodb)

    (ex_aws) lib/ex_aws/instance_meta.ex:20: ExAws.InstanceMeta.request/2
    (ex_aws) lib/ex_aws/instance_meta.ex:52: ExAws.InstanceMeta.instance_role_credentials/1
    (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.security_credentials/1
    (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
    (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
    (stdlib) gen_server.erl:615: :gen_server.try_handle_call/4
    (stdlib) gen_server.erl:647: :gen_server.handle_msg/5
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Last message: {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: %{"ap-northeast-1" => "s3-ap-northeast-1.amazonaws.com", "ap-northeast-2" => "s3-ap-northeast-2.amazonaws.com", "ap-south-1" => "s3-ap-south-1.amazonaws.com", "ap-southeast-1" => "s3-ap-southeast-1.amazonaws.com", "ap-southeast-2" => "s3-ap-southeast-2.amazonaws.com", "ca-central-1" => "s3-ca-central-1.amazonaws.com", "eu-central-1" => "s3-eu-central-1.amazonaws.com", "eu-west-1" => "s3-eu-west-1.amazonaws.com", "eu-west-2" => "s3-eu-west-2.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.Hackney, json_codec: Poison, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}
State: ExAws.Config.AuthCache

You may have read outdated docs, the config is not namespaced under your app anymore.
You should just do
  config :ex_aws,
    access_key_id: [{:system, "xxxxxxx"}, :instance_role],
    secret_access_key: [{:system, "xxxxxxx"}, :instance_role],
    region: "us-west-2"

Removing app name doesn't seem to make a difference. I've even exited iex and restarted, iex -S mix. However, it does now show my access_key_id/secret_access_key in the error log.

Does
ExAws.Config.new(:s3)

I've tried that in my method before and it gives the same error. Not exactly sure where it should go, but I placed in config.exs and also called it from command line, same error.

Er so question, why are you striking out "xxxx" from the {:system, "xxxxxxx"}? That should't have your key, it should have the environment variable that you're using, which isn't a secret.

I guess I need to research how to setup the environment variable. thanks for your time.


Asterisk in email address

Laravel Version: v10.1.4
PHP Version:8.1.15
Database Driver & Version: Mysql 8.0.27

Description:
I believe that the bug itself is not in Laravel, but in PHP itself!
There is something interesting about the native php email validation function (filter_var, FILTER_VALIDATE_EMAIL), the same is used in Laravel Validation.
Steps To Reproduce:
<?php
	$email =<EMAIL_ADDRESS>
	if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
		echo("$email is a valid email address");
	}
?>

Closing this one as it is not a bug or issue with Laravel.


Added --jobs to cast create2

The --jobs argument was added in https://github.com/foundry-rs/foundry/pull/6212 .
cast create2 help:
❯ cast create2 -h
Generate a deterministic contract address using CREATE2

Usage: cast create2 [OPTIONS]

Options:
  -s, --starts-with <HEX>      Prefix for the contract address
  -e, --ends-with <HEX>        Suffix for the contract address
  -m, --matching <HEX>         Sequence that the address has to match
  -c, --case-sensitive         Case sensitive matching
  -d, --deployer <ADDRESS>     Address of the contract deployer [default: 0x4e59b44847b379578588920ca78fbf26c0b4956c]
  -i, --init-code <HEX>        Init code of the contract to be deployed
      --init-code-hash <HASH>  Init code hash of the contract to be deployed
  -j, --jobs <JOBS>            Number of threads to use. Defaults to and caps at the number of logical cores
  -h, --help                   Print help

@all-contributors Add @RedaOps for docs 🤙


Add Restrictive.element, managing Url changes through ports

The interface will be exactly the same as application, but:

You need two ports, one for writing and one for receiving the Url
You are able to mix the elm app with different islands on your page, for example if you are using Astro

Implementation: Very straightforward in Restrictive above application.
Outlook: We could actually make a builder where you construct the Restrictive app, up from a sandbox, adding features.
Discussion:
https://github.com/elm/browser/blob/1.0.2/notes/navigation-in-elements.md

Prior art: https://github.com/choonkeat/elm-element-navigation


Data structures/Algorithms section

As discussed at #761, we should have this category which would include:

SwiftSortedList - A sorted list implementation written in Swift :large_orange_diamond:
Changeset - Minimal edits from one collection to another
BTree - Fast ordered collections for Swift using in-memory B-trees :large_orange_diamond:

#739 and #672

@vsouza @dkhamsing approve?


Add ExprNode::subquery,

Add ExprNode::subquery
Add ExprNode unit tests of syntatic sugar functions and From impls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

61 of 61 (100.0%)  changed or added relevant lines in 1 file are covered.
55 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 97.905%

Files with Coverage Reduction
New Missed Lines
%

test-suite/src/tester/mod.rs
19
87.5%

core/src/data/value/binary_op/i64.rs
36
96.29%

Totals

Change from base Build<PHONE_NUMBER>:
-0.08%

Covered Lines:
38221

Relevant Lines:
39039

💛  - Coveralls


feat($interval): allow function to calculate the delay for each iteration.

Request Type: feature
Component(s): misc core
Impact: small
Complexity: small
Detailed Description:
Example use case:
var START_DELAY = 1000;

$interval(
  function() { ... },
  function(iteration) { return ((Math.pow(2, iteration) - 1) / 2) * START_DELAY; }
);

I agree with @petebacondarwin, what we have is closer to how setInterval works so we should stick closer to that

I agree with both contributors, this would add complexity to the API / codebase that ends up unused in 99% of the cases.


Going off hook is often not happening on USR 5637

I finally received my new (used) USR 5637 and have it hooked up. I have already flashed the most recent firmware and it appears to support voice activity.
And, indeed, things do seem to work for the most part. However, many times when a call is screened (I cannot yet see a pattern to it), the log shows "Going off hook..." but the phone keeps ringing and ringing - at least until I hang up or the call goes to my local telecom's voice mail system. And then I start seeing what I expect to see in the log. Stuff like:
Jan 16 14:26:26 callattendant[3548]: RING LED blinking: 10 times
Jan 16 14:26:32 callattendant[3548]: >> Playing greeting...
Jan 16 14:26:36 callattendant[3548]: >> Starting voice mail...
Jan 16 14:26:36 callattendant[3548]: MSG LED blinking
Jan 16 14:26:36 callattendant[3548]: > Waiting for key-press...
Jan 16 14:26:45 callattendant[3548]: Timeout limit exceeded: 8
Jan 16 14:26:45 callattendant[3548]: Exiting wait_for_keypress(8): Timeout - wait time limit reached.
Jan 16 14:26:45 callattendant[3548]: MSG LED turned off
Jan 16 14:26:45 callattendant[3548]: MSG count: 0
Jan 16 14:26:45 callattendant[3548]: > Going on hook...
Jan 16 14:26:45 callattendant[3548]: Waiting for next call...
Sometimes this actually works. I can hear a greeting and even record a voice message and play it back via the web UI. But I would say that the majority of the time, I encounter this mis-behavior.
Here are the screening variables from my config file:
SCREENED_ACTIONS = ("answer", "greeting", "voice_mail")
SCREENED_GREETING_FILE = "general_greeting.wav"
SCREENED_RINGS_BEFORE_ANSWER = 0
Any suggestions?

I'm not sure what you expect to have happen here. The log output supplied looks normal to me for 'screening' action. One problem I can see here is related to the messed up configuration of WAV files in the app. The correct WAV file for screening is "screener_greeting.wav" which you don't have at the moment. This was my fault for not checking-in my WAV files that match the 'screening' behavior as currently intended. Sorry for that.
The addition of the correct WAV files and changes to installation and configuration should be in the repo tomorrow. A new release shortly thereafter if you want a Python 'wheel'.

Thanks, as always, for your time and help!
I agree that everything "looks" right in the log I attached. I will have to try to do better, if I can today. But what is happening is that the log shows "going OFF HOOK", but that does not seem to happen with the modem even though it says so. The phone continues to ring and ring - which should not happen if the modem has indeed gone off-hook, right?
No worries about the .wav file. I really am planning to use one that says "Your call is being screened. If you are a human, press 1 to be temporarily unblocked, hang up, and immediately call back" before transferring all screened calls to voice_mail where I will look for the key press and (hopefully - but still not quite sure how) this will result in the activation (on a timeout of maybe 2 minutes) of the Permit Next Call mechanism.
It seems to me that the existing Permit Next Call mechanism does NOT have a timeout. It simply sets the semaphore and leaves it there for however long it takes for another call to come in. I am not sure that makes great sense in any use case I can think of. So I think it would be great if there was a configurable timeout for Permit Next Call in minutes and that it always be applied. Of course, if set to zero, I guess this could also be ignored for those who don't want it. I am not sure I can do any of this on my own given my limited python skills.
Thanks

I'd like to see more log output - especially the output from the modem in response to commands sent. If you set DEBUG = True in your app.cfg settings, all modem exchanges will be logged. Also, please don't truncate the output you are attaching to a problem report. I want to see what output was logged before the start of what you submitted.
That said, I think your problem is setting the RING count to 0. I should probably disallow this value as it makes no sense given the caller-id doesn't show up until after the 1st ring (usually).

At the risk of being redundant...https://github.com/thess/callattendant/issues/6#issuecomment-1881840818

"Permit next call" feature is just what it was intended for. Implementing a different mechanism with a specified timeout (or not) makes sense in the context you describe. You can always blacklist the number of the caller who can follow directions even if their intent is not what you think.

Your use-case example of a timeout on the Permit Next Call feature is not necessarily the right action. I think you are proposing a different feature by which you want to wait for a specific caller who is expected to call back before some time-out for that caller only. The current screening implementation will "whilelist" a caller who presses '0' so their callback will work. If you didn't want to talk to them, you will need to remove them from the Whitelist and optionally, add to Blacklist. What doesn't work with your proposal is as follows:

Caller A presses # (starts callback timer) and hangs up.
Caller B calls and rings thru and is not screened and clears permit next call flag.
Caller A calls and if not busy, gets screened again.

You are certainly correct that the use case you mention can happen. I guess I have to wonder about how frequently it might happen during a relatively short interval?
I do think your idea to whitelist for a specific interval would be far better than my hair-brained, one-off. It would be more specific and not interfere with the regular permit next call mechanism.
And with the current Permit Next Call, is there a way to turn that off? For example, say I am doing a 2-step verification and I press the button on the web UI to do this. But the call does not come within a reasonable period. That might happen, for example, if the bank has the wrong number on file. So how does a normal user dis-engage it? The semaphore can be manually deleted, of course, and that should work. But if that isn't done, how does a user cancel the permit next request?
Thanks for all of your time and patience with this. I will look for the screener_greeting.wav to make it to github.

When "Permit Next Call" is enabled, the button in the UI changes to "Permit Next Call (ON)", press button to turn it off -- It's a toggle.

Sorry to have pulled things off-topic. My original concern was with delays in the modem actually getting off-hook when a call is being screened.
Right now, I am just trying to get the whitelist on 0 to work. I have gotten and configured the new screened_greeting.wav file. Thanks. And I have configured:
SCREENED_ACTIONS = ("answer", "greeting", "voice_mail")
SCREENED_GREETING_FILE = "screener_greeting.wav"
SCREENED_RINGS_BEFORE_ANSWER = 0
In this configuration, things basically "work" (or at least some of the time). What I don't understand is why the phone keeps ringing so many times in this configuration. I really want to hear at most 1 ring if I can. This seems work work when a call is blocked. I have both rings_before_answer set to 0. Based upon your above comment, I also tried changing the screened rings_before_answer to 1. But that did not improve things (nor would I expect it to do so based upon what little I understand at this point).
I have attached the console log of 2 calls coming in as well as the modem log file. I did have to add a line to call_handler in modem.py to get newlines in this output making it more readable:
if dev_mode:
logfile.write(modem_data.encode())
logfile.write(os.linesep.encode())
logfile.flush()
Sometimes I get only 1 ring when screening, but most of the time 2 or even more.
Thanks
callattendant.log
modem.log

Here is a console log showing what I mean. Please note the RINGs that follow the message "going off hook" on line 29 (there are 3). You will note that I have inserted sending the modem 'ATH1' before anything else in an effort to get the line off-hook more quickly. Sadly, that does not seem to make any difference. Also, I have added a core to the virtual box that is running Ubuntu/callattendant in hopes that it might help speed this up a bit. The virtual box certainly seems more snappy to me now. But it has not really done anything about this problem. Thanks!
Jan 17 14:52:18 callattendant[2699]: Waiting for next call...

Jan 17 14:52:33 callattendant[2699]: > Checking blacklist(s)
Jan 17 14:52:33 callattendant[2699]: >> Checking blocked patterns...

Jan 17 14:53:25 callattendant[2699]: > Playing /home/davidw/.callattendant/notifications/screener_greeting.wav...

Jan 17 14:53:42 callattendant[2699]: MSG LED blinking
Jan 17 14:53:42 callattendant[2699]: > Waiting for key-press...
 Aborting.
Jan 17 14:53:49 callattendant[2699]: Message Event triggered
Jan 17 14:53:49 callattendant[2699]: Resetting Message Indicator to show 0 unplayed messages
Jan 17 14:53:49 callattendant[2699]: MSG LED turned off
Jan 17 14:53:49 callattendant[2699]: MSG count: 0
Jan 17 14:53:49 callattendant[2699]: > Going on hook...
Jan 17 14:53:49 callattendant[2699]: _send_and_read('ATH0','OK',5)
Jan 17 14:53:50 callattendant[2699]: '\r\n'
Jan 17 14:53:50 callattendant[2699]: 'OK\r\n'
Jan 17 14:53:50 callattendant[2699]: >>> Lock released in hang-up()
Jan 17 14:53:50 callattendant[2699]: Waiting for next call...
and here is what is added to the modem.log:
RING
DATE=0117
TIME=1452
NMBR=xxxxxxxxxx
NAME=WIRELESS CALLER
RING
RING
RING

BTW - I decided to get around the virtualization of the serial port in the Ubuntu virtual box by registering the USR modem's USB device exclusively to the virtual box itself. With the virtual box running, the Windows host doesn't see it. In this way the modem shows up on /dev/ttyACM0 instead of on /dev/ttyS2. I had hoped that this might improve things. But so far, I see no difference. Rats!

The problem as I now see it lies in the time-stamps between "Going off hook" and "Lock acquired...". That tells me the thread is stalled waiting for the serial port lock that the modem data handling thread may be holding too long or not releasing it as it should. I see a couple of problems with the code as it is currently structured but don't have a fix in mind yet.
 MS, VirtualBox, other? I don't think that to be an issue but as you mention serial line and USB devices can sometimes be a problem.

One other thing - most important. Please run the application as supplied with a clean install (custom config OK). Do not ask me to debug any problems which may have been introduced by your local modifications. If you must, then I insist you supply your version for my review and/or testing.

The problem as I now see it lies in the time-stamps between "Going off hook" and "Lock acquired...". That tells me the thread is stalled waiting for the serial port lock that the modem data handling thread may be holding too long or not releasing it as it should. I see a couple of problems with the code as it is currently structured but don't have a fix in mind yet.

Wow, I didn't even look at that. That IS a long time!

 MS, VirtualBox, other? I don't think that to be an issue but as you mention serial line and USB devices can sometimes be a problem.

This is Oracle Virtualbox. I have really not had problems with it. The same Ubuntu install runs a Heyu (home automation) server and a few other things (ssh, etc) but all of these are low use, not big performance hogs. Initially, I was allocating only a single core to Ubuntu's virtualbox. That always seemed sufficient up until now. But I have since added another. However, doing so clearly has not solved (or even impacted) this problem.
Heyu uses an on-motherboard serial port on /dev/ttyS1. It is set up as a host port and while I can see it in the Windows host, it cannot be accessed while the virtualbox runs. That seemed to work well enough so that is how I set up the new USR modem initially on /dev/ttyS2. Since then, I have assigned the modem via its USB device to the virtualbox and now the Windows host cannot see it at all when the virtualbox runs. It is now found at /dev/ttyACM0. Sadly, this clearly has not solved (or even impacted) this problem.
Thanks

One other thing - most important. Please run the application as supplied with a clean install (custom config OK). Do not ask me to debug any problems which may have been introduced by your local modifications. If you must, then I insist you supply your version for my review and/or testing.

Of course! This is a stock install (not yet updated to the most recently added stuff - except for the new .wav file for screening). It is true that I have tried to make point changes in an effort to see if I could get off-hook more rapidly. But when they have not helped, I reverted them. I also made (and have kept so far) the single modification to modem.py so that the modem's location has been hard-coded. Other than that, this is stock.
Truth is, I am not at all sure how to best update my current, "working" install to use the files you updated here. One thing I see is that requirements.txt has been fairly dramatically changed over the one I have from an install less than a week old. This implies some serious changes to the supporting stuff and I am not sure how to get that stuff updated either.
Thanks for all of your time and help on this. I feel so close - but still so far :-)

I don't think the problem here is the GIL. There is nothing compute bound in the app. I do suspect the modem serial input thread may not yield to the pending event delivery in the main call handling thread. I have always suspected the modem input implementation using serial.readline(), as originally designed, was going to need attention. I dislike long blocking timeouts in a loop as a programming paradigm. A quick test to see if indeed this is the case try the attached patch to modem.py. This is not the solution I am actually considering, but it will tell me if I am on the right track.
test_thread_yield.patch.txt
Also - You shouldn't need to set ENV = "development" except for your own curiosity. I don't need modem.log
WRT your install/update quandary, I will post some help here in a bit.
BTW - I'll see your 30 and raise you another 30 (almost).

Thanks Ted! I was not sure if the patch was from the newest (which I don't yet have) or the previous version (which I do still have). So I hand edited the 2 changes into place.
I have to say that the difference is immediately startling! I have had 3 screened calls in a row all get handled on the 1st ring! Wow, that is impressive! And what an improvement!
BTW - I stopped counting years as an engineer when I retired from paying work. And I don't really want to think about all of those non-paying years :-) I obviously still hack-around with this stuff.
I look forward to being able to install/update without perturbing what I have too much.
Finally, for some reason unknown, leaving the USR modem registered to the virtualbox as a USB device creating /dev/ttyACM0 has stopped working and I get console errors that the port cannot be opened. It MAY be that this occurs only after a stop/start cycle once the virtualbox has been started (ie, after virtualbox startup it MAY be fine). For right now, I have gone back to using the Windows host COM port on /dev/ttyS2. And my results described above are from that configuration.
Best!
Thanks so much for all of your time and effort in this.

Regards the USR modem when connected as a USB device in the virtualbox. I can confirm that the pattern of failure is:
(a) Start the virtualbox and it is found.
(b) Stop callattendant (I have it running as a service so to terminate it I use stop-callattendant from the desktop icon).
(c) Start callattendant (using start-callattendant from the desktop icon)
And no matter how many times I do (b), (c) the modem is no longer opened/used. I wonder if there is something that fails to fully close the port during shutdown?
Again, this does not seem to happen when using the Windows host COM port on /dev/ttyS2.

Sorry, I've never tried running inside a VM using a serial USB device -- perhaps sometime in the future. I'm assuming you do have the VBox Guest Additions installed in your VM.
Some installation hints:
You can always install the latest bits directly from github

# Using pip
$ source venv/bin/activate
$ pip3 install "callattendant@git+https://github.com/thess/callattendant"

Don't be afraid to delete the installed package from venv/lib/python3.x/site-packages

$ rm -rf venv/lib/python3.x/site-packages/callattendant*

Python setup is pretty resilient and will (usually) restore anything missing. You can also remove a package using pip uninstall <pkg-name> with the venv activated if installed with pip.
Or... you can wait until I spin up a new "wheel".

Thanks. I will start working up to doing an update. With all things "working" now, I gotta take a break for a while and catch up on some other chores.
I do think I have the guest additions installed in my Ubuntu box. To the best of my knowledge I am not using them that much. I tried to install them into the virtualbox I have running Android x86 but that just doesn't work.
I need to read up on these wheels. As I said, I know next to nothing about Python.
Best and thanks again! These results are great. And I have cobbled-together some stuff to display and control some aspects of callattendant from my Android phone's home screen. It is basic but it works well enough for now and adds some convenience.

BTW - with your patched modem.py, I have been able to scale my unbuntu virtualbox back down to a single core and all is working fine. That's great!

Fixed by<PHONE_NUMBER>787b1b19122b676ee3eaa2117ce55c for now


Minecraft 1.19.4 asynchronous effect bug

Spark link
My Server cannot update spark profilings on spark webapp, I uploaded .profiling in 'others'
Stack trace
https://paste.gg/p/anonymous/0efae70c9f3f4d66945b81b9a55480a7/revisions

Actions to reproduce (if known)
if player login in that place, server will crash immediately and the server then prints an error report
Purpur version
[17:03:58 INFO]: Current: git-Purpur-1964 (MC: 1.19.4)*
Previous: git-Purpur-1963 (MC: 1.19.4)

You are running the latest version

Agreements

[X] I am running the latest version of Purpur available from https://purpurmc.org/downloads.
[X] I have searched for and ensured there isn't already an open issue regarding this.
[X] I ticked all the boxes without actually reading them
[X] My version of Minecraft is supported by Purpur.

Other
This error report has probably happened many times, and I think it is because Paper asynchronously spawns a hardmode-specific effect spider when executing asynchronous block generation, while Paper does not allow asynchronous effects
This is plugins list:

This is datapacks list:

This is spark profiling:
spark.zip

Oh maybe I wrote backwards the location of datapack and plugins ;)

[x]  I ticked all the boxes without actually reading them

Please read through the issue template carefully when filling it out.

For future reference,

Are you able to reproduce this issue on the latest version of Paper?
Are you able to reproduce this issue without any plugins installed?
Are you able to reproduce this issue with no datapacks enabled?

If any or all of the above are true, then it's not an issue with Purpur.


cmap iter with erase_at visits element twice

I've been fuzzing my own hash table implementation inspired by STCs cmap, and found this unexpected behavior.
STC seems to have the same problem, here is the code to reproduce it:
#define i_key uint8_t
#define i_val uint8_t
#define i_tag name
#include "STC/include/stc/cmap.h"

int
main(void)
{
	cmap_name map = cmap_name_init();
	cmap_name_insert(&map, 1, 0);
	cmap_name_insert(&map, 70, 35);

	size_t count = 0;
	for (cmap_name_iter it = cmap_name_begin(&map); it.ref; ) {
		if (it.ref->second % 2 == 0)
			it = cmap_name_erase_at(&map, it);
		else
			cmap_name_next(&it);
		++count;
	}

	printf("count: %zu (expected 2)\n", count); // count is 3 run
}

The problem occurs when two values are inserted into the last bucket:
even inserted to end
odd inserted to end, moved to start
the iteration now looks like this:
      | del e, mov o back to end
o000e | o000e | 0000o
^           ^       ^
1.          2.      3.

notice that we visit "o" twice.
I don't think this is fixable using backshift deletion, but I think this behavior should be documented.

https://github.com/stclib/STC/blob/0516aa3ae823ed9a22b2c5f776948c8447c32c31/docs/cmap_api.md?plain=1#L12-L13
This seems wrong, since the order of elements can change when erasing.

Ah. didn't think of that. Yes, it can't really be fixed without using tombstones instead of back shifting. As you say, fixing the documentation may be OK. When iterating while removing, it means you may visit elements twice, which is what the documentation should state. This is still a viable and efficient way to remove elements which matches a predicate, even though you may have to reject some elements twice.

closed as won't fix.


Fix Incorrect Array Initialization with nillion.SecretArray

This PR corrects the instantiation of sec_array, which was incorrectly set to use nillion.SecretArray instead of the intended nillion.Array.

Actually we have changed the Python Client Reference recently so won't merge this conflict. Appreciate the PR though!


shutdown issue

hi i found a problem with shutdown code introduced in orientdb.
The shutdown in orientdb are not handled directly using java shutdown hook but with SignalHandler.
It gives more possibilities but gives also a side effect. The handlers is executed not following the right order in closing VM.
the right order is .... before VM call all hooks installed, deregistring other handlers, close classes destroying data before to exit ... and then the database connections are closed.
The connections to database might be closed in the ending , not in the beginning of shutdown.
Now it is possible the connections are closed before the VM is completing to destroy data in the VM.
In my code now i have this problem .... a hook find the connection already closed in the while it want save status of server before to shutdown.
the machine is closed calling CTRL+C.

this is a prototype of the class introducing priority ...

public class PriorityShutdown implements Runnable {
	IdentityHashMap currentHooks=new IdentityHashMap() ;

	static class TBlock implements Comparable{
		final Thread thread;
		final int priority;
		public TBlock(Thread thread, int priority) {
			super();
			this.thread = thread;
			this.priority = priority;
		}
		@Override
		public int compareTo(TBlock o) {
			return priority-o.priority;
		}

	}

	PriorityQueue queue = new PriorityQueue<>();
	public PriorityShutdown() throws NoSuchFieldException, SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException {
		super();

		 Field hooksField = Class.forName(
				    "java.lang.ApplicationShutdownHooks").getDeclaredField(
				    "hooks");
				  hooksField.setAccessible(true);
				  @SuppressWarnings("unchecked")
				IdentityHashMap  tcurrentHooks = (IdentityHashMap) hooksField
						    .get(null);
				  currentHooks.putAll(tcurrentHooks);
				  tcurrentHooks.clear();
				  Thread h=new Thread(this);
				  tcurrentHooks.put(h,h);

	}
	 public void add(int p,Thread t){
		 queue.add(new TBlock(t,p));

	 }
	 void runHooks() {
	        Collection threads;

	        synchronized(PriorityShutdown.class) {
	            threads = currentHooks.keySet();

	        }

	        for (Thread hook : threads) {
	            hook.start();
	        }
	        for (Thread hook : threads) {
	            try {
	                hook.join();
	            } catch (InterruptedException x) { }
	        }
	    }

	@Override
	public void run() {
		while (!queue.isEmpty()){
			Thread  tt=queue.poll().thread;
			tt.start();
			try {
				tt.join();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		runHooks();
	}

}

you can had a hook when the signal is notified .... so it is added in the end of the list ... or you can use this class with a very low priority....

in addition when you press CTRL+c in the starting or shutodown phase ... the server go in loop now.....

you rely on class implementation internals it may cause problems on non Oracle JVM vendors. But we should fix this problem for sure.

@publicocean0 , if you manage life-cycle of your application I recommend to disable shutdown hooks in OrientDB and invoke that according to lifecycle of your app.

yes ... how is possible to disable the shutdown hooks in Orientdb, i saw it using signal handler hot sun java hook for shutdown.

You can find my code for embedding OrientDB into webapp here:
https://github.com/OrienteerDW/wicket-orientdb/blob/master/wicket-orientdb/src/main/java/ru/ydn/wicket/wicketorientdb/OrientDbWebApplication.java
Especially pay attantion to this:
getApplicationListeners().add(new IApplicationListener() {

			@Override
			public void onAfterInitialized(Application application) {
				Orient.instance().startup();
				Orient.instance().removeShutdownHook();
			}
			@Override
			public void onBeforeDestroyed(Application application) {
				Orient.instance().shutdown();
			}
		});

thanks :)  i ll try to use this code

I tried it .... but the problem is not so simple as described.
Even if i force to remove shutdownhook with
Orient.instance().removeShutdownHook();
Orient on shutdown will execute the listeners that first at all remove threadlocal for db instance... all the layers above cant execute the call to database.
So i investigated to orientdb listeners. The listeners are surely a good idea to handle transversally the database events from different points in the software. But there is a bug for my opinion.
When the server start up , it registers the listeners in a specific orders... normally this order is so:
register listeners for

add listeners for threadlocals
add custom listeners (in my case add code for saving data to db)

when server shutdowns the order might be reverse.

execute custom listeners (before point 3)
execute thread local listners...

But Orient class dont permit to reverse the order because the data structure is a Set not a Queue.
It execute the order as it is registered. so before it remove trhead local , then it try to save data giving exception :)

What version are you using? Something from your description were fixed in #3042.
For my product (Orienteer) OrientDB capabilities for embedding and external management of db lifecycle are working perfectly starting from 2.0.

Version is orientdb-community-2.1-rc2. My db is not embedded. The server there is just the client for connecting to remote orientdb.

@publicocean0 are you sure OrientDB didn't start the shutdown procedure while you're trying to save?

yes , i explained logically the problem above ... the cause of the problem and also a possible solution.
Now I removed all default listeners and inserted a custom listener for saving, for now (im not in production)  it work, but it is a stub solution .... putting just a element in a list of listeners it has always the most priority. But obiously is not a soddifying solution , and i have a lot of side effects also in shutdown removing your listeners.
The problem is cause the registration of listeners order is equal to class loading .... in shutdown you have to follow the reverse order else you destroy data structure , threads ,.... used by class above in the stack.

i found

    final Orient inst = Orient.instance();
    inst.registerListener(new OOrientListenerAbstract() {
      @Override
      public void onStartup() {
        if (INSTANCE == null)
          INSTANCE = new OExecutionThreadLocal();
      }

      @Override
      public void onShutdown() {
        INSTANCE = null;
      }
    });

why ?
public void onShutdown() {
INSTANCE = null;
}
instead  public void onShutdown() {
if (INSTANCE != null) INSTANCE.remove();
}

I think we may implement our own priority queue of shutdown inside of our shutdown handler. So you may put your handlers there too.

Fixed look at Javadoc com.orientechnologies.orient.core.shutdown.OShutdownHandler

I will check on webapp, but Threadlocals instances set by Orientdb Client are not traceble by the application.
When there is a http request, http server takes a Thread from pool and makes running it on the specific request, so in that thread when client orientdb dont find Threadlocal,  set  it. So it is  registered internally in that Thread by jvm. Executing many requests , http server uses all the threads of pools , so it set orientdb threadlocal in all the Threads of pool. The same Threads of pools are used also by other web applications.
On shutdown tomcat close the application in another Thread (but it dont close threads of pools where there are the reference of old threadlocals), because it is not a request. You are in another phase.  The ufficial ThreadLocal.remove , is a api removing ThreadLocal just in the current executing Thread. For this reason I posted SafeThreadLocal because from every Thread/Context , you could remove ThreadLocals, knowing what are the Threadlocals instances references for every Thread. You can deducting it just when you are setting or using  ThreadLocal instance.
SafeThreadLocal is not tested anyway.
This is a problem not related to specific application but it is a memory leak present in all server container using a Thread Pool running orient client. Probably not all of http servers notify the memory leak.
There is a old version of Tomcat deprecated attempting to removing memory leaks caused by ThreadLocal, I tried to use it for curiosity but it cleans 90% of them , not alls.  Anyway now they removed this behaviour by apache developers because it is considered not a correct way to solve the problem.

Hi @publicocean0
We are aware about memory leak with thread locals in case they are static.
That is why we use shutdown listeners with volatile thread local fields to clean them on engine shutdown. Your proposal with safe thread local relies on internal implementation of classes so we can not use it.

ok , so now if i understand correctly orientdb threadlocals are removed by engine on shutdown. No more Severe notifications. cool


[BUG] error: resource android:color/(insert_resource_name_here) not found.

Information

Apktool Version (apktool -version) - v2.6.1
Operating System (Mac, Linux, Windows) - Linux
APK From? (Playstore, ROM, Other) - Other

Stacktrace/Logcat
@VenomousSteam81 ➜ /workspaces/codespace-vm/testdebug (main ✗) $ apktool b -o mtk-easy-su-v2.1.1-debug.apk output-dir --use-aapt2
I: Using Apktool 2.6.1
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:22: error: resource android:color/accessibility_focus_highlight not found.
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:25: error: resource android:color/accent_material_700 not found.
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:26: error: resource android:color/accent_material_50 not found.
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:32: error: resource android:color/background_leanback_light not found.
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:55: error: resource android:color/control_nodisable_material not found.
W: /workspaces/codespace-vm/testdebug/output-dir/res/values-v31/colors.xml:61: error: resource android:color/chooser_service_row_background_color not found.
W: error: failed linking references.
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [/tmp/brut_util_Jar_147206839764744225903007071206539724148.tmp, link, -o, /tmp/APKTOOL11584640055716572443.tmp, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 32, --version-code, 208, --version-name, 2.1.1, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, -e, /tmp/APKTOOL4824634190021001889.tmp, -0, arsc, -I, /home/codespace/.local/share/apktool/framework/1.apk, --manifest, /workspaces/codespace-vm/testdebug/output-dir/AndroidManifest.xml, /workspaces/codespace-vm/testdebug/output-dir/build/resources.zip]

Steps to Reproduce

apktool b -o mtk-easy-su-v2.1.1-debug.apk output-dir --use-aapt2

Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
APK
If this APK can be freely shared, please upload/attach a link to it.
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? Yes
If you are trying to install a modified apk, did you resign it? Haven't got that far yet
Are you using the latest apktool version? No because latest was giving me issues as well

Thanks for the report! Unfortunately there isn't enough information for me to triage this issue properly. Please be sure to either link/upload the affected apk. Additionally try and provide any logcat and/or stacktrace possible.

Today, I had a similar problem with this VK  v8.38 and was able to find a solution for my case.
So, the problem was caused by 2 colors from values-v31/colors.xml
<color name="m3_ref_palette_dynamic_neutral_variant40">@android:color/accessibility_focus_highlight</color>
<color name="m3_ref_palette_dynamic_secondary100">@android:color/background_leanback_light</color>
accessibility_focus_highlight or background_leanback_light cannot be found in android.R.color. This means we can't access those headers at all. The solution is repairing the correct headers. How we can do what? We should to parse resources.arsc, find the reference  id values(example) and repair headers by ids using android.R.color
PS:
It can be one of tricks to break decompilation, idk.

@Vologhat can you please explain more, i did not understand what you mentioned as a solution.


⚠ Elibs has degraded performance

In be0c72f, Elibs (https://elibs.unmer.ac.id) experienced degraded performance:

HTTP code: 200
Response time: 27280 ms

Resolved: Elibs performance has improved in c223ba7.


JSON validation fails

Insomnia Version:
Version 6.3.2
Shell 3.0.4
Node 10.2.0
V8 6.6.346.32
Architecture x64
libcurl/7.61.1 OpenSSL/1.1.0h zlib/1.2.11 nghttp2/1.29.0

Operating System:
Ubuntu 18.04.2 LTS

Details

i don't know how to explain this issue...
this placeholders or, let's say, dynamic value generators (awesome feature BTW) in json bodies written as is and fails JSON validation, of course because of syntax error.
{
	"ads": "ebd8be85-161e-49d1-826b-df422a74d3ae",
	"start":<PHONE_NUMBER>,
	"end": <some_integer_value_here>1551088705</some_integer_value_here>,
	"user_retention_group_above": 10
}
// becomes
{
	"ads": "ebd8be85-161e-49d1-826b-df422a74d3ae",
	"start":<PHONE_NUMBER>,
	"end": {% now 'unix', '' %},
	"user_retention_group_above": 10
}

I think there's an issue somewhere around here for this already. Unfortunately it's pretty hard to fix.


Doesn't want to runkit (

Sobsna, https://runkit.com/kroitor/ololog-issue-demo

Fixed, now fully compatible with Node v6 (via babel-transform) and also its dependencies as well. But you wont entertain much of running it in RunKit, as it does not support neither ANSI colors, nor even the multiline text (facepalm):


SAK-30299 fix bug where the replace feature was not migrating content

There is a bug in the import from site code when using the 'replace' option in conjunction with 'site.setup.import.addmissingtools=true
The feature is intended to both add missing tools and import the content at the same time, which is what happens if the Import from Site option "Merge" is chosen.
However, if the "Replace" content option is chosen in the Import from Site tool, then the Instructor only gets the missing tool added and must invoke the Import from Site tool a second time to import actual content.
This fix resolves the problem and ensures the tool lists are in sync.

LGTM

:+1:


Create a simple UI to return the results of /api/status

Build a clean and simple UI to present the user all the data returned by /api/status grouped by id. I'm open to a number of different UI options but a single page app would be best.
 Multiple pull request are acceptable. Please provide tests for the UI when possible.

Will work on this!

Awesome! thank you @mooreorless

Thanks for the support


Calculate minimum distance between point and line in 3D space

Hi,
I was wondering if it's possible to add a new method that given one position (lat, lon, alt) and two other positions returns the minimum distance between the point and the line segment generated by the two positions.
This is better explained here:
Point-Line Distance--3-Dimensional
In my case I'm looking to find the minimum distance from a point on the ground (but considering elevation) and a flying object passing by two points.
Thanks

Hi, just wanted to ask if this is a feature that is on the roadmap or an idea for a possible implementation.
I have an implementation that is using Heron's formula but it's working on the 3d line projection of the  two points. Ideally I would like to get the distance only within the segment defined by the two #D points.


Apply OCR confidence threshold

This PR only includes OCR paragraphs with confidence >= 0.85 to be in the extracted text.

coverage: 88.423% (+0.03%) from 88.397% when pulling 35443a055b725c41c970138f1ed2270714d79cb9 on ocr-confidence into c3d3a1bfac98a7e610020d04c5bb4d0a1dcf5047 on non-nulls.


Fix shadows of long range OmniLight3D and SpotLight3D

This PR allows omni and spotlights with range greater than a few hundreds of meters to keep casting shadows on nearby objects.
Currently, nearby objects get culled against the light's near plane which grows with the range. There is also a numerical precision issue encountered when large zfar (which is equal to the range) is retrieved from the light's projection matrix to blit the cubemap.
With this PR and the default bias of 0.1 (equivalent of 0.001 for SpotLight3D), ranges up to ~6km in Cubemap mode now render shadows without artifacts.
Higher biases even allow much higher ranges.
Note : DP mode seems to allow much larger ranges than Cubemap without artifacts. I suspect further numerical precision issues in the cube-to-dp copy effect. It may be the subject for another PR.
Fixes #96361
Fixes #92551

Thanks!


Set omitempty on providerSpec fields in v1alpha1/v1beta1 APIs

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
xref #531 #966
Does this PR introduce a user-facing change?:
NONE

/assign @kron4eg

/retest

/retest

/retest


Extended the git tags functionality

Added functionality to format the version based on git tags with following commits and hashes
Primarily meant for autobuilding commits
Thanks for the great work

What does "would reformat 1 file" mean??

Thanks for the patience with my reply! :sweat_smile:
I just marked this project as deprecated, I'm currently not using it and I think these ideas can be achieved in better ways: https://github.com/tiangolo/poetry-version-plugin#-warning-deprecated-
Given that I'll close this one, but thanks for the interest! :coffee:


Add more mqtt info to kafka headers when mqttproxy publish message to kafka

Is your feature request related to a problem? Please describe.
I want to resend some mqtt topics to the client, I need to know more information, such as current mqtt topic, clientId, username, etc. These info should be put in kafka headers

Thanks for contributing 🎉!

#1069 added this feature.


chore(release): v0.8.0 🎉

:robot: I have created a release beep boop
0.8.0 (2023-07-18)
Features

storage: decouple storage mechanism for react-native support (735a814)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/whodisio/whodis-react/releases/tag/v0.8.0 :sunflower:


Username response ?

I just get the id and token as response on authenticate using postegres
If I try to app.logout() I also get a TypeError: storage.remove is not a function
import io from 'socket.io-client';
import feathers from 'feathers/client';
import hooks from 'feathers-hooks';
import socketio from 'feathers-socketio/client';
import storage from 'feathers-memory';
import localstorage from 'feathers-localstorage';
import authentication from 'feathers-authentication/client';

const socket = io('localhost:3030');
const api = feathers()
  .configure(socketio(socket)) // you could use Primus or REST instead
  .configure(hooks())
  .use('storage', localstorage())
  .configure(authentication());

  api.io.on('connect', function(){
      console.log("connection....");
      api.authenticate({
        type: 'local',
        'email'<EMAIL_ADDRESS>        'password': '1234'
      }).then(function(result){
          console.log(result);
      }).catch(function(error){
        console.error('Error authenticating!', error);
      });
  });

  api.io.on("authenticated", function(result){

    console.log("user is :");
    api.user().then(function(user){
      console.log(user);
    })

  });

  api.io.connect();

I've also tried with .configure(authentication({ idField: 'id' }));

@naptiv Two questions:

which version for feathers-authentication are you using? We had pushed an update yesterday morning that fixed the response on auth to include the user.
Where are you using the client? The browser?

<EMAIL_ADDRESS>yep browser.

Btw, I had to change .use('storage', localstorage({"storage":memory})) as I got a ReferenceError: window is not defined at new LocalStorage @feathers-localstorage/lib/index.js:32:41

@naptiv I've verified that the user does come back with Postgres. Using<EMAIL_ADDRESS>You need to set the idField to 'id' at the root of your auth config section. So:
{
  "host": "localhost",
  "port": 3030,
  "postgres": "postgres://postgres:@localhost:5432/test",
  "public": "../public/",
  "auth": {
    "idField": "id",
    "token": {
      "secret": "a secret"
    },
    "local": {}
  }
}

@naptiv let's track that other bug in https://github.com/feathersjs/feathers-localstorage/issues/3. I have some questions there.


Users/jagamu/wi changes for k8s

Enable WI for k8s for AIO
Currently "AksEdgeProductUrl" is set by default "C:\Users\Public\msi\K3s.msi". This should be replace with path for k8s msi or leave it blank. The latest published k8s.msi will be downloaded.
Note: 1.6.384 k8s.msi will work - it does not need any chnages to config unlike k3s.

I saw in general the script just exit -1 when errors occur. Perhaps we should have a task to do Get-AksEdgeLogs in the failure case.
perhaps, will create a task.


problem parsing .env file

Laravel Version: 9.30.1
PHP Version: 8.1.10
Database Driver & Version: MariaDB 10

Description:
php artisan package:discover fails, but only when called by composer update autoload
error:
> @php artisan package:discover --ansi

<comment>In LoadConfiguration.php line 66:</comment>
<error>    </error>
<error>    </error>
<error>    </error>

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

Looking in LoadConfiguration.php it turns out that this exception is thrown when the program is unable to read the config/app.php file. But I'm unable to spot the issue.
Things I tried:

converting my .env from UTF8 to ANSI (I'm on linux): no effect.
replacing the line endings from \n to \r\n: no effect
replacing my .env file with .env.example: error changed:

Illuminate\Foundation\ComposerScripts::postAutoloadDump

> @php artisan package:discover --ansi
The environment file is invalid!
Failed to parse dotenv file. Encountered an invalid name at [APP_NAME].
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

using double quotes in .env.example APP_NAME="thename": back to the original error: so at least I get more meaningful errors by using no quotes or single quotes instead of the double quotes.

What is going on?
Steps To Reproduce:
?

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself. If you have a question on how to use functionality provided by this repo you can try one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

However, this issue will not be locked and everyone is still free to discuss solutions to your problem!
Thanks.

might it be that php 8.1.10 is too new?


chore: remove unused return value from BindSourcesToStructs

Description
The returned gookit config struct was unused and given the function comment it should never be used.
Removing it as a result.
Motivation and Context
:broom:
How Has This Been Tested?

:robot:

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Technical debt
[ ] Tests only (no source changes)

Checklist:

[x] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

Failed conditions
 71.7% Duplication on New Code (required ≤ 50%)

:rofl:


test add some remote-storage-example in doris's doc to regression test

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx
Problem Summary:
Check List (For Committer)

Test

[x] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No colde files have been changed.
[ ] Other reason

Behavior changed:

[x] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[x] Yes. https://github.com/apache/doris-website/pull/1278

Release note

None

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

run cloud_p0

run buildall


fix for perstistence context change

In other words, all PersistedEvent messages (aka state changes) need to be guaranteed to be applied before the next message is processed

ah I see.. so how can we achive that?

is it possible to set priority in the mailbox so these messages will be processed first?

or will this PR https://github.com/AsynkronIT/protoactor-dotnet/pull/172 fix this issue so the persistence api dosent need any changes?

I wouldn't even go through the mailbox - if you see the option I provided in the issue it is just calling a new method I added to the IPersistantActor interface. The advantage is all state changes are processed synchronously from within the context of the received message.

Agree with @tomliversidge, going through the mailbox is begging for issues.
e.g. if the replay fails, restarts and now some messages are left in the mailbox.
as we support async await we can safely do the init process as a sync flow


Changing dtype in example causes "Internal error"

First of all, it was really easy to get started with xtensor-python using your cookiecutter template.  Thanks!
I tried modifying one of the examples in a seemingly trivial way: I replaced double with uint8.  And now it crashes!  Any idea what's going on?
Here's the condensed example, adapted from example2():
#include "pybind11/pybind11.h"
#include "xtensor/xarray.hpp"

#define FORCE_IMPORT_ARRAY
#include "xtensor-python/pyarray.hpp"
#include "xtensor-python/pyvectorize.hpp"

namespace py = pybind11;
using std::uint8_t;

// I'm using uint8_t here instead of double
inline xt::pyarray<uint8_t> example2(xt::pyarray<uint8_t> &m)
{
    return m + 2;
}

PYBIND11_PLUGIN(example_module)
{
    using namespace pybind11::literals;
    xt::import_numpy();
    py::module m("example_module", "");
    m.def("example2", example2);
    return m.ptr();
}

I tried to run this test program:
import numpy as np
from example_module import example2

a = np.zeros((10,), np.uint8)
b = example2(a)

And it crashes with the following error:
Traceback (most recent call last):
  File "test2.py", line 5, in <module>
    b = example2(a)
RuntimeError: Precondition violation!
Internal error: trivial_assigner called with unequal types.
  /miniforge/envs/flyem-forge/include/xtensor/xassign.hpp(377)

I tried other dtypes, too:
Crashes: uint8_t, uint16_t, int8_t, int16_t
No crash: uint32_t, uint64_t, int32_t, int64_t, float, double
Setup details: I'm using OSX and clang with libc++, with the following conda packages:
numpy                     1.13.1                   py36_0
python                    3.6.2                         0
xtensor                   0.12.1                        0    conda-forge
xtensor-python            0.14.0                        0    conda-forge
pybind11                  2.1.1                    py36_0    conda-forge

Hi,
the problem is that m + 2 returns a int and not uint8. This is the generic C++ behavior, e.g.:
uint a = 3, b = 5;
auto c = a + b;
std::cout << std::is_same<decltype(c), int>::value << std::endl; // will print true!

However, we've become recently aware of this issue (2 days ago) and we'll be working on a fix. In the meantime, changing the return type from your example2 function to pyarray<int> should solve the issue.

Thanks for the detailed report @stuarteberg !

Thanks very much for the explanation.

the problem is that m + 2 returns a xexpression<int>

I had wondered about that, so I naïvely tried m + static_cast<uint8_t>(2), which made no difference.  But after your explanation, I see why.

In the meantime, changing the return type ...

Instead of changing the return type, can I just cast the output to the correct type (without incurring large temporaries)?
Does xtensor already have a static_cast-like xfunction?  Here's what I tried, which seems to work:
template <typename R, typename T>
inline R cast_element(T x)
{
	return static_cast<R>(x);
}

template <typename result_value_type, typename xpr_t>
auto xcast(xpr_t && xpr)
{
	auto cast = cast_element<result_value_type, typename xpr_t::value_type>;
	return xt::vectorize(cast)(xpr);
}

inline xt::pyarray<uint8_t> example2(xt::pyarray<uint8_t> &m)
{
	return xcast<uint8_t>(m+2);
}

Can you spot any problems with that approach?

... and, sorry, one more question.  Now that it works for uint8_t, I want to expose this function for all dtypes.  I tried this:
template<typename T>
inline xt::pyarray<T> example2(xt::pyarray<T> &m)
{
	std::cout << "example2<" << typestring<T>() << ">" << std::endl;
	return xcast<T>(m+2);
}
PYBIND11_PLUGIN(example_module)
{
	using namespace pybind11::literals;
    xt::import_numpy();
    py::module m("example_module", "");
    m.def("example2", example2<uint8_t>);
    m.def("example2", example2<uint16_t>);
    m.def("example2", example2<uint32_t>);
    m.def("example2", example2<uint64_t>);
    return m.ptr();
}

and it didn't work? looks good to me

btw. great solution! xcast is neat. maybe we'll integrate it into xtensor

(Sorry, I hit "enter" on my last comment too soon.  See my edits for the complete question.)

Oh no! I see the bug in my test program.  Stand by...

Sorry, I had a copy+paste error in that test program.  But the proper test still shows a problem.  I edited the code above.  See the output for uint64.  What's going on?

hmm, so pybind basically chooses the wrong overload, right?

Looks that way...

ok, what happens if you reorder the functions?
E.g.
PYBIND11_PLUGIN(example_module)
{
    using namespace pybind11::literals;
    xt::import_numpy();
    py::module m("example_module", "");
    m.def("example2", example2<uint64_t>);
    m.def("example2", example2<uint8_t>);
    m.def("example2", example2<uint16_t>);
    m.def("example2", example2<uint32_t>);
    return m.ptr();
}

and can you also try to remove the other overloads?

Good idea. In that case, the output is correct:
Trying: uint8
example2<uint8_t>

Trying: uint16
example2<uint16_t>

Trying: uint32
example2<uint32_t>

Trying: uint64
example2<uint64_t>

It seems that the uint64 just defaults to whichever overload is listed first.  When I put uint32 first, then I get this:
PYBIND11_PLUGIN(dvidutils)
{
    using namespace pybind11::literals;
    xt::import_numpy();
    py::module m("dvidutils", "");
    m.def("example2", example2<uint32_t>);
    m.def("example2", example2<uint8_t>);
    m.def("example2", example2<uint16_t>);
    m.def("example2", example2<uint64_t>);
    return m.ptr();
}

Trying: uint8
example2<uint8_t>

Trying: uint16
example2<uint16_t>

Trying: uint32
example2<uint32_t>

Trying: uint64
example2<uint32_t>

Thanks for testing. I am not sure where the overload resolution goes wrong. Either it's in the pybind11 code, or in our code. Will need to be investigated!

@yoshipon do you know if this issue could be caused by the type caster?

Worth noting: I am using pybind11 2.1.1 instead of the latest (2.2.1), because that's the newest version that is permitted by the current xtensor-python recipe on conda-forge.
I suppose I should try a newer version of pybind11 before reporting the problem to them...
I have to pause my investigation for now, but I'll try to get back to this later tonight or tomorrow.

I don't think that it should not make much of a difference (pybind11 2.2.1 vs 2.1.1). We pinned to 2.1.x because there was a breaking change in 2.2.0 that we reported and should be fixed in 2.2.1.

I just tested the overload resolution with the pybind11 cmake example and it works correctly. Let me investigate if it is our pybind11 variant or our code.

Sorry, this was maybe not clear: I tested with the pybind11 py::array that can also accept a numpy array.

Hi @stuarteberg thanks again for the report. I found the issue, and I am working on a fix.
I hope I'll be able to push a fix today.
Cheers,
Wolf


Task Does not Create on French OS Computer to English Computer

Describe the bug
Using this library to create a task from powershell or C# on a French OS results in the following error.  This error message is generated from powershell and is slightly different in C#:
Exception lors de l'appel de « RegisterTaskDefinition » avec « 2 » argument(s) : « (16,8):UserId: »
Au caractère Ligne:1 : 1

English translation:
Exception when calling 'RegisterTaskDefinition' with '2' argument(s): '(16,8):UserId:'
To the character Line:1: 1

To Reproduce
Steps to reproduce the behavior in Powershell:
add-type -Path "Microsoft.Win32.TaskScheduler.dll"
$ts = [Microsoft.Win32.TaskScheduler.TaskService]::new("\\MyPC")
$td = $ts.NewTask()
$td.Principal.UserId = "SYSTEM"
$td.Principal
$td.Principal.LogonType = "ServiceAccount"
$trigger = [Microsoft.Win32.TaskScheduler.TimeTrigger]::new()
$td.Triggers.Add($trigger)
$trigger.StartBoundary = get-date 2024/01/24
$act = [Microsoft.Win32.TaskScheduler.ExecAction]::new()
$act.Path = "C:\windows\system32\CMD.exe"
$td.Actions.Add($act)
$ts.RootFolder.RegisterTaskDefinition("Test_Task", $td)

Expected behavior
I expect "Test_Task" to be created on MyPC. but get the error instead.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

Host Windows version (the one running the code): Windows 11 Version 23H2 Build 22631.2715

OS culture version  As reported by powershell "Get-Culture":

Parent                         : fr
LCID                           : 3084
KeyboardLayoutId               : 3084
Name                           : fr-CA
IetfLanguageTag                : fr-CA
DisplayName                    : Français (Canada)
NativeName                     : français (Canada)
EnglishName                    : French (Canada)
TwoLetterISOLanguageName       : fr
ThreeLetterISOLanguageName     : fra
ThreeLetterWindowsLanguageName : FRC
CompareInfo                    : CompareInfo - fr-CA
TextInfo                       : TextInfo - fr-CA

Library version: 2.10.1
Remote Windows version (if applicable): Windows 11 Version 23H2 Build 22631.2715

English US culture (1033, en-US)

Additional context
Add any other context about the problem here.

Resolution or at least a workaround may come in the form of creating the task from the XML:
$ts.RootFolder.RegisterTask(taskName, $td.XmlText)

Doing further testing to confirm.

Please reopen if you need further help.


[BREAKING] Added integration for namespaces/accounts search endpoint

Added

Added integration for namespaces search endpoint (works with REST master) (fixes #470).
Added integration for accounts search endpoints (fixes #471)

sdk latest to be updated

waiting for testnet node updates

after merge of this PR, use following node: http://<IP_ADDRESS>:3000


Docker image for s390x

Added changes to build s390x Prometheus docker image.
Please review changes.

LGTM

@simonpasquier When will this PR be merged ?

I had to revert the PR because the build of the image failed.


[NEW ALGORITHM] Add ANN(artificial neural network)

Issue will be closed if:

You mention more than one algorithm. You can create a separate issue for each algorithm once the current one is completed.
You propose an algorithm that is already present or has been mentioned in a previous issue.
You create a new issue without completing your previous issue.

Note: These actions will be taken seriously. Failure to follow the guidelines may result in the immediate closure of your issue.

Name:
[NEW ALGORITHM]  Add artificial neural network in machine learning section
About:
Propose a new algorithm to be added to the repository

Labels:
new algorithm, gssoc-ext, hacktoberfest, level1

Assignees:

Contributor in GSSoC-ext
Want to work on it

assigned

no update

no update

Hello @pankaj-bind sir,
I have actually completed the task and was about to open a pull request but due to some technical problems, I couldn’t communicate to you or send a pull request. I apologise for the inconvenience. Can you please open this issue again?


Documenting the config system

This PR adds a first pass at documenting the configuration system, including the CLI flags available, and the cascading config file system. See the file docs/source/configuration.rst. In particular, the whole output of manim -h is copy&pasted into this document, as a quick&dirty way of documenting the available flags. I don't love this, but it saved a ton of time when I was writing this document. A good reason to keep it this way is that it is included within a doctest directive. This means that running make doctest from the docs/ folder will tell us if the documentation is out of date. Thus it will be easy to always have it mirror the true, up-to-date output of manim -h.
This PR also includes general small changes to the description of CLI flags, as seen in manim -h.
This PR also changes the --color flag to --background_color so that it matches the configuration option used in the config files background_color = BLACK.
Finally, it also includes some changes made by black.

@PgBiel done!


Landscape mode - Duration and other options are not showing

          As I said, remove these lines

val uiController = DefaultPlayerUiController(view, youTubePlayer)
uiController.showUi(showControls)
uiController.showDuration(true)
uiController.showFullscreenButton(true)
uiController.showSeekBar(true)
uiController.showBufferingProgress(true)
uiController.showCurrentTime(true)
uiController.showMenuButton(false)
uiController.showPlayPauseButton(true)
uiController.showVideoTitle(false)
uiController.showYouTubeButton(false)

view.setCustomPlayerUi(uiController.rootView)

Originally posted by @PierfrancescoSoffritti in https://github.com/PierfrancescoSoffritti/android-youtube-player/issues/1037#issuecomment-1665791751

Even after removing still issue persists.

When entering full screen the video and its UI are rendered in a separate view. See doc.

What is the solution?  Whether I pass 0 or 1, it's not working.  .fullscreen(1)

If you think this is a bug in the library, I suggest trying to replicate in the sample app, or another simple project you can share. So I can also replicate the issue.
Also, as a side note, this is an open source project you are using for free. Please don't expect to give orders and remember to be polite.

If you're making open source, you shouldn't be closing issues without solution?

If you're making open source, you shouldn't be closing issues without solution? Not even my demo is required. You check your own demo here. As you can see that, extra button is implemented, which says Enter Full Screen. And when you enter, seekbar and duration button are not showing, when you exit from the same button then it is showing, but horizontal video size is reducing from both left and right to almost 100 dp each. Isn't this a bug? You should check your own demo before suggesting it.

Please be polite, it's your mistake, if you are better than the author of this library "Pier" then make your library by yourself and move on because everything is working perfect for me, i am using fullscreen, block ads, custom ui and all of them
Thanks a lot for Pierfrancesco

@Omar-D If you don't have patience to read my question properly, don't reply. What I asked in my comment and what is your reply?
PS: It's not about "better than library author" thing, it's about closing the raised issue without replying and hiding the bug.


Feature/permissions existing endpoints

Workflow/Hosted workflow endpoints now check user permissions instead of only if user owns.

Coverage increased (+3.7%) to 64.922% when pulling 37296c0dd20407cebd1322427dafb07481694439 on feature/permissions-existing-endpoints into c9dd9b4db07febf9d8b1771385e72a8b430f3f56 on develop.


Resize visual cues not shown on Firefox

No problem with Chrome but with Firefox visual cues aren't shown. See this issue.

I did not put resizeToContentCueImage field into my node resize options but it did not provide a default resizeCue. Hence, I needed to make the same change (adding width and height property to svg) to my own resizeCue.svg and include that one in the nodeResize options.

@Rgtemze The default value for resizeToContentCueImage option is '/node_modules/cytoscape-node-resize/resizeCue.svg'. If it didn't provide the default image, probably your path to the default image file is different than the above, so you should set it accordingly. However, the solution you mentioned above can also be used as an alternative solution.

@hasanbalci Does that mean to use the default image, we still need to provide a path (to the default image)?  Poor design choice?

@ugurdogrusoz If we don't provide a path, it will use the default path value which is '/node_modules/cytoscape-node-resize/resizeCue.svg'and this will work if the node_modules folder and the file where the node-resize options are set in the same level of the folder structure. If they are not in the same level, then one need to give the correct path to the default cue image.

@Rgtemze Could you please try changing the path so that default image is properly used?

@Rgtemze confirms that suggested change works.


writeAsciiString is not a function

Describe the bug
Cause: TypeError: n.writeAsciiString is not a function
    at https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:783395
    at writeGeneric (https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:783579)
    at TLSSocket.Socket._writeGeneric (https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:237560)
    at TLSSocket.Socket._write (https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:237718)
    at https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:1012355
    at _write (https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:1012416)
    at TLSSocket.Writable.write (https://node-6zzdhd.w.staticblitz.com/blitz.49c6d2ee58ce7c1528881cc6d46ebf056b3b42bf.js:6:1016073)
    at AsyncWriter.end (/home/projects/node-6zzdhd/node_modules/undici/lib/client.js:1790:16)
    at writeIterable (/home/projects/node-6zzdhd/node_modules/undici/lib/client.js:1695:12)

Doesn't seem to actually impact the project running, but this error appears in WebContainers, but not when running locally.
Link to the blitz that caused the error
https://stackblitz.com/edit/node-xhsc9s
Steps to reproduce

Load the WebContainer.
Let the dependencies install.
Start the command npx wrangler dev index.js --local.

Expected behavior
This error shouldn't appear when trying to run the wrangler local dev server in WebContainers.
Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots
No response
Platform

OS: macOS
Browser: Chrome
Version: 100.0.4896.88

Additional context
wrangler2 only just today became possible to run in a WebContainer with the release of https://github.com/stackblitz/webcontainer-core/issues/661.
I work at Cloudflare and am very happy to work with you to fix this problem if there's anything we can do to help.

Hey Greg- thanks so much for testing this, would love your help. We’re actually in an email thread with Sunil, Rita and Igor working on wrangler2/webcontainer. I just asked if they can add you to it, or if you share your email with me (either here or<EMAIL_ADDRESS>I can loop you in!

Ah, fantastic! Yeah, I'm<EMAIL_ADDRESS>Please do loop me in!

I'm seeing this consistently when using fetch from undici. See this simple example:
https://stackblitz.com/edit/node-et6u3f?file=index.js

This is going to be fixed in an upcoming release 👍

Quick update: This is fixed now. Thanks for closing this issue @SamVerschueren.


Not retrieving WIKIPATHWAYS:WP4312 -- Gene

Should we be able to query with a WikiPathways ID specified in ids? I'm not getting results for the following query:
{
  "message": {
    "query_graph": {
      "edges": {
        "e00": {
          "subject": "n0",
          "object": "n1"
        }
      },
      "nodes": {
        "n0": {
          "ids": [
            "WIKIPATHWAYS:WP4312"
          ],
          "categories": [
            "biolink:Pathway"
          ]
        },
        "n1": {
          "categories": [
            "biolink:Gene"
          ]
        }
      }
    }
  }
}

There appears to be an error thrown in nodeUpdateHandler:

I know data satisfying the query above exists, because the query below returns WIKIPATHWAYS:WP4312 in the results:
{
  "message": {
    "query_graph": {
      "edges": {
        "e00": {
          "subject": "n0",
          "object": "n1"
        }
      },
      "nodes": {
        "n0": {
          "categories": [
            "biolink:Pathway"
          ]
        },
        "n1": {
          "ids": [
            "NCBIGene:23221"
          ],
          "categories": [
            "biolink:Gene"
          ]
        }
      }
    }
  }
}

I tried the failing query on https://api.bte.ncats.io/v1/query as well as locally with the code in main and the code in is_set2_pr86, with seemingly the same issue every time.

probably has to do with ID resolution. There's this issue @tokebe raised: https://github.com/TranslatorSRI/NodeNormalization/issues/113

should be resolved, since Jackson pushed a fix for handling the empty responses that SRI ID resolver gives...

Closing as this issue has been resolved.

Yup it works now. This is what I get for the response to the original query in the issueL
response.txt


Color highlighting fixed styling?

Hi,
I got a problem with the package. The color highlighting is somehow fixed. When I scroll, they just stay, where the variables were defined.
You can find a screen below.
OS: Mac OS X

I no longer maintain this package, all its features are now available in pigments, which was updated to fix that issue.
I needed a complete rewrite to better integrate with project-palette-finder features (which are also included in pigments) and make the whole more efficient.


Typed Protocols: new API

Description
Use typed-protocols-<IP_ADDRESS>.
Depends on:

[x] input-output-hk/typed-protocols#52
[x] input-output-hk/typed-protocols#61
[x] IntersectMBO/ouroboros-network#4935

Updated to use typed-protocols-<IP_ADDRESS>
Added KeepAlive tracer

I started with t-p-0.2 and ended up with t-p-0.3 :grin:.  The TxSizeInBytes patch is gone from this PR, due to consensus introducing its own sizes in a recent PR.

ekg-forward 0.6 which is going into the next node release is incompatible with new typed-protocols 0.3 so lets hold off on merging this PR.

@crocodile-dentist ekg-forward is not a dependency of ouroboros-consensus; I have a draft PR for it as well (as for all other cardano-node dependencies :smiley:).

@crocodile-dentist ekg-forward is not a dependency of ouroboros-consensus; I have a draft PR for it as well (as for all other cardano-node dependencies 😃).

Yes, but it would have caused problems downstream when releasing node - consensus would have to release off branch to make it go smoothest.


Ttva 61 improve test setup

Removes the "-e" flag from the django-tamusers dependency in requirements, so that we do not get the redundant "src" directory breaking the unit tests.

Update CI pipeline config to remove the re-install & "src" removal workaround.

@danjacob-anders You can actually exclude the two commits that remove/re-add the "src" directory to the pytest configuration from this PR, since the latter just cancels out the first one.
Excellent commit messages, btw.

Looks good, thank you Dan


HSEARCH-3395 Make the .reference() and .object() projections type-safe in the Projection DSL

https://hibernate.atlassian.net//browse/HSEARCH-3395
Based on #1787 , which should be merged first.

Pull Request Test Coverage Report for Build 1

118 of 155 (76.13%)  changed or added relevant lines in 29 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.08%) to 86.525%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoSearchManagerDelegateImpl.java
15
16
93.75%

mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/search/impl/JavaBeanSearchTargetImpl.java
5
7
71.43%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMappingImpl.java
1
3
33.33%

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/impl/FullTextQueryResultDefinitionContextImpl.java
6
9
66.67%

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchTargetContext.java
1
6
16.67%

backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchTargetContext.java
1
6
16.67%

engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexSearchTargetImpl.java
20
25
80.0%

mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/work/impl/JavaBeanWorkPlanImpl.java
8
22
36.36%

Totals

Change from base Build 52:
-0.08%

Covered Lines:
11372

Relevant Lines:
13143

💛  - Coveralls

The additional commits look good.

Merged, thanks!


Remote storage metrics

We don't know how our s3 remote_storage is performing, or if it's blocking the shutdown. Well, for sampling reasons, we will not really know even after this PR.
Add metrics:

align remote_storage metrics towards #4813 goals
histogram remote_storage_s3_request_seconds{request_type=(get_object|put_object|delete_object|list_objects), result=(ok|err)}
histogram remote_storage_s3_wait_seconds{request_type=(same kinds)}

Histogram buckets are rough guesses, need to be tuned. In pageserver we have a download timeout of 120s, so I think the 100s bucket is quite nice.

I did manual checking on that particular test case you found test_delete_timeline_exercise_crash_safety_failpoints[debug-pg14-Check.RETRY_WITH_RESTART-mock_s3-timeline-delete-after-index-delete]:
remote_storage_s3_failures_count{request_type="delete_object"} 0 => 0
remote_storage_s3_failures_count{request_type="get_object"} 0 => 0
remote_storage_s3_failures_count{request_type="list_objects"} 0 => 0
remote_storage_s3_failures_count{request_type="put_object"} 0 => 0

remote_storage_s3_requests_count{request_type="delete_object"} 51 => 0
remote_storage_s3_requests_count{request_type="get_object"} 0 => 2
remote_storage_s3_requests_count{request_type="list_objects"} 1 => 0
remote_storage_s3_requests_count{request_type="put_object"} 93 => 0

# histogram count as "stand-in" for actual histogram buckets
# i now realize that these are now duplicating the remote_storage_s3_requests_count

remote_storage_s3_request_seconds_count{request_type="delete_object",result="ok"} 51 => 0
remote_storage_s3_request_seconds_count{request_type="delete_object",result="err"} 0 => 0

remote_storage_s3_request_seconds_count{request_type="get_object",result="ok"} 0 => 1
remote_storage_s3_request_seconds_count{request_type="get_object",result="err"} 0 => 1

remote_storage_s3_request_seconds_count{request_type="list_objects",result="ok"} 1 => 0
remote_storage_s3_request_seconds_count{request_type="list_objects",result="err"} 0 => 0

remote_storage_s3_request_seconds_count{request_type="put_object",result="ok"} 93 => 0
remote_storage_s3_request_seconds_count{request_type="put_object",result="err"} 0 => 0

remote_storage_s3_wait_seconds_count{request_type="delete_object"} 51 => 0 (matches request_seconds_count)
remote_storage_s3_wait_seconds_count{request_type="get_object"} 0 => 2
remote_storage_s3_wait_seconds_count{request_type="list_objects"} 1 => 0
remote_storage_s3_wait_seconds_count{request_type="put_object"} 93 => 0

Also realized that the remote_storage_s3_{requests,failures}_count and the built-in count on histograms ("{ok,err}") is now duplicate information. Need to check if many dashboards are relying on this.


Add create dynamic port when user config the port 0.

What is the purpose of the change
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

@xieyucan Where is the target issue? Please write here.

Thanks, There is no target issue,  just adding new function。发自我的iPhone------------------ Original ------------------From: plusmancn  @.>Date: Thu,Sep 9,2021 3:41 PMTo: apache/dubbo @.>Cc: Bruce Xie @.>, Mention @.>Subject: Re: [apache/dubbo] Add create dynamic port when user config the port0. (#8732)
@xieyucan Where is the target issue? Please write here.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.
[
{
@.": "http://schema.org",
@.": "EmailMessage",
"potentialAction": {
@.": "ViewAction",
"target": "https://github.com/apache/dubbo/pull/8732#issuecomment-915843141",
"url": "https://github.com/apache/dubbo/pull/8732#issuecomment-915843141",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
@.": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

Could you please describe why you adding these functions?

Could you please describe why you adding these functions?

Like tomcat, create dynamic port when user config the port 0。

Could you please describe why you adding these functions?

Create dynamic port when user config server port 0.


Fix 6534, handle unpack of assign-like tuples.

As title, also removes some Python 2 and Python <3.6 restrictions.
Fixes #6534

There are some py3.9 specific errors

There are some py3.9 specific errors


[RFC] Allow linear Constants

There are two things I dislike about this.
Firstly, that the maze of SimpleType::Qontainer of SimpleType::Classic of ClassicType::Container of .... just got worse. That is what much of #363 is aiming to fix, so we might want to wait for that.
Secondly, I've changed static_input from ClassicType to SimpleType too (as required), but wtf happens with EdgeKind::Static now. Do we enforce linearity of linear-typed static edges? See discussion #368

load_constant is not produce_value ;)


Rotate sadevs invite link on the site

Come up with a way to rotate https://github.com/SADevs/sadevs.github.io/blob/website/pelicanconf.py#L36 this url every 20 days because slack invite links now expire

@gtmanfred and I made an attempt at this but Slack has locked the API endpoints for invites behind their enterprise plan paywall.
Still looking for another solution for this.


Fix linker flags for Python 3 on OSX

see https://github.com/pynac/pynac/issues/337 and https://github.com/ContinuumIO/anaconda-issues/issues/1761#issuecomment-361894754

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender


Add Tuskar UI Extras

thanks; this looks good to merge. the setting of $JSONFILE in instack-install-undercloud also needs updating, but I'll do that after merging. Also, I'll backport this commit to stable/juno.


Support test sharding

There are undocumented methods in the cloud-testing API which allow for both manual and automated sharding. These can be exposed through the plugin and passed through the test execution.

Any plans to support flank?

This is meant to be a tool that's integrated with Gradle to avoid external dependencies. Obviously Flank is very powerful and serves more and larger needs than this plugin, but we don't have plans to wrap Flank directly.
It could be interesting to support Flank's YAML specifications, though. I'll keep that in mind.


Add support for custom S3 endpoint

Feature Request
Add support to read the tracking logs from any S3 compatible service.
We at NAU use Ceph S3. The default Tutor installation uses the MinIO to store the files. For example some installations could use that MinIO installation to store the tracking logs, or use other service that provides the same interface.
Is your feature request related to a problem or unsupported use case? Please describe.
Add a configuration that allow to change the default AWS S3 endpoint URL to any endpoint URL.
Describe the solution you'd like
Change the backend S3 code with a new optional configuration that allow to change the boto3 endpoint_url.
Describe alternatives you've considered
Any.
Discovery, Documentation, Adoption, Migration Strategy
Add a sub-section in the docs to reference that you can use any S3 compatible service, like Ceph S3 or MinIO.
Do you want to work on it through a Pull Request?

Yes, me directly, or someone from NAU team.

That would be a great improvement indeed @igobranco. Thanks for the report and your future contribution.