Switching process descriptor causes page fault after a few switches

https://github.com/Jojojoppe/squire/blob/560fa18eed303b13b98082e04e2e7d718a1e53e6/kernel/src/proc.asm#L355-L356
Somehow after ~6 switches this causes a pagefault in
https://github.com/Jojojoppe/squire/blob/560fa18eed303b13b98082e04e2e7d718a1e53e6/kernel/src/proc.asm#L347

Check for recursive isr

Within commit 212396e some sti's are removed and a kernel thread entry function which re-enables interrupts is added. Hopefully this contributes to the stability


Add documentation and type annotations for Time

Please merge? 😐
@ysbaddaden, what do you think?

For immutable objects, copy and not are indistinguishable. Especially for structs.

I feel like at this point I'm just annoyed with the comments even if they are good.
This is ready to merge :s

This is ready for merge too for me. About the inclusive/exclusive ranges, both are fine by me. Maybe inclusive is slightly better because if read quickly there's no possibility of confusion.


Framework: Added WaitForAnimationComplete method on elements

Waiting for ongoing changes of position (x, y) and size (height, width) of the element to finish.
Can be used to wait before clicks that could conflict with an animation otherwíse.

lgtm


[WIP] Reimplement lambdamart ndcg.

Add parameter ndcg_truncation.
Change the default metric to ndcg@truncation.

TODOS:

[ ] Better tests.
[ ] Benchmark for accuracy and perf.
[x] Label checks.
[ ] Gain type.

Question to myself: Is there a way to use cub sort pair with discard iterator to avoid allocating an array?

Closing to avoid spamming the list. Will reopen once ready.


added profile for building artifact without tests or other checks

What does this Pull Request do?
Adds a maven profile for building without tests or other checks.
How should this be tested?
mvn -Pfast-build clean install
Interested parties
@fcrepo/committers

Build succeeds with new profile specified. Thanks Peter


Fix repo link

During the update I found out that json-ld package link leads to the old archived repo

Thanks for the contribution!


WIP: Add calls to quant/dequant submodules for scripted QAT-trained modules

This does a bit of JIT graph surgery to insert the calls to quant/dequant as neeeded.
To keep backward compat, we leave things alone if the input is already quantized.
Fixes: #7552

So a problem I'm still debugging is that something is cached somewhere and PyTorch will "remember" if we first script the model with no-input-compat and then script with input-compat... This is made hard to debug because with the __torch_function__ mechanism, there 9999 exceptions being thrown and caught for everything involving scriptmodules, so I'll need to use replaying. :shrug:

So some more debugging, we end up with the same function and that will have optimized_graphs already, and so it doesn't look at the improved graph. I'll see what we can do to not have the same function...

Thank you @tchaton for the comments. This is currently waiting for a way to clear PyTorch's cache. I've been digging quite a bit but I have yet to find a solution.

Hey @t-vi,
No problem. Even if I find this PR really insight full and quite magical/hacky, I believe it would be better suited within PyTorch.
Keep us updated on this PR status and PyTorch side progress.
Best,
T.C


Bugfix in priority of put!/get of a resource

put!/get (lock/unlock) requests for a resource are now handled in descending priority order, the same way as simulation events.

Is this the appropriate way to fix this? I am wondering because I imagine someone might be confused that isless does not correspond to a.priority < b.priority anymore? Would it be clearer to fix this by changing the sort order in the consumer of isless?

I understand the concern here. What I did was take a look at the isless function for the AbstractEvent type and simplified it, which appeared to be the simplest way of fixing this.
If preferred, I could implement it the way you suggest instead.

I think we indeed should avoid changing the meaning of isless, as that might be a breaking change for some users and it would require us to release version 2.0.
Do you mind adding a test that fails on the current master branch, showcasing what the bug is? I think it would be easier for me to comment after I see that.

Test added to test_resource_priorities.jl.
In the test, ev1 and ev2 are unlock requests for resource res, with the priority of ev1 higher than ev2. Hence, as soon as the resource can be unlocked, ev1 should trigger when the simulation runs, and the tests checks for this.
However, the test fails since ev2 is triggered first despite having the lower priority.

Codecov Report

Merging #101 (4d15fb4) into master (34ed8dd) will not change coverage.
Report is 1 commits behind head on master.
The diff coverage is 100.00%.

:exclamation: Current head 4d15fb4 differs from pull request most recent head 23d801c. Consider uploading reports for the commit 23d801c to get more accurate results

@@           Coverage Diff           @@
##           master     #101   +/-   ##
=======================================
  Coverage   97.15%   97.15%
=======================================
  Files          12       12
  Lines         316      316
=======================================
  Hits          307      307
  Misses          9        9

Files
Coverage Δ

src/resources/base.jl
92.85% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Also changed the isless function to maintain the intuitively understood meaning of the function. Fortunately the only additional change that was needed was in the trigger_put and trigger_get functions.

Did you mean to merge the test on master? It seems there is already a change on the master branch related to this that has made the CI badge go red.

Did you mean to merge the test on master? It seems there is already a change on the master branch related to this that has made the CI badge go red.

I thought you meant that when you asked me "Do you mind adding a test that fails on the current master branch, showcasing what the bug is? I think it would be easier for me to comment after I see that."
If not, my apologies for misunderstanding.

My bad as well, I should have been clearer. I usually aim to have the master branch always green (it makes git bisect easier and it avoids other issues). I meant adding the test in this branch so it is isolated from the master branch but still visible in the PR CI.

Any way to perform a roll back on that accidental/undesired change?

Got around to actually reviewing and looking up the documentation of PriorityQueue and the notion of priority documented in this package, and it is actually a bit underdefined and I am getting confused. I could not find a piece of documentation or test code that actually imposes what is the "correct" priority ordering and how to use it. The word priority is mentioned only once in the documentation and not mentioned in any docstrings.
I have a couple of questions.

Is it true that there is no public API for setting the priority of simulation events? If there is one, could you post it here?
All get/set events on Resources do have a priority and that one can be set with the priority keyword, right? This pull request is about ensuring that the order in which they are executed is descending in priority, and that is done for consistency with the order in which simulation events are executed, right?
Both the current version of the PR and the first version of the PR should be considered breaking changes, because people's code out there might already depend on the current "increasing in priority order" convention, right?

If in point 1 I am correct that there is no public API for simulation event priority (I am not sure of that), should we instead make the change there to ensure that we do not have "breaking change" issues as discussed in point 3?
If I am correct about point 1, maybe we should also create a public API for simulation event priorities?

Here is a toy I set up to try to understand how priorities for resources work:
on master
julia> sim = Simulation(); res = Resource(sim); global_log = [];

julia> @resumable function lock_and_log_in_global(sim, res, priority, msg)
           @yield lock(res, priority=priority)
           push!(global_log, msg)
           unlock(res)
       end;

julia> @process lock_and_log_in_global(sim, res, 2, "priority 2")
Process 1

julia> @process lock_and_log_in_global(sim, res, 0, "priority 0")
Process 3

julia> @process lock_and_log_in_global(sim, res, 1, "priority 1")
Process 5

julia> @process lock_and_log_in_global(sim, res, 1, "priority 1 again")
Process 7

julia> @process lock_and_log_in_global(sim, res, 0, "priority 0 again")
Process 9

julia> @process lock_and_log_in_global(sim, res, 2, "priority 2 again")
Process 11

julia> run(sim)

julia> global_log
6-element Vector{Any}:
 "priority 2"
 "priority 0"
 "priority 0 again"
 "priority 1"
 "priority 1 again"
 "priority 2 again"

The very first event seems wrong, but the other events seem correct, assuming ordering by ascending priority. Did I do something wrong here?
on this PR
julia> @process lock_and_log_in_global(sim, res, 0, "priority 0")
Process 1

julia> @process lock_and_log_in_global(sim, res, 2, "priority 2")
Process 3

julia> @process lock_and_log_in_global(sim, res, 1, "priority 1")
Process 5

julia> @process lock_and_log_in_global(sim, res, 1, "priority 1 again")
Process 7

julia> @process lock_and_log_in_global(sim, res, 0, "priority 0 again")
Process 9

julia> @process lock_and_log_in_global(sim, res, 2, "priority 2 again")
Process 11

julia> run(sim)

julia> global_log
6-element Vector{Any}:
 "priority 0"
 "priority 2"
 "priority 2 again"
 "priority 1"
 "priority 1 again"
 "priority 0 again"

Here we have the same issue: the first event seems wrong, but then the ordering is correct, assuming sorting by decreasing priority.
Conclusion
I think there might be an unrelated problem with the priorities for resources (the first event being mistreated), but I think we should keep the ascending order in the resources priorities, because otherwise there would be a breaking change.
If there is a public API for simulation event priorities, the way there is one for resources priorities, indeed we should make the two APIs match, and that is an unavoidable breaking change. But if there is no public API for simulation event priorities, maybe we can fix this mismatch in orders by changing the non-public one.
Apologies for not investigating this earlier, before the previous round for discussions and prompting you to modify the PR -- I have not used the priorities functionality before and did not suspect how much I am missing.

I'll try to answer both your posts in one go.
Answers to questions
Question 1

Is it true that there is no public API for setting the priority of simulation events? If there is one, could you post it here?

That's correct, there is no public API for this. As far as I understand the code, this is because when an event is defined, it is immediately inserted into the priority queue of the simulation for simulation events, or in the appropriate priority queue of the resource for put!/lock and get/unlock events.
Question 2

All get/set events on Resources do have a priority and that one can be set with the priority keyword, right? This pull request is about ensuring that the order in which they are executed is descending in priority, and that is done for consistency with the order in which simulation events are executed, right?

Correct on both counts. The priority keyword argument in the put!/get (lock/unlock) is normally 0, but can be set to whatever number desired within the type permitted for the specific resource of course (usually Int).
A simulation event's priority is determined based on the following three criteria:

Time: events scheduled for an earlier simulation time are executed before events scheduled for a later execution time.
Priority: for two events scheduled for the same simulation time, the event with the higher priority is executed before the event with the lower priority.
ID: for two events scheduled for the same simulation time AND with the same priority, the event with the lower ID (the event that was scheduled earlier in the code) is executed before the event with the higher ID.

