System health metrics

Add a VSS sub-model to model performance metrics such as CPU laod, memory pressure of the host device and write a feeder
May be good issue for learning

Hey @SebastianSchildt !
Can I work on this issue and can you help me getting started with this?
That will be a great help.

Hi @adityaofficial10
Of course you can try. The easiest way building feeders ist using our python websocket code here https://github.com/eclipse/kuksa.val/tree/master/clients/common
to get a feeling how to use it look into the testclient code https://github.com/eclipse/kuksa.val/tree/master/clients/vss-testclient  or the GPS feeder https://github.com/eclipse/kuksa.val/tree/master/clients/feeder/gps2val
You will probably also need to extend the data model, you can check the docs here https://github.com/eclipse/kuksa.val/blob/master/doc/liveUpdateVSSTree.md
Regarding the systemstat feeder there is also some experimental, not complete code in RUST flying around using the (undocumented, more primitive) REST interface (--insecure mode only) here: https://github.com/boschresearch/kuksa.val/tree/feature/systemstat-feeder-test/clients/feeder/system-monitor-feeder   ,  but feel free to either pick it up or ignore it and start from scratch. This was more like an experiment. Might still serve as an example how to extend the data model: https://github.com/boschresearch/kuksa.val/blob/feature/systemstat-feeder-test/clients/feeder/system-monitor-feeder/model/systemstat.yaml  . The YAML need to be translated to json using the tooling here https://github.com/GENIVI/vss-tools , but i think this is als mentioned in the documentation linked above

We are about to archive this repo soon. If you consider this issue as important please file a new issue at one of the new Kuksa repos at https://github.com/eclipse-kuksa


Login/signup errors

User and Auth routes on backend updated to provide more accurate error messages. Login and Signup now only return the user id, email, first and last name. Added accept_terms field to User entity.
Login and SignupCitizen components now handle invalid email/password or existing email errors. Errors are displayed with helpful text, successful actions push to homepage. Temporary "loading" text while request is processing. To be swapped out when UI/UX has an idea for it.
Quick update to README to add the bcrypt env variable required as of the password encryption PR.
Login - Email not found:

Login - Invalid Password:

Signup - Existing Email:

Made almost all of the suggested changes. I responded to all comments individually to address changes.


network filters: avoid unnecessary std::shared_ptrs

While debugging a crash in:
https://github.com/envoyproxy/envoy/pull/13592
I ended up discussing with @lambdai and @mattklein123 whether
network filters can hold references to things owned by their
corresponding FactoryFilterCb. The answer is yes and the HCM
and some other notable filters already use references instead
of std::shared_ptrs.
So let's consistently do this everywhere to avoid someone
else asking this same question in the future. Plus, it's
always nice to create fewer std::shared_ptrs.
Follow-up on: https://github.com/envoyproxy/envoy/issues/8633
Signed-off-by: Raul Gutierrez Segales<EMAIL_ADDRESS>

Seems good to be consistent here, thanks. Can you merge main?
/wait

Seems good to be consistent here, thanks. Can you merge main?
/wait

Seems good to be consistent here, thanks. Can you merge main?

Yup done.

Seems good to be consistent here, thanks. Can you merge main?

Yup done.

Does this also apply to HTTP filters? ECDS returns callbacks by-value, so that would need to be fixed.

Does this also apply to HTTP filters? ECDS returns callbacks by-value, so that would need to be fixed.

Does this also apply to HTTP filters? ECDS returns callbacks by-value, so that would need to be fixed.

See #14737.

Does this also apply to HTTP filters? ECDS returns callbacks by-value, so that would need to be fixed.

See #14737.

OK, so the shared pointers are still captured in the lambda, and it should be fine to copy the functors.

OK, so the shared pointers are still captured in the lambda, and it should be fine to copy the functors.


Using DOM Nodes instead of strings

I'm making a spreadsheet app and rendering input elements inside table rows. The input values and event listeners were getting clobbered by being converted to strings and back.
In this PR I'm caching the real nodes and inserting/removing them. It works great for my purposes and may be of use to others but I understand if there may be reasons why the strings approach was taken.
It seems to work well in my limited test, but there's still an issue with the change on line 174 where we compute the height... I'm assuming the first three rows exist.
Anyway, thought I'd put up these changes in case you found them of interest!

I had also felt the need of storing actual dom nodes. however I'm also curious to understand why string approach has taken. @STRd6 Can you check how much memory your browser tab is consuming?

Hello
Thanks! This may be convenient for someone. I remember someone had already requested such feature.
Yep, @bharatpatil, the problem is in memory allocation.
Compare this two tabs in chrome's task manager
strings, nodes
I see almost 5x difference: 72K us 348K
Because of that I can't replace main library with your implementation @STRd6, but we definitely can move it to separate branch and maintain there. I am guessing there are may be very specific situations when speed is more important than concerns about the memory
p.s. I like how easily you went through sources. changes with minimal interference :+1:
regarding height
this.html([rows[0], rows[1], rows[2]]);
single row should be enough
this.html([rows[0], rows[0], rows[0]]);

Using the same node rows[0] will only insert it once rather than three copies, another fix would be to check if (rows.length < 3) return; or however many is needed to accurately guess the sizes.

@NeXTs
I think this would be nice to merge with the main branch.  Would there be a reason why we couldn't support both Strings and actual Dom nodes?

yeah, there are a reason, read previous comments

Hey @STRd6 sounds like we're working on similar apps (here's the one I'm working on). I was hoping to do the same thing, as I'm using choo/bel/yo-yo, which creates dom elements. Curious that it's 5x slower though.


