Missing AboutLibraries dependency in collected dependencies

About this issue
Just like in the title, for some reason AboutLibraries is not listed as dependency in the licenses output. This happens in my free-time project, a lot is going on here, so not sure what part caused this error:
https://github.com/ILikeYourHat/Large-Scale-Android-App
AboutLibraries configuration is located in 'gradle/extension/libs/about_libraries.gradle'. Also note dependencies are generated from ':app' module, but consumed in ':settings' module.
Details

:white_check_mark: Used library version - 10.0.0
:white_check_mark: Used gradle build tools version - 7.1.2
:white_check_mark: Used tooling / Android Studio version - AS Bumblebee Path 2
:white_check_mark: Other used libraries, potential conflicting libraries - many 🙂

Checklist

:white_check_mark: Searched for similar issues
:white_check_mark: Read the README
:white_check_mark: Checked out the CHANGELOG
:white_check_mark: Read the MIGRATION GUIDE

@ILikeYourHat would be surprised it being the typesafe project accessors, using it personally in a few projects.
Do you see any other missing dependencies beside the aboutLibraries one itself?
Do you check-in the generated *.json file as part of your SCM? Or do you maybe have it available?

@mikepenz Nope, AboutLibraries is the only one missing. Valid *.json file with all the other dependencies is generated in the build folder, only your library is missing.
I've added a direct dependency for com.mikepenz:aboutlibraries-core in :app module, but still it's missing

Could you possibly attach the generated file to this ticket?
Any helpful output in the gradle log when running ./gradlew findLibraries ?
(v10 allows the generated file to be included in the SCM for more enterprise level scenarios where re-generation may not be expected)

aboutLibraries.zip
findLibraries.txt
First is the content of "aboutLibraries" directory in build file, the second is the result of findLibraries task

Breaking discovery! If I declare dependency like this:
implementation libs.aboutLibraries.core
AboutLibraries is not listed as dependency. BUT if I declare it like this:
debugImplementation libs.aboutLibraries.core
then everything is working as expected 😄

Just checked it with the repo and run ./gradlew findLibraries
And it will include the aboutLibraries. Could you plese do clean builds and see if it may be caching?

Confirmed, this is a caching issue. Licenses are correctly generated only if gradlew clean and gradle findLibraries --no-build-cache were invoked

Weird: when invoking gradlew assembleDebug dependencies are not refreshed. But when invoking gradlew assembleDebug --scan (for gradle build scan), dependencies are refreshed correctly. I think that this might be some sort of race condition. You can check the scan, maybe you find something interesting here: https://scans.gradle.com/s/k7vf4wuablwjo

The steps in this build were all cached: https://scans.gradle.com/s/k7vf4wuablwjo/console-log#L29,  https://scans.gradle.com/s/k7vf4wuablwjo/console-log#L41
So for some reason: https://github.com/mikepenz/AboutLibraries/blob/develop/plugin-build/plugin/src/main/kotlin/com/mikepenz/aboutlibraries/plugin/util/DependencyCollector.kt#L41-L75 would not yet retrieve the proper full dependency tree the first time :/

Any update on this? If those tasks were cached and shouldn't be, that probably means some task inputs were declared incorectly

No update. The tricky part is that I wasn't yet able to reproduce it int he project itself. making it very difficult to debug further.

Can't seem to find hints on how to best ensure the task is re-run for this situation.
Would appreciate any input of somebody has pointers or suggestions.
I would have an idea how this could be made working for android projects but that wouldn't work for non android environments.

@ILikeYourHat is this problem still happening? (Maybe with newer versions of this plugin / newer version of Gradle)?

@mikepenz Confirmed, it's still happening. AboutLibraries v10.3.1, Gradle v7.5.
Gradle 7.5 has support for "Dependency resolution results can be used as task inputs", maybe implementing it will solve this issue?

@ILikeYourHat I looked into Gradle 7.5 but sadly using that new API (based on their demo code) seems to give me quite some problems with Kotlin Multiplatform code.

Hi @mikepenz @ILikeYourHat! have you found any solution?
I'm encountering the same issue on gradle 7.5, kotlin 1.7.20 using Android Electric Eel.
aboutlibrariesVersion = '10.5.2'

I could confirm that this is a caching issue.
My issue was fixed by

Delete ~/.gradle/caches/build-cache-1
Invalidate and restart cache in android studio
Run ./gradlew clean
Run ./gradlew findLibraries --no-build-cache
App should now build properlyy


Add configurations to disable metrics property by default

Requirement
The JVM metrics in the product is enabled by default and have to disable manually if a user does not need to use it, which is an unnecessary configuration for a user to handle.
Improvement
Add configurations to disable metrics property by default.
Related Git issues
https://github.com/wso2/carbon-metrics/issues/76

Fixed with https://github.com/wso2/product-is/pull/5955


podAffinity

Tell us about your request
What do you want us to build?
I know you'll love this: Support podAffinity
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
This is a sibling issue to #942 , but specifically on podAffinity.
Cilium's hubble has component called hubble-relay that needs to run on the same node as a cilium agent.
The cilium install manifests has this podAffinity as non-optional: https://github.com/cilium/cilium/blob/master/install/kubernetes/cilium/templates/hubble-relay/deployment.yaml#L34-L43
This is a fairly essential component to those using Cilium.
On many clusters, one can assume cilium agent on all nodes, but there are clusters with Fargate nodes and Windows nodes using Cilium, where the agent wouldn't run.
Are you currently working around this issue?
In our case, we can patch out that podAffinity.

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

+1 to podAffinity support
We're investigating if we can use Karpenter with Agones, and found that Agones use podAffinity for pod scheduling to pack as much as possible into the smallest set of nodes. doc
Because Karpenter currently ignores pods with podAffinity, we cannot use Karpenter to provision nodes for Agones pods.

What if the pods aren't created at the same time? If Karpenter only sees the first pod, it will launch a node for it. If the next pod c omes in a minute later, it's too late for that pod to be included in the scheduling algorithm. This doesn't exist for anti-affinity because scheduling apart achieves the same objective.
I'd love to make progress on podaffinity, but I don't have a viable path forward. How are you envisioning it?

Hi thanks for the suggestion. As the doc says

The default Kubernetes scheduler doesn’t do a perfect job of packing, but it’s a good enough job for what we need - at least at this stage.

Agones itself admits it isn't perfect, but they seem to know it works well at most cases.

Reading through agones, preferred pod affinity would be doable.

Sounds great! Dedicated game servers tend to need much rapid auto scaling, so Karpenter with Agones would be fantastic I believe 👍

Further, as I study the podaffintiy page, I think it would also be doable to implement zonal podaffinity (e.g. schedule all pods to a specific zone).

If you've got a fairly recent version of Karpenter already running, you can drop in this snapshot controller image to test out pod affinity & pod anti-affinity.  This is just a snapshot, not meant for production, etc.:
kubectl set image deployment/karpenter -n karpenter controller=public.ecr.aws/z4v8y7u8/controller:08ac9ec303aabe2da56edb0ee0e235a60a287206


Hashing in C++

Description
I will create documentation on Hashing in C++.
It will include the following topics:

Hash Function
Hash Table
Collision Principles
unordered sets and maps
sample codes

Domain
C/CPP
Type of Contribution
Video, Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

/assign


[e2e test] Increase robustness of TestL7NetworkPolicy/Logging

I have seen the test fail quite frequently in CI. I do not know the root cause, but this patch tries to make it more robust (e.g., by allowing duplicate log entries) and adds some debugging information in case of test failure.

The test failed for this PR, so I added yet another debug log and I am investigating why.

/test-e2e


Need a way to mark response as error

This may be similar to #166. Currently there is no way to indicate whether a ResponseObject is an error or not. In the pet store example a "default" response is an error, however there is no way for the tooling to understand whether the model being returned is an error or not unless the assumption is made that all "default" responses are errors (which is not always correct). Please consider adding something like "isError" property to a ResponseObject.

I'll mark is as a proposal for the next version and we'll see how people respond to the suggestion.

I could see the following scenario:
An API only responds with 200 for happy path and errors (which produces all the niceness of the aforementioned 4xx, 5xx statuses). These things exist, sadly.
In order to express an error, there would be a need to designate a response as error (vs. default).
As much as I hate to encourage the use of 200-only APIs, here's a potential solution (and one that perhaps makes default more accurate in it's intent):
        200:
          description: Expected response to a valid request
          schema:
            $ref: '#/definitions/Pets'
        default:
          error: true  # Note addition of `error`
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'

As an API author/consumer, I am not sure that I need extra information to indicate if a response is an error or not.  The 4xx and 5xx range of status code are pretty clear about their intent.  I realize that the default response could be used for an error response and that guessing that it is an error is likely impossible from a Swagger perspective alone programmatically.  (I say programmatically because a well crafted description and/or a reference to an *Error definition should be pretty clear from a human consumption perspective.)  But API clients, generated from Swagger or not, will have access to and should make use of the API's response status code for these things.
I'm not saying we shouldn't do it but adding an extra error property to the response object just seems unnecessary.  I surely don't want to get to the point where I have to attach that property to response objects that are obviously errors like the 4xx and 5xx range.

Not sure this is something we should support because "these things exist". Haven't seen many people ask for it, and it feels like that's one of the few things about REST APIs that people commonly agree on. Even if it's easy to support, don't know if we should. However, if that error addition applies to the default response only, I can live with that (and we need to decide on a default value).

Agreed, if it had to be only for the default value, I could hate that less.  ;)

I'd agree @webron that it's probably an issue that's trending down in public APIs. However, I have concern that as internal APIs are being built more and more (often with much lower standards/education), this could be a bigger issue.
The other reasoning behind indicating default means error is that it can be unclear without looking at the description. From a programmatic standpoint, it would be nice for test validation to ensure that you're using the right element.
Overall, this seems lower priority, and since it seems we could address it with a backward compatible change, might be worth of reviewing after we've addressed some of the bigger structural issues (and also see if the issue gains any momentum).

