bandwidth_test issue

I run bandwidth_test with 2 nodes, num_senders_selector=0, num_messages={1, 10, 100}, delivery_mode=0, msg_size={64, 128, 256, 512, 1024, 10240, 1000000}.
Total test times: 210, Failed: 80, although "data_derecho_bw" was created.
Error log:
Exception in the failure upcall: Potential partitioning event: this node is no longer in the majority and must shut down! Exception in the SST detect thread: Potential partitioning event: this node is no longer in the majority and must shut down!
Poll completion error with node (id=1). Freezing row 1 Exception in the failure upcall: Potential partitioning event: this node is no longer in the majority and must shut down!
When I increase num_nodes to 5, new error log appeared:
`[140737144416000] polling thread starts.
Initialized SST and Started Threads
Initialization complete
Finished constructing/joining GroupThe persist thread started
The order of members is :
0 1 2 3 4
Initialized SST and Started Threads
DerechoGroup send thread shutting down
The persist thread is exiting
timeout_thread shutting down
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.`
When I increase num_nodes to 40, the performance test couldn't be finished
[140737144416000] polling thread starts. Initialized SST and Started Threads Initialization complete Reporting failure on row 12 due to a missing poll completion Reporting failure on row 19 due to a missing poll completion Reporting failure on row 20 due to a missing poll completion Reporting failure on row 31 due to a missing poll completion Reporting failure on row 12 due to a missing poll completion Reporting failure on row 19 due to a missing poll completion Reporting failure on row 20 due to a missing poll completion Reporting failure on row 31 due to a missing poll completion Reporting failure on row 12 due to a missing poll completion Reporting failure on row 19 due to a missing poll completion Reporting failure on row 20 due to a missing poll completion
I would like to make a stable Group (includes thousands of nodes), can you tell me how to resolve this issue?

Message size means MAX_PAYLOAD_SIZE. I changed it in derecho.cfg file

Yes, we have two message size parameters in the config file: max_payload_size and max_smc_payload_size. The second parameter uses a specialized protocol that is more suitable for small messages. If you are working with a message size less than 15 KBs, it might be best to set the max_smc_payload_size to that value (in that case both parameters will have the same value). If you are also sending very large messages, max_payload_size will have a higher value than max_smc_payload_size.

@sagarjha I tried to set max_smc_payload_size and max_payload_size the same value, but still got the error message.

Please try and answer all the questions Weijia asked, one by one.

Yes, please try Weijia's suggestions. You can post an image of the run on two nodes first. We can go through that.
Also, the test writes data to a file called data_derecho_bw in the same directory as the executable. You can check if the file was created by the test.

This is the log file when I run test 210 times.
log.txt

I think the result looks normal to me, as what @sagarjha confirmed. Please ignore the exception message. This is because one node quits a little bit earlier than the other node, which is detected by the other node.
Btw, I'm interested in the performance data as well as your environment. It would be great if you can show us the contents of data_derecho_log.

@songweijia here is the data_derecho_bw result
data_derecho_bw.txt
Btw, When I increase num_nodes to 5, I got new error log:

[140737144416000] polling thread starts.
Initialized SST and Started Threads
Initialization complete
Finished constructing/joining GroupThe persist thread started
The order of members is :
0 1 2 3 4
Initialized SST and Started Threads
DerechoGroup send thread shutting down
The persist thread is exiting
timeout_thread shutting down
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/root/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/root/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.

And when I increase num_nodes to 40, the data_derecho_bw can not be created. And I got these error messages:

Reporting failure on row 12 due to a missing poll completion
Reporting failure on row 19 due to a missing poll completion
Reporting failure on row 20 due to a missing poll completion
Reporting failure on row 31 due to a missing poll completion
Reporting failure on row 12 due to a missing poll completion
Reporting failure on row 19 due to a missing poll completion
Reporting failure on row 20 due to a missing poll completion
Reporting failure on row 31 due to a missing poll completion
Reporting failure on row 12 due to a missing poll completion
Reporting failure on row 19 due to a missing poll completion
Reporting failure on row 20 due to a missing poll completion

Are they normal cases?

@tuanha-viosoft I do find some abnormal data in your result. My first suggestion is to use at least 1000 messages to get a stable throughput evaluation.
The new exception suggests that some resource is missing when sending a message. Can I know more about your test environment and configuration? Are you running experiments with sockets or RDMA? Can I have a look at your derecho.cfg file?

This is the result when I run with 1000 messages, 2 nodes.
data_derecho_bw.txt
These are the config file of leader node and normal node:
derecho-leader.cfg.txt
derecho.cfg.txt

Now the two node results make sense to me.
I'm trying to replicate your issue. Can you answer the following questions?
For the leader node, are you running it in docker containers? If yes, can you let me know

how many containers are you running with one server,
the hardware configuration of the server, like CPU type, memory size.
can you also try the commands ulimit -Hn and .ulimmit -Sn inside the container?

For the leader node, are you running it in docker containers? If yes, can you let me know

Both leader node and normal node are running in docker containers.

how many containers are you running with one server,

Depend on test cases, for example, I run 2 nodes on 2 containers, or 5 nodes on 5 containers.

the hardware configuration of the server, like CPU type, memory size.

CPU: Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz, 32 cores
RAM: 128GB
OS: Ubuntu 16.04

can you also try the commands ulimit -Hn and .ulimmit -Sn inside the container?

# ulimit -Hn
1048576
# ulimit -Sn
1048576
# ulimit -l
unlimited

Thanks! I will try to replicate your experiment and see If I can reproduce your issue.

I run test with 40 nodes, 1000 messages in Debug mode and got the error log as below
derecho_debug_log.txt

You are jumping too quickly to 1000 nodes.  In prior experiments at large scale we only ran on one platform, an HPC computer where we ran in dedicated bare-metal nodes.
To help you with this setup, we need to know the actual runtime environment, including wha else might be on these machines and how you launch the 1000 node containerized setup. Where are the log files being saved?  They need to be in a local file system, not the global file system.  How many physical nodes do the containers run on?
Some file systems have performance issues if 1000 programs launch simultaneously and start opening files and writing them, almost in sync to the millisecond.  This isn’t a behavior global file systems are designed to support.  Even TCP can malfunction at that scale, with every process trying to make and use thousands of TCP connections.  Our prior very large experiments only used RDMA, but RDMA may not be available in your container setting, and even if it is, probably doesn’t support large numbers of containers using it on  any single machine.  Container multitenancy could cause a crash.
But then I would slow down and launch and measure at scale 10 nodes, 50, 100, ... by 50’s.  At what scale do these new timeouts and file system errors suddenly occur?
So I’m happy that we should help you get this up and running at the largest scale possible.

PS: We are committed to supporting Derecho with RDMA on 1000 (or even more) physical nodes, one application instance per node.  On a machine that actually allows some small number K of applications to share an RDMA NIC, we would even be happy to help get things working with k*1000's of group members... eventually.
But we view it as highly experimental to run with TCP on more than 16-32 nodes (we do want to scale over TCP, but it will take time), and it is not wise to try and run 1000 Derecho application instances on, for example, 2 AWS servers.  That would never work, due to timeouts, and we will not try to support that sort of thing: it would be a waste of our time...
Additionally, it is important for you as the developer to realize that launching on 1000 physical nodes is hard, and you will spend days or weeks before this is fully stable.  Once Derecho is up and running, you depend only on our layers and those are designed to work at large scale.  But Linux is not designed to boot an application with 1000 members all of which make connections to one-another (so you get 1,000,000 connections right as it starts), plus the file system issues mentioned above.  Linux isn't normally exposed to this sort of nearly simultaneous burst of load.  Thus, Linux can be overwhelmed.
Even on HPC systems, which can support MPI at that scale, because MPI doesn't use an all-to-all connection pattern, we have seen these kinds of difficulties at massive scale.  In MPI there is one leader and N-1 followers, so the primary pattern that arises is really 1-N connections (more accurately, they do have some cases at runtime (like AllReduce) that can create K x K patterns.  I don't know how much success those folks have had with K>=1000, though.  My impression is that All Reduce normally runs on a significantly smaller scale.  Other KxK situations on MPI are probably delicate to initialize, too.)
When we did some RDMC experiments on 1000's of nodes at the LLNL supercomputer center, we actually had a special batch script to launch them 50 at a time, and have them connect in batches, to avoid overloading the file system and TCP layer.
So... this entire concept of Derecho at 1000's of nodes is something we definitely intend to support, in some specific situations where the goal makes sense, the underlying infrastructure should be able to do it, and where we have access to do debugging of our own RDMA layers during the startup.  But this isn't a sensible thing to do as your very first Derecho deployment!

Yes, but if those are perhaps 40 containers on 2 cores on a single server, we might not expect Derecho to be able to run in that mode.

@songweijia I run the test on real machines, and I got this error with 5 real nodes.

/home/ubuntu/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:477,ret=-2,fi_writemsg failed.
/home/ubuntu/derecho-unified/sst/lf.cpp:506,ret=-2,post_remote_write(2) failed.

