CLOUDSTACK-8910: The reserved_capacity field increases suddenly after…

… a vmware host failure
In case of vmware host failure, all the VMs including stopped VMs migrate to the new host. For the Stopped Vms powerhost gets updated. This was triggering HandlePowerStateReport which finally calls updatePowerState updating update_time for the VM. This cause the capacity being reserved for stopped VMs capacity skip counting hours.
Added the change to avoid update if the VM is in stopped state and host Id is null.
Verified the fix manually.
Here are the repro steps:

take a HA enabled cluster with two hosts.
should have few started and stopped VMs to each of the host.
Now shutdown one host.
All VMs(including stopped) on the host will migrate to another host.
Now update time of even stopped VMs get updated and will reserve the capacity for skip counting hours on the host identified by last_host_id.

@SudharmaJain could you turn that added piece of code into a method and create some testCases? Manually testing works, but making some unit tests helps a little bit more.

Rebased the branch.

LGTM, @SudharmaJain can you rebase against master again -- we want to have Travis pass
tag:easypr

@rhtyd Rebased again master.

ACS CI BVT Run
Sumarry:
Build Number 102
Hypervisor xenserver
NetworkType Advanced
Passed=71
Failed=2
Skipped=3
Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0
Failed tests:

test_vpc_vpn.py

ContextSuite context=TestRVPCSite2SiteVpn>:setup Failing since 7 runs

test_volumes.py

test_06_download_detached_volume Failed

Skipped tests:
test_vm_nic_adapter_vmxnet3
test_static_role_account_acls
test_deploy_vgpu_enabled_vm
Passed test suits:
test_deploy_vm_with_userdata.py
test_affinity_groups_projects.py
test_portable_publicip.py
test_over_provisioning.py
test_global_settings.py
test_scale_vm.py
test_service_offerings.py
test_routers_iptables_default_policy.py
test_routers.py
test_reset_vm_on_reboot.py
test_snapshots.py
test_deploy_vms_with_varied_deploymentplanners.py
test_login.py
test_list_ids_parameter.py
test_public_ip_range.py
test_multipleips_per_nic.py
test_regions.py
test_affinity_groups.py
test_network_acl.py
test_pvlan.py
test_nic.py
test_deploy_vm_root_resize.py
test_resource_detail.py
test_secondary_storage.py
test_vm_life_cycle.py
test_disk_offerings.py

Rebased against master.

LGTM for code changes.

ACS CI BVT Run
Sumarry:
Build Number 410
Hypervisor xenserver
NetworkType Advanced
Passed=104
Failed=1
Skipped=7
Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0
Failed tests:

test_routers_network_ops.py

test_03_RVR_Network_check_router_state Failing since 2 runs

Skipped tests:
test_01_test_vm_volume_snapshot
test_vm_nic_adapter_vmxnet3
test_static_role_account_acls
test_11_ss_nfs_version_on_ssvm
test_nested_virtualization_vmware
test_3d_gpu_support
test_deploy_vgpu_enabled_vm
Passed test suits:
test_deploy_vm_with_userdata.py
test_affinity_groups_projects.py
test_portable_publicip.py
test_over_provisioning.py
test_global_settings.py
test_scale_vm.py
test_service_offerings.py
test_routers_iptables_default_policy.py
test_loadbalance.py
test_routers.py
test_reset_vm_on_reboot.py
test_deploy_vms_with_varied_deploymentplanners.py
test_network.py
test_router_dns.py
test_non_contigiousvlan.py
test_login.py
test_deploy_vm_iso.py
test_list_ids_parameter.py
test_public_ip_range.py
test_multipleips_per_nic.py
test_regions.py
test_affinity_groups.py
test_network_acl.py
test_pvlan.py
test_volumes.py
test_nic.py
test_deploy_vm_root_resize.py
test_resource_detail.py
test_secondary_storage.py
test_vm_life_cycle.py
test_disk_offerings.py

@alexandrelimassantana As suggested I have moved the code snippet to a method and also added unit tests.

ACS CI BVT Run
Sumarry:
Build Number 421
Hypervisor xenserver
NetworkType Advanced
Passed=103
Failed=2
Skipped=7
Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0
Failed tests:

test_routers_network_ops.py

test_01_RVR_Network_FW_PF_SSH_default_routes_egress_true Failing since 2 runs

test_02_RVR_Network_FW_PF_SSH_default_routes_egress_false Failing since 3 runs

Skipped tests:
test_01_test_vm_volume_snapshot
test_vm_nic_adapter_vmxnet3
test_static_role_account_acls
test_11_ss_nfs_version_on_ssvm
test_nested_virtualization_vmware
test_3d_gpu_support
test_deploy_vgpu_enabled_vm
Passed test suits:
test_deploy_vm_with_userdata.py
test_affinity_groups_projects.py
test_portable_publicip.py
test_over_provisioning.py
test_global_settings.py
test_scale_vm.py
test_service_offerings.py
test_routers_iptables_default_policy.py
test_loadbalance.py
test_routers.py
test_reset_vm_on_reboot.py
test_deploy_vms_with_varied_deploymentplanners.py
test_network.py
test_router_dns.py
test_non_contigiousvlan.py
test_login.py
test_deploy_vm_iso.py
test_list_ids_parameter.py
test_public_ip_range.py
test_multipleips_per_nic.py
test_regions.py
test_affinity_groups.py
test_network_acl.py
test_pvlan.py
test_volumes.py
test_nic.py
test_deploy_vm_root_resize.py
test_resource_detail.py
test_secondary_storage.py
test_vm_life_cycle.py
test_disk_offerings.py

tag:mergeready


Add support for forum channels

Pull Request Etiquette

[x] I have checked the PRs for upcoming features/bug fixes.
[x] I have read the contributing guidelines.

Changes

[x] Internal code
[x] Library interface (affecting end-user code)
[ ] Documentation
[ ] Other: _____

Closes Issue: NaN
Description
This attempts to implement the current feature space for forums.
TODO

[ ] Permission checks
[ ] Documentation
[x] Manager implementation
[ ] Forum Tags

[x] Apply tags to posts
[ ] Tag sorting (by array index)
[ ] Tag emoji
[ ] Modifying tags
[ ] Events for tag changes
[x] Tag cache flag

[ ] Default reactions
[x] Default slowmode per thread
[ ] Channel flags (pinned & requires tag)

[x] Getting flags
[x] Events
[ ] Setting flags
[ ] Check flags

[ ] Audit Logs
[ ] Decide on how to handle slowmode

Is this ready for review? It's currently in draft is why I ask


return methods error console: Return statements are only valid inside functions.

I am using the following return methods in my page and it does not work when clicking the link and the console show this error  Return statements are only valid inside functions,
anyone knows what am i doing wrong?
<a href="#"  @click="searchIn()" class="search" >search

solved i put the method in my router.js and working now


Immediately truncate full restriction on drain of periodic impulse

Right now, drain on a periodic impulse spins indefinitely because it is treated like a bounded restriction and bounded restrictions continue until complete on drain. This updates to truncate the restriction immediately.
I tested this on Dataflow and it correctly drained the job as soon as we self-checkpoint
Fixes #22776

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @Abacn

Thanks! Is it safe to truncate immediately in Side input patterns that is one of the primary use case of periodic impulse?

Run Python PreCommit

Run Python PreCommit

Run Python PreCommit

Run Python PreCommit

Run Python PreCommit

Portability test failures does not involve the changed codes should be irrelevant flakes

Run Python PreCommit

Run Portable_Python PreCommit


[AIRFLOW-XXX] Added company to README

JIRA

[ ] There is no JIRA Ticket since it is only an update to the "Who is using airflow" section in the README.

Description

[ ] I added the company I work for to the "Who is using airflow" section. Since we are you using airflow for quite a while now :)

Tests

[ ] There are no tests needed for this kind of change.

Commits

[ ] See PR title for more information.

Documentation

[ ] No docs needed.

Code Quality

[ ] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

Can you rebase onto master?

Codecov Report

Merging #3556 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3556      +/-   ##
==========================================
- Coverage   76.86%   76.84%   -0.02%
==========================================
  Files         204      204
  Lines       15514    15514
==========================================
- Hits        11925    11922       -3
- Misses       3589     3592       +3

Impacted Files
Coverage Δ

airflow/jobs.py
82.74% <0%> (-0.27%)
:arrow_down:

Continue to review full report at Codecov.

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


matrix3_mult?  Isn't this just a product (of anything)?

Isn't this just using the built-in * operator to multiply a list of items?
I think it should be called prod() (matlab name for same thing, like sum()), or maybe product() if you think prod() is too short and the optional parameter m deleted, since
product(list)*m is perfectly fine.  And in fact I'm not sure if the existing code does that or m*product(list), so the more explicit notation is better.  (I suppose what I really mean is don't expose the accumulator that you need for tail recursion as part of the interface.)
You can do the product "backwards" and it will be fine for everything else, since matrices are the only non-commutative object that can be multiplied.

The accumulator is deliberately exposed in this case, for continuing calculations from previous matrix calculations.  You could just put that matrix first in the list, I suppose.  Currently putting it as m avoids a matrix mult op against ident(), but that could be eliminated with better code.
Mostly this function exists so that I don't have to remember if I need to pre or post multiply to apply a transform matrix.