Just thought I'd chime in here. Since this is a in vNext (read breaking changes allowed) I think this is a great opportunity to describe these things as we'd like the spec to handle them ideally and not try to jam these things in existing constructs.
IMHO, as a spec we'd be better served guiding the spec in a direction such that it drives the consumers, implementors and tool vendors into the "pit of success". I'd rather make it hard to do things sub-optimally. Littering the spec with these exception cases, just to be everything for everybody will make the job for spec implementers that much harder. Also will make evolution of the spec harder.
Having said that, It seems like this could benefit by using the oneOf construct.
       200:
          description: Expected response to a valid request
          schema:
            oneOf: [
               { $ref: '#/definitions/Pets' },
               { $ref: '#/definitions/Error' }
             ],

@dilipkrish That's just something I don't get. Your example shows a 200 response sending either Pets or Error - but how does that help the consumer? How would they know which is the successful response case and which is the error (ignoring the fact that we both have some level of knowledge in English of course). That definitely doesn't help automatic processing, whether it's for validation or code generation.  I'd rather not support the construct at all then support it like that.
As a side note, the oneOf is a completely unnecessary construct there that just bloats the spec, but that's a matter for discussion elsewhere ;)

May be I wasnt being clear. I'm NOT for doing this the suggested way. My example was in response to this use case 👇🏻, and wasn't particularly fond of the "default" approach 😋

An API only responds with 200 for happy path and errors (which produces all the niceness of the aforementioned 4xx, 5xx statuses). These things exist, sadly.

My example is no different than the one with the "default" from the clients perspective; but it introduces a new construct that implementers need to care about just for the response object alone.
IMO as a spec there needs to be standard patterns when we're introducing new constructs. It doesn't have to use oneOf, but it needs to be a consistent construct. My comment was to reiterate that when we're making decisions about adding new constructs to parts of the spec let's be

consistent
predictable
following standards if needed
make it easy to do the right think and harder to do it in a sub-optimal way and yet support the requirement.

Ironic that I suggested the support for this one-off use case with oneOf 😜

Heh, fair enough, it was my misunderstanding. Generally, I believe we have a similar view re your last comment.

Link to meta #566

My suggested solution from 2020 got some upvotes, and was the first comment since 2016.  It does not require a spec change.
We're working on a new version over in the OAI/sig-moonwalk repository, so larger philosophical concerns around error modeling should join the discussion there.
Also, if there is truly interest in an error flag field of some sort, I'd suggest trying an extension which could go in the registry.  If it gets enough use it might get adopted.
Given that no one else has commented since 2016 and there are several paths forward that do not involve an immediate spec change, I'm going to close this.


Negative revalidating lifetime not fully respected, appears only valid on first stale request

Doing some testing here something seems not quite right with the negative revalidating.  I ran with these settings:
CONFIG proxy.config.http.cache.max_stale_age INT 200
CONFIG proxy.config.http.negative_revalidating_enabled INT 1
CONFIG proxy.config.http.negative_revalidating_lifetime INT 40
CONFIG proxy.config.http.cache.guaranteed_max_lifetime INT 30
CONFIG proxy.config.http.cache.heuristic_min_lifetime INT 20
CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 200
CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 0.10
Client response:
url http://localhost:8080/test2 -Lvsk -o /dev/null

GET /test2 HTTP/1.1
< Last-Modified: Mon, 13 Apr 2020 16:15:13 GMT
< Date: Mon, 13 Apr 2020 16:15:13 GMT
< Age: 18

< Last-Modified: Mon, 13 Apr 2020 16:15:13 GMT
< Date: Mon, 13 Apr 2020 16:15:13 GMT
< Expires: Mon, 13 Apr 2020 16:16:19 GMT
< Age: 26
< HTTP/1.1 502 Bad Gateway
< Date: Mon, 13 Apr 2020 16:15:42 GMT
< Content-Length: 0
< Age: 0
After the first request I had the origin respond with 502's.  The second request is being served stale and then has the expires header properly generated for revalidating_lifetime in to the future.  However the last request is still within the expiration time but is coming back as the actual origin error.
Checking the logs I can see that last request is an actual cache miss
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:404 (calculate_document_age)> (http_age) [calculate_document_age] now:<PHONE_NUMBER>
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:405 (calculate_document_age)> (http_age) [calculate_document_age] now (fixed):<PHONE_NUMBER>
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:406 (calculate_document_age)> (http_age) [calculate_document_age] apparent_age:           0
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:407 (calculate_document_age)> (http_age) [calculate_document_age] corrected_received_age: 0
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:408 (calculate_document_age)> (http_age) [calculate_document_age] response_delay:         0
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:409 (calculate_document_age)> (http_age) [calculate_document_age] corrected_initial_age:  0
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:410 (calculate_document_age)> (http_age) [calculate_document_age] resident_time:          18
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransactHeaders.cc:411 (calculate_document_age)> (http_age) [calculate_document_age] current_age:            18
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7350 (what_is_document_freshness)> (http_match) [9] [what_is_document_freshness] fresh_limit:  20  current_age: 18
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7397 (what_is_document_freshness)> (http_match) [9] [..._document_freshness] initial age limit: 20
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7453 (what_is_document_freshness)> (http_match) [9] document_freshness --- current_age = 18
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7454 (what_is_document_freshness)> (http_match) [9] document_freshness --- age_limit   = 20
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7455 (what_is_document_freshness)> (http_match) [9] document_freshness --- fresh_limit = 20
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7456 (what_is_document_freshness)> (http_seq) [9] document_freshness --- current_age = 18
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7457 (what_is_document_freshness)> (http_seq) [9] document_freshness --- age_limit   = 20
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7458 (what_is_document_freshness)> (http_seq) [9] document_freshness --- fresh_limit = 20
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:7477 (what_is_document_freshness)> (http_match) [9] [..._document_freshness] document is fresh; returning FRESHNESS_FRESH
[Apr 13 16:15:31.892] [ET_NET 22] DEBUG: <HttpTransact.cc:2529 (HandleCacheOpenReadHitFreshness)> (http_seq) [9] [HttpTransact::HandleCacheOpenReadHitFreshness] Fresh copy
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:406 (calculate_document_age)> (http_age) [calculate_document_age] apparent_age:           0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:407 (calculate_document_age)> (http_age) [calculate_document_age] corrected_received_age: 0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:408 (calculate_document_age)> (http_age) [calculate_document_age] response_delay:         0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:409 (calculate_document_age)> (http_age) [calculate_document_age] corrected_initial_age:  0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:410 (calculate_document_age)> (http_age) [calculate_document_age] resident_time:          26
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:411 (calculate_document_age)> (http_age) [calculate_document_age] current_age:            26
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7350 (what_is_document_freshness)> (http_match) [10] [what_is_document_freshness] fresh_limit:  20  current_age: 26
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7397 (what_is_document_freshness)> (http_match) [10] [..._document_freshness] initial age limit: 20
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7453 (what_is_document_freshness)> (http_match) [10] document_freshness --- current_age = 26
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7454 (what_is_document_freshness)> (http_match) [10] document_freshness --- age_limit   = 20
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7455 (what_is_document_freshness)> (http_match) [10] document_freshness --- fresh_limit = 20
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7456 (what_is_document_freshness)> (http_seq) [10] document_freshness --- current_age = 26
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7457 (what_is_document_freshness)> (http_seq) [10] document_freshness --- age_limit   = 20
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7458 (what_is_document_freshness)> (http_seq) [10] document_freshness --- fresh_limit = 20
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:7465 (what_is_document_freshness)> (http_match) [10] [..._document_freshness] document needs revalidate/too old; returning FRESHNESS_STALE
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2539 (HandleCacheOpenReadHitFreshness)> (http_seq) [10] [HttpTransact::HandleCacheOpenReadHitFreshness] Stale in cache
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2625 (need_to_revalidate)> (http_seq) [10] [HttpTransact::HandleCacheOpenReadHit] Authentication not needed
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2558 (HandleCacheOpenReadHitFreshness)> (http_trans) Next action SM_ACTION_API_CACHE_LOOKUP_COMPLETE; CallOSDNSLookup
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpSM.cc:7247 (call_transact_and_set_next_state)> (http) [10] State Transition: SM_ACTION_API_READ_CACHE_HDR -> SM_ACTION_API_CACHE_LOOKUP_COMPLETE
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2576 (CallOSDNSLookup)> (http) [10] [HttpTransact::callos] <IP_ADDRESS>
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2590 (CallOSDNSLookup)> (http_trans) Next action SM_ACTION_DNS_LOOKUP; OSDNSLookup
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpSM.cc:7247 (call_transact_and_set_next_state)> (http) [10] State Transition: SM_ACTION_API_CACHE_LOOKUP_COMPLETE -> SM_ACTION_DNS_LOOKUP
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:1788 (OSDNSLookup)> (http_trans) [10] [HttpTransact::OSDNSLookup] This was attempt 0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:1858 (OSDNSLookup)> (http_seq) [10] [HttpTransact::OSDNSLookup] DNS Lookup successful
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:1898 (OSDNSLookup)> (http_trans) [10] [OSDNSLookup] DNS lookup for O.S. successful IP: <IP_ADDRESS>
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:1995 (OSDNSLookup)> (http_trans) Next action SM_ACTION_API_OS_DNS; HandleCacheOpenReadHit
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpSM.cc:7247 (call_transact_and_set_next_state)> (http) [10] State Transition: SM_ACTION_DNS_LOOKUP -> SM_ACTION_API_OS_DNS
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2722 (HandleCacheOpenReadHit)> (http_seq) [10] [HttpTransact::HandleCacheOpenReadHit] Authentication not needed
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2791 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- needs_auth          = 0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2792 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- needs_revalidate    = 1
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2793 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- response_returnable = 1
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2794 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- needs_cache_auth    = 0
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2795 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- send_revalidate     = 1
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2798 (HandleCacheOpenReadHit)> (http_trans) [10] CacheOpenRead --- HIT-STALE
[Apr 13 16:15:39.629] [ET_NET 23] DEBUG: <HttpTransact.cc:2802 (HandleCacheOpenReadHit)> (http_seq) [10] [HttpTransact::HandleCacheOpenReadHit] Revalidate document with server
....
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4053 (handle_forward_server_connection_open)> (http_trans) [10] [hfsco] cache action: CACHE_DO_UPDATE
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4182 (handle_cache_operation_on_forward_server_response)> (http_trans) [10] [handle_cache_operation_on_forward_server_response] (hcoofsr)
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4183 (handle_cache_operation_on_forward_server_response)> (http_seq) [10] [handle_cache_operation_on_forward_server_response]
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:6229 (is_response_cacheable)> (http_trans) [10] [is_response_cacheable] client permits storing
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:6333 (is_response_cacheable)> (http_trans) [10] [is_response_cacheable] NO by default
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4192 (handle_cache_operation_on_forward_server_response)> (http_trans) [10] [hcoofsr] response is not cacheable
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4339 (handle_cache_operation_on_forward_server_response)> (http_trans) [10] [hcoofsr] response code: 502
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransact.cc:4350 (handle_cache_operation_on_forward_server_response)> (http_trans) [10] neg reval check: server_resp: 502, action: 8, neg_reval: 1, is_stale_returnable:
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:401 (calculate_document_age)> (http_age) [calculate_document_age] age_value:              0
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:402 (calculate_document_age)> (http_age) [calculate_document_age] date_value:<PHONE_NUMBER>
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:403 (calculate_document_age)> (http_age) [calculate_document_age] response_time:<PHONE_NUMBER>
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:404 (calculate_document_age)> (http_age) [calculate_document_age] now:<PHONE_NUMBER>
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:405 (calculate_document_age)> (http_age) [calculate_document_age] now (fixed):<PHONE_NUMBER>
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:406 (calculate_document_age)> (http_age) [calculate_document_age] apparent_age:           0
[Apr 13 16:15:39.630] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:407 (calculate_document_age)> (http_age) [calculate_document_age] corrected_received_age: 0
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:408 (calculate_document_age)> (http_age) [calculate_document_age] response_delay:         0
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:409 (calculate_document_age)> (http_age) [calculate_document_age] corrected_initial_age:  0
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:410 (calculate_document_age)> (http_age) [calculate_document_age] resident_time:          26
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransactHeaders.cc:411 (calculate_document_age)> (http_age) [calculate_document_age] current_age:            26
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransact.cc:5967 (is_stale_cache_response_returnable)> (http_trans) [10] [is_stale_cache_response_returnable] can serve stale
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransact.cc:4356 (handle_cache_operation_on_forward_server_response)> (http_trans) [10] [hcoofsr] negative revalidating: revalidate stale object and serve from cache
[Apr 13 16:15:39.631] [ET_NET 23] DEBUG: <HttpTransact.cc:4364 (handle_cache_operation_on_forward_server_response)> (http_Trans) [10] [hcoofsr] negative reval, lifetime: 40, curtime:<PHONE_NUMBER>, exp:<PHONE_NUMBER>
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransact.cc:2334 (HandleCacheOpenRead)> (http_trans) [11] CacheOpenRead -- miss
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransact.cc:3213 (HandleCacheOpenReadMiss)> (http_trans) [11] [HandleCacheOpenReadMiss] --- MISS
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransact.cc:3215 (HandleCacheOpenReadMiss)> (http_seq) [11] [HttpTransact::HandleCacheOpenReadMiss] Miss in cache
.....
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4053 (handle_forward_server_connection_open)> (http_trans) [11] [hfsco] cache action: CACHE_DO_WRITE
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4182 (handle_cache_operation_on_forward_server_response)> (http_trans) [11] [handle_cache_operation_on_forward_server_response] (hcoofsr)
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4183 (handle_cache_operation_on_forward_server_response)> (http_seq) [11] [handle_cache_operation_on_forward_server_response]
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:6229 (is_response_cacheable)> (http_trans) [11] [is_response_cacheable] client permits storing
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:6333 (is_response_cacheable)> (http_trans) [11] [is_response_cacheable] NO by default
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4192 (handle_cache_operation_on_forward_server_response)> (http_trans) [11] [hcoofsr] response is not cacheable
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4339 (handle_cache_operation_on_forward_server_response)> (http_trans) [11] [hcoofsr] response code: 502
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransact.cc:4350 (handle_cache_operation_on_forward_server_response)> (http_trans) [11] neg reval check: server_resp: 502, action: 9, neg_reval: 1, is_stale_returnable:
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:401 (calculate_document_age)> (http_age) [calculate_document_age] age_value:              0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:402 (calculate_document_age)> (http_age) [calculate_document_age] date_value:<PHONE_NUMBER>
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:403 (calculate_document_age)> (http_age) [calculate_document_age] response_time:<PHONE_NUMBER>
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:404 (calculate_document_age)> (http_age) [calculate_document_age] now:<PHONE_NUMBER>
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:405 (calculate_document_age)> (http_age) [calculate_document_age] now (fixed):<PHONE_NUMBER>
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:406 (calculate_document_age)> (http_age) [calculate_document_age] apparent_age:           0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:407 (calculate_document_age)> (http_age) [calculate_document_age] corrected_received_age: 0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:408 (calculate_document_age)> (http_age) [calculate_document_age] response_delay:         0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:409 (calculate_document_age)> (http_age) [calculate_document_age] corrected_initial_age:  0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:410 (calculate_document_age)> (http_age) [calculate_document_age] resident_time:          0
[Apr 13 16:15:42.062] [ET_NET 24] DEBUG: <HttpTransactHeaders.cc:411 (calculate_document_age)> (http_age) [calculate_document_age] current_age:            0
So there seems like there might be an issue that after a negative revalidating is done to hand back a stale copy, the object is being marked as expired and the newly added expires header is being ignore