I run 280 test cases with num_nodes={5, 10}, num_senders_selector=0, num_message={100, 1000}, delivery_mode=0, and message_size={64, 128, 256, 512, 1024, 10240, 1000000}, and got the result:
data_derecho_bw.txt

We’ll need to check the root cause.  Sagar explained that these tests do not shut down gracefully.  Did you check to see if the tests finished, and then gave these errors during shutdown?
In fact we do plan to fix the shutdown errors, since they are annoying and cause confusion.  But the thing to understand is that Derecho is about building services that normally would remain active – we aren’t really focused on the idea of a process waking up, joining for a while, and then exiting voluntarily.
But in these particular tests, when the test is finished, the processes running it all exit.  They can’t exit exactly at the same time to the millisecond, so they tend to see each other’s shutdowns in real-time.  Then they throw these exceptions (which the library should suppress, and we will fix it to suppress them).  But as such, they aren’t really errors.  They are just a very clumsy shutdown.

The writemsg failed errors are definitely not because of the graceless shutdown. I am guessing that the processes aren't able to reach everyone using the network provided. But Weijia will know better.

New to this thread/Derecho so please pardon the typical beginner's ignorance.
One of the primary use-cases highlighted, in the Derecho's paper and Prof. Birman's presentation is to enable data replication at the edge of the network.   As IoT devices are ISA-diversed, it would be highly desirable if Derecho's performance and (more importantly) reliability aren't exclusive to devices sporting RDMA-capable NICs.  Thus, we purposed to determine in our experiment the reliability of Derecho when deployed at scale over a network of libfabric/socket clients.
Our setup consists of 30 servers, each with 32 cores / 132GB and dedicated 10Gbs Intel Niantic NIC on the data plane.  The idea is to spawn multiple containers and VMs on each server to closely emulate the performance, behavior, and functionality of different types of IoT devices and workloads.   Orchestration and automation of a large number of virtualized instances are not a problem for us.   However, understanding the tactical challenge with running Derecho in a virtualized setting, we will pivot to a single instance/server for now.
Questions regarding the use of non RDMA platforms: Derecho uses SST for reliable broadcast, and SST relies on a) atomicity of cache line access and b) RDMA's FIFO ordering to update the predicate tables.  This would imply that different mechanism to ensure atomicity and ordering on platform with no RDMA NIC and varying line sizes.  Is this worth doing, and would the end results out perform existing Paxos implementations?
Many thanks for this, and of course for Prof. Birman's contribution to Isis, Horus, ...
@tuanha-viosoft, can you make sure that we're conducting the runs on the data plane NICs instead of the Linux control plane NIC?

Actually, we support a mapping to a pure TCP communication option, with no RDMA hardware or special NICs.  You won’t get the performance Derecho achieves with true RDMA, but by configuring the system to run purely over TCP, you could apply it in your setting.  In fact we anticipate that more and more of our users will start with a pure TCP setup, build their applications and test them, and only will migrate to RDMA hardware acceleration (1) after their solution is reasonably stable, and (2) if RDMA is actually available.  We do think it will gradually become a more and more common hardware option, though.
We definitely are interested in IoT edge computing cases.  If anything, this is our main focus.  But… we were not thinking of putting Derecho on IoT devices per se.  Instead we are thinking of hosting services on, for example, Azure IoT Edge.  Then the sensor devices would talk to these micro-services via TCP.  The services could use Derecho inside the service, but not for those last hops to the IoT devices.  Down the road we have an idea for making those last hops run over RDMA, if the device has an RDMA NIC.  But this application architecture would still treat them as being external clients, not linked directly to Derecho.
So in your setting, you could simulate a million IoT devices if you wish.  But don’t try to run Derecho as if it was linked to the code actually running on the IoT devices.  Use this Azure micro-services model.  (By the way, Azure IoT Edge is an Ubuntu Linux environment, so this isn’t a mysterious or undocumented approach.  Think: “Cluster of Ubuntu systems, running software from a company like Microsoft, and with the sensors talking to the microservers (the “sub-services”) over TCP).  Like Figure 1 in the Derecho paper.
Inside those micro-services, we need speed.  TCP is ok, be we don’t support high-latency TCP links, or slow ones, and we need a good degree of uniformity: all the various direct paths should be more or less similar in speed and performance, and should be pretty fast, not similar in the sense of really slow. Consider using something else, like Zookeeper, if these properties definitely won’t hold.
The caution I’ll express about your current concept is that you talk about launching lots of containers and VMs.  This just won’t work if all of those try to be part of a Derecho group.  We didn’t create Derecho for that sort of heavily virtualized setup, and  Derecho assumes a slow rate of membership changes: maybe once every few minutes or hours, not a membership change every 100ms.  We wouldn’t be able to provide support for the sorts of problems you might manage to trigger in a very weird, unintended setup:  We are busy just dealing with the real target environment the system was created to address.  Anyhow, as I said, there are products like Zookeeper that would definitely be reasonably stable and robust on highly virtualized setups with dozens of co-resident VMs or containers per machine, etc.  So it isn’t really our primary use case (that form of virtualization), many things might timeout (because of contention and scheduling effects), and there are acceptable options with mature user communities.
My advice is to use Derecho only if your architecture matches our model.  So you need to identify a pretty direct one-to-one map from our target environment and goals to your intended use case.  Yes, you might develop in a simplified setting, but don’t put the system under heavy stress in ways that wouldn’t be at all typical in the target environment – you’ll waste your own time, and ours too.
Also, keep in mind that you are using a beta release of what will be v0.9 or something when we release it for public use, probably with Azure IoT as our target.  So right now, using the system requires you to just buckle down and figure things out.  It isn’t as easy to use now as it will be by the time we are up to release v2.0 or something.  But you sound like hardcore systems people.  So maybe this isn’t a surprising warning.
Zookeeper, in contrast, is up around v5.5 or something.  Turnkey, foolproof, widely used.  But painfully slow.


Updates to enterprise docs

@timsneath,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Schema has duplicate assays for cell count

both "cell counts" and "cell count" are valid values for parent = assay - let's pick one, and then correct any annotations that used the other.

Thankfully it looks like neither are being used as annotations yet. I removed "cell counts" and left "cell count".


[Impeller] Only access Vulkan command pools on a single thread.

Reported by @iskakaushik
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: '[FATAL:flutter/impeller/renderer/backend/vulkan/context_vk.cc(57)] Check failed: kVulkanValidationFailure. Error[337425955][UNASSIGNED-Threading-MultipleThreads] : Validation Error: [ UNASSIGNED-Threading-MultipleThreads ] Object 0: handle = 0x5c5283000000003e, type = VK_OBJECT_TYPE_COMMAND_POOL; | MessageID = 0x141cb623 | THREADING ERROR : vkAllocateCommandBuffers(): object of type VkCommandPool is simultaneously used in thread<PHONE_NUMBER>24 and thread<PHONE_NUMBER>40'

https://github.com/flutter/flutter/pull/122527


build: check broken links in generated docs

@JustinBeckwith this repo could use some Update Branch help :)

hubbawhat?

requiring branch to be up-to-date with master :)

ooooops.  fixed.


Move transaction priority functions into policy

Transaction priority is rules for which low fee transactions we're willing to include in the blocks we mine. It's policy.
On top of #457

rebased

Ok, core has removed priority completely so we can refactor this without unnecessary divergence.


Extend operators exercise with unit-test-like function

Instead of https://github.com/bernhardmgruber/cpluspluscourse/pull/1

I forgot one line, now fixed. The output of the solution looks like this now:
Three                                   : PASS    3/1
One third                               : PASS    1/3
One third times two                     : PASS    2/3
One third times two                     : PASS    2/3
Three times one third                   : PASS    1/1
Three times one third                   : PASS    1/1
One third times two                     : PASS    2/3
One third times one third               : PASS    1/9
One third times itself twice            : PASS    1/81
One third plus 2                        : PASS    7/3
2 plus one third                        : PASS    7/3
One third plus two sixth                : PASS    2/3
One third plus one and added to itself  : PASS    8/3
One third == one third                  : PASS    true
One third != one forth                  : PASS    true
One third == two sixth                  : PASS    true
One third != three sixth                : PASS    true
athird < athird                         : PASS    false
afourth < athird                        : PASS    true
athird  <= athird                       : PASS    true
athird  <= afourth                      : PASS    false
athird  > athird                        : PASS    false
afourth > athird                        : PASS    false
athird >= athird                        : PASS    true
athird >= afourth                       : PASS    true

Including the bug that was in the alpha version of the exercise, this would have looked like below.
I think that proves the point the this test-like infrastructure is useful. Please check that I didn't hardcode any wrong solution!!! 🙂
c++ -g -std=c++17 -O0 -Wall -Wextra -L. -o operators.sol solution/operators.sol.cpp
Three                                   : PASS    3/1
One third                               : PASS    1/3
One third times two                     : ** FAIL **    1/3
One third times two                     : ** FAIL **    1/3
Three times one third                   : PASS    1/1
Three times one third                   : ** FAIL **    1/3
One third times two                     : ** FAIL **    1/3
One third times one third               : PASS    1/9
One third times itself twice            : PASS    1/81
One third plus 2                        : PASS    7/3
2 plus one third                        : PASS    7/3
One third plus two sixth                : PASS    2/3
One third plus one and added to itself  : PASS    8/3
One third == one third                  : PASS    true
One third != one forth                  : PASS    true
One third == two sixth                  : PASS    true
One third != three sixth                : PASS    true
athird < athird                         : PASS    false
afourth < athird                        : PASS    true
athird  <= athird                       : PASS    true
athird  <= afourth                      : PASS    false
athird  > athird                        : PASS    false
afourth > athird                        : PASS    false
athird >= athird                        : PASS    true
athird >= afourth                       : PASS    true

