executable file not found in $PATH

I'm trying to use the most recent version of this cookbook to run a container.
The image has a startup script that always runs when the container launches.  So when the docker container executes the parameter in "command", it actually gets passed as a parameter to the startup script.   This doesn't cause an issue, because the script ignores it's argv entirely.
However, I'm unable to pass anything as a command.  No matter what I've tried, I keep getting "Docker::Error::NotFoundError", either complaining that the file doesn't exist, or that it's not in the path.
The relevant parts of the resource are
tty true
working_dir '/'
open_stdin true
env ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/ibm/imaserver/bin']
command "cd"
action :run
Again, it doesn't matter what I put into command.  I've tried /usr/bin/true for example, and it still complains about no such file or directory.   And I have verified multiple times that the commands I'm referencing do exist in the specified location and are executable.
I only started having this problem with this image when I upgraded to the latest version of this cookbook, that requires you specify a command on docker_container.

What platform is your image?
'cd' isn't a binary.. its a shell built-in.
true is normally located at /bin/true, which I don't see in your PATH.
try:
sh -c 'cd /somewhere ; ./whatever'
-s

command is not a requirement for docker_container, you should be able to remove it without issue.

Hi,
Thanks for all your input.
Both host OS and the container release are CentOS Linux release 7.1.1503 (Core)
true is definitely in /usr/bin on this machine.  I will try a sh -c /usr/bin/true, but I have tried a /bin/bash -c.
Even if true wasn't in /usr/bin, specifying a full path to an existing executable should always find it, and stat should always return true.
And, alas, if I comment out the command parameter, I get
[2015-08-20T07:45:29-05:00] ERROR: docker_container[container-name] (recipe-name line 62) had an error: Docker::Error::ServerError: No command specified
Just for completeness, the metadata.rb in the docker cookbook I'm using says
version '1.0.4'