Also to add to this, on the transaction where the object was considered a miss, it was initially found in cache and with the expires header:
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransactCache.cc:180 (SelectFromAlternates)> (http_match) [SelectFromAlternates] # alternates = 1
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransactCache.cc:181 (SelectFromAlternates)> (http_seq) [SelectFromAlternates] 1 alternates for this cached doc
[alts] ---- alternate #1 (Q = 1) has these request/response hdrs:
GET http://<IP_ADDRESS>/test2 HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: curl/7.69.1
Accept: /
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 0
Content-Type: text/plain
Last-Modified: Mon, 13 Apr 2020 16:15:13 GMT
Date: Mon, 13 Apr 2020 16:15:13 GMT
Expires: Mon, 13 Apr 2020 16:16:19 GMT
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransactCache.cc:252 (SelectFromAlternates)> (http_seq) [SelectFromAlternates] Chosen alternate # 0
[alts] and the winner is alternate number 0
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpCacheSM.cc:100 (state_cache_open_read)> (http_cache) [11] [&HttpCacheSM::state_cache_open_read, CACHE_EVENT_OPEN_READ_FAILED/TS_EVENT_CACHE_OPEN_READ_FAILED]
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpSM.cc:2632 (main_handler)> (http) [11] [HttpSM::main_handler, CACHE_EVENT_OPEN_READ_FAILED/TS_EVENT_CACHE_OPEN_READ_FAILED]
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpSM.cc:2563 (state_cache_open_read)> (http) [11] [&HttpSM::state_cache_open_read, CACHE_EVENT_OPEN_READ_FAILED/TS_EVENT_CACHE_OPEN_READ_FAILED]
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpSM.cc:2597 (state_cache_open_read)> (http) [11] cache_open_read - CACHE_EVENT_OPEN_READ_FAILED with ECACHE_NO_DOC (-20400)
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpSM.cc:2599 (state_cache_open_read)> (http) [state_cache_open_read] open read failed.
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransact.cc:2304 (HandleCacheOpenRead)> (http_trans) [11] [HttpTransact::HandleCacheOpenRead]
[Apr 13 16:15:42.061] [ET_NET 24] DEBUG: <HttpTransact.cc:2334 (HandleCacheOpenRead)> (http_trans) [11] CacheOpenRead -- miss
However it was considered a cache miss anyway

Doing more testing here this appears to be an oddity of using 0 length requests
I see this issue, where only the first get on a 0 length cached object comes back as stale and the second succeeds, when using only 0 length objects.
When using objects of any size then it appears negative revalidating does work, though the docs description could be updated to give a better idea of what its doing. It looks like if the server returns a 5xx then the expires header is set for negreval-lifetime in to the future. Then subsequent requests are returned as fresh up until that new expiration time is hit.  Then the expires header is updated again if the requests still fails or it is fetched from the origin.
This will continue until max-stale-age is hit

@SolidWallOfCode since we talked a bit about this :), was just going through and closing my open issues and was reminded of this one

This is interesting. I've written a test around the negative revalidating feature before. I'll assign this to myself and see whether I can add a test for this.


Preventing logging re-entrance at FINE level

Also:

Reducing the scope of synchronized blocks
Removing logger exclusions except for Http2FrameLogger

Fixes #1386

Coverage decreased (-0.09%) to 83.454% when pulling 13ef68736d4c11f7f145112a86cbab1aa79f408a on garrettjonesgoogle:master into d1e1c85c93b0c53a66b60687e5accc54d416aac5 on GoogleCloudPlatform:master.

I testing this in https://github.com/GoogleCloudPlatform/jetty-runtime/tree/master-68-stackdriver and it works both locally and when deployed in the Flex environment.  I was able to deploy with full FINE logging.

LGTM, let @pongad take a look also

Coverage decreased (-0.09%) to 83.454% when pulling a4409836a89b0d9e7ff6ddfa70cc67cb9f092c9a on garrettjonesgoogle:master into d1e1c85c93b0c53a66b60687e5accc54d416aac5 on GoogleCloudPlatform:master.

PTAL

Coverage decreased (-0.1%) to 83.449% when pulling 41ec1788e4c4730b2511c8b8038481696d83cb4b on garrettjonesgoogle:master into d1e1c85c93b0c53a66b60687e5accc54d416aac5 on GoogleCloudPlatform:master.


2.0 Punchlist

Coding Work

[x] Linq tests against the Json serializer w/ the camel casing setting
[x] Love to replace FetchResult in everything but the dirty checked identity map
[x] Eliminate the ILoader interface
[x] Evaluate all other [Obsolete] tags
[x] Run through the TODO's in the code
[x] Try to fix all the Nuget downgrade warnings in the build

Docs -- besides the other open doc issues