[Ready to merge] Pruned_transducer_stateless2 for alimeeting dataset

This PR has been tested with one gpu. I will find some free gpus to finish it.

In this PR, I trained pruned rnnt2 with alimeeting far(the default mode) data. There are some results:
The CERs(%) are

eval
test
comment

greedy search
31.77
34.66
--epoch 29, --avg 18, --max-duration 100

modified beam search (beam size 4)
30.38
33.02
--epoch 29, --avg 18, --max-duration 100

fast beam search (set as default)
31.39
34.25
--epoch 29, --avg 18, --max-duration 1500

The eval baseline result from the paper trained with the alimeeting far data is 34.3% (CER).

Results from that paper

Could you try the solution proposed at https://github.com/docker-library/python/issues/731#issue-1249165685
That is, change
https://github.com/k2-fsa/icefall/blob/fbfc98f1d37b0f4c8b58307eff3b5f82808e88fb/.github/workflows/test.yml#L79
to
pip install -r requirements.txt

pip uninstall protobuf
pip install --no-binary protobuf protobuf

If it does not work, you can try
pip uninstall protobuf
pip install --no-binary protobuf protobuf

pip install -r requirements.txt

Done. https://huggingface.co/luomingshuang/icefall_asr_alimeeting_pruned_transducer_stateless2/blob/main/exp/cpu_jit_torch.1.11.0.pt

Could you use torch 1.10.0 as I am using torch 1.10.0 on huggingface.

is 1.7.0 OK?

is 1.7.0 OK?

Yes, that should be fine.

https://huggingface.co/luomingshuang/icefall_asr_alimeeting_pruned_transducer_stateless2/blob/main/exp/cpu_jit_torch_1.7.1.pt

Thanks! I just added  the pre-trained model of alimeeting to https://huggingface.co/spaces/k2-fsa/automatic-speech-recognition

In this PR, I trained pruned rnnt2 with alimeeting far(the default mode) data. There are some results: The CERs(%) are
eval	test	comment
greedy search	31.77	34.66	--epoch 29, --avg 18, --max-duration 100
modified beam search (beam size 4)	30.38	33.02	--epoch 29, --avg 18, --max-duration 100
fast beam search (set as default)	31.39	34.25	--epoch 29, --avg 18, --max-duration 1500
The eval baseline result from the paper trained with the alimeeting far data is 34.3% (CER).

@luomingshuang Thanks for your contribution! I notice the results of this code are compared to the SOT results of M2MET papers.
Just want to understand the comparison, do you regard the code of this PR as a naive ASR task, or like M2MET challenge, as a multi-speaker ASR task? Since the latter task sort of additionally requires the speech should be transcripted with speaker identities (SOT style), the CER contains a stricter constrain. Alternatively, if this is a single-speaker ASR setting,  the CER is not fully comparable to M2MET case.
Thanks again for your contribution.

Oh，this is just a naive ASR task, not a multi-speaker ASR task. I use the train-Ali-far as my training data and don't consider the speaker id. So you are true. The 34.3% of CER is a multi-speaker ASR's result of TABLE 5 in paper. Thanks for pointing out this.

BTW the original M2MeT challenge also used some text normalization that is not currently present in the Lhotse AliMeeting recipe. I have created a PR to add it here.


[FIXED] [BUG] LASTSECONDHINT doesn't work on some modes

Is there an existing issue for this?

[X] I have searched the existing issues and none matched.

Operating System
Windows 11
CPU
i7
GPU
Intel UHD Graphics 630
Storage
lots
Game Version
4.18.1
Game Mode
dance
Theme
default theme
Describe the problem
I have a stepfile I am trying to write where the last few beats don't really have danceable steps, but I don't want to cut them short, so I am trying to use #LASTBEATHINT  However, the music ends a couple beats after the last step anyway, leaving the song unfinished.  I already made an excessively long hold to try to cover most of the tail, but thought #LASTBEATHINT would be better than having the user stand there for several seconds.
Of course, now that I file the bug, I see a different tag #LASTSECONDHINT show up a couple times in other issues.  So maybe #LASTBEATHINT isn't even a thing that is supposed to exist.
Describe what should happen
Stopping at max(last beat in step chart, LASTBEATHINT) would be a nice touch.  Even if the feature doesn't currently exist, I suppose.  A few other step charts I found on the web to use that tag.
Logs aren't really relevant, but I can easily submit the simfile if that helps.
Relevant Log output
No response

LASTBEATHINT is for SMA files, Doesn't look like something SM/SSC supports.  LASTSECONDHINT is likely what you want.

Indeed, LastSecondHint is what you need, but we have adjusted the parser so this one is fixed, even though it was for a different issue you initially put up

Excellent, thanks!

fixed in 042


I can't send anything

i restored and nothing, install in new pc and browser and nothing.

all of my wallets with the same problem, can you help me please

Talk to Cardano Support on the Live support page so that your issue can be looked into.

i restored and nothing, install in new pc and browser and nothing.

First of all dont reply to the scam support page, second of all i believe most of us here are facing the same prob which is nami is a hot pile of single address entry garbage wallet.
your assets are not "lost" but nami is having trouble to recognize them on the blockchain,
try constantly to reimport your wallet in yoroi, daedulus or eternl.
That being said hopefully the vasil hardfork can fix this

Kindly send a DM to get your issue resolved


ig-k8s: Fix fix server version message

Print the version only when running with -serve, otherwise it messes up some json output used by the advise network-policy gadget.
It turns out adding a new info log on the gadget tracer manager breaks something. I was too confident a simple message won't break anything and merged #3743 without waiting for the CI to finish.
Fixes: a46f5c2efc55 ("ig-k8s: Fix server version message")