All fine for me. If @bernhardmgruber agrees, let's merge

All suggestions taken care of, @bernhardmgruber. Thanks.


[Docs] Swipeable edge example broken

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹

Open https://mui.com/material-ui/react-drawer/#swipeable-edge
Click open
Click where page scrollbar used to be

Current behavior 😯

Expected behavior 🤔
Its not broken
Context 🔦
No response
Your environment 🌎

  Chrome Version 106.0.5249.119 (Official Build) (64-bit)
  Windows 11 build 22621.674

I can't reproduce this. @MonstraG is this still reproducable in the docs for you?

Yea, sorry missed the email, it's okay now

it okaay


frontend/api: use internal wagtail url

I needed to change/add this to get it working.

I'm a bit in doubt about this pull request as it will break the environment of other developers and production so everyone needs to be update as well as the settings on azure has to be changed. What is the reason the devcontainer and starting up services like nextjs manually is not sufficient?


Make error messages in sample information creation clearer

In specific, give suggestions to the user of what to do, for example in this error message: Error (log id: 302637): The following column names in the template contain invalid values: primer, linkerprimersequence, barcode. You need to modify them.. Suggest to remove them.

Thanks for creating this issue.


Support contactless card reader at attendance kiosk

Use this reader with this code for contactless attendance.
To-Do:

[ ] Resolve issues with reader code
[ ] Add web socket support to kiosk page
[ ] Add indicator of web socket status to kiosk page
[ ] (RJ needs to) buy the reader


Fix test edgecases

Fixes a couple of edge cases seen when running the tests internally:
For the webserver exporter:

Add a timeout to prevent webserver test from blocking indefinitely due to unexpected stdout from the testplan subprocess
Fixes a bug when adding the WebServerExporter programmatically, if no port is specified the default value (0) will be used.

For the ProcessPool:
This change ensures better management of the worker monitor loop. The design here is that the monitor thread is explicitly owned by the main Pool work loop method (_loop()) - so _loop() must ensure that the worker thread terminates before it exits itself. The worker monitor loop is updated to query the Pool state and exit when it is not in state STARTED (i.e. when stop() processing begins and the state is STOPPING).

Hmm Travis isn't happy, I need to revisit the pool changes after Easter I think. Still if you could take a look and let me know your thoughts on the design/whether it clashes with your pool changes that would be handy.
I think the key thing is we need a clear design on who owns the monitor thread - currently it is started by the _loop() method but doesn't terminate until after _loop() has exited, and nothing ensures that it does terminate at all. So I think that _loop() needs to wait for the monitor thread to terminate, and this requires a bit of a tweak to the monitor loop.


React + Webpack app crashes on hot reload

Bug Description
Running react app with hot reload enabled, the app crashes on code changes.
Steps to Reproduce

Probably:

npx create-react-app my-app
cd my-app
npm start

Make a change to the code.
Observe as your app crashes and it's our fault.

Backtrace
No response
Relevant Logs
No response
Your operating system and version
?
Local process
node?
Local process version
No response
Additional Info
No response

User side


API: Make validators a top level module

This is IMHO important enough that it should be a top level module. This does that refactor

bors merge


[Enh]: Increase support for datetime format in pyarrow automatic inference

Please describe the purpose of the new feature or describe the problem to solve.
As discussed in #1151 comment, let's try to expand the available formats that we support with automatic inference in pyarrow str.to_datetime. Non exhaustive list:

[ ] "%Y-%m-%dT%H:%M"
[ ] "%Y%m%d%H%M%S"

I will take it


Dataset 'rewardsignal/reddit_writing_prompts' doesn't exist on the Hub

Describe the bug
The dataset rewardsignal/reddit_writing_prompts is missing in Huggingface Hub.
Steps to reproduce the bug
from datasets import load_dataset

prompt_response_dataset = load_dataset("rewardsignal/reddit_writing_prompts", data_files="prompt_responses_full.csv", split='train[:80%]')

Expected behavior
DatasetNotFoundError: Dataset 'rewardsignal/reddit_writing_prompts' doesn't exist on the Hub or cannot be accessed
Environment info
Nothing to do with versions

Hi @vinodrajendran001, thanks for reporting.
Indeed the dataset no longer exists on the Hub. The URL https://huggingface.co/datasets/rewardsignal/reddit_writing_prompts gives 404 Not Found error.


When do you release the code of EqSim?

The effectiveness of EqSim is very impressive. Hope you can release the code soon. Thanks.

+1 Looking forwards to code release

+1


Adding flinkMarterUrl as an option

Provide flink job server url as an option while starting flink job server.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.


Add/remove certs for notification UI

This fixes the pre-existing bug where submitting a notification edit dialog when only a subset of attached certs are shown causes all the remaining certs to be dropped. For example, prior to this change, it was effectively impossible to edit any default notification because it would drop all but 10 certs from that notification.

Coverage increased (+0.01%) to 60.666% when pulling 811ac1a970e8d09932ee6e3ccb3800bc36664506 on jtschladen:add-remove-certs-for-notification into ad5f7aef822085c7889534f7c1d8a17b5e213e35 on Netflix:master.


[red-knot] Allow multiple site-packages search paths

Summary
If a virtual environment's pyvenv.cfg file contains the line include-system-site-packages = true, anything installed in the system Python installation's site-packages directory will be accessible when the virtual environment is activated, as well as anything inside the virtual environment's site-packages directory. That means that we could have 0, 1, or many site-packages directories that we'd need to consider as search paths -- currently we only contemplate the 0 or 1 possibilities. As such, it makes sense for the site_packages field on Program to be a Vec rather than an Option. This is the first commit of this PR.
In "real life", however, we won't know the site-packages directory before starting the red-knot process; we'll instead derive it from a path to the Python executable the user selects. To accomodate the fact that in "real life" we'll want to derive site-packages, but in tests we'll want to be able to easily stipulate that site-packages might be a known path, this PR introduces a new enum to be used for the site_packages field on Program that accounts for both possibilities:
enum SitePackages {
    Derived { venv_path: SystemPathBuf },
    Known(Vec<SystemPathBuf>),
}

This is the second commit of this PR.
Test plan
cargo test

Okay, I'll wait with reviewing then

I added a test and updated the PR description. Ready for re-review!


Always create collection view in load view

We removed the code that released the collection view on low memory. It makes sense to have a single point of creation for the view again as it simplifies the VC.
I've also removed the configuration of the bounce property. It's currently never set to anything other than the default. I'll work on a PR that exposes the view through the API, so clients can set things directly on the view in future - this will mean that we don't have to write so much "pass through" code.

@mhallendal @bubski @ynmehel @krris @poncel

Codecov Report

Merging #327 into master will decrease coverage by 0.16%.
The diff coverage is 50%.

@@            Coverage Diff             @@
##           master     #327      +/-   ##
==========================================
- Coverage   80.88%   80.72%   -0.17%
==========================================
  Files          83       83
  Lines        6190     6164      -26
==========================================
- Hits         5007     4976      -31
- Misses       1183     1188       +5

Impacted Files
Coverage Δ

...rces/HUBViewControllerExperimentalImplementation.m
4.68% <0%> (-0.05%)
:arrow_down:

sources/HUBViewControllerImplementation.m
90.85% <100%> (-0.14%)
:arrow_down:

sources/HUBUtilities.h
65.62% <0%> (-17.71%)
:arrow_down:

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 0833065...02057bd. Read the comment docs.

👍


Have the installer pass the embed text, not a URL

The current API has you pass a link to a js file for the manual embed code.  This doesn't make much sense.  They should be passing the raw embed HTML (or JS with a flag?), which we can then insert into the instructions.

Implemented and documented in the landing page :)
README updates to come as the API settles.


Crashes during load on LG Optimus E970