[ ] FI support for overriding the id member. See #709
[x] Add AppendIfNotExists and InsertIfNotExists to patching API (might already be done, but verify)
[x] multi-tenancy via tenant id
[x] using multi-tenancy from IDocumentSession and IDocumentStore
[x] New document mapping policies
[x] Disabling PLV8
[ ] Querying across tenants
[ ] Updating to a named tenant
[x] Non-typed event store streams
[x] Event store with string identifiers
[x] "Overwrite" session mode
[x] EventStore.StartStream() mechanics
[x] Created field on StreamState
[x] Camel Cased JSON
[x] Insert-only operations
[x] Update-only operations
[x] EqualsIgnoreCase Linq support

Would the changes you are making for camelCasing also help with snake_casing?

Also, should any other breaking changes be considered as an item here. I'm also for having versioning be a long and not a guid. Might be good to get any and all known breaking changes in 2.0 :).

@niemyjski The camel casing option is not a breaking change.
@ejsmith Yes. Not sure why you'd want to do that, but yes.

Haha yeah, it was a poor choice on my part a while back to try and mimic the best REST APIs (Stripe, GitHub, etc). It's a choice I have come to regret. If I had it to do over again I'd go with the standard naming convention for JS which is camelCased.

I'm declaring victory


feat: add flag to view process tree

CRIT already allows us to explore the process tree, file descriptors, memory map, and RSS map for a checkpoint. These features can be integrated with checkpointctl to allow more info to be displayed with checkpointctl show. This PR introduces checkpointctl show --ps-tree for viewing the process tree.
Here's a sample output of the tree displayed for a single process:
Process tree

Container
└── [1]  piggie

Codecov Report
Patch coverage: 71.30% and project coverage change: -5.20 :warning:

Comparison is base (f2a5886) 78.20% compared to head (42c3a50) 73.01%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #56      +/-   ##
==========================================
- Coverage   78.20%   73.01%   -5.20%
==========================================
  Files           3        3
  Lines         312      352      +40
==========================================
+ Hits          244      257      +13
- Misses         53       78      +25
- Partials       15       17       +2

Impacted Files
Coverage Δ

container.go
71.84% <66.66%> (-10.14%)
:arrow_down:

checkpointctl.go
84.04% <100.00%> (+1.08%)
:arrow_up:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

CRIU dump and restore are failing in the CI, I'm not sure why. Is it because of insufficient permissions or something? I based the workflow directly off of the one we have in go-criu.

CRIU dump and restore are failing in the CI, I'm not sure why. Is it because of insufficient permissions or something? I based the workflow directly off of the one we have in go-criu.

We run in a unprivileged container. GitHub actions supports privileged containers. Please try that.

We run in a unprivileged container. GitHub actions supports privileged containers. Please try that.

Looks like that helped - now both workflows fail on restore :laughing:

We run in a unprivileged container. GitHub actions supports privileged containers. Please try that.

Looks like that helped - now both workflows fail on restore :laughing:

You either need to print the logs in an error case or log to stdout.
It could be necessary to mount /lib/modules from the host into the container so that necessary module can be loaded.
But without logs it is difficult to tell.

I don't want to create too much noise on this PR. Let me try it out on a separate branch, and push the changes here once I get it working

I think we might need to wait a bit with this PR. My favourite approach right now would be to make everything PID tree based. Maybe the table view is only useful for the quick overview. I am curious in how far the tree based approach would work for checkpointctl overall.

We talked about binary sizes before. I think we should include a CI check about the binary size like Podman has. Build each PR without the PR and record the binary size, build the PR with the changes and record the binary size. Compare both sizes and fail if +10%.

I've added the process tree logic here. I didn't want to create a separate branch and PR for it as of now since I had important changes in the first two commits, and did not want to duplicate them. If this looks good, we can discuss how file descriptors, memory maps, etc. integrate into this and add them accordingly. I still have the commit and code for the file descriptors feature saved locally.

There are a couple of things that should be done differently. This PR mixes too many things. There is some renaming going on which should be a separate commit. The changes to the testing and the new features should be different PRs.
For the new feature I would like to see some example output in the PR description.
Instead of the loop.c example, let's try to use piggie.c from go-criu, which also creates a couple of namespaces as this will be helpful at some point during testing.
Also the binary size comparison PR should be done before any more includes from go-criu.

Got it, I'll split it up and open separate PRs.

@adrianreber I've updated the PR description with the tree we currently display during tests (with piggie).

Looks good for a first step. I like it.


HB won't run after OS and Node update please help

Current Situation
I can't get HB to run after logging into it after a while to update plug ins and add a new delay switch. Once I updated it said I needed to update node which is via a fresh OS install which I did through etcher. that still did not work. a lot of this is over my head so hopefully some of you can check out the logs and help me out.
Logs
Config
No response
Homebridge UI Version
4.55.1
Homebridge Version
1.7.0
Node.js Version
2.36
Operating System
Official Homebridge Raspberry Pi Image
Environment Info
{"label"=>"Using hb-service?"}
Raspberry Pi Model
Raspberry Pi 4 B

hatch rest BT plugin was the issue. deleting that resolved the problem


Feature: uui-time-ago

This component shall make it easy to display when something occurred. For shorter periods it will be precise and as time passes the precision will decrease.
A tooltip appearing on hover (For A11Y it might appears on focus or the tooltip can be opened by interaction/keyboard), The tooltip should display the exact time of the occurrence, as full DateTime string, like 1. January 2022 16:04:34
Examples of different appearances depending on the time since the given date-time:
now
28 seconds ago
16 minutes ago
3 hours ago
yesterday
4 days ago
last month
2 months ago
1 year ago
24 years ago
This should preferably update runtime, meaning example the second's display will update every second, to match the exact time difference.
I´m not sure how to determine when it makes sense to write yesterday etc. It would seem weird to write yesterday for 23:59 viewed at 00:01 (2minuts after). There should be a certain threshold before writing such. This has to be clarified how a system like that can work, if it does not make sense to use the words "yesterday"/"last month" then that should be kept out.

@nielslyngsoe I just saw this on Twitter: https://twitter.com/Steve8708/status/1504131981444980739
Maybe a similar utility function?

@nielslyngsoe you may also want to look at this example to render relative time: https://shoelace.style/components/relative-time

FYI, GitHub (the org) has a bundle of elements that extend the native <time> element:
<local-time>, <relative-time> and <time-ago>
https://github.com/github/time-elements
I found these on the Awesome Standalones repo, (for framework-agnostic standalone web components).

@leekelleher that's probably a good idea to extend the native <time> element.
It also use Intl.RelativeTimeFormat API as well via some utility methods:
https://github.com/github/time-elements/blob/main/src/utils.ts#L166-L179

@bjarnef you planning on working this, if not I may try and give this a go :)

@warrenbuckley not yet, so feel free start working on this :)

@warrenbuckley great that you'd like to take a stab at it! FYI, the component should handle the lang attribute directly as well as observe the lang attribute set on the browser element through the global variable known as document.documentElement.lang. I'm not sure if the Intl API picks up on this automatically. In the backoffice at least, we have to listen for changes to that attribute.

@iOvergaard the component could probably observe document lang attribute, but not sure if there's a need to specify a different language than backoffice language (or if used in other contexts). I this this Shoelace component may use default language in
https://shoelace.style/components/relative-time#localization
I think they handled English as the default/fallback language as part of the localization utility.
https://github.com/shoelace-style/shoelace/blob/7500cabc587abead71f2440ad8f87aa4c1f468f9/src/utilities/localize.ts#L2
Not sure if the localization in UI library or backoffice is aware of the locale/culture, but also other stuff like direction (LTR / RTL).
https://www.w3.org/International/questions/qa-html-dir
It seems the direction in that library was defined in each language:
https://github.com/shoelace-style/shoelace/blob/7500cabc587abead71f2440ad8f87aa4c1f468f9/src/utilities/localize.ts#L14

@bjarnef

not sure if there's a need to specify a different language than backoffice language
No, probably not, but how does it get the backoffice language. Does the Intl Api get it from the lang attribute automatically?

@iOvergaard this project https://github.com/github/relative-time-element seems to get language from closest lang attribute: https://github.com/github/relative-time-element/blob/main/src/relative-time-element.ts#L84-L90
Regarding Intl.RelativeTimeFormat() I think it use en if locale is not provided.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat

Lang is a built-in global attribute. Relative Time will use this to provide an applicable language to the Intl APIs. If the individual element does not have a lang attribute then it will traverse upwards in the tree to find the closest element that does, or default the lang to en.

https://github.com/github/relative-time-element#lang

@bjarnef you seem to be more active on this and realistically with my workload and little free time I doubt I will get to this, so if you have been working on this please feel free to as I won't be right now.


Add Signet Parsing by Default

Simple change to add signet parsing by default. You could add custom networks as in here, but there's no reason to have it not parse signet by default. This allows packages that use this library to parse signet without refactoring

I think you meant to point at another fork?

@junderw Apologies, yes. Here is the updated pull request with the right fork: #73


Update to Wicket 9.x

I've updated the examples to 9.x

compile version
disable CSP
ModalWindow -> ModalDialog

I'm not sure why JSR303validation fails to build currently, maybe the last merge broke something?
@bitstorm would you create a new branch for wicket-8.x too?

There was already a wicket-8.x branch but it was outdated. I've merged master before applying you PR so now it's ok. Thanks!


Not receiving all disconnected notifications

I'm having trouble cleaning up old connections in my application server. I investigated and saw that it isn't receiving the disconnected callback (defined on WebSocketService.swift) for each connection.
I tried refreshing a browser a lot so there are lots of short lived connections. I got 81 callbacks saying there was a new connection, but only 41 callbacks saying a connection had closed.
These connections probably weren't shut down properly client-side, so the server might not know they are dead. I had a ping handler set up to clean up dead connections, but it looks like that API is only in the non-NIO version of websockets. Can we port over that API? https://github.com/IBM-Swift/Kitura-WebSocket/pull/48

@pushkarnk On another issue you said

I tested a very simple scenario of handful browser tabs connecting to a ws server and disconnecting. I could see the disconnected(connection:reason) callback being invoked. I'll wait for more details what you observed.

I am seeing disconnected called most of the time, just not every time. The way I measured it was by putting a log on each connect and disconnect. I refreshed the browser a bunch of times and then I counted how many messages for connected and disconnected were in the log.
If you want to share the code for your scenario I can see if I can repro it with your setup, or if it is specific to my application.
Either way, I think the pinging feature would be super useful. It is often the case that a connection dies silently without the client sending a "goingAway" message. The only way I know to detect those ghost connections is by pinging them to test if they are alive.