CI failure is not related to this change, moving ahead.


Clear environment variables after changing context

Let's say that some context sets PATH variable, and when we switch to another context we shouldn't have it modified.
My idea is to store all variables before first context switch to a file, and after consecutive switches we just clear environment, source this stored file and then run context script.
How does it sound?

Maybe this can be solution: http://stackoverflow.com/questions/15222328/bash-reset-reloading-bash-completely-alias-and-function

A pre-release had such feature. However I decided to get rid of it and use enter and leave scripts instead. Do you think that this can be solved by:
# enter
OLD_PATH="$PATH"
export PATH="/my/bin:$PATH"

# leave
export PATH="${OLD_PATH}"
unset OLD_PATH

I must admit that I do not like to save some environment variables. It introduces unnecessary variables (OLD_PATH), requires editing of enter and leave and is error-prone.
I think that I like your idea of storing the whole of environment. I used printenv for this purpose in the pre-release version. There are at least three things that we must take into consideration:

an existing variable is modified
an existing variable is unset
a new variable is defined

I think that variables from 1 and 2 can be restored (I'm not sure whether that's always the right thing to do though).
Should we unset new variables (point 3 above) upon leaving a context? This makes sense for variables like RAILS_ENV, e.g.:
$ ctx enter my-rails-app
$ export RAILS_ENV=staging
$ do_some_work
$ ctx leave

This would unset RAILS_ENV and I think this is desired in the case above. Is this always desired?

Addressed in 1bf77e1.


Indexing C4 no clean collection

Hi,
In a previous issue, I asked about the difference between Collection and Generator classes, and the C4 collection example raised up.
The thing is that I am working with the no clean version of this collection under the TREC 2021 Health Misinformation Track, and I am trying to index it using the custom classes provided by Anserini:
nohup sh target/appassembler/bin/IndexCollection -collection C4Collection -input ~/c4/en.noclean.withdocnos -index indexes/C4 -generator C4Generator -threads 44 -storePositions -storeDocvectors -storeRaw >& logs/log.C4 &

The problem is that the generator is considering the whole JSON as the raw field of the document, and it is setting the incorrect docId. Instead, I would like the generator to grab each field (docno, text, timestamp, etc.) and promulgate them to the index.
To that end, I am not sure if I will need to create my custom index, as explained here.
Thanks in advance!

[EDIT] I think that the problem is in class C4Collection.java since it generates the docId from the path instead of reading the JSON field. Moreover, I also think it is not reading correctly the JSON fields.
I will do a PR with the new collection class implemented, but I am open to suggestions.

Yes, you'll likely need to implement another Collection class. The currently implemented classes have associated test cases, which you can use as a reference for a new implementation.

Perfect, I will implement it and do the PR ASAP :)

Great, thanks - looking forward!

Here it is my PR :)

Closed by #1596


Error with route generator

any ideas? I've uninstalled ng-poly and yo, cleared npm's cache, reinstalled yo and ng-poly but still get the following error:
events.js:85
throw er; // Unhandled 'error' event
^
TypeError: path must be a string
at TypeError (native)
at Object.fs.openSync (fs.js:500:18)
at Object.fs.readFileSync (fs.js:352:15)
at writing (/usr/local/lib/node_modules/generator-ng-poly/route/index.js:62:19)
at /usr/local/lib/node_modules/generator-ng-poly/node_modules/yeoman-generator/lib/base.js:412:16
at processImmediate [as _immediateCallback] (timers.js:358:17)

:+1: Same.
This is with v0.8.3

Hmm. I haven't been able to reproduce this. Could you provide more info? The .yo-rc.json file would be good to see, too. Also, was this project generated with an older version or with 0.8.3?

@dustinspecker
This is off a fresh project. Just did yo ng-poly, answered the questions, and did yo ng-poly:route company-view.
Here is my .yo-rc.json file:
{
  "generator-ng-poly": {
    "structure": "module-only",
    "markup": "jade",
    "appScript": "js",
    "controllerAs": true,
    "skipController": false,
    "testScript": "js",
    "testFramework": "jasmine",
    "e2eTestFramework": "jasmine",
    "style": "scss",
    "ngRoute": false,
    "lastUsedModule": "home"
  }
}

I've updated node and npm to the latest and that stops the error for me. When I run the route generator, everything works so long as i select the home module or another created module but if i choose the app-level module, then the generator breaks with the same error:
? Which module is this for? app
? What's the URL for this route? /rootroute
? What's the templateURL for this route? /rootroute.tpl.html
events.js:85
      throw er; // Unhandled 'error' event
            ^
TypeError: path must be a string
    at TypeError (native)
    at Object.fs.openSync (fs.js:500:18)
    at Object.fs.readFileSync (fs.js:352:15)
    at writing (/usr/local/lib/node_modules/generator-ng-poly/route/index.js:62:19)
    at /usr/local/lib/node_modules/generator-ng-poly/node_modules/yeoman-generator/lib/base.js:412:16
    at processImmediate [as _immediateCallback] (timers.js:358:17)

.yo-rc.json
    {       "generator-ng-poly": {         "appScript": "coffee",         "controllerAs": true,         "e2eTestFramework": "jasmine",         "markup": "html",         "ngRoute": false,         "structure": "module-only",         "style": "scss",         "testFramework": "jasmine",         "testScript": "coffee",         "lastUsedModule": "home"       }     }

Ah. I forgot where, but there's a discussion in an issue here that we don't have support for adding routes to the main app module.
Looks like we should revise that with people trying to do that. I'll add this to the list of stuff to get working.