Thanks for the great extension. I'm testing it on a handful of devices right now and my first test device is having trouble. Maybe I'm doing something wrong here, but my app crashes when the extension is included (no actionscript code except import com.mesmotronic.ane.AndroidFullScreen;
Here's what I'm using in application.xml:
<extensionID>com.mesmotronic.ane.fullscreen</extensionID>
Here's an excerpt from the device log:
http://vpaste.net/VyQva
I'm not sure if this would matter, but I noticed my main project is using -swf-version=25 and the extension is a version 28 swf. Odd since we're using AIR17. I'll try changing that and report back.

Seems like that was the problem after all. Sorry for the noise!

No problem, glad you got it sorted.


Enable line terminator matching for LogMessageWaitStrategy

Enable line terminator matching to make  expressions like ".*" matching even the end of a log line e.g. "waiting for connections on port 20017\n"

Any thoughts on this?

Hi @bengtbrodersen0042,
Could you please add tests for it?

I had to adjust a test only.

I guess I'd just like to check that people won't have problems if they still have the line terminator in their patterns. What happens if people don't update their tests?
It would be sad if this were a breaking change.

I'm just going to add an additional test to make sure both cases are covered - looking good though.

I've pushed a commit with additional test cases.

I'm going to ignore the failing Travis test - it looks like Travis has gotten confused due to me mistakenly pushing a copy of this PR into a branch in the main repo.

Released in 1.10.4!
Thanks for the contribution!


Refactor New Dashboard's common CSS styles

Currently, our CSS styles are split into two folders of the repository: CSS in .vue files within components and common styles for the application which are located in /assets/stylesheets/new-dashboard.
Given that our New Dashboard project is a self-contained project within cartodb JavaScript assets, it makes sense to move those separated styles to the New Dashboard folder and have them located all together.
Leveraging that change, we can set up a proper CSS scaffolding following any of the architectures that make sense for us (like 7-1 CSS architecture). Separating styles by concerns, instead of them being unorganized.
As an extra ball, it could be great if we could use BEM for all those common styles which are not scoped and may require a bit of effort when naming them to avoid classes collision.
To summarize:

As a first step, we need to move the styles from /assets/stylesheets/new-dashboard to lib/assets/javascripts/new-dashboard/styles folder.
Setup a CSS scaffolding to create a good CSS separation.
Rewrite the CSS classes naming to be BEM compliant.

IMO it would be nice to split our work for this issue in at least two PRs:

a shorter one, related to the movement and review of current styles (its result could be just the folder change and some internal notes on it).
another one on the bigger reorganization, using ITCSS (or alike) and BEM. This can have two parts:

a little proposal description (that could be discussed here)
an implementation in a different PR, having a clear list of affected components.


Clicking "Read Vehicle Info" multiple times causes address conflict errors

Each time I click "Read Vehicle Info" after the first causes a new "RP1210 ERROR: Another ECU is using this address". It doesn't appear to matter whether reading the vehicle info is successful, as long as the software can communicate with the Nexiq hardware. When this happens, the error appears after every request from the -84 software throughout the entire test.
The .asc trace does not show any unexpected messages from source address 0xF9.
Here's a test where I clicked "Read Vehicle Info" three times:

TEST LOG REPORT
RP1210 ERROR: Failed to read RP1210, restarting: Error (148): ERR_CLIENT_DISCONNECTED
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] EC FE 00
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] 00 D3 00
RP1210 ERROR: Failed to read RP1210, restarting: Error (148): ERR_CLIENT_DISCONNECTED
RP1210 ERROR: Another ECU is using this address: 18EEFFF9 [8] 00 00 E0 FF 00 81 00 00
RP1210 ERROR: Another ECU is using this address: 18EEFFF9 [8] 00 00 E0 FF 00 81 00 00
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] EC FE 00
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] EC FE 00
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] 00 D3 00
RP1210 ERROR: Another ECU is using this address: 18EAFFF9 [3] 00 D3 00
J1939-84 Tool version 3.1.28 - 2024/05/05 13:16
Start Part 1 - KOEO Data Collection

Here's the same place in the log with the same setup when I only clicked once:

TEST LOG REPORT
J1939-84 Tool version 3.1.28 - 2024/05/05 13:16
Start Part 1 - KOEO Data Collection

Suggestion:
Please disable and “grey” the button when data collection is underway.
Re-enable the button when complete… and avoid relaunching the tool for a blown fuse.

Also noticed while debugging that Thread.yield is in the wrong place and not effective.  Should be a Thread.sleep after read returns no packet.

Bob Halfman will attempt to recreate similar circumstances.

We have seen similar issues as well in past releases.

Bob Halfman reports that 3.2.0 addresses the observed behavior.


Translation tags for SW FFG API

Implement translation tags "data-i18n" for multi-language support.
French translation

Hello Phil, @pjbehr87
It seems during integration of the PR, the accented characters in the "fr.json" file was lost.
I don't know how it happened (encoding issue ?), but do you want me to do another PR to fix that ?

Oh, yes. I checked to make sure the translation wasn't breaking anything, and it's not, but since I don't know French I missed the fact that it was dropping letters. It's definitely an encoding issue, use UTF-8 for the translation file and that should work correctly.


Revert Store ACI fetching information

This reverts #2960
I reverted each commit individually to avoid situations like the one described in https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt, I think it's better and keeps bisectability.
It was not trivial because the store/treestore refactoring was made afterwards.

@iaguis that was a tough job! I was thinking to just do a commit that will remove some parts (store changes and related fetchers parts, store migration) but your approach looks harder but cleaner since it reverts every commit (but I have to read that doc more carefully).

I was thinking to just do a commit that will remove some parts

That should work too and should've been easier but reverting each individual commit was fun :P

We decided to not revert the commits, but remove the fields from the database with a migration path. Let's continue on https://github.com/coreos/rkt/pull/3020


Fix ip header checksum bug

https://github.com/google/gopacket/issues/231
For some header the original calculation was wrong
https://play.golang.org/p/z8jcO1yUC4

I signed it!

Code looks good.  Could you also add a test for this?


Bug at using Maks in v4.3 in old devices

Hello. In version PIXI 4.3 (specificaly Dev branch at  Jan 27, 2017 including #3626 revision)
When a Mask is used, all screen becomes messy. Here is a video comparing two devices.
Both using cocoon js.
The left (iPhone) is running using multi texture batching.
The right one (android) is an old device running with this configurations
PIXI["settings"].SPRITE_MAX_TEXTURES = 1;
PIXI["settings"].PRECISION = PIXI.PRECISION.MEDIUM;
PIXI.glCore.VertexArrayObject.FORCE_NATIVE = true;

(the mask is in the game header)
https://www.youtube.com/watch?v=ffJtwwnZFXE
When the header is not visible anymore at game end, all sprites are correctly rendered.
When the header is visible again at game restart, some sprites are partially drew.
The code I used to create a mask is:
var levelBar = gameui.AssetsManager.getBitmap("bonus_bar");
levelBar.mask = new PIXI.Graphics().beginFill(0xFF0000).drawRect(0, 0, 939, 57).endFill();
this.levelBar = levelBar;
this.addChild(levelBar);
this.addChild(levelBar.mask);

this error does not happens in PIXI v3
What can I do to solve it.

Try without PIXI.glCore.VertexArrayObject.FORCE_NATIVE = true;

Unfortunately using PIXI.glCore.VertexArrayObject.FORCE_NATIVE = true or not does not affect this bug.

Out of curiosity added this option to my project and mask stopped working, so I decided it would cause this bug.
Win x64 10, FF 51.0.1

After a bunch o tests i figure out that the mask only works if the masked object is the top most object. It means, there is no one object in front of the masked one. os else the display is messy.
Maybe is some bug in 'turning off' some clamp parameter after the mask is applied.

hey @artsjedi do you still get the issue if you change the mask for to a circle (just to test a theory!)
Also an isolated example would make it super easy for us to debug and fix for you 👍
Cheers!

Hello @GoodBoyDigital , I changed from rectangle to circle and then to polygon. It does not affects the issue.
As you requested, I'm uploaded a isolated exemple of this issue in this zip file.
Just open install cocoon in a old android phone device and then opens this file.
CocoonPackage.zip
here is the my screen captured showing the issue.
https://youtu.be/Ua_UVoieho8
This exemple changes the "power bar" mask and sometimes adds a pause menu in front of it.
Note that the issue only appears when the "pause menu" overlays the "power bar".
This project I used typescript to compile all .ts into a single script.js file. All ts source files are into the src folder.
If you have any questions, do not hesitate to contact me.
Daniel

please add the "bug" tag here.
It is not only browser bug.


Add a fez util to programmatically run commands against a target

e.g. fez to_staging run_command 'ls', instead of having to do it interactively through fez to_staging command.

This is possible right now.
fez staging command_execute\['ls'\]

You have to escape the [] somehow (at least when I tested it in zsh) so that's kind of lame. This is the standard (ugly) rake syntax for this kind of thing, however. I suppose we could do some hackery to consume subsequent command-line arguments, but it would be gross to code an unintuitive to people who already know rake.
I'll add a note of this to the readme.


OutOfMemoryException

Started the process of pulling changes out of a good sized tfs repository and received an OutOfMemoryException.
It was at about TFS change 3000 of 7000 and the entire git repo (size on disk) had reached about 130 meg.
Is there a way to have it pick-up again where it was at?

I compiled the latest git-tfs and GitSharp, and now the OOM seems to have gone away (whereas previously it would happen every time for me on our stupid repo :))
I do note that doing the full clone takes a long time, and actually resulted in the following timeout:
C18045 = ddf7a18a2afcac1635e8b5d63f4264f3a0e3f1f6
TF15004: The download request signature has expired.
TF15004: The download request signature has expired.
PackFile has not been properly disposed: {C:\Users\adam.piper\TFS\project\.git\objects\pack\pack-dc346b490a7dded3f617f178f36eedcf24e22a6b.pack}/{C:\Users\adam.piper\TFS\project\.git\objects\pack\pack-dc346b490a7dded3f617f178f36eedcf24e22a6b.idx}