But you can continue calculations by just multiplying by the previous thing.  You don't need to introduce ident.  In other words,
matrix3_mult(matrix_list, m=A) is the same as matrix3_mult(matrix_list)*A and to me it's hard to see why the former would be preferred.  Of course, there might also be situations (recently discussed on the forum) where you prefer to apply the transformations in the other order with transposed matrices.
I guess I'm thinking if this is an internal helper function, then hide it.  And if it's meant for users, it should be recast as a generic "product of elements in a list" function rather than something special for matrices.  We have sum() after all, so product() doesn't seem unreasonable.

I don't want to have to remember if I need to pre or post multiply, because between times I have to code it, I keep forgetting which it is.  This has happened repeatedly.  However, m isn't needed to be exposed, since it's the same as matrix3_mult(concat([m],matrices)) or matrix3_mult([m,a,b,c]).  At least it is since a5065c1595ec07837d049336c6ad40934d817bac

Really, matrix3_mult() and matrix4_mult() aren't meant to be generic matrix multipliers, since you can do that with * if you know what you are doing.  They are meant to add 2D (matrix3) and 3D (matrix4) transformation operations together in a straightforward order. Maybe if I renamed all the matrix3_ prefixes to affine2d_ and matrix4_ to affine3d_ and rename matrices.scad to affine.scad this will stop confusing.

Perhaps affine[23]d_add() instead of mult.

Looks like matrix_transpose() is the only generic matrix function in matrices.scad

I do like the idea of product() like sum()

Hmm.  Rename and move transpose() to arrays.scad.

I was going to suggest renaming matrix_transpose() to transpose().
I was also wondering if there's a generic need for determinants or not.  I've needed det2() a bunch.  But not yet ever det3().

There probably is, but I cannot actually recall what a determinant is, or is used for.  All my matrix usage has been with affine transformations.  A determinant function can be put in math.scad, though.

I'm about to check in transpose in arrays.scad.  It's generalized for non-matrices.

transpose() Committed in 78e3cd3c270841c4e13cc0826fef605baebac3fb

What do you mean by non-matrices?  It can handle lists where each entry has a different length?
Determinant is a pain to calculate and it's not clear that there's any reason to supply a general version.   The det2() function is like a cross product of 2d vectors and seems to arise all the time.   When I wrote circular_arc_3pts some people were proposing a solution involving larger matrix determinants, but I ended up avoiding that and using something much simpler, involving the intersection of perpendicular bisectors.  (And my code for line intersection relies on det2.)

Hmm.  Actually testing by intersecting is tricky because it can intersect both if the stroke curves around.

matrices.scad renamed to affine.scad.  matrix3_* renamed to affine2d_*.  matrix4_* renamed to affine3d_*.  affine[23]d_mult() renamed to affine[23]d_chain()
Final commit for this: 9a3e2b71f24b86c8739ae00426e679d94f3805b7


chore(breadcrumb-item): fix anchor font style

LGTM. Why did layout's snapshot change?

it always changes. not sure


optimize server startup parameters

Ⅰ. Describe what this PR did
1.optimize server startup parameters,makes parameter passing more flexible.
2.support bind specific host,default will bind <IP_ADDRESS>.
sh seata-server.sh --help

Ⅱ. Does this pull request fix one issue?

fixes #1100
Ⅲ. Why don't you add test cases (unit test/integration test)?
unit test provided,and the integration test passed.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1137 into develop will increase coverage by 0.03%.
The diff coverage is 36.58%.

@@             Coverage Diff              @@
##             develop   #1137      +/-   ##
============================================
+ Coverage      41.86%   41.9%   +0.03%
- Complexity      1366    1371       +5
============================================
  Files            244     245       +1
  Lines          10165   10185      +20
  Branches        1333    1330       -3
============================================
+ Hits            4256    4268      +12
- Misses          5355    5362       +7
- Partials         554     555       +1

Impacted Files
Coverage Δ
Complexity Δ

...eata/core/rpc/netty/AbstractRpcRemotingServer.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

server/src/main/java/io/seata/server/Server.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...on/src/main/java/io/seata/common/util/NetUtil.java
56.52% <50%> (ø)
14 <2> (ø)
:arrow_down:

...src/main/java/io/seata/server/ParameterParser.java
52% <52%> (ø)
5 <5> (?)

...server/store/file/FileTransactionStoreManager.java
45.64% <0%> (-0.35%)
19% <0%> (ø)

Continue to review full report at Codecov.

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


Removed deprecated rosetta methods

Hi guys, we basically removed deprecated methods on Rosetta since we've seen we can remove them safely.
There's another thing, that is to update all components docs files that uses the old implementation, but I think it would be a better approach to update them when needed.
@carlosvillu @danderu @FranDelaCasa please check it ;)

:+1:

:+1:

Hi, Ruben... I know that is a tedious taks but I think it'd be better change all of them now... when the knowledge is fresh because leave several components broken is not a good practice.
If we leave the components broken... in a few days or weeks or whenever, other developer will pull the code and maybe won't know how to fix it or if it's his fault... I think It'll slow us down.


Resolve ignored qualifiers

Resolve for ignored qualifiers that appear when built with -Wignored-qualifiers option

Nice PR because I am bored of the warnings.
But you should modify the cpp files also, like here for the build to success.

Upsi, sorry from my side. I was seeing the warnings when building with gcc 7 and thought I quickly apply changes using the web interface without building the package locally... I guess that's considered bad practice :wink:
Implementations are adapted and I fixed another -Wmaybe-uninitialized warning without making another PR.


Resolves #257

Need to update stack.yml sample

Thanks! This was refactored recently to simplify the Docker Compose files, so it should be much more straightforward now. Given that, I'll pass on this one, but thanks for the effort! :cake:


Update dutch translations

Should be in sync with English language files now.

@sanderdw Thanks once again, Will merge in now for the next patch release.


'PeftModelForCausalLM' object has no attribute 'base_model' for a deepspeed stage 3 model

System Info
peft==0.7.1
transformers==4.36.2
deepspeed==0.12.4

Who can help?
No response
Information

[ ] The official example scripts
[X] My own modified scripts

Tasks

[ ] An officially supported task in the examples folder
[X] My own task or dataset (give details below)

Reproduction
Hello! I'm facing the issue with deepspeed==0.12.4, stage3, transformers==4.36.2 and peft==0.7.1:
AttributeError: 'PeftModelForCausalLM' object has no attribute
'_ds_child_entered'
....
....
  File ".../site-packages/peft/peft_model.py", line 528, in __getattr__
    return super().__getattr__(name)  # defer to nn.Module's logic
  File ".../torch/nn/modules/module.py", line 1695, in __getattr__
    raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
AttributeError: 'PeftModelForCausalLM' object has no attribute 'base_model'

and eventually
RecursionError: maximum recursion depth exceeded while calling a Python object

I'm using pytorch lightning:
trainer = Trainer(
    ...
    strategy = DeepSpeedStrategy(stage=3)
)

class Module(LightningModule):
    def configure_model(self) -> None:
        deepspeed_config = self.trainer.strategy.config
        self.dschf = HfDeepSpeedConfig(deepspeed_config)
        model = AutoModelForCausalLM.from_pretrained(...)
        model = get_peft_model(
            model,
            LoraConfig(
                task_type=TaskType.CAUSAL_LM,
                inference_mode=False,
                target_modules=target_modules,
                r=48,
                lora_alpha=16,
                lora_dropout=0.0,
            ),
        )

When deepspeed 3 is activated, transformers use some custom hooks to init the model differently. Apparently, that doesn't go well with peft assumptions.
Expected behaviour
get_peft_model succeeds without an error

Yeah, DS 3 might not work well with the added adapter layers. Still, could you show more code and the full error message, maybe it helps digging deeper.

Hi @olegsinavski ,
I found this problem is due to the implementation of PeftModel:
https://github.com/huggingface/peft/blob/7ffa43b16e4625322c9f157db12c9358f2f54cdf/src/peft/peft_model.py#L664-L669
Here is the explaination:
In deepspeed, it uses a decorator to wrap the __init__ function of models, and in the decorator it will call hasattr function, which will cause the recursion.
# a simple code to show what happened
class PeftModel:
    def __init__(self, model):
        self.base_model = model

    def __getattr__(self, name):
        try:
            return super().__getattr__(name)
        except AttributeError:
            # recursion error
            return getattr(self.base_model, name)

import functools
def d(f):
    # this decorator is used in deepspeed
    @functools.wraps(f)
    def wrapper(module, *args, **kwargs):
        if not hasattr(module, 'abc'):
            print('abc')
        f(module, *args, **kwargs)
    return wrapper

class PeftModelForCausalLM(PeftModel):
    @d
    def __init__(self, model):
        super().__init__(model)

a = PeftModelForCausalLM(1)

I think we could try to modify the implementation of __getattr__, but I found the easiest way is to modify the code of deepspeed:
https://github.com/ret-1/DeepSpeed/commit/87fab6683027041345afaf017676e216f7fb7729
this works out for me.