cheers dustin! thanks for clearing that up, it's not much of a drawback.. for better or worse, i'm used to defining all my routes on the top level app. (a few times i've done routing in submodules tho it's easier to see my app's states at a glance when they're in the same place)

84bbfb59f0a83bbaa77487717f424957e5732ace Able to add route to app module.

You're the man!


[BUG]  Anti Aliasing Making not rendering properly?

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[x] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.8.1
What problem did you encounter?
Weird things start appearing on my screen similar on when you reach the floating point of roblox
example

It's not has bad it's barely noticeable but once you see it it's impossible to unsee it. It only applies to objects, this only happens when im moving in any way
Bloxstrap Log
No response

Client related issues are no longer accepted.


The CUDA compiler identification is unknown

-- The CUDA compiler identification is unknown
CMake Error at /usr/share/cmake-3.29/Modules/CMakeDetermineCUDACompiler.cmake:266 (message):
  Failed to detect a default CUDA architecture.

root@oss-desktop:~/nvbandwidth# /usr/local/cuda-12.4/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

A new upcoming release will be fixing this issue


Create Build Binary Search Tree from Sorted Array

Please accept my code for Hacktober Fest

Please give this repo a star and follow me for follow back 😊


Update README.md

Your README is in great shape! 🎉
I would recommend adding:

How to contribute to your project
Mention your code of conduct

Depending on the complexity of your project, you might be interested in creating a CONTRIBUTING.md file, but we recommend starting simple with the bullet points above, and once you start to see an increase in users interested in contributing, you should consider a CONTRIBUTING.md file so you don’t find yourself overwhelmed with questions from other users.

The content looks great @AsyncBanana !


Feature Request Support Gitlab/Gitlab Self Hosted

Hi!
i really like the idea. Super usefull!
Is it possible that you can support gitlab.com/gitlab self hosted in future releases ?

Would be amazing to have support for self hosted gitlab.


✨[Feature] Evaluate ITensor in aten::div evaluator

Can we support aten::div with nvinfer1::ITensor as input, where args.at(n->input(0)) is a nvinfer1::ITensor. Seems the following code only support IValue as input
        .evaluator({c10::Symbol::fromQualString("aten::div"),
                    [](const torch::jit::Node* n, kwargs& args) -> c10::optional<torch::jit::IValue> {
                      if (args.at(n->input(0)).IValue()->isInt()) {
                        auto a = args.at(n->input(0)).unwrapToInt();
                        auto b = args.at(n->input(1)).unwrapToInt();
                        return static_cast<double>(a) / static_cast<double>(b);
                      } else if (args.at(n->input(0)).IValue()->isDouble()) {
                        auto a = args.at(n->input(0)).unwrapToDouble();
                        auto b = args.at(n->input(1)).unwrapToDouble();
                        return a / b;
                      } else {
                        TRTORCH_THROW_ERROR(
                            "Unimplemented data type for aten::div evaluator: "
                            << args.at(n->input(0)).IValue()->type()->str());
                        return {};
                      }
                    },
                    EvalOptions().validSchemas({
                        "aten::div.Scalar(Scalar a, Scalar b) -> (float)",
                    })})

Have the same situation with aten::Int.Tensor(Tensor a) -> (int), just don't know how to evaluate a ITensor in the evaluator

This is for the evaluator, we should already have div converters for Tensor inputs
https://github.com/NVIDIA/TRTorch/blob/885439c953aad58a40ff28aa7289b83df44ca7b0/core/conversion/converters/impl/element_wise.cpp#L203

This is for the evaluator, we should already have div converters for Tensor inputs
https://github.com/NVIDIA/TRTorch/blob/885439c953aad58a40ff28aa7289b83df44ca7b0/core/conversion/converters/impl/element_wise.cpp#L203

This is for the evaluator, we should already have div converters for Tensor inputs
https://github.com/NVIDIA/TRTorch/blob/885439c953aad58a40ff28aa7289b83df44ca7b0/core/conversion/converters/impl/element_wise.cpp#L203

I found that in evaluator, we have implemented aten::div.Scalar(Scalar a, Scalar b) -> (float), but when I tried to implement aten::div.Scalar(Tensor a, Scalar b) -> (Tensor), the signature conflicts with the evalutor, only one of them can work. Do you know how to solve this?

This is for the evaluator, we should already have div converters for Tensor inputs
https://github.com/NVIDIA/TRTorch/blob/885439c953aad58a40ff28aa7289b83df44ca7b0/core/conversion/converters/impl/element_wise.cpp#L203

I found that in evaluator, we have implemented aten::div.Scalar(Scalar a, Scalar b) -> (float), but when I tried to implement aten::div.Scalar(Tensor a, Scalar b) -> (Tensor), the signature conflicts with the evalutor, only one of them can work. Do you know how to solve this?

Change aten::div.Scalar(Scalar a, Scalar b) -> (float) to aten::div.float(float a, float b) -> (float) will work


Topology package file should have correct user and time

When heron cli submits a topology, it packs topology definition, topology jar and topology config into a tar ball and submits the tar ball. The user and time in those files in tar ball are not set correctly.

@billonahill - Is this similar to what you fixed?

@kramasamy in #910 and #939 we suppressed the warnings when untarring but bazel still sets bad timestamps. This is a bazel issue.


BUG: Replace SetPoints with SetPointsByCoordinates in wrapping tests

When the points are specified by a flat VectorContainer of coordinates, passing those points to SetPoints may lead to undefined behavior. SetPointsByCoordinates is in that case preferred.

Partially addresses issue #4848
Related to pull request #4860