Does this warrant a separate bug? Also, do you want copies of the files I compiled?


AuthenticateApp doesn't provide scopes but Authenticate does?

I'm trying to use AuthenticateApp and it seems to be authenticating ok (at least, it doesn't err) but when I try to post a status I get the following error:
bad request: 403 Forbidden: This action is outside the authorized scopes

yet I have read/write all scopes selected on my app configuration within mastodon (created manually and just using teh client id/secret from that)
So I got to looking and noticed that the Authenticate func provides scopes:
// Authenticate gets access-token to the API.
func (c *Client) Authenticate(ctx context.Context, username, password string) error {
	params := url.Values{
		"client_id":     {c.Config.ClientID},
		"client_secret": {c.Config.ClientSecret},
		"grant_type":    {"password"},
		"username":      {username},
		"password":      {password},
		"scope":         {"read write follow"},
	}

	return c.authenticate(ctx, params)
}

Here's the action I'm trying to take:
theToot := mastodon.Toot{
		Status: message,
	}
_, err = client.PostStatus(context.Background(), &theToot)

Does AuthenticateApp need to do the same to work? Or am I doing something dumb? :)
Thanks!

Follow up: From Mastodon API docs: https://docs.joinmastodon.org/methods/oauth/
scope
String. List of requested OAuth scopes, separated by spaces (or by pluses, if using query parameters). Must be a subset of scopes declared during app registration. If not provided, defaults to read.

It looks liek only the Authenticate func is requesting scope(s). So the other Auth funcs liek AuthenticateApp can only read.

I forked and fixed so I can get past Auth now
https://github.com/jasondborneman/go-mastodon/blob/master/mastodon.go#L172
Unfortunately I've run into a different issue. I'm not sure if this is a side effect of how i'm using it or what. Here's where I'm using this masto client:
https://github.com/jasondborneman/solar3/blob/main/Mastodon/Mastodon.go#L12
As you can see I'm NOT creating the application as part of the code. I created that manually and am using the client id/secret as env vars. I then create the new client and use AuthenticateApp. But once I try to do anything (I've tried uploading media and just making a plain toot) I get the following error:
bad request: 422 Unprocessable Entity: This method requires an authenticated user
How do I add a specific user to my authentication when I want to do App Auth? The instance I'm on (botsin.space) looks like it doesn't support password grant type, and I'm running my code as a cloud function so I can't do the normal oauth flow with a redirect url.
Thoughts? Thanks!

I have a hunch:
https://github.com/mattn/go-mastodon/blob/master/apps.go#L85
The /oauth/authorize is being set up in App creation, I can't find where it's being called but if it's being done as part of App creation..... if you are using it like I am, from an already existing app, you never get the code to use so when /token is finally called it hasn't been authorized yet. This is just a wild guess as to what's going on.

I think I've had a misunderstanding of OAuth unfortunately, even with the redirect uri being urn:ietf:wg:oauth:2.0:oob it goes to a mastodon login which won't work for a cloud function implementation of this.


app.slack.com href link error

Description
This is a bug in https://app.slack.com/app-settings/, but I noticed the app.slack.com isn't open source so I'm not sure where else to report/submit a patch
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[ ] question
[x] documentation related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report
In https://app.slack.com/app-settings/WORKSPACE/BOTID/distribute, under "Share Your App with Other Workspaces" > "Use HTTPS For Your Features", the "Update Event Subscriptions" button redirects you to https://api.slack.com/apps/BOTID/event-subsscriptions which is a typo for https://api.slack.com/apps/BOTID/event-subscriptions. Current link gives you a 404 page.
Reproducible in:
https://app.slack.com/ as of August 8th, 2020
Steps to reproduce:

Go to https://api.slack.com/apps
Click one of your Not Distributed bots
Click Manage Distribution
Click Distribute App
Follow steps in Bug Report

Expected result:
I would go to https://api.slack.com/apps/BOTID/event-subscriptions
Actual result:
I went to https://api.slack.com/apps/BOTID/event-subsscriptions :(

Hey @dginovker
I tried to reproduce your steps and I can't find the broken URL. Can you provide a screenshot?

Let me know if you need more detail, tried to include it all in one spot:

I haven't been able to see the Update Event Subscription button like your screenshot. I've shared it with others on the team to see if someone else knows how to reproduce it.

Worst case scenario, you could try running a grep on subsscriptions and see what comes up

@dginovker I know this is an old issue but are you still facing this issue? Let us know if you have something further to discuss here. Also, if you have some questions specific to your workspaces/apps, please consider contacting our customer support agents (/feedback in your Slack workspace or https://my.slack.com/help/requests).
Let us close this issue after waiting your comments for a while.


CI experiences failures due to Homebrew being removed from $PATH on GitHub runners

brew config output
N/A

brew doctor output
N/A

Verification

[X] I ran brew update and am still able to reproduce my issue.
[X] I have resolved all warnings from brew doctor and that did not fix my problem.

What were you trying to do (and why)?
CI that uses the 20220922.2 Ubuntu image fails due to GitHub removing Homebrew from $PATH.
https://github.com/actions/runner-images/issues/6283
What happened (include all command output)?
CI fails if it uses the 20220922.2 Ubuntu runner image.
What did you expect to happen?
CI succeeds or fails
Step-by-step reproduction instructions (by running brew commands)
Example: https://github.com/Homebrew/homebrew-cask/pull/132241

CC @Homebrew/linux. See, in particular: https://github.com/actions/runner-images/issues/6283, https://github.com/actions/runner-images/issues/6280

Hey!
Yeah, we had to remove brew from PATH on linux despite all the efforts, we can not predict how people parse tooolchain or the system variables in their code, which caused us some painful issues.

@mikhailkoliada Is this only for Ubuntu <22.04? Do you have any ideas/dates when 22.04 will become ubuntu-latest?

@MikeMcQuaid currently these are all ubuntus, for consystency. We are planning to migrate ubuntu-22.04 to latest next quarter.

@mikhailkoliada I cannot reproduce this, it seems Ubuntu 22.04 still has brew in the PATH. Can you confirm if that will change or not?

We are planning to migrate ubuntu-22.04 to latest next quarter.

Thanks!

@MikeMcQuaid for 22.04 changes will be  rolled out this week probably too, last week we had to fix only 18.04 and 20.04 quickly due to direct impact

I do not think it is an issue you guys can help with

Actually, https://github.com/actions/runner-images/issues/6280 looks like something we can and should fix, since gcc-12 should still be working despite glibc being keg-only.

i.e. it is not even a problem that gcc-12 does not work, the problem is that exists, say, in $PATH

You had the exact same issue with glibc and binutils, which we fixed. Why would we not be able to fix this one?

@mikhailkoliada The issue was presumably with it (gcc)  being in the PATH rather than existing on disk at all and that it was baked in on the image even when Homebrew on Linux hadn't been run by that customer. Some potential mitigations:

make gcc keg-only so it's not in the PATH even when brew is
GitHub doesn't auto-install e.g. zstd which will pull in this compiler
Remove from PATH on ubuntu-latest but not ubuntu-22.04 (and not when that becomes ubuntu-latest, either)

GitHub doesn't auto-install e.g. zstd which will pull in this compiler
Remove from PATH on ubuntu-latest but not ubuntu-22.04 (and not when that becomes ubuntu-latest, either)

Both of these suggestions sound good to me.

I don't think this is stale.

We have mitigated this with the Homebrew/setup-homebrew action. We don't control what GitHub Actions does so have no ability to influence beyond that.

Dumb question: where is said action?
https://github.com/Homebrew/setup-homebrew

https://github.com/Homebrew/actions/tree/master/setup-homebrew


Unable to parse option values that start with '-', e.g. negative numbers

It is impossible to pass negative numerical values to the parser - it results in the following errors:
ERROR: Unable to parse option -112.45470: Invalid syntax

I see that you forked it and modified it to accept negative numbers. Just pointing it out for anyone who ends up here.


Create Contributing.md

No labels and no issue number mentioned @rajatsinghal02

Yeah you mention in the description first then let him assign the labels

provide your issue no

@ChandelAnish please add the labels


lib/repository: do not force Docker API v1

I added this statement to force using Docker API v1 and test if it
worked and I forgot to remove it before pushing :$.

LGTM


xAxis display multiple times series not align

Version
4.5.0
Steps to reproduce
Use 2 xAxis 'time' with different dates (same time rate) from 00:00 to 23:45, 1 yAxis and 2 sensors data to show:
sensor 1: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sensor 2: [ 1, 2, 3, 4, 5, 6]
What is expected?
The two time axis align the label on top and bottom
What is actually happening?
'cause the sensor 2 has less data than the sensor 1, the vertical lines result unaligned.

Also the comparison of the data is unaligned:

The labels starts usually at yyyy-dd-mm(1) 00:00 and  yyyy-dd-mm(2) 00:00, but the time depends on the first data. Also the end:
Label sensor 1: (different date 1) 23:45 time of the last data
Label sensor 2: (different date 2) time of the last data

Hi. This feature is under reviewing at https://github.com/apache/incubator-echarts/pull/13210 .

How's it going now?


Webserver Functionality to AutoServe

Contains React Application and FastAPI backend for interaction

Currently testing frontend on AWS Ec2 Instance

Working fine with AWS ec2, using VPN
Now Fixing CSS to all pages


Named functions

The assumption I have is you like named functions, thus I have added named functions which adheres to the Airbnb style.

I prefer named function expressions primarily for debugging stacktraces. I altered your PR to remove the name from the IIFE because it is a single invocation and to avoid confusion with the actual isStyleSupported function. Thanks again!

Same here and thanks for merging.


Add support for configurable log levels

Bolt 2.17.0 added support for the --log-level flag.

This feature was added in the following commit.
https://github.com/martezr/packer-provisioner-puppet-bolt/commit/a2ee17dcf2c51ab90eec5a6cbacc87a81f9c0f81


Identify bold words within a block of text

Hi
Is there a way of identifying if the text is bold within a block of text ?
Thanks

Hey @lg60.
please see #70 as it will probably answer your question.
If not, please comment below and I will see what i can do to find this out for you.

To identify the bold words use the styles as shown below:
var node = psd.tree().childrenAtPath('Text/'+child.text.value)[0];
var styles = node.get('typeTool').styles();
var fontCaps = styles.FontCaps[styles.FontCaps.length-1];
if(fontCaps == 2)
child.text.value = child.text.value.toUpperCase();


refactor(registry): re-design plugin registry on top of new capabilities model

What type of PR is this?
/kind cleanup
/kind design
Any specific area of the project related to this PR?
/area registry
/area documentation
What this PR does / why we need it:
Following up the progress of tracked in https://github.com/falcosecurity/falco/issues/1948, this PR refactors the plugin registry, the registry tool, and the readme, to reflect the recent changes of the plugin API that removed the notion of "plugin type".
Which issue(s) this PR fixes:
Special notes for your reviewer:

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

40d713f refactor(registry.yaml): re-design registry to notion of plugin capabilities

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce,leogr]

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