Since resource put!/get events don't have a time associated with them, only steps 2 and 3 need to be checked. This is the reason why the first iteration of this PR was the way it was.
Question 3

Both the current version of the PR and the first version of the PR should be considered breaking changes, because people's code out there might already depend on the current "increasing in priority order" convention, right?

Indeed. A very good point, which I had failed to consider.
Question 4

If I am correct about point 1, maybe we should also create a public API for simulation event priorities?

Given that the PR as it is now will introduce potential breaking changes, this might indeed be desirable. In particular, I would suggest the following:

An optional keyword argument for Simulation that affects how simulation event priorities are handled (highest or lowest first). The default setting will be highest first. This will require the definition of a second non-public ordering function, and maybe rename the existing one for clarity instead of (ab)using isless.

An optional keyword argument for all resource objects that does the same, but where the default setting will be lowest priority first to avoid breaking existing code of users.

A public method setpriority! that acts on an event. I believe this should be doable because of the way events are internally stored in the corresponding priority queue, and the event's priority is part of the EventKey which determines the event's place in that priority queue.

More changes might be needed to ensure 100% backwards compatibility, so this list of proposed changes isn't exhaustive.
Uncovered priority issue
Your toy problem revealed an issue that I haven't seen before, and it's a real puzzler.
Also, no need to apologise for not investigating this earlier. If anyone should've noticed, it should've been me since I've been using SimJulia/ConcurrentSim for close to 7 years now, though never with resource put!/get priorities.
Summary
Given the fact that my proposed changes are breaking, I agree to not incorporate this PR in the master branch as it is now. Because of that, it might be wise to roll back the currently failing test that I (unwisely) included in the master branch.
I'll definitely take another look at how resource events are scheduled to really understand what is going on there since it honestly makes no sense whatsoever at first glance.
If desired, I can also look into the changes proposed in my answer to your 4th question.