Aims to address a comment by @PranjalSahu at https://github.com/InsightSoftwareConsortium/ITK/pull/4860#issuecomment-2375249386 saying:

We should also replace all the older tests using SetPoints with the new method to ensure everything else is working.

Note: this pull request might be superseded by pull request #4896

This pull request is now superseded by pull request #4896  😃


Only one path is loaded from multi-path icons

Fixed with https://github.com/io12/yew-octicons/commit/badf7d9b81df6f52cc8d35996abfd543fb2a6484.


fix: race condition with pagination token

lyft/flyte#546
usePagination stores the pagination token in separate state hook. After the useFetchableData refactor to use state machines, the fetchable will now reset before we have a change to update the token state, causing the value to persist across API calls. This update usePagination to store the token in the fetchable data, so that it is part of the context used by the state machine and will remain in sync with the data it applies to.
Also removed the unnecessary use of a separate state hook for the moreItemsAvailable field, since that can be directly computed from the presence of the token.
Since usePagination returns an object that mostly looks like a FetchableData<T>, but using a different context shape under the hood, it was necessary to update the type for FetchableData so that the state field was a FetchableState<any>. This changes feels okay, because the intended usage of passing that state field along is to allow consumers to check which state we are in for conditional rendering (using state.matches), not necessarily to allow logic based on the context contained within the state. I may open a follow-up PR to refactor the usage of fetch state to pass an even more restricted object, or remove the visibility of that state field from consuming code altogether.

Codecov Report

Merging #105 into master will increase coverage by 0.18%.
The diff coverage is 92.30%.

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
+ Coverage   69.18%   69.37%   +0.18%
==========================================
  Files         383      383
  Lines        6306     6299       -7
  Branches      988      986       -2
==========================================
+ Hits         4363     4370       +7
+ Misses       1943     1929      -14

Impacted Files
Coverage Δ

src/components/hooks/types.ts
100.00% <ø> (ø)

src/components/hooks/usePagination.ts
94.73% <92.30%> (+6.27%)
:arrow_up:

.../components/Executions/Tables/NodeExecutionRow.tsx
91.11% <0.00%> (+2.22%)
:arrow_up:

src/components/common/ExpandableMonospaceText.tsx
86.36% <0.00%> (+36.36%)
:arrow_up:

...nts/Executions/Tables/ExpandableExecutionError.tsx
100.00% <0.00%> (+42.85%)
:arrow_up:

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 4aed79b...00b7279. Read the comment docs.

:tada: This PR is included in version 0.13.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update mut references for clippy compat

Changes in this pull request
Update code for latest clippy rules regarding unnecessary mut references.
Checklist

[X] This PR represents a single feature, fix, or change.
[X] All applicable changes have been documented.
[X] Any TO DO items (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment.

Codecov Report
Patch coverage: 75.00% and no project coverage change.

Comparison is base (3472ba5) 68.46% compared to head (7b85f27) 68.46%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #77   +/-   ##
=======================================
  Coverage   68.46%   68.46%
=======================================
  Files           2        2
  Lines         501      501
=======================================
  Hits          343      343
  Misses        158      158

Files Changed
Coverage Δ

src/main.rs
63.57% <75.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Type of change:

[x] Bug fix
[ ] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] My PR title is Fixes <issue-number>: <short explanation>
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

@ulixius9 ok to merge?

@harshach, I think it's ok to merge now. previously failing checks are passed now !


Where is the repo of Hey Siri =P?

Where is the repo of Hey Siri =P? I can't find it in quietshu/labs.

Hi @MrWillCom it's under another branch: https://github.com/shuding/labs/tree/gh-pages

And what license does it base on? or it's not open source?

@MrWillCom open sourced under the MIT license.

Okay! Thank you.


TrackingEventProcessor Events No Longer Retried if Error (i.e. Regression)