"THE admin" center

You say: go to The Admin center. Please specify exactly which admin center you refer to (Azure, O365, other?)

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

ID: 27249e0c-e601-b849-8404-ce0bb8155fce
Version Independent ID: a308f156-998b-8ea9-5668-7a59e549cd10
Content: Gather the information you need to create Office 365 DNS records
Content Source: Office365-Admin/get-help-with-domains/information-for-dns-records.md
Service: o365-administration
GitHub Login: @pebaum
Microsoft Alias: pebaum

@blouwagie - Thank you for submitting feedback.
I will get this issue over to the O365ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@blouwagie  Thank you for your feedback. It should be the MIcrosoft 365 admin center. We have raised a PR https://github.com/MicrosoftDocs/OfficeDocs-O365ITPro/pull/725 to correct the changes in the document.

@blouwagie - From our understanding, the issue has been resolved. If you feel it hasn't been resolved, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!


The Share Sheet crashes randomly on different pages

Hopefully fixed in https://github.com/EdwardHinkle/indigenous-ios/commit/cdc614b8c38c26e4f9dbda2a577c34cc2b02751a


The poweredBy footer toggle doesn't work

even when putting
poweredBy: false
in the code it still renders it at the end of the page.

#72 fixed it.  Till then use true to disable it


pulp_push: only publish repos we pushed to (suggested by jluza)

Calling crane() with no arguments publishes all the repositories in pulp, spawning a task for each one and waiting for it before proceeding to the next one.
This is O(n) for the number of repositories in the registry.
What we actually want to do is only publish the repositories we just pushed to, bringing the cost down to O(1) -- this takes seconds, instead of minutes or hours.

LGTM

lol, this would be real fun after having 100 pulp repos


Add support for Scala 2.13.0-RC1

This depends on non-final releases of both Scala 2.13.0 and Scalatest 3.0.8.
@non up to you to decide whether this is something you want to publish, in which case it'd probably be version 0.3.1-RC1 ?
If so, let me know and I'll update the README.md accordingly.

Off topic, but submitting a PR made me realise that this has no CI. Is this something you'd like addressed?

Looks great, thanks! 👍

@nrinaudo I'm traveling now, so I'll probably publish this weekend. When I do I'll PR a README change and tag you on it.


edupont04 from OPS portal: Merge from master to live

Docs Build status updates of commit b84fd71:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

dynamics-gp/installation/ProfServicesToolsLibrary.md
:white_check_mark:Succeeded
View

dynamics-gp/payroll/CAN18YETax.md
:white_check_mark:Succeeded
View

dynamics-gp/payroll/US19JanTaxR1.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit b84fd71:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

dynamics-gp/installation/ProfServicesToolsLibrary.md
:white_check_mark:Succeeded
View

dynamics-gp/payroll/CAN18YETax.md
:white_check_mark:Succeeded
View

dynamics-gp/payroll/US19JanTaxR1.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Unit tests

Hi, do you take PRs? This project is lacking tests.

Yeah.  Totally!  Send 'em my way.

Will do.
And would you take another PR to make a .net standard version of the library?

Yeah -- I'll take whatever you're willing to do.  Thanks!

Thanks!


[Automation] Generate Fluent Lite from TypeSpec computefleet

[Automation] Generate Fluent Lite from TypeSpec computefleet
namespace: https://github.com/Azure/azure-sdk-pr/issues/1929
release issue: https://github.com/Azure/sdk-release-request/issues/5255

/azp run prepare-pipelines

/azp run java - computefleet - ci

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure.resourcemanager:azure-resourcemanager-computefleet


Load the feeds in parallel

Rather than having the feeds load serially and block on each feed (https://github.com/Rotonde/beaker/blob/master/scripts/feed.js#L44), it might be a nicer experience to instead have them run in parallel.
As each feed resolves merge it into the list. It might require a bit of subtle animation as items are inserted to avoid content jumping too much. Or perhaps if a new one loads after the first 3 seconds insert it as a collapsed item which can be expanded.
Some extra feedback on the left panel with something like "8 of 14 feeds loaded" would be nice. Along with "2 feeds offline" etc.
I'm happy to take this on if this sounds like a good idea to you :)

That's what I would like, but I don't know how :)
I would be really happy if you could handle it, if only so I can learn from it.
cheers!

Sure thing!


Add slos and slis as categories for the prometheus service level CRD

Codecov Report

Merging #59 (9eb3682) into main (a0cf9ad) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #59   +/-   ##
=======================================
  Coverage   83.43%   83.43%
=======================================
  Files          14       14
  Lines         682      682
=======================================
  Hits          569      569
  Misses         77       77
  Partials       36       36

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 a0cf9ad...9eb3682. Read the comment docs.


Cyclic JSON serialization error on multiple refs of same object

It looks like attempting to serialize a hierarchy of objects containing the same instance of an object either throws cyclic serialization exception, or serializes to null if I use JsonSerializationOptions.ContinueOnCycle. While I can understand that it doesn't make sense to serialize a hierarchy of where instance A contains a ref to B and B contains a ref to A, that is not happening in this case. A simple way to trigger this condition is to create a collection that has the same instance of any complex object added to it, even if that object contains only primitive properties. For example, this array can be properly serialized
new string[]{ "foo", "foo" }

but this array cannot
class Person {
    public string Name {get;set;}
}

var person = new Person { Name = "foo"}
new Person[] { person, person}

This seems to be because internally the objectGraph dictionary uses the object instance as key. If this is done as a safety feature to prevent infinite recursion it would be nice to use recursion depth count instead.

Hi,
The way it works currently is expected.
That being said, I've committed some changes https://github.com/smourier/ZeroDepJson/commit/1223111f13e6190e550667f26b115640e896ec60 that will allow you to customize how the object graph works.
You can now pass a custom object graph (it still has to derive from IDictionary<object, object> for compat reasons). And the JsonOptions object that's passed around has a SerializationLevel integer value.
So what you want can now be achieved like this for example:
var person = new Person { Name = "foo" };
var persons = new Person[] { person, person };
var options = new CustomOptions();
var json = Json.Serialize(persons, options);
Assert.IsTrue(json == "[{\"Name\":\"foo\"},{\"Name\":\"foo\"}]");

....

class CustomOptions : JsonOptions
{
    public CustomOptions()
    {
        ObjectGraph = new CustomObjectGraph();
    }

    private class CustomObjectGraph : IDictionary<object, object>, Json.IOptionsHolder
    {
        private readonly Dictionary<object, int> _hash = new Dictionary<object, int>();

        // the options is set by the serializer
        public JsonOptions Options { get; set; }

        public void Add(object key, object value)
        {
            _hash[key] = Options.SerializationLevel;
        }

        public bool ContainsKey(object key)
        {
            if (!_hash.TryGetValue(key, out var level))
                return false;

            if (Options.SerializationLevel == level)
                return false;

            return true;
        }

