paket.exe restore hangs after (successfully) finishing its job

Hey,
posted this already in https://github.com/fsprojects/Paket/issues/3412 but it seems this has no effect, since that Issue is rather old. So i decided to open a new issue.
We have somewhat same problem here, as in https://github.com/fsprojects/Paket/issues/3412 issue. All stuff is done and paket.exe restore simply not returns. But there seems to be no activity.
I attached 2 screenshots here:

Console output of our build.cmd script (a simple batch file starting paket.exe restore)
--> Screenshot1: ConsoleOutput.png
Sysinternals Process Monitor Screenshot of paket.exe process
--> Screenshot2: ProcessMonitor.png

After the CloseFile() (Screenshot2) nothing happens, but paket.exe in our script not returns (Screenshot1).
Additional informations:

It doesn´t matter if paket.exe is started from cmd.exe, PowerShell, or the new Windows Terminal.
It doesn´t matter if paket.exe restore needs to restore or not (in Screenshot1 all packages were up2date).

Used environment:

Output of paket.exe --version: Paket version 7.2.1+8e4eb74b42fbd45f39f7afce9184c16ebb65f16c
Windows 11 Pro Version 22H2 Build 22621.1848
Visual Studio 2022 Version 17.6.3 (but doesn´t matter here)

We are a big company (but using my personal GitHub account here), developing and maintaining 1 giant .NET enterprise software product and we use paket.exe since years now. And this is a non-critical (but annoying) problem we have, since quite a while. The paket.exe restore does what it should (restore packages) and all is fine. The paket.exe simply not returns. We "fixed"it, by using a self-written tool, that scans for a paket.exe process and, if found, kills the process, so our script can continue then. But that´s more of a band aid patch than a solution. 😉
Any help is very appreciated!
Best regards

Could you somehow:

build a debug version of paket.exe (with the .pdb aside)
when it hangs, attach to the process using your debugger and do a survey of the stack traces of each thread having something going on

I don't think I've faced this (as a long time user) but I'm never using custom sources that require anything fancy but plain nuget.org, public sources, or folder access for example.
It may be relevant that you share what may be relevant information about your paket.dependencies/lock files if you have ability.

Hi,
thanks a lot for the reply. I will try to supply what you asked for. Could take a bit of time maybe.
FYI: I assume this issue is the same effect as this issue: https://github.com/fsprojects/Paket/issues/4216

It would be interesting also, to see if there are subprocesses that paket would launch (such as dotnet itself).
Maybe there is some kind of deadlock over files, when dotnet commands may be spawned by paket? (I'm not sure the implementation is doing this, just trying to look for hypothesis that the hanging could also be in an external process).
Also, some commands has to scan all paket.references in your tree, you may consider trying to identify, if a part of your tree is causing the issue in particular, it may help you do a surface binary search on this hypothesis.

Should i then not see the spawned child procs in ProcesssMonitor?

Yes, you definitely would see such processes.

Is there some documentation about compiling/building paket so i can build (and inspect what’s going on) on my own?

@MBODM no issue and sorry I didn't see your previous message up to now either...
To build, I recommend a windows machine with VS 2019 and the 4.6.1 targeting pack, it should work relatively smoothly with just a call to the build.cmd, and then in Visual Studio.
With VS 2022, somehow I'm facing issues with .net targeting pack which are cumbersome to figure out.
Stepping into the code / attaching to the process works the same as with C#/VB.NET so just overlook the syntax in meantime, I'm confident you'll be able to get to the bottom of where the process is hanging, form which point, people with more knowledge of the paket implementation may be able to provide guidance on ways to fix the issue.
Please bring build issues (text output) in this thread if you face anything that would feel like it is blocking you.

Hmm,
we are still investigating and i am still not sure what it´s all about.
At the moment i can state the following facts:

We download version 7.2.1 of paket.Bootstrapper.exe
We rename paket.Bootstrapper.exe to paket.exe
We run paket.exe --version

Result:

Then we do the following things:

We download version 7.2.1 of paket.Bootstrapper.exe
We run paket.bootstrapper.exe -v --version

Result:

I finally can reproduce it! 😃

We download version 7.2.1 of paket.Bootstrapper.exe
We rename paket.Bootstrapper.exe to paket.exe
We make sure that C:\Users\USERNAME\AppData\Local\Temp does NOT contain a paket folder.
If it´s there we delete it.
We run paket.exe --version

All works fine and paket.exe returns to terminal.
Now we do the following instead:

We download version 7.2.1 of paket.Bootstrapper.exe
We rename paket.Bootstrapper.exe to paket.exe
We make sure that C:\Users\USERNAME\AppData\Local\Temp does DOES contain a paket folder, created by some previouspaket.exe call.
If it´s there we DO NOT delete it.
We run paket.exe --version

The problem occurs and paket.exe does not return to terminal.
Why?

First: Thx for the reply!
I have no news about that, but i just dropped in, to say: „Try it on a Windows 11 machine.“
I have no (easy) access to a Windows 10 machine (to compare behaviours) in my company. Not sure about Windows 11 is the problem here, but i only can say the above, already said, things. And i can say that i use a 4 weeks old Windows 11 machine, fresh installed, using Paket.exe the ty

Ok – so you expect me/the maintainers to have a Win11 ready for testing, but you, using this free product for commercial gain, cannot invest the time to attach a debugger once, to assist us volunteers helping you fix your problem for free?
For someone with your experience it should be an easy task to get us the line of code, that hangs from attaching a debugger.
I would even take a process dump, and analyze that for you (which is literally right click -> Create Dump, and upload to GitHub), if you say it’s to much to ask of your company to invest the few minutes the debugger thing would take to further a free product, that they benefit from, and seem to, a certain extend, to rely on.

Hi,
hmm... ok. Sorry, if said something wrong above. Not sure about it, when i read between your lines.
Let me add 3 statements here:

Your first question: Yes. That´s exactly what i assume. That you are capable to test your own software.

Don´t get me wrong: I am an open source contributor and a friend (i can´t find a better word, since english is not my native language) of open source software since more than 2 decades. And also the Paket tool is/was very appreciated. And i/we are totally aware of the fact, that it´s a helpful addition to a .NET (Classic Framework) toolbox.
But i want to make 1 thing absolutely clear here: I/We did not expect anything from you, or the maintainers. And i also not really get, where, in my above posts, i ever showed an "i expect this from you guys" stance.
Also please don´t missunderstand my intension, with that issue. My major intention, way before our own commercial benefits, was exactly for the reason you talk about: To give something back and let you know that issue.  b) Open a halfassed 2-statements-issue. Instead i clearly inspected it (besides the debug dumb) and openend a well-documented issue here, for your (or the open source mindset´s) pleasure, not mine/our.
Foremost related to the fact, that the classic .NET Framework is more and more fading away and we anyway are 80% through the steps to use the newer SDK project style format (which makes Paket obsolete).
So you are completely free to do with this infos or this issue whatever you want. It´s your software and your GitHub account. You are wether related to, nor dependent on, ppls like us/me. So feel free to close the issue and/or ignore the posts above. It´s totally up to you and i assume i never sounded like i don´t think or expect that.

I quickly tested the above steps yesterday, on a private Windows 10 machine, of a friend of mine. The issue not occurred. So i assume more and more it´s a Windows 11 issue. The rest is up to you.
Anyway, have a nice day.

GitHub also shows to me, that you closed the issue. I took this into account while writing which looks like throwing your hands up.
If you can, reopen it. If not I suggest creating a new one (or using the other one opens by you).
I am still convinced that the best way forward is the debugger-thing or dump which I am still open to assist with.

Hmm, no clue why GitHub stated that. I did not closed the issue.
I try to reopen the issue, by using the „Reopen with comment“ button below, with this comment.


Add Instant View to Telegram

For faster loading.

You create instant views via Official Telegram Instant View Platform.

Good idea! Can you help?

Maybe, in some day... Have no time now.

According to this page:
https://stackoverflow.com/q/45142770
It's really not possible in any way to submit a Telegram Instant View, since years. So, this is really a "cannot fix".


Handle a null (buffer-file-name) when white/black listing

I ran into trouble when exporting some Org files that had Haskell ~src~ blocks since I switched to white-listing.

Thanks, I've noticed this too but didn't look into it.


Support multiple expansions

In @foo @bar <some definition> only the leftmost annotation is going to expand.
This happens because the macro engine needs to remove the currently expanded annotation from the list of annotations on the expandee. Current implementation has no reliable way to determine which annotation is the one, so it nukes everything.
This should be relatively easy to fix. In the worst case, the typechecker knows about the index of the expanded annotation, so it just needs to communicate it to the expanded.

I presume this is the same issue shown in https://gist.github.com/DavidDudson/b2fb2f51c8919a1584911dc5bd5c1d61
On the topic of multiple expansion.
Which order does/should the compiler expand these annotations?
Eg. @foo @bar <some definition> Does foo expand before or after @bar
Another example
@Foo
object SomeObject {
  @Bar
  def main(args: Array[String]) = {}
}

Does Foo expand before Bar?

well, it depends if you at handle this @bar or @bar :p

How many mentions do you get daily? I realised my mistake instantly and switched it, but obviously it was too late haha

@DavidDudson Hmm, actually it's some different issue. This one is only about putting multiple annotations on a single definition.
I'm currently finishing my PhD dissertation, so it may take a few days for me to look into this. Would you be interested in taking a look at the sources of the plugin and maybe contributing a fix?
Answering your questions:

Def macros expand inside out, i.e. macros in enclosing code expand earlier. That's because arguments of def macros are typechecked before the expansion of a def macro takes place, and typechecking causes expansions.

Macro annotations expand outside in, i.e. enclosing macros expand earlier. That's because macro annotations are untyped. Annottees of macro annotations may not even make any sense before the enclosing annotations expands, so we can't typecheck them before.

In your examples, I would expect @foo to expand before @bar and @Foo to expand before @Bar. Otherwise it's a bug.

Okay, I'll see what I can do. Need to get my head around the library a little better yet (And no IDE support makes it harder 😦). I might fix both this and the multiple expands problem if I can. I'll create another ticket for the other issue then.


subscription()->cancel() throws Exception

I'm using dev-master to pull in Cashier, and when I try to cancel the subscription using
$user->subscription()->cancel() I get:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Call to a member function cancel() on a non-object

I also tried the cancelNow(), but not working.
Just note that when I use ~1.0 for Cashier, this works, but doesn't update subscription_ends_at field in the database.

I am using php api library V 2.2.0
I am going to cancel subscription using following code:
$customer = \Stripe\Customer::retrieve({CUSTOMER_ID});
$customer->subscriptions->retrieve({SUBSCRIPTION_ID})->cancel();
But its throwing me following error.
Fatal error: Call to a member function retrieve() on a non-object ...
can you assist me, I need to update api library ?

For now, I have tried with new version of php library, but still not working , still throwing following error
Fatal error: Call to a member function retrieve() on a non-object ...


The value of router.currentRoute.value.fullPath is /

Version
4.0.14
Reproduction link
jsfiddle.net/m0a3o2pt/
Steps to reproduce
use router.currentRoute.value.fullPath in main.js
What is expected?
the value of router.currentRoute.value.fullPath  is the current url.
What is actually happening?
the value of router.currentRoute.value.fullPath  is /.

setTimeout(() => {
  console.log(router.currentRoute.value.fullPath)
}, 50)

can get the correct url,
but
setTimeout(() => {
  console.log(router.currentRoute.value.fullPath)
}, 0)

still get / as the result.
Is this a bug or how to get the correct result instantly?

As explained in other issues, because navigations are async, in the beginning, the current location is a nowhere state.

The Doc say that we can use router.replace(router.currentRoute.value.fullPath) to trigger navigation that make addRoute work
https://router.vuejs.org/guide/advanced/dynamic-routing.html#adding-routes
router.addRoute({ path: '/about', component: About })
// 我们也可以使用 this.$route 或 route = useRoute() （在 setup 中）
router.replace(router.currentRoute.value.fullPath)

However, if we use router.currentRoute.value.fullPath in the beginning, the router.currentRoute.value.fullPath is /.
This will cause a problem that all url will be redirected to /
How to deal with this problem ?


Verifiable Presentation holder binding