Since Axon 4.2 (specifically https://github.com/AxonFramework/AxonFramework/commit/b26eb8848bc021534ae6a75d8e91994dafb7b598) if an event fails to be processed by a TrackingEventProcessor then it will not be retried. In Axon 4.1.2 it was retried with an exponential backoff up to 60s.
The problem is that TrackingEventProcessor now by default (as storeTokenBeforeProcessing is true, by default) will store the TrackingToken before processing, regardless of whether the processing is successful or not. Of course that means that when an error is retried, the events have already been marked as processed anyway and they will therefore not be retried.
We tried to turn off this new default behaviour because retrying is more important to us than a possible performance boost, however, configuring this is very difficult as one needs to interact directly with the TrackingEventProcessor.Builder and not EventProcessingConfiguration/Configurer/etc.
To reproduce/see/understand the problem, please see/apply the following diff, based on the tag axon-4.2.
Please note that if the line //.storingTokensAfterProcessing() is uncommented, then the test testTokenStoredAtEndOfEventBatchAndNotExtended will succeed.
diff --git a/integrationtests/src/test/java/org/axonframework/integrationtests/eventhandling/TrackingEventProcessorTest.java b/integrationtests/src/test/java/org/axonframework/integrationtests/eventhandling/TrackingEventProcessorTest.java
index 9f42ace..7a29fd6 100644
--- a/integrationtests/src/test/java/org/axonframework/integrationtests/eventhandling/TrackingEventProcessorTest.java
+++ b/integrationtests/src/test/java/org/axonframework/integrationtests/eventhandling/TrackingEventProcessorTest.java
@@ -16,12 +16,14 @@

 package org.axonframework.integrationtests.eventhandling;

+import java.util.concurrent.ConcurrentHashMap;
 import org.axonframework.common.transaction.NoTransactionManager;
 import org.axonframework.common.transaction.Transaction;
 import org.axonframework.common.transaction.TransactionManager;
 import org.axonframework.eventhandling.*;
 import org.axonframework.eventhandling.tokenstore.TokenStore;
 import org.axonframework.eventhandling.tokenstore.UnableToClaimTokenException;
+import org.axonframework.eventhandling.tokenstore.UnableToInitializeTokenException;
 import org.axonframework.eventhandling.tokenstore.inmemory.InMemoryTokenStore;
 import org.axonframework.eventsourcing.eventstore.EmbeddedEventStore;
 import org.axonframework.eventsourcing.eventstore.inmemory.InMemoryEventStorageEngine;
@@ -53,6 +55,7 @@
 import static java.util.Collections.emptySortedSet;
 import static java.util.Collections.singleton;
 import static java.util.stream.Collectors.toList;
+import static org.axonframework.common.ObjectUtils.getOrDefault;
 import static org.junit.Assert.*;
 import static org.axonframework.eventhandling.EventUtils.asTrackedEventMessage;
 import static org.axonframework.integrationtests.utils.AssertUtils.assertWithin;
@@ -132,7 +135,7 @@ public void blacklist(TrackedEventMessage<?> ignoredMessage) {

     @Before
     public void setUp() {
-        tokenStore = spy(new InMemoryTokenStore());
+        tokenStore = spy(new RealisticInMemoryTokenStore());
         mockHandler = mock(EventMessageHandler.class);
         when(mockHandler.canHandle(any())).thenReturn(true);
         when(mockHandler.supportsReset()).thenReturn(true);
@@ -366,6 +369,141 @@ public void testTokenIsExtendedAtStartAndStoredAtEndOfEventBatch_WithStoringToke
     }

     @Test
+    public void testRetryIsDoneWhenStoringTokensBeforeProcessing() throws Exception {
+        initProcessor(TrackingEventProcessorConfiguration.forSingleThreadedProcessing()
+                                                         .andBatchSize(100),
+                      builder ->  builder
+                                //.storingTokensAfterProcessing()
+            );
+        CountDownLatch countDownLatch = new CountDownLatch(2);
+        doAnswer(i -> {
+            final Object[] args = i.getArguments();
+            for (final Object argument : args) {
+                System.out.println("argument: " + argument);
+            }
+            countDownLatch.countDown();
+            throw new RuntimeException("explode!");
+
+        }).when(eventHandlerInvoker).handle(any(), any());
+        testSubject.start();
+        eventBus.publish(createEvents(1));
+        assertTrue("Expected event handler to be called at least twice (i.e. retried)",
+                   countDownLatch.await(5, TimeUnit.SECONDS));
+    }
+
+    /**
+     * Copy and paste of org.axonframework.eventhandling.tokenstore.inmemory.InMemoryTokenStore
+     * with a change to TokenStore.storeToken(TrackingToken, String, int) (see comment)
+     */
+    public static class RealisticInMemoryTokenStore implements TokenStore {
+
+        private static final GlobalSequenceTrackingToken NULL_TOKEN = new GlobalSequenceTrackingToken(-1);
+
+        private final Map<ProcessAndSegment, TrackingToken> tokens = new ConcurrentHashMap<>();
+
+        @Override
+        public void initializeTokenSegments(String processorName, int segmentCount) throws UnableToClaimTokenException {
+            initializeTokenSegments(processorName, segmentCount, null);
+        }
+
+        @Override
+        public void initializeTokenSegments(String processorName, int segmentCount, TrackingToken initialToken) throws UnableToClaimTokenException {
+            if (fetchSegments(processorName).length > 0) {
+                throw new UnableToClaimTokenException("Could not initialize segments. Some segments were already present.");
+            }
+            for (int segment = 0; segment < segmentCount; segment++) {
+                tokens.put(new ProcessAndSegment(processorName, segment), getOrDefault(initialToken, NULL_TOKEN));
+            }
+        }
+
+        @Override
+        public void storeToken(TrackingToken token, String processorName, int segment) {
+            // unlike InMemoryTokenStore do _not_ hook into the UnitOfWork.isStarted/afterCommit
+            // as because AFAIK all other implementations simple save when told to instead of
+            // doing some afterCommit trick
+            tokens.put(new ProcessAndSegment(processorName, segment), getOrDefault(token, NULL_TOKEN));
+        }
+
+        @Override
+        public TrackingToken fetchToken(String processorName, int segment) {
+            TrackingToken trackingToken = tokens.get(new ProcessAndSegment(processorName, segment));
+            if (trackingToken == null) {
+                throw new UnableToClaimTokenException("No token was initialized for segment " + segment + " for processor " + processorName);
+            } else if (RealisticInMemoryTokenStore.NULL_TOKEN == trackingToken) {
+                return null;
+            }
+            return trackingToken;
+        }
+
+        @Override
+        public void releaseClaim(String processorName, int segment) {
+            // no-op, the in-memory implementation isn't accessible by multiple processes
+        }
+
+        @Override
+        public void deleteToken(String processorName, int segment) throws UnableToClaimTokenException {
+            tokens.remove(new ProcessAndSegment(processorName, segment));
+        }
+
+        @Override
+        public void initializeSegment(TrackingToken token, String processorName, int segment) throws UnableToInitializeTokenException {
+            TrackingToken previous = tokens.putIfAbsent(new ProcessAndSegment(processorName, segment), token == null ? NULL_TOKEN : token);
+            if (previous != null) {
+                throw new UnableToInitializeTokenException("Token was already present");
+            }
+        }
+
+        @Override
+        public boolean requiresExplicitSegmentInitialization() {
+            return true;
+        }
+
+        @Override
+        public int[] fetchSegments(String processorName) {
+            return tokens.keySet().stream()
+                .filter(ps -> ps.processorName.equals(processorName))
+                .map(
+                    ProcessAndSegment::getSegment)
+                .distinct()
+                .mapToInt(Number::intValue)
+                .sorted().toArray();
+        }
+
+        private static class ProcessAndSegment {
+
+            private final String processorName;
+
+            private final int segment;
+
+            public ProcessAndSegment(String processorName, int segment) {
+                this.processorName = processorName;
+                this.segment = segment;
+            }
+
+            public int getSegment() {
+                return segment;
+            }
+
+            @Override
+            public boolean equals(Object o) {
+                if (this == o) {
+                    return true;
+                }
+                if (o == null || getClass() != o.getClass()) {
+                    return false;
+                }
+                ProcessAndSegment that = (ProcessAndSegment) o;
+                return segment == that.segment && Objects.equals(processorName, that.processorName);
+            }
+
+            @Override
+            public int hashCode() {
+                return Objects.hash(processorName, segment);
+            }
+        }
+    }
+
+    @Test
     public void testTokenStoredAtEndOfEventBatchAndNotExtended() throws Exception {
         testSubject = TrackingEventProcessor.builder()
                                             .name("test")

Hello.
Might I be able to help in any way to get the required information? I find this issue rather serious as it could also lead to messages never being handled.

@jmferland, firstly, sorry for keeping you waiting.
We've seen this issue with a couple of others users as well. The last occurrence who encountered this problem had incorrectly defined their TransactionManager incorrectly, which I will explain a little further.
The TransactionManager will start the transaction prior to preemptively (indeed for performance boosting) store the TrackingToken. This transaction should correctly be carried over in the UnitOfWork which will (1) retrieve the stream of events, (2) provide them to your event handlers, (3) update your query models and (4) store your query models.
I would this expect that if something fails within this process with a thrown exception, that the entire UnitOfWork will be rolled back, including the adjustment of the TrackingToken.
Although I am not entirely sure why I added "Information Required" on the 25th of September (for which I am terribly sorry...), I think that's because I was still verifying this with the other user. Concluding, would you be able to point out that you are setting the TransactionManager correctly from within the TrackingEventProcessor? If it's the NoOpTransactionManager, then somewhere the right version isn't being picked up sadly.
Granted, it is definitely beneficial if it would be easier to adjust this performance boost. I would like to use this issue you've filed to that end, if you don't mind. In the mean time, if you would be able to verify the TransactionManager being used, I hope that will resolve this concern of yours.


Undefined ls-remote when install wtih on another project on Npm

Hi,
I use tableexport.jquery.plugin a node project on windows 10 with npm. When I try to install on this project on npm I get this error.
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno ENOENT
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t<EMAIL_ADDRESS>Can you help for this?

This is not a problem with this repository.


Youtube extractor fails on playlists

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2022.05.18 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Description
I'm running yt-dlp (git version, updated through aur) on manjaro linux.
After updating today (06/06 - 5 commits), i noticed that playlists never loaded on mpv. Testing with yt-dlp by itself provides the same error. Regular youtube downloads work fine. Tried with several playlists, all error out in the same way. Current version on my machine is
 ~> paru -Q yt-dlp-git
yt-dlp-git 2022.05.18.r62.gdec30912a-1

Verbose log
[debug] Command-line config: ['-vU', 'https://www.youtube.com/playlist?list=PLtWyX5YeBQtN6I_CWi3AYUq-y0NWgk9xg']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.05.18 [b14d52355]
[debug] Lazy loading extractors is disabled
[debug] Python version 3.10.4 (CPython 64bit) - Linux-5.17.12-1-MANJARO-x86_64-with-glibc2.35
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 5.0 (setts), ffprobe 5.0, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.12.0, brotlicffi-<IP_ADDRESS>, certifi-2021.10.08, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
Latest version: 2022.05.18, Current version: 2022.05.18
yt-dlp is up to date (2022.05.18)
[debug] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLtWyX5YeBQtN6I_CWi3AYUq-y0NWgk9xg
[youtube:tab] PLtWyX5YeBQtN6I_CWi3AYUq-y0NWgk9xg: Downloading webpage
ERROR: YoutubeBaseInfoExtractor.extract_yt_initial_data() got an unexpected keyword argument 'fatal'
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1420, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1490, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/common.py", line 642, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py", line 3860, in wrapper
    info_dict = func(self, url, smuggled_data)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py", line 5338, in _real_extract
    data, ytcfg = self._extract_data(url, item_id)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py", line 4511, in _extract_data
    webpage, data = self._extract_webpage(url, item_id, fatal=webpage_fatal)
  File "/usr/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py", line 4464, in _extract_webpage
    data = self.extract_yt_initial_data(item_id, webpage or '', fatal=fatal) or {}
TypeError: YoutubeBaseInfoExtractor.extract_yt_initial_data() got an unexpected keyword argument 'fatal'

Issue is fixed. Thanks for being so fast! Have a good one


feat: Make ui a Python package extra

Fix #7006

Thanks @WillDaSilva . I'll keep them in mind.

@rawwar Any more progress on this? Happy to help if I can.

In case anyone is interested in taking a look. I have a very rough set of code that seems to pull this off
https://github.com/jlloyd-widen/meltano/tree/feature/ui-extra
I made it as a PR to @rawwar 's branch.
It does not add the ui extra to the set of tests however. Nor have I addressed the Docker image. I was unsure of the way to approach either if someone wants to make a suggestion...

It does not add the ui extra to the set of tests however. Nor have I addressed the Docker image. I was unsure of the way to approach either if someone wants to make a suggestion...

Thanks @jlloyd-widen! For the tests part, you might wanna take a look at how those are handled in the noxfile: https://github.com/meltano/meltano/blob/20f38e75d07d9900b077fa4609e4228ff4eccac3/noxfile.py#L37-L41
As for the Docker image, it's a similar approach: https://github.com/meltano/meltano/blob/20f38e75d07d9900b077fa4609e4228ff4eccac3/docker/meltano/Dockerfile#L25
Does that help?

@edgarrmondragon Great, thanks! I added that. Now, I think it's a matter of @rawwar merging my PR into his branch, or I create a new PR directly to this meltano repo ...

@jlloyd-widen  Just merged your pr into the current one

The UI has been removed altogether in v3. Thanks for the work on this @rawwar!


Add folders to Deities Compendium and additional clean up from Divine Mysteries

Created folders based on the categories provided in the Web Supplement and moved all corresponding items to them. There are a couple of stragglers, namely any OGL deities that didn't get reprinted and Razmir (he's not cool enough per Paizo to be in their own category).
Removed the some duplicate entries that were renamed in Divine Mysteries:

Sovyrian Conclave replaces Elven Pantheon
Stone's Blood replaces Dwarven Pantheon
Norns replaces Followers of Fate
Radiant Prism replaces The Prismatic Ray

Updated the following items to philosophy:

Changed Sangpotshi to Philosophy
Changed Shoanti Animism to Philosophy

Added one missing deity:

Added Zibik

Renames should probably go in the remaster journal?

Renames should probably go in the remaster journal?

It's in now


chore: release 1.6.0

:robot: I have created a release *beep* *boop*
1.6.0 (2021-11-15)
Features

change parser to madlad (#35) (3aacc6a)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/furious-commander/furious-commander/releases/tag/v1.6.0 :sunflower:


[WSL 2] Tight loop of wsl --shutdown / start put the utility VM in a blocked state

Your Windows build number:  Microsoft Windows [Version 10.0.19025.1]

What you're doing and what's happening:

We have a test case in Docker Desktop test suite that shutdown wsl while Docker is running, and restart it a few times in a row.
The test fails randomly, and when it does, WSL becomes totally unusable (either the docker-desktop nor ubuntu work anymore) (running wsl --shutdown puts everything back to work).
Even wsl -d Ubuntu dmesg does not work at this point.

What's wrong / what should be happening instead: wsl should always restart correctly

Strace of the failing command, if applicable:  n/a

For WSL launch issues, please collect detailed logs:
wsl-logs.zip

Can you share some command line repro steps please?

I'll try to find a simple one but unfortunately my current repro case involves docker desktop. And our e2e test suite.

One thing that we do between runs is changing ~/.wslconfig (the test where it sometimes happens try to run Kubernetes with various cpu/ram config)

Ok, I did not find an exact repro for that, but here is some context + a partial problem repro:
Docker desktop run some processes within wsl and try to automatically restart them when they terminate. Examples of those processes are:

docker-desktop-data keep alive (ensure the distro is alive so that it /mnt/wsl mounts stay alive)
vpnkit-bridge the named pipe to unix socket proxy/reverse proxy that we run to enable interaction from win32 processes to linux services (and vice-versa)
Linux workspaces proxies - handle exposition of the docker socket + handle bind mounts.

So my guess is that somewhere within WSL system, there might be some race condition when the utility VM is restarted.
I made a test case for reproducing this kind of scenario (
concurrency-test.zip), and while it does not reproduce a full utility VM deadlock as Docker desktop does, it does reveal a race somewhere (which might lead to something more serious with what we do in Docker Desktop - mounting things, creating namespaces, etc.).
This repro is made of 3 powershell scripts that must be run concurrently:
restart-loop.ps1 restarts wsl every 2 s.
Function WSL_Shutdown() {
    & wsl --shutdown
    return $LASTEXITCODE -eq 0
}

Function WSL_Hello(){
    & wsl echo "hello world"
    return $LASTEXITCODE -eq 0
}

While(WSL_Shutdown -and WSL_Hello) {
    Start-Sleep -s  2
    Write-Host "restarting"
}

dmesg-loop.ps1 print kernel messages in a loop (-w is for following)
While($True) {
    & wsl -u root dmesg -w
    Write-Host "Exited with code $LASTEXITCODE"
}

cat-loop.ps1 blocks on /dev/stdin in a loop
While($True) {
    & wsl cat /dev/stdin
    Write-Host "Exited with code $LASTEXITCODE"
}

When you run those 3 scripts concurrently you quite often see (and the more you run concurrent scripts, the more you see them):
Cannot create a file when that file already exists.
Exited with code -1

(I also checked with adding -e on wsl scripts to avoid running the script within the default distro shell, it has the same effect).

I made a small hack in a docker desktop branch to avoid having concurrent wsl commands on wsl --shutdown, I then run our flakky test in a loop. Seems to workaround the issue.
Fixing the root cause seem desirable though, but at least we are able to workaround this :)

Thanks for the info.  Looks like this is related to \\wsl$\.  I'll take a look with @SvenGroot.


Simulator crash when profile allocation with RealmSwift

App in simulator always crash when I profile allocation with default config. I have to turn off Identify virtual C++ objects to fix this problem.

Thanks for reporting this, @ares-huy-le. This could take some time to debug. Do you have any idea why this could be happening?

I can't reproduce this with this sample app, Xcode 7.3.1 and Realm Swift 1.0. If anyone manages to reproduce this, please open a new issue: https://github.com/realm/realm-cocoa/issues/new