Okay I think I figured out what's probably going on here.
I suspect that the image you're trying to run has a malformed CMD directive in its Dockerfile.
Inspect it with "docker history your_image".
I added some more test resources here
https://github.com/bflad/chef-docker/blob/c1dc65afbc5d8833a354a724ad3537eeb2bb57b4/test/cookbooks/docker_test/recipes/container.rb#L324-L326
The first go around, I gave it an invalid format, which produced the error you described.
CMD '/bin/ls -la /'
^ That tries to run a binary named '/bin/ls -la /'
If you remove the quotes, it will run it in "shell form" mode (it automatically starts sh -c for you)
The recommended format is exec form:
CMD [ "argv[0]", "argv[1], "...", "argv[n]" ]
https://docs.docker.com/reference/builder/#cmd
I bet that's it.
-s

Hi -
Unfortunately we aren't using a CMD directive.
The Dockerfile has the following directives:
FROM
MAINTAINER
WORKDIR
RUN (two of these, actually, to do some prep)
ENTRYPOINT
ONBUILD ... ADD
The ENTRYPOINT is the one that defines the script that runs.  It does have quotes, but that's because it's an array - ["scriptname"], not "scriptname"

I'm at a loss to reproduce this then...
I've got two resources exercising entrypoint, one with a command, and one without.
https://github.com/bflad/chef-docker/blob/21fd17e073b683d1f33036ef28e063b1cbb01251/test/cookbooks/docker_test/recipes/container.rb#L304-L306

Is there additional trace or debug I can provide?
Can you reproduce the required CMD error?

Linking to a gist/pastbin the complete stack trace from the chef-client run would be the most helpful thing.

Again, really glad for the help, particularly so promptly.
Stack trace at http://pastebin.com/twjnGwE5

Update your command with /bin/true, currently you have /usr/bin/true.

As I said, /usr/bin/true does exist.
But here's /bin/true http://pastebin.com/mWXCYP6s

Can you give us the full details of your docker_container and Dockerfile? I am unable to reproduce this on the latest version with the relevant parts of the resource you pasted in the first post.

I've changed the values to protect the innocent, but I've left the syntax the same.
http://pastebin.com/yf0PpC1y
Again, I didn't have this problem when command wasn't required.

This is really bizarre... what Docker engine version?
On Thu, Aug 20, 2015 at 1:37 PM, Jeff Lowrey<EMAIL_ADDRESS>wrote:

I've changed the values to protect the innocent, but I've left the syntax
the same.
http://pastebin.com/yf0PpC1y
Again, I didn't have this problem when command wasn't required.
—
Reply to this email directly or view it on GitHub
https://github.com/bflad/chef-docker/issues/377#issuecomment-133089061.

docker --version
Docker version 1.7.1, build 3043001/1.7.1

What does the equivalent "docker run" command do?
-s
On Thu, Aug 20, 2015 at 1:49 PM, Jeff Lowrey<EMAIL_ADDRESS>wrote:

docker --version
Docker version 1.7.1, build 3043001/1.7.1
—
Reply to this email directly or view it on GitHub
https://github.com/bflad/chef-docker/issues/377#issuecomment-133096142.

8d606dd4a5a8b84d3f60f6ea7ca8408700dc700f8844d3babe57f6a3ae9b4e25
Error response from daemon: Cannot start container 8d606dd4a5a8b84d3f60f6ea7ca8408700dc700f8844d3babe57f6a3ae9b4e25: [8] System error: exec: "/bin/true": stat /bin/true: no such file or directory

Oh, and.  That was without the --env and -v parameters.

And, the command while I'm at it.
docker run -i=true -t=true  --memory=17179869184 -d=true -it --net="host" -P --name="container-name" -w="/" 'image-name' /bin/true

The fix I would really like to see is the removal of the requirement for command.

can you checkout the latest version from master branch and give that a spin? comment out the command, I am curious if it still errors out with Docker::Error::ServerError: No command specified.

The command property isn't required by the resource.
https://github.com/bflad/chef-docker/blob/21fd17e073b683d1f33036ef28e063b1cbb01251/libraries/resource_docker_container.rb#L12
There's a test exercising a defined entrypoint with a blank command here:
https://github.com/bflad/chef-docker/blob/21fd17e073b683d1f33036ef28e063b1cbb01251/test/cookbooks/docker_test/recipes/container.rb#L309-L314
Since you're getting the same error with the Docker CLI as the docker_container resource, that means the problem lies with the engine, the image, or some combination of the two.
Given that and the fact that I can't reproduce this, I'm going to close the ticket for lack of actionability.
PS: Let me know when you figure out what's wrong.. I'm definitely curious!
-s


Missing code in chapter 4

This line should be changed to the line below
# original
gtzan = load_dataset("marsyas/gtzan", "all")

# change to
gtzan = load_dataset("marsyas/gtzan", "all").get('train')

Thank you for reporting the issue, we've added a fix in https://github.com/huggingface/audio-transformers-course/pull/131


Docs: Uninstallation procedure

The process to remove cilium is not documented. The documentation should have a section to help users uninstall Cilium.

+1

I just tried cilium on a gke test cluster and eventually removed it, now I have a non working cluster and I have no idea how to recover aside from nuking it and rebuilding it...
That's possibly the worst user experience possible and I cannot find anything on how to uninstall cilium cleanly...

Hey @pchaigno,
Quick question about this, does cilium uninstall cleanly uninstall cilium?
I used it earlier on a cluster and it looks like it did but just want to be sure and maybe find a way to add it to the documentation.

So sorry for getting to this late.
Yes, I did install with cilium install. If I did with helm it will be just to uninstall the release right?

Recent versions of the Cilium CLI will uninstall a Helm release. Earlier versions of the CLI can be used to cilium uninstall non-Helm-based installations. This table in the Cilium CLI Readme indicates which version to use.


Add ScriptInfo to script's log

Include hash, file size, etc. Would be good to keep in the running log over time.

https://github.com/AndrewRathbun/KAPE-EZToolsAncillaryUpdater/commit/3ac9f847ffaebde325dc4697dddefaf338ed4cce
This is done


Dropdown: Search does not preserve value

Bug Report
When searching for values with the dropdown, the searched value is not preserved in the next consecutive search.
Steps
A clear and concise description of steps to reproduce the problem.
Consider "Search Dropdown" from the documentation page.
Normal Behavior:

Open Dropdown values
Click on any value
Click inside the dropdown again
Value is preserver

Error Behaviour

Open Dropdown values
Search for any value
Click on this value
Click inside the dropdown again
Value is LOST ;(

Expected Result
Selected value will be preserved
Actual Result
Value is lost
Version
Latest
Testcase
You can just use your documentation page

This sounds like the expected behaviour. The "search" is supposed to be help with finding the option that you're looking for in the dropdown. Once you select an option, you're previous "search" has no further value. The next time you open the dropdown, the expected behaviour is to see all the available options, with no pre-existing filter.
The way this is implemented (in general, not just in SUIR) is by allowing the dropdown the store any text (the "search" term) as selected value, while the dropdown is open. Once you select an option, the option becomes the selected value, thus overwriting whatever you've typed previously. If you close the dropdown without selecting an option, the selected value is cleared because it does not match any of the available options, thus clearing your "search".
"Search" it's a bit of a misleading term in this context. Instead of a regular search, this feature is more like auto-complete, or option filter.

@mihai-dinculescu did you watch the gif? I am pretty sure that is not the standard behaviour. Even when I select the value from the dropdown the value is not preserved. In the gif check that after selecting "California", when reclicking to the Input the value disappears

Oh yes, that is definitly an issue. It seems to be the same as #3560.


tests: move exception policy stats checks to min 7 - v1

Related to
Task #6509
Min version updates from 8 to 7, needed for 7.0.x. backport of Exception policy stats
Ticket
Redmine ticket:
https://redmine.openinfosecfoundation.org/issues/6509

Should this PR be closed ?
cf https://github.com/OISF/suricata/pull/10812#issuecomment-2073682773


Update hybrid-azuread-join-plan.md

removed the extra note about LSA issues from the prerequisite

@RavennMSFT : Thanks for your contribution! The author, @MicrosoftGuyJFlo, has been notified to review your proposed change.

#sign-off


Fix linkemap swap

Context:
As for now default implementation of swap in srml-support/storage/hashed/generator breaks linked_map implementation of its linked list.
I'm not sure what are the most idiomatic rust but it feels to me in the future we should remove this default implementation of storage map as it is confusing with other implementation (such as linkedmap) which break assumptions of this default.
for me either we divide into two different trait or we make no default implementation.
But before this happens here is a fix in the current design.
Done
default swap method in storagemap is override in the implementation for linkedmap made in decl_storage.
Comments

The changes or remains of order of the linked_list for a swap is not specified in the API. No guarantee must be made by user. maybe this should deserve a comment but at some point nothing has been stated in the whole API in this regards so I feel fine with this.

Fix https://github.com/paritytech/substrate/issues/3341


Manual backup

Hi how are you.
I have the latest version of snippets installed, but now I can't get the backup file.  Currently I work on two computers, but I do not have internet, I would like to be able to back up my snippets manually so that I can use it on both computers.  How finger to do it.
Thanks.

Hi, you have currently two options :

either use 1.x version of Snippets and keep same routine you had before (you'll miss on new updates/features)
or use option snippets.useWorkspaceFolder which will let you manage snippets in file ./vscode/snippets.json which is relative to your open workspace in VSCode. But that will require you to synchronize that file across multiple workspaces.


ArgoCD - local UI deployment

Describe the changes
Here we integrate the wbaas UI into ArgoCD in a simpler way without additional templating and applicationsets (in contrast to what was tried in #1662). It uses plain yaml values files generated by helmfile via bin/generate-values.
./bin/generate-values
 $ ./bin/generate-values
error: missing environment

usage: generate-values <environment> <release-name> [output-file-template]

The script can be run like ./bin/generate-values local ui where local could be staging or production and ui any other helmfile release. The third parameter let's you define a different helmfile than k8s/helmfile/helmfile.yaml. This is needed for the CI script. Once we moved all components to Argo we could create a Makefile target that generates/updates all values files, for our convenience.
.github/workflows/check-generated-values.yml
This is a new GitHub workflow that runs the script to check if the checked-in values files are actually up to date. It does this by iterating over each generated values file that is present in k8s/argocd/ and runs generate-values to compare it against.

How to test this locally
Mind my GitHub comments about the targetRevision in both Application manifests.
This is what I need help with

not sure if this works as-is with a completely fresh cluster
I'm not incredibly happy with the github workflow I came up with. I'm not experienced with writing workflows so the easiest thing to me for setting up helmfile and yq was using docker. Maybe this is overly complex, maybe its fine, you decide. This also complicates using absolute paths in the generate-values script but I think it makes sense now
please verify/clarify this assumption: for skaffold to play along nicely I think we need to add some annotations to our helm charts

https://github.com/wbstack/charts/pull/146

Please look out for leftover config that does not make sense
The docs were written in a hurry, please check if they make sense and if they are sufficient

Link to Phabricator

https://phabricator.wikimedia.org/T360876
Prior discussion
Paired on & discussed with tom

not sure if this works as-is with a completely fresh cluster

it does :)

I'm not incredibly happy with the github workflow I came up with. I'm not experienced with writing workflows so the easiest thing to me for setting up helmfile and yq was using docker. Maybe this is overly complex, maybe its fine, you decide. This also complicates using absolute paths in the generate-values script but I think it makes sense now

I'm also fine with this. One tweak we now need to make is to make sure the automated PR generation also run this script to prevent automaking unmergable PRs

make sure the automated PR generation

see: https://github.com/wbstack/ui/pull/854 - we will merge this straight afterwards


Red screen with codes when i search my channel after that it went full white screen

The Issue

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of the user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

This will be an issue with newly created or updated channels until we update the Android app to support the new sdk. We hope to get this out this week.
Thanks for filing the issue, but closing for now.
In the future, please include more information like the channel name.


Moment.js module included by function node gets deleted when importing is-date-object

Current Behavior
When adding is-date-object module in function node, previously added moment.js that worked before stops working.

Expected Behavior
No response
Steps To Reproduce
I created a function node with moment, tried it, it worked. Then added is-date-object and moment stopped working.

When checking installed modules I could see that moment was installed and disappeared after is-date-object was installed

Installing this modules using npm install does not create any issue or conflict
Example flow
paste your flow here

Environment

Node-RED version: 2.2.2 (same behaviour with 2.2.0)
Node.js version: 14.18.2
npm version: 6.14.15
Platform/OS: linux
Browser: chrome

Originally reported here https://discourse.nodered.org/t/moment-js-module-included-by-function-node-gets-deleted-when-importing-is-date-object/69801
Raised at the request of @Steve-Mcl

Hi @maha0894
Unfortunately I cannot re-create this on in Node-RED 3.0.2

Function Code...
msg.payload.now = new Date()
msg.payload.moment_isDate = moment.isDate(msg.payload.now)
msg.payload.isDateObject = moment.isDate(msg.payload.now)
return msg;

Steps Taken (test 1)

added is-date-object and  moment to the function setup
added the function code above
tested OK

Steps Taken (test 2)

added is-date-object to the function setup
added the function code above (disabled the moment line)
tested OK
added moment to the function setup
enabled the moment line
tested OK

Steps Taken (test 2)

added moment to the function setup
added the function code above (disabled the isDateObject line)
tested OK
added is-date-object to the function setup
enabled the isDateObject line
tested OK

Are you able to re-create this using Node-RED v3.0.2?
Are you able to upgrade to Node-RED v3.0.2?


Whether SkyWalking-Collector's configuration file can be dynamically loaded?

Please answer these questions before submitting your issue.

Why do you submit this issue?
[x] Question or discussion
[ ] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?
Whether SkyWalking-Collector's configuration file can be dynamically loaded?Just like file:application.yml or the specific configuration of ES.

Bug

Which version of SkyWalking, OS and JRE?

Which company or project?

What happen?
If possible, provide a way for reproducing the error. e.g. demo application, component version.

Requirement or improvement

Please describe about your requirements or improvement suggestions.

In 6.x(not released), we have https://github.com/apache/incubator-skywalking/blob/master/docs/en/setup/backend/backend-setting-override.md Also in 5.x, you could find the override from here, https://github.com/apache/incubator-skywalking/blob/5.x/docs/en/Setting-override.md#collector
If you want to contribute new mechanism, we are welcome of course.

Thank you very much for your answer.
Bu how can i reload the Elasticsearch configuration in applicaction.yml and make these configuration work without reboot skywalking-collector?
Has API been provided to solve this problem?


ArrowControl disappear when removing ToFadeDuration.

When I either remove ToFadeDuration or setting it by 0, the arrow disappear and become invisible, but it is still clickable tho.
For trial purpose:
in the attached sample in PanCardViewSample.Views.CarouselSampleXamlView.xaml in line 43:
replace <controls:LeftArrowControl ToFadeDuration="2500"/> with <controls:LeftArrowControl/>.
For removing ambiguity: I need it both visible and clickable

@AhmedSalahKhodair hi, thanks, got it.
Does anybody want to debug, realize the reason, fix and make PR?
Must be something easy :)

I think, adding Opacity = 1; here https://github.com/AndreiMisiukevich/CardView/blob/master/PanCardView/Controls/ArrowControl.cs#L144 will solve the issue

It works but not stably.
Consider the left arrow case:
When I set IsCyclical="False" and remove SlideShowDuration="3500" and swipe to the first page (the left arrow disappear and that's good) but when I swiped to the second page (the left arrow disappear too and that's wrong) and when I swiped to next it appears again and works fine, and if I repeat the swiping process again, error happens again.
I will spend more time on it after few hours.

@AhmedSalahKhodair don't worry
I will fix it)

1.6.8 version


Do not write vacuum simulations to GROMACS files

Description
This PR removes support for writing files to GROMACS simulations if no box vectors are defined.
Resolves #1029
Checklist

[x] Add tests
[x] Lint
[ ] Update docstrings

I still need to document this (in each branch)


bytes strings can result in unexpected string formatting

I ran into a case with HTEX executor where address was of type bytes rather than string and this resulted in some unexpected formatting errors when formatting launch commands and such. Not sure if it matters, but using bytes was working fine when working with IPP.
Here's an example of a config:
public_ip = b'<IP_ADDRESS>'
Config(
    executors=[
        HighThroughputExecutor(
            label='htex_local',
            address=public_ip,
            cores_per_worker=1,
            max_workers=2,
            provider=AWSProvider(
                'ami-073e3f122e47832bf',
                region='us-east-2',
                key_name='mykey',
                profile="default",
                state_file='awsproviderstate.json',
                nodes_per_block=1,
                init_blocks=2,
                max_blocks=2,
                min_blocks=0,
                walltime='01:00:00',
            ),
        )
    ],
    strategy=None,
)

You can see in the logs on the server and worker that addresses were formatted incorrectly (a b is inserted)
// server parsl logs
...
2019-04-09 01:03:15.441 parsl.executors.high_throughput.executor:199 [DEBUG]  Launch command: process_worker_pool.py  --max_workers=2 -c 1 --task_url=tcp://b'<IP_ADDRESS>':54865 --result_url=tcp://b'<IP_ADDRESS>':54464 --logdir=/home/ubuntu/swag-service/runinfo/040/htex_local --hb_period=30 --hb_threshold=120
...

// worker logs
...
2019-04-09 00:56:57 parsl:480 Rank:0 [INFO]  task_url: tcp://b<IP_ADDRESS>:54579
2019-04-09 00:56:57 parsl:481 Rank:0 [INFO]  result_url: tcp://b<IP_ADDRESS>:54313
...

@macintoshpie Byte strings are quite different from regular strings, so I'm a bit puzzled as to why the IPP worked with that. Either way, for all our new executors the options are explicit about the expected types, and in the case of address options we need a string. I can't think of any actionable fix for this besides additional type checking which we generally avoid since it isn't quite pythonic.
What you are seeing in the logs is Python trying to convert a byte string to a regular string and failing at it  without realizing it.

additional type checking which we generally avoid since it isn't quite pythonic.

interested in @benclifford's take on that
duck typing is pythonic:
try:
    address.decode()
except AttributeError:
    pass

Our code base isn't particularly consistent in its handling of wrong types being passed in so I don't think we have a consistent story about who should be detecting this type mismatch.
@macintoshpie Where did the byte string come from in the real situation that this issue reflects?

I think the beginning of the story could be "the config class does some basic validation"

The byte string came from urllib. On EC2, was using instance metadata to retrieve public ip:
import urllib.request

public_ip = urllib.request.urlopen("http://<IP_ADDRESS>/latest/meta-data/public-ipv4").read()

Yeah, I think this was a more of a mistake on my end, not parsl. I just found it very confusing to have it work with IPP then when changing to HTEX trying to figure out what was wrong.
Just to confirm, I just reran it again with IPP using bytes and it worked - not sure why, its still showing the bytes string but I guess ipcontroller doesn't care for some reason (ip substituted):
2019-04-11 21:33:03.862 parsl.executors.ipp_controller:99 [DEBUG]  Starting ipcontroller with 'ipcontroller --ipython-dir=/home/ubuntu/swag-service/runinfo/080 --ip=* --profile=ec2_single_node  --location=b'<IP_ADDRESS>' '

@macintoshpie that seems a reasonable piece of code that might be expected to work or fail more gracefully.

issue #873 is a way forward for detecting this: with the work in that issue done, you should be presented with a clearer error message at the point that you attempt to initialize the high throughput executor telling you that you should have supplied str, not byte.
I will close this issue in favour of #873

Thanks for the report, @macintoshpie! This has pushed us to actually start on implementing config validation which will be a big improvement for usability 😁


Fix mypy errors (qpy)

Summary
Following discussion, I'm splitting https://github.com/Qiskit/qiskit-terra/pull/8187 by module.
Details and comments
This fixes all the mypy errors in qpy as for now. Similarly to https://github.com/Qiskit/qiskit-terra/pull/8253 the name discrepancy appears to be on purpose, so the only solution I see is to ignore those errors.

Closing as discussed that ignores will not be added as for now


PDA Project Update

PDA Project Update
Introduction
Hello PDA community members,
My name is Matt Scott, and I am the owner of Azorian Solutions, a consultancy for the
Internet Service Provider (ISP) industry. I'm pleased to announce that I have taken ownership of the PDA project and
will be taking over the lead maintainer role, effective immediately.
Please always remember and thank both Khanh Ngo and
Jérôme Becot for their efforts in keeping this project alive thus far. Without the effort
of Khanh creating the PDA project and community, and the efforts of Jérôme for holding up the lead maintainer role after
Khanh had to step down, this project would not still be alive today.
With that being said, please read through all the following announcements as they are important if you're an active PDA
user or community member. I intend to make many great enhancements to the project, but it could be a bumpy road ahead.
Project Maintenance
As it stands today, contributions to the project are at a low. At this point, there is a rather large backlog of issues
and feature requests in contrast to the current maintenance capacities. This is not to say you should lose hope though!
As part of this project transition, some additional contribution interest has been generated and I expect to attract
more with the changes I'm planning to make. In the near future, I may by-pass some usual maintenance processes in order
to expedite some changes to the project that have been outstanding for some time.
This is to say however that unless the project attracts a healthy new contribution base, issues may continue to pile up
as maintenance capacity is rather limited. This is further complicated by the fact that the current code base is harder
to follow naturally since it largely lacks uniformity and standards. This lack of uniformity has lead to a difficult
situation that makes implementing certain changes less effective. This status quo is not uncommon with projects born how
PDA was born, so it's unfortunate but not unexpected.
Change of Direction
In order to reorganize the project and get it on a track to a future that allows it to contend with other commercial
quality products, I had to make many considerations to the proficiencies of two unique paths forward to achieve this
goal. One path forward is seemingly obvious, continue maintaining the current code base while overhauling it to shift it
towards the envisioned goal. The other path is a fresh solution design with a complete rebuild.
The answer to the aforementioned decision might seem obvious to those of you who typically favor the "don't reinvent the
wheel" mentality. I'm unclear of the details surrounding the original use-case that drove the development of this
project, but I don't believe it was on-par with some use-cases we see today which include operators handling many tens
of thousands of zones and/or records. There are many changes that have been (sometimes) haphazardly implemented which
has lead to the previously mentioned lack of uniformity among other issues. To put it simply, I'm not sure if the
project ever had a grand vision per se but instead was mostly reactionary to community requests.
I believe that the current project has served the community fairly well from what I can tell. I know the product has
certainly helped me in my professional efforts with many environments. I also believe that it's time to pivot so that
the project can realize it's true potential, considering the existing user base. For this reason, I am beginning the
planning phase of a project overhaul. This effort will involve a complete re-engineering of the project's contribution
standards and requirements, technology stack, and project structure.
This was not an easy decision to come to but one must appreciate that there aren't as many people that can get very
excited about working on the current project code base. The current project has many barriers to entry which I intend to
drastically impact with future changes. The reality is that it's easier to gain contribution participation with a new
build effort as it offers an opportunity to own a part of the project with impactful contributions.
Project Enhancements
Since this is the beginning of a rebirth of the project so to speak, I want to implement a new operational tactic that
will hopefully drive contributions through incentive. Many of us understand that any project, needs a leader to stay on
track and organized. If everything were a democratic process, it would take too long and suffer unnecessary challenges.
With that being said, I do believe that there is plenty of opportunity through-out various development phases of the
project to allow for a democratic process where the community contributors and members can participate in the
decision-making.
The plan to achieve the aforementioned democratic goal is to centralize communications and define some basic structured
processes. To do this, more effective methods of communication have been implemented to allow those interested in
contributing to easily participate in fluid, open communication. This has already been proving to be quite effective for
exchanging ideas and visions while addressing the issue with contributors living in vastly different time zones. This is
effectively a private chat hosted by the PDA project using Mattermost (a Slack-like alternative).
Even if you aren't in a position to directly contribute work to the project, you can still contribute by participating
in these very important and early discussions that will impact the solution engineering. If the PDA project is an
important tool in your organization, I encourage you to join the conversation and contribute where applicable your
use-cases. Having more insight on the community use-cases will only benefit the future of this project.
If you're interested in joining the conversation, please email me at
<EMAIL_ADDRESS>for an invitation.
Re-branding
As part of this project transition, I will also be changing the naming scheme in order to support the future development
efforts toward a newly engineered solution. The current PDA project will ultimately become known as the "PDA Legacy"
application. This change will help facilitate the long-term solution to take the branding position of the existing
solution. Another effort I will be making is to get an app landing page online at the project's new domain:
powerdnsadmin.org. This will act as one more point of online exposure for the project which
will hopefully lend itself well to attracting additional community members.
Contribution Requirements
Another big change that will be made with the new project, will be well-defined contribution requirements. I realize
these requirements can be demotivating for some, but they are a necessary evil to ensure the project actually achieves
its goals effectively. It's important to always remember that strict requirements are to everyone's benefit as they push
for order where chaos is quite destructive.
Closing
I hope these announcements garner more participation in the PDA community. The project definitely needs more help to
achieve any goal at this point, so your participation is valued!

Thank you very much for your sharing

I keep version 0.3.3
2022-12-10T13:57:24.172481700Z Traceback (most recent call last):
2022-12-10T13:57:24.172554727Z   File "/usr/bin/flask", line 8, in
2022-12-10T13:57:24.172564670Z     sys.exit(main())
2022-12-10T13:57:24.172570075Z   File "/usr/lib/python3.8/site-packages/flask/cli.py", line 967, in main
2022-12-10T13:57:24.172608053Z     cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
2022-12-10T13:57:24.172613922Z   File "/usr/lib/python3.8/site-packages/flask/cli.py", line 586, in main
2022-12-10T13:57:24.172619290Z     return super(FlaskGroup, self).main(*args, **kwargs)
2022-12-10T13:57:24.172624622Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 1055, in main
2022-12-10T13:57:24.172629800Z     rv = self.invoke(ctx)
2022-12-10T13:57:24.172634687Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
2022-12-10T13:57:24.172647229Z     return _process_result(sub_ctx.command.invoke(sub_ctx))
2022-12-10T13:57:24.172652343Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
2022-12-10T13:57:24.172657829Z     return _process_result(sub_ctx.command.invoke(sub_ctx))
2022-12-10T13:57:24.172662652Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
2022-12-10T13:57:24.172667549Z     return ctx.invoke(self.callback, **ctx.params)
2022-12-10T13:57:24.172672366Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 760, in invoke
2022-12-10T13:57:24.172677254Z     return __callback(*args, **kwargs)
2022-12-10T13:57:24.172700465Z   File "/usr/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
2022-12-10T13:57:24.172705959Z     return f(get_current_context(), *args, **kwargs)
2022-12-10T13:57:24.172711091Z   File "/usr/lib/python3.8/site-packages/flask/cli.py", line 426, in decorator
2022-12-10T13:57:24.172716196Z     return __ctx.invoke(f, *args, **kwargs)
2022-12-10T13:57:24.172721198Z   File "/usr/lib/python3.8/site-packages/click/core.py", line 760, in invoke
2022-12-10T13:57:24.172726278Z     return __callback(*args, **kwargs)
2022-12-10T13:57:24.172731224Z   File "/usr/lib/python3.8/site-packages/flask_migrate/cli.py", line 134, in upgrade
2022-12-10T13:57:24.172736286Z     _upgrade(directory, revision, sql, tag, x_arg)
2022-12-10T13:57:24.172741411Z   File "/usr/lib/python3.8/site-packages/flask_migrate/init.py", line 96, in wrapped
2022-12-10T13:57:24.172746480Z     f(*args, **kwargs)
2022-12-10T13:57:24.172751392Z   File "/usr/lib/python3.8/site-packages/flask_migrate/init.py", line 271, in upgrade
2022-12-10T13:57:24.172756480Z     command.upgrade(config, revision, sql=sql, tag=tag)
2022-12-10T13:57:24.172761402Z   File "/usr/lib/python3.8/site-packages/alembic/command.py", line 322, in upgrade
2022-12-10T13:57:24.172766608Z     script.run_env()
2022-12-10T13:57:24.172771431Z   File "/usr/lib/python3.8/site-packages/alembic/script/base.py", line 569, in run_env
2022-12-10T13:57:24.172785198Z     util.load_python_file(self.dir, "env.py")
2022-12-10T13:57:24.172791906Z   File "/usr/lib/python3.8/site-packages/alembic/util/pyfiles.py", line 94, in load_python_file
2022-12-10T13:57:24.172797223Z     module = load_module_py(module_id, path)
2022-12-10T13:57:24.172802034Z   File "/usr/lib/python3.8/site-packages/alembic/util/pyfiles.py", line 110, in load_module_py
2022-12-10T13:57:24.172807077Z     spec.loader.exec_module(module)  # type: ignore
2022-12-10T13:57:24.172811925Z   File "", line 843, in exec_module
2022-12-10T13:57:24.172817027Z   File "", line 219, in _call_with_frames_removed
2022-12-10T13:57:24.172822118Z   File "migrations/env.py", line 88, in
2022-12-10T13:57:24.172827152Z     run_migrations_online()
2022-12-10T13:57:24.172831941Z   File "migrations/env.py", line 68, in run_migrations_online
2022-12-10T13:57:24.172836851Z     engine = engine_from_config(config.get_section(config.config_ini_section),
2022-12-10T13:57:24.172841795Z   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/init.py", line 543, in engine_from_config
2022-12-10T13:57:24.172846848Z     return create_engine(url, **options)
2022-12-10T13:57:24.172851690Z   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/init.py", line 500, in create_engine
2022-12-10T13:57:24.172856863Z     return strategy.create(*args, **kwargs)
2022-12-10T13:57:24.172861648Z   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/strategies.py", line 87, in create
2022-12-10T13:57:24.172866631Z     dbapi = dialect_cls.dbapi(**dbapi_args)
2022-12-10T13:57:24.172871500Z   File "/usr/lib/python3.8/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 118, in dbapi
2022-12-10T13:57:24.172876560Z     return import("MySQLdb")
2022-12-10T13:57:24.172890833Z ModuleNotFoundError: No module named 'MySQLdb'
}

version: '3.9'
networks:
minette:
  external: true
  internal: false
nonette:
  external: true
  internal: true
services:

pdns_admin:
  container_name: pdns_admin
  env_file:
    - .env
    - .env_mysql_pdns
  environment:
    SQLALCHEMY_DATABASE_URI: mysql://${_MYSQL_USER}:${_MYSQL_PASS}@${_NO_INTERNET_SUBNET_IP}${_MARIADB_IP}:${_MARIADB_PORT}/${_MYSQL_DB}
    GUNICORN_LOGLEVEL: DEBUG
  #image: ngoduykhanh/powerdns-admin:latest
  image: ngoduykhanh/powerdns-admin:v0.3.0
  networks:
    minette:
      ipv4_address: ${_DOCKER_SUBNET_IP}${_PDNS_WEB_IP}
    nonette:
      ipv4_address: ${_NO_INTERNET_SUBNET_IP}${_PDNS_WEB_IP}
  restart: unless-stopped
</details>

@MikEarpp respectfully, this is not the place to open a support issue with the project as this is a formal announcement. Please create a new issue as a question or bug if you're seeking assistance. Thank you for being a user of PDA!

Thanks @AzorianSolutions for taking the ownership of PowerDNS-Admin project. I hope you and the other maintainers will keep the project developing and bring value to the community. 👍 🥇 🎆

Thanks for taking over on this, and do let us know what can be done to help. Bug bounties? Testing? etc?

@nulluserid thank you for the sentiment.
There will always be room for additional help so if you're interested in participating, I recommend following the instructions in this announcement to receive an invite link to the private project chat where we can collaborate further on efforts!

Hello @AzorianMatt , I tried to reach you on email<EMAIL_ADDRESS>but email returned with undelivery message:
The mail system

<[admin@powerdnsadmin.org](mailto:admin@powerdnsadmin.org)>: host mail.azorian.solutions[<IP_ADDRESS>] said: 450
   4.1.8 <[feldsam@feldhost.cz](mailto:feldsam@feldhost.cz)>: Sender address rejected: Domain not found (in
   reply to RCPT TO command)
Reporting-MTA: dns; [mail.feldhost.cz](http://mail.feldhost.cz/)
X-Postcow-Queue-ID: AB21A1EE0027
X-Postcow-Sender: rfc822; [feldsam<EMAIL_ADDRESS>Arrival-Date: Mon,  6 Mar 2023 17:54:05 +0100 (CET)

Final-Recipient: rfc822; [admin<EMAIL_ADDRESS>Original-Recipient: rfc822;[admin<EMAIL_ADDRESS>Action: delayed
Status: 4.1.8
Remote-MTA: dns; mail.azorian.solutions
Diagnostic-Code: smtp; 450 4.1.8 <[feldsam@feldhost.cz](mailto:feldsam@feldhost.cz)>: Sender address
   rejected: Domain not found
Will-Retry-Until: Sat, 11 Mar 2023 17:54:05 +0100 (CET)
Return-Path: <[feldsam@feldhost.cz](mailto:feldsam@feldhost.cz)>
Received: from [<IP_ADDRESS>] (localhost [<IP_ADDRESS>]) by localhost (Mailerdaemon) with ESMTPSA id AB21A1EE0027
	for <[admin@powerdnsadmin.org](mailto:admin@powerdnsadmin.org)>; Mon,  6 Mar 2023 17:54:05 +0100 (CET)

@feldsam my apologies, give it a try now. I was experiencing some issues with my mail server in the recent days and thought it had everything squared away. Glad you said something!


JAMES-2909 Use Architecture Decision Record

I still miss something explaining me how to write an ADR

it's in the associated link.
I can add the formalism if you want, but a complete how to would be overkill IMO

see  #169.


Update installation.md

Fix Ubutu typo

What this PR does / why we need it:
Fixed a typo in installation documentation
Which issue (if any) this PR fixes:
Fixes #
Fixes typo
Any other useful info:

Thanks 👍


I2C default ISR resets with Cache disabled but cached memory region accessed (IDFGH-8835)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Hi Folks,
I am pretty new to ESP, so sorry if this is a stupid question.
I am trying to implement the I2C interrupt from IRAM, but I am getting the following error when I activate the ESP_INTR_FLAG_IRAM flag: Guru Meditation Error: Core  0 panic'ed (Cache disabled but cached memory region accessed).
From what I understand is that this is caused by not all of the required code being saved to IRAM/DRAM and then the system tries to access it in cache, but the flash is being used for another function.
I am running Espressif with IDF version v4.4.3 and please see my config file attached. Please can someone give me an idea of how I can get the I2C to run on IRAM? Since from other posts, it seems like this issue has been solved: [https://github.com/espressif/esp-idf/issues/8422]
sdkconfig.txt

https://github.com/espressif/esp-idf/issues/10079


Fix incorrect Chinese translation of linked-references.zh-cn.md

The original text "To address this" should be translated to "为了解决这个问题". "工单" looks like corresponds to "issue".

Translations are handled automatically by crowdin. Only US-IN changes needs a push. IMO

@puni9869 sadly we don't have our docs in crowdin yet


query_unchecked! still makes some checks

I am in the early stages of creating my database schema. I am using barrel, refinery, postgres for migrations, and sqlx for my actual queries. When I need to make a change to my database, as I am in testing, I drop the database and run migrations again. Migrations are part of my startup process: my program connects to my database with a single postgres crate connection, runs migrations, then opens a sqlx PgPool. The migrations are barrel sql definitions, stored in refinery migration files according to their spec. Never mind for now that sqlx and refinery do not mix, I am not worried about it.
I can not start my program without selectively commenting out every sqlx::query_unchecked!() instance because compile-time checking will complain that the relation does not exist, even though I will be running migrations that creates the relation/table/etc.
My question: Why is it that a macro named query_unchecked still performs checks? Is there any way to convince sqlx that my database will have such fields once the migrations are ran?

I agree that the naming choice is slightly misleading, however, generating the anonymous record type still requires the query to be prepared (which requires a valid schema) so we can pull information about its output columns. The "unchecked" part is that we don't assert that the types of bind parameters are correct.
In #249 I have an implementation that allows you to save query preparation data so that you don't need a live migrated database to compile, which should hopefully be released in 0.4 soon.
In the meantime, keep in mind you're not obligated to use the macros. We have some examples of how to do dynamic queries in the README: https://github.com/launchbadge/sqlx#querying
A 100% "unchecked" query macro would be little more than a trivial wrapper around these, which seems kinda pointless to me. The _unchecked suffixed macros only really exist as a workaround for some limitations on type checking that should hopefully be resolved with a couple of Rust features that are pending stabilization (#148), at which point I expect these macros to be obviated and subsequently removed.

Thanks kindly. I understand the query and query_as functions more now that I have seen them from a different angle.

If you'd like to try the offline mode, I've got instructions here: https://github.com/launchbadge/sqlx/pull/249#issuecomment-629584143


keylogger stops logging after some time

i setup a client and tested it
the keylogger was working great but unfortunately it suddenly stopped working after 30 min aprox. and just log the windows title and blank line under it

this is an attachment shows the problem

Did your keyboard disconnect? My first thought would be that the Keylogger was attempting to get the state of a keyboard that was invalid.
Was the client built with any non-default or unusual settings?

no it's laptop's keyboard so it can't be diconnected
and its setting was the default which came with it i have just changed the host to "<IP_ADDRESS>"
and  the keylogger didn't work again until i have reopen it

Run the client in debug mode and please tell me if an exception is raised in the output window.

i tried debug mode but it seems that the client don't connect to the server correctly :/

If I leave the keylogger on for 30 minutes, would I experience the same troubles?

i don't know but that which happened with me and the Pic above shows what happened

Are you using the latest solution?  Do you use alt + tab to switch between applications?

Do you have an external monitor setup?. MSDN says GetAsyncKeyState() method won't work if current desktop is not the primary desktop.

yes i am using the latest solution and using ALT+Tab to switch
and i am working on only 1 monitor

It looks like theres a problem writing the file somewhere

There wouldn't be a problem writing to file, because the window titles are logged.

There might be, not because of that, but when I ran a client, it never even created a new file after had running it for a few minutes

@DragonzMaster, are you able to recreate this problem again after it had first happened?

Was the problem solved?

Certainly not the external monitor. I have multiple monitors and have had no issues with this. I hooked up my laptop to another monitor (Windows 7) and it had no issues like this. Unfortunately I don't have free time now to leave it logging keys for at least 30 minutes. Maybe tomorrow!

As @d3agle asked, I am curious if this showed again or if it was a one-time issue...

Ok, so, this problem has happened with me as well.  Ran the client on my host and let it run while I played some games etc..  I can't pinpoint exactly how long it took for the logs to stop working, but eventually it stopped logging the keys and kept logging the Window titles.  I'm going to implement your suggestion @yankejustin with the time of the logs in the window title header, from when its first created and see if I can pinpoint what might be happening

Here is what is happening, if someone wants to fix
http://puu.sh/hEoaF/b58c574bb9.png

Here is what is happening, if someone wants to fix
http://puu.sh/hEoaF/b58c574bb9.png
Object null reference, k is null

Can you confirm it's fixed with the latest commit?

I left it running for ~2 hours and no problems

Prior to the null check, it would null out around 30 minutes into the client being ran.  It happened twice, around the same time, not sure why it was.

Now to think of it though, it was probably a dead-key.  The FromKeys method will return a null instead of a character, so that was probably why

sorry guys i was sleeping as i see there is someone else faced this problem
and unfortunately when i run the debug release the client don't connect to the server (commit 311)
so i can't know if there is any exception thrown

The problem is fixed now

i have downloaded the latest release and testing it

Seems good. Unless otherwise stated by @DragonzMaster if a problem is seen again, this can probably be closed.

no no i haven't seen the problem again since using the latest commit until now
good work guys :+1:


usrsctp stalls when sending data on multiple streams in low RTT environment

From thread on discuss-webrtc mailing list:

In my tests: after transmitting several 100 MBs of data, the data rate drops from ~100-150 Mbps down to next to nothing (maybe 200 Kbps) and continues in that state until I drop and create a new PeerConnection.
I'm trying to track down the reason for the sudden loss of throughput. My investigation so far seems to point down into the usrsctp library level (though I don't quite have enough information yet to log an issue).
The issue only seems to present itself in release mode and without full logging enabled. I was able to enable enough logging to find out that at some point in time, the usrsctp library on both the sending and receiving sides seem to stall out for about a second before bursting more data. And then after that burst, the network goes silent again (for a second or so), and keeps going in this unstable state.
In more detail: I enabled logging of the SCTP packets in SctpTransport::VerboseLogPacket and examined both the sending and receiving sides (and wrote a program to match up the packets). At the point where the issue occurs, both sides go silent (no packets in/out) for about a second or more (950-1200 msec in my case). This is even though the sending peer has many messages waiting to send (data payloads that were successful with usrsctp_sendv).
I tried the usrsctp version linked to what I gather is the current "stable" Chromium (56.0.2924.87) and saw the same behaviour. However, I decided to go back further and tried the version linked to 53.0.2785.135 (usrsctp dd3ce98), and my tests are working a lot better. The transfer rate does fluctuate between 100 Mbps - 50 Mbps, but there is no major stall without recovery.
Also, with some more investigation using the latest usrsctp library, if I set the min RTO to 100 msecs (using usrsctp_sysctl_set_sctp_rto_min_default(100) in the InitializeUsrSctp function), the DataChannel totally stops sending after a ~30 second transfer. The data rate is 0 kbps :).
In the log, just before the problem I see alot of what I might call "panic" retransmissions from both sides. Even though both sides are receiving from each other ok, they keep sending the same thing over and over again. I'm not really familiar with the library or the protocol, but it seems like something is wrong.

Any idea what could be causing this?

Maybe https://github.com/sctplab/usrsctp/commit/e411f6652c2363e0a7ec89c4eab54fff73a5118c?
I'm interested in the RTO.Min = 100ms drop to 0 problem. I haven't seen that. I responded on the mailing list thread.

I was about to report the same issue: Chrome stops receiving data. In my case, is very easy to reproduce, and quite regular:
2017-02-22 22:51:44.574 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 22:59:32.457 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 23:07:16.522 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 23:15:03.388 ManagementChannel.js:65 Heartbeat timeout... reconnecting.

Michael, I will try my tests around the change you identified (hopefully
sometime today).
With the drop to 0, this may only be occurring on one WebRTC DataChannel
(which I believe maps to a unique SID in SCTP). I have some evidence in my
logs that while one channel is stuck, another was able to send a message.
I'm not sure if that helps.
On Fri, Feb 24, 2017 at 10:13 AM, Gavriloaie Eugen-Andrei <
<EMAIL_ADDRESS>wrote:

I was about to report the same issue: Chrome stops receiving data. In my
case, is very easy to reproduce, and quite regular:
2017-02-22 22:51:44.574 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 22:59:32.457 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 23:07:16.522 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
2017-02-22 23:15:03.388 ManagementChannel.js:65 Heartbeat timeout... reconnecting.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sctplab/usrsctp/issues/137#issuecomment-282315444,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKVfwl43QycWZojskQyrqc-7mzvBOJGyks5rfvOagaJpZM4MK1T7
.

@shiretu Can you provide a .pcapng file showing the SCTP transfer going on?

@dandufeu OK. That doesn't help much. I would be very useful to have a .pcapng file with the unencrypted SCTP packets. usrsctp provides a way to log HEX dumps of the packets which can be
translated into a .pcapng file..

Sure thing. Will prepare it right now

Hi Michael,
Here is a capture of the last 5000 packets from my test (two captures
representing the sending and receiving sides of the data transfer).
Scrolling down to the bottom, you can see the larger gaps in the timestamps
(with duplicate data being sent).
This is using the latest webrtc  (linked to usrsctp rev 8679f2b
https://github.com/sctplab/usrsctp/commit/8679f2b0bf063ac894dc473debefd61dbbebf622
).
Also, I wasn't too sure about what parameters to use for text2pcap... I
used the following:

text2pcap.exe -D -t "%H:%M:%S." -i 132 infile outfile

I'll continue to *try *to provide you with more meaningful information. Let
me know if there is some other information I can help you with.
Thanks again,
Dan.
On Fri, Feb 24, 2017 at 11:47 AM, Michael Tüxen<EMAIL_ADDRESS>wrote:

@dandufeu https://github.com/dandufeu OK. That doesn't help much. I
would be very useful to have a .pcapng file with the unencrypted SCTP
packets. usrsctp provides a way to log HEX dumps of the packets which can be
translated into a .pcapng file..
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sctplab/usrsctp/issues/137#issuecomment-282340788,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKVfwkE_H7xhCLM7OoJTTHcTJtNrWmhaks5rfwmGgaJpZM4MK1T7
.

Hi Dan,
not sure where the attachment is... Please note that you need to use
text2pcap -D -n -l 248 -t "%H:%M:%S." infile outfile

to generate the correct file.
Best regards
Michael

@tuexen: I have the files. 2 sessions. Uploading them somewhere now

@tuexen: Here is the attachment (output with the proper arguments).
dandufeu_usrsctp_stall_capture.zip

OK. Interesting...
In the traces provided by @shiretu always stream reset operations are involved at the end. Need to look in more detail there. However, the traces provided by @dandufeu don't show this. This seems to be a simple data transfer.
@dandufeu Which OS are you using? Are both endpoints running on the same machine? Are they running the same process? I'm asking this because both endpoints use the same verification tag, which is strange since that should be a random number...

I think we have two separate problems here. The one reported @dandufeu seems to be a receiver side problem. The advertised receiver side window jumps in strangs ways.
@dandufeu Can you add some debug output to the SCTP stack on the receiver side? I'll try to reproduce the issue locally, but I will need to see if that is possible.
@shiretu Your traces contain stream reset operations. The node using <IP_ADDRESS> resets its incoming and outgoing streams (which is a violation of the spec). But I'm wondering if you do this on purpose or if this is a consequence of problems you see. Retransmissions are already starting a bit earlier...

@tuexen To answer your previous question, these captures were from a test that was run on the same machine, but with different processes for sending/receiving. They were launched at the same time however, and this may have led to the same seeding of the randomizer (just a theory). I've also reproduced problems when using two PCs and can try to provide a trace for that if it can help.
I will try to add the debug output for the receiver side. Just to make sure I have the details correctly, is there any particular log statement I should see being output?

@tuexen: <IP_ADDRESS> is chrome. I do not know why Chrome does that. Trying to replicate again, this time with an even more simplifies web app version.

@tuexen: those streams resets are actually triggered by the business rules we have in the web app side, when we fail to receive data (kind of an app level heartbeat). However, the way the channel is closed is indeed a violation of the specs, and that issue is reported for 1+ year already:
https://bugs.chromium.org/p/chromium/issues/detail?id=559394
Has been ACK-ed, but is simply ignored for some obscure reason...
Back to our issue, I have sent a link to a new pcap file. This one was generated with a single stream, and the code which does app heartbeat removed from the web app side. You will still see that ABORT which is triggered by the server, but that is because the buffers are piling up on server side. So, is legit. The issue is why is chrome stopping receiving data, because we can see is capable of ACK-ing the SCTP heartbeats.
Best regards,
Andrei

@shiretu Thanks for the trace. This helps substantially in debugging. So this might be actually one bug. I need some time do look into the trace and try to reproduce the problem.

@dandufeu Are you using Windows? There was a bug report that the random number generator there is not initialised with enough entropy. But this does not affect us.
I'm nor sure how you log in your infrastructure, but it would be helpful if you put a printf-like function
at https://github.com/sctplab/usrsctp/blob/master/usrsctplib/netinet/sctp_indata.c#L107
which puts calc, asoc->size_on_reasm_queue, asoc->cnt_on_reasm_queue, asoc->size_on_all_streams, asoc->cnt_on_all_streams, asoc->my_rwnd_control_len in the file which contains the hexdump of the packet and send that ASCII file.
My guess is that some of this bookkeeping gets wrong and since you are using a small window it kills you for long term transmission.
A quick test didn't allow me to reproduce the problem, but I will dig into it with more details. It might take some time, since I'm not feeling best currently...
Best regards
Michael

@tuexen - Hope you feel better soon. Thank you again for all your efforts.
I am using Windows 7 (Visual Studio 2015 Update 3) within the WebRTC build framework. I've revised my startup process to give one of the peers an extra 3 seconds before initializing the library. I hope this helps to counteract any confusion with the random generator.
I added the code as follows on Line 107 as you've requested, added the other SCTP debug printing, and output a log file for both sender and receiver that contains the logging with the output of the packets together.
	calc = (uint32_t) sctp_sbspace(&stcb->asoc, &stcb->sctp_socket->so_rcv);
	SCTP_PRINTF("sctp_calc_rwnd: calc=%u, size_on_reasm_queue=%u, cnt_on_reasm_queue=%u, size_on_all_streams=%u, cnt_on_all_streams=%u, my_rwnd_control_len=%u", 		calc, asoc->size_on_reasm_queue, asoc->cnt_on_reasm_queue, asoc->size_on_all_streams, asoc->cnt_on_all_streams, asoc->my_rwnd_control_len);
Just so you are aware, in my logfiles, the first 2 fields of each line are a millisecond timestamp, followed by the thread id (that is initiating the log) in square brackets [ ].
dandufeu_usrsctp_stall_Feb27.zip

@tuexen: I have a feeling that the problem I am seeing is a chrome related bug. It always stops receiving data after already received 64MB (give or take few megabytes). When I am doing the send towards Chrome, I set only SCTP_SACK_IMMEDIATELY. I do not use SCTP_COMPLETE, SCTP_EOF or SCTP_EOR to signal any kind of end, because this is a stream oriented channel.
I use SCTP_SACK_IMMEDIATELY because I want to get an indication of data being transmitted and received successfully as soon as possible, so load balancing on N channels can be performed better, with finer granularity.

@dandufeu Your trace files proofs what I suspected:
      255123255:[9960]: SCTP: sctp_calc_rwnd: calc=131072, size_on_reasm_queue=1152, cnt_on_reasm_queue=1, size_on_all_streams=0, cnt_on_all_streams=501, my_rwnd_control_len=0

The cnt_on_all_streams should not be non zero when size_on_all_streams is zero and vice versa. So it is an accounting bug. I'll hunt it down as soon as I've recovered.

@shiretu I guess you have not enabled the Explicit Message EOR marking. If you would, you would just send one big message and if the receiver would behave as specified, would never deliver anything. Data channels are always message oriented. If you want to stream stuff, just send small (about an MTU) size messages. But I don't see this in the traces. So I guess you are not using the socket option specified in RFC6458.

@tuexen: After reading the RFC, I think I am doing the correct thing. I do not enable SCTP_EXPLICIT_EOR, so the packets will be properly chunked and marked by the library (hopefully). Suppose I have 1MB in a buffer I want to send. I tell the SCTP stack that I want to send the whole data, but on return it says that only sent 600kb for example (sock in non-blocking). In this case, the logical message sent to the other side, is 600kb, right?

@shiretu If you have not enabled SCTP_EXPLICIT_EOR, then send() calls are atomic (which means they are accepted completely or not at all) and the data you provide is a singe user message. You simply provide on the sending side with each send call a user-message. The SCTP stack will break them down in chunk if the user message is larger than the PMTU.
If you send a 1MB buffer, then the send call should return -1 or 1MB, but nothing else. If you are getting positive values smaller than 1MB, then it is a bug. Are you actually observing that?

@tuexen: will test this now and see for sure what is the behaviour. Just to make things clear, PMTU is Path MTU, right?

@shiretu Right. SCTP avoids IP level fragmentation and reassembly. SCTP provides its own fragmentation and reassembly.
Please note that most browsers don't handle large user messages correctly. I think message sizes up to 16KB are OK, if I remember it correctly.

@tuexen: I have checked the code and I take the result of usrsctp_sysctl_get_sctp_sendspace, divide that by the number of active streams, and use the result as my max chunk size. I have then followed the SCTP dump and looks fine.

@tuexen: I have done another test in which I try to saturate the bitrate of Chrome, and i get about 35Mbytes/sec speed. I transfer 1.5GB without problems. But when I drip the data with real audio/video streams in live situation, Chrome simply does not take data in anymore

@shiretu You could also send message of size 1400 bytes and get the number of messages to send by taking usrsctp_sysctl_get_sctp_sendspace divided by the number of active streams into account.
Your synthetic test seems to miss some features of the real traffic? Maybe the message size distribution? Not sure. Will try to reconstruct the problem with packetdrill. It might be possible that you are running in the same issue. Not sure.

@shiretu Firefox might use an older version of the usrsctp stack...

@tuexen: Please let me know if there are more prints/logs you want me to capture for this issue or if there are other tests I can help with.

@dandufeu No, no more testing required from your side. I know what the issue is (broken internal accounting). I need to fix it and then I'll ping you to test the improved version. I was ill last week,
need to catch up... And my day job kicks in. Sorry for the delay...

@taylor-b Some bugs have been fixed, but I'm still hunting bugs in this area doing stress testing. Once I can't reproduce any issues anymore, I'll close this bug.

In my situation it stalls for about 30 seconds after sending for about 5 seconds.
Here's the pcap file i caught.
sctp_dump.pcap.zip
As in the pcap file, it stalled after sending packet 3083.
The receiver is Chrome Version 81.0.4044.138 (Official Build) (64-bit).
The sender is my data channel implementation based on usrsctp.
There is one data channel in one peerconnection.
The sender sends one video frame every 40 ms.
It's been two years since last update of the issue. Do we have a way to solve the problem now?

I'm using the latest code of usrsctp.

Hmm, thanks for the tracefile. I guess you are capturing this on the Chrome side (data receiver)? What is the size of a videoframe? I can't see the 40ms in the tracefile. Is this behaviour reproducible for you?
What is strange is that everything looks fine until Frame 3076. Then the sender starts retransmitting each data chunk it sends (retransmissions in Frame 3077, 3080, 3083).
The SACK chunks report them as duplicate. So they are not lost. The retransmissions
occur 20ms after the transmissions. That is really strange. Did you tweak parameters like RTO.min on the sender side?

Thanks for the quick response.
The receiver (chrome) and sender is on the same machine.
I do not touch the RTO.min parameter.
Each video frame size is between 2 ~ 25KB. They are packetized into packets each under 1200 Bytes.
It happens every time for my situation. I'm debug on the usrsctp code now. I'll provide more information if needed.

OK. Then the timer based retransmissions are strange. Can you enable the debug output on usrsctp and provide it? If you do a debug build, you can enable it by
usrsctp_sysctl_set_sctp_debug_on(SCTP_DEBUG_ALL);

Maybe it gives a hint, what is going wrong.
Please note that you should be able to send each video frame as a single SCTP user message. SCTP can do the fragmentation and reassembly. But that is another story.

I heard that the size of each SCTP user message should be under 16KB. I'll test the difference of performance between 16KB and 1200 Bytes later.

There were implementations in browsers which ignored some signalling by the SCTP stack resulting in loosing the message boundaries for message above a certain size. I think this has been fixed now, but I'm not sure in which version.
 Let's focus on getting this to work...

Here is the debug log:
usrsctp.log

What is the semantic of the beginning of each line:
usrsctp [S][317639728] Timer type 5 goes off.

Is it some monotonic timer in ms?
How are you managing the timers?

I think the log is in the default format. I didn't change it.
I use the single thread mode. There is a thread calling usrsctp_handle_timers every 10ms.
"Is it some monotonic timer in ms?"
---- Yes.

I think the log is in the default format. I didn't change it.

If it would come from debug_printf_stack(), it wouldn't have usrsctp in front and the time would be seconds.milliseconds since the beginning.

I use the single thread mode. There is a thread calling usrsctp_handle_timers every 10ms.

And what is the argument you are providing?

"Is it some monotonic timer in ms?"
---- Yes.

Here is what I find strange:
usrsctp [S][317622928] Timer type 1 goes off.
usrsctp [S][317622928] Error count for 0x7ff6a94061a0 now 4 thresh:5
usrsctp [S][317622928] Overall error count for 0x7ff6a9802a58 now 1 thresh:10 state:1
usrsctp [S][317622928] Timer type 1 started: ticks=16000, inp=0x7ff6aa007600, stcb=0x7ff6a9802a00, net=0x7ff6a94061a0.
usrsctp [S][317622928] Timer type 1 handler finished.
usrsctp [S][317622938] Timer type 1 goes off.
usrsctp [S][317622938] Error count for 0x7ff6a94061a0 now 5 thresh:5
usrsctp [S][317622938] Overall error count for 0x7ff6a9802a58 now 2 thresh:10 state:1
usrsctp [S][317622938] Timer type 1 started: ticks=32000, inp=0x7ff6aa007600, stcb=0x7ff6a9802a00, net=0x7ff6a94061a0.
usrsctp [S][317622938] Timer type 1 handler finished.
usrsctp [S][317622948] Timer type 5 goes off.
usrsctp [S][317622948] Timer type 5 started: ticks=76959, inp=0x7ff6aa007600, stcb=0x7ff6a9802a00, net=0x7ff6a94061a0.
usrsctp [S][317622948] Timer type 5 handler finished.

This means the retransmission timer should fire after 16 seconds (16000 ticks), but it fires after 10 ms. That is why I think your timer system might have a issue.

ooh, it's my fault.  I should pass the interval (ms) to usrsctp_handle_timers. Now It works greatly.
And i did set the log format. Sorry...
Thanks @tuexen , my project runs finally. 🍻

OK. Great you found it. Maybe https://github.com/sctplab/usrsctp/pull/470 would have helped...


Investigate story args update mechanism, sometimes not updating immediately

Sometimes, when editing the JSON in the JSON Code Editor, the component props / story args are not updated immediately.
You have to actively change from a non-validating state to a validating state to get a component re-render with the updated props / args.

This is resolved in version 1.0.0


Modals refactor

During the Zelda release we ran into issues with modals and their interaction with validations and spin-buttons. One of the main problems is that hitting the confirm button will raise an action and then close the modal immediately, not taking into consideration async tasks or allowing the close to be halted.

[ ] Review of modal usage and desired behaviour
[ ] Switch to closure-actions and return promises from modal controller actions so that closing of modals can happen after async tasks and be dependent on success/failure

Note: once the refactor is complete it should be possible to revisit #5650

Did this get fixed by #6088?

Closing for now - if there's any work left to do maybe open a fresh issue?


Custom i18n locales names

🚀 Feature request
Command (mark with an x)

[ ] new
[x] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[x] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Description

Hi, I'm sorry in advance. Wasn't sure where should I open issue in Angular repo or here + not sure if it is a bug or feature request :)
Anyway here is the thing:
In our project, we use i18n in a bit different way. We have 13 variations of our app. They share the same core and logic, but the logo, design, and content is different. So we not translating with i18n, but using it to deliver different options of content (for example in one website the welcome message will be 'Welcome customer' and in another, it will be 'Welcome dear partner').
Now we are updating to angular 9 and we are very excited that we won't need to build 13 times, but only once. We started to make a POC, and turns out that in angular.json the key i18n.locales have a regex pattern of ^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,20})?$ according to<EMAIL_ADDRESS>Our translation for today is smth like en-corporate, en-private, en-pb. So while en-private would work two another wouldnt. I understand that it is not a scenario that you built it for. But is there a solution that we could use without renaming? Is it possible to disable regex validation somehow?
Describe the solution you'd like

To be able to use custom locale names or to disable pattern validation

Language tags are a standardized format with each subtag expressing specific meaning.  The Angular and the Angular CLI support a commonly used set of the subtags.  Each subtag can have an effect on the behavior of the application and invalid tags may cause runtime errors or invalid localization data to be used (leading to potential incorrect currency, number separators, etc.).  This is especially true with browser APIs that can leverage the tags.
To enabled the above use case, support could be added for private use subtags which are part of the standardized format.  This will allow for the creation of valid tags containing the custom information.  However, this will require a change to each tag to become conformant.  Private use subtags must be at the end of the tag.  They begin with x- and are followed by groups of one to eight characters (e.g., en-x-private).

@clydin Thanks, sounds good enough for me :)


Adding further table and page action assertions

Includes:
assertPageActionHasIcon(string $name, string $icon)
assertPageActionDoesNotHaveIcon(string $name, string $icon)
assertPageActionHasLabel(string $name, string $label)
assertPageActionDoesNotHaveLabel(string $name, string $label)
assertPageActionHasColor(string $name, string $color)
assertPageActionDoesNotHaveColor(string $name, string $color)
assertTableActionHasIcon(string $name, string $icon)
assertTableActionDoesNotHaveIcon(string $name, string $icon)
assertTableActionHasLabel(string $name, string $label)
assertTableActionDoesNotHaveLabel(string $name, string $label)
assertTableActionHasColor(string $name, string $color)
assertTableActionDoesNotHaveColor(string $name, string $color)

Hey, could you also do bulk actions? Thanks

No worries. Can you merge this PR and I'll create a separate one for bulk actions some time this week?

One thing, should we use === for comparisons instead of ==?

If the arguments to the assertions are typed (i.e. string $icon), would this make a difference? The return types from getIcon(),getLabel() and getColor() also all return strings (or null). Genuinely unsure!

We should probably use === for consistency either way.

Yeah, once it's changed I will merge

Just did it myself :)


Object symbols with defineProperty(ies) on node<6

On node<6, the following code fails with TypeError: Cannot convert object to primitive value
var s = Object(Symbol(''));
var o = {}
o[s] = 1;

I know this is not fixable, however I thought that with ES6-shim loaded, that the following would work.
Object.defineProperty({}, Object(Symbol('')), { value: 1 });

but it also fails. TypeError: Cannot convert object to primitive value
ToPropertyKey works fine, converting the symbol object to symbol primitive, so Object.defineProperty can shimmed with the use of ToPropertyKey to provide the expected result.
This is also true for hasOwnProperty, because as it stands, while not throwing an error, this behaviour is observed.
var s = Symbol('');
var o = {};o[s] = 1;
Object.prototype.hasOwnProperty(o, Object(s)); // false

and again can be fixed with ToPropertyKey.

Absolutely obj[key] = value and Object.defineProperty(obj, key, { value }) should behave the same, that doesn't surprise me.
Primarily this looks like an engine bug that simply can not be fixed.
es6-shim doesn't shim Object.defineProperty - that's ES5, and object-symbol support can't be shimmed. You're right that es6-shim could try to detect this case, but we'd end up creating an inconsistency between object brackets and Object.defineProperty.
I'd recommend running any maybe-symbols through es-to-primitive, if you want to work around this bug.

I know that it's edge case, but I thought it worth a mention. ;)


Make it easy to run grafana and Scylla in the same machine

I had to add --net="host" before each 'docker run' for prometheus container to interact with scylla and node-exporter. We possibly don't wanna to attach container to host interface by default, so how about adding an option like --local to start-all.sh?

@raphaelsc can you elaborate on why it was required?
I used Scylla, Grafana and Prometheus on the same machine with no problems.

On Wed, Feb 22, 2017 at 3:26 PM, Tzach Livyatan<EMAIL_ADDRESS>wrote:

@raphaelsc https://github.com/raphaelsc can you elaborate on why it was
required?
I used Scylla, Grafana and Prometheus on the same machine with no problems.

Scylla and node-exporter listen on <IP_ADDRESS>, and prometheus container
wasn't able to communicate with them using the bridge interface. Do you use
external ip address?

Reply to this email directly, view it on GitHub
https://github.com/scylladb/scylla-grafana-monitoring/issues/137#issuecomment-281757161,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWAc2NWachx7xxWQol_iBzsRsnU0yuqks5rfH3GgaJpZM4MIuCq
.

I run into the same issue a few times, I think it's related to using wifi
with docker, I've checked that the net flag does work.
I'll send a patch with a -l flag option to add the flag
On Wed, Feb 22, 2017 at 8:46 PM, Raphael Carvalho<EMAIL_ADDRESS>wrote:

On Wed, Feb 22, 2017 at 3:26 PM, Tzach Livyatan<EMAIL_ADDRESS>wrote:

@raphaelsc https://github.com/raphaelsc can you elaborate on why it
was
required?
I used Scylla, Grafana and Prometheus on the same machine with no
problems.

Scylla and node-exporter listen on <IP_ADDRESS>, and prometheus container
wasn't able to communicate with them using the bridge interface. Do you use
external ip address?

Reply to this email directly, view it on GitHub
<https://github.com/scylladb/scylla-grafana-monitoring/
issues/137#issuecomment-281757161>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABWAc2NWachx7xxWQol_
iBzsRsnU0yuqks5rfH3GgaJpZM4MIuCq>
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/scylladb/scylla-grafana-monitoring/issues/137#issuecomment-281763020,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACBRv-GtRApr66xmAS08x4RAxeiQ9hlkks5rfIKZgaJpZM4MIuCq
.

closed by commit https://github.com/scylladb/scylla-grafana-monitoring/commit/293a705da1502844ae872a1de1fff922d1b8eb14


While preparing the environemnt, if error:insufficient diskspace occurs the installer should not allow you to continue

While preparing the environment to boot from cloudbuilder.vhdx, there is a disk space check. However even if there is insufficient disk space on the machine used, an error will appear on the UI installer but will allow you to click next and continue, only to fail deployment several hours later (attachment with error). When this error occurs the installer should not allow the user to continue.

@efemmano, I'm unable to repro the issue. Just like in your screenshot the next button is greyed out in my environment once I hit the insufficient diskspace error. When I click on the button nothing happens (as expected). If you have an environment that allows you to continue (click next button) after the error is thrown, please share with me offline. Thanks, Marc

Closing. We can reopen if issue resurfaces.


gRPC support

Describe the bug
The YARP library doesn't proxy gRPC requests. if I'm wrong please tell me if there are any extra steps for configuring YARP for supporting gRPC.
To Reproduce
setting up a gRPC service and configuring YARP to proxy to that service will result in client receiving 502 status code.

gRPC is fully supported. There's likely a configuration issue so it can't communicate with the destination. Can you share the debug level logs and the proxy configuration?
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0#configure-logging

tank you for your response, I will further investigate the issue.


RTCDataChannel not properly closed

Problem
When RTCDataChannel: close() method on a JS client (Chrome for example) the data channel hangs in closing state and never transitions to closed.
This causes a memory leak and eventually more data channels cannot be created with the following error:
Uncaught (in promise) DOMException: Failed to execute 'createDataChannel' on 'RTCPeerConnection': RTCDataChannel creation failed

Reproduction
Checkout this branch: https://github.com/Marcel-G/str0m/tree/example/close-data-channel
Run cargo run --example http-post
Click Connect, and Run
Observe data channels not entering the closed state
Possible cause
I suspect the same issue as other libraries:

https://github.com/pion/sctp/pull/238
https://github.com/webrtc-rs/webrtc/issues/468

Chrome is waiting for a outgoingResetRequest before considering the channel closed.

@Marcel-G Thanks for reporting this!
With your repro, I have made a potential fix linked above.
The main problem I see with the fix is that it doesn't close straight away. At the points this is detected in the code, it's hard to schedule an immediate write, so the response close waits for the normal RTO, which is 3000ms. Hence I had to up your test cases to like 4000ms wait.
Maybe there's some way to make this faster.

This is sorted in b2c5392
Thanks!


Possibility of not triggering AfterSave or BeforeSave

Issue Description
Hi Parse community,
I'm facing some issues with child object update. We have a complex permission with groups and multi-tenants software. When I update a parent object, I have to update some informations on child objects.
However, users are not always allow to modify child objects so it's mandatory to update the child object with {useMasterKey:true} option.
For some updates, I need AfterSave and BeforeSave triggers to fire but for other updates, I don't need them. Causing useless overload.
Is it possible to have another Parse.Object.save option as {useMasterKey:true} like {fireBeforeSave:true} and {fireAfterSave:true} only usable with MasterKey option to true ?
Or another more flexible system like passing a JSON parameter to Parse.Object.Save method that will be passed to beforeSave and afterSave triggers ?
Cheers,
Guireg

There is no overhead in running the the before save call as the declared function is called directly, you can just have an if statement in it and return early in the case you don't want to process the trigger.


Generalize interception to every logging/diagnostic event

In the same that every ILogger event can also be sent to a DiagnosticListener, it should also be enabled for interception using a common pattern.

Discussed in triage and agreed that it doesn't make sense to have interceptors for every logging event.


The demo doc link in README is not working

https://circle-artifacts.com/gh/mapbox/docbox/50/artifacts/0/tmp/circle-artifacts.8SMOD8H/index.html#our-api

Thanks for flagging this issue! I've updated the link to a new demo output.


Allow formatter to optionally correct aliases

PR Summary
Invoke-Formatter has a hard-coded list of rules that is supports. Add support for PSAvoidUsingCmdletAliases as the community has expressed interest in being able to auto-replace them when formatting in VS-Code (optionally, not on by default).
https://twitter.com/PrzemyslawKlys/status/1144342766408937490
Although Invoke-ScriptAnalyzer has a -Fix switch, the switch is only on for the -Path parameter set, therefore being able to optionally run this rule in the formatter is going to make it easier in the future to add a setting to vs code to optionally correct aliases. This change does not change the defaults behavior of Invoke-Formatter, it enables the following scenario to work
> Invoke-Formatter -ScriptDefinition gci -Settings @{IncludeRules=@('PSAvoidUsingCmdletAliases'); Rules=@{'PSAvoidUsingCmdletAliases'=@{}}}
Get-ChildItem

Yes, the current debt of the code base is not ideal that invoke-formatter has the allowed rules hard-coded but given the narrow use case of it, refactoring it would be a separate item. I cannot even improve it to use resource strings because they are in the Rules project and the Rules project has a dependency on the Engine project (or would you want me to move the resource strings into the Engine project?)
cc @PrzemyslawKlys
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[x] Make sure all .cs, .ps1 and .psm1 files have the correct copyright header
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

@bergmeister my real concern is the inclusion of this sole rule as an option. Shouldn't we allow any/all the rules to be run?
FWIW - It seems more like the Formatter.Format API is a special instance of the Fix which is perhaps misguided. In the end, It's all corrective measures, some of which are specifically targeting the formatting of the script but we don't have a way to distinguish a formatting change from an actual correction, which is something that RuleInfo should probably have.

Yes, I agree but addressing this technical debt of PSSA's architectural design is non trivial and is a separate issue to me. With this proposed change I'm not adding to the debt.

Yes, I agree but addressing this technical debt of PSSA's architectural design is non trivial and is a separate issue to me. With this proposed change I'm not adding to the debt.

@bergmeister Would you be able to put in one or more issues to fix this particular case of PSScriptAnalyzer's architectural debt? I'd like to take a crack at fixing it myself (or at least jump-start a discussion), considering that I'm looking at extending the PSScriptAnalyzer<=>PowerShellEditorServices interface regarding completions and intellisense sometime over the next few months.

@travis-c-lagrone The debt is that the formatter has a list of hard coded rules that it can execute only. As said before, it should be improved so that whilst we might still want to have a hard-coded list of 'default' rules, it would be nice that if one specified any rule in the settings file/object that Invoke-formatter executes them. It would need some research as to why this is the case, I don't know more than that.
With respect to PSSA-PSES integration, the next item on the roadmap is to produce a NuGet package of PSSA so that PSES calls the .NET APIs directly for improved performance (and it also means that PSES can receive updates without requiring PSSA to do a full  release.
Some of the other technical debt is the VariableAnalysis classes that were forked from PowerShell's own classes 4 years ago. Those classes were not updated since and have small bugs that leads to certain types of analysis not being possible. Unfortunately, the original maintainers have taken only a subset of it and added a lot of custom code to it. I once tried to just delete it and replace it with the code from PowerShell and some of the challenges were that SMA compiles against .Net Core, but PSSA compiles against .Net Standard...

... I once tried to just delete it and replace it with the code from PowerShell and some of the challenges were that SMA are very entangled with each other in terms of dependencies and it compiles against .Net Core, but PSSA compiles against .Net Standard...

Two questions:

By "SMA", do you mean the System.Management.Automation .NET namespace?
Is there a particular reason PSSA still supports PowerShell 3? (I ask because it looks like a fair bit of the custom code is because of that) Should PSSA still support PS3 considering that 5.1 is the officially recommended version of WinPS now?

Yes, SMA is System.Management.Automation, which the core part of the PowerShell engine.
We plan to make a major version bump to PSSA 2.0 where support for PS v3/4 gets dropped. Current 'support' is just based on which PS versions are supported by MSFT. We will probably have to support v5.1 for a long time so we will never get around the thing that we do conditional compilation.

When does the PSSA team plan to make the bump to PSSA 2.0? And is there a list of changes somewhere that will/can/should be made concurrently to take advantage of that bump?


Keep track of blob attachment status in blob manager

This change delays pending blob deletion until the blob is attached to a DDS. It keeps those blobs under "PendingAttach" status. Only once they are attached (to a DDS) and round tripped, they get removed from the list.

@dannimad Why is this change needed? Is there a bug or is this part of a functionality?
We are planning to get rid of the attachment concept from handles and eventually from data stores. So, we should not be adding a dependency in blob manager for this. It will make it much harder to remove.

@dannimad Why is this change needed? Is there a bug or is this part of a functionality? We are planning to get rid of the attachment concept from handles and eventually from data stores. So, we should not be adding a dependency in blob manager for this. It will make it much harder to remove.

we don't really care about attachment here. we are using it as a way to determine if the blob is referenced, as until a blob is referenced it is not safe to close the container. it not safe as the intention behind adding the blob is lost. even if we save the blob itself there is no way to give it back to the application such that they can determine what to do with it. so in this case we will wait until attachgraph is called, so we know the handle has been put somewhere, and the intent behind adding the blob is captured. if we remove attachment, we need a different mechanism to do this, which i believe is already in your plan. we need this today as it is blocking adopting of preserving pending changes, as without it we get the blob, but not what is done with it.

What is the behavior is a blob is uploaded but its handle is not added to an "attached" DDS? The container is not closed? It's possible that a handle is never added right? Also, is the behavior the same for data stores and DDSes that are created but their handle is not added to an "attached" DDS?
You mentioned the blob has to be referenced. What if a handle is added but immediately removed? Is it safe to close the container?

What is the behavior is a blob is uploaded but its handle is not added to an "attached" DDS? The container is not closed? It's possible that a handle is never added right? Also, is the behavior the same for data stores and DDSes that are created but their handle is not added to an "attached" DDS? You mentioned the blob has to be referenced. What if a handle is added but immediately removed? Is it safe to close the container?

This is just the first part of multiple changes coming, and just puts the infra in place. This will not block general closing of a container, but will be integrated into closeAndGetPendingState. In the next part, we'll add an abort signal to uploadBlob, such that upload can be aborted. After that closeAndGetPendingState will be made to wait for all blobs to attach.
We don't care if it is immediately removed. We just need to give the application the opportunity to do something before we close when trying to capture state.
Overall, we don't capture pending work well. This is true for blobs, data stores, and shared tree transactions. If we add more general features like transaction or local branches we'll have the same problems. none of these are captured in the dirty signal, but there can pending work still that the user and application may care about. We aren't tackling this holistically as we don't need to at the moment, we just need to fix the blob flow so it's usable. The benefit is that it is all internal, so we are free to change the mechanism later.

Okay, thanks for the context. I am just thinking about how this fits into the overall picture of getting rid of attach flows and attach state tracking in data stores and DDSes. Basically, anything created immediately becomes attached without any state tracking (which is true to blobs today anyway). This change makes that harder by adding attach state tracking to blobs.
We can probably revisit this when actually doing the work of removing attachment flow. Like you said, it's all internal so can be changed.


Added hot configuration reloading for Spring

Hi,
This is a proposal for hot configuration reloading for Spring.
It is based on a thread created by EmbeddedJmxTransFactory, which scans every X seconds (configurable) the last modification date of every configuration json file.
If the last update date is greater than the last saved value, then:

the JmxTrans instance is stopped
the queries and output writers are cleaned
all configuration files are merged into jmxtrans
the JmxTrans instance is started again

A new attribute has been defined in jmxtrans-1.0.xsd, configuration-scan-period.
It corresponds to the new configurationScanPeriod attribute of EmbeddedJmxTransFactory. The new attribute is parsed and populated into EmbeddedJmxTransFactory by EmbeddedJmxTransBeanDefinitionParser.
If configuration-scan-period is 0 (default), then the hot configuration reloading is disabled (thread not created and started).
Regards,
Adrian

jmxtrans project » embedded-jmxtrans #96 SUCCESS
This pull request looks good
(what's this?)

jmxtrans project » embedded-jmxtrans #97 SUCCESS
This pull request looks good
(what's this?)

jmxtrans project » embedded-jmxtrans #98 SUCCESS
This pull request looks good
(what's this?)

Thanks @iliuta, I'll merge it this week.
Cyrille

Thank you Cyrille. Everything is all right with my pull request? Do you need further information?

Hello @iliuta, can you please explain me how to you integrate this daemon thread with the shutdown procedure?
I can't see how you stop this thread.
Cyrille

Hi Cyrille, just to understand your question, do we really need to integrate this thread in a shutdown procedure? Since it is a daemon thread, it will not prevent the JVM to exit and it will be terminated anyway with no harm at the end. Am I missing some point here?
Anyway, I could easily interrupt this thread in the destroy method of  EmbeddedJmxTransFactory to allow it to stop but it will make the code a little bit more complicated (not too much however). Do you want me to do this?

Hello @iliuta, yes we need to stop this thread during org.jmxtrans.embedded.EmbeddedJmxTrans#stop(). For example, it is important for webapp that can be stopped or redeployed.
Using java.util.concurrent.Executors#newScheduledThreadPool(int) will return a ScheduledThreadPool that is very simple to stop.
Cyrille

Hello Cyrille,
Got it, I didn't think about application hot deployment and restart, since I never do it.
I changed to a ScheduledExecutorService with a shutdown call in destroy method.
I tested it into a Tomcat container with a jvisualvm connected to it. All threads created by embedded-jmxtrans, including the new one are properly stopped when the containing war is stopped or undeployed.

jmxtrans project » embedded-jmxtrans #99 SUCCESS
This pull request looks good
(what's this?)

Hi @iliuta. I'm waiting for the Pull Request https://github.com/jmxtrans/jmxtrans.github.io/pull/2 to be integrated before moving forward.
We lost the XSD files on www.jmxtrans.org.

I slightly changed the contribution

renaming the xml config attribute configuration-scan-period into configuration-scan-period-in-seconds to prevent misunderstandings (checking the config last modified date every 30ms would have damaged applications)
introducing a new jmxtrans XSD jmxtrans-1.1.xsd to introduce this new attribute (jmxtrans-1.0.xsd should remain immutable)

I cut the release 1.0.14, I should soon be available in Maven Central Repo.
https://github.com/jmxtrans/embedded-jmxtrans/releases/tag/embedded-jmxtrans-1.0.14

Great! Now I can push my stuff into production.
Thank you, Cyrille.

Thanks Adrian,
Can you share with us the kind of OutputWriter you use? Graphite?
Cyrille

I'm using GraphiteWriter to export general metrics (jvm and Tomcat) with Jmxtrans embedded into a distinct war deployed in every Tomcat on the platform. Application maintainers can provide extra jmxtrans.json files to export their application specific metrics in addition to the provided configuration file.
I had some problems with GraphiteWriter and wildcard expressions. If the subset of metrics covered by the wildcard is too large, some of them will not be sent to Graphite. It is however quite hard to reproduce that and I did not investigate further. The workaround was to provide some finer queries.
Of course, a StatsdWriter would have been nicer but GraphiteWriter is okay for now. Maybe one day I will write one from the model of main Jmxtrans project ...


whisper-diff improvement: new until param

Modified whisper.py and whisper-diff.py to accept a new parameter (--until) to improve the comparision of whisper files.
See https://github.com/graphite-project/whisper/issues/182

Coverage decreased (-0.08%) to 88.291% when pulling a1f0df443a4c99430306f9eb73f20a9dca8bdbf5 on diuis:whisper-diff-until-enhancement into<PHONE_NUMBER>eb3c4042df45a4ad484e4cc208051c on graphite-project:master.

Coverage decreased (-0.08%) to 88.291% when pulling a1f0df443a4c99430306f9eb73f20a9dca8bdbf5 on diuis:whisper-diff-until-enhancement into<PHONE_NUMBER>eb3c4042df45a4ad484e4cc208051c on graphite-project:master.

Unless the .gitignore changes are necessary let's remove them from this PR, please.

Coverage decreased (-0.08%) to 88.291% when pulling 5d7cccca0381d49bbfed0359b4fb72081150f65b on diuis:whisper-diff-until-enhancement into<PHONE_NUMBER>eb3c4042df45a4ad484e4cc208051c on graphite-project:master.

Coverage decreased (-0.08%) to 88.291% when pulling b37e9591e83324d0df01e0db29d8094b4700a511 on diuis:whisper-diff-until-enhancement into<PHONE_NUMBER>eb3c4042df45a4ad484e4cc208051c on graphite-project:master.

Now looks completely fine. If no objections - will merge this tomorrow.
Thanks for contribution, @diuis !

Hi @deniszh and @obfuscurity .
Is it possible to merge the pull request?
Thank you very much!

Yes, sorry, was distracted. Thanks a lot, @diuis !


[measurement-tools] expose a callback that allows the application to determine whether to show or hide the measurement tools.

Recreated based on https://github.com/iTwin/viewer-components-react/pull/1069
The measuring tools have supported measurement on sheet views since PR https://github.com/iTwin/viewer-components-react/pull/837. As a result, the changes made in PR https://github.com/iTwin/viewer-components-react/pull/336, which disabled the measurement tools when a sheet view is active, need to be revised accordingly.
This PR introduces a callback that allows the application to determine whether to show or hide the measurement tools. Additionally, the tools now listen to the SyncUiEventId.ActiveViewportChanged event to update their visibility when the user changes the active view in a multi-view frontstage.

@aruniverse @hl662 This is a copy, this time the azure pipeline does not seem to start at all, any idea what's going on ? Or as I'm not a maintainer of this I dont see the "approve" button to start the pipeline?

@aruniverse @hl662 This is a copy, this time the azure pipeline does not seem to start at all, any idea what's going on ? Or as I'm not a maintainer of this I dont see the "approve" button to start the pipeline?

I think the pipeline only starts once the PR is accepted