Body of the second request arrives from the same port 39596
06:37:32.559247 IP localhost.39596 > localhost.http-alt: Flags [P.], seq 591:640, ack 207, win 350, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 49: HTTP
	0x0000:  4500 0065 78dd 4000 4006 c3b3 7f00 0001  E..ex<EMAIL_ADDRESS>	0x0010:  7f00 0001 9aac 1f90 bda5 5535 f063 33c0  ..........U5.c3.
	0x0020:  8018 015e fe59 0000 0101 080a 585e e023  ...^.Y......X^.#
	0x0030:  585e dffb 7b22 6964 223a 352c 226e 616d  X^..{"id":5,"nam
	0x0040:  6522 3a22 4a6f 6e61 7468 616e 2053 7769  e":"Jonathan.Swi
	0x0050:  6674 222c 2264 6174 6522 3a35 3430 3839  ft","date":54089
	0x0060:  3932 3536 7d                             9256}

Response for the second response sent to remote port 39596
06:37:32.560227 IP localhost.http-alt > localhost.39596: Flags [P.], seq 207:432, ack 640, win 359, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 225: HTTP: HTTP/1.1 201 Created
	0x0000:  4500 0115 18c5 4000 4006 231c 7f00 0001  E<EMAIL_ADDRESS>	0x0010:  7f00 0001 1f90 9aac f063 33c0 bda5 5566  .........c3...Uf
	0x0020:  8018 0167 ff09 0000 0101 080a 585e e024  ...g........X^.$
	0x0030:  585e e023 4854 5450 2f31 2e31 2032 3031  X^.#HTTP/1.1.201
	0x0040:  2043 7265 6174 6564 0d0a 4461 7465 3a20  .Created..Date:.
	0x0050:  4672 692c 2031 3220 4a75 6c20 3230 3139  Fri,.12.Jul.2019
	0x0060:  2030 353a 3337 3a33 3220 474d 540d 0a4c  .05:37:32.GMT..L
	0x0070:  6f63 6174 696f 6e3a 2035 0d0a 436f 6e74  ocation:.5..Cont
	0x0080:  656e 742d 5479 7065 3a20 6170 706c 6963  ent-Type:.applic
	0x0090:  6174 696f 6e2f 6a73 6f6e 0d0a 436f 6e74  ation/json..Cont
	0x00a0:  656e 742d 4c65 6e67 7468 3a20 3439 0d0a  ent-Length:.49..
	0x00b0:  436f 6e6e 6563 7469 6f6e 3a20 4b65 6570  Connection:.Keep
	0x00c0:  2d41 6c69 7665 0d0a 4b65 6570 2d41 6c69  -Alive..Keep-Ali
	0x00d0:  7665 3a20 7469 6d65 6f75 743d 3630 2e30  ve:.timeout=60.0
	0x00e0:  0d0a 0d0a 7b22 6e61 6d65 223a 224a 6f6e  ....{"name":"Jon
	0x00f0:  6174 6861 6e20 5377 6966 7422 2c22 6964  athan.Swift","id
	0x0100:  223a 352c 2264 6174 6522 3a35 3430 3839  ":5,"date":54089
	0x0110:  3932 3536 7d                             9256}

@bridger I wasn't able to repro what you said with 10-12 tabs. So, I wrote a JS client that makes N connections to the test WebSocket server, sends two messages and closes one connection per second.
If I make more than 20 connections, I see that the disconnected() callback hasn't been invoked on a handful of them. The number of misses is, of course, random.
You are right. This needs investigation.

I also found a new Kitura-NIO bug testing with the JS client: https://github.com/IBM-Swift/Kitura-NIO/pull/215

Ported IBM-Swift/Kitura-WebSocket#48 through #40

I think I have found the reason for the WebSocket connection not receiving all the disconnected notifications. It is a bug in Kitura-NIO. Here's the possible fix: https://github.com/IBM-Swift/Kitura-NIO/pull/217
I ran a WebSocket client with 500 concurrent connections and closing them one connection per second. We seem to be getting the disconnected callback invoked on all of the connections.