I've taken an in-depth look at what is happening in the example that you posted.
After initialising the simulation and assigning the processes, but before run(sim), the six processes get scheduled. As such, the event queue (field heap) for sim will contain 6 events:
julia> sim.heap
DataStructures.PriorityQueue{ConcurrentSim.BaseEvent, ConcurrentSim.EventKey, Base.Order.ForwardOrdering} with 6 entries:
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000002, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000001)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000004, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000002)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000006, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000003)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000008, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000004)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x000000000000000a, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000005)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x000000000000000c, Function[#1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000006)

These events correspond to the processes as entered. Checking the resource shows that it has been initialised as it should be.
julia> res.level
0

The first step of the simulation runs Process 1, that is @process lock_and_log_in_global(sim, res, 2, "priority 2") until the @yield lock(res, priority=priority) statement. The key to what is happening lies in what that statement does exactly. It executes the function lock(res, priority=priority) which returns an event, and yields execution of the process until that event is processed by the simulation.
Using ConcurrentSim.step(sim), the simulation can be advanced one step/event (this method probably isn't exported because it has a very different interpretation in Base). After doing so, the event queue looks like
DataStructures.PriorityQueue{ConcurrentSim.BaseEvent, ConcurrentSim.EventKey, Base.Order.ForwardOrdering} with 6 entries:
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000004, Function[#1], scheduled, nothing)     => EventKey(0.0, 0, 0x0000000000000002)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000006, Function[#1], scheduled, nothing)     => EventKey(0.0, 0, 0x0000000000000003)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x0000000000000008, Function[#1], scheduled, nothing)     => EventKey(0.0, 0, 0x0000000000000004)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x000000000000000a, Function[#1], scheduled, nothing)     => EventKey(0.0, 0, 0x0000000000000005)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x000000000000000c, Function[#1], scheduled, nothing)     => EventKey(0.0, 0, 0x0000000000000006)
  BaseEvent(Simulation time: 0.0 active_process: nothing, 0x000000000000000d, Function[#1, #1], scheduled, nothing) => EventKey(0.0, 0, 0x0000000000000007)

which is as expected: the first event has been handled, and the Put event generated by lock has entered the (rear of the) queue. Examining the resource reveals that the resource has already been allocated.
julia> res.level
1

This is expected behaviour due to how put! and get (lock and unlock) work

These functions generate the appropriate event, Put or Get, and enter it into the correct resource queue.
They generate the necessary callbacks for handling get or put requests that are in the respective resource queues. These callbacks are attached to the event generated in step 1.
They check the queue of put or get requests and process all requests that can be met, stopping at the first that cannot be met. If a request can be met, the event generated in step 1 is put in the simulation queue, and the level of the resource is adjusted.
They return the event generated in step 1.

Linking back to the example, the lock request from Process 1 can be served immediately as per step 3 of the lock request, so that is what happens before the process yields execution to the next scheduled event, which is the reason for the observed anomaly.
If there's anything about this that is unclear still, please let me know.

Thank you for the detailed explanation, this now makes a lot of sense! I will not be able to answer the various planning questions until next week, but in the meantime, I vote we keep the test you had added and just change it to @test_broken -- it is a valid test, so we can just as well mark it as a known broken test.

Alright. Will you make the change, or shall I?

I've made the first two changes that I suggested a few posts back. A detailed overview of what's changed:

Added two new ordering schemes HighPrioFirst and LowPrioFirst as subtypes of Base.Ordering with shortcuts HighPrio and LowPrio for instances of these schemes, and a function pickorder that takes a Bool argument and returns HighPrio/LowPrio on true/false. It is probably useful to export these. Thoughts?
Added a keyword argument highpriofirst (default true) to the constructor of Simulation.
Added a keyword argument highpriofirst (default false) to the constructors of Container and Store, and their derived methods (I forgot about the derived methods the first time 'round).
Added Base.lt methods for EventKey and ResourceKey for both ordering schemes. The isless implementation for ResourceKey is left in for posterity in case users want to define a custom resource without using the ordering schemes above.

Thanks! I will plan to provide a review early next week.

Apologies, this fell off my radar.
This looks very near good to merge, but I have a few questions. Before merging though, could you share your thoughts on the following:
Resource priorities have had a public API for a while and it is highpriorityfirst=false. This is adding the possibility for Resources highpriorityfirst=true and it adds a couple of tests.
However, Simulation did not have a public API for priority ordering. This is making such an API public and it is defaulting to highpriorityfirst=true as a default. There is a possibility for highpriority=false now, but there are no tests for that.
Given the lack of testing, I would suggest one of the following changes:

keep Simulation with highpriorityfirst=true but throw an error("Simulations do not support the requested event priority order yet.")
just remove that flag from the Simulation constructor altogether (I prefer that option as it gives us more flexibility in the future)

My reasoning is that I am scared of supporting functionality that does not have extremely thorough tests, especially one so basic (I would not be surprised if the ordering is used implicitly somewhere deep inside the internals of the library, leading to breackage).
I think it makes sense to export the priority orderings you have defined.

Hi, Johan! I will convert this back to draft, just to make it easier for me to track what I need to be reviewing among the handful of repos I work on. Please do not hesitate to convert it back to non-draft.


trigger_once is breaking certain campaign maps

the trigger_once entity is causing some maps trigger_teleport to not function, i used Icarus Project 1&2's starting teleporter as an example. deleting trigger_once.lua in the entities folder makes them work again

I will have a look. Also are you using the workshop version or the code from GitHub?

I found the root cause but I'm not even sure why that's a thing.

this should be

I will push a work-around for this, there is absolutely nothing in the Source SDK that deals with those 🤷♂

This should be fixed, let me know if you run into any other issues.


module system Javascripts

creation of the module system in javascripts

Summary:
I have fixed all the previous requirements of the reviewer and I have also fixed the readme file


added empty state when packages are still being added to image

Description
Changed default state on packages tab for image sets when the image is still being built.
Fixes # (issue)
https://issues.redhat.com/browse/THEEDGE-1451
Type of change
What is it?

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] I run npm run lint:js:fix to check that my code is properly formatted

Codecov Report

Merging #285 (ab59544) into master (820f93d) will decrease coverage by 0.04%.
The diff coverage is 0.00%.

:exclamation: Current head ab59544 differs from pull request most recent head 5b0c0e2. Consider uploading reports for the commit 5b0c0e2 to get more accurate results

@@            Coverage Diff             @@
##           master     #285      +/-   ##
==========================================
- Coverage   31.30%   31.26%   -0.05%
==========================================
  Files         102      102
  Lines        2092     2095       +3
  Branches      601      605       +4
==========================================
  Hits          655      655
- Misses       1317     1319       +2
- Partials      120      121       +1

Impacted Files
Coverage Δ

src/Routes/ImageManagerDetail/ImagePackagesTab.js
0.00% <0.00%> (ø)

src/components/Empty.js
30.00% <0.00%> (-3.34%)
:arrow_down:

src/components/ImageInformationCard.js
0.00% <0.00%> (ø)

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 820f93d...5b0c0e2. Read the comment docs.


Fixed wrongly passing 'abi' to 'useWriteContract'

Fixed wrongly passing of parameter 'abi' to 'useWriteContract' hook.

This problem is across all the examples, and the checks might be failing due to wagmi v1 being used for tests or any tests' specific issue. But for my case it wasnt working.
@tmm Kindly review. this

There's nothing wrong here. abi is a shorthand property.


support build the drone executable in docker

I found that when the programmer needs to build drone from the source code, he or she has to install the sassc, and some golang packages. If the drone allows the programmer to build the drone binary in a docker container, that's really cool.
FYI, dapper is an awesome tool to do this. Or we could write a extra Dockerfile and some bash codes, it also works well.

you can build drone with drone, using drone exec .


SDK swagger changes for SymsSync service

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.
The following changes are to onboard API's for a new service SymsSync. This service allows synapse customers to transform their metadata from CDM to symsformat.
Link to the ADO work Item : https://msdata.visualstudio.com/A365/_workitems/edit/1254675

We need to add a new section for Syms. You can reference access control as example.

Refers to: specification/synapse/data-plane/readme.md:91 in 1c7538c. [](commit_id = 1c7538cc8a56b33dae996e9566c8a7f0844b4e33, deletion_comment = False)

/azp run


docs: add polyfill.md

The Event() constuctor is used in the project. To make this work in Internet Explorer, a polyfill is required.
The new document describes the polyfilling process.
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/scullyio/scully/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[X] Docs

What is the current behavior?

Issue Number: N/A
Scully is currently not working in Internet Explorer.
What is the new behavior?
The new doc describes the necessary polyfilling process.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
Reference to usage of new Event(): https://github.com/scullyio/scully/blob/27b79ddb454539c43ca1fa7048aa97c40f8ddee8/projects/scullyio/ng-lib/src/lib/idleMonitor/idle-monitor.service.ts#L25-L27

@evolkmann You are aware that those events are only used inside our puppeteer rendering process, and that that is inheritly not Ie?

Hi @SanderElias, I was not aware of that, but still it caused our app to crash. With the polyfill enabled, the error did not occur again. Here is a screenshot of the error report:

Thanks for the info.
I will log an issue for this because those should not fire in normal
operation. For now, the polyfill will fix your issue.
Op za 11 jan. 2020 om 14:12 schreef Enzo Volkmann<EMAIL_ADDRESS>
:

Hi @SanderElias https://github.com/SanderElias, I was not aware of
that, but still it caused our app to crash. With the polyfill enabled, the
error did not occur again. Here is a screenshot of the error report:
[image: Bildschirmfoto 2020-01-11 um 14 09 43]
https://user-images.githubusercontent.com/24471188/72204807-42d3fe80-347c-11ea-9c85-faf14384fe21.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scullyio/scully/pull/179?email_source=notifications&email_token=AAJQ6OZJ5YETPT7LLXWXQBTQ5HASDA5CNFSM4KFRZU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIWBVXA#issuecomment-573315804,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJQ6O56MGPNZZQCGKFVZU3Q5HASDANCNFSM4KFRZU2Q
.

Hi @SanderElias, thanks for merging. Just curious, is it planned to remove the firing of those events in the browser at some point? Or is it indeed right that this code is executed in the browser?

Yes, I made a note to take care of this, but it can take a while before I get around to that. That's why I merged your docs PR, so anyone running into this can fund out the cause in the docs.

Alright, thanks for clarifying!


Fix #117 enable Android's panning when the ime opens

This enables the default panning behavior in Android when the ime is
opened over the text being edited. It's a bit jarring if the text is
near the bottom of the screen so we should look at refining it, but
this is still an improvement over covering the text.

This change is

+@anmatanm +@rachel-fenichel

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Wow.  That was all it was?

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

1 HOUR AGO
 because the check is broken.

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


feat: create pagination structure

Created basic pagination structure, fixes errors

@dziekonskik great! let's rebase to rewrite the history so that we eliminate the merge commits


Using Preferred Support Class Not Working

It's probably because I took the picture wrong but I did a couple attempts and I got nothing, I would put it in preferred mode and tell it to look for the PNG file I named Bond.
I made sure to resize it using the tool given.
But after waiting a minute in support mode nothing happened.
I also thought it should be updating the support screen if it couldn't find it but nothing happened?
I changed it to
Support_SelectionMode = "preferred"
Support_PreferredImage = "Bond.png"
Support_SwapsPerRefresh = 10
Support_MaxRefreshes = 3
Support_FallbackTo = "first"
But nothing ever happened?
Any ideas?
For now I'll swap back to using first.

Hi, would you mind submitting a screenshot of your support screen?
Also, don't resize the image. It will make it harder for the scanner to find it.

@potchy
Currently the compare dimension is 1280720 (720p, suggested by Ankulua Author), script dimension is 25601440 (2K 16:9, I developed that originally on 2K screen phone).
If the picture was directly cropped from a 2560*1440 screenshot, will it be detected correctly by the script? Just curious, because I resize it to 1/2 (1440/2 = 720) personally to fit the compare dimension every time...
If so, I might need to edit readme.md, since I got it wrong completely.

No, you're right, my bad.
However, if you do resize images for the script, it might be best to do so without interpolation, though.

I think the scaling should be fine as long as the ratio is 16:9

Sorry for the delay in replying I ended up fairly busy.
It might be because I'm using Nox, what I ended up doing is using the snipping tool to snap the portion I wanted and then resizing it.
But no the script didn't run at all, maybe it's because I started it in the friend menu rather than let it open it?

It's currently on my Phone as the Nero event is hard enough I can't rely on autoing while having 6 petals, but I'll put it back on Nox and start using the script after the event's over.

I'll see about retrying to see if the problem is still there, if it is I'll take a screenshot and censor the names as I'm not sure how I'd do a video while censoring it.

You're supposed to start the script in the quest listing or during battle.

I updated the script and Nox, I then tried it from the menu with a new Support Picture.
The new support Picture friendship works but the old Bond one still doesn't work.
It might be because I resized it and it doesn't fit my screen anymore or some other reason.
Glad that I got it working now though.
It took a couple of attempts but I also got Bond working.
I can also swap between them by creating an Additional Folder named Changing Support, and a sub folder for each one I want.
Then I can just copy paste that notepad to the Anka Lua.
I need that addtional step as it can't be edited and saved without Root, and Fate Grand Order can't run without root so this way I don't have to do turn Nox on and off twice just to change it.

To clarify by a couple of attempts I took multiple pictures before I managed to get the correct one.

Glad you got it working!


Restoring Divider

Aim

To create a Python script that will do the restoring division

Details

A Command Line Interface that will do the step by step restoring division when the dividend and divisor is provided by user in Decimal.

I want to work on this issue. Kindly assign it to me.


0.10.0-alpha.1: Rustls support

Rustls support is missing in reqwest 0.10.0-alpha.1. Can you please add it back? Bundling OpenSSL is kind of unnecessary in some scenarios.

related to #701

Re-added in #747.


How can I get a camera pose for the input image?

Thanks for the nice work!
I want to get the camera pose for the input image. After I read some of the code, I noticed that you utilized the following code in provider.py to render image exactly at the input camera pose (here):
        if not self.training:
            if is_face or can_pose:
                mvp = projection @ torch.inverse(poses.cpu()).to(self.device)
            else:
                mvp = torch.inverse(poses.cpu()).to(self.device)
                mvp[0, 2, 3] = 0.
                TO_WORLD = np.eye(
                    4,
                    dtype=np.float32,
                )
                TO_WORLD[2,2] = -1
                TO_WORLD[1,1] = -1
                TO_WORLD = mvp.new_tensor(TO_WORLD)
                mvp = TO_WORLD @ mvp

I wonder why these code lines work, because the resulting mvp matrix does not consider the projection matrix. And I don't understand why we should set  mvp[0, 2, 3] to zero.
Moreover, I'd like to know how could I compute a camera pose pose_gt such that the corresponding mvp matrix could computed by
mvp = projection @ torch.inverse(pose_gt).to(self.device)

Looking forward to your response. Thanks!

Hi, when the camera params are unknown, we use the same perspective camera as ICON, so this part is hard-coded. For evaluation on THuman2.0 and CAPE, we use ground-truth camera matrices. So if you have your own camera parameters, you can also use them in the code.


Port changes of [#12516] to branch-1.8

Cherry-pick of existing commit.
orig-pr: Alluxio/alluxio#12516
orig-commit: Alluxio/alluxio@c2f05d0d314c2f834d964de31d9ecc9d9133ff42
orig-commit-author: Gene Pang<EMAIL_ADDRESS>pr-link: Alluxio/alluxio#12731
change-id: cid-ae24dcc307c559f9676131407e576dffa0ef4beb

alluxio-bot, merge this please

alluxio-bot, merge this please

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/11446/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/11446/


fix(ioredis): restore redisInstance option on PlatformCache settings

:tada: This PR is included in version 7.3.1 :tada:
The release is available on:

v7.3.1
GitHub release

Your semantic-release bot :package::rocket:


this._times.length is undefined in Map.Drag.js

I have just got report from my client that this._times.length is undefined in Map.Drag.js in _onDragEnd on line noInertia = !options.inertia || this._times.length < 2;. I could not reproduce the error so far. The error was triggered on IPad, iOS 9.2.1 in WKWebview. options.inertia is kept at default, i.e. true.
My only explanation to this error is that in rare situations the _onDragEnd is called without _onDragStart which then means that this
if (map.options.inertia) {
    this._positions = [];
    this._times = [];
}

is never called and this._times remains undefined.
What do you think?

Yes, the only case where this should happen is when the inertia option of the map is changed mid-drag, or somehow _onDragStart not firing properly. I would not be surprised if this is a browser bug about the dragstart event not firing.
I wonder if prosthetic-hand could be used to write a reproducible test case. Otherwise it can be hard and tedious to debug.
Maybe we can just work around the problem by setting this._times in addHooks() no matter what. I'm not sure we want to do that.

Maybe we can just work around the problem by setting this._times in addHooks() no matter what. I'm not sure we want to do that.

There should be no side effects of this though, so I would add it.

If @mourner thinks it's safe to add it, then I'll second.
The change seems quite trivial, so I'll let a newbie commit the changes (wink wink nudge nudge, @yourfirstpr @errebenito @Charlotteis !).

[ ] Claim the issue
[ ] Fork the Leaflet repo
[ ] git clone
[ ] Create a feature branch like git checkout -b drag-undefineds
[ ] Edit the code: Initialize this._times (and this._positions for good measure) to an empty array in the addHooks() method of L.Map.Drag
[ ] Check that you didn't break anything by running npm test
[ ] git commit and git push
[ ] Create a pull request

@IvanSanchez I'm at work currently and therefore unable to take a look at this issue, but it seems simple enough, so if nobody else has claimed it by the time I get home, count me in.

@errebenito Let's give @yourfirstpr a bit of time to tweet about it and see if anyone else wants to jump in.

@IvanSanchez Sure. It's gonna be a long day for me at work either way, so there's even the possibility I won't want to look at more source code by the time I finish my shift here ;)

I see @LucasMouraDeOliveira has opened #4324, but I don't think it's quite right.


onnx2trt parse onnx failed

Hi,
While converting onnx to tensorrt using onnx2tensorrt, I faced the below error. Any help?
RuntimeError: parse onnx failed:
In node -1 (convertAxis): UNSUPPORTED_NODE: Assertion failed: axis >= 0 && axis < nbDims

Some additional information.
I was able to capture the node details of the onnx model. And I traversed the last few Verbose outputs from TensorRT.
[TensorRT] VERBOSE: ModelImporter.cpp:103: Parsing node: Unsqueeze_278 [Unsqueeze]
[TensorRT] VERBOSE: ModelImporter.cpp:119: Searching for input: 672
[TensorRT] VERBOSE: ModelImporter.cpp:125: Unsqueeze_278 [Unsqueeze] inputs: [672 -> ()],
Traceback (most recent call last):
File "test_tensorrt.py", line 149, in
verbose=True)
File "test_tensorrt.py", line 42, in onnx2tensorrt
max_workspace_size=max_workspace_size)
File "/anaconda/envs/py37_default/lib/python3.7/site-packages/mmcv/tensorrt/tensorrt_utils.py", line 148, in onnx2trt
raise RuntimeError(f'parse onnx failed:\n{error_msgs}')
RuntimeError: parse onnx failed:
In node -1 (convertAxis): UNSUPPORTED_NODE: Assertion failed: axis >= 0 && axis < nbDims
I looked for Unsqueeze in the node details. I observed that this was the first node which had axis -1. The rest of them had axis 0. Now I have no clue how to map this back to the model
name: "Unsqueeze_278"
op_type: "Unsqueeze"
attribute {
name: "axes"
ints: -1
type: INTS
}
Any help?

@suchig Hi, could you provide more detailed info such as model type, version of TensorRT, PyTorch?

@suchig Hi, could you provide more detailed info such as model type, version of TensorRT, PyTorch?

Sure
Model - Faster RCNN
TensorRT (I tried <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>)
Pytorch - I tried 1.6 and 1.7
With TensorRT 7.2.x  I get Assertion Failed: axis >= 0 && axis < nbDims error
With TensorRT 8.x, I get Assertion failed: (inputs.at(1).is_weights()) && "This version of TensorRT only supports input K as an initializer."

@suchig Then, there should be no assertation error of TopK in TensorRT.

Hi, @suchig @RunningLeon,
I meet same issue here. Which is In node -1 (convertAxis): UNSUPPORTED_NODE: Assertion failed: axis >= 0 && axis < nbDims.
To be more specific:

pytorch: 1.8.1
mmcv: self-built pulled from master
onnx: 1.9.0
TensorRT: <IP_ADDRESS>/<IP_ADDRESS>
model: yolov3_d53_mstrain-608_273e_coco
command to reproduce:

python tools/deployment/pytorch2onnx.py     configs/yolo/yolov3_d53_mstrain-608_273e_coco.py     checkpoints/yolo/yolov3_d53_mstrain-608_273e_coco.pth     --output-file checkpoints/yolo/yolov3_d53_mstrain-608_273e_coco.onnx     --input-img demo/demo.jpg     --test-img tests/data/color.jpg     --shape 608 608     --mean 0 0 0     --std 255 255 255     --show     --verify       --cfg-options       model.test_cfg.nms_pre=200        model.test_cfg.max_per_img=200        model.test_cfg.deploy_nms_pre=300

python tools/deployment/onnx2tensorrt.py    checkpoints/yolo/yolov3_d53_mstrain-608_273e_coco.onnx     --trt-file  checkpoints/yolo/yolov3_d53_mstrain-608_273e_coco.trt    --input-img demo/demo.jpg     --shape 608 608     --mean 0 0 0     --std 255 255 255     --show     --verify

@foreverYoungGitHub Hi, could you try with pytorch==1.6.0 and onnx==1.7.0? Currently, we did not test this feature with pytorch==1.8.1.
For more info, you could refer to the docs :

https://github.com/open-mmlab/mmdetection/blob/master/docs/tutorials/pytorch2onnx.md
https://github.com/open-mmlab/mmdetection/blob/master/docs/tutorials/onnx2tensorrt.md
https://mmcv.readthedocs.io/en/latest/tensorrt_plugin.html#how-to-build-tensorrt-plugins-in-mmcv

Closed due to age. Feel free to reopen if you still have the issue.

Is cuda11 supported?

@RunningLeon

@smile-care We did not test with cuda11. You could try with it.

I have the same error, and the problem is due to Pytorch version.

Using either pytorch 1.6 or pytorch 1.9 can convert pytorch model to onnx. Let say model_pt16.onnx and model_pt19.onnx , respectively.
Only model_pt16.onnx can be converted to TensorRT successfully.
The model_pt19.onnx will enconter error:

UNSUPPORTED_NODE: Assertion failed: axis >= 0 && axis < nbDims

@chuong98 Yes, we only tested with PyTorch==1.6.0.

I met the same error with PyTorch==1.7.0. Any solution to it ?
Traceback (most recent call last):   File "tools/deployment/onnx2tensorrt.py", line 254, in <module>     verbose=args.verbose)   File "tools/deployment/onnx2tensorrt.py", line 45, in onnx2tensorrt     max_workspace_size=max_workspace_size)   File "/workspace/mmcv/mmcv/tensorrt/tensorrt_utils.py", line 63, in onnx2trt     raise RuntimeError(f'parse onnx failed:\n{error_msgs}') RuntimeError: parse onnx failed: In node -1 (convertAxis): UNSUPPORTED_NODE: Assertion failed: axis >= 0 && axis < nbDims

@chuong98 Thank you! I tried successfully with CUDA 10.2, Torch 1.6,cuDNN 8.0.1,TensorRT <IP_ADDRESS>.


Deploy lyyche storing image to the cluster

https://github.com/auricom/home-ops/blob/main/kubernetes/apps/default/lychee/app/helmrelease.yaml

Definitely one of my todo list. This is currently blocked since ios still doesn't fully integrates this project how ever in near future I could deploy this.
iCloud is becoming may be expensive in the future.

Maybe better option is immich? For now closing


Mqtt Client iOS Sample

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Is there any update on this PR getting merged?


Add documentation for using upx

Adding documentation for using upx to further cut binary size.  Here are the result for using on this project
stusmall@thinkpad-t520:~/Workspace/min-sized-rust$ cargo build --release; ls -sh target/release/min-sized-rust
    Finished release [optimized] target(s) in 0.01s
1.3M target/release/min-sized-rust
stusmall@thinkpad-t520:~/Workspace/min-sized-rust$ cargo build --release; upx --best --lzma target/release/min-sized-rust; ls -sh target/release/min-sized-rust
    Finished release [optimized] target(s) in 0.01s
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2018
UPX 3.95        Markus Oberhumer, Laszlo Molnar & John Reiser   Aug 26th 2018

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1302856 ->    303456   23.29%   linux/amd64   min-sized-rust

Packed 1 file.
300K target/release/min-sized-rust

I'm getting considerably better compression with larger projects

Thank you for the contribution @stusmall! While not Rust-specific, upx is still definitely worth mentioning.


fix(plugins/plugin-client-default): compilation error

Fixes #7546
When I merged PRs into master, git seemed to mess up rebasing https://github.com/kubernetes-sigs/kui/commit/0b95d9cdd216424206f57347e5de1d0821e21e53, due to duplicate variable names.
I first merged the S3 plugin PR, which removed the import of isPopup from plugin-client-default/index.tsx. https://github.com/kubernetes-sigs/kui/commit/177457f3156bf1e36d1fc671b96982ee6e89aa7f#diff-8d9874cfcd3046ea3d4915be2efb64cb7121331a6352b74ceb0e1db3824088c8L19
Then I merged the "enable split in Popup mode" PR, which uses isPopup() to put spacefiller. https://github.com/kubernetes-sigs/kui/commit/177457f3156bf1e36d1fc671b96982ee6e89aa7f#diff-8d9874cfcd3046ea3d4915be2efb64cb7121331a6352b74ceb0e1db3824088c8L19
I should get merge conflict when merging the second PR, but GitHub doesn't show Merge Conflict probably because index.tsx has another variable called isPopup?
Anyways, this PR fixed the compilation issue.

Description of what you did:

My PR is a:

[ ] 💥 Breaking change
[x] 🐛 Bug fix
[ ] 💅 Enhancement
[ ] 🚀 New feature

Please confirm that your PR fulfills these requirements

[x] Multiple commits are squashed into one commit.
[x] The commit message follows Conventional Commits, which allows us to autogenerate release notes; e.g. fix(plugins/plugin-k8s): fixed annoying bugs
[x] All npm dependencies are pinned.

/lgtm


Added average baseline and average baseline rms values to pulse_counts

For a quickly monitoring the overall PMT rates pulse_counts is already quite handy and fast to load. However if one wants to check the stability of the baseline one has to go back all the way down to records where data loading becomes slow. To overcome this problem I added an additional baseline_mean field as well as an baseline_rms_mean field which stores the average baseline and baseline rms value per PMT.

Hi Daniel, maybe we should also up the version to make the lineage change explicit.

You're right Joran, though since Shingo just merged another PR updating the PulseProcessing version is should be fine if we merge now.


warning log constantly occurs in calico-node pod and kernel

I've installed calico(vxlan mode) with the same manifest on dozens of kubernetes clusters, but this is the first time this has happened.
All calico pods are running, and overlay network communication is working fine.
but, warning log constantly occurs in all calico-node pods
2022-01-18 09:57:23.011 [WARNING][51] felix/route_table.go 968: Failed to delete neighbor FDB entry {LinkIndex:4 Family:7 State:128 Type:0 Flags:2 IP:<IP_ADDRESS> HardwareAddr: LLIPAddr:<nil> Vlan:0 VNI:0 MasterIndex:0} error=invalid argument ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4
2022-01-18 09:57:23.011 [INFO][51] felix/route_table.go 982: Removed old neighbor ARP entry ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4 neighbor=netlink.Neigh{LinkIndex:4, Family:2, State:32, Type:5, Flags:0, IP:net.IP{0xe0, 0x0, 0x0, 0xfb}, HardwareAddr:net.HardwareAddr(nil), LLIPAddr:net.IP(nil), Vlan:0, VNI:0, MasterIndex:0}
2022-01-18 09:57:23.011 [WARNING][51] felix/route_table.go 968: Failed to delete neighbor FDB entry {LinkIndex:4 Family:7 State:128 Type:0 Flags:2 IP:<IP_ADDRESS> HardwareAddr: LLIPAddr:<nil> Vlan:0 VNI:0 MasterIndex:0} error=invalid argument ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4
2022-01-18 09:57:23.011 [INFO][51] felix/route_table.go 982: Removed old neighbor ARP entry ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4 neighbor=netlink.Neigh{LinkIndex:4, Family:2, State:32, Type:5, Flags:0, IP:net.IP{0xe0, 0x0, 0x0, 0x16}, HardwareAddr:net.HardwareAddr(nil), LLIPAddr:net.IP(nil), Vlan:0, VNI:0, MasterIndex:0}
2022-01-18 09:57:23.011 [INFO][51] felix/route_table.go 417: Trying to connect to netlink
2022-01-18 09:57:23.011 [WARNING][51] felix/route_table.go 1118: Failed to access interface but it appears to be up error=netlink update operation failed ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4 link=&netlink.Vxlan{LinkAttrs:netlink.LinkAttrs{Index:4, MTU:1450, TxQLen:0, Name:"vxlan.calico", HardwareAddr:net.HardwareAddr{0x66, 0x76, 0x38, 0x5d, 0x31, 0xcd}, Flags:0x13, RawFlags:0x11043, ParentIndex:0, MasterIndex:0, Namespace:interface {}(nil), Alias:"", Statistics:(*netlink.LinkStatistics)(0xc000d39680), Promisc:0, Xdp:(*netlink.LinkXdp)(nil), EncapType:"ether", Protinfo:(*netlink.Protinfo)(nil), OperState:0x0, NetNsID:0, NumTxQueues:1, NumRxQueues:1, GSOMaxSize:0x10000, GSOMaxSegs:0xffff, Vfs:[]netlink.VfInfo(nil), Group:0x0, Slave:netlink.LinkSlave(nil)}, VxlanId:4096, VtepDevIndex:2, SrcAddr:net.IP{0xb6, 0xc5, 0x38, 0x34}, Group:net.IP(nil), TTL:0, TOS:0, Learning:false, Proxy:false, RSC:false, L2miss:false, L3miss:false, UDPCSum:false, UDP6ZeroCSumTx:false, UDP6ZeroCSumRx:false, NoAge:false, GBP:false, FlowBased:false, Age:300, Limit:0, Port:4789, PortLow:0, PortHigh:0}
2022-01-18 09:57:23.012 [WARNING][51] felix/route_table.go 968: Failed to delete neighbor FDB entry {LinkIndex:4 Family:7 State:128 Type:0 Flags:2 IP:<IP_ADDRESS> HardwareAddr: LLIPAddr:<nil> Vlan:0 VNI:0 MasterIndex:0} error=invalid argument ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4
2022-01-18 09:57:23.012 [INFO][51] felix/route_table.go 982: Removed old neighbor ARP entry ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4 neighbor=netlink.Neigh{LinkIndex:4, Family:2, State:32, Type:5, Flags:0, IP:net.IP{0xe0, 0x0, 0x0, 0xfb}, HardwareAddr:net.HardwareAddr(nil), LLIPAddr:net.IP(nil), Vlan:0, VNI:0, MasterIndex:0}
2022-01-18 09:57:23.012 [WARNING][51] felix/route_table.go 968: Failed to delete neighbor FDB entry {LinkIndex:4 Family:7 State:128 Type:0 Flags:2 IP:<IP_ADDRESS> HardwareAddr: LLIPAddr:<nil> Vlan:0 VNI:0 MasterIndex:0} error=invalid argument ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4
2022-01-18 09:57:23.012 [INFO][51] felix/route_table.go 982: Removed old neighbor ARP entry ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4 neighbor=netlink.Neigh{LinkIndex:4, Family:2, State:32, Type:5, Flags:0, IP:net.IP{0xe0, 0x0, 0x0, 0x16}, HardwareAddr:net.HardwareAddr(nil), LLIPAddr:net.IP(nil), Vlan:0, VNI:0, MasterIndex:0}
2022-01-18 09:57:23.012 [INFO][51] felix/route_table.go 417: Trying to connect to netlink

Also, the below log occurs continuously in the kernel.
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address
2022-01-18 09:57:23 worker01 kernel: PF_BRIDGE: RTM_DELNEIGH with invalid address

The peculiar thing I found is that the IP seen as multicast is FAILED.
worker01:/root#ip neighbor show
<IP_ADDRESS> dev vxlan.calico lladdr 66:67:bd:3f:3c:e5 PERMANENT
<IP_ADDRESS> dev ens192 lladdr 02:50:56:56:44:52 REACHABLE
<IP_ADDRESS> dev ens192 lladdr 00:50:56:8b:07:76 STALE
<IP_ADDRESS> dev caliec31aa2914e lladdr 62:20:35:fd:c1:b4 REACHABLE
<IP_ADDRESS> dev vxlan.calico  FAILED
<IP_ADDRESS> dev ens192 lladdr 02:50:56:56:44:52 REACHABLE
<IP_ADDRESS> dev vxlan.calico lladdr 66:76:38:5d:31:cd PERMANENT
<IP_ADDRESS> dev vxlan.calico lladdr 66:b6:99:56:ef:dc PERMANENT
<IP_ADDRESS> dev ens192 lladdr 00:50:56:8b:9d:7b REACHABLE
<IP_ADDRESS> dev ens192 lladdr 00:50:56:8b:a4:f1 REACHABLE
<IP_ADDRESS> dev vxlan.calico  FAILED
<IP_ADDRESS> dev ens192 lladdr 00:50:56:8b:10:23 STALE
<IP_ADDRESS> dev vxlan.calico lladdr 66:62:8c:74:d3:02 PERMANENT
<IP_ADDRESS> dev vxlan.calico lladdr 66:a6:2d:f1:7d:ca PERMANENT
<IP_ADDRESS> dev vxlan.calico lladdr 66:b5:1e:0f:86:c3 PERMANENT
worker01:/root#arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
<IP_ADDRESS>            ether   66:67:bd:3f:3c:e5   CM                    vxlan.calico
<IP_ADDRESS>               ether   02:50:56:56:44:52   C                     ens192
<IP_ADDRESS>               ether   00:50:56:8b:07:76   C                     ens192
<IP_ADDRESS>             ether   62:20:35:fd:c1:b4   C                     caliec31aa2914e
<IP_ADDRESS>                       (incomplete)                              vxlan.calico
<IP_ADDRESS>                ether   02:50:56:56:44:52   C                     ens192
<IP_ADDRESS>             ether   66:76:38:5d:31:cd   CM                    vxlan.calico
<IP_ADDRESS>           ether   66:b6:99:56:ef:dc   CM                    vxlan.calico
<IP_ADDRESS>               ether   00:50:56:8b:9d:7b   C                     ens192
<IP_ADDRESS>               ether   00:50:56:8b:a4:f1   C                     ens192
<IP_ADDRESS>                      (incomplete)                              vxlan.calico
<IP_ADDRESS>               ether   00:50:56:8b:10:23   C                     ens192
<IP_ADDRESS>           ether   66:62:8c:74:d3:02   CM                    vxlan.calico
<IP_ADDRESS>           ether   66:a6:2d:f1:7d:ca   CM                    vxlan.calico
<IP_ADDRESS>           ether   66:b5:1e:0f:86:c3   CM                    vxlan.calico

calico config and daemonset.
---
# Source: calico/templates/calico-config.yaml
# This ConfigMap is used to configure a self-hosted Calico installation.
kind: ConfigMap
apiVersion: v1
metadata:
  name: calico-config
  namespace: kube-system
data:
  # Typha is disabled.
  typha_service_name: "none"
  # Configure the backend to use.
  calico_backend: "vxlan"

  # Configure the MTU to use for workload interfaces and tunnels.
  # By default, MTU is auto-detected, and explicitly setting this field should not be required.
  # You can override auto-detection by providing a non-zero value.
  veth_mtu: "0"

  # The CNI network configuration to install on each node. The special
  # values in this config will be automatically populated.
  cni_network_config: |-
    {
      "name": "k8s-pod-network",
      "cniVersion": "0.3.1",
      "plugins": [
        {
          "type": "calico",
          "log_level": "info",
          "log_file_path": "/var/log/calico/cni/cni.log",
          "mtu": __CNI_MTU__,
          "ipam": {
              "type": "calico-ipam"
          },
          "policy": {
              "type": "k8s"
          },
          "kubernetes": {
              "kubeconfig": "__KUBECONFIG_FILEPATH__"
          }
        },
        {
          "type": "portmap",
          "snat": true,
          "capabilities": {"portMappings": true}
        },
        {
          "type": "bandwidth",
          "capabilities": {"bandwidth": true}
        }
      ]
    }
---
# Source: calico/templates/calico-node.yaml
# This manifest installs the calico-node container, as well
# as the CNI plugins and network config on
# each master and worker node in a Kubernetes cluster.
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: calico-node
  namespace: kube-system
  labels:
    k8s-app: calico-node
spec:
  selector:
    matchLabels:
      k8s-app: calico-node
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        k8s-app: calico-node
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      hostNetwork: true
      tolerations:
        # Make sure calico-node gets scheduled on all nodes.
        - effect: NoSchedule
          operator: Exists
        # Mark the pod as a critical add-on for rescheduling.
        - key: CriticalAddonsOnly
          operator: Exists
        - effect: NoExecute
          operator: Exists
      serviceAccountName: calico-node
      # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
      # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
      terminationGracePeriodSeconds: 0
      priorityClassName: system-node-critical
      initContainers:
        # This container performs upgrade from host-local IPAM to calico-ipam.
        # It can be deleted if this is a fresh installation, or if you have already
        # upgraded to use calico-ipam.
        - name: upgrade-ipam
          image: docker.io/calico/cni:v3.19.3
          command: ["/opt/cni/bin/calico-ipam", "-upgrade"]
          envFrom:
          - configMapRef:
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
              name: kubernetes-services-endpoint
              optional: true
          env:
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
          volumeMounts:
            - mountPath: /var/lib/cni/networks
              name: host-local-net-dir
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
          securityContext:
            privileged: true
        # This container installs the CNI binaries
        # and CNI network config file on each node.
        - name: install-cni
          image: docker.io/calico/cni:v3.19.3
          command: ["/opt/cni/bin/install"]
          envFrom:
          - configMapRef:
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
              name: kubernetes-services-endpoint
              optional: true
          env:
            # Name of the CNI config file to create.
            - name: CNI_CONF_NAME
              value: "10-calico.conflist"
            # The CNI network config to install on each node.
            - name: CNI_NETWORK_CONFIG
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: cni_network_config
            # Set the hostname based on the k8s node name.
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # CNI MTU Config variable
            - name: CNI_MTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # Prevents the container from sleeping forever.
            - name: SLEEP
              value: "false"
          volumeMounts:
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
            - mountPath: /host/etc/cni/net.d
              name: cni-net-dir
          securityContext:
            privileged: true
        # Adds a Flex Volume Driver that creates a per-pod Unix Domain Socket to allow Dikastes
        # to communicate with Felix over the Policy Sync API.
        - name: flexvol-driver
          image: docker.io/calico/pod2daemon-flexvol:v3.19.3
          volumeMounts:
          - name: flexvol-driver-host
            mountPath: /host/driver
          securityContext:
            privileged: true
      containers:
        # Runs calico-node container on each Kubernetes node. This
        # container programs network policy and routes on each
        # host.
        - name: calico-node
          image: docker.io/calico/node:v3.19.3
          envFrom:
          - configMapRef:
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
              name: kubernetes-services-endpoint
              optional: true
          env:
            # Use Kubernetes API as the backing datastore.
            - name: DATASTORE_TYPE
              value: "kubernetes"
            # Wait for the datastore.
            - name: WAIT_FOR_DATASTORE
              value: "true"
            # Set based on the k8s node name.
            - name: NODENAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # Choose the backend to use.
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
            # Cluster type to identify the deployment type
            - name: CLUSTER_TYPE
              value: "k8s,bgp"
            # Auto-detect the BGP IP address.
            - name: IP
              value: "autodetect"
            - name: IP_AUTODETECTION_METHOD
              value: "cidr=<IP_ADDRESS>/24"
            # Enable IPIP
            #- name: CALICO_IPV4POOL_IPIP
            #  value: "Never"
            # Enable or Disable VXLAN on the default IP pool.
            - name: CALICO_IPV4POOL_VXLAN
              value: "Always"
            # Set MTU for tunnel device used if ipip is enabled
            - name: FELIX_IPINIPMTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # Set MTU for the VXLAN tunnel device.
            - name: FELIX_VXLANMTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # Set MTU for the Wireguard tunnel device.
            - name: FELIX_WIREGUARDMTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # The default IPv4 pool to create on startup if none exists. Pod IPs will be
            # chosen from this range. Changing this value after installation will have
            # no effect. This should fall within `--cluster-cidr`.
            - name: CALICO_IPV4POOL_CIDR
              value: "<IP_ADDRESS>/16"
            # Disable file logging so `kubectl logs` works.
            - name: CALICO_DISABLE_FILE_LOGGING
              value: "true"
            # Set Felix endpoint to host default action to ACCEPT.
            - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
              value: "ACCEPT"
            # Disable IPv6 on Kubernetes.
            - name: FELIX_IPV6SUPPORT
              value: "false"
            # Set Felix logging to "info"
            - name: FELIX_LOGSEVERITYSCREEN
              value: "info"
            - name: FELIX_HEALTHENABLED
              value: "true"
            - name: FELIX_FEATUREDETECTOVERRIDE
              value: "ChecksumOffloadBroken=true"
          securityContext:
            privileged: true
          resources:
            requests:
              cpu: 250m
          livenessProbe:
            exec:
              command:
              - /bin/calico-node
              - -felix-live
              #- -bird-live
            periodSeconds: 10
            initialDelaySeconds: 10
            failureThreshold: 6
          readinessProbe:
            exec:
              command:
              - /bin/calico-node
              - -felix-ready
              #- -bird-ready
            periodSeconds: 10
          volumeMounts:
            - mountPath: /lib/modules
              name: lib-modules
              readOnly: true
            - mountPath: /run/xtables.lock
              name: xtables-lock
              readOnly: false
            - mountPath: /var/run/calico
              name: var-run-calico
              readOnly: false
            - mountPath: /var/lib/calico
              name: var-lib-calico
              readOnly: false
            - name: policysync
              mountPath: /var/run/nodeagent
            # For eBPF mode, we need to be able to mount the BPF filesystem at /sys/fs/bpf so we mount in the
            # parent directory.
            - name: sysfs
              mountPath: /sys/fs/
              # Bidirectional means that, if we mount the BPF filesystem at /sys/fs/bpf it will propagate to the host.
              # If the host is known to mount that filesystem already then Bidirectional can be omitted.
              mountPropagation: Bidirectional
            - name: cni-log-dir
              mountPath: /var/log/calico/cni
              readOnly: true
      volumes:
        # Used by calico-node.
        - name: lib-modules
          hostPath:
            path: /lib/modules
        - name: var-run-calico
          hostPath:
            path: /var/run/calico
        - name: var-lib-calico
          hostPath:
            path: /var/lib/calico
        - name: xtables-lock
          hostPath:
            path: /run/xtables.lock
            type: FileOrCreate
        - name: sysfs
          hostPath:
            path: /sys/fs/
            type: DirectoryOrCreate
        # Used to install CNI.
        - name: cni-bin-dir
          hostPath:
            path: /opt/cni/bin
        - name: cni-net-dir
          hostPath:
            path: /etc/cni/net.d
        # Used to access CNI logs.
        - name: cni-log-dir
          hostPath:
            path: /var/log/calico/cni
        # Mount in the directory for host-local IPAM allocations. This is
        # used when upgrading from host-local to calico-ipam, and can be removed
        # if not using the upgrade-ipam init container.
        - name: host-local-net-dir
          hostPath:
            path: /var/lib/cni/networks
        # Used to create per-pod Unix Domain Sockets
        - name: policysync
          hostPath:
            type: DirectoryOrCreate
            path: /var/run/nodeagent
        # Used to install Flex Volume Driver
        - name: flexvol-driver-host
          hostPath:
            type: DirectoryOrCreate
            path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
---

Your Environment

Calico version: v3.19.3
Orchestrator version (e.g. kubernetes, mesos, rkt): kubernetes v1.21.2
Operating System and version: RHEL 7.4, kernel: 3.10.0-693.el7 (Although lower, other clusters are also using the same version)
Link to your project (optional):

Do you know where that address is coming from? (<IP_ADDRESS>)?
Do you have pods within the multicast IP range? Normally we'd only program routes to the VXLAN device which are for pod subnets, so surprised to see that there at all.

@moonek any update on this one?

Couldn't solve it. Still 30-40 lines of logs are being generated in the kernel per second.
Nowhere is IP in the 224 band being used.
$ kubectl get po -A -owide | grep 224
$

Nowhere is IP in the 224 band being used.

Something must be programming that entry targeting the vxlan.calico interface, and Calico is correctly spotting that it doesn't belong there (because there are no pods with that IP on the network).
Calico only programs static entries with known hwaddr. I'm guessing this entry is being put there due to something in your cluster trying to talk multicast over the vxlan.calico interface.
Based on a quick google, I see those multicast IPs are registered: https://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml#multicast-addresses-12
<IP_ADDRESS> | mDNS

<IP_ADDRESS> | IGMP

Although anything could be trying to access them. Are you running anything like that ^ in your cluster?

Might be worth a TCP dump to see what's sending traffic to those addresses

In parallel, Calico should be able to remove those addresses. Might need to fine-tune the way we craft our deletion request so it's valid, or a way to skip entries which we know aren't programmed by us (currently we use the vxlan.calico interface to decide that, but if someone else is programming entries for that interface we can't tell the difference)

I had the same issue too.

@caseydavenport must find the source multicast IP from ? we can solve it.
I try to delete the neigh  224, but failed.

For some more information, we are also seeing this issue on our 16.04 desktop nodes. These nodes are from a legacy deployment and there host os and kernel cannot be upgraded unfortunately.
After digging into those addresses, it appears that the avahi daemon is programming the mDNS (<IP_ADDRESS>) address, and systemd-resolve is programming the LLMNR (<IP_ADDRESS>). I have added a whitelist to the primary network interface for avahi and that address no longer appears in the neighor list, but I'm still working on figuring out how to disable the other two.
This post was enlightening and described the addresses and their likely sources: https://superuser.com/questions/1063676/is-my-arp-cache-poisoned
This issue helped me whitelist the primary network interface for the avahi daemon without disabling it entirely: https://github.com/freepn/fpnd/issues/67
I don't believe any of these workarounds to be solutions

2022-01-18 09:57:23.012 [WARNING][51] felix/route_table.go 968: Failed to delete neighbor FDB entry {LinkIndex:4 Family:7 State:128 Type:0 Flags:2 IP:<IP_ADDRESS> HardwareAddr: LLIPAddr: Vlan:0 VNI:0 MasterIndex:0} error=invalid argument ifaceName="vxlan.calico" ifaceRegex="^vxlan.calico$" ipVersion=0x4

It looks like the mac address is empty, which the ARP entry is incomplete. Maybe we should skip the incomplete ARP entry (empty mac address).
cc @caseydavenport

Yeah interesting. Calico shouldn't be trying to remove any dynamically programmed ARP entries - Calico itself programs some static entries, but those should always have a HWAddr and not rely on dynamic resolution.

xref: https://github.com/projectcalico/calico/pull/7421


Add the docx2txt Package

docx2txt is a perl based conversion tool to convert docx files to plain
text. It simplifies comparing the content of docx files a lot.
Its usage is simple:
docx2txt.pl [infile.docx|-|-h] [outfile.txt|-]
docx2txt.pl < infile.docx
docx2txt.pl < infile.docx > outfile.txt

Signed-off-by: Matthias Aßhauer<EMAIL_ADDRESS>Signed-off-by: Johannes Schindelin<EMAIL_ADDRESS>

Thank you!

@Alexpux I see you are very, very busy updating packages. Would it be possible to upload this package at some stage, too?

I'm fix this PKGBUILD. Will upload package today

I'm fix this PKGBUILD

Oh, sorry. I thought it was good enough. Next time, please feel free to ask for changes before merging. I usually address such concerns quite quickly.

Will upload package today

Thanks!

Uploaded

Thank you so much!


Escape all values in HTML

I don't know if you want to but it might be worth having EJS escape all output just as a precaution to avoid any potential XSS issues.
The code looks safe but escaping all output would prevent any issues if some user input did accidentally sneak in. I can create a PR for it if you want to do it.

@GHSam you are talking about changing all instances of <%- to <%= correct? So <%- foo %> becomes <%= foo %>? I would merge such a PR.


Implement visibility change dialog (when clicking on visibility icon in header)

(Mistakenly closed automatically by history merge)


don't issue a send() when the socket is unready

Also fixes some warnings from object variant case transitions.

Would be nice to see this merged, as it has a lot of bugfixes that I now realize I have made patches for overtime that could have been fixed-- and it seems to be delayed over a single assert. If one of you could budge on this, that'd be nice :S
I suspect the underlying logic fix applied here may also be the heisenbug that I tried to make a workaround for, though I have no direct evidence for that.

PTAL


Alignment of columns for complex matrices

The alignment of the columns is not ideal for complex matrices because the signs between the real and the imaginary parts are not aligned.
if norm(imag(A)) > 0  the columns of the matrix should be aligned on the + or - sign in between the real and the imaginary part of the elements.

Solution:
https://tex.stackexchange.com/questions/513089/complex-matrices-column-alignment-on-sign/513091?noredirect=1#comment1297563_513091


Default workouts / workout library

#177
includes the 5 workouts shown in the picture. A decent start with some variety
Look without any user-created workouts:

Look with some user-created workouts:

@sivertschou added some updates now
the "predefined workouts" text and design is of course not set in 🪨


How to permanently delete lines from DOM?

Hi,
I am trying to delete all leader-lines before unmounting a component in React.
After successfully invoking line.remove() and unmounting the component the lines are actually gone (they have been removed from the DOM).
But on screen resize the console gets full of:
A disconnected element was passed. index.js:2178
TypeError: n is null. leader-line.js:4:12474

As I understand, the lines (which supposedly do not exist anymore) are trying to find out the position of their respective start and end anchors (which of course do not exist anymore, since the component containing them has been unmounted).
Why could this be happening?
Isn't the method remove() the correct way to get rid of the lines?
Thanks a lot in advance!

Hi @olegkorol, thank you for the report.
Could you show me example? e.g. using https://jsfiddle.net/

Thanks for the quick response.
Could I send you a link to an email address @anseki ?

Don't use email.
Please use an online service such as https://jsfiddle.net/ .

It would take much time to reproduce it in jsfiddle.
I will try to debug it by myself, thanks for the help anyway.

Ok :smile:

Sorry, that was a looong time ago - I do not remember anymore :(

Hi @olegkorol, thank you for the report. Could you show me example? e.g. using https://jsfiddle.net/

hi, i found a way to reproduce the bug https://jsfiddle.net/xeq7cLn4/
when we delete both the lines and their anchor, and then resize the window it gives errors

Hi @chesiren, thank you for the comment.
It seems that your code has bugs.
You mistakenly used remove method of DOM instead of LeaderLine, then the error was thrown caused by the incorrect DOM.
I fixed the bug in your code: https://jsfiddle.net/q8k30wa7/
See document: https://anseki.github.io/leader-line/#remove


Fix the CLI/client-library to print out appropriate error messages

More often than not, people get this error when using HIL "Unexpected error: No JSON object could be decoded". I think this error might be coming from the client library. This can be frustrating to deal with at times because the real error is hidden.

one example that I found today.
[centos@slurm-controller ~]$ hil show_node blah-blah
Error: Node blah-blah does not exist.

[centos@slurm-controller ~]$ hil show_node blah/blah
Unexpected error: No JSON object could be decoded

if there's a '/' in node name it freaks out.

Here's what I assume going on in this specific case:

putting a / in the node name is causing it to not match the route for that api call; we had to do something to special on the server side to get it to treat e.g. gi1/0/2 as a single thing.
Since the route isn't matching, the server is returning some default error page, probably a 404. Since the body isn't JSON, the client trys to parse it and freaks out.

Things we can do:

The client should validate its arguments, so that if you pass it the name of a node, it can't be treated as anything else. We should be doing this anyway, as it might help prevent injection attacks where some tool using the client library passes in a user-supplied string to the api call.
The client should look at the http status code, rather than just choking on the body if it's not JSON.
The server's default error pages should return JSON, just like the errors raised explicitly by the HIL api calls.

I'll be investigating this one.

If we want users to be able to put / characters in their node names, we'll need to put path: in the API URL template, e.g. @rest_call('GET', '/node/<path:nodename>', Schema({'nodename': basestring})).
Instead, would it be better to check for reserved characters and raise an error if one is detected?  That way we would prevent the 404 from causing Unexpected error: No JSON object could be decoded. I think it's reasonable to limit names to letters and numbers.

In the show_node case, we could infer that a node doesn't exist if the user tries to search for a node with a reserved character.  The same would go for switches, projects, etc.

Yeah, my intention was for the client library to check and report an error itself.

I can either catch all attempts of the user to input reserved URL characters when the URL is first formed, or I can do it on a per-command basis.  For example if the user tries to search for a node with a / in it, HIL would report that the node could not be found.
The first solution would be simpler but less informative.

Yeah, probably better to check the arguments per-call. It would probably be better to have the error indicate that / is illegal in node names, rather than saying the node could not be found.

I think it's reasonable to limit names to letters and numbers.

I would not limit to just letters and numbers. For instance, a lot of switch names and node names have dashes in between e.g., cisco-05
R5-PA-C01.ipmi.cluster is a hostname for a switch which contains dots, and sometimes I just use the hostname as the switch-name itself so it's apparent to me what switch I am working with in HIL without looking into the database.
If we are going to make a list of allowed characters in labels, then we will have to be really careful. I think just blacklist characters that could potentially cause issues.
What do you think?

I'm going to limit it to characters that are not reserved URL characters.  So, besides letters and numbers, the allowed characters will be: $ - _ . + ! * ' ( ) ,

"No special meaning in urls" sounds like the right mwtric here.


⚠ Spryr has degraded performance

In 616f5c0, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 5777 ms

Resolved: Spryr performance has improved in 091eb10 after 37 minutes.


[ModuleTrace] Track direct dependencies through #import and @_exported import

Still missing:

[X] Test cases.

[x] Test case(s) for SPI (maybe SPI change should be a separate PR?)
[x] Test cases for overlay-overlay dependency hazards. (Current status: works on my machine)
[x] Test cases for import chains. I really wish unit-testing this part of the compiler were easier lolsob. (Current status: I think it should work?)

[X] Some need to break up last commit into smaller commits. Seems difficult, a lot of things depend on each other.
[X] It's not clear that the depth-first traversal can be refactored out but maybe it's possible. This is fine. We can refactor later. There's also a bunch of special cases, don't want to block landing the fix on an elegant design.
[X] It might be possible to factor out some of the logic in getABIDependenciesForSwiftModule. Seems ok.

Just opening the PR to get initial feedback on whether the approach looks right.

SPI PR separated out: https://github.com/apple/swift/pull/32771

@swift-ci please smoke test

@swift-ci please smoke test

Interesting! We found a slightly different cycle on Windows:
<unknown>:0: note: error: invariant violation: unexpected cycle in import graph!

loaded_module_trace_append (Swift) @ 0x222246b2db0

depends on Swift (Swift) @ 0x22222f02708

depends on SwiftShims (Clang) @ 0x222246b2150

depends on visualc (Clang) @ 0x222246b26a0

depends on Swift (Swift) @ 0x22222f02708

What is going on here? 🤔🤔🤔

Hamish pointed out the cycles involved in the stdlib may have to do with implicit private imports of the stdlib by Clang modules. https://github.com/apple/swift/commit/70f8c198dd61f328bca000ff70f36cbff4a62f1e
Robert pointed out that the Darwin (Swift) -> SwiftOverlayShims (Clang) -> Darwin (Swift) dependency is likely due to SwiftOverlayShims (Clang) depending on Darwin (Clang) but us automatically using the Swift module.

Trying to think about how we want to handle this properly...

@swift-ci please smoke test

Mostly just some cleanup/reorganization and more comments explaining why the different checks are necessary, removing a single one makes one or more of the tests fail. 😅

@swift-ci please smoke test

@swift-ci please smoke test Windows platform

Current status is DNM because there is an issue building llbuildSwift, noticed in #32980. Looking into it.

@swift-ci please smoke test

So one of the issues was with iterator invalidation. I'm still entirely sure why that was happening (I would've expected a temporary to be created which lasts the duration of the loop) but creating a separate copy of the set seems to fix the issue. From what I can tell, the set itself was not being modified, because we do check for module equality and those checks were passing.

@swift-ci please smoke test

Source compat suite was passing with copying code in https://github.com/apple/swift/pull/32980, just re-running it with latest changes without the copy. I did check locally that llbuildSwift and SwiftPM built fine.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please clean smoke test macOS

Fixed #import -> #include to make Windows less sad.

@swift-ci please smoke test

Fixed #include -> #import to make macOS less sad.

@swift-ci please smoke test

Going to merge this, since fixing rdar://64993153 is kinda' pressing. Will submit follow-up PRs for the TODOs.


Remove unnecessary init.py

Starting from Python 3.3, empty __init__.py is no longer needed for namespace packages (https://peps.python.org/pep-0420/, https://packaging.python.org/en/latest/guides/packaging-namespace-packages/#native-namespace-packages)

I'm not familiar with python packaging, but it seems like we are using namespace packages in most of the openxla projects (no empty __init__.py in directories). And empty __init__.py is not required for namespace packages

Now I read the PEP-420 again closely and it seems like I misunderstood its meaning.
IIUC namespace packaging can allow multiple sources to populate packages under the same namespace. For example multiple projects can populate packages/modules under openxla.* if we create openxla as a namespace package.
There are 3 ways to create namespace package and PEP-420 is one way to do that by simply not putting __init__.py under the package directory. So we don't have __init__.py under the openxla directory.
For a sub-package that won't be populated from multiple sources (e.g. openxla.benchmark, which should be only populated by this repo), we put __init__.py to define a regular package. And it seems to be the suggested way to define a package in the tutorial (https://docs.python.org/3.8/tutorial/modules.html#packages).
Drop this PR as I think we want to clearly define those packages as regular packages. And we might write something in those __init__.py at some point. But feel free reopen if I'm wrong


Exception during validation when string only contains NULL characters

When creating and updating resources I want certain attributes/relationships required during creation and filled during updating. This will ensure a required attribute/relationship during creation and an optional attribute/relationship during updating. It works very well, but there is one problem.
I have a string that contains binary information. When updating my resource without changing the value of this string, my API will return an error because of filled. When looking to the content of the string, the string then only contains NULL chars.
protected function rules($record,array $data): array{
	return [
		'data_raw' => [
			'string',
			($record?'filled':'required'),
		],
	];
}

I think that the filled rule does not check if the length of the string isn't equal to zero. My string does contain \x00\x00 (2 bytes) and filled throws an error.

I'm not sure this is a problem with this package? If the filled rule is failing then that's down to Laravel not this package.
You might need to write a custom rule for this one?

Hmm okay, I will take look at the Laravel package.
Also, is it possible to set have a group of attributes/relationships where you can say that at only one field of that group is required?

There's a whole load of required_* rules that you should check out:
https://laravel.com/docs/8.x/validation#available-validation-rules
If none of those do the job, then you'll need to resort to complex conditional validation:
https://laravel.com/docs/8.x/validation#complex-conditional-validation
Which can be wired in using this package as per these instructions:
https://laravel-json-api.readthedocs.io/en/latest/basics/validators/#conditionally-adding-rules
I'm going to close this issue because it's to do with validation rules, which aren't anything to do with this package as the package uses Laravel validation rules.

Ah thanks


Slimes can cure their zombification by turning to Giras

Description

We noticed on Round #51813 where a slime was infected and turned into a zombie, but they turned into a Giras which seemed to remove the zombification. When they turned back, they turn into their zombifjed form.
Reproduction

Infect a slime person with the zombie virus and turn them. Once they're infected, select the transform option. The slime will be able to speak and move as normal.
Additional context

Zombies can attack the slime as a giras, and if they revert to their zombified person form, they will seem to go into crit as a result of the damage.

Not intended at all, fixing in an upcoming PR

Closing this since Geras were removed.


[wip]bugfix: fix test case fail

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #4535 (a31b649) into develop (abe196f) will increase coverage by 0.14%.
The diff coverage is 94.73%.

:exclamation: Current head a31b649 differs from pull request most recent head a9e49e6. Consider uploading reports for the commit a9e49e6 to get more accurate results

@@              Coverage Diff              @@
##             develop    #4535      +/-   ##
=============================================
+ Coverage      49.27%   49.42%   +0.14%
- Complexity      4068     4072       +4
=============================================
  Files            731      731
  Lines          25370    25386      +16
  Branches        3146     3146
=============================================
+ Hits           12501    12546      +45
+ Misses         11539    11508      -31
- Partials        1330     1332       +2

Impacted Files
Coverage Δ

...ava/io/seata/server/metrics/MetricsSubscriber.java
87.95% <92.00%> (+61.36%)
:arrow_up:

...o/seata/server/coordinator/DefaultCoordinator.java
50.00% <100.00%> (-6.48%)
:arrow_down:

...java/io/seata/server/metrics/MeterIdConstants.java
100.00% <100.00%> (ø)

...er/src/main/java/io/seata/server/ServerRunner.java
50.00% <0.00%> (-15.39%)
:arrow_down:

...r/console/impl/file/GlobalLockFileServiceImpl.java
94.87% <0.00%> (-2.57%)
:arrow_down:

...io/seata/core/rpc/netty/AbstractNettyRemoting.java
14.28% <0.00%> (+1.29%)
:arrow_up:

...erver/storage/file/session/FileSessionManager.java
49.67% <0.00%> (+1.30%)
:arrow_up:


add needed step to fix issue with Expo for Web

Contribution Guidelines

[x] I read and followed the CONTRIBUTING.md guide.
[x] I read and followed the New Feature Checklist guide.

Short description of what this resolves:
In order to solve the bug that you bump into as soon as you add ui-kitten library to an expo project and try to see the the project in Expo for Web https://github.com/akveo/react-native-ui-kitten/issues/996, this super clean solution needs to be part of the docs, thus this PR. https://github.com/akveo/react-native-ui-kitten/issues/996#issuecomment-790975093

Hello @oussa.
Thanks for this PR!


Shipping a static splinter library and binary frontend

I attempted to have conversations with maintainers at the ninja project on ways to modify ninja to make it possible for clients to write their own frontends, or to configure the frontend behavior of ninja. Here are some examples:

Second, heavy binary issue from nico
My large experimental PR that creates a library
An earlier attempt at an external frontend

I failed to get any interest from ninja maintainers. This project seems more lively. Would this project be interested in splitting out a static library that could help clients to create their own frontends? Specifically I'm proposing:

We need a system for doing logging that allows library clients to capture log messages and emit them their own way. jonesmz suggests a design similar to boost, but constrained to a few points:

Multiple backends, so I can dynamically target log files, console output, or a logging server on the network, as I feel like at runtime.
Dynamic variables captured with each log statement, which can include the current functions name, or the current timestamp, or what have you.
Easy to replace the functionality using macros. E.g. I can provide my own logging statements that customize what gets logged, by defining a macro that i call.

Introduction of a splinter namespace. This is just nice when you're a library. Removing 'using namespace std' anywhere it is still used in headers (if applicable).
Separation of a ui layer which is in charge of parsing commandline arguments into various structs for holding configurable behavior. Pass these structs into configurable functions to change behavior.
No more logic for "things are going badly, exit now". So no ExitNow function.
Removal of global state - some gets pushed into State, which can be reset on rebuild, some gets pushed into the new Execution class.
Introduction of public header files. They'll live in some dedicated directory and we'll need to commit to some kind of way to avoid constantly breaking changes.

I'm less familiar with this fork than I am with ninja, so forgive me if some of these don't apply. I'm just trying to be clear about intent so we can discuss whether or not this is desirable from a common understanding.

@EliRibble
This project is primarily a series of patches that I want to get included into Ninja directly.
That being said, I've had all of the same frustrations that you've just expressed with regard to working with the Ninja project, and it's maintainers.
I'd be more than happy to work with you to convert Ninja / Splinter into a library, and then plumb it with the feature enhancements that you detailed in your issue description.
The first thing I'd recommend doing is carefully reviewing the different branches in this repository. The branches prefixed with a number are the "main" branches of this project. Each prefixed branch is ordered from 0 up to indicate the order of the branch.
Branch 1 directly builds on branch 0. Branch 2 builds on branch 1, etc.

Removing 'using namespace std' anywhere it is still used in headers (if applicable).

Removing using namespace std is branch 1-std-namespace, so I was already way ahead of you there.
Please feel free to open new issues if you have ideas.
I'm also open to changing the way I've been structuring my work, to use something other than branches, if you have any suggestions.

I suppose a few more thoughts are in order.
One concern that I have is that I don't want to completely discard the possibility of work in this fork getting upstreamed into the ninja project. The more divergence we have with upstream, the more difficult it becomes to adopt improvements submitted upstream.
What might need to happen is that the patch series that I've developed (all intended to be upstreamed, of course) needs to be maintained in a different repository. For example, we could make something like "ninja-next" for that work to live in.
And then splinter can be a proper fork of ninja-next, that works on library-ification.
just spitballing here, I don't know the right answer.

Thanks for the detailed thoughts. Yeah, I can see your point. It's wise to want to keep things in a generally-upstream-able state.
I like the idea of ninja-next that contains branches meant for upstreaming. I'm not crazy about the idea of maintaining two projects in the hopes that some day the ninja maintainers will be interested in the work.
What about a process like this: Create an issue that matches each branch for ease of tracking what the branch is for. Branches should be kept in github. When the branch is complete, merge it into master. If the ninja project is interested we should still have the history of the various issues and their matching branches and they could merge in individual branches. But the master for splinter then has the various updates and we could cut releases from master that includes all the features. That would also help to avoid having a tangled history of keeping track of which branches are based on each other.
I'm assuming a few things about how GitHub works that I can't back with actual experience. I should probably run some experiments.
What do you think?


Deprecation warning

I would appreciate if anyone could fix this issue
(node:25954) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

If you really want to get rid of it then pass the options object when you're connecting to the database like this:
const URI = 'yourMongoDBURIhere';
mongoose.connect(URI, {
useNewUrlParser: true,
useUnifiedTopology: true
})...
Here I'm using 'mongoose' but generally, the syntax wouldn't change much.

@phongvu99  THANKS, I ll try this one too


Fix - LDV Sales Missing Comman #1939

Added formatting function across other places ldv sales are mentioned to keep formatting in sync

@JulianForeman looks good, just needs to be rebased onto the current release branch (1.53.0)!


[ERROR]steps_per_epoch for *: 'int' and 'nonetype'

I had an error with this  tutorial
I launch this command (I follow all step :+1:  )
 python train.py \ 	--dataset ./data/voc2012_train.tfrecord \ 	--val_dataset ./data/voc2012_val.tfrecord \ 	--classes ./data/voc2012.names \ 	--num_classes 20 \ 	--mode fit --transfer darknet \ 	--batch_size 16 \ 	--epochs 10 \ 	--weights ./checkpoints/yolov3.tf \ 	--weights_num_classes 80
And that give an this error.
Solution : into train.py at line 187  you need to put steps_per_epoch=1 or any number you want.
Root case :
At line 63 into train.py train_dataset are a generator

@hulkwork  is this the error? - UnboundLocalError: local variable 'logs' referenced before assignment