Improve generated css class names

Improved generated css class names

@OlhaPeculiar Could you please check here https://tools.fortifyapp.com/, thanks.

Сheck  https://tools.fortifyapp.com/ - all good


Rethink grouping of alerts on dashboard

It seems the alert name is sometimes dropped form the group subject when alerts get grouped on the Bosun dashboard. I expected that the alert group subject heading should contain the alert name in addition to the tagset. However it looks like the alert name gets dropped, only the tagset is used.
According to @kylebrandt :

"Need to think about it some more. The logic currently tries to make the biggest grouping it can with various constraints if I remember correctly. So sometimes it will group multiple different alerts if they share a group. Sometimes this is useful, for example multiple alerts about the same host=foo, other times it is not. For instance I have a group on my dashboard right now that just says critical - instance=1. So I'm considering that grouping by tagset only is outdated now that we support dependencies

@izakmarais: Can you create an issue for this?

Maybe we just shouldn't group at all on the dashboard anymore

I think that grouping alert instances of the same alert should be kept.
We are still evaluating Bosun and do not yet have many rules running, so I cannot give accurate recommendations on advanced grouping strategies. I just didn't expect my alert names to be dropped.

We ended up doing this. There is a threshold for grouping now so it is more of a (tons of alerts) thing.

We ended up doing this
Just to clarify the slightly cryptic "this" above, does the change include:

new grouping threhold. Implies no grouping when total alerts on dashboard less then threshold?
any change in the way groups names are displayed? The behaviour of when the alert name gets dropped from group the name?

I don't think we changed the names, but we did add a new threshold where we don't group unless it less than the threshold.
I don't think we did anything with naming IIRC. However, this is really meant as a backup safety mechanism. So if you are getting large groups frequently, it probably means your alerts should be scoped differently. So since they are rare, I don't think the getting the group naming just right really matters.


Pipeline job - fix build number increase by 2 + report correct job duration instead of 0

43129
43130