This is a work-in-progress implementation of a delegatable holder binding for verifiable presentations.
Currently, if a VP holder property is present (it is optional since #407), it must match the verification method of a proof that verifies (or of the kid claim if the VP is a JWT), by the verification relationship in the holder's resolved DID document corresponding to the proof's proofPurpose ("authentication" for JWT-VP).
The desired change is to allow the proof verification method controller to be different from the holder and not in the holder's DID controller set, but rather to be an entity that is authorized (perhaps transitively) by the holder using signed messages/objects.
The authorization would be like an authorization capability (as in https://github.com/w3c-ccg/zcap-spec), but rather than acting on an invocation target with allowed actions and being invoked with a separate message, the capability is like an authorization to use the verification relationship - perhaps attenuated to presentation of specific credential types. This capability object would be included in a verifiable presentation alongside existing verifiable credentials.
The approach used here is to add a holderBinding property of a verifiable presentation, which will contain an object with a "type" property. Using JSON-LD's extensibility model, the holder binding type should be a term that expands to a IRI via the @context. The example type used here is ExampleHolderBinding2022 (https://example.org/example-holder-binding#ExampleHolderBinding2022).
The implementation adds a function Presentation::get_authorized_holders which executes code based on the holder bindings in order to return an array of authorized holders for the VP. This is how verification methods signing the VP proof can be valid for the VP without a direct relationship from the VP holder to the VP verification method (key id): the holder bindings assert the verification relationship from VP's identified holder to the "acting holder" that signs the VP proof. In this model, a holder binding type implementation is expected to produce an array of additional authorized holders for the purpose of checking the VP's proofs - which the get_authorized_holders function then returns. This is analogous to a a zcap controllers set in https://github.com/w3c-ccg/zcap-ld/issues/39 (like the invokers set but for DIDs instead of VMs).
A blocker for this implementation currently is that there are additional check done outside of the proof verification, i.e. the ensure_or_pick_verification_relationship function in src/ldp.rs, which will need to be updated. The get_issuer function could be adjusted to return multiple issuers/controllers - using the same get_authorized_holders function in the VP implementation. This change is needed both for the case where the verificationMethod proof option is not passed and a verification method is picked (pick_default_vm) and for when the verificationMethod option is passed (ensure_verification_relationship - since the VM doesn't directly correspond to the issuer/holder when using this kind of holder binding); if we wanted to support just the case of explicitly verificationMethod proof option, that could be done by simply omitting the ensure_verification_relationship check (being aware that this could cause signing proofs which are not valid).

I think I must have messed something up when rebasing on top of #457, they are restored

The CI didn't run on this branch, could you bump the PR to make sure everything is green before merging?

You can re-ignore the test, I'll investigate it later


[mesheryctl] Make stop wait for namespace to be deleted

Description
With stop operation, mesheryctl now polls kubernetes client waiting for meshery namespace to be deleted. This also fixes restart operation conflicting with namespace delete operation.
This PR fixes #4951
Notes for Reviewers
To test the changes

Run make inside mesheryctl/ directory to generate the binary
Run ./mesheryctl system start from within mesheryctl/ directory and let the deployment complete
Now run ./mesheryctl system stop and wait for the cli to exit
Verify that kubectl get namespace does not show the meshery namespace
Run ./mesheryctl system restart also to make sure the restart happens without any errors.

Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #5021 (cf7e6d4) into master (a811f2e) will decrease coverage by 6.71%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #5021      +/-   ##
==========================================
- Coverage   32.47%   25.76%   -6.72%
==========================================
  Files          61       61
  Lines        5028     5049      +21
==========================================
- Hits         1633     1301     -332
- Misses       2991     3454     +463
+ Partials      404      294     -110

Flag
Coverage Δ

gointegrationtests
?

unittests
25.76% <0.00%> (-0.11%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/check.go
1.01% <0.00%> (-23.05%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
1.69% <0.00%> (-23.31%)
:arrow_down:

mesheryctl/pkg/utils/healthcheck.go
10.71% <0.00%> (-6.77%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.92% <0.00%> (-54.81%)
:arrow_down:

mesheryctl/internal/cli/root/system/restart.go
2.50% <0.00%> (-47.50%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
1.14% <0.00%> (-43.68%)
:arrow_down:

mesheryctl/internal/cli/root/system/update.go
1.05% <0.00%> (-34.74%)
:arrow_down:

mesheryctl/internal/cli/root/system/logs.go
3.29% <0.00%> (-20.88%)
:arrow_down:

... and 2 more

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 5ea7be1...cf7e6d4. Read the comment docs.

It was suggested in the last development meeting that we cancel the restart operation if the stop operation times out without the deployments stopping.

Hey @piyushsingariya @leecalcote, mind having a look at this? Thanks :D

It was suggested in the last development meeting that we cancel the restart operation if the stop operation times out without the deployments stopping.

@piyushsingariya @hexxdump. I would love to know your thoughts on this

I like this strategy but I'm not sure if this is a solid one. waiting for the namespace to get deleted isn't a good option, rn in restart we are deleting namespace and we create it again, although that should not be the case, restart should only delete resources and restart the resources.
I would like you to push in a direction where we could poll till the resources are deleted.

This could use the AreMesheryComponentsRunning from https://github.com/meshery/meshery/commit/8b8d110283743ccd8b025ae5f51c50c2cddfbc02 right?

@gr455 I think that would work here better!

@gr455 I think that would work here better!

Unfortunately, this does not work because AreMesheryComponentsRunning only checks if the deployments are deleted. When deployments are deleted, the pods might still exist in terminating state. So this still fails.

@gr455 I think that would work here better!

Unfortunately, this does not work because AreMesheryComponentsRunning only checks if the deployments are deleted. When deployments are deleted, the pods might still exist in terminating state. So this still fails.

Ohh I see, can you check the --force flag in the stop command, I think you can come up with a function that would be WaitForMesheryResourceDeleted which would be a better and best option for doing this.

Sorry for bugging you @piyushsingariya, can you give me an idea of what all resources to poll for. Should it be the same as those that are deleted in the ForceCleanupCluster function? If so then I am confused why we are deleting replicaSets explicitly, aren't replicasets a part of deployments?

Sorry for bugging you @piyushsingariya, can you give me an idea of what all resources to poll for. Should it be the same as those that are deleted in the ForceCleanupCluster function? If so then I am confused why we are deleting replicaSets explicitly, aren't replicasets a part of deployments?

Yeah, deployment is a higher-level concept that manages replicaSets, I was in flow while writing that code, I forgot and added that piece of code, deleting deployments would delete replicaSets because of the delete policy. You can remove that particular part of code(do test it though).
In an ideal world, we should poll for all kinds of resources Meshery uses in clusters.

@gr455 Quick question: Does this handle system restart failing to start Meshery as it is being stopped?

@gr455 Quick question: Does this handle system restart failing to start Meshery as it is being stopped?

Yes this should handle that. I'm actually changing this PR a bit to poll for components instead of the namespace, but either way it should handle that

Seems like another linting problem which was not caught locally :(.
Anyway, this time we poll resources and if namespace is set to be deleted, then we poll namespace too (without this, the restart error persists)

Let's go @gr455 !

LGTM! Amazing work @gr455 partying_face balloon

Finally got this done! :tada: Thank you for sticking around


Remove Duplicate Power Off Wording

Remove duplicate power off text in step 3 of post provisioning instructions
https://www.flowdock.com/app/rulemotion/r-product/threads/sVIe2KkOGO3xRa2V0ts7M2FTzyA

Instructions fixed as per the mentioned PR


Partially downloaded models

When I  download a model and somehow the download gets interrupted, when I try to use it, llm does not give any error message and responds with newlines. Is there any way I can delete or reload a partially download model?

Thanks, that helped!

I tried to download the gpt4all models but got this error: ValueError: Request failed: HTTP 404 Not Found

I'd just like a way to delete a model, period. :)


Random assertion error in testThaliManagerCoordinated.js

Tested on Nexus6 and two HTC10
09-15 13:08:27.459 18999-19058/com.test.thalitest E/jxcore-log:
 Error in .on("change", function): {
 [AssertionError: If beacons werepreviously updated then there has to be a refresh timer for them.]
  name: 'AssertionError',
  actual: null,
  expected: true,
  operator: '==',
 message: 'If beacons werepreviously updated then there has to be a refresh timer for them.',

See the full log.

This is a straight up bug and needs to be fixed. I doubt it's Android specific. But probably the more constrained Android environment made it show up.

It was fixed today


M1Macbook自启动就会提示出错

M1Macbook自启动就会提示出错
再自行到menubar 点击80%就提示OK按钮

I just updated the program, please try to close and re-open the app. The issue should be solved now!


Optimised keyedColumn() and map() for MySQLQuery

I'm not sure if you want DB specific implementations like this but thought I'd create a PR in case there was interest.

I don't think we mind MySQL-centric syntax in the MySQL classes.
What kind of performance increase does this give and why is it more performant than what we have?

Well look at that. @kinglozzer @tractorcow
Please can we get some test coverage (skip the tests if not a mysql driver)? Then I'm happy :)

I guess there's no existing test that uses keyedColumn so the current code isn't tested either. I'll write a test this week and added it to this PR.

Makes sense to me, but I think we need our database overlord @tractorcow to sign this off 😄

testfailure on postgres - the keys (IDs) are different. We need to make sure the test doesn't make assumptions about what the IDs are and instead pull them out of the DB...

Yeah, I'll change the test to use the Sort column instead of the ID column - an equally valid test and the Sort values are defined in the fixture.

Oh, whoops, sorry I just pushed a change up (I thought you'd be sleeping)

Thanks for the test coverage, super helpful. Once this is green, I'll merge. It's going into master and so @tractorcow can revert if he doesn't like it.
Can we make any of these kinds of improvements to other parts of core?

I'm working on performance of our installation all this week so where I can (and think it'll get merged) I'll raise PRs. Some of my improvements only work because I can make assumptions that won't hold true for everyone.

OK - great, thanks - really appreciate that :)

@mikenz also, if you find any areas that are bottlenecks but can't submit a PR for them, please raise them as issues.

Sorry, this needs to be reverted since it's not compatible with mysql-nd, and is breaking sites. =(


Update get_pods_info don't crash in case of targeted pod is not ready

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.

Integrated the suggested code in another merge request


FBC-236 - Issues with credit events

Signed-off-by: Elisa Kendall<EMAIL_ADDRESS>Description
This resolution addresses issues raised against the credit events ontology, including the need to fix inheritance, generalize aspects of the ontology, improve definitions, and complete integration with other parts of FIBO in order to release it.
Fixes: #1155 / FBC-236
Checklist:

[x] I'm familiar with the FIBO developer quide. My contribution meets all the requirements described there.
[x] My contribution follows the principles of best practices for FIBO.
[x] My changes have been reconciled with latest master and no merge conflicts remain.
[x] This PR is related to exactly one issue. The issue is referenced by using a GitHub keyword such as "fixes", "closes", or "resolves".
[x] Hygiene tests have been applied by a PR with "(WIP)" in title.
[x] The issue has been tested locally using a reasoner (for ontology changes).

The main problem needing to be fixed is ObligationSpecificCreditEvent declared as a subclass of BreachOfCovenant (should be the other way round).
the use of "involves" for Entity/ObligationSpecificCreditEvent should be more specific e.g. appliesTo.
hasThreshold/hasGracePeriod should apply to (have domain of) the Agreement.
hasPaymentThreshold seems to duplicate hasDefaultThresholdANMount.
I am generally concerned about the design pattern of using these subclasses of Occurrence which requires OccurrenceKind, which we don't seem to have here. We seem to have a clash of 2 paradigms. Maybe it just needs an explanation.
The others are not showstoppers but I'm concerned about this moving to Release with all these present.

Breach of Covenant applies to any contract whereas obligation-specific credit event applies to credit agreements (which are contracts).  You might review the restrictions to see that.  This is appropriate - not all kinds of contract breaches are specific to credit events, in fact, so I don't want to make that change.
Grace periods apply to more than one class in FIBO, and are needed for things like credit cards (though they may be against the agreement - I'll need to look), but they also apply to some other payment related terms in loans, so I didn't want to constrain it in case that's too specific.

The main problem needing to be fixed is ObligationSpecificCreditEvent declared as a subclass of BreachOfCovenant (should be the other way round).
the use of "involves" for Entity/ObligationSpecificCreditEvent should be more specific e.g. appliesTo.
hasThreshold/hasGracePeriod should apply to (have domain of) the Agreement.
hasPaymentThreshold seems to duplicate hasDefaultThresholdANMount.
I am generally concerned about the design pattern of using these subclasses of Occurrence which requires OccurrenceKind, which we don't seem to have here. We seem to have a clash of 2 paradigms. Maybe it just needs an explanation.
The others are not showstoppers but I'm concerned about this moving to Release with all these present.

All of these issues have been addressed with the new updates.  BreachOfCovenant has been moved to Contracts and is much more general than an ObligationSpecificCreditEvent, though.  All credit events are events whose occurrence kind is breach of covenant, and the other issues have been addressed individually.


Import in declaration file breaks import in regular files

.flowconfig
[include]

[ignore]

[libs]
flow-libs/

[options]

flow-libs/lib.js
import {EventEmitter} from 'events';

declare class Foo extends EventEmitter {
  bar(): number;
}

test.js
/* @flow */
import {EventEmitter} from 'events';
const o = new Foo();

Flow gives an error:
test.js:2
  2: import {EventEmitter} from 'events';
             ^^^^^^^^^^^^ Named import from module `events`. This module has no named export called `EventEmitter`.

Found 1 error

Not great but changing flow-libs/lib.js to this makes Flow stop giving an error:
import {EventEmitter as _EventEmitter} from 'events';

declare class Foo extends _EventEmitter {
  bar(): number;
}

(I think I need to find a way to change my declaration files so that it doesn't leak globals like EventEmitter, but that's separate from this issue.)

I don't think Flow really supports imports in declaration files. Use events$EventEmitter to get more reliable behavior. cc @jeffmo

Yes, dependencies within Flow lib definitions are sort of missing right now. It would be great to improve it for this exact case.
However, as @avikchaudhuri mentioned, types within lib definitions are global across dependencies so you can reference stuff like events$EventEmitter directly. We have a nice naming scheme (moduleName$ObjectType) for this and won't break it on you (at least not until after we have a better solution).

@thejameskyle, @avikchaudhuri  could you please provide an example of this ? Right now I have:
file definitions/foo.js:
// @flow
declare module 'foo' {
  declare type $Foo = { testFoo() : string };
  declare type $FooBaz = $Foo & baz$Baz;
}

file definitions/baz.js:
// @flow
declare module 'baz' {
  declare type $Baz = { testBaz() : number };
}

and index.js:
/* @flow */
import type { $Foo, $FooBaz } from 'foo';
import type { $Baz } from 'baz';

var baz : $Baz;

function test(fooBaz : $FooBaz) {
  const s : number = fooBaz.testFoo();
  const n : string = fooBaz.testBaz();
}

My .flowconfig is:
[libs]
definitions/foo.js
definitions/baz.js

When I run flow command I get following:
definitions/foo.js:4
  4:   declare type $FooBaz = $Foo & baz$Baz;
                                     ^^^^^^^ Library type error:
  4:   declare type $FooBaz = $Foo & baz$Baz;
                                     ^^^^^^^ identifier `baz$Baz`. Could not resolve name

flow version: 0.32.0
BTW: if I changing $Baz to Baz will not help.

The $ syntax is just a convention for defining global type declerations. It doesn't do anything special. Here's an example based on yours:
file definitions/foo.js:
// types declared outside of a `module`-block are global.
// prefixed with `foo$` so that it doesn't clash with other definitions and it's clear where it's defined
declare type foo$Foo = { testFoo() : string };

declare module 'foo' {
  declare type LocalFooBaz = { a: boolean }
}

file index.js:
/* @flow */
// `foo$Foo` is always in scope
function test(fooBaz : foo$Foo) {
  return true
}

file other.js:
/* @flow */
import type { LocalFooBaz } from 'foo'
// Throws a type error
const x : LocalFooBaz = { y: 'invalid' }

Hey @Kriegslustig thanks a lot for that snippet, anyway this is .. hm .. far from perfect, cause basically this declaration becomes global... And instead of referencing that from module scope we just pick it as global... So I think there should be consensus about how to deal with it.

Hi @vaukalak! Sorry for the late answer. That is actually in the works https://github.com/flowtype/flow-typed/issues/16.

Now imports are banned in lib files


func_800BB820

The function matches the compilation on decomp, but it does not match locally when building.

Hi! Thanks for your contribution.
Do you have a decomp link so we can check it out?

Hi! Thanks for your contribution. Do you have a decomp link so we can check it out?

Yes of course, this is the link: https://decomp.me/scratch/pmQXj

I see no problems also using gcc 2.8.1 (which should be the right compiler), so it could be a problem in your local configuration.

I see no problems also using gcc 2.8.1 (which should be the right compiler), so it could be a problem in your local configuration.

Do you mean that it actually matches? Should I remove the preprocessor part for the non-matching case?


BGFX good choise for an Game engine and Game?

Hi again!
Sorry for asking stupid questions, but I just have to.
I am in the process of building a game engine and a game with it, and was wondering what to choose for rendering.
My options are Ogre, BGFX, Bare OpenGL.
I probably wont choose Ogre as it offers too much.
So I am wondering if I should choose BGFX or just go with OpenGL alone.
I only intend to develop for Desktop, and OpenGL is supported by Windows, Mac, and Linux so thats not the problem.
But I thought of choosing BGFX as it allows me to have other renderers too if I e.g. want to use DirectX on windows.
But it does require me to learn a new Api, and how to write shaders for it.
So what would you do if you were me?
Or maybe a better questions, what are the benefits of BGFX over OpenGL?(Except for multiple renderers ofc.)
Thanks

cross-platform, multiple renderers, easy to use and learn (only few lines of code to get something working), small, fast, configurable... If you need a low level 3D api to build your stuff from scratch, it's perfect. If you are looking for more higher level, maybe you should consider a game engine or build your own framework with bgfx. You also can integrate bgfx in an existing higher framework to replace integrated renderer, that's what I did with a game engine that suited me.

@fredakilla Thanks for the reply! No no, I am defenitly not looking for game engines or higher level stuff.
But I have another question, are there some PBR shaders I can use, and the corresponding code for it?
The reason I was looking into Ogre was because it didn't require me to write shaders.
Now I can write shaders, but I am not very good at it, and may need to do some additional reading to get something like PBR inplemented in BGFX.(Both because PBR isn't that simple, and because I need to learn the BGFX functions.)
Is there/are there some PBR shaders for BGFX that have an example code, so I can just intergrate it into my engine and game?
And I mean, like something standalone that just requires BGFX, and maybe some texture loader or something.
But not that I have to extract the code from some engine myself.
Thanks!

Not sure what to tell you really, you'll have to make decision yourself. There are examples to follow to see what's possible.

@bkaradzic Well, do you alteast know if there is a PBR shader for BGFX or an example that has an PBR shader?

IBL example: https://bkaradzic.github.io/bgfx/examples.html#ibl


3rd party tools

Configured hotjar for production and sonarcloud
#TISNEW-3933

pr looks good but seems like prettifier hasn't run on your commits. are you using source tree to commit and push? if so not sure how husky would come in to play to auto prettify modified files and also run js and css linting. maybe there is a way to configure source tree to use husky or auto prettify and lint files?
or alternatively if you commit via the command line everything will be automagically done for you as husky pre-commit hook will prettify and run linting before allowing to commit


Support hard tabs

Replace hard tabs with spaces corresponding to tab length.
Fix #48.

I found a better way for this. Please see #51.


Better categorisation of courses linked in "Notes" sections

The way courses are linked in notes seems rather clunky and unreadable, which violates a core aim.

A better formatting style now exists, which I found my perusing the Markdown Cheatsheet. This issue will be marked as resolved.


[tool_crash] StateError: Bad state: Future already completed

Command
flutter --no-color attach --machine --device-id=emulator-5554 lib/main.dart

Steps to Reproduce

...
...
...

Logs
StateError: Bad state: Future already completed
#0      _AsyncCompleter.complete (dart:async/future_impl.dart:35:31)
#1      FlutterDevice.connect.<anonymous closure> (package:flutter_tools/src/resident_runner.dart:338:17)
<asynchronous suspension>

[✓] Flutter (Channel beta, 3.4.0-34.1.pre, on macOS 13.0.1 22A400 darwin-arm64, locale en-IL)
    • Flutter version 3.4.0-34.1.pre on channel beta at /Users/giliyohanan/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 71520442d4 (3 months ago), 2022-10-05 16:38:28 -0500
    • Engine revision db0cbb2145
    • Dart version 2.19.0 (build 2.19.0-255.2.beta)
    • DevTools version 2.18.0

[!] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/giliyohanan/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[!] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    ✗ Xcode end user license agreement not signed; open Xcode or run the command 'sudo xcodebuild -license'.
    ✗ Xcode requires additional components to be installed in order to run.
      Launch Xcode and install additional required components when prompted or run:
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
        This can usually be fixed by re-installing CocoaPods.
      To re-install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.68.1)
    • VS Code at /Users/giliyohanan/Downloads/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code 2.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 13 (API 33) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.

Flutter Application Metadata
Type: malformed
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: null
Creation framework version: null
Plugins
cloud_firestore_web-3.1.1
connectivity_plus-2.3.9
connectivity_plus_linux-1.3.1
connectivity_plus_macos-1.2.6
connectivity_plus_web-1.2.5
connectivity_plus_windows-1.2.2
device_info_plus-4.1.3
device_info_plus_linux-3.0.0
device_info_plus_macos-3.0.0
device_info_plus_web-3.0.0
device_info_plus_windows-4.1.0
firebase_core-2.4.0
firebase_core_web-2.0.2
firebase_crashlytics-3.0.7
firebase_dynamic_links-5.0.9
firebase_messaging-14.1.4
firebase_messaging_web-3.2.9
flutter_email_sender-5.2.0
flutter_local_notifications-12.0.4
flutter_native_splash-2.2.16
flutter_plugin_android_lifecycle-2.0.7
flutter_secure_storage-6.1.0
flutter_secure_storage_linux-1.1.2
flutter_secure_storage_macos-1.1.2
flutter_secure_storage_web-1.1.1
flutter_secure_storage_windows-1.1.3
flutter_web_auth-0.5.0
google_maps_flutter-2.2.1
google_maps_flutter_android-2.4.0
google_maps_flutter_ios-2.1.12
location-4.4.0
location_web-3.1.1
map_launcher-2.4.0
mixpanel_flutter-1.6.0
mobile_scanner-2.1.0
package_info_plus-1.4.3+1
package_info_plus_linux-1.0.5
package_info_plus_macos-1.3.0
package_info_plus_web-1.0.6
package_info_plus_windows-2.1.0
path_provider-2.0.11
path_provider_android-2.0.22
path_provider_ios-2.0.11
path_provider_linux-2.1.7
path_provider_macos-2.0.6
path_provider_windows-2.1.3
share_plus-4.5.3
share_plus_linux-3.0.1
share_plus_macos-3.0.1
share_plus_web-3.1.0
share_plus_windows-3.0.1
sqflite-2.2.2
url_launcher-6.1.7
url_launcher_android-6.0.22
url_launcher_ios-6.0.17
url_launcher_linux-3.0.1
url_launcher_macos-3.0.1
url_launcher_web-2.0.13
url_launcher_windows-3.0.1

Closing this as a duplicate of https://github.com/flutter/flutter/issues/77581. Kindly follow up on that issue for updates. Thank you!


Type icons are corrupted

Ubuntu 17.04, Godot Build: 1481a1b
Issue description:
Self-explanatory:

as far as i can tell there are no type icons right now, and probably will not be in a long time, so i would say that the option to enable type icons should be removed until we have all the type icons.

@djrm Aren't those it?

@YeldhamDev yes, but there are only some of them, not all the types are covered, also i removed those icons since they might need to be redone once the visual shader editor returns.

Type icons option should be removed. I have no idea where this option is. I suggest looking for it (based on the editor settings name), and remove the EDITOR_DEF line.


Answer remaining 4 questions

Answered to 3 questions in https://github.com/andrei-punko/java-interview-faq-n-answers/commit/8c66ba95abe66a5d04026dac2a207ba5ce58b25e
So now only 4 unanswered questions remains 😃


Is there a list of changes from the standard lib.d.ts?

I have a very strong interest in better-typescript-lib.
But I am hesitant to use this because I don't know what changes this will bring.

Currently none, buT it is a very nice feature to have. 🥰  I'll work on this in the next holidays.

Thank you for suggestion, now we have a diff file! :tada:
https://github.com/uhyo/better-typescript-lib/blob/master/docs/diff.md


fixes: Panic with Interface Conversion Nil Error

fixed #274

Thank you for your contribution!
And sorry for late reply :man_facepalming:

Thank you for your contribution!
And sorry for late reply 🤦♂

no problemo i was mostly using it for myself as i often pressed accidentally {d} on emtpy folders.


Step calculation based on CPU usage.

Purpose
mplementation of step limiting for choreo's milestone 2, measuring steps based on "How long does a service take to compute/complete?". In long running tasks and large payloads extra steps will be calculated for each additional 500ms of processing time. Epic https://github.com/wso2-enterprise/choreo/issues/11966.
Goals
A new metric observer is published using choreo-extension for step counting purpose. This metric will calculate the total time consumed by a request using startobserver and stopobserver in observe.utils ballerina and do the step calculation based on that. At the end of a request there going to be a outgoing call to a public endpoint. The latency caused by this will not be deducted from total processing time because either way request is consuming CPU sources in that timespan too regardless the call being another choreo service or not.
Approach
Implemented a separate metric observer class name "StepcountObserver". At beginning of observation (observe.utils.startobserver) starting time will be recorded and at end of observation (observe.utils.stopobserver) end time will be taken to calculate the time spent on the process by taking the difference.
No of steps is then calculated using (duration-500)/500 and recorded on metric registry named "steps_total".
"StepcountObserver' is added to choreo-extension to be published on choreo.
Choreo telemetry- used to accept publishers from choreo-extension. Add "steps_total" metric registry to the list of metrics to be stored.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Changing background of the main page.

Hi, The background of the home page of website is not appealing.
Kindly assign me this issue under GSSOC'24

"Hey there! I'm eager to bring my HTML/CSS skills to your open source project in GSSoC, ready to add some impactful design enhancements!".I would increase the user experience by adding a custom background image.
please assign this to me.

I would like to work on this. Please assign me this task @Its-Aman-Yadav sir.

I'm considering changing the background of the main page to enhance its visual appeal and improve user experience. Kindly assign me this work. Thank you.

@Its-Aman-Yadav Can you please assign this task to me under GSSOC'24? I would love to work on it.

please assign me this issue so i can work on it under GSSOC24

hello, I am a gssoc 2024 contributer, could you please assign this task to me, please add the gssoc 2024 label

Duplicate issue

@Its-Aman-Yadav please assign me this task


[BUG] {publisher_identity} not working

Describe the bug
request file name template {publisher_identity} not working
Egress Version
LiveKit cloud
Egress Request

Additional context

Logs
also *.json I can't find publisher_identity

Fixed in #497


Experimental version deployment on ACS-Engine based K8S deployment

Hello,
I have tried to deploy the "experimental" version (branch roadmap-update-june2018) of OSBA on acs-engine based K8S deployment. Even though the deployment succeeds and I can access stable services I don't have access to the experimental components such as "Azure KeyVault".
The script used along with the references to the documentation can be found at github.com/ipolyzos/acs-engine-kubernetes-osba-installer.
Could you please advice ?
Regards,
IP

Hey @ipolyzos, when we cut the 1.0.x release of OSAB, we ended up disabling all the "experimental" services. We plan on adding MOST (ACI is being removed) of them back in 1.1.0, which should be released in a short time. In the meantime, if you use the v0.11.0 version of the Helm chart, you'll get all the external services back!
Sorry for the inconvenience, we're working to re-enable those module ASAP.

Thanks a lot @jeremyrickard , I'm looking forward to the 1.1.0 release.


Scripts - Added gitcommit to capture brief and detailed message

Hi Andy,
This is a PR with the change in gitcommit to capture brief and detailed message. Please review the change and merge as required.
Thanks,
Gayathri

I don't want to override my existing gc command. I'll add this as a new command gitcommit-long.
Thanks for introducing this gitcommit use-case Gayathri. I'll definitely merge it as I can see myself using it for large commits that need more detailed explanation. I've set it up as alias gc-long.

Thanks Andy. Even if you don't want to merge, I am totally fine. But I
really enjoyed coding that and learning that stuff :)
On Tue, Jun 11, 2019 at 9:50 PM Andy Bettisworth<EMAIL_ADDRESS>wrote:

I don't want to override my existing gc command. I'll add this as a new
command gitcommit-long.
Thanks for introducing this gitcommit use-case Gayathri. I'll definitely
merge it as I can see myself using it for large commits that need more
detailed explanation. I've set it up as alias gc-long.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/wurde/scripts/pull/12?email_source=notifications&email_token=ALFPDGMA5AD2XIBGJ4LCRC3P2BP6LA5CNFSM4HXES3KKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXPC42Y#issuecomment-501100139,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALFPDGM2JJVJDTEVAHQ65P3P2BP6LANCNFSM4HXES3KA
.

yay!! Thank you Andy for the merge :))
On Tue, Jun 11, 2019 at 10:04 PM Andy Bettisworth<EMAIL_ADDRESS>wrote:

Closed #12 https://github.com/wurde/scripts/pull/12.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/wurde/scripts/pull/12?email_source=notifications&email_token=ALFPDGJ66LPDB24YMLV6WT3P2BRVRA5CNFSM4HXES3KKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOR5USYZA#event-2406034532,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALFPDGNEAZF5KQACYV7GXBLP2BRVRANCNFSM4HXES3KA
.


Update inputform.xml for  ILRI subject terms please

COMMUNICATIONS , LEGUMES, DATA, CHICKENS and IRRIGATION for

Thanks, I'll merge this manually in git from the command line!


Changes made on README.md and docs/user-guide.cd

/ok-to-test

@hhamid93 try using make markdownlint locally to see the markdown errors (we should probably document this too)

/lgtm


Publish latest version of Gremlin client

@jbmusso Any chance you could publish a new version of the Gremlin client? We are currently using a temporary fork of this project that contains this addition. I'm sure other users would benefit from having this change as well.

Just published v2.7.0. Let me know if anything goes wrong.


Memory leak in udp-queue-natives

With gcc-10 -fanalyzer (GCC 10 Static analysis)
In function ‘manager_queue_packet_locked’:
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:131:15: warning: leak of ‘queue_25’ [CWE-401] [-Wanalyzer-malloc-leak]
  131 |    *reference = (*reference)->next;
      |               ^
  ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’: events 1-2
    |
    |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:376:28:
    |  376 | JNIEXPORT jboolean JNICALL Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket(JNIEnv* jni, jobject me, jlong instance, jlong key, jstring address_string,
    |      |                            ^
    |      |                            |
    |      |                            (1) entry to ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’
    |......
    |  382 |  bool result = manager_queue_packet((queue_manager_t*) instance, (uint64_t) key, address, port, bytes, (size_t) data_length, SOCKET_INVALID);
    |      |                ~
    |      |                |
    |      |                (2) calling ‘manager_queue_packet’ from ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’
    |
    +--> ‘manager_queue_packet’: events 3-4
           |
           |  218 | static bool manager_queue_packet(queue_manager_t* manager, uint64_t key, const char* address, int32_t port, void* data,
           |      |             ^
           |      |             |
           |      |             (3) entry to ‘manager_queue_packet’
           |......
           |  222 |  if (bytes == NULL) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘false’ branch (when ‘bytes_8’ is non-NULL)...
           |
         ‘manager_queue_packet’: event 5
           |
           |/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10:
           |   34 |   return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
           |      |          ^
           |      |          |
           |      |          (5) ...to here
           |
         ‘manager_queue_packet’: event 6
           |
           |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:229:16:
           |  229 |  bool result = manager_queue_packet_locked(manager, key, address, port, bytes, data_length, explicit_socket);
           |      |                ^
           |      |                |
           |      |                (6) calling ‘manager_queue_packet_locked’ from ‘manager_queue_packet’
           |
           +--> ‘manager_queue_packet_locked’: events 7-8
                  |
                  |  178 | static bool manager_queue_packet_locked(queue_manager_t* manager, uint64_t key, const char* address, int32_t port,
                  |      |             ^
                  |      |             |
                  |      |             (7) entry to ‘manager_queue_packet_locked’
                  |......
                  |  182 |  queue_t* queue = hashmap_put(manager->queues, key, &existed);
                  |      |                   ~
                  |      |                   |
                  |      |                   (8) calling ‘hashmap_put’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘hashmap_put’: events 9-12
                         |
                         |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:96:7:
                         |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
                         |      |       ^
                         |      |       |
                         |      |       (9) entry to ‘hashmap_put’
                         |......
                         |  113 |  if (!new_entry) {
                         |      |     ~
                         |      |     |
                         |      |     (10) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
                         |......
                         |  117 |  new_entry->key = key;
                         |      |                 ~
                         |      |                 |
                         |      |                 (11) ...to here
                         |......
                         |  120 |  hashmap_check_resize(map);
                         |      |  ~
                         |      |  |
                         |      |  (12) calling ‘hashmap_check_resize’ from ‘hashmap_put’
                         |
                         +--> ‘hashmap_check_resize’: events 13-16
                                |
                                |   67 | static void hashmap_check_resize(hashmap_t* map) {
                                |      |             ^
                                |      |             |
                                |      |             (13) entry to ‘hashmap_check_resize’
                                |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
                                |      |     ~
                                |      |     |
                                |      |     (14) following ‘false’ branch...
                                |......
                                |   72 |  size_t new_bucket_count = map->bucket_count << 1;
                                |      |         ~
                                |      |         |
                                |      |         (15) ...to here
                                |......
                                |   75 |  if (!new_buckets) {
                                |      |     ~
                                |      |     |
                                |      |     (16) following ‘true’ branch (when ‘new_buckets_22’ is NULL)...
                                |
                              ‘hashmap_check_resize’: event 17
                                |
                                |lto1:
                                | (17): ...to here
                                |
                         <------+
                         |
                       ‘hashmap_put’: event 18
                         |
                         |  120 |  hashmap_check_resize(map);
                         |      |  ^
                         |      |  |
                         |      |  (18) returning to ‘hashmap_put’ from ‘hashmap_check_resize’
                         |
                       ‘hashmap_put’: event 19
                         |
                         |lto1:
                         | (19): state of ‘<anonymous>’: ‘start’ -> ‘nonnull’ (origin: NULL)
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: events 20-27
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:182:19:
                  |  182 |  queue_t* queue = hashmap_put(manager->queues, key, &existed);
                  |      |                   ^
                  |      |                   |
                  |      |                   (20) returning to ‘manager_queue_packet_locked’ from ‘hashmap_put’
                  |  183 |
                  |  184 |  if (queue == NULL) {
                  |      |     ~
                  |      |     |
                  |      |     (21) following ‘false’ branch (when ‘queue_25’ is non-NULL)...
                  |......
                  |  187 |  else if (!existed) {
                  |      |          ~~
                  |      |          ||
                  |      |          |(22) ...to here
                  |      |          (23) following ‘false’ branch...
                  |  188 |   queue->key = key;
                  |      |              ~
                  |      |              |
                  |      |              (24) ...to here
                  |......
                  |  197 |   if (queue->address == NULL || queue->packet_buffer == NULL) {
                  |      |      ~
                  |      |      |
                  |      |      (25) following ‘true’ branch...
                  |  198 |    queue_entry_free(queue);
                  |      |    ~
                  |      |    |
                  |      |    (26) ...to here
                  |      |    (27) calling ‘queue_entry_free’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘queue_entry_free’: events 28-34
                         |
                         |   65 | static void queue_entry_free(void* entry) {
                         |      |             ^
                         |      |             |
                         |      |             (28) entry to ‘queue_entry_free’
                         |......
                         |   68 |  if (queue->packet_buffer != NULL) {
                         |      |     ~
                         |      |     |
                         |      |     (29) following ‘false’ branch...
                         |......
                         |   77 |  if (queue->address != NULL) {
                         |      |     ~     ~
                         |      |     |     |
                         |      |     |     (30) ...to here
                         |      |     (31) following ‘false’ branch...
                         |......
                         |   81 |  if (queue->link.next != NULL) {
                         |      |     ~           ~
                         |      |     |           |
                         |      |     |           (32) ...to here
                         |      |     (33) following ‘false’ branch...
                         |......
                         |   84 | }
                         |      | ~
                         |      | |
                         |      | (34) ...to here
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: events 35-36
                  |
                  |  198 |    queue_entry_free(queue);
                  |      |    ^
                  |      |    |
                  |      |    (35) returning to ‘manager_queue_packet_locked’ from ‘queue_entry_free’
                  |  199 |    hashmap_remove(manager->queues, key);
                  |      |    ~
                  |      |    |
                  |      |    (36) calling ‘hashmap_remove’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘hashmap_remove’: events 37-41
                         |
                         |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:124:7:
                         |  124 | void* hashmap_remove(hashmap_t* map, uint64_t key) {
                         |      |       ^
                         |      |       |
                         |      |       (37) entry to ‘hashmap_remove’
                         |......
                         |  128 |  while (*reference) {
                         |      |        ~
                         |      |        |
                         |      |        (38) following ‘true’ branch...
                         |  129 |   if ((*reference)->key == key) {
                         |      |      ~            ~
                         |      |      |            |
                         |      |      |            (39) ...to here
                         |      |      (40) following ‘true’ branch...
                         |  130 |    hashmap_entry_t* result = *reference;
                         |  131 |    *reference = (*reference)->next;
                         |      |                             ~
                         |      |                             |
                         |      |                             (41) ...to here
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: event 42
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:199:4:
                  |  199 |    hashmap_remove(manager->queues, key);
                  |      |    ^
                  |      |    |
                  |      |    (42) returning to ‘manager_queue_packet_locked’ from ‘hashmap_remove’
                  |
                ‘manager_queue_packet_locked’: event 43
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:131:15:
                  |  131 |    *reference = (*reference)->next;
                  |      |               ^
                  |      |               |
                  |      |               (43) ‘queue_25’ leaks here
                  |
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:128:8: warning: leak of ‘queue_25’ [CWE-401] [-Wanalyzer-malloc-leak]
  128 |  while (*reference) {
      |        ^
  ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’: events 1-2
    |
    |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:376:28:
    |  376 | JNIEXPORT jboolean JNICALL Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket(JNIEnv* jni, jobject me, jlong instance, jlong key, jstring address_string,
    |      |                            ^
    |      |                            |
    |      |                            (1) entry to ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’
    |......
    |  382 |  bool result = manager_queue_packet((queue_manager_t*) instance, (uint64_t) key, address, port, bytes, (size_t) data_length, SOCKET_INVALID);
    |      |                ~
    |      |                |
    |      |                (2) calling ‘manager_queue_packet’ from ‘Java_com_sedmelluq_discord_lavaplayer_udpqueue_natives_UdpQueueManagerLibrary_queuePacket’
    |
    +--> ‘manager_queue_packet’: events 3-4
           |
           |  218 | static bool manager_queue_packet(queue_manager_t* manager, uint64_t key, const char* address, int32_t port, void* data,
           |      |             ^
           |      |             |
           |      |             (3) entry to ‘manager_queue_packet’
           |......
           |  222 |  if (bytes == NULL) {
           |      |     ~
           |      |     |
           |      |     (4) following ‘false’ branch (when ‘bytes_8’ is non-NULL)...
           |
         ‘manager_queue_packet’: event 5
           |
           |/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10:
           |   34 |   return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
           |      |          ^
           |      |          |
           |      |          (5) ...to here
           |
         ‘manager_queue_packet’: event 6
           |
           |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:229:16:
           |  229 |  bool result = manager_queue_packet_locked(manager, key, address, port, bytes, data_length, explicit_socket);
           |      |                ^
           |      |                |
           |      |                (6) calling ‘manager_queue_packet_locked’ from ‘manager_queue_packet’
           |
           +--> ‘manager_queue_packet_locked’: events 7-8
                  |
                  |  178 | static bool manager_queue_packet_locked(queue_manager_t* manager, uint64_t key, const char* address, int32_t port,
                  |      |             ^
                  |      |             |
                  |      |             (7) entry to ‘manager_queue_packet_locked’
                  |......
                  |  182 |  queue_t* queue = hashmap_put(manager->queues, key, &existed);
                  |      |                   ~
                  |      |                   |
                  |      |                   (8) calling ‘hashmap_put’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘hashmap_put’: events 9-12
                         |
                         |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:96:7:
                         |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
                         |      |       ^
                         |      |       |
                         |      |       (9) entry to ‘hashmap_put’
                         |......
                         |  113 |  if (!new_entry) {
                         |      |     ~
                         |      |     |
                         |      |     (10) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
                         |......
                         |  117 |  new_entry->key = key;
                         |      |                 ~
                         |      |                 |
                         |      |                 (11) ...to here
                         |......
                         |  120 |  hashmap_check_resize(map);
                         |      |  ~
                         |      |  |
                         |      |  (12) calling ‘hashmap_check_resize’ from ‘hashmap_put’
                         |
                         +--> ‘hashmap_check_resize’: events 13-16
                                |
                                |   67 | static void hashmap_check_resize(hashmap_t* map) {
                                |      |             ^
                                |      |             |
                                |      |             (13) entry to ‘hashmap_check_resize’
                                |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
                                |      |     ~
                                |      |     |
                                |      |     (14) following ‘false’ branch...
                                |......
                                |   72 |  size_t new_bucket_count = map->bucket_count << 1;
                                |      |         ~
                                |      |         |
                                |      |         (15) ...to here
                                |......
                                |   75 |  if (!new_buckets) {
                                |      |     ~
                                |      |     |
                                |      |     (16) following ‘true’ branch (when ‘new_buckets_22’ is NULL)...
                                |
                              ‘hashmap_check_resize’: event 17
                                |
                                |lto1:
                                | (17): ...to here
                                |
                         <------+
                         |
                       ‘hashmap_put’: event 18
                         |
                         |  120 |  hashmap_check_resize(map);
                         |      |  ^
                         |      |  |
                         |      |  (18) returning to ‘hashmap_put’ from ‘hashmap_check_resize’
                         |
                       ‘hashmap_put’: event 19
                         |
                         |lto1:
                         | (19): state of ‘<anonymous>’: ‘start’ -> ‘nonnull’ (origin: NULL)
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: events 20-27
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:182:19:
                  |  182 |  queue_t* queue = hashmap_put(manager->queues, key, &existed);
                  |      |                   ^
                  |      |                   |
                  |      |                   (20) returning to ‘manager_queue_packet_locked’ from ‘hashmap_put’
                  |  183 |
                  |  184 |  if (queue == NULL) {
                  |      |     ~
                  |      |     |
                  |      |     (21) following ‘false’ branch (when ‘queue_25’ is non-NULL)...
                  |......
                  |  187 |  else if (!existed) {
                  |      |          ~~
                  |      |          ||
                  |      |          |(22) ...to here
                  |      |          (23) following ‘false’ branch...
                  |  188 |   queue->key = key;
                  |      |              ~
                  |      |              |
                  |      |              (24) ...to here
                  |......
                  |  197 |   if (queue->address == NULL || queue->packet_buffer == NULL) {
                  |      |      ~
                  |      |      |
                  |      |      (25) following ‘true’ branch...
                  |  198 |    queue_entry_free(queue);
                  |      |    ~
                  |      |    |
                  |      |    (26) ...to here
                  |      |    (27) calling ‘queue_entry_free’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘queue_entry_free’: events 28-34
                         |
                         |   65 | static void queue_entry_free(void* entry) {
                         |      |             ^
                         |      |             |
                         |      |             (28) entry to ‘queue_entry_free’
                         |......
                         |   68 |  if (queue->packet_buffer != NULL) {
                         |      |     ~
                         |      |     |
                         |      |     (29) following ‘false’ branch...
                         |......
                         |   77 |  if (queue->address != NULL) {
                         |      |     ~     ~
                         |      |     |     |
                         |      |     |     (30) ...to here
                         |      |     (31) following ‘false’ branch...
                         |......
                         |   81 |  if (queue->link.next != NULL) {
                         |      |     ~           ~
                         |      |     |           |
                         |      |     |           (32) ...to here
                         |      |     (33) following ‘false’ branch...
                         |......
                         |   84 | }
                         |      | ~
                         |      | |
                         |      | (34) ...to here
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: events 35-36
                  |
                  |  198 |    queue_entry_free(queue);
                  |      |    ^
                  |      |    |
                  |      |    (35) returning to ‘manager_queue_packet_locked’ from ‘queue_entry_free’
                  |  199 |    hashmap_remove(manager->queues, key);
                  |      |    ~
                  |      |    |
                  |      |    (36) calling ‘hashmap_remove’ from ‘manager_queue_packet_locked’
                  |
                  +--> ‘hashmap_remove’: events 37-38
                         |
                         |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:124:7:
                         |  124 | void* hashmap_remove(hashmap_t* map, uint64_t key) {
                         |      |       ^
                         |      |       |
                         |      |       (37) entry to ‘hashmap_remove’
                         |......
                         |  128 |  while (*reference) {
                         |      |        ~
                         |      |        |
                         |      |        (38) following ‘false’ branch...
                         |
                       ‘hashmap_remove’: event 39
                         |
                         |lto1:
                         | (39): ...to here
                         |
                  <------+
                  |
                ‘manager_queue_packet_locked’: event 40
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/udpqueue.c:199:4:
                  |  199 |    hashmap_remove(manager->queues, key);
                  |      |    ^
                  |      |    |
                  |      |    (40) returning to ‘manager_queue_packet_locked’ from ‘hashmap_remove’
                  |
                ‘manager_queue_packet_locked’: event 41
                  |
                  |/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:128:8:
                  |  128 |  while (*reference) {
                  |      |        ^
                  |      |        |
                  |      |        (41) ‘queue_25’ leaks here
                  |
In function ‘hashmap_create’:
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:24:5: warning: leak of ‘_5’ [CWE-401] [-Wanalyzer-malloc-leak]
   24 |  if (!map->buckets) {
      |     ^
  ‘hashmap_create’: events 1-5
    |
    |    6 |  if (!map) {
    |      |     ^
    |      |     |
    |      |     (1) following ‘false’ branch (when ‘map_11’ is non-NULL)...
    |......
    |   11 |  map->entry_size = entry_size;
    |      |                  ~
    |      |                  |
    |      |                  (2) ...to here
    |......
    |   22 |  map->buckets = calloc(map->bucket_count, sizeof(*map->buckets));
    |      |                 ~
    |      |                 |
    |      |                 (3) allocated here
    |   23 |
    |   24 |  if (!map->buckets) {
    |      |     ~
    |      |     |
    |      |     (4) assuming ‘_5’ is non-NULL
    |      |     (5) following ‘false’ branch...
    |
  ‘hashmap_create’: event 6
    |
    |lto1:
    | (6): ...to here
    |
  ‘hashmap_create’: event 7
    |
    |   24 |  if (!map->buckets) {
    |      |     ^
    |      |     |
    |      |     (7) ‘_5’ leaks here; was allocated at (3)
    |
In function ‘hashmap_put’:
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:68:5: warning: leak of ‘new_entry_21’ [CWE-401] [-Wanalyzer-malloc-leak]
   68 |  if (map->size <= map->bucket_count * 4 / 3) {
      |     ^
  ‘hashmap_put’: events 1-6
    |
    |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
    |      |       ^
    |      |       |
    |      |       (1) entry to ‘hashmap_put’
    |......
    |  109 |  *existed = false;
    |      |           ~
    |      |           |
    |      |           (2) allocated here
    |......
    |  113 |  if (!new_entry) {
    |      |     ~
    |      |     |
    |      |     (3) assuming ‘new_entry_21’ is non-NULL
    |      |     (4) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
    |......
    |  117 |  new_entry->key = key;
    |      |                 ~
    |      |                 |
    |      |                 (5) ...to here
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ~
    |      |  |
    |      |  (6) calling ‘hashmap_check_resize’ from ‘hashmap_put’
    |
    +--> ‘hashmap_check_resize’: events 7-8
           |
           |   67 | static void hashmap_check_resize(hashmap_t* map) {
           |      |             ^
           |      |             |
           |      |             (7) entry to ‘hashmap_check_resize’
           |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
           |      |     ~
           |      |     |
           |      |     (8) following ‘true’ branch...
           |
         ‘hashmap_check_resize’: event 9
           |
           |lto1:
           | (9): ...to here
           |
    <------+
    |
  ‘hashmap_put’: events 10-11
    |
    |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
    |      |     ~
    |      |     |
    |      |     (11) ‘new_entry_21’ leaks here; was allocated at (2)
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ^
    |      |  |
    |      |  (10) returning to ‘hashmap_put’ from ‘hashmap_check_resize’
    |
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:75:5: warning: leak of ‘new_entry_21’ [CWE-401] [-Wanalyzer-malloc-leak]
   75 |  if (!new_buckets) {
      |     ^
  ‘hashmap_put’: events 1-6
    |
    |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
    |      |       ^
    |      |       |
    |      |       (1) entry to ‘hashmap_put’
    |......
    |  109 |  *existed = false;
    |      |           ~
    |      |           |
    |      |           (2) allocated here
    |......
    |  113 |  if (!new_entry) {
    |      |     ~
    |      |     |
    |      |     (3) assuming ‘new_entry_21’ is non-NULL
    |      |     (4) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
    |......
    |  117 |  new_entry->key = key;
    |      |                 ~
    |      |                 |
    |      |                 (5) ...to here
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ~
    |      |  |
    |      |  (6) calling ‘hashmap_check_resize’ from ‘hashmap_put’
    |
    +--> ‘hashmap_check_resize’: events 7-10
           |
           |   67 | static void hashmap_check_resize(hashmap_t* map) {
           |      |             ^
           |      |             |
           |      |             (7) entry to ‘hashmap_check_resize’
           |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
           |      |     ~
           |      |     |
           |      |     (8) following ‘false’ branch...
           |......
           |   72 |  size_t new_bucket_count = map->bucket_count << 1;
           |      |         ~
           |      |         |
           |      |         (9) ...to here
           |......
           |   75 |  if (!new_buckets) {
           |      |     ~
           |      |     |
           |      |     (10) following ‘true’ branch (when ‘new_buckets_22’ is NULL)...
           |
         ‘hashmap_check_resize’: event 11
           |
           |lto1:
           | (11): ...to here
           |
    <------+
    |
  ‘hashmap_put’: events 12-13
    |
    |   75 |  if (!new_buckets) {
    |      |     ~
    |      |     |
    |      |     (13) ‘new_entry_21’ leaks here; was allocated at (2)
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ^
    |      |  |
    |      |  (12) returning to ‘hashmap_put’ from ‘hashmap_check_resize’
    |
In function ‘hashmap_check_resize’:
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:93:20: warning: leak of ‘new_buckets_22’ [CWE-401] [-Wanalyzer-malloc-leak]
   93 |  map->bucket_count = new_bucket_count;
      |                    ^
  ‘hashmap_put’: events 1-4
    |
    |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
    |      |       ^
    |      |       |
    |      |       (1) entry to ‘hashmap_put’
    |......
    |  113 |  if (!new_entry) {
    |      |     ~
    |      |     |
    |      |     (2) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
    |......
    |  117 |  new_entry->key = key;
    |      |                 ~
    |      |                 |
    |      |                 (3) ...to here
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ~
    |      |  |
    |      |  (4) calling ‘hashmap_check_resize’ from ‘hashmap_put’
    |
    +--> ‘hashmap_check_resize’: events 5-10
           |
           |   67 | static void hashmap_check_resize(hashmap_t* map) {
           |      |             ^
           |      |             |
           |      |             (5) entry to ‘hashmap_check_resize’
           |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
           |      |     ~
           |      |     |
           |      |     (6) following ‘false’ branch...
           |......
           |   72 |  size_t new_bucket_count = map->bucket_count << 1;
           |      |         ~
           |      |         |
           |      |         (7) ...to here
           |      |         (8) allocated here
           |......
           |   75 |  if (!new_buckets) {
           |      |     ~
           |      |     |
           |      |     (9) assuming ‘new_buckets_22’ is non-NULL
           |      |     (10) following ‘false’ branch (when ‘new_buckets_22’ is non-NULL)...
           |
         ‘hashmap_check_resize’: event 11
           |
           |lto1:
           | (11): ...to here
           |
         ‘hashmap_check_resize’: events 12-16
           |
           |   79 |  for (size_t i = 0; i != map->bucket_count; ++i) {
           |      |  ^
           |      |  |
           |      |  (12) following ‘true’ branch...
           |      |  (14) following ‘false’ branch...
           |......
           |   82 |   for (hashmap_entry_t* entry = map->buckets[i]; entry != NULL; entry = next) {
           |      |                                    ~
           |      |                                    |
           |      |                                    (13) ...to here
           |......
           |   91 |  free(map->buckets);
           |      |          ~
           |      |          |
           |      |          (15) ...to here
           |   92 |  map->buckets = new_buckets;
           |   93 |  map->bucket_count = new_bucket_count;
           |      |                    ~
           |      |                    |
           |      |                    (16) ‘new_buckets_22’ leaks here; was allocated at (8)
           |
In function ‘hashmap_put’:
/root/jda-nas/udp-queue-natives/udpqueue/hashmap.c:93:20: warning: leak of ‘new_entry_21’ [CWE-401] [-Wanalyzer-malloc-leak]
   93 |  map->bucket_count = new_bucket_count;
      |                    ^
  ‘hashmap_put’: events 1-6
    |
    |   96 | void* hashmap_put(hashmap_t* map, uint64_t key, bool* existed) {
    |      |       ^
    |      |       |
    |      |       (1) entry to ‘hashmap_put’
    |......
    |  109 |  *existed = false;
    |      |           ~
    |      |           |
    |      |           (2) allocated here
    |......
    |  113 |  if (!new_entry) {
    |      |     ~
    |      |     |
    |      |     (3) assuming ‘new_entry_21’ is non-NULL
    |      |     (4) following ‘false’ branch (when ‘new_entry_21’ is non-NULL)...
    |......
    |  117 |  new_entry->key = key;
    |      |                 ~
    |      |                 |
    |      |                 (5) ...to here
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ~
    |      |  |
    |      |  (6) calling ‘hashmap_check_resize’ from ‘hashmap_put’
    |
    +--> ‘hashmap_check_resize’: events 7-10
           |
           |   67 | static void hashmap_check_resize(hashmap_t* map) {
           |      |             ^
           |      |             |
           |      |             (7) entry to ‘hashmap_check_resize’
           |   68 |  if (map->size <= map->bucket_count * 4 / 3) {
           |      |     ~
           |      |     |
           |      |     (8) following ‘false’ branch...
           |......
           |   72 |  size_t new_bucket_count = map->bucket_count << 1;
           |      |         ~
           |      |         |
           |      |         (9) ...to here
           |......
           |   75 |  if (!new_buckets) {
           |      |     ~
           |      |     |
           |      |     (10) following ‘false’ branch (when ‘new_buckets_22’ is non-NULL)...
           |
         ‘hashmap_check_resize’: event 11
           |
           |lto1:
           | (11): ...to here
           |
         ‘hashmap_check_resize’: events 12-15
           |
           |   79 |  for (size_t i = 0; i != map->bucket_count; ++i) {
           |      |  ^
           |      |  |
           |      |  (12) following ‘true’ branch...
           |      |  (14) following ‘false’ branch...
           |......
           |   82 |   for (hashmap_entry_t* entry = map->buckets[i]; entry != NULL; entry = next) {
           |      |                                    ~
           |      |                                    |
           |      |                                    (13) ...to here
           |......
           |   91 |  free(map->buckets);
           |      |          ~
           |      |          |
           |      |          (15) ...to here
           |
    <------+
    |
  ‘hashmap_put’: events 16-17
    |
    |   93 |  map->bucket_count = new_bucket_count;
    |      |                    ~
    |      |                    |
    |      |                    (17) ‘new_entry_21’ leaks here; was allocated at (2)
    |......
    |  120 |  hashmap_check_resize(map);
    |      |  ^
    |      |  |
    |      |  (16) returning to ‘hashmap_put’ from ‘hashmap_check_resize’
    |

jda-nas-udpqueue library (rewritten with Rust)
https://github.com/organization/jda-nas-rust


spot check: Gravity Force Lab 2.2.0-rc.4

@emily-phet @terracoda @jessegreenberg @arouinfar @kathy-phet @samreid @chrisklus, gravity-force-lab/2.2.0-rc.4 is ready for RC testing. This is the fourth RC test, and so we just need to spot check the issues found in the previous RC.
Document issues in https://github.com/phetsims/gravity-force-lab/issues and link to this issue.
This simulation is outfitted with:
All PhET-iO featured, including a designed api
Sound
Interactive Descriptions (alternative input and auditory descriptions)
Gesture Accessibility with support for mobile iOS
Links:
Phet brand simulation: https://phet-dev.colorado.edu/html/gravity-force-lab/2.2.0-rc.4/phet/gravity-force-lab_en_phet.html
Wrapper index: https://phet-dev.colorado.edu/html/gravity-force-lab/2.2.0-rc.4/phet-io/
Test matrix: https://docs.google.com/spreadsheets/d/1dPp2zsj4WW577vQNgCnx9d3cPNxh_JrJj_EQ8CaNqOc/edit#gid=860975363
Please verify the following issues:

[ ] https://github.com/phetsims/studio/issues/102
[ ] https://github.com/phetsims/studio/issues/107
[ ] https://github.com/phetsims/phet-io-wrappers/issues/336
[ ] https://github.com/phetsims/gravity-force-lab/issues/261
[ ] Please tell me if there are more QA credits, or close this issue: https://github.com/phetsims/gravity-force-lab/issues/180

Previous QA issue (rc.3): https://github.com/phetsims/QA/issues/485
As this is the fourth RC, I'm not sure that much more is needed after verifying issues beyond just a sanity check on a couple devices.
Thanks!

[ ] Win 10 chrome w/ Jaws and Phet-io
[ ] Win 10 firefox w/ NVDA and Phet-io
[ ] Win 10 edge

[ ] macOS 10.15 Chrome
[ ] macOS 10.15 Safari w/ VoiceOver and PhET-iO

[ ] Win 10 IE and Phet-io
[ ] Mac 10.12 Safari

[ ] ChromeOS and Phet-io
[ ] iPadOS 13 w/ VO and Phet-io

@KatieWoe, we test VO on PhET-io?

No, not generally. We might have looked at it at one point. It is VO on the vanilla sim and also test phet-io.

Thanks you so much for such a quick turnaround!! I really appreciate it!


Allow unavoidable overhealing to be excluded

Exclude Ids from overhealing
Allow Core overhealing modules to exclude a list of spells based on a job by job basis and followed method of implementing protected -> private from the tracked heals.
Would like assistance in verification/jest testing
Discord Server Name: KerrisFang

I feel like this might be able to be closed - I wasn't looking at this closely when I wrote PR #1734, which should include your "ignoring" feature.

Closing this in favor of #1734 - it looks like this might need to be resubmitted to add the ignore flag to Assize to match up with the interface changes in #1734, but otherwise the other changes in this PR are duplicated.  Will flag this in #dev-healer for consideration.


Why is required mono on Mac?

Hi, a noob question.. why Saturn requires mono on Mac? I built successfully a testing Suave web app without installing it, and not happy to install mono really as can develop and build stuff just with dotnet :face_with_rolling_eyes: (edited)
and btw Giraffe also builds & run without mono :confused:

It's (current, it will be changed Soon ™)  requirement of Paket, that is used by us in dotnet new saturn template.


How to add meta information for page

I'm submitting a ...

[ ] bug report
[ ] feature request
[ ] support request

Provide information & explanation
Hi, Right now i'm facing problem with assign meta information. I'm using like ngMeta module. It was added information successfully. but not showing while facebook share option. Showing only default title & meta information. please help me in this issue

Thank you,

Laravel & Angular version: 3.2.0

any one please help me....

Hi @dinesh2017
In the documentation for ngMeta
You have the following message:
TL;DR: ngMeta helps the Google crawler render your Angular site and read the meta tags. For other sites like Facebook/Twitter that can't render Javascript, you need to use pre-renderers or server redirects.

You can check ngMeta's documentation on how to enable this (you'll have to use some prerendering services + they have an article about that)
Cheers!


App stops after selecting a hotspot from list

Describe the bug
App stops on selection of a hotspot from list.
To Reproduce
Steps to reproduce the behavior:

Go to 'Home Screen'
Click on any hotspot on list.
screen clears then reports "Unfortunately, Helium has stopped.", with an offer to send a report to the phone manufacturer. "view summary" option requires the user to agree to a legal agreement with Google. So that's a non-starter.

Expected behavior
Not sure, it always crashes.
Smartphone (please complete the following information):

Device: Mi
OS: Android
App Version v3.10.0

Additional context
Add any other context about the problem here.

please update to 3.11 and let us know if it's reproducible. thanks

Hi any fix both of my devices have the same problem (3.11)

closing, no further response from original submitted. please open a new issue if this is still happening.


RHOAIENG-4761: Fix internal data being read whole when reading dataframe in batches

PR Summary
Issue Description
When reading a dataframe of batch size n was read, the data was correctly read in a batch, but the internal ids are read as a whole. This causes a mismatch between the internal ids
Implemented Solution

Add batched read method for generic batch retrieval
Changed batched readDataframe to correctly fetch only batch internal ids

Other changes
Additionally, the base test profile as been renamed to MemoryTestProfile and PVCTestProfile was made into a direct extension of Quarkus test profiles.
This is to allow testing a single suite simulataneously with multiple profiles, as the DataSource test now show.

/test all