Today I tried updating everything (Kitura-WebSocket-NIO was on commit https://github.com/IBM-Swift/Kitura-WebSocket-NIO/commit/b98bb3e72c6ff7fb4fd084985cdf427dfa2fd7f0 and Kitura-NIO was at version 2.2.0). I am unfortunately still seeing some connections never get disconnected. I'm afraid this would cause memory leaks that would crash the server pretty often. If there are any other tests I can run, let me know.

@bridger to help the Kitura folks debug, could you check if NIO sends a channelInactive event?

@weissi helped look into this. It looks like Kitura doesn’t implement the channelInactive or errorCaught callbacks. Without these, we’d only get notified if the channel closes cleanly. If the tcp channel is interrupted then Kitura won’t know about it. The solution is likely implementing both of those callbacks and then notifying about the close.
Sent with GitHawk

Thanks @weissi and @bridger for the investigation - Yes, we should implement those callbacks. I'll take that up (Sorry for the late response, I was away yesterday).


Need a cleaner uninstall process.

This is more of a development problem, where we are testing multiple instances of Pelorus in a single cluster. When we follow the documented uninstall process:
helm template --namespace pelorus pelorus ./charts/deploy/ | oc delete -f- -n pelorus

We end up deleting the operator CRDs, which may still be in use by other instances of pelorus, or other non-pelorus instances of prometheus or grafana. We need a safer way to uninstall the stack, without leaving a bunch of cluster-level rbac resource behind.

How's something like this: https://helm.sh/docs/howto/charts_tips_and_tricks/#tell-helm-not-to-uninstall-a-resource? You'll have to use helm uninstall though and manage the release using install|upgrade|rollback|uninstall as opposed to helm template | oc delete. The annotation can be applied to any resource you don't want to be removed. Or, the label can be generated based on the presence of a value, like --set keepCRDs=true.
I can make a PR if you like the approach.

This has been completed.


Support of staudenmeir/eloquent-has-many-deep

Today, I implement barryvdh/laravel-ide-helper in my personal project after using it in mine work. I'm using staudenmeir/eloquent-has-many-deep package for query optimization with new relations "HasOneDeep", "HasManyDeep" and more.
For more understanding, see following code :
/**
 * @mixin IdeHelperBusiness
 */
class Business extends Model
{
    public function region(): HasManyThrough
    {
        return $this->hasOneDeep(Region::class, [City::class, Department::class], ['id', 'id', 'id'], ['city_id', 'department_id', 'region_id']);
    }

    public function department(): HasManyThrough
    {
        return $this->hasOneDeep(Department::class, [City::class], ['id', 'id'], ['city_id', 'department_id']);
    }

    public function city()
    {
        return $this->belongsTo(City::class);
    }
}

Maybe you already see the problem, I need to set up manually the return type to HasManyThrough instead of HasOneDeep relation. If I don't do that, barryvdh/laravel-ide-helper will not be understood in my method.
I want to add HasOneDeep and more in barryvdh/laravel-ide-helper. I go to make pull request about it if you agree :+1:, else how I can implement it locally?
Sorry, bad English. Google Translate if my best friend.

I know you are lazy : https://github.com/staudenmeir/eloquent-has-many-deep

I made a model hook for this a while back. I just published it on Packagist, give it a try.
https://github.com/daniel-de-wit/laravel-ide-helper-hook-eloquent-has-many-deep

@daniel-de-wit I just try to use it, I create new issue and pull request to fix one bug. It now works.

This should be possible to fix without a model hook by adding the relationships to the config file
https://github.com/barryvdh/laravel-ide-helper#custom-relationship-types


Refactor and restructure end_model/ to classification/

This PR is mostly a refactor/restructuring of the end_model directory, which will now have the following structure:
classification/
	training/
		__init__.py
		loggers/
			…
		schedulers/
			…
		trainer.py
	models/
		classifier.py
		simple_classifier.py
		advanced/
			advanced_classifier.py
			task.py
			utils.py
	data.py
	scorer.py
	utils.py

Along with the name changes of files, I replaced "Multitask" in MultitaskModel, MultitaskDataset, and MultitaskDataLoader with "Classification".
Test directory has been updated to match
Moved test_split_data() to its proper place in the test directory (it apparently didn't migrate out of model/ when it's corresponding method did)

Test plan:
All unit tests continue to pass after the refactor

where did snorkel/classification/training/trainer.py come from? and why advanced instead of multitask?

It was snorkel/end_model/[a lot of things including trainer.py]. Now it's broken down into training/ and models/
Advanced instead of multitask because that more flexible model is the best model to use for a lot of different things, including many non-multitask ones. (e.g., none of the SuperGLUE models were multi-task, but many of them had unusual architectures that needed the more flexible model specification).

Ok so why is this diff SLOC +700 -180?

That's a great question. Answer: end_model/ wasn't fully deleted. Now that it is, the diff is SLOC +181 -182.

Replacing with #1216 (same commits but rebased on redux tip to avoid merge conflict with hot fix)


Show hidden properties if many

In geov-entity, particularly in nested properties,
when there are several properties, do not display the value, but indicate only the number of properties available.
This number can be clicked and opens a modal window displaying geov-entity-props-by-predicate (with 10 lines per page to start with)

... do not display the value ...

Ah, this is a good idea. It did not occur to me, to hide the value. What would you show instead? The number of items (see below)?
Before

After

Yes, it's exactly what I imagined


E2E tests: Html element attributes are not getting sorted for assertions

The prettier plugin prettier-plugin-organize-attributes is not working.

The issue seems to be related to pnpm. Autoload prettier plugins don't work with pnpm.
See https://github.com/pnpm/pnpm/issues/4700 and https://github.com/prettier/prettier/issues/8474

On debugging, I found that prettier is not able to locate the node_module folder for auto-loading plugins when using pnpm.
In the code for loading plugins, the current directory is identified as follows when the code works properly:
__dirname: “/Users/umarxxxx/Projects/svelte-lexical/node_modules/prettier”
And the folder for auto-loading modules is found as:
autoLoadDir: ”/Users/umarxxxx/Projects/svelte-lexical/"
In case of pnpm, the current directory is:
__dirname<EMAIL_ADDRESS>From this directory, prettier is not able to figure out autoLoadDir.
Here are the methods called from prettier codebase for loading prettier plugins and identifying the directories.

Able to resolve this issue by setting plugins and pluginSearchDirs in .prettierrc.json file.


Update sqlite3 so it builds on recent node.

This also updates the package-lock.json and version.

can you try again after running "npm install"

@tdaede : This is running via Docker Build without Cache, with the upstream Dockerfile
https://github.com/xiph/awcy/blob/master/Dockerfile
The only thing I am suspecting now is the Node version. What is there,

Packages deprecations warnings on build
For the main server
> cd ${APP_DIR} && 	export PYTHON=python2.7 && 	alias python=python2.7 && 	rm -rf node_modules && 	npm install && 	npm run tsc
npm WARN deprecated<EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>This functionality has been moved to @npmcli/fs
npm WARN deprecated<EMAIL_ADDRESS>This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer

For www/*
> cd ${APP_DIR}/www && 	npm install && 	npm run build
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition for Facebook's Immutable (https://github.com/facebook/immutable-js). Facebook's Immutable provides its own type definitions, so you don't need @types/immutable installed!
npm WARN deprecated<EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated<EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.

Webpack build warnings
> webpack --mode=development --config config/webpack.config.js

(node:40) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: Compilation.modules was changed from Array to Set (using Array method 'reduce' is deprecated)
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:40) [DEP_WEBPACK_MODULE_ERRORS] DeprecationWarning: Module.errors was removed (use getErrors instead)


switch GCR -> Artifact-Registry

GCR has been deprecated [0] in favour of Artifact-Registry.
Thus, change push-targets for OCI-Images:

europe-docker.pkg.dev/gardener-project/snapshots for snapshots
europe-docker.pkg.dev/gardener-project/releases for releases
europe-docker.pkg.dev/gardener-project/public for combined view of snapshots + releases

[0]
https://cloud.google.com/artifact-registry/docs/transition/transition-from-gcr
Release note:
Change OCI Image Registry from GCR (`eu.gcr.io/gardener-project`) to Artifact-Registry (`europe-docker.pkg.dev/gardener-project/releases`). Users should update their references.

@vpnachev : by now, almost all similar pullrequests have been merged, and there were already a couple of releases to Artifact-Registry instead of GCR (yesterday, the largest change to gardener/gardener was also accepted. I think it might now be safe to proceed (note: after the next gardener-release, revendoring of Gardener will likely make this pull-request mandatory due to changes in hack/.ci/component_descriptor).

@ccwienk, in the light of https://github.com/gardener/gardener/pull/9008, does this PR require adaptation similar to https://github.com/gardener/gardener-extension-provider-azure/pull/770?

@vpnachev : this change should not be necessary, considering this repository does not seem to make use of the special-handling of images.yaml


Is SQL Server Profiler extension available on VSCode marketplace?

From the docs here it seems that SQL Server Profiler extension available on VSCode marketplace is available on the marketplace, but when searching it - it doesn't show up:

#assign:dzsquared

@dzsquared oops 🙈 haven't used it before, and on that tutorial it looks so much alike. Thanks!

all good! They're closely related, but Azure Data Studio has a number of additional interface components that are helpful when working with databases.


yarn db:up (cascading) error with Node v12.14.0 and npm v6.13.4

From a fresh clone, ran yarn install, cd api, and yarn db:up.
1) Initial Error Running from Fresh Clone
Encountered this error: https://github.com/prisma/prisma2/issues/1162 Suggestion was to upgrade to Prisma2 preview 17+, which I did.
2) Error with api/prisma/schema.prisma config
Upon update to Prisma2 preview017.1, I encountered an error with api/prisma/schema.prisma using env() in provider arg. Updated to provider = "sqlite".
See doc:
https://github.com/prisma/prisma2/blob/7f8b064e28402740aa29481fbc3aff6a8ef36b25/docs/prisma-schema-file.md#using-environment-variables

It is not possible to use environment variables for the provider argument in datasource and generator definitions

note: I later came back and ran using Prisma preview018.2 and can confirm it works.
3) Breaking change updating to Prisma2 preview016+
See: https://github.com/prisma/prisma2/releases/tag/2.0.0-preview016

Due to a major refactoring in Lift's migration engine, your migrations are likely going to break if you upgrade to preview016 with an error similar to this: Error parsing the migration steps: Error("unknown field 'name', expected 'model'", line: 1, column: 59).
To get rid of this error, you'll need to manually delete the generated migrations folder from your file system and drop the _Migration table in your database.

I removed dev.db and migrations/
4) binaryTarget error in schema.prisma
Lastly, I ran into this error:
Error: Binary target linux-glibc-libssl1.0.2 doesn't exist anymore. Please use debian-openssl-1.0.x instead.

Updated schema.prisma binaryTargets = ["darwin", "debian-openssl-1.0.x"]
🎉 Success!
Confirm now working using the following:

Node v12.14.0
npm v6.13.4
yarn v1.21.1
prisma2 v2.0.0-preview018.2

After completing the above, I encountered a separate error when running yarn workspace api db:seed
Invalid `photon.()` invocation in /Users/price/Repos/hammer-example-blog/api/prisma/seeds.js:37:25

Reason: Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(SqliteFailure(Error { code: Unknown, extended_code: 1 }, Some("no such table: dev.Tag"))

Seems like possible breaking change from using prisma2 v2.0.0-preview018.2 that's affecting shema.prisma config.

Yeah, prisma2 is in pretty rapid development right now and it's been an adventure keeping up with the changes! We've been working on a tutorial and haven't updated the example-blog in a couple of weeks. We'll be doing that soon and hopefully that'll resolve these issues!

Thanks, @cannikin Did this mostly for @mojombo to document the issue I was having. And I promise I was only trying to go through the tutorials and offer some feedback per his request. Then, well, basically this happened:
https://xkcd.com/349/
Excited about this project! Keep on keeping on.

Confirming this is fixed as of update to Prisma2 2.0.0-preview019. Thanks!


[5.1.9] mcrypt_decrypt(): Received initialization vector of size 32, but size 16 is required for this encryption mode

After deploying an application Laravel 5.1.9, I'm seeing the following error showing up in Sentry.
exception 'ErrorException' with message 'mcrypt_decrypt(): Received initialization vector of size 32, but size 16 is required for this encryption mode' in /home/forge/default/releases/20150806062346/vendor/laravel/framework/src/Illuminate/Encryption/McryptEncrypter.php:127

It doesn't appear to affect all users, I've yet to work out what determines whether a user will be affected or not, but all pages are broken for these users.
I thought this had something to do with the cipher, noticing the default Laravel cipher changed from MCRYPT_RIJNDAEL_128 to AES-256-CBC.
However upon looking deeper through our diffs I noticed the issue only showed up once we upgraded from 5.1.8 to 5.1.9. Once I locked in the laravel/framework dependency to 5.1.8 we are no longer seeing the issue.
I'm not that familiar with how this encryption works or what else could be causing this issue (is it cookies, or sessions?) so I'm not sure what to look for when looking at the changes from 5.1.8 to 5.1.9.
This application was only just upgraded from Laravel 5.0 to Laravel 5.1 and the session store is a Redis cluster, I'm not sure if that makes any difference.

If you change cipher you'll need to run php artisan key:generate again.

I didn't change the cipher, I left my project on MCRYPT_RIJNDAEL_128.

Try changing the cipher to AES-256-CBC and then run key generate. It's what I've done in the past. Sessions will be expired though.

Not sure why this has only become an issue in 5.1.9 though. I'd like to avoid expiring all sessions as I have ~600 signed in active users.

We haven't changed the encrypted component at all since 5.1.8.

Just a postmortem for anyone who runs into a similar issue - I'm still not sure why this issue only appeared in 5.1.9, however the cookie causing the problem turned out to be the one created from Sentry which this project used up until last year. Sentry's cookie lifespan was until 2020 and seemingly used an encryption that was not compatible with the new version of Laravel. Adding the name of the Sentry cookie to the $except array of the EncryptCookies middleware solved the issue.

Did you recently also upgrade to PHP 5.6?  As of 5.6.0, mcrypt_encrypt() no longer silently accepts shorter keys.  See http://php.net/manual/en/function.mcrypt-encrypt.php.
Some of us have 16 byte 'key' values set in our config/app.php.  I'm not sure why that is, but it may be that older versions of Laravel generated a 16 byte key instead of 32.  That didn't used to be a problem since mcrypt_encrypt() used to silently pad it with 16 '\0' bytes, but it is once you upgrade to PHP 5.6, that no longer happens.
So what is the best solution at this point?  I don't know what the ramifications are of changing the 'key' in config/app.php.  Would it just break session cookies, or would other things also break?
McryptEncrypter.php could pad 16 byte keys with 16 '\0' bytes so that installs that use PHP 5.6 would behave just as older versions did.  Is that the best solution, or is there a better way for Laravel to handle this?

(I recommend re-opening this issue since this is probably something that Laravel should be modified to handle better in my opinion.)
Did you recently also upgrade to PHP 5.6?  As of 5.6.0, mcrypt_encrypt() no longer silently accepts invalid key lengths.  See http://php.net/manual/en/function.mcrypt-encrypt.php.
Some of us have 32 byte 'key' values set in our config/app.php with MCRYPT_RIJNDAEL_128 as the 'cipher' value, but MCRYPT_RIJNDAEL_128 only needs a 16 byte key.  That didn't used to be a problem since mcrypt_encrypt() used to silently ignore the extra 16 bytes, but it is once you upgrade to PHP 5.6, that no longer happens.
So what is the best solution at this point?  I don't know what the ramifications are of changing the 'cipher' in config/app.php on a live site.  Would it just break session cookies, or would other things also break?
McryptEncrypter.php should probably detect 32 byte keys when used with MCRYPT_RIJNDAEL_128 and automatically discard the extra 16 bytes so that installs that use PHP 5.6 would behave just as older versions did.  Is that the best solution, or is there a better way for Laravel to handle this?


Performance issue wake after sleep

Describe the bug
Hi guys,
I'm using an Aokzoe A1. I know this is a known issue. But I was just wondering if there is any solution to this? Basically, FPS drops in half after wake from sleep. I checked the TDP usage and it still the same at 30w before and after sleep. So I'm not sure why FPS is getting cut in half on games. This is consistent across most games. On Windows this is also a known issue, and the suggestion was to use hibernate instead of sleep (which solved the problem for me when I was using Windows). Is this a hardware issue or is there a solution for linux? If not, is it possible to enable hibernate?
What did you expect to happen?
Performance to still be the same
Output of rpm-ostree status
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable
                   Digest: sha256:67bb1f9dd52a420f080fd67e71a60bb6f732c12bacab7d27476dfbdca601c757
                  Version: 40.20240427.0 (2024-04-27T22:36:59Z)
          LayeredPackages: pavucontrol snapd
                Initramfs: '"-I /etc/crypttab /etc/modprobe.d/amdgpu.conf /etc/modprobe.d/deck-blacklist.conf" '

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable
                   Digest: sha256:b3e8d6e3cb7ed88de6dfe20dcf1f82a38eff42e02226d68897ea051a90ec7fa7
                  Version: 39.20240418.0 (2024-04-18T20:08:16Z)
          LayeredPackages: dkms onboard pavucontrol snapd
                Initramfs: '"-I /etc/crypttab /etc/modprobe.d/amdgpu.conf /etc/modprobe.d/deck-blacklist.conf" '

Hardware
Aokzoe A1
Extra information or context
No response

Same issue here.  Running bazzite on a AYN Loki Max.  Resume from suspend destroys performance until the device is restarted.  Would love a solution - enabling hibernate would be an acceptable work around for the moment.

I experience the same issue on a regular desktop machine (AMD 5700x + RX7600).

Desktop user here (Ryzen 5 5600G + RX 6600) and I'm getting the same issue. Whenever I wake my device from sleep with my game running, I noticed that it becomes incredibly choppy and I'd  have to relaunch the game in order to restore performance.

Same issue here win max 2 6800u - TDP set to 14 with simple decky TDP and once I have used suspend even turning TDP up to 40 does not change frame rate.

I also have this issue. It’s only an issue when sleeping the system while a game is running.
Checking Mangohud, the power draw from the GPU is basically none after resuming. After exiting the game everything goes back to normal. I have a 7900 xtx.
Any help I can provide in getting this sorted let me know 👍

Similar issue with Ryzen 7700 + RX 7900XT desktop machine.
When I sleep + wake up with a game running, it'll run like 5 fps. It's not just the game that's slow, steam's own UI is also as sluggish as the 5 fps suggests.
Shutting down and restarting the game brings everything back to normal.
This issue was there when I first started playing with steamOS (ChimeraOS then) about 1.5 years ago and has persisted ever since.

same issure on my 7800XT

Same here. Ryzen 5 5600x + RX 7800 XT.

I think this has been resolved for me as of the most recent stable build, which is F41.20241118.
I tested on Life is Strange and Elden Ring. Both used to have performance problem as described in this issue but worked fine after updating to latest stable build.
I'm running a 7700x + 7900xt rig.


Derek set milestone: current/next

Needs more thought - but I can't always remember what milestone number to pick when doing this on mobile for instance.
Derek set milestone: 0.5.4
vs:
Derek set milestone: next
Which could be: 0.5.5
Derek add milestone -> Might just add the latest one available.
There are other tools that can generate change logs but this seems like a simple feature to explore more.

Derek set milestone: 0.6.1

Derek add label: test

Derek set milestone: 0.6.1


what mean of the pretrain model outputs?

Hi, thanks for your great work!
Even though I got a perfect result in the pre-train model of AALBERT, I have no idea of the meaning of the results.
Just like，['hidden_states'] and ['last_hidden_state'], what the relations of them?
There are three transformer layers of the pre-train model, but the length of ['hidden_states'] is 4, which is the output of the first transformer layer?

Hi,
hidden_states[-1] == last_hidden_state
hidden_states[0] == FBANK adding positional encoding + some affine transform
hidden_states[1] == first iteration output
hidden_states[2] == second iteration output
hidden_states[3] == third iteration output
Note that AALBERT shares a single transformer block so every iteration gets the output from the same nn.Module.

I have another question, AALBERT just has 3 self_attntion layers, and I want to extend it to 7 or more layers in my experiment.
In VGG and other CNN models it is easy, but in AALBERT I found it's hard. I tried several methods by debugging codes to extend layers, but all failed！
It's because I can't get every layer out in the first several layers, and the self_attention layers need pos_enc and attn_mask.
Do you have an easy way or suggest  to solve this problem？Thanks a lot!


Unable to download the complete datasets

I downloaded the dataset at June 14th and found that around 11% of the provided images URLs already not working. The training set has 4683 missing images, validation set has 919 and testing set has 3728 missing images. Filename of the missing images are listed below:
valid_missing.txt
train_missing.txt
test_missing.txt
During the first few days, about 2% images of the testing set can not be accessed according to  this post. And currently around 11% of the testing images URLs are not accessible.
Is there any ways to solve this problem?

Hi, we are currently working on this issue and thinking of putting images online.

Hi, I've added a download link in the github page.

Thanks a lot!


319 generalize marshaling

Marshal package
See https://github.com/curvegrid/multibaas/pull/394/
Templates have been added for adding marshaling functions to each model
Generated Tests for SQLBoiler
When we add a constraint in the DB (ex. 0 < HTTPEndpointPort < 65535), SQLBoilers generated tests don't account for this and may fail since it randomizes input. There's a hacky fix in randomize.go:189 in SQLBoiler to catch these and provide proper input. Running go test in the models folder should be working.

I can't directly reply to that top comment on templates. I'm not sure on the language, as far as I understood .tpl is just a generic template file and they're using go to fill it in for each model.

Excited about these changes! I can't see what's changed in the templates though. Is there a way to do this diff to show only the template changes? Will take a deeper look and maybe chat in person.

22_marshal.tpl in curvegrid_templates and marshal.tpl in curvegrid_templates_test are the only template changes. They'll be in the generated models if you rebuild them, along with the models test files.


Syntax/type error hover tooltip copy error message.

Not sure if anyone else has this problem,
but I have so many times that I copy an error message and the copy doesn't work proper.
Maybe its a good idea to make the text auto copy on click?
If anyone else has this frustrating problem please reply.

I too have the same issue
for some reason copying from hovers messages randomly doesn't work
I suspect the hover isn't in focus, even tho it looks like it

Can you give an example of which hovers you see this with?

Here a Screenshot, you can see the hover tooltip I selected the text (use for google or chatGPT) and a lot of times if I hit ctrl+c it doesn't actually copy the text. sometime it randomly has a } or some other random characters instead of the tooltip text. I suggest just to add a simple copy button (copy full warning/error text) for ease.

Hey @hediet, this issue might need further attention.
@Sv3nskie, you can help us out by closing this issue if the problem no longer exists, or adding more information.

Hi thank you for filing this issue. I am currently not able to reproduce this issue. Do you still see this? If yes could I ask you to give an example where you are not able to copy paste from the hover?
https://github.com/user-attachments/assets/6804b144-257a-4fe8-ab6f-6e2c8c5abc02

possible cause:
it can happen that during the time after pressing ctrl and before pressing c
if you move your mouse over a definition, it'll instantly drop the hover
and you'll end up copying the line that your cursor is currently on
https://github.com/user-attachments/assets/c37d8195-08c2-44cf-8bd7-29ba9fd95d36
the red highlight flash is https://marketplace.visualstudio.com/items?itemName=mguellsegarra.highlight-on-copy

Hi @RedCMD from looking at your screen recording it looks like you are copying the line behind (as we see the flickering of the red background). To make it easier to copy the message, you can increase the hover delay so the hover does not disappear instantly. I will consider adding an icon to copy the hover content.

like githubs codeblock copy button?

copy

would it be possible for the button to copy the currently selected content?
so by default it'll copy the entire hover content
but if a select a section of text, it'll only copy that selection?

Yes that is a good idea. This month we are in the cleaning process so we are fixing this bugs. I will put this request in the backlog.


Improve results output process from UX perspective

Based on feedback from @brad-kaiser

As a user I want to hang onto the config file I used in its entirety for each run so that I can have easy reference and copy-paste access to the exact settings I used.

As a user, I want to output results in the same directory both from multiple suites and from multiple runs of spark-bench.

As a user, I find it overwhelming to see such wide rows in my results with so much repeated information.

FYI, speaking for myself here, I think outputting results on a suite-by-suite basis is a little bit of an odd choice. It was my choice, but I still think it's weird. I definitely think this could be improved.

@showermat @cin your comments are welcomed!

At the moment, it seems like the trend is toward wrapping every element of the configuration and environment into the output as columns in the results table.  As we try to add OS and hardware information, the number of columns will increase.  Having one table may be convenient for certain kinds of analysis if you're using SQL, but is not very user-friendly when it comes to casually going over output -- particularly on the console.  There is a lot of duplicated information -- OS is the same for all workloads on one machine, for example, and spark options are the same for each spark-submit.  Since the testing structure is hierarchical (submits -> suites -> workloads), it may make more sense to have similarly hierarchical output.  In the discussion that spawned this issue, the idea was mentioned of having a directory for each submit and placing the configuration file for that submit in there along with the results output CSV...or something like that.  I think that it would be worth looking into extending this idea to a multi-level directory hierarchy something like this:

Base directory for this run

Original config file that created this run
Information common to all submits -- environment variables, parallelism, etc.
Directory for submit 1

If debugging is enabled, maybe the temporary config file created by spark-launch?  Or we could just put the temp files there by default rather than putting them in /tmp and trying to delete them, which often fails
CSV or other table format with the hardware and OS information, Spark version and parameters, and anything else common to the entire submit
Directory for suite 1

spark-bench configuration information for suite 1 and anything else that can change between suites
At this point, we could go another step further and create a directory for each workload, containing its configuration and its output as a CSV or similar.  I think this might be going a bit far.  Instead, we could put the existing results tables in this directory, only without the information that has already been included at a higher level.  Only the workload parameters and results would need to be included in this table.

Directory for suite 2...

Directory for submit 2...

I think something like this would go a long way toward making the output more user-friendly, and it also handles the "easy reference" issue mentioned above.
I'm not sure how far this goes toward a solution, but it is my initial thoughts on the fact.

It's important to consider scriptability of the results in the new format.  Craig points out that while the hierarchical format is convenient for human readers, it may make it difficult to automatically extract results for reporting.  We need to be careful that the new format is machine-friendly as well as human-friendly.


The call is ambiguous between the following methods

Environment details

OS: macOS 12
.NET version: 6.0
Package name and version: Google.Cloud.Diagnostics.AspNetCore 4.3.1

Steps to reproduce

Create a basic dotnet 6 ASP.NET app
Follow [this Google documentation] (https://cloud.google.com/dotnet/docs/reference/Google.Cloud.Diagnostics.AspNetCore3/latest#configuration-1) up to and including Getting Started.
Assume that your code will run on GCP Cloud Run and omit ProjectId, Service and Version as documented.
Observe that your code will not compile.

services.AddGoogleDiagnosticsForAspNetCore();
The call is ambiguous between the following methods or properties: 'AspNetCoreGoogleDiagnosticsExtensions.AddGoogleDiagnosticsForAspNetCore(IServiceCollection, AspNetCoreTraceOptions, LoggingServiceOptions, ErrorReportingServiceOptions)' and 'AspNetCoreGoogleDiagnosticsExtensions.AddGoogleDiagnosticsForAspNetCore(IServiceCollection, string, string, string, TraceOptions, LoggingOptions, ErrorReportingOptions)' [Evoq.Timesheets.Web.Application]csharp(CS0121)
I think it's an API bug to have two overloaded signatures that cannot be resolved in this way. I'm not entirely sure there's a solution without breaking it or introducing a second method or third overload with a unique signature, I've not given it much thought, but perhaps the documentation needs changing.

I'll take a look as soon as I can but that might unfortunately be early January.
The workaround is to pass three null strings for project ID, service and version. They will be obtained from GCP if running there.

No rush. Enjoy Christmas. There's a workaround so it's hardly P1, but it's just bad code/API design.


[Feature Request] Data API for streaming

Not sure if that's the correct title for this, but the idea is as follows:
for those that stream on Twitch/Youtube/etc..., it would be nice to be able to have a way to connect to Outfox from another system to grab information like current song/mix, play history, step judgements, total steps in session etc... Can't think of everything that might be fun to put on a stream. Maybe even a way to grab a list of the songs on the streamer's system so they could create some kind of catalog viewers could request from?
Basically the setup that I'm thinking of is Outfox is installed on a dedicated machine and connected to the network whereas the computer hosting the stream is seperate, but also connected to the network and could grab some information to display in an OBS or Xsplit scene. I'm not all that great at putting ideas into words. >_<

This would be excellent for things like custom light animations and such as well, if it exposes information like the current beat and bpm.
My roommate is currently using a build of StepMania 5.1 on a DDR cab that has the source code modified to talk to an Arduino, which drives a set of LEDs on the cabinet which would

animate to the beat of the music
indicate the current health meter of player 1 and 2 individually
detect the current game mode to change color/animation style

With a game state API, this same behavior could be implemented outside the engine without needing source code access.


AudioRelay.AudioRelay version 0.27.5

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Already exists at manifests/a/AsaphaHalifa/AudioRelay/0.27.5

Duplicate of #107199


Autocomplete - add possibility to group result by selected field

Is your feature request related to a problem? Please describe.
The search result retuned by autocomplete sometimes has additional context that may be helpful for end user.
Sample: https://demos.telerik.com/kendo-ui/autocomplete/grouping
Describe the solution you'd like
I would like to define a function over returned result to group a results by some response model field.
Describe alternatives you've considered
Include the grouping property into ToStringFunc but then a lot of repetetive content is displayed.

This issue is now organized in our feature requests project
Note: the issue is closed but that doesn't mean that this won't be implemented. Check the project to see how it is scheduled. If enough users vote for a different scheduling it can be changed. Also, if you want to PR this feature you may do so any time.
You can still discuss this feature here!

Would also like this feature. Currently working around this by using MudTextField with MudTable. Some css to make it look more natural, but it still ends up missing the tabbing and fluid-nature of autocomplete.
ex-
<EditForm EditContext="Model.Context" OnValidSubmit="Model.OnValidSubmit">
     <MudTextField T="string"<EMAIL_ADDRESS>@bind-Value="Model.Input" Immediate="true"<EMAIL_ADDRESS>Variant="Variant.Outlined" />
</EditForm>

<MudGrid Spacing="2" Class="search-suggestions">
    <MudItem xs="3" sm="2">
    </MudItem>
    <MudItem xs="9" sm="10">
        <MudTable Items="Model.Suggestions()" GroupBy="@GroupDefinition" GroupHeaderStyle="background-color: var(--mud-palette-background-grey); font-weight: bold;" Dense="true">
            <ColGroup>
                <col />
            </ColGroup>
            <GroupHeaderTemplate>
                <MudTh>@context.Key.ToString()</MudTh>
            </GroupHeaderTemplate>
            <RowTemplate>
                <MudTd Class="search-result">
                    <MudButton Variant="Variant.Text" Link="@SearchModel.GetLink(context)">
                        <div style="display: flex; width: 100%;">
<EMAIL_ADDRESS>                        </div>
                    </MudButton>
                </MudTd>
            </RowTemplate>
            <GroupFooterTemplate />
        </MudTable>
    </MudItem>
</MudGrid>

This would be interesting in a scenario that where you have a heading for each group type. Such as

You can build this with Blazor manually, but you lose a ton of aesthetic


Fix deprecated flags warning

I double checked on my side and it does work now.
However there is now a warning issued by the builder about deprecated arguments
$ make build
go install<EMAIL_ADDRESS>mkdir -p bin
builder --config=builder-config-izbk.yaml --name=otelcol-custom --output-path=bin/.
Flag --name has been deprecated, use config distribution::name
Flag --output-path has been deprecated, use config distribution::output_path

It can be fixed by removing the command line arguments in the Makefile and adding the following section in the builder-config.yaml
dist:
  name: otelcol-custom
  output_path: ./bin

Originally posted by @ljulliar in https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/17899#issuecomment-1406549500

Triaged to me


error data.yaml

When using yolov8_datagen.py, the code yolo v8 cannot find image paths. Please check error

Make sure to download the dataset first using this link. Extract it, then store it on a folder called 'datasets' on the root directory. Please follow the file structure from the README

I have already fixed this issue. However, I have a training issue. Please share me your file data.yaml

after training data, my model detected text wrongly. I followed guides for creating coordinates with the YOLO format. However, I don't know why your model predicted well with odd coordinates

Besides, I drew annotations (in annot.csv) for images which got from Kaggle. I saw the annotation is wrong.


⚠ Slack has degraded performance

In 56869f9, Slack (https://status.slack.com/api/v2.0.0/current) experienced degraded performance:

HTTP code: 200
Response time: 339 ms

Resolved: Slack performance has improved in ac3a8bd after 2 hours, 18 minutes.


ModuleNotFoundError: No module named '_infer_shapes_nn_mlmodel'

🐞Describe the bug
ModuleNotFoundError: No module named '_infer_shapes_nn_mlmodel'
Trace
python3 inspect_mlmodel.py
Traceback (most recent call last):
File "inspect_mlmodel.py", line 3, in
from _infer_shapes_nn_mlmodel import _infer_shapes
ModuleNotFoundError: No module named '_infer_shapes_nn_mlmodel'
System environment (please complete the following information):
python3 -V
Python 3.7.5
pip3 freeze | grep tfcoreml
tfcoreml==1.1

Seems it should be ruined from tf-coreml/utils


Returning just List or Collection

https://github.com/lukehutch/fast-classpath-scanner/blob/master/src/main/java/io/github/lukehutch/fastclasspathscanner/FastClasspathScanner.java#L1032
This method returns ArrayList, however I would prefer it returns just List or even Collection, to make it more portable when it is overridden.
I found opened input stream leak in my forked version and tried to switch to master branch to see if it is fixed, but I can't since certain methods signature was updated. If you fixed any open stream leak, please let me know..

Good catch, I didn't notice this. (Not sure why you'd want to subclass this class, but I'm happy to make the change, since it makes the API more consistent.)

Oops, reopening for stream leak issue. Can you specify what triggered the leak, i.e. what sort of MatchProcessor were you using?

PS I looked at all places where I'm opening streams in the current source, and all but one of them were using try-with-resources to auto-close their InputStreams. Only one usage (the DataInputStream in ClassfileBinary.readClassInfoFromClassfileHeader()) was not doing this. I didn't think it needed to close its stream, since it just wrapped a BufferedInputStream that wrapped the real InputStream for the file (which was itself auto-closed), but the DataInputStream is auto-closed now too, just in case on some weird system (e.g. Windows), a file handle is opened for wrapper stream or something.
So I may have fixed this between the version you were testing earlier, or maybe not closing the DataInputStream was causing the leak, but all streams are now auto-closed, so you should not see the leak anymore.
I would appreciate it if you could please test if you can, to verify if you're still seeing the leak. Sorry to change the method signatures, but there have been many fixes made in the last several months, so it would be useful to update to the latest version anyway. I think the project has become mature and stable now, so I plan to release a v2.0 soon (probably without any major changes) that will hopefully be usable long-term.

My bad, actually leak was in my class loader. However I fixed one place where ZipFile wasn't closed. I am not sure if it is required, but since the method is given I just assured calling it using try(){}

No worries -- where was ZipFile not being closed? Right now, the only place I open a ZipInputStream is in a try() block, so I assume this is fixed? Note that MatchProcessors don't have to close the stream when they're done, the stream is closed by the caller.
I'll assume this is fixed, so I'm closing the bug, but please reopen if you think I missed something. Thanks.


Add earu trv device signature

https://www.aliexpress.com/item/1005003448958272.html?spm=2114.13010708.0.0.ef6a4c4dP06DCO

Codecov Report

Merging #1182 (73d273f) into dev (0479814) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev    #1182   +/-   ##
=======================================
  Coverage   80.47%   80.47%
=======================================
  Files         204      204
  Lines        5602     5602
=======================================
  Hits         4508     4508
  Misses       1094     1094

Impacted Files
Coverage Δ

zhaquirks/tuya/ts0601_trv.py
86.38% <ø> (ø)

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 0479814...73d273f. Read the comment docs.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4508

Relevant Lines:
5602

💛  - Coveralls