:white_check_mark: Build hp-application-automation-tools-plugin octane_latest.8-maodkogt completed (commit https://github.com/hpsa/hp-application-automation-tools-plugin/commit/cbce015177 by @)

approved to merge


Exception raised trying to collect facts for file

Describe the bug
When attempting to execute the files.file or files.directory operations defined here an exception is raised while attempting to execute the file fact.
This error is new as of v1.4.5 and v1.4.6. Previous versions work without error.
To Reproduce
Clone the repository at github.com/mitodl/ol-infrastructure and create a deploy file that contains:
from bilder.components.hashicorp.steps import install_hashicorp_products
from bilder.components.hashicorp.vault.models import Vault

install_hashicorp_products(Vault())

Expected behavior
The expected behavior is to download and unpack the Vault binary and then set the permissions and create a configuration directory. Instead it generates a traceback.
Meta

Include output of pyinfra --support.

--> Support information:

    If you are having issues with pyinfra or wish to make feature requests, please
    check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
    When adding an issue, be sure to include the following:

    System: Linux
      Platform: Linux-5.12.13-1-MANJARO-x86_64-with-glibc2.32
      Release: 5.12.13-1-MANJARO
      Machine: x86_64
    pyinfra: v1.4.6
    Executable: /home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/bin/pyinfra
    Python: 3.8.6 (CPython, GCC 10.2.0)

How was pyinfra installed (source/pip)? pip
Include pyinfra-debug.log (if one was created)

  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra_cli/main.py", line 218, in cli
    _main(*args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra_cli/main.py", line 604, in _main
    run_ops(state, serial=serial, no_wait=no_wait)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/operations.py", line 375, in run_ops
    _run_single_op(state, op_hash)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/operations.py", line 339, in _run_single_op
    if not greenlet.get():
  File "src/gevent/greenlet.py", line 803, in gevent._gevent_cgreenlet.Greenlet.get
  File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/_compat.py", line 65, in reraise
    raise value.with_traceback(tb)
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/operations.py", line 134, in _run_server_op
    status = _run_shell_command(state, host, command, global_kwargs, executor_kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/operations.py", line 48, in _run_shell_command
    status, combined_output_lines = command.execute(state, host, executor_kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 104, in execute
    return host.run_shell_command(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 200, in run_shell_command
    return self.executor.run_shell_command(self.state, self, *args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/connectors/ssh.py", line 277, in run_shell_command
    actual_command = command.get_raw_value()
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 91, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 81, in _get_all_bits
    bit = bit_accessor(bit)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 92, in <lambda>
    lambda bit: bit.get_raw_value(),
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 91, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 84, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object

Consider including output with -vv and --debug.

    Loaded fact sha256_file (path=/tmp/vault.zip)
    [<IP_ADDRESS>] noop: file /tmp/vault.zip has already been downloaded
    [pyinfra.api.operation] Adding operation, {'Install Hashicorp Products | Unzip vault'}, opOrder=(124, 65), opHash=7b609db36deb56f0c3e4ce53d1a2453fdaa7b6de
    [pyinfra.api.operation] Adding operation, {'Install Hashicorp Products | Ensure vault binary is executable'}, opOrder=(124, 71), opHash=3293f92ef79521f2b72f9af8c9dffa6116146892
    [pyinfra.api.facts] Getting fact: file (path=/usr/local/bin/vault) (ensure_hosts: (Host(<IP_ADDRESS>),))
Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 200, in run_shell_command
    return self.executor.run_shell_command(self.state, self, *args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/connectors/ssh.py", line 277, in run_shell_command
    actual_command = command.get_raw_value()
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 92, in _get_all_bits
    bit = bit_accessor(bit)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 103, in <lambda>
    lambda bit: bit.get_raw_value(),
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object
2021-06-28T21:04:59Z Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 200, in run_shell_command
    return self.executor.run_shell_command(self.state, self, *args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/connectors/ssh.py", line 277, in run_shell_command
    actual_command = command.get_raw_value()
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 92, in _get_all_bits
    bit = bit_accessor(bit)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 103, in <lambda>
    lambda bit: bit.get_raw_value(),
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/hub.py", line 624, in print_exception
    context = self.format_context(context)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/pprint.py", line 67, in saferepr
    return _safe_repr(object, {}, None, 0, True)[0]
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/pprint.py", line 569, in _safe_repr
    rep = repr(object)
  File "src/gevent/greenlet.py", line 533, in gevent._gevent_cgreenlet.Greenlet.__repr__
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 558, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 80, in __repr__
    return 'StringCommand({0})'.format(self.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 109, in get_masked_value
    for bit in self._get_all_bits(lambda bit: bit.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object
Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 200, in run_shell_command
    return self.executor.run_shell_command(self.state, self, *args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/connectors/ssh.py", line 277, in run_shell_command
    actual_command = command.get_raw_value()
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 92, in _get_all_bits
    bit = bit_accessor(bit)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 103, in <lambda>
    lambda bit: bit.get_raw_value(),
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/hub.py", line 624, in print_exception
    context = self.format_context(context)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/pprint.py", line 67, in saferepr
    return _safe_repr(object, {}, None, 0, True)[0]
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/pprint.py", line 569, in _safe_repr
    rep = repr(object)
  File "src/gevent/greenlet.py", line 533, in gevent._gevent_cgreenlet.Greenlet.__repr__
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 558, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 80, in __repr__
    return 'StringCommand({0})'.format(self.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 109, in get_masked_value
    for bit in self._get_all_bits(lambda bit: bit.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 908, in gevent._gevent_cgreenlet.Greenlet.run
  File "src/gevent/greenlet.py", line 896, in gevent._gevent_cgreenlet.Greenlet._Greenlet__report_error
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/hub.py", line 541, in handle_error
    self.print_exception(context, type, value, tb)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/hub.py", line 627, in print_exception
    context = repr(context)
  File "src/gevent/greenlet.py", line 533, in gevent._gevent_cgreenlet.Greenlet.__repr__
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 539, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "src/gevent/greenlet.py", line 558, in gevent._gevent_cgreenlet.Greenlet._formatinfo
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 80, in __repr__
    return 'StringCommand({0})'.format(self.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 109, in get_masked_value
    for bit in self._get_all_bits(lambda bit: bit.get_masked_value())
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object
2021-06-28T21:04:59Z <callback at 0x7fcfd9ddd5c0 stopped> failed with TypeError

--> An unexpected exception occurred in: src/bilder/images/edxapp/deploy.py:

  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra_cli/util.py", line 79, in exec_file
    exec(PYTHON_CODES[filename], data)
  File "src/bilder/images/edxapp/deploy.py", line 124, in <module>
    install_hashicorp_products(hashicorp_products)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/deploy.py", line 142, in decorated_func
    func(*args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/src/bilder/components/hashicorp/steps.py", line 71, in install_hashicorp_products
    files.file(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/operation.py", line 365, in decorated_func
    commands = unroll_generators(func(*actual_args, **actual_kwargs))
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/util.py", line 192, in unroll_generators
    for item in generator:
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/operations/files.py", line 1075, in file
    info = host.get_fact(File, path=path)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 138, in get_fact
    return get_host_fact(self.state, self, name_or_cls, args=args, kwargs=kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/facts.py", line 336, in get_host_fact
    fact_data = get_facts(state, name, args=args, kwargs=kwargs, ensure_hosts=(host,))
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/facts.py", line 276, in get_facts
    status, combined_output_lines = greenlet.get()
  File "src/gevent/greenlet.py", line 803, in gevent._gevent_cgreenlet.Greenlet.get
  File "src/gevent/greenlet.py", line 371, in gevent._gevent_cgreenlet.Greenlet._raise_exception
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/gevent/_compat.py", line 65, in reraise
    raise value.with_traceback(tb)
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/host.py", line 200, in run_shell_command
    return self.executor.run_shell_command(self.state, self, *args, **kwargs)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/connectors/ssh.py", line 277, in run_shell_command
    actual_command = command.get_raw_value()
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 92, in _get_all_bits
    bit = bit_accessor(bit)
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 103, in <lambda>
    lambda bit: bit.get_raw_value(),
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 102, in get_raw_value
    return self.separator.join(self._get_all_bits(
  File "/home/tmacey/code/mit/ops/infra/ol-infrastructure/.venv/lib/python3.8/site-packages/pyinfra/api/command.py", line 95, in _get_all_bits
    bit = shlex_quote(bit)
  File "/home/tmacey/.pyenv/versions/3.8.6/lib/python3.8/shlex.py", line 325, in quote
    if _find_unsafe(s) is None:
TypeError: expected string or bytes-like object

🤦 had not tested the operations with Path objects. I've added tests for non-string StringCommand bits in https://github.com/Fizzadar/pyinfra/commit/2e4053f28f278e873499f6b716f20e4900dbcd1c and handled them in https://github.com/Fizzadar/pyinfra/commit/b91281e9e00106e4c1860b0209aa3bd8abf0ee19. I have just released this in v1.4.7 which should fix this issue!

Thanks for the quick turnaround!

After testing it is unfortunately not fixed yet. For now I can coerce the Path objects to str in the function call. Longer term it's a design question of whether you want to support Path objects as inputs to the function. If that is the case then it might be beneficial to add a helper that does that coercion early in the function calls for operations that take paths as input to make the internal representation uniform rather than having to do the coalescing at multiple locations throughout the code.
I had tried out moving the change that you made in line 99 of https://github.com/Fizzadar/pyinfra/commit/b91281e9e00106e4c1860b0209aa3bd8abf0ee19 above line 94 where the current error is happening. That resolved the traceback noted here, but resulted in a different traceback at a separate code location because of the parameter still being a Path object. That is why I think this merits a more thorough design consideration as opposed to attempting to patch the immediate issue.

This should now be handled properly in https://github.com/Fizzadar/pyinfra/commit/48d6ff7e445856fdc20e971536872dbfcdcf5f4c - Path objects should absolutely be supported IMO but the string conversion wasn't in the right place. Have confirmed this is now working properly for both facts & operations.
I've also added https://github.com/Fizzadar/pyinfra/issues/622 to track adding some proper tests for this!

So, unfortunately I'm still running into bugs with Path arguments. I think the problem is that the type conversion is happening too far down in the stack. What would probably be more robust and easier to maintain is to do the conversion at the perimeter of the system as opposed to doing a whack-a-mole bug hunt.
What I am envisioning is to have a decorator for all operations that accept a Path object that does the conversion before it even makes it into the body of the operation function. Alternatively, if there is a common layer within the operations mechanism that can serve as this choke point then that would allow for file (and other operations that would benefit from Path objects) to be agnostic to the argument type and do the conversion automatically.
I'm happy to have a real-time conversation to discuss the design/architecture aspects.

@blarghmatey agreed - the commit fixes unrelated issues but I definitely jumped the gun a bit here! Would be great to chat real-time about this and understand the issue better before identifying a proper fix (I've emailed you!).


How to use for multi-consumer multi-producer

If I want a ring-buffer for the multi-producer multi-consumer case, and I protect access to the buffer with a mutex, am I correct that fake_tso should be true in the constructor and otherwise the defaults are correct?
Perhaps add this to the readme?  I saw someone else asked about an exception in the MPMC case.
Thanks!

fake_tso is for cases where the actual hardware (or effective useage) is defacto TSO but architecturally it's still WMO. Like single core microcontrollers.
Mutex should work, of course not as effective as proper MPMC.


Incorrect Highlighting of Blocked Cookies

Describe the bug
Observed discrepancies in the highlighting of blocked cookies. Certain cookies fail to be marked as blocked despite network requests clearly indicating their blocked status. This issue manifests unpredictably, with varying cookies affected upon each page refresh.
To Reproduce
Steps to reproduce the behavior:

Open Privacy Sandbox Panel.
Enter the site URL that you want to analyze.
Observe the cookies being set and their respective highlights in the Privacy Sandbox Panel's Cookies section.
Notice that some third-party cookies are not highlighted as blocked, despite being blocked according to the network tab.
Verify the same in the network tab.
Reload the page and observe changes in cookie highlights, noting inconsistencies.

Expected behavior
All cookies that are blocked should consistently be highlighted as such. There should be no random variations in the highlighting of blocked cookies upon page reloads.
Screenshots

In PSAT Panel check the highlighted cookies.

Observe the same cookies in the network tab

Screencast

Desktop (please complete the following information):

OS: MacOS 13.6.3 and Pop!_OS 22.04 LTS
Browser: Google Chrome
Version: 120.0.6099.129 (Official Build) (64-bit)

Additional context
The issue occurs randomly for different cookies on multiple reloads.

Verified this but was unable to replicate the issue. Also, we've transitioned to the complete CDP. Therefore, closing this issue.


Quote the whitespace between list elements

When later executing the code generated by pot info -E -p $pot
the shell splits the lists on according to $IFS unless the
whitespace is quoted.
The alternative of wrapping the whole list in single ticks
requires a larger change.
Fixes #95.

Thanks for the fix!


feat: Support mutiple *arr servers

Adds support for multiple *arr servers as requested here: https://features.maintainerr.info/posts/1/multipe-arr-support. Existing settings are migrated to the new format.
Some other commits alongside this to fix a few things raised recently.
Improve Plex API failure logging

Plex-api throws its own exceptions for API errors so lets log these. Previously all calls presumed success and you'd get a 'Cannot read properties of undefined' error. Slight improvement for #1302.

Include endpoint and api name in axios error messages
Only a few calls were logging the endpoint. The logger is also overridden so that the correct context gets logged. Resolves: https://features.maintainerr.info/posts/35/logging-more-details-when-using-debug-true
We now get this:
[DEBUG] [OverseerrApi] POST request to http://overseerr.home.arpa//api/v1/settings/jobs/availability-sync/run failed: AxiosError: Request failed with status code 404
Instead of this:
[DEBUG] [undefined] POST request failed: AxiosError: Request failed with status code 404
Improve manual collection and rule execution
The API had hung when I was testing server failure modes, there were a few places where exceptions could be thrown that wouldn't be caught which might lead to a crash:

Add missing awaits
Improve setTimeout usages
Catch and log any exceptions in the controller
Only debounce subsequent actions

Trim trailing slash in Overseerr URL
Not sure if this is just a Firefox thing, but my Overseerr URL gets a slash appended to the end which breaks API requests to it.

Just had a thought that I should reset the caches when a setting has been update.

Hey, thanks for the great work again! This is a big one, I’ll need some time to process everything.

I’ll need some time to process everything.

Of course 😄 Feel free to hit me up on Discord if you any questions

I’ve finally gone through the code and didn’t notice anything breaking, though it still needs thorough testing. What’s your opinion on merging it into the dev branch? Do you think it’s not quite ready yet, or are you confident we can move forward?
Personally, I believe we could merge it to dev so others can start testing it as well.

I am fairly confident it works as expected 😄 I'll rebase it tonight and give everything a once over again.


 message.js:17 Uncaught TypeError: Cannot assign to read only property 'exports' of object '#'

Bug report

What is the current behavior?
The console of the browser gives me the bug:Uncaught TypeError: Cannot assign to read only property 'exports' of object '#'
If the current behavior is a bug, please provide the steps to reproduce.
I run npm at terminal and after this when I am refreshing index.html the console give me that bug.
GitHub repository

What is the expected behavior?
That index.html give some examples that I'm doing

Other relevant information:
node.js v 8.12
"devDependencies": {
"@babel/core": "7.1.2",
"@babel/plugin-transform-runtime": "^7.1.0",
"@babel/preset-env": "7.1.0",
"@babel/preset-es2015": "7.0.0-beta.53",
"@babel/preset-react": "^7.0.0",
"babel-loader": "8.0.4",
"babel-polyfill": "6.26.0",
"babel-preset-react": "^6.24.1",
"css-loader": "1.0.0",
"extract-text-webpack-plugin": "4.0.0-beta.0",
"file-loader": "^2.0.0",
"json-loader": "^0.5.7",
"style-loader": "0.23.1",
"url-loader": "1.1.2",
"webpack": "4.23.1",
"webpack-cli": "3.1.2",
"webpack-dev-server": "3.1.10"
},
"dependencies": {
"@babel/runtime": "7.1.2",
"react": "^16.6.0",
"react-dom": "^16.6.0"

pass {modules: false} to preset-env.

I did it :
use:{
loader:'babel-loader',
options:{
presets: [
['@babel/preset-env',{
modules:false
}]
,'@babel/preset-react']
}
}
},
But It doesn't work

You are not allowed to use module.exports in a ESM (using import).
Use export instead.


Problematic Strings

Text that follows "?>" in the questions or answers input into the site are not shown.

Is this only when the admins are creating/editing challenges, or does it also apply when a player fills in the answer to submit?

It only happens when admins are creating/editing challenges.


Also support swarm/violin plots when there's a categorical x-axis

Continuation of ideas sketched out in #11.

Update from the far future: New versions of Vega-Lite now support jitter / swarm plots: https://vega.github.io/vega-lite/examples/point_offset_random.html
In the context of categorical sample plots in Qurro, we can apply this by adding the following line to the "encoding" section of the specification JSON:
"xOffset": {"field": "random", "type": "quantitative"}

... and adding the following line to the "transform" section:
{"calculate": "random()", "as": "random"}

Both based on the above example from Vega-Lite's documentation.
A problem with these approaches, though, is that the default Vega-Lite settings have only a small amount of padding between the categories. After spending an embarrassing amount of time fighting with the spec, I think we can configure this as follows (modifying the above example):
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Shows the relationship between horsepower and the number of cylinders using point marks with random offset (jittering).",
  "data": {"url": "data/cars.json"},
  "transform": [{"calculate": "random() - 0.5", "as": "random"}],
  "height": {"step": 50},
  "mark": "point",
  "encoding": {
    "x": {"field": "Horsepower", "type": "quantitative"},
    "y": {"field": "Cylinders", "type": "ordinal"},
    "color": {"field": "Cylinders"},
    "yOffset": {"field": "random", "type": "quantitative", "scale": {"domain": [-1, 1]}
    }
  }
}

As far as I can tell, decreasing the domain range actually increases the "height" of the jitter in this example, because the domain is computed relative to the inputs? So increasing domain's range (e.g. to [-2, 2] will reduce the jitter height. Weird.
But anyway! This is surprisingly easy to implement, so the main thing stopping us from supporting this is updating the version of Altair (and then Vega-Lite, and then Vega...) in use -- see #216.

^^^ example of applying this to qurro (using "xOffset": {"field": "random", "type": "quantitative", "scale": {"domain": [-1, 1]}} and the random() - 0.5 thing from before)


Sneaker Website Clone

Project title
Sneaker Website Clone
Stack:
And in order to tick the check box just but x inside them for example - [x] like this. Please delete options that are not relevant.

[x] Html
[x] CSS
[x] JavaScript

/assign


Add more info about the blockstake

Because we do POBS, blockstake is more important. So more info should be available.
This must be available via API and command line.

current blockstake in use (in total of the whole network) for POBS
list of blockstakes of this account (grouped per UTXO),

Colored if the blockstake is active or on hold for some reason (ex. aging).
Age of each blockstake in this account.
Number of blocks that this blockstake created.
fee and blockcreation assets that this blockstake has earned by creating blocks
Percentage of block creation measured (last week averrage) and theoretical

All the above but aggregated for the whole account

Via API currently this info can be get:

totalactiveblockstake : Estimated number of BS active for this moment.
totalblockstake : total BS in this account
totalfeelast1000: total fee this account get for creating blocks in the last 1000 blocks
totalbclast1000: number of blocks created by this account in the last 1000 blocks
totalbclast1000t : theoretical value of number of blocks created by this account in the last 1000 blocks
per UTXO:

blockstakestate : 1 is active / 0 is not active
blockstakenumof : number of BS in that UTXO
blockstakeutxoaddress : address of this UTXO


Convert to ES6

Resolves #1 regarding deprecation of createClass.
Resolves issues with old browsers not supporting () => {} syntax by providing transpiled dist/index.js version.
Bump version to 2.0.1 since no breaking changes, no new functionality.
Thanks!

This is awesome, thanks 😉

published:
npm http request PUT https://registry.npmjs.org/dangerously-set-inner-html
npm http 200 https://registry.npmjs.org/dangerously-set-inner-html
+<EMAIL_ADDRESS>

Great! Thanks 😀


Make winutil self contained, and dev/prod agnostic

Is your feature request related to a problem?
More of a nitpick from me / quality of life improvement for contributors
Describe the solutions you're proposing
Instead of having to comment and uncomment a line, why not leverage PowerShell and CI to either:

"Compile" (combine to a single file) MainWindow.xaml and winutil.ps1 into one file to have it self contained (a single file to irm and worry about) and speed up startup time (one less request to make to github's servers, could also make it available offline easily (of course the app installer would be unusable))

Quick and dirty way I've wrapped my brain about making it work through CI, feel free to copy my main.yaml
Set-Content ./main.ps1 @"
`$inputXML = @'
$(Get-Content ./MainWindow.xaml -Raw)
'@
$(Get-Content ./winutil.ps1 -Raw)
"@
# If you're testing this out yourself don't forget to comment the current routine to not overwrite it

Make use of MyInvocation to use ./MainWindow.xaml if available, else make a request to GitHub to grab it:

if (Test-Path "$PSScriptRoot/MainWindow.Xaml"){
	$inputXML = Get-Content "MainWindow.xaml"
	Write-Verbose "Using XAML from current directory" -Verbose
} else {
	$inputXML = (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/MainWindow.xaml")
	Write-Verbose "Using latest XAML from GitHub"
}
# Presence of -Verbose on the first switch exclusivly on the first instance of Write-Verbose is intentional

Additional info
That may hurt your $10 EXE wrapper's sales, my apologies if I'm touching a sensitive subject

Something I tried implementing in the runspace version where you set an environment variable and it will load the files locally.
https://github.com/ChrisTitusTech/winutil/blob/f83ffaf0a9acd343dc7470d03d640fceade7450b/runspace.ps1#L1362
Likely easily moveable to the main script. Currently there is a CI pipeline to modify the variable $BranchToUse so that main and test are more easily testable. Also I agree, files being pulled from gitlab is a quality of life improvement for using the script but sometimes can be a pain to develop for.

On the same topic, that probably slows it down by quite a bit
https://github.com/ChrisTitusTech/winutil/blob/f83ffaf0a9acd343dc7470d03d640fceade7450b/winutil.ps1#L26-L34
Try it out in your shell (is it my slow connection?):
$BranchToUse = "main"
$configs = @{}

(
    "applications",
    "tweaks",
    "preset",
    "feature"
) | ForEach-Object {
    #$configs["$PSItem"] = Get-Content .\config\$PSItem.json | ConvertFrom-Json
    $configs["$psitem"] = Invoke-RestMethod "https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/config/$psitem.json"
}
This also could be compiled with CI to make it self contained

Might be your connection, I haven't noticed an impact.
I'll create a draft PR and play around with it as a proof of concept. In theory it could improve the reliability of the script and the ability to run offline as an exe would be easier.


Upgrade Composer dependencies

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
24

Relevant Lines:
25

💛  - Coveralls


Backport fixes for clang-cl

Backport https://github.com/gazebosim/gz-cmake/pull/353 to fix https://github.com/conda-forge/gz-physics-feedstock/pull/7#issuecomment-1555872781 .
Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender


Missing DLL files in latest Official build

The previous version i've used TSDuck-Win64-3.18-1361 had the following plugin dll files which i've used:
tsplugin_dektec.dll
tsplugin_drop.dll
tsplugin_file.dll
tsplugin_hls.dll
tsplugin_ip.dll
When I downloaded the latest build 3.23-1965, I could not find any of those files in the Bin folder and could not figure out in the changelog what DLL file I need as a replacement. (i'm trying to have a minimum package with just TSP and the required DLL's so it will no be too big but still useable for my needs.

The corresponding plugins still exist (try tsp -l) but are no longer in separate DLL's. Most of their code was in the main DLL (tsduck.dll) and the individual DLL were just proxies. So, they were removed and the corresponding plugins are buildins in the TSDuck library.

i'm trying to have a minimum package with just TSP and the required DLL's so it will no be too big but still useable for my needs.

There is not much to remove. Have a look at the various EXE and DLL. They are all very small. Everything is in the TSDuck library because this is a general purpose DTV library. All EXE and DLL are just small wrappers. Removing some of them will not gain much space. The TSDuck installer contains the tools and plugins, the documentation and development environment. When you select only tools & plugins during installation, there is not really any need to tune space by removing small EXE or DLL.

So, if I were to only have the TSP.exe and TSduck.dll, then I could still use the previous commands that needed the DLL's?
Thank you! :+1:

You want to use the plugin named IP (uppercase) which does not exist.
Only the plugin named ip (lowercase) is registered.

I see, so it's now case-sensetive, with the previous build that command worked as is, but good to know!
I can confirm that the command is now working, so one final question which is related to the HLS in the CMD provided above, i keep getting this message:
Debug: hls: unexpected file extension in reference URI: index_1_647401.ts?m=1602078555
Is this an issue or just not supported?
and thank you for everything!

I see, so it's now case-sensetive, with the previous build that command worked as is, but good to know!

It has always been case sensitive. It's just the Windows file system which is not case sensitive and for which files plugin_ip.dll and plugin_IP.dll are identical. You command would have never succeeded on Unix systems (Linux and the like).
The HLS issue is different. I just tried the playlist from your command and it returns the following list of segments:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:647869
#EXT-X-PROGRAM-DATE-TIME:2020-10-29T04:38:31.596Z
#EXTINF:3.003,
index_1_647869.ts?m=1602078555
#EXTINF:3.003,
index_1_647870.ts?m=1602078555
#EXT-X-PROGRAM-DATE-TIME:2020-10-29T04:38:37.602Z
#EXTINF:3.003,
index_1_647871.ts?m=1602078555
#EXTINF:3.003,
index_1_647872.ts?m=1602078555
...

This is a limitation of the TSDuck hls plugin. It expects all segments to ends in .ts because HLS can use TS or fMP4 files while TSDuck can only process transport stream files. Here, the parsing of the segment name is incorrect and fails to take apart the arguments after the '?'. This is legal but unusual. All TS-based HLS playlists I have seen so far did not use an argument part in the relative URL of their segments. I will fix this.

After checking, the message " Debug: hls: unexpected file extension in reference URI: index_1_647401.ts?m=1602078555" is just a debug warning (not seen in normal or verbose mode). The URL is correctly used and the media segment is correctly downloaded anyway. So, the required fix is just aesthetics: check that the actual file part ends in .ts after stripping the argument part and do not report such a debug message in that case. But, in fact, it works.

I will let the guys on the side of the HLS know of this.
Thank you again for all your assistance and great work on this tool!
This ticket can be closed :+1:


Breaking change on how the file name is calculated hence how the checksum is calculated

Environment
Liquibase Version:
Upgrade from 4.4.x to 4.5.0 or 4.6.0
Liquibase Integration & Version:
micronaut
Liquibase Extension(s) & Version:
Database Vendor & Version:
MsSQL
Operating System Type & Version:
Docker Linux
Description
Liquibase upgrade should not change the behaviour of file resolution and the way of naming
With micronaut liquibase / liquibase upgrade, the format is changed, hence breaking upgrade and liquibase migration
Expected behaviour
In DATABASECHANGELOG table, filename column, it should not change the way file names are stored with version upgrade. Or it should have flexibility to configure.
Steps To Reproduce
I had micronaut core 3.1.2 hence liquibase library version 4.4.3
Here is the configuration
liquibase:
  datasources:
    default:
      change-log: 'classpath:liquibase-master-changelog.yml'
      drop-first: false

Master yml file as
databaseChangeLog:
  - include:
      relativeToChangelogFile: true
      file: './db/changelog/sprint_8/liquibase-sprint-8-changelog.yml'

sub yaml file
databaseChangeLog:
  - include:
      relativeToChangelogFile: true
      file: './liquibase-entities.sql'

Individual sql files
--liquibase formatted sql
--changeset author:id
...sql query here...

It used to have entry as following

Notice the ./ at start.
Now with micronaut upgrade to 3.2.1 hence liquibase library version 4.6.1
The original configuration does not work. It throws following error
Caused by: liquibase.exception.ChangeLogParseException: Error parsing classpath:liquibase-master-changelog.yml
	at app//liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:88)
	at app//liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:369)
	at app//liquibase.Liquibase.lambda$update$1(Liquibase.java:224)
	at app//liquibase.Scope.lambda$child$0(Scope.java:177)
	at app//liquibase.Scope.child(Scope.java:186)
	at app//liquibase.Scope.child(Scope.java:176)
	at app//liquibase.Scope.child(Scope.java:155)
	at app//liquibase.Liquibase.runInScope(Liquibase.java:2404)
	at app//liquibase.Liquibase.update(Liquibase.java:211)
	at app//liquibase.Liquibase.update(Liquibase.java:197)
	at app//io.micronaut.liquibase.LiquibaseMigrationRunner.performUpdate(LiquibaseMigrationRunner.java:200)
	at app//io.micronaut.liquibase.LiquibaseMigrationRunner.migrate(LiquibaseMigrationRunner.java:157)
	... 75 more
Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 9: classpath:liquibase-master-changelog.yml
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
	at java.base/java.nio.file.Path.of(Path.java:147)
	at java.base/java.nio.file.Paths.get(Paths.java:69)
	at liquibase.util.FilenameUtil.getDirectory(FilenameUtil.java:81)
	at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:572)
	at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:365)
	at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:320)
	at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:82)

I have to change it as follows
liquibase:
  datasources:
    default:
      change-log: './liquibase-master-changelog.yml'
      drop-first: false

The issue is, with this is,
It is trying to make an entry
as follows

Notice the absence of ./
Since old change log already would have ./ in file name, it will try to make a new entry.  And the migration will fail.
So either, don't change the file name creation or allow to configure names.
Related question in micronaut issues
Link

I had the same issue.. to fix it, I removed the "classpath:" from the config, in your case it woul give :
change-log: 'liquibase-master-changelog.yml'

@akshayvadher I think the change in #2915 should address your issue because even though you're not changing how you specify the paths, Liquibase will better recognize them as being still actually equal to values in the databasechangelog table and therefore not a new changeset.
Have you seen it continue to fail with 4.12.0? Or are you just thinking it won't?

I haven't checked with the new release, I am just assuming.
So are you saying that even though the old change log has ./db/abc/path as filename (already inserted in DB), while comparing with new version, even though new version will try to set db/abc/path, the new version will consider old and new both as the same path names?
Will it also consider MD5 checksum to be equal?

Yes, that is what I mean. Liquibase will treat those two as identical.
The path is not included in the MD5 sum so that will not be impacted either.


Why do we have the release tagging policy that we do?

 I recall that back in the day we created tags for upcoming releases like 18.09-beta, which tagged the commit from which the release branch was branched off. However, something didn't work the way we expected with those tags, so we changed the policy to tag the first commit of the newly created branch, e.g. 18.09-beta was effectively created on the master but the subsequent release tags were not. I recall that there was some reason, but I don't recall what the reason was!
Can someone please enlighten me?
Ping @vcunat, who probably knows.

I imagine it has to do with the revCount that needs to be adjusted when branching. We can't do that before branching because it would break the unstable channels.

as tagged above, I have a PR to add a tagging step to the release, so that the latest tag on master will reflect the current unstable channel.

as tagged above, I have a PR to add a tagging step to the release, so that the latest tag on master will reflect the current unstable channel.

the release wiki has been updated so that master only has pre tags, the beta tag is now the first commit on release-YY.MM


Lines doesn't start at minBounds when using tightBounds and fillColor

Awesome lib,
I'm using tightBounds with a vertical range about 1500-1520 and i realize that lines doesn't start at the bottom (1500), It starts in a long way down, instead of the minBounds of the tightBounds.
I've slow down the animationDuration to show it, you can also see the fillColor ended much higher than expected.

It's only occurs when sets fillColor property.
I've played a little bit on the path scale, but no success yet, any progress i'd pull request, any help would be appreciated.

Have you tried setting a static height on the chart component?

It doesn't really help, i think there's something wrong with the fillAnimation.fromValue and pathAnimation.fromValue animation.

I agree, those have been a point of frustration for me. Would you mind
posting a snippet so I can debug?
On Sat, Mar 12, 2016 at 5:19 PM César D Azevedo<EMAIL_ADDRESS>wrote:

It doesn't really help, i think there's something wrong with the
fillAnimation.fromValue
https://github.com/tomauty/react-native-chart/blob/master/RNChartPlotAreaView.m#L143
and pathAnimation.fromValue
https://github.com/tomauty/react-native-chart/blob/master/RNChartPlotAreaView.m#L164
animation.
—
Reply to this email directly or view it on GitHub
https://github.com/tomauty/react-native-chart/issues/57#issuecomment-195818743
.

Sure, following the index.ios.js example. I made these changes to you reproduce it, https://gist.github.com/cesardeazevedo/109f60e77f97c76ce484

Would you be willing to try out 1.0.1-beta ? It's a ground-up rewrite so this problem probably doesn't exist anymore :)


Fixes the issue realted to adding/ updating events tags not been saved and making form unsubmissive

Fixes Issue
Closes #10197

Changes proposed

Description field was made required as per the Event schema
Commented out setIsDisabled(true) in the handleSubmit() function as this was making the form disabled after inputting the tags.

Check List (Check all the applicable boxes)

[X] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[X] All new and existing tests passed.
[X] This PR does not contain plagiarized content.
[X] The title of my pull request is a short description of the requested changes.

Screenshots

Creating a new Event

Updating Event

Note to reviewers

I have added and updated some sample events locally to test the application flow and it was working fine.

Can I get an update on this PR? if it is still having an issue then please do let me know.

Thanks @amanpreet-dev for the PR.
Good spot @luismr00 thank you for testing 👍


Can't configure Harmony Hub after router Reboot

Home Assistant
0.99.1 (latest docker)
After a router reboot (and I think IP change) I can no longer connect to my harmony hub. I see two devices in "Configure": my current Harmony Hub and a new one "discovered." Clicking on configure does nothing. I've tried the following:
Deleting my current connection to the hue, rebooting. This just displays the hub "discovered"
Changing my hub to a static ip, rebooting
Adding the following to the config file (and rebooting):
hue:
  bridges:
    - host: <IP_ADDRESS>
      filename: phue.conf

Clicking "configure" still does nothing (i.e., the popup telling you to press the button on the hub).
All I see in the logs are the following:
2019-09-24 14:58:09 INFO (MainThread) [homeassistant.components.hue] Invalid authentication for <IP_ADDRESS>, requesting link.
The hue works on the new IP in all other apps (Hue, HomeKit, Harmony etc), so it's not my hub.

Sorry! I typed harmony but meant Philips hue. I can’t click the configure button in the integration section.

@GoodOmens83 I am pretty sure this was fixed in .99.2. https://www.home-assistant.io/blog/2019/09/18/release-99/#release-0992---september-19
Please try updating to see if it resolves the issue.

We'll release 99.3 today.


spinel-cli: Add ipaddr removal to prefix change handler.

Fixes Cert_5_6_06 and Cert_5_6_08.  Fixes #517.
Collapse fcs16 into Hdlc class.
Add and correct subcommand completion handlers.
Move prefix handler to separate worker thread and task queue.
Channelize blocking spinel property change handlers to allow parallel
reuse across multiple threads.

Current coverage is 64.82% (diff: 100%)

Merging #669 into master will increase coverage by 0.25%

@@             master       #669   diff @@
==========================================
  Files            99         99
  Lines         14444      14445     +1
  Methods        1984       1983     -1
  Messages          0          0
  Branches       1703       1703
==========================================
+ Hits           9326       9364    +38
+ Misses         4590       4554    -36
+ Partials        528        527     -1

Powered by Codecov. Last update 2522d2e...8bee7f8


UART send data from buffer twice when other side reply too soon. (IDFGH-7017)

Environment

Development Kit:      [ESP32-DEVKITC-32UE]
Module or chip used:  [ESP32-WROOM-32UE]
PatformIO 3.5.0
ESP-IDF version v3.3.5-1-g85c43024c
framework-arduinoespressif32 3.10006.210326 (1.0.6)
tool-esptoolpy 1.30100.210531 (3.1.0)
toolchain-xtensa32 2.50200.97 (5.2.0)
Operating System:     [Windows]
Power Supply:         [USB]

//edit, tested on newer version with same result

ESP-IDF version is: v4.4-beta1-189-ga79dc75f0a

Problem Description
Data from UART2 are sent twice when another side replies in a few hundred us.
I use Arduino based  Serial2.print("#APP:cw:data?\n");
Port speed is set to 115200
So message is send in 1.2ms
Other side start to reply in 200us
But after about 570us message is sent again with no clear reason
//Edit:
The timing was just a coincidence. What causes dual sending is reading. It happens when some message is in the buffer.
So the first run is fine and the message is sent only once.
But for every other time when is some message in RX buffer it causes to sent it twice
Everything is checked on a logic analyzer.
Without a reply from another side, it works just fine and the message is sent only once.
On UART2 is this message "#APP:cw:data?\n" twice with 570us spacing
Code to reproduce this issue

#include <WiFi.h>
#include <WiFiUdp.h>

#include <Preferences.h>

static Preferences configuration_storage;
static String ssid_used;
static String pswd_used;

static WiFiUDP udp_to_SW;
static WiFiUDP udp_from_Sensor;
static WiFiUDP udp_from_SensorPing;

void MainSenderTask(void * parameter)
{
  TickType_t  xLastWakeTime = xTaskGetTickCount();
  Serial.println("Enter Main sender Task");
  for( ;; )
  {
    //run this task every x ms
    vTaskDelayUntil(&xLastWakeTime, pdMS_TO_TICKS(1000));

    //Send a packet
    udp_to_SW.beginPacket(udpBCast, udpForSW);
    if (Serial2.available() > 0)
    {
      String str = Serial2.readString();
      int str_len = str.length() + 1;
      char char_array[str_len];
      str.toCharArray(char_array, str_len);
      udp_to_SW.printf(char_array, str.length());
    }
    else
    {
      udp_to_SW.printf("empty");
    }
    udp_to_SW.endPacket();

    //ping sensors
    udp_from_SensorPing.beginPacket(udpBCast, udpForSensorPing);
    udp_from_SensorPing.printf("ping");
    udp_from_SensorPing.endPacket();

    //request data from main app
    Serial2.print("#APP:cw:data?\n");

    // If packet received...
    char packet[255];
    int packetSize = udp_to_SW.parsePacket();
    if (packetSize)
    {
      int len = udp_to_SW.read(packet, 255);
      if (len > 0)
      {
        packet[len] = '\0';
      }
      //send received packet to main app
      Serial2.println(packet);
      //copy received packet to debug output
      Serial.print("Packet from APP received: ");
      Serial.println(packet);
    }
  }
}

void mode_WithPC_setup()
{
  configuration_storage.begin(NVM_Name, false);
  ssid_used = configuration_storage.getString("ssid", default_ssid);
  pswd_used = configuration_storage.getString("pswd", default_pswd);
  configuration_storage.end();

  Serial.printf("Starting WiFi: %s@%s \n", ssid_used.c_str(), pswd_used.c_str());

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid_used.c_str());
  WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));

  Serial.printf("TX power: %i \n", WiFi.getTxPower());

  udp_to_SW.begin(udpForSW);
  udp_from_Sensor.begin(udpForSensors);
  udp_from_SensorPing.begin(udpForSensorPing);

  xTaskCreate(
    MainSenderTask,    // Function that should be called
    "PC communication Task",   // Name of the task (for debugging)
    2000,            // Stack size (bytes)
    NULL,            // Parameter to pass
    1,               // Task priority
    NULL             // Task handle
  );
}

void setup() {
  //debug meessage uart
  Serial.begin(115200);
  //communicate with main APP
  Serial2.begin(115200);

  mode_WithPC_setup();
}

void loop() {

}

I was trying pieces of code again and
Dual sending is caused by this piece of code
So it is not a reply from the other side but reading from receive buffer what cause dual send
if (Serial2.available() > 0)
    {
      String str = Serial2.readString();
      int str_len = str.length() + 1;
      char char_array[str_len];
      str.toCharArray(char_array, str_len);
      udp_to_SW.printf(char_array, str.length());
    }

This causes message to be sent twice and timing was just a coincidence

This should likely be over on https://github.com/espressif/arduino-esp32 since it looks possibly like a bug in the HardwareSerial wrapper code.

This should likely be over on https://github.com/espressif/arduino-esp32 since it looks possibly like a bug in the HardwareSerial wrapper code.

I expected it just pass data to layer down.

That would depend on the version of arduino-esp32.

It is way stranger than I expected.
It might be some other issue because the code actually executes twice the whole task
This is way too strange
void MainSenderTask(void * parameter)
{
  TickType_t  xLastWakeTime = xTaskGetTickCount();
  Serial.println("Enter Main sender Task");
  for( ;; )
  {
    //run this task every x ms
    vTaskDelayUntil(&xLastWakeTime, pdMS_TO_TICKS(1000));

    uint8_t run_countert;

    //Send a packet
    udp_to_SW.beginPacket(udpBCast, udpForSW);
    if (Serial2.available() > 0)
    {
      String str = Serial2.readString();
      int str_len = str.length() + 1;
      char char_array[str_len];
      str.toCharArray(char_array, str_len);
      udp_to_SW.printf(char_array, str.length());
      Serial.println(str.c_str());
    }
    else
    {
      udp_to_SW.printf("empty");
      Serial.printf("empty\n");
    }
    udp_to_SW.endPacket();

    //ping sensors
    udp_from_SensorPing.beginPacket(udpBCast, udpForSensorPing);
    udp_from_SensorPing.printf("ping");
    udp_from_SensorPing.endPacket();

    run_countert++;
    Serial.println(run_countert);

    //request data from main app
    Serial2.print("#APP:cw:data?\n");

    // If packet received...
    char packet[255];
    int packetSize = udp_to_SW.parsePacket();
    if (packetSize)
    {
      int len = udp_to_SW.read(packet, 255);
      if (len > 0)
      {
        packet[len] = '\0';
      }
      //send received packet to main app
      Serial2.println(packet);
      //copy received packet to debug output
      Serial.print("Packet from APP received: ");
      Serial.println(packet);
    }
  }
}

And this is the result every second
197
2:0:1:0:1:0:1:0:1:0:0:0:0:1
198
empty

Hi @MiyukiDark, thanks for your contribution. Let's close this issue and continue investigating this in Arduino ESP32 core repository as it is related to Arduino.


system_tests_tcp_adaptor failing in test_80_balancing

FAILED ::TcpAdaptor::test_80_balancing - AssertionError: "At least one server did not receive a connection: origin=INTB counts={'INTA': 1, 'INTB': 4, 'INTC': 0, 'EA1': 1, 'EA2': 1, 'EB1': 4, 'EB2': 4, 'EC1': 1, 'EC2': 2}" is not None

https://github.com/skupperproject/skupper-router/actions/runs/6303771702/job/17113718375?pr=1229#step:34:14981

Duplicate of

https://github.com/skupperproject/skupper-router/issues/990


Usecase: insurance underwriter

How can we enable insurance underwriters to automate repetitive tasks?
This task involves creating recordings involving one or more relevant applications, and implementing tests for corresponding completions:

GuideWire PolicyCenter
Excel
SharePoint
PowerBI

@jesicasusanto what other applications are involved?

Use Case: Policy Data Entry
Associated Tasks: Data input, verification, and validation
Relevant Software Applications: GuideWire PolicyCenter, Excel

Use Case: Document Management and Collaboration

Associated Tasks: Document sharing, version control, collaboration
Relevant Software Applications: SharePoint, Excel

Use Case: Data Analysis and Reporting
Associated Tasks: Data analysis, generating reports and visualizations
Relevant Software Applications: Excel, Power BI

@flyguy712 would love your input here 🙏


Mails: Update the search label to make it clear we're searching on name

I don't think we only filter on name?

Yes, what I mean with this issue is that the label here should be updated to reflect that we only filter on name.

It really searches on email too:

Would a rename to Search on name and mail be too verbose?

I think so, that's why I named id search


.vue Files

Please add the .vue extension. That would be great :)
http://vuejs.org/guide/application.html

Can you add this to linter.py yourself (to syntax entry) and check if it works as expected and make a PR? I do not know vue format at all, it would be better if someone who is familiar with it will help.


[DNM] storage&txn: Add debug logs for async commit/1pc

Signed-off-by: MyonKeminta<EMAIL_ADDRESS>
What problem does this PR solve?
Adds logs for debugging async commit/1pc based on version 3bae18b0d23723de15deed3bd1bba990cf827910
What is changed and how it works?
Adds some logs.
Release note

No release note.

Maybe we need to track when the memory locks are released from the lock table. We can add logs to the drop method of KeyHandleGuard:
impl Drop for KeyHandleGuard {
    fn drop(&mut self) {
        let l = self.handle.lock_store.lock();
        info!("drop KeyHandleGuard"; "lock" => ?l);
        *l = None;
    }
}

/build make dist_release

/release make dist_release

/release make dist_release


chore: update CHANGELOG.md

Codecov Report

Merging #521 (a6caa8f) into master (de1626b) will decrease coverage by 0.95%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #521      +/-   ##
==========================================
- Coverage   60.28%   59.33%   -0.96%
==========================================
  Files          18       18
  Lines         841      841
  Branches      170      170
==========================================
- Hits          507      499       -8
- Misses        334      342       +8

Impacted Files
Coverage Δ

src/multimanifestmodule.ts
46.26% <0.00%> (-5.98%)
:arrow_down:

Continue to review full report at Codecov.

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

package-lock.json is not updated to reflect the version.


pytest tests marked as passed or failed if test name contains upper letters

Hello,
I've encountered a little bug recently in the "Tests" tab. I am not 100% sure that the bug is related to vscode or to the python extension. According to the answer on vscode repo, it is due to the extension, that's why I'm reposting here.
Environment data

VS Code version: 1.34.0
Extension version (available under the Extensions sidebar): 2019.6.24221
OS and version: Windows_NT x64 6.1.7601
Python version (& distribution if applicable, e.g. Anaconda): 3.6.8 64 bit
Type of virtual environment used  : conda
Relevant/affected Python packages and their versions: user interface of the test tab, pytest
Jedi or Language Server? "python.jediEnabled" = True

My file settings.json is :
{
    "python.testing.pytestArgs": [
        "tests"
    ],
    "python.testing.unittestEnabled": false,
    "python.testing.nosetestsEnabled": false,
    "python.testing.pytestEnabled": true
}

Bug description :
When a test file contains an upper letter, it is not displayed properly in the test tab. After running if passed or failed, it is displayed with a "grey question mark".
Steps to Reproduce:

Create an empty project (note : use a conda environment where pytest is installed)
Create a "tests" folder
2.1 Create a test_working.py file

import pytest
def test_this_one_works():
    assert 1==1

2.2 Create a test_NotWorking.py file with the same code
import pytest
def test_this_one_works():
    assert 1==1

In the Test tab of vscode, run Discover Tests
If everything ran properly, you should see the following architecture :

(?) tests

(?) test_notworking.py (with lower case!!!)

(?) test_this_one_does_not_work

(?) test_working.py

(?) test_this_one_works

In the Test tab of vscode, run Run All Tests.
Actual & expected behaviour
-(green tick ok) tests
- (?) test_notworking.py <- BUG - EXPECTED BEHAVIOUR : should have a green tick and have name in upper case
- (?) test_this_one_does_not_work <- BUG - EXPECTED BEHAVIOUR : should have a green tick and have name in upper case
- (green tick ok) test_working.py (with lower case!!!)
- (green tick ok) test_this_one_works

Logs
The tests seem to be ran whatever is displayed (the bug only concerns the user interface) : indeed in the bottom line (where my python version and my environment are shown), I see an icon "two tests passed". When i run pytest tests in the command line, everything is fine.
Python Test log
python C:\Users\F400411\.vscode\extensions\ms-python.python-2019.6.24221\pythonFiles\testing_tools\run_adapter.py discover pytest -- -s --cache-clear tests
============================= test session starts =============================
platform win32 -- Python 3.6.8, pytest-5.0.1, py-1.8.0, pluggy-0.12.0
rootdir: c:\Users\F400411\Documents\1_Datascience\3_MISSIONS\bug_test_vscode
collected 2 items

tests\test_NotWorking.py .                                               [ 50%]
tests\test_working.py .                                                  [100%]

- generated xml file: C:\Users\F400411\AppData\Local\Temp\tmp-5180zo59mydLbZ4a.xml -
========================== 2 passed in 0.03 seconds ===========================
python C:\Users\F400411\.vscode\extensions\ms-python.python-2019.6.24221\pythonFiles\testing_tools\run_adapter.py discover pytest -- -s --cache-clear tests
============================= test session starts =============================
platform win32 -- Python 3.6.8, pytest-5.0.1, py-1.8.0, pluggy-0.12.0
rootdir: c:\Users\F400411\Documents\1_Datascience\3_MISSIONS\bug_test_vscode
collected 2 items

tests\test_NotWorking.py .                                               [ 50%]
tests\test_working.py .                                                  [100%]

- generated xml file: C:\Users\F400411\AppData\Local\Temp\tmp-5180SM9GGMumKvVy.xml -
========================== 2 passed in 0.02 seconds ===========================

Conclusion :
This bugs is not critical at all since it only concerns the UI, but in my old projects I can't see the tests in the UI (while it used to work perfectly fine few weeks ago). I definitely do not want to change the names of the scripts (the tests scripts are a mirror of the scripts names of my project).
Any hope this would be easy to fix?
Many thanks for reading and any further help !
Galileo

Thanks for reporting this @Galileo-Galilei

This is very likely related to #6410 except in the current issue, upper case letters are in the file name instead of the directory name.

@PhilMacKay @DonJayamanne  I just stumbled across this trying to fix it on my computer. It is definitely (in my opnion) an extension of #6410.
In settings.json if I put
    "python.testing.pytestArgs": [ "tests" ],
to set up pytest, it correctly displays the markers as a red x or a green check.
But if I put
"python.testing.pytestArgs": [ "Tests" ],`
in settings .json, the results are all the grey questionmark, even after running.
Hereis the python test log from the a passed test run with all lowercase folder name in settings.json

@Marsfan I've tried this on my side and it doesn't solve my issue.
Have you tried to see what happens when the python file itself has capital letters in it? What about if it was located inside a sub-folder with a capital letter in it?
I'd really need to find a fix to this issue because all of my team's tests are written with capital letters, and it prevents us from running tests individually...

This should be resolved now due to #6781 and #6877.  Those changes are already in the insiders build of the extension and will be part of the September release.

@PhilMacKay indicated that this is resolved.  See https://github.com/microsoft/vscode-python/issues/6820#issuecomment-520972436


Residual network examples do not call eval() before testing

Thanks a lot. Pull request merged in #99.


Issue with Font Loading during View Transitions in Production Build

In development environment, fonts load correctly when using Astro  for page navigation. However, in the production build, fonts do not display properly when navigating between pages.
Steps to reproduce:

Build the project for production
Navigate between pages using View Transitions
Observe that fonts are not rendering correctly

Expected behavior:
Fonts should load and display properly during View Transitions in both development and production environments.
Actual behavior:
Fonts render correctly in the development environment but fail to display properly in the production build when using View Transitions.
Note: This issue may be specific to my environment, but I wanted to report it in case others are experiencing similar problems.
Any assistance in resolving this font loading discrepancy between development and production environments would be greatly appreciated.

I apologize for the confusion. Upon further investigation, I found that this issue was caused by a misconfiguration on my end, not a bug in astro-font. I'm closing this issue as it's no longer relevant. Thank you.

No worries, if there's anything that can be improved, do tell me!