        public object this[object key] { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
        public ICollection<object> Keys => throw new NotImplementedException();
        public ICollection<object> Values => throw new NotImplementedException();
        public int Count => throw new NotImplementedException();
        public bool IsReadOnly => throw new NotImplementedException();
        public void Add(KeyValuePair<object, object> item) => throw new NotImplementedException();
        public void Clear() => throw new NotImplementedException();
        public bool Contains(KeyValuePair<object, object> item) => throw new NotImplementedException();
        public void CopyTo(KeyValuePair<object, object>[] array, int arrayIndex) => throw new NotImplementedException();
        public IEnumerator<KeyValuePair<object, object>> GetEnumerator() => throw new NotImplementedException();
        public bool Remove(object key) => throw new NotImplementedException();
        public bool Remove(KeyValuePair<object, object> item) => throw new NotImplementedException();
        public bool TryGetValue(object key, [MaybeNullWhen(false)] out object value) => throw new NotImplementedException();
        IEnumerator IEnumerable.GetEnumerator() => throw new NotImplementedException();
    }
}

Thanks, good to know there's a way around this. Closing ticket as it's not an issue.


On-cluster build: allow pipeline override or pipeline export for a func project

Currently, pipelines are defined inside the CLI and cannot be overridden. allowing to export the pipeline into a YAML file that can be updated and replaced on the cluster for that specific function project will enable other tasks to be performed as part of the function deploy or build process.

@zroubalik you mean like changing the pipeline flag from bool to be the path to the with the pipeline definition?

/remove-lifecycle stale

/remove-lifecycle stale


Remove cpp, allow gcc -E fallback

Also switches to using mingw-w64 "familiar" suffixes

Sorry, GitHub's web interface defaulted to your branch. 😅


[HUDI-460] Redo hudi-integ-test log statements using SLF4J

What is the purpose of the pull request
Redo hudi-integ-test log statements using SLF4J
Brief change log
Redo hudi-integ-test log statements using SLF4J
Verify this pull request
This pull request should be covered by existing tests.
Committer checklist

[x] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Hi @leesf, Thanks for your advice, i will fix it.


Reportback statuses count fix

What's this PR do?
This PR adds a fix to help more accurately display the correct counts of Reportbacks of different statuses per campaign on the /admin/users/rb page. It updates the ReportbackItem class so that after an item is reviewed then the cached count of items based on status is updated so that it will accurately display the correct count back on the index list page.
However, this will only fix the counts after a new Reportback is reviewed. If there are no RBs waiting for review for a campaign, then the counts will not be fixed. So to remedy this, this PR also adds a new page tab called "Refresh Counts" on the /admin/users/rb page. This new page provides a form to select a campaign and force refresh the Reportback statuses counts:

This PR also does some general code cleanup like switching to literal array syntax and adding some carriage returns, cause why did we insist on mushing all our code together without some breathing room! It was hurting my poor 👀  😖
How should this be reviewed?
👁
Relevant tickets
Refs https://trello.com/c/52cHXmq3/566-2-drupal-inbox-overview-showing-zero-even-though-there-are-rbs-with-that-status-time-box-1-2-hours
Checklist

[ ] Documentation added for new features/changed endpoints.
[ ] Tested on staging.
[ ] Pinged a PM if this is a larger PR that would benefit from some additional testing love
[ ] Post a message in #phoenix if this includes something that causes a rebuild!

🎇


[#1435]improvement: Improve log4j settings to avoid annoying messages

What changes were proposed in this pull request?
Improve the log4j settings to avoid annoying messages, by adding separate loggers in the log4j.properties file.
Why are the changes needed?
For #1435
Does this PR introduce any user-facing change?
No.
How was this patch tested?
By running the process successfully and check the log4j output.

PTAL @jerqi

Could you show the difference if we don't have this pr?

Useless logs like below will be removed in DEBUG mode and will be controlled individually by loggers:
[2024-01-10 00:52:38.344] [grpc-default-worker-ELG-1-39] [DEBUG] io.grpc.netty.shaded.io.grpc.netty.NettyServerHandler.log - [id: 0xfadd038a, L:/<IP_ADDRESS>:19977 - R:/<IP_ADDRESS>:49272] INBOUND HEADERS: streamId=35051 headers=GrpcHttp2RequestHeaders[:path: /rss.common.ShuffleServer/requireBuffer, :authority: <IP_ADDRESS>:19977, :method: POST, :scheme: http, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.47.0, grpc-accept-encoding: gzip, grpc-timeout: 59999974u] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false
[2024-01-10 00:52:38.424] [grpc-default-worker-ELG-1-3] [DEBUG] io.grpc.netty.shaded.io.grpc.netty.NettyServerHandler.log - [id: 0x6849ffa2, L:/<IP_ADDRESS>:19977 - R:/<IP_ADDRESS>:59746] INBOUND HEADERS: streamId=40101 headers=GrpcHttp2RequestHeaders[:path: /rss.common.ShuffleServer/requireBuffer, :authority: <IP_ADDRESS>:19977, :method: POST, :scheme: http, te: trailers, content-type: application/grpc, user-agent: grpc-java-netty/1.47.0, grpc-accept-encoding: gzip, grpc-timeout: 59999943u] streamDependency=0 weight=16 exclusive=false padding=0 endStream=false
[2024-01-10 00:57:38.244] [DataStreamer for file /rss/online/application_1703049085550_1336968_1704812682974/0/25-25/<IP_ADDRESS>-19977-17000_0_0.data block BP-473621326-<IP_ADDRESS>-1686715582091:blk_1074442373_986592] [DEBUG] org.apache.hadoop.hdfs.DataStreamer.run - stage=DATA_STREAMING, blk_1074442373_986592
[2024-01-10 00:57:38.245] [DataStreamer for file /rss/online/application_1703049085550_1336968_1704812682974/0/25-25/<IP_ADDRESS>-19977-17000_0_0.data block BP-473621326-<IP_ADDRESS>-1686715582091:blk_1074442373_986592] [DEBUG] org.apache.hadoop.hdfs.DataStreamer.run - blk_1074442373_986592 sending packet seqno: 1048 offsetInBlock: 63093248 lastPacketInBlock: false lastByteOffsetInBlock: 63157760
@jerqi


Itertools takewhile

After https://github.com/RustPython/RustPython/pull/949

Codecov Report

Merging #965 into master will decrease coverage by 0.01%.
The diff coverage is 62.5%.

@@            Coverage Diff             @@
##           master     #965      +/-   ##
==========================================
- Coverage   64.87%   64.85%   -0.02%
==========================================
  Files          90       91       +1
  Lines       16046    16158     +112
  Branches     3634     3657      +23
==========================================
+ Hits        10410    10480      +70
- Misses       3231     3251      +20
- Partials     2405     2427      +22

Impacted Files
Coverage Δ

vm/src/stdlib/mod.rs
100% <100%> (ø)
:arrow_up:

vm/src/stdlib/itertools.rs
62.16% <62.16%> (ø)

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 c276357...8083b7d. Read the comment docs.

Seems like this needs to be rebased...

Please check my comments about the usage of the ? operator for error handlings. It can be applied at multiple places in your change and makes the code much more compact.

Hmm, cool. Didn't know of this one. I'm learning Rust on the way :)
Thanks for the instructive comments.


Guess_path can accept extension. This fixes the problem when loading …

…multiple toml files from a main toml file (concat).
Example: main.toml:
[meta.concat]
'5h' = '20220901_nluc_AAV9.AB_B22_5h.toml'
'1h' = '20220901_nluc_AAV9.AB_B22_1h.toml'

20220901_nluc_AAV9.AB_B22_5h.toml contains well map, without specifying file name. Using the new code you can just write:
def import_plate(toml_path: Path, data_extension: str = '.xlsx'):
    layout, data = wellmap.load(toml_path, data_loader=load_lum, path_guess=data_extension)
    data['well'] = data['row'] + data['col'].astype(str)
    df1 = pd.merge(layout, data, on=['well', 'path'])

This solution is economical in the sense that 20220901_nluc_AAV9.AB_B22_5h.toml and 20220901_nluc_AAV9.AB_B22_5h.xlsx having the same name, file names are only listed once.

Thanks for making a PR!  I think this feature is already supported, though.  The path_guess argument is formatted with the path to the TOML file, so you can do this:
layout, data = wellmap.load(toml_path, data_loader=load_lum, path_guess='{0.stem}' + data_extension)

This is slightly more verbose than just giving the extension, but I think the extra clarity/flexibility is worth it.

Thanks for your note, I somehow did not spot this possibility. Indeed your suggestion works and I find it much more elegant than my hack.
Thanks for all your efforts put into wellmap!
Daniel

On 4. Feb 2023, at 23:37, Kale Kundert @.***> wrote:
Thanks for making a PR! I think this feature is already supported, though. The path_guess argument is formatted with the path to the TOML file, so you can do this:
layout, data = wellmap.load(toml_path, data_loader=load_lum, path_guess='{0.stem}' + data_extension)
This is slightly more verbose than just giving the extension, but I think the extra clarity/flexibility is worth it.
—
Reply to this email directly, view it on GitHub https://github.com/kalekundert/wellmap/pull/36#issuecomment-1416865363, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5XZLQJDZ7AM4GRAJQMHTWV3KY7ANCNFSM6AAAAAAURJVPOI.
You are receiving this because you authored the thread.


"Scenario Outline" not supported

Hi there,
I have a few feature files in testrail with Scenario Outline and a table but when I try to sync this up I get

"Invalid gherkin content for TestCase ..."

This is a valid Cucumber format

Just created a pull request with the proposed changes.


Export current schemes does not include all color information

When exporting a scheme and reaplieing it after another scheme was applied, it will not result in the original colors.

Your Windows build number: Microsoft Windows [Version 10.0.17763.316]

What you're doing and what's happening:

ColorTool.exe -o .\Documents\WindowsPowerShell\programs\colortool\schemes\powershell-default.ini
ColorTool.exe onehalfdark
ColorTool.exe powershell-default

What's wrong / what should be happening instead:
oneHalfDark is changing the background color. when reaplieing the previous exported scheme the background color index is not restored.

I think I could look into it and create a pull request.
Is there a specific documentation to the used format of the ini file? Or can I just add more sections?

I created a pullrequest that adds support in persisting the color indexes.

should be resolved by #400

Thank you!


Crashes due to std::string_view use-after-free issues

axmol version: dev current
devices test on:
developing environments

NDK version: r19c
Xcode version: 12.4
VS/msvctools version: Visual Studio 2019(16.11)/14.29.30133
cmake version:
Steps to Reproduce:

There are several bugs that seem to appear on one platform but not another, and the only thing I can pin-point it to is certain usage of std::string_view.
For example, this function will throw an error when the memory sanitizer is enabled, due to the fact that frameName is invalidated after the call to _spriteFrames.erase(frameName);.  The frame name after that point is no longer valid, so in normal operation, it would never find that frame in the _spriteFrameToSpriteSheetMap.
bool SpriteFrameCache::eraseFrame(std::string_view frameName)
{
    _spriteFrames.erase(frameName);  // drop SpriteFrame
    const auto itFrame = _spriteFrameToSpriteSheetMap.find(frameName);
    if (itFrame != _spriteFrameToSpriteSheetMap.end())
    {
        auto& spriteSheet = itFrame->second;
        spriteSheet->full = false;
        spriteSheet->frames.erase(frameName);

        if (spriteSheet->frames.empty())
        {
            _spriteSheets.erase(spriteSheet->path);
        }

        _spriteFrameToSpriteSheetMap.erase(itFrame);  // update index frame->plist

        return true;
    }
    return false;
}

One possible way to fix this is to add a temporary std::string instance of that string_view, such as:
bool SpriteFrameCache::eraseFrame(std::string_view frameName)
{
    const auto tmpFrameName = std::string(frameName);
    _spriteFrames.erase(tmpFrameName);  // drop SpriteFrame
    const auto itFrame = _spriteFrameToSpriteSheetMap.find(tmpFrameName);
    if (itFrame != _spriteFrameToSpriteSheetMap.end())
    {
        auto& spriteSheet = itFrame->second;
        spriteSheet->full = false;
        spriteSheet->frames.erase(tmpFrameName);

        if (spriteSheet->frames.empty())
        {
            _spriteSheets.erase(spriteSheet->path);
        }

        _spriteFrameToSpriteSheetMap.erase(itFrame);  // update index frame->plist

        return true;
    }
    return false;
}

This will fix the issue, but it's not the only place where this seems to be a problem.
Now, on iOS, there is a bigger problem, and this one can reproduced very easily in both the iOS simulator and the real device.  If Director::getInstance->getRenderer()->render() is called after a getting a RenderTexture::saveToFile(), then it will crash with invalid memory access to the filename being used.  If the address sanitizer is enabled, it will show a use-after-free error in the same location as the iOS crash.  The std::string_view is freed prior to the onSaveToFile callback, which is what causes the use-after-free error.
void RenderTexture::onSaveToFile(std::string_view filename, bool isRGBA, bool forceNonPMA)
{
    auto callbackFunc = [&, filename, isRGBA, forceNonPMA](RefPtr<Image> image) {
        if (image)
        {
            if (forceNonPMA && image->hasPremultipliedAlpha())
            {
                image->reversePremultipliedAlpha();
            }
            image->saveToFile(filename, !isRGBA); //<<<<<< filename is NOT valid here: use-after-free error.
        }
        if (_saveFileCallback)
        {
            _saveFileCallback(this, filename);
        }
    };
    newImage(callbackFunc);
}

This can be seen in the cpp-tests `Node::Render Texture, test 1, when "Save Image PMA" or "Save Image Non-PMA" is clicked.
If the call to Director::getInstance->getRenderer()->render() is removed in the button handlers, then there is no crash, as the filename seems to be valid, and the image is saved successfully. For example:
void RenderTextureSave::saveImageWithPremultipliedAlpha(ax::Ref* sender)
{
    static int counter = 0;

    char png[20];
    sprintf(png, "image-pma-%d.png", counter);

    auto callback = [&](RenderTexture* rt, std::string_view path) {
        auto sprite = Sprite::create(path);
        addChild(sprite);
        sprite->setScale(0.3f);
        sprite->setPosition(Vec2(40.0f, 40.0f));
        sprite->setRotation(counter * 3);
        _target->release();
    };

    _target->retain();
    _target->saveToFile(png, Image::Format::PNG, true, callback);
    // Add this function to avoid crash if we switch to a new scene.
    //Director::getInstance()->getRenderer()->render(); //<=== THIS LINE COMMENTED OUT FIXES THE ISSUE
    AXLOG("Image saved %s", png);

    counter++;
}

I don't quite understand why this is happening, or what difference a call to Director::getInstance->getRenderer()->render() would make.  I cannot reproduce this on Windows (haven't tested Android yet).
Does anyone have any idea why this would be happening on iOS?

I think that problem is in line:
void RenderTexture::onSaveToFile(std::string_view filename, bool isRGBA, bool forceNonPMA)
{
    auto callbackFunc = [&, filename, isRGBA, forceNonPMA](RefPtr<Image> image) {

std::string_view filename is captured inside lambda by value. If std::string owning string_view is destroyed - we have undefined behaviour
Personally I think that filename should be passed to onSaveToFile as const std::string&
Antother option would be to copy string_view to string
void RenderTexture::onSaveToFile(std::string_view filenameView, bool isRGBA, bool forceNonPMA)
{
    std::string filename = std::string(filenameView);
    auto callbackFunc    = [&, filename, isRGBA, forceNonPMA](RefPtr<Image> image) {

@halx99 This is critical issue. I think we should revisit usage of std::string_view in entire axmol code.
I think that all places were std::string_view is captured by lambda are potential bugs
Please check e.g.:
https://abseil.io/tips/1

Because the string_view does not own its data, any strings pointed to by the string_view (just like a const char*) must have a known lifespan, and must outlast the string_view itself. This means that using string_view for storage is often questionable: you need some proof that the underlying data will outlive the string_view.

std::string_view filename is captured inside lambda by value. If std::string owning string_view is destroyed - we have undefined behaviour

Yes, that is exactly why it's crashing, and the fact that it isn't happening on Windows was a little confusing, but now you mentioned the key words, "undefined behaviour".  That seems to be what is happening here.
We'll see what opinion @halx99 has regarding the most appropriate way to fix this, and go from there, because all usage of std::string_view needs to be checked.

@rh101 Do I understand it correctly that this bug is reproducible 100% with "cpp-tests" and "Node::Render Texture, test 1, when "Save Image PMA" or "Save Image Non-PMA" ?

@rh101 Do I understand it correctly that this bug is reproducible 100% with "cpp-tests" and "Node::Render Texture, test 1, when "Save Image PMA" or "Save Image Non-PMA" ?

Yes, for both iOS simulator and physical iPhone device builds.  I couldn't reproduce the issue with a Windows x64 build.

@rh101 @halx99 I think that it should be possible to run from Github Action cpp-tests executable on Windows and MacOS as last step after build. With that we can detect all crashes similar to this and e.g.:  running below one
cpp-test --run-all-tests

https://github.com/axmolengine/axmol/issues/908
Not sure about Linux hosts

About
Director::getInstance()->getRenderer()->render();

My guess is that with this line we force to call callback immediately and with that we decrease chance of "undefined behavior"

My guess is that with this line we force to call callback immediately and with that we decrease chance of "undefined behavior"

That seems to be the case.

I make a fix commit for above issues: https://github.com/axmolengine/axmol/commit/28eb9e1886d037082543dd5fc125b2e4e63ed553

Excellent, thank you!

The specific issues listed have been fixed, so closing this.


is Deployment-Resources-Must-Not-Be-Debug correct?

It seems like the new test Deployment-Resources-Must-Not-Be-Debug is not correct. The fail unit test shows debugSetting like:
{
"$schema":  "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"resources":  [
{
"debugSetting":  "requestContent",
"type":  "Microsoft.Resources/deployments"
}
]
}
But, debugSetting is in the properties and it has a detailLevel property. I would think the following template should fail but it passes:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "<IP_ADDRESS>",
"parameters": {
"storageAccountName": {
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2019-10-01",
"name": "nestedTemplate1",
"properties": {
"mode": "Incremental",
"debugSetting": {
"detailLevel": "requestContent"
},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "<IP_ADDRESS>",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "[parameters('storageAccountName')]",
"location": "West US",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
}
}
],
"outputs": {
}
}

good catch