Support of inheritance on interfaces when describing client APIs

Consider the example:
public interface BaseAPI {
	 @RequestLine("GET /health")
	 String health();
	 @RequestLine("GET /all")
	 List<Entity> all();
}

And then some specific API:
public interface CustomAPI extends BaseAPI {
	 @RequestLine("GET /custom")
	 String custom();
}

I'd like to use CustomAPI when creating Feign client and be able to access methods of the BaseAPI.
Currently only methods defined directly in the CustomAPI are bound to handlers.
It looks like the only required changes to be made are:
1  feign.Contract.BaseContract.parseAndValidatateMetadata(Class<?> declaring):
//      for (Method method : declaring.getDeclaredMethods()) {
      for (Method method : declaring.getMethods()) {

2   feign.ReflectiveFeign.newInstance(Target<T> target):
//    for (Method method : target.type().getDeclaredMethods()) {
    for (Method method : target.type().getMethods()) {

I was able to get the required functionality with the above changes.
Would be great to have this functionality either out of the box or easily configurable.

I've done this is another library. Inheritance makes some things more
complex, so would have to be thought through.
How would we handle the inevitable overload/covariance concern? Would we
support multiple inheritance? What if someone defined a parameterized
supertype?
I'm interested in getting to a point where we can either do errorprone
checks or actual compiled implementations (like auto). The former could
help define rules, the latter usually constrains them. These advances may
not happen, but are considerations.

ps not saying this we shouldn't do this, just we'd need to cover test cases that include parameterized interfaces and overloads (including covariance). It may be fine to throw on those edge cases.
wanna give it a shot?

Has there been any movement on this?  This would be an exceptionally useful feature for my use cases.  Anything I can do to help?

I personally don't want this feature as it will complicate the code
significantly. That's why I haven't moved it.
That said, if you or someone else are willing to implement it,
including tests, I'd be open to helping review it and earnestly try to
get it merged.
Here are some scenarios to keep in mind while implementing this:

a feign method with a generic return value exists in a parameterized parent
a feign method with a generic parameter value exists in a
parameterized parent
a feign method exists in the grandparent
you override the annotations on a feign method in the parent
you covariantly override the return value of a feign method in the parent

There are probably more, but these are the ones on the top of my head.
The code affected would be at least Contract.Default, ReflectiveFeign,
DefaultContractTest and FeignTest
The Contract.Default and ReflectiveFeign.newInstance will need to be
changed to look at parent classes and deal with potential
parameterization if you choose to support that. Particularly watch out
for bridge methods.
All of the scenarios should be covered in tests even if that's saying
something is unsupported (i.e. throwing illegal state exceptions in
Contract.Default parsing).
Some of the edge case will come at runtime, when the methods are
looked up and dispatched (ReflectiveFeign).

My specific use cases actually cover HEAVILY type parameterized parent interfaces with parameterized return types (and even generic return types with further parameterization).  I'll clone the code and fiddle with it a little bit, and see what I discover, and see if I feel like I can get some of these cases to work.  Thanks for the information.

Good luck and thanks for giving it a swing.

I'm quite interested in this use case as well. @jmgrimes any chance you have looked into this. My use case would also be involving parametrized parent interfaces.

ok, so @alexeos @zampettim @jmgrimes you are starting to convince me that I should help. It will make things more complex, but we can do our best to limit that. Will you help with testing and/or bug fixes to code or docs?
@jdamick @spencergibb (+ any others) you against adding support for this? If not, I'm thinking about rolling up sleeves and implementing it (maybe next week).

:+1:

I can definitely help test and vet any solution. I'm using Feign via the Spring Cloud implementation and integration, in case that matters.

starting on this, join https://gitter.im/Netflix/feign for updates that aren't here

Inheritance without generics is nuanced, but ok. The primary concern is Feign.configKey, which assumes a flat hierarchy. This stitches together contract parsing to actual method invocation.

Ex. If Target.type is Child extends Super, a method on the Super named get will end up being the config key Super#get(), not SubType#get.

In simplest case, promote all config keys to the subtype. Care must be taken when a child type overrides metadata or narrows its return value.
Dealing with parameterized types is way more nuanced than dealing with inheritance, particularly wrt keeping feign small and dep free. Here are a small smattering of problems inherit if we support generics.

feign config keys are based on the type data. a method with a type variable ends up being Type#put(Object), not Type#put(YourType). Games can be played to equate these.
decoders need to know the return type. It is complex to resolve List<T> into List<YourType>

Doing both inheritance and generics will cost as much or more time than other sought after features such as hystrix. It will certainly complicate the code. I'd recommend we limit this to strict inheritance w/o generics. If that's still a step forward, ping back with your interest.
We can table generics to a different issue: it may actually be easier to deal with via a compile-time approach similar to auto-value.

We're using a small in-house platform for standing up services that have the same base API, and the payloads are the only thing that differ between different services.  To that end, the feature we're hoping to achieve is one where we can define the client interface (with generics) one time, and then have the sub interface not add anything new (typically), but completely bind the generic parameters.  For example:
public interface Client {
public M get(final String key);
}
public interface MyClient extends Client {
}
This would be my primary need of such a feature.  I don't need multiple inheritance types of cases personally, but I would be using generics in the base interface, and then binding those generics completely in the sub interface.

@jmgrimes how about opening an issue for what you describe. It is contained enough to not be too much headache (ex particularly single parent and single type variable). Maybe title it Base Api Interfaces. Go ahead and put an example including list and mutation, so that any tests cases are as relevant as possible.

oh wait.. we can just reuse this. The initial example is about base api inheritance. We can just highly specify the rules

no more than one type variable, and that is only up to one level deep (ex. X and List is ok, but List<List> isn't)
no more than one ancestor
no overloading
config keys are always made from the child

do these constraints work?

For us, it tends to be multiple type variables at one level.  A truer version of the base api contains these things:
public interface ServiceClient<K, M> {
public Entity<K, M> get(K key) // GET url param
public Entities<K, M> getAll(Keys keys) // POST body
}
This would always be extended for us as:
public interface PersonServiceClient extends ServiceClient<UUID, Person> { }
We pretty much never go beyond one level of type variables, but we do use multiple type variables in the base.  They are always bound when the base is extended, and there is never any overloading.  We don't make use of config keys, but I'm thinking that makes perfect sense for those to be from the child.
As for List<List>, we don't explicitly use this in the type parameterization of the base interface, but in my above example:
public class Entity<K, M> {
@Getter @Setter private K key;
@Getter @Setter private M model;
}
public class Entities<K, M> {
@Getter @Setter private List<Entity<K,M>> entities;
}
Pretty much, we do this so we can vary the model and key types of various entities, but use the same REST API for every entity.  It would be exceptionally useful to be able to write one service client interface that can be extended and have the key and model types "plugged in" at extension time.

I'm using the spring cloud based stuff for this as well, FWIW.

Excellent details. This is still feasible, so will give it a go!

So, I'm glad I chose the name Contract.. it is one of the few naming decisions I've ever made that has worked out over time :) I'll make a contract test out of your example, clarifying the rules I mentioned earlier as 'up to two type variables'. If folks need more than that, well we can always update, but the essence of this feature makes sense with this constraint, and even hints at a design (ex. key and value parameterization). As with all things, will be a work in progress, but I think we've reached a workable design!

actually 'up to two type variables' isn't needed. pull request will happen today!

Thanks!  Rolling in a few changes in dev this week, so I'll check this out and try it in our dev environment.

@adriancole, and possibly others, I don't mean to hijack this closed issue but I was sent here on behalf of a recommendation by a colleague in hopes that we might replace our existing libraries, which are using jclouds-core as the backend, with feign as the backend as it's lighter weight and not tied to the cloud abstraction. Our libraries are mainly using jclouds-core for its powerful http abstraction and making things stupid-simple. However, we like the use of AutoValue that jclouds provides and searching online for references to feign and its potential use of AutoValue brought me here. It appears that feign is shying away from AutoValue, at least from what this thread is implying, so I was just wondering the technical details around the decision if you guys don't mind explaining and/or pointing me in the direction where this is documented (maybe its not).

Hi, Chris.
maybe join gitter and ask about this? or maybe open a top-level issue on
what you are looking for about AutoValue (specifically?)
https://gitter.im/Netflix/feign
I think jclouds could be backed by feign (except for blobstores)
Netflix/denominator was an experiment in this space, and I actually did
write feign thinking of jclouds. jclouds wasn't an option while when feign
used dagger, but that's no longer the case.
-A


Detach stamp.static() and stamp.compose() from this

Use closure variable instead of this. Stamp function should not depend on bound context. This improves code stability. Stamp behavior gets more predictable.

:thumbsup: agreed

@unstoppablecarl You have the powers to merge it. :)

We should decide on an approval process.

Processes are good in big organisations. In open source projects processes are evil. :) They delay productivity.
If you have any process proposal - go ahead. We'd love to listen.

Maybe something like 3 people should review before merging?

Sound okay. But each PR would take about 3 to 5 days to review because there are 4 collaborators here. :)
Let's try be less burocratic. Small safe changes are fine to merge by a single person I think. If a change is significant then let's wait for few people to take a look. Just like I did with the #96
Reasonable?

We can do something similar to what FB does for React. Make a tag GH Review: review-needed and one for when reviewers feel it is good to merge GH Review: accepted.

Good idea. Are we big enough to introduce this little complexity in sake of quality?

I would say that once you have more than two collaborators on a project, a simple change like this would make PR reviews easier to manage. First person to see the PR adds GH Review: review-needed and could cc someone else to handle the review. Or they could review right away by themselves. Once the reviewer thinks things check out they can add the GH Review: accepted tag and cc someone to handle the merge, or possible handle the merge themselves.
cc @unstoppablecarl @ericelliott

Sounds okay to me. We can try.

For small, non-breaking changes and minor bug fixes, the first reviewer should feel free to merge as long as the build is passing and they've looked over the code and feel confident.
For larger changes such as API additions or breaking changes where broader discussion is warranted, (like #96), I agree that other core contributors should have a chance to weigh in before it hits master. =)
In those cases, we should definitely leave it open for discussion for a few days and give other contributors a chance to weigh in.


Move rogue signup logic into the single function that handles signups

What's this PR do?
This moves the logic of checking if rogue is on and sending to rogue instead of storing in phoenix to the dosomething_user_signup_user function. It turns out this is called in a few places. And we could have been missing some funnels where the user wasn't getting sent to rogue and still getting stored in phoenix. This should clean that up by moving all the logic into the same handler.
Any background context you want to provide?
We were seeing and issue on thor where users were not being sent to the pitch page after signing up. This seemed to only occur on thor, but hoping this will clean up some of the logic so that the issue is either fixed, or allows for easier debugging.
Relevant tickets
Addresses: https://trello.com/c/Jy2dPJoh/517-when-rogue-is-on-an-already-authenticated-user-is-not-being-redirected-to-the-pitch-page
Checklist

[ ] Documentation added for new features/changed endpoints.
[ ] Tested on staging.
[ ] Pinged a PM if this is a larger PR that would benefit from some additional testing love
[ ] Post a message in #phoenix if this includes something that causes a rebuild!

@DFurnes updated!

https://trello.com/c/Jy2dPJoh/517-when-rogue-is-on-an-already-authenticated-user-is-not-being-redirected-to-the-pitch-page


saga-ize rpc call to get favorites

@keybase/react-hackers this is the first part of the saga-izing of the favorites. first i just did the rpc call. i cleaned up some of the surrounding helpers and move some stuff into the constants file. we have this semi-pattern of moving generalized utilities there. i think this likely makes more sense than it being in the actions and people importing that to get at these utilities. i'll branch off of this to saga-ize the actual favorite/ignore actions next (to keep this smaller)

@chrisnojima looks like keybase-v1.js got deleted

yes, it supposed to be deleted

it was deprecated with the engine refactor. we have flow-types only now

@MarcoPolo merged the other branch in, addressed your feedback and responded to others. thoughts?

@MarcoPolo bump

@MarcoPolo bump. lets get this in today (or someone else needs to own this)

👍


Cargo config option to default to locked/frozen

Describe the problem you are trying to solve
I would like to be able to specify in a workspace's cargo config that by default running commands such as cargo build imply the --locked/--frozen option so that users/build machines don't accidentally update Cargo.lock or rely on the network.  To go along with this, cargo would need to support --unlocked/--unfrozen switches or cargo vendor would need to ignore --locked/--frozen.
Describe the solution you'd like
Somewhere in .cargo/config I am able to specify default switches for cargo invocations and cargo has command line options to unset binary switches that may be defaulted on.
Notes
The intent here is to ensure that dependencies are only explicitly and deliberately updated, instead of accidentally happening if someone happens to invoke cargo incorrectly (or a tool like rust-analyzer does).

There's already an option that prevents network access via
[net]
offline = true

Maybe making it a tristate true/false/update could be a solution?

I think the documentation (pasted below) is slightly unclear, but my understanding is that --frozen is equivalent to --offline --locked.  I don't believe there is currently a way to specify the locked part in the config.  So that's half of this request.
The other half is changing the default behavior in the config and being able to override it in the other direction.  Currently cargo defaults to online/unlocked unless specified otherwise on the command line.  I want cargo in my repo to default to offline/locked unless specified otherwise on the command line.
--frozen
--locked
Either of these flags requires that the Cargo.lock file is up-to-date. If the lock file is missing, or it
needs to be updated, Cargo will exit with an error. The --frozen flag also prevents Cargo from
attempting to access the network to determine if it is out-of-date.

These may be used in environments where you want to assert that the Cargo.lock file is
up-to-date (such as a CI build) or want to avoid network access.

--offline
Prevents Cargo from accessing the network for any reason. Without this flag, Cargo will stop with
an error if it needs to access the network and the network is not available. With this flag, Cargo
will attempt to proceed without the network if possible.

Beware that this may result in different dependency resolution than online mode. Cargo will
restrict itself to crates that are downloaded locally, even if there might be a newer version as
indicated in the local copy of the index. See the cargo-fetch(1) command to download
dependencies before going offline.

May also be specified with the net.offline config value.

Related (but not the same): https://github.com/rust-lang/cargo/issues/7169

Poking this to point out that --offline --locked is stricter than --frozen, because it won't automatically download the crates that are in the lockfile.
I came here looking for an environment variable I could set in our CI, rather than a config option, but either would be sufficient. Plain command-line args are much harder to thread through wrapper scripts.

I'll add in another use-case for a configuration setting like this: build analysis. I have a (assumed non-malicious) build setting where developers can write what are essentially CI scripts (arbitrary bash) to build whatever artifacts they may want out of their crates. However they write their build, one requirement is that it provides a "receipt" of sorts that lists any and all dependencies they take. To aid in that, I provide a command they can supply a list of their lockfiles to and it'll generate said receipt in the appropriate format + location. Unfortunately, I don't have a good way at the moment to ensure that users don't then run commands that might add dependencies (code generation steps, cargo update, cargo add, whatnot). But if I could generate a configuration that ensured that any subsequent Cargo invocation be --locked, any (accidental) attempt by a user to do something that'd add in a dependency not "seen" by the recipt generation logic would be met with an error.


Type Text doesn’t type text

It seems to fail silently.

Working for me. 10.12 Beta (16A313a)

This was related to clearing to the search string, not the OS version.


Scrollbar is sometimes there and someties its gone.

Very weird! When I just resize the browser window it shows.   autoHide: false

Hello Mohika,
Can you please tell me more information about this "bug"?
How can i replicate it?
What browser were you using?
Thank you!

Here is the script I used

Tried with jQuery ready function as well ... no difference ...

`/* Custom Sidebar */
/* width */
::-webkit-scrollbar {
width: 25px;
border-radius: 5px;
}
/* Track */
::-webkit-scrollbar-track {
background: #fff;
border: 1px solid #eee;
}
/* Handle */
::-webkit-scrollbar-thumb {
background: #E6E7E8;
border: 5px solid transparent;
border-radius: 10px;
background-clip: content-box;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
background: #aaa;
border: 5px solid transparent;
border-radius: 10px;
background-clip: content-box;
}
`


Powershell Variable Tree view/Explorer

Would it be possible to add a pane that shows all the PowerShell variables in use? Where you can expand and drill down into all the items depending on whether it contains a hash table or array.  This would make it so much easier to visualize.
If this is already possible, where/how can I find it.
As a reference, this was in the free PowerGUI editor

/extPowerShell

It looks like this is caused by the PowerShell extension. Please file the issue to the PowerShell extension repository. Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our issue reporting guidelines for more information.
Happy Coding!


Add library carpentry links to confirmation pages

Library Carpentry should appear in the link list on the confirmation pages for the instructor training and workshop request forms.

Do not merge - this may not be the correct URL.

@maneesha that is the correct URL. Thanks @dheles for the PR and the reminder :)


18722 Add ForeignBusiness component for amalgamating businesses

Issue #: /bcgov/entity#18722
Description of changes:

Added ForeignBusiness components
Included NestedSelect from Namerequest

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

/gbrun

Temporary Url for review: https://business-create-dev--pr-595-nd422xtt.web.app

What other duplicated files can be moved to bcrs-shared-components?
As they are all related, could they be part of their own module? Ie, exported as one thing (instead of separate component, enums, interfaces, list data)?

Yeah all the added files in list-data, enums and interfaces are duplicated. I made one small change to the NestedSelect component compared to namerequest, but that can be modified to work with both project.
I think it would make sense to include it all as one module. Should I also update namerequest once I create the shared component?

I think it would make sense to include it all as one module. Should I also update namerequest once I create the shared component?

Create a new, tech debt ticket to go back and update Namerequest.

Marking as draft until the Jurisdiction shared component PR is merged. I'll then double check it is working using the shared component.

/gcbrun

Temporary Url for review: https://business-create-dev--pr-595-nd422xtt.web.app

I'm not sure what's up with the unit tests. I saw intermittent issues myself a couple of days ago but not since. I restarted the testing-coverage check to see.

Restarting the tests fixed it. Merging!


"errorMessage": "Unable to import module 'otel_wrapper': No module named 'utils'"

Discussed in https://github.com/open-telemetry/opentelemetry-lambda/discussions/253

Originally posted by itaybaror June 22, 2022
I have been trying to auto instrument my python lambda function using the following link.
https://aws-otel.github.io/docs/getting-started/lambda/lambda-python
However i get the following error:

After a lot of playing around, this only happens when i have the AWS_LAMBDA_EXEC_WRAPPER env variable set. Without it, the lambnda function tests with no problems.
I ran a smaller sample project i found in a blog article and everything worked. So, what in my project (which has another layer), could be causing this error?
Please help i have been stuck on this for a while.

I am seeing the same problem:
{
"errorMessage": "Unable to import module 'otel_wrapper': No module named 'fss_request_xml_mapper'",
"errorType": "Runtime.ImportModuleError",
"stackTrace  ": []
}
In this case, the "fss_request_xml_mapper" module is found in another layer used by the function.  I  have followed the steps outlined in https://aws-otel.github.io/docs/getting-started/lambda/lambda-python as well.  The WARNING seen in the reporters log is also in mine as well.

Can you please try to use the latest python arns to see if the error persists?

No, that didn't seem to make any difference using the latest arn from
https://aws-otel.github.io/docs/getting-started/lambda/lambda-python
Same error.

Hi @UniqueScreenName, I think your problem is to be found in how you package your other layer.
I would suggest

use sam cli for deploying the entire infrastructure, and let sam package the layer for you
if you want to create the layer yourself, install your utils library in my_library/python and then `cd my_library && zip -r ../utils.zip *. You can now try to upload your layer and see what happens.

I recently experienced the same error message while converting an existing project to use OpenTelemtry.
After introducing the layer, I started receiving an error message like:
[ERROR] Runtime.ImportModuleError: Unable to import module 'otel_wrapper': No module named 'package1/package2/module.hander'

My issue turned out to be a difference in how the standard Lambda runtime and the otel_wrapper.py script—specifically the Lambda auto instrumentation—import handlers. In short, slash-based paths result in an error above during instrumentation. The wrapper itself and the standard runtime handle this format (package1/package2/module.handler), but the Lambda instrumentation does not.
This specific issue can be easily worked around by converting the handler target to use only dots:

package1.package2.module.handler

I created https://github.com/myles2007/OpenTelemIssue-PythonLambdaLayer-v1.14.0 to further explain and demonstrate the problem. I intend to create a specific Issue tomorrow (and hopefully a fix soon after).

For anyone who may come across this issue and find themselves in the scenario I outlined above, the issue I created is #1465.

My issue turned out to be a difference in how the standard Lambda runtime and the otel_wrapper.py script—specifically the Lambda auto instrumentation—import handlers. In short, slash-based paths result in an error above during instrumentation. The wrapper itself and the standard runtime handle this format (package1/package2/module.handler), but the Lambda instrumentation does not.
This specific issue can be easily worked around by converting the handler target to use only dots:

package1.package2.module.handler

I would never, ever have solved this problem without your comment, which I'm pretty sure is the only such comment in existence. Thank you so much @myles2007

Thank you very much, I had the same error and your solution was the only salvation.  @myles2007
To solve it, reducing side effects, modify the otel_wrapper.py file of the otel-lambda layer, and... as you see on line 480, modify self.wrapped_module_name and apply a replace to eliminate / and leave it alone., also add a try except to this instrument function since at least it could have a trace of errors in cloudwatch :) and it worked perfectly

You're welcome, @sebas1017! I'm happy to hear my comments were helpful to you. :)
Hopefully https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1465 can get some traction one of these days. I suppose I should consider just submitting a fix myself, but I've been a little hesitant of spending the time given the lack of even a reply on my issue. 😞

Has there ever been any movement on this?  Currently getting this while trying to integrate the otel layer into an existing lambda with a custom built layer.  We do not use / based function handlers so i don't think it's the same problem as @myles2007.
Runtime.ImportModuleError: Unable to import module 'otel_wrapper': No module named 'paramiko'
We have a layer called paramiko that this lambda uses. I sense that the otel_wrapper is trying to interact with it in some way but not sure how.

@myles2007 regarding your comment:

I suppose I should consider just submitting a fix myself, but I've been a little hesitant of spending the time given the lack of even a reply on my issue. 😞

I apologize for the lack of response in this repo.  The FAAS SIG has had a lot of staffing changes over the past year.  We aren't really staffed for a lot of troubleshooting right now. (If folks want to be more involved, we'd love to have you.)
If you would like to submit a PR to fix this, I'd be happy to get folks to review. (If in the contrib repo, I can reach out to the maintainer to encourage reviews.)


Adding resources

@MichaelCade Created with previous resources and added mine as well

@saiyam1814 If you are trying to change content on the website theres a little caveat.  The website is hosted from the gh-pages branch. To update the website you can add your content to the docs/index.md file and create a pull request to that branch.


proxy DNS requests through socks5

Hello, is it possible to use the remote socks5 endpoint as the DNS resolver?
Or does it already work that way?

Yeap. It can proxy all UDP (including DNS) traffic through socks5.


feat: Upgrade to angular 12

BREAKING CHANGE: requires angular >=12
switch from bootstrap to tailwind
switch from tslint to eslint

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Input value doesn't reset using React Hook Form

Hey there,
I'm using React Hook Form in my project, and I've noticed an issue with the Datepicker. After using the reset function from React Hook Form, the input value does not reset to its default value, while the field value in the form is indeed null.
Here is a sandbox that reproduces the issue : https://codesandbox.io/s/priceless-babbage-zqzm5v?file=/src/App.js
You can open the RHF DevTools to see exactly how the values change.

Hi @SimonBellucci  👋
Thanks for your feadback.
You are right and I think this behavior is pretty normal. I would suggest that you do not control the date picker field through the React Hook form until we find a solution. You can just manually reset the field.

I just found a workaround by manually setting the value this way:
<DatePicker
    separator="/"
    inputName={name}
    value={field.value || {startDate: null, endDate: null}}
    onChange={handleValueChange}
    placeholder={placeholder}
/>

Yes, it should work. Thank you for this alternative solution.

@onesine the above workaround will reset the values but the style on the end date selected will continue to exist

I've have faced same issue. Is it bug? If it is bug, is there any investigation about situation?

Same issue here. I need to clear the value on the datepicker.


Simple scheduler & controller-manager disaster recovery

There are potential failure cases, where you have permanently lost all schedulers and/or all controller-managers, where recovery leaves you in a chicken-egg state:
For example, assume you have lost all schedulers - but still have a functioning api-server which contains the scheduler deployment object:
You need a controller-manager to convert the deployment into unscheduled pods, and you need a scheduler to then schedule those pods to nodes (scheduler to schedule the scheduler, if you will).
While these types of situations should be mitigated by deploying across failure domains, it is still something we need to cover.
In the short term this could mean documenting, for example, how to create a temporary scheduler pod pre-assigned to a node (once a single scheduler exists, it will then schedule the rest of the scheduler pods).
Another option might be to build a tool which knows how to do this for you based on parsing an existing object:
kube-recover deployment kube-controller-manager --target=<node-ip>
kube-recover deployment kube-scheduler --target=<node-ip>

Where the kube-recover tool could read the object from the api-server (or from disk), parse out the podSpec and pre-assign a pod to the target node (bypassing both need for controller-manager and scheduler).

Thinking longer term, rather than a separate kube-recover tool, this could be a command in kubectl which knows how to extract a pod from higher-order object -- this could be useful in the case where we have a kubelet-pod-api (so we could use this to natively push pod to kubelet api from a deployment/daemonset object rather than needing the intermediate pod state). See https://github.com/coreos/bootkube/issues/97#issuecomment-238311771

👍 I think an interesting idea is to play with re-running bootkube. I found that generally if I just re-run bootkube nothing too crazy happens and the temporary control plane brings up a scheduler, allowing everything to correct itself. I really like the UX of this approach, even if its not a real solution.
In the static manifest case this problem isnt really a problem because the pods which run aren't scheduled, so the scheduler failing in any scenario always results in it being restarted and able to run (assuming it can grab it's lease).
I wonder if there's a good way to do this, perhaps by check pointing the scheduler to nodes which have role=master would be a good start, as an alternative to your proposed kube-recover strategy? This would be mostly automated, the only issue is how do you run this checkpointer in a way that works when the scheduler runs into this? Well, that's probably a static pod, and that means we can't easily manage it, which is problematic if the master nodes are changing.

Also, definitely agree that a kubelet-pod-api that skips scheduling makes this story way better.

Hi guys, I was trying bootkube and I had a similar case. In my case, I figured that the controller had no --cloud-provide=aws flag set and I tried editing the controller-manger with kubectl edit... and it was a bad idea. The result was that I can't recover the cluster cause I am not able to schedule anything.
What I'm thinking is: in this case we have etcd running on the master itself, which is just wrong, but I thought that if we run a reliable, separated etcd cluster, this problem would not exist at all. Just run a new master with bootkube and attach it to the etcd cluster and kill the broken one. Would this make sense?

One low-hanging fruit is that we should be deploying multiple copies of the controller-manager/scheduler. In that case you would be doing a rolling-update of the component, verifying that the new functionality works before destroying all of the old copies.
However, there are still situations where we have a loss of all schedulers and/or controller-manager (e.g. maybe a flag change is subtly broken, but the pod is still running so the deployment manager rolls out all broken pods).
You could launch a new master as an option, but if you still have an api-server/etcd running you should be able to recover. Essentially you would need to inject a controller-manager pod into the cluster, then delete it as soon as your existing controller-manager deployment has been scheduled.
For example:
kubectl --namespace=kube-system get deployment scheduler -oyaml
Then take the podSpec section (second indented spec, with a containers field right below):
Something like:
    spec:
      containers:
      - name: kube-controller-manager
        image: quay.io/coreos/hyperkube:v1.4.0_coreos.0
        command:
            [...]

Then wrap that in a pod header, and specify the nodeName it should run on:
apiVersion: v1
kind: Pod
metadata:
  name: recovery-cm
spec:
  nodeName: <a node in your cluster>
  containers:
  - name: kube-controller-manager
    image: quay.io/coreos/hyperkube:v1.4.0_coreos.0
    command:
       [...]

Then inject it in the cluster
kubectl create -f recovery-pod.yaml
What will happen is that this pod will act as controller-manager, convert your existing deployment/controller-manager into pods - then they will be scheduled. After that you can just delete the recovery pod:
kubectl delete -f recovery-pod.yaml

Just hit this as well as a result of a container linux reboot

In addition, if your scheduler is down, recovering the controller-manager won't be enough. In this case, put a file like this in /etc/kubernetes/manifests/scheduler.yml on one of the nodes, so it passes your kube-scheduler Deployment into Running rather than Pending state:
#
# Add this to a node in `/etc/kubernetes/manifests` to recover your scheduler, and
# schedule the pods needed to run your configured Deployments :)
#
kind: Pod
apiVersion: v1
metadata:
  name: kube-scheduler
  namespace: kube-system
  labels:
    k8s-app: kube-scheduler
spec:
  containers:
  - name: kube-scheduler
    image: quay.io/coreos/hyperkube:v1.5.3_coreos.0
    command:
    - ./hyperkube
    - scheduler
    - --leader-elect=true
    - --kubeconfig=/etc/kubernetes/kubeconfig
    volumeMounts:
    - name: etc-kubernetes
      mountPath: /etc/kubernetes
      readOnly: true
  volumes:
  - name: etc-kubernetes
    hostPath:
      path: /etc/kubernetes

You can do the same steps I outlined above for the scheduler as well (and don't need to actually ssh into a machine to create the static manifest).

But who schedules the recovery scheduler if the scheduler is dead? :-)

Per the steps outlined above you would populate the pod's spec.NodeName so that the pod is pre-assigned to a node - no scheduler needed.

Oh right!! That's great. Thanks :-)

Is this documented anywhere? Could help our users!

Working on it @mfburnett as i have hit with the same issue today while upgrading.

Thanks @radhikapc!

Just to track some internal discussions -- another option might be to propose a sub-command to kubectl upstream. Not sure of UX specifics, but maybe something like:
kubectl pod-from deployment/kube-scheduler --target=nodename
kubectl pod-from daemonset/foo --target=nodename
kubectl pod-from podtemplate/foo --target=nodename

Another simple way to hook back a Pod to a Node, when Scheduler + Controller-manager are dead:
kubectl create -f rescue-binding.yaml
with this content:
apiVersion: v1
kind: Binding
metadata:
  name: "kube-dns-2431531914-61pgv"
  namespace: "kube-system"
target:
  apiVersion: v1
  kind: Node
  name: "ip-10-22-4-152.us-west-2.compute.internal"

A Binding is the objected injected in the K8s cluster when the Schedule takes a scheduling decision. You can do the same manually.

Another simple way to hook back a Pod to a Node, when Scheduler + Controller-manager are dead:

Thanks! This prevented me from restarting the whole cluster (again) with bootkube recover and bootkube start.
Someone should properly add this to: https://github.com/kubernetes-incubator/bootkube/blob/master/Documentation/disaster-recovery.md

Been thinking about this,  can't checkpointer help here? mark controller-manager as pod to be checkpointed, then it would be recovering it if it can't find it on the node. There can be edge case when it recovers too many pods, but given that they do leader election that is fine to have few extra running.
As for the scheduler, making it daemonset would allow  it to be enough just for controller-manager & apiserver to be alive as daemonsets are scheduled by controller, at least in current 1.8.x release

With the behavior changes introduced in https://github.com/kubernetes-incubator/bootkube/pull/755 checkpointing the controller-manager / schedule might be possible (before we might garbage the checkpoints of those components before replacements have been scheduled). It might still be a little bit racy though.
cc @diegs


Cannot delete items from shopping list

Home Assistant release (hass --version):
0.63.3
Python release (python3 --version):
Python 3.6.4
Component/platform:
Shopping List
Description of problem:
Items that have been added to the shopping list cannot be selected to be marked as completed.
Problem-relevant configuration.yaml entries and steps to reproduce:

Add item to shopping list
Select to mark completed
Selection is cleared / should remain and mark as complete

Duplicate of https://github.com/home-assistant/home-assistant-polymer/issues/885 - should be fixed with 0.64.0


Install and Configure unixODBC

Tutorial URL: https://developers.sap.com/tutorials/hxe-ua-dbfundamentals-odbc.html
If SAP HANA Express is installed using https://developers.sap.com/tutorials/hxe-gcp-getting-started-launcher-xsa.html (Google Cloud Platform), these instructions dont work, i.e. yast, registration, software search - all of it is not available including also numerious other packages, path variables etc. Could you please check?

to be more specific, SUSE is registered but all repositories are empty and no extra software can be installed. I.e. this recommendation does not help: https://www.youtube.com/watch?v=e6SIsAFVPoY

Hi mojomojo1: I've forwarded this issue to the development team to investigate these GCP restrictions you've noted above. I'll update this issue when their investigation is over.

@mojomojo1: Since this issue is now being investigated by Development, I'm going to close this issue. Could you please add this issue as a question on the Community's Q&A site in case other Community members have input, or could benefit from this experience? When Development's investigation concludes, we'll use your Q&A question to log any back-and-forth with development.
To add a question:

Go to https://answers.sap.com/index.html and click Ask a Question

In the Select Primary Tag field, search for "express" and select SAP HANA, express edition

Enter this issue as your question and click Submit your Question

Thanks

Thank you, I have been informed meanwhile by our development team that
issue is known and resolution is pending next production release. This
should happen shortly I was said.
On Mon, Feb 10, 2020, 2:28 PM John Currie<EMAIL_ADDRESS>wrote:

@mojomojo1 https://github.com/mojomojo1: Since this issue is now being
investigated by Development, I'm going to close this issue. Could you
please add this issue as a question on the Community's Q&A site in case
other Community members have input, or could benefit from this experience?
When Development's investigation concludes, we'll use your Q&A question to
log any back-and-forth with development.
To add a question:

Go to https://answers.sap.com/index.html and click Ask a Question
2.
In the Select Primary Tag field, search for "express" and select SAP
HANA, express edition
3.
Enter this issue as your question and click Submit your Question
Thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SAPDocuments/Tutorials/issues/4570?email_source=notifications&email_token=ACMVUVVMKKBN4XYB6N7GQYTRCFJBBA5CNFSM4KPSJAVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELIP6ZI#issuecomment-584122213,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACMVUVVQ6XA7QVRLEKYOQHTRCFJBBANCNFSM4KPSJAVA
.


US <IP_ADDRESS>

US 01.01.01
Create class for adding a habit
As a doer, I want to add a habit, giving it a brief title, reason, and date to start.
Implemented in the form of a dialog fragment to add the details of the habit
An add button within the app to add a new habit
Labelled text boxes for the user to type in their own information

Habit class has been created


[DISCUSSION][Tech Debt] - Fully Dynamic and Scalable Segment Integration

Hello, @danielgomezrico @pastuxso
just brainstorming, why don't we use this Integration Attribute as an array of enumeration or object list? It will be more clean, scalable and avoid breaking changes. I mean like, instead of using amplitudeIntegrationEnabled, mixpanelIntegrationEnabled. We can try using integrationList : [IntegrationType.mixpanel, IntegrationType.amplitude] or even use an object list integrationList : [AmplitudeIntegrationClass(enabled:true,param1:"value",param2:"value"),...]
wdyt all?

Just made PR#18 to work around this, Please check and test. I've tested it and I hope you'll be interested. @danielgomezrico

Thanks for the suggestion, I will open ideas in threads:

If we want to have an enum, we will need to have 3 enums with all possible values:

One for Dart
One for iOS
One for Android

Another question:

The list of available services does not vary too much and even if you check the current values the enum just have one service, so having this feels a little overengineer something that is somehow static over time and having just bools is simpler, WDYT?

@danielgomezrico

I agree with that, For now, I'm creating enumerations in darts simply because I don't know a better way to map and create them in native iOS & Android. Please help me to do it and PR to my branch

I don't think so, there are so many integrations that can be used via Segments. Such as, mixpanel, moengage, firebase analytics/ google analytics, facebook, etc. (we can check it in their docs). My company uses a lot of platform integration with segments, that's how I learn that using boolean makes it too much boilerplate and not a good design. We need more dynamic and scalable stuff.

That's the thing, Im not sure whats the best way to have your enum idea here, but we are open to see suggestions

@danielgomezrico
I don't think so, why do we need that? the values are exactly the same for each platform. Please check it on segment official docs
I have no reference to it. This is just to simplify the existing implementation. Because the current implementation causes more boilerplate and is not really needed.

I think we don't need to worry about the breaking changes, those PR should be refactored after PR #18 merged. We need improvement before we are going further.
Anw, I've been using this branch with regards to new integrations and availability of other providers https://github.com/sribuu/flutter-segment/tree/sribuu-crm.

To increase the conversation, I found one integration that requires more information than just a enabled/disabled status to be enabled:
 let optlyLogger = OPTLYLoggerDefault(logLevel: .error)
    optlyManager = OPTLYManager.instance(builderBlock: { (builder) in
        builder?.projectId = "<YOUR_PROJECT_ID>"
        builder?.logger = optlyLogger
    })

    optlyManager?.initialize(callback: { (error, optlyClient) in
        // Optimizely is now up and running.  You can now configure any experiments, etc.
    })

    configuration.use(SEGOptimizelyXIntegrationFactory.instance(withOptimizely: optlyManager))

Docs: https://cocoapods.org/pods/Segment-Optimizely-X
It says to me that moving towards this approach will not cover all the cases, and maybe we should have something like a Config class for each case.

@ariefwijaya what you are currently proposing from the engineering and architecture point of view is a really good and interesting stuff, it's really good to have such interesting contributions. Still has some nuts to tighten but it's indeed a really starting point to take into consideration.
Also we need to take into consideration how is the impact of one IC not only in the PR itself but also to the entire repository and this includes the other contributor's PRs.
The above in addition to last discussion comment from @danielgomezrico and to avoid a big breaking change that goes beyond the scope of the current goal of keeping the stuff as stable as possible, lead me to propose doing a pause in the PR #18  while others PRs are yet approved and while all considerations with yours.
WDYT folks?

@danielgomezrico
Agreed, that one is not the only one. Those are more integration that requires more information than just enabled/disabled status. So, yes we need to have a config class for each integrations as I said before for e.g
IntegrationClass(enabled:true,param1:"value",param2:"value"),...]

Then, we need to have an abstract configuration class to extend for every plugin that needs it

Thanks @cdmunoz, for thoughtful feedback. I agreed with you, we need to consider more for this big change

@ariefwijaya Hi, I've resigned from this organization. Could you please remove my name from the description? 😉 👍 I'm clearing out my desk.


Bug 2102289: Make CGU resource cleanup more consistent

This is effectively a port of enhancement CNF-5013 which was merged in https://github.com/openshift-kni/cluster-group-upgrades-operator/pull/227wq

/bugzilla refresh


Move JS helpers to separate file

Maybe it is better to move _access, safe  and other from template.rb to separate file and not pollute small templates?
It can be as an option for skim engine.
User can simply all helpers via require 'skim' in his application.js

Agreed, I will definitely accept a good pull request for this.


Pre-5.0 fixes

This does a bit more of DB cleanup and also adds a check for RSA certificates.

The intent on the RSA check is to first check if the x509 parser tells us it's RSA, then if it tells us it is, not necessarily take it to its word that the struct is correct (because we'd panic if it's not) so validate that it is and fail with a pretty visible error if there's something dodgy going on.
This check may be able to catch someone trying to attack the x509 parser by confusing it about the type of key it's handling, maybe :)


path/filepath: return the correct extensions when using filepath.Ext(path)

Previously filepath.Ext(path) would return incorrect values for paths such as path/.config and files such as .gitignore as both of them do not have an extension.
This PR addresses this issue.

Closed as it would break backwards compatibility as stated by Ian.


WinUI 3 System.IO.Stream as Windows.Storage.Streams.IRandomAccessStream throw an exception.

WinUI 3 Stream.AsRandomAccessStream throw an exception.
Stream s = await client.GetStreamAsync(url);
BitmapImage bitmap = new();
await bitmap.SetSourceAsync(s.AsRandomAccessStream());

exception System.NotSupportedException:“Cannot use the specified Stream as a Windows Runtime IRandomAccessStream because this Stream does not support seeking.”
Stream s = await client.GetStreamAsync(url);
BitmapImage bitmap = new();

MemoryStream ms = new();
s.CopyTo(ms);

await bitmap.SetSourceAsync(ms.AsRandomAccessStream());

exception System.Runtime.InteropServices.COMException:“The component cannot be found. (0x88982F50)”

The first exception is relatively clear. You are calling HttpClient.GetStreamAsync which returns the HTTP response stream which is not seekable. Your workaround of copying the stream to a MemoryStream seems right. You probably want to use CopyToAsync though to avoid blocking.
About the second exception, I am not so sure but it might be related to the fact that you are not seeking to the beginning of the stream after copying. Have you tried ms.Seek(0, SeekOrigin.Begin) before calling SetSourceAsync?

The pointer to the original stream may not be at the start position, which causes the BitmapImge to read corrupted data from the stream, though I'm not very sure, it seems that The component cannot be found mostly raised on BitmapImage because of the format cannot be detected (thus the image cannot be decoded), calling ms.Seek(0, SeekOrigin.Begin) to set the stream pointer to the start position.

have already solved


Build depends on outdated rust nightly and experimental features

Issue type
Build/Install
Have you reproduced the bug with the latest dev version?
Yes
Version
dev
Custom code
No
OS platform and distribution
No response
Describe the issue
The build process depends on a number of (unstable) nightly-gated flags and an outdated nightly toolchain (nightly-2022-10-03)
In particular:
#![feature(try_blocks)]
#![feature(let_chains)]
#![feature(drain_filter)]

The use of nightly-gated features means the agent can't build with a stable rust distribution. Moreover, drain_filter seems to no longer be experimental but has gone through changes, and so we also can't build with recent nightlies.
As we go to production, it would be great to drop unstable features and declare a minimum version. Can we work around these and get the agent to build with the latest stable?
Repro steps
n/a
Relevant log output
No response

Fixed in the latest refactor.


Make use of the new travis-ci caching mechanism.

This moves the Zookeeper install from bin/zookeeper-3.4.6 to zookeeper/3.4.6 to make it easier to cache it.
In the new sudo-less environment you can't use sudo apt-get anymore. This might result in failing to installed gevent 0.13.8, gevent 1.0.x includes a copy of libev inside the tar.gz, so it should build fine.
First test to see if the caches get populated...

Got libevent-dev installed again via the apt addon.
The build and cache are working, there are just individual test failures as before. The cache itself doesn't seem to help in terms of test runtime, though it does make the build less dependent on the Apache mirror for getting the ZK archive.
Since the old sudo infrastructure is going away at some point, it's probably still worth it to switch and merge this.

Looks good to me, although I've been unable to get to figure out the cause of travis still messing up (with nearly always noautherrors); can't seem to cause it to happen locally so unsure whats up with that :-P


Wrong Blueprint API used for tooltip?

Add strictMode: true to .storybook/main.ts
And npm run storybook:

No I think blueprintjs is still using those APIs in non legacy components and that should change in v6
https://github.com/palantir/blueprint/issues/5503

More specifically: https://github.com/palantir/blueprint/issues/5503#issuecomment-1549786015

This is noisy in NMRium and there's now a big risk to miss other warnings and errors in the console.

So we can't silence this warning in the mean time?

No. https://github.com/facebook/react/issues/16362
Only options I see is contribute to blueprintjs to make it faster or use another tooltip component in the mean time.


Support Time-stamping

Is your feature request related to a problem?
Signature validation will fail if signing key/certificates are expired. In this case, signers need to rotate the key/certificates in time and re-sign container images using new key/certificates. The lifetime of a signature is limited by the lifetime of a corresponding signing key/certificate.
What solution do you propose?
Time-stamping (https://www.rfc-editor.org/rfc/rfc3161) extends the trust of signature beyond the validity period of a certificate, thus signers do not need to regularly re-sign images before certificates are expired. Additionally, In the case that a certificate has to be revoked due to a compromise, time-stamping helps establish whether the image was signed before or after the certificate was compromised.
What alternatives have you considered?
Currently Notation does not support time-stamping, so signers need to reguarly rotate the key/certificates in time and re-sign container images using new key/certificates.
Any additional context?
There is an existing issue in roadmap repo, however this repo is not in active mode.

@priteshbandi  @iamsamirzon @gokarnm @rgnote  There have been discussions around Time-stamping for quite a long time. I would like to prioritize this feature for Notation v1.2.0 release. Any comments from your side? /cc @shizhMSFT @FeynmanZhou @patrickzheng200 @JeyJeyGao


Moving Grid Item to first column in previous row triggers undesirable scroll

Steps to reproduce:

Use Grid Layout
Move item from second row to first column of first row

Expected result:
Item moves without the scroll position changing
Actual result:
Scroll position is reset
(this is not experienced when dragging item to any other column of first row)
Reproduction environment:
I can reproduce this on one of your examples: https://5fc05e08a4a65d0021ae0bf2-goamnjvxea.chromatic.com/iframe.html?id=examples-pages-layout--grid&args=&viewMode=story
https://user-images.githubusercontent.com/553566/154319259-e2188062-3901-43ca-8816-885449440123.mp4
Additional information
The problem doesn't seem to occur on some other sandbox implementations, e.g. https://codesandbox.io/s/silly-chebyshev-x1yu46
I should add that this is most notable in my use case where my cards have a "move to top" button. This causes a pretty disruptive experience when moving multiple items from the end of the list to the start of the list as the user has to repeatedly scroll back down.
I'm not sure if this is a problem within the library or a side-effect of something else but any advice would be appreciated.
Many thanks for a fantastic library.

I think this is caused by the same thing that's causing #601

Hi @vassbence. I did wonder the same. However, I disabled auto-scroll and the problem still existed so I'm not sure. The problem also occurs even when changing the sortable items array which confused me somewhat.

Hey @bobbyshaw, the issue you're seeing has nothing to do with @dnd-kit, in fact, you could replicate the issue without using @dnd-kit at all and simply modifying the order of the items array.
The behaviour you're seeing is a featured called scroll anchoring, which is a feature that is enabled by default in most browsers to try to minimize layout shifts. You can disable this functionality by setting the overflow-anchor CSS property to none on the scrolling element (in this case, the document body)

@clauderic Woh, thanks! I wasn't convinced it was an issue with the library but thanks for confirming & teaching me something new 🙇♂


Issue auto generated with router

Thanks for your work! I'm having an issue with sth like
    const router = express.Router();
    router.use("/v1", r1);
    router.use("/v2", r2);
    app.use("/api", router);
    app.use('/doc', swaggerUi.serve, swaggerUi.setup(swaggerFile));

But paths in generated swagger_output.json do not contain prefix /api
It shows /v1/... instead of /api/v1/...

I've had similar issues using .mjs files with ESM modules.
It could be a nice addition to this module to reverse the list of routes from the app instance instead of parsing them from files.

Hi there! Thank you for opening the issue, @sam5727.
Yes, the lib still doesn't recognize this case. But I will add it in my TODO list here and try to add it in the next versions.

Hi guys! The version 2.20.2 has fixed somethings about this.
If the problem persists, let me know.


update README

This PR updates the README.md file

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

Hey @thelfer, I believe the url's are actually set in the recipe/meta.yaml file:
https://github.com/conda-forge/mfront-feedstock/blob/main/recipe/meta.yaml#L75-L76
And the readme file is then automatically generated from the contents meta.yaml

Thanks @Krande!
I'll update this file ASAP.


Gift Entry: add Object Mapping 'imported' fields as a simulated Field Mappings

Critical Changes
Changes

Simulate Object Mapping 'imported' fields as Field Mappings

Issues Closed
New Metadata
Deleted Metadata

**lurch: W-037936

**lurch: attach W-037222

**lurch: attach W-037222

Tracking W-037222


Read-only file system error while trying to download intermediate CA certificate

Describe the bug
CZERTAINLY-Core is producing Read-only file system error when trying to download intermediate CA certificate.
To Reproduce
Steps to reproduce the behavior:

Find certificate which has some intermediate CA which is unknown to CZERTAINLY. For example www.czertainly.com, has R10
Upload that certificate or click on validation of that certificate (www.czertainly.com)
In UI you still see certificate as Invalid.
Go to logs and se there [2024-07-12 09:22:30.410] ERROR [tomcat-handler-8951] [com.czertainly.core.service.impl.CertificateServiceImpl - 1488]: r10.i.lencr.org (Read-only file system)

Expected behavior
I think it was planed to download intermediate certificates automaticaly. It is probably not working just because it downloads to wrong direction.
Screenshots

Complete logs from develop-02:
[2024-07-12 09:22:30.396] DEBUG [tomcat-handler-8951] [com.czertainly.core.util.OcspUtil - 66]: Chain for the certificate is http://r10.i.lencr.org/
[2024-07-12 09:22:30.410] ERROR [tomcat-handler-8951] [com.czertainly.core.service.impl.CertificateServiceImpl - 1488]: r10.i.lencr.org (Read-only file system)
[2024-07-12 09:22:30.410] DEBUG [tomcat-handler-8951] [com.czertainly.core.validation.certificate.X509CertificateValidator - 59]: Initiating the certificate validation: Certificate(commonName=www.czertainly.com, serialNumber=47a509d2c06f3a77f44bc6356c2041a9bc6, issuerCommonName=R10, certificateContentId=2575, issuerDn=CN=R10, O=Let's Encrypt, C=US, issuerDnNormalized=<IP_ADDRESS>=Let's Encrypt,<IP_ADDRESS>=R10,<IP_ADDRESS>=US, subjectDn=CN=www.czertainly.com, subjectDnNormalized=<IP_ADDRESS>=www.czertainly.com, notBefore=2024-06-18 13:37:01.0, notAfter=2024-09-16 13:37:00.0, publicKeyAlgorithm=RSA, signatureAlgorithm=SHA256withRSA, extendedKeyUsage=["<IP_ADDRESS>.<IP_ADDRESS>.1","<IP_ADDRESS>.<IP_ADDRESS>.2"], keyUsage=["digitalSignature","keyEncipherment"], basicConstraints=Subject Type=End Entity, state=ISSUED, validationStatus=INVALID, fingerprint=a10882212b38e64891c9eef989ab6b20dd694a9f7707fde6948e428c22e501ba, publicKeyFingerprint=1783a187b952d9419be08de4d4a3ffa6b7ad5011d8cfb7b996d9faaf514d7817, subjectAlternativeNames={"registeredID":[],"ediPartyName":[],"iPAddress":[],"x400Address":[],"rfc822Name":[],"otherName":[],"dNSName":["www.czertainly.com"],"uniformResourceIdentifier":[],"directoryName":[]}, raProfileUuid=null, statusValidationTimestamp=2024-07-12T09:22:22.412840, keySize=2048, certificateType=X509, issuerSerialNumber=null, issuerCertificateUuid=null, certificateValidationResult={"certificate_chain":{"validationCheck":"certificate_chain","status":"invalid","message":"Incomplete certificate chain. Issuer certificate is not available in the inventory or in the AIA extension."},"signature":{"validationCheck":"signature","status":"not_checked","message":"Issuer certificate is not available."},"certificate_validity":{"validationCheck":"certificate_validity","status":"valid","message":"Certificate is valid."},"ocsp_verification":{"validationCheck":"ocsp_verification","status":"not_checked","message":"Issuer certificate is not available."},"crl_verification":{"validationCheck":"crl_verification","status":"not_checked","message":"Issuer certificate is not available."},"basic_constraints":{"validationCheck":"basic_constraints","status":"valid","message":"Certificate basic constraints verification successful."},"key_usage":{"validationCheck":"key_usage","status":"not_checked","message":"Certificate is not CA."}}, complianceResult=null, complianceStatus=NOT_CHECKED, userUuid=null, keyUuid=null, certificateRequestUuid=null, sourceCertificateUuid=null, trustedCa=null)
[2024-07-12 09:22:30.411] DEBUG [tomcat-handler-8951] [com.czertainly.core.validation.certificate.X509CertificateValidator - 85]: Certificate validation of Certificate(commonName=www.czertainly.com, serialNumber=47a509d2c06f3a77f44bc6356c2041a9bc6, issuerCommonName=R10, certificateContentId=2575, issuerDn=CN=R10, O=Let's Encrypt, C=US, issuerDnNormalized=<IP_ADDRESS>=Let's Encrypt,<IP_ADDRESS>=R10,<IP_ADDRESS>=US, subjectDn=CN=www.czertainly.com, subjectDnNormalized=<IP_ADDRESS>=www.czertainly.com, notBefore=2024-06-18 13:37:01.0, notAfter=2024-09-16 13:37:00.0, publicKeyAlgorithm=RSA, signatureAlgorithm=SHA256withRSA, extendedKeyUsage=["<IP_ADDRESS>.<IP_ADDRESS>.1","<IP_ADDRESS>.<IP_ADDRESS>.2"], keyUsage=["digitalSignature","keyEncipherment"], basicConstraints=Subject Type=End Entity, state=ISSUED, validationStatus=INVALID, fingerprint=a10882212b38e64891c9eef989ab6b20dd694a9f7707fde6948e428c22e501ba, publicKeyFingerprint=1783a187b952d9419be08de4d4a3ffa6b7ad5011d8cfb7b996d9faaf514d7817, subjectAlternativeNames={"registeredID":[],"ediPartyName":[],"iPAddress":[],"x400Address":[],"rfc822Name":[],"otherName":[],"dNSName":["www.czertainly.com"],"uniformResourceIdentifier":[],"directoryName":[]}, raProfileUuid=null, statusValidationTimestamp=2024-07-12T09:22:30.411139894, keySize=2048, certificateType=X509, issuerSerialNumber=null, issuerCertificateUuid=null, certificateValidationResult={"certificate_chain":{"validationCheck":"certificate_chain","status":"invalid","message":"Incomplete certificate chain. Issuer certificate is not available in the inventory or in the AIA extension."},"signature":{"validationCheck":"signature","status":"not_checked","message":"Issuer certificate is not available."},"certificate_validity":{"validationCheck":"certificate_validity","status":"valid","message":"Certificate is valid."},"ocsp_verification":{"validationCheck":"ocsp_verification","status":"not_checked","message":"Issuer certificate is not available."},"crl_verification":{"validationCheck":"crl_verification","status":"not_checked","message":"Issuer certificate is not available."},"basic_constraints":{"validationCheck":"basic_constraints","status":"valid","message":"Certificate basic constraints verification successful."},"key_usage":{"validationCheck":"key_usage","status":"not_checked","message":"Certificate is not CA."}}, complianceResult=null, complianceStatus=NOT_CHECKED, userUuid=null, keyUuid=null, certificateRequestUuid=null, sourceCertificateUuid=null, trustedCa=null) finalized with result: INVALID

Additional context
Tested on CZERTAINLY 2.2.11 and 2.2.12 and also on version running on develop-02.

I assume you mean version 2.11.0 or 2.12.0...
We should not store the content of downloaded certificate in file as we typically use read-only file system for security and compliance reasons.
We should fix it. Thanks for reporting!

Yes, I mean versions 2.11.0 or 2.12.0...


Feature Request:  Stack update should able to use git repo instead of file.

Our team would like to provision all stack file in a git repo. Therefore, I would like to be able to call StackUpdateRequest and a new version of the stack file is grabbed from the git repo.
Is your feature request related to a problem? Please describe.
Allow deployment from git repo without pushing the docker-compose directly to the repo.
Describe the solution you'd like
I would like to be able to click on update stack and new version of the repo pull and deployed.

Duplicate of #1753


VOX not loaded

I have generated a VOX (Magicavoxel) that can be read in Magicavoxel but could not be imported in VoxelShop.
Gen001.vox.zip

Interesting. Did you use any custom settings for the export?

Found.  Was the palette index not good for my voxels. I put 0 as default index for all but need 1 because of Vox palette mapping.

Is there something we should improve here?

I am not sure we could have index of 0 in normal VOX file.

Oh, you generated this file? Not magica?

I did yes with my program.

Ah, that makes sense then. We should possible handle that if magics does, but not very important...


Backup size issue

After I migrated from the patters solution Crashplan reported that I had 141TB of data to back up (I have only 9 TB disk space).
After some headscratching I found a @docker directory inside my volume1, and after I removed that one from the backup set everything went back to normal.
Anyone with any idea what this directory is doing?

It's probably the Docker host’s local storage area (https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#container-size-on-disk).
Excluding this folder is the correct thing to do.  This should not be part of the backup.

Thanks.
I guess there must be some looping symlinks inside the directory, since Crasplan managed to find  141TB of data in there.


There are multiple modules with names that only differ in casing

Hi, I got the following warning when I try to build the app1React using this repo, I didn't change any config. By googling, this warning often caused by mixing cases in import, while this doesn't apply to me.
The difference here seems to be the backslash and forward-slash in the path that are being different.
Do you have any idea how this can happen/fix?

WARNING in (webpack)/buildin/global.js
There are multiple modules with names that only differ in casing.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
Use equal casing. Compare these module identifiers:

C:\Users\yhe\Documents\GitHub\single-spa-portal-example\app1React\node_modules\webpack\buildin\global.js
Used by 2 module(s), i. e.
C:\Users\yhe\Documents\GitHub\single-spa-portal-example\app1React\node_modules\punycode\punycode.js
C:\Users\yhe\Documents\Github\single-spa-portal-example\app1React\node_modules\webpack\buildin\global.js
Used by 2 module(s), i. e.
C:\Users\yhe\Documents\Github\single-spa-portal-example\app1React\node_modules\symbol-observable\es\index.js @ (webpack)/buildin/global.js
@ C:/Users/yhe/Documents/GitHub/single-spa-portal-example/app1React/node_modules/punycode/punycode.js
@ C:/Users/yhe/Documents/GitHub/single-spa-portal-example/app1React/node_modules/url/url.js
@ (webpack)-dev-server/client?http://localhost:9001
@ multi (webpack)-dev-server/client?http://localhost:9001 ./src/singleSpaEntry.js

After removing the spas folder to new created folder, this warning stopped.
Closing this..


definePageMeta does not set layout If app/router.options.ts is used

Environment

Operating System: Linux
Node Version:     v21.2.0
Nuxt Version:     3.8.2
CLI Version:      3.10.0
Nitro Version:    2.8.0
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, typescript, css, build, imports, runtimeConfig, vite, alias, modules
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://stackblitz.com/edit/github-l2ydly?file=modules%2Fauth%2Fviews%2FMainAuth.vue
Describe the bug
When I use router.options.ts Instead of pages/, definePageMeta does not change the layout. It always loads default layouts.
Additional context
In my local project I tried to use pages instead of router.options.ts and then definePageMeta started work.
Logs
No response

Yes, you are overriding the default metadata with app/router.options.ts. However, you can respect it if you want; the routes() function receives as its first argument the routes that Nuxt has received (including metadata) and you can do with this what you wish.

in your routes in the file router.options.ts you gonna add layout inside meta like following:
import type { RouterConfig } from '@nuxt/schema' export default <RouterConfig>{   // https://router.vuejs.org/api/interfaces/routeroptions.html#routes   routes: (_routes) => [   {       path: '/myPath',       component: () => import('@/pages/MyPage.vue'),       meta: {         layout: 'customLayoutName'       },     },    ], }

**This works for me **
in your routes in the file router.options.ts you gonna add layout inside meta like following:
import type { RouterConfig } from '@nuxt/schema'
export default <RouterConfig>{
  // https://router.vuejs.org/api/interfaces/routeroptions.html#routes
  routes: (_routes) => [
  {
      path: '/myPath',
      component: () => import('@/pages/MyPage.vue'),
      meta: {
        layout: 'customLayoutName'
      },
    },
   ],
}


Passing explicit Null as Mutation parameter

I have a mutation that updates an entity.  When passing input parameters I want one of the fields to be sent as Null. However, when I try to running something like this:
        updateEntity({
           id: id
           exampleField: None
        })

This is the variable object I find in the network request
operationName: "UpdateEntityField"
query: "mutation UpdateEntity($id: ID!, $field: String)
variables: {id: "exampleid"}

While I wanted to send something along these lines
operationName: "UpdateEntityField"
query: "mutation UpdateEntity($id: ID!, $field: String)
variables: {id: "exampleid",  field: null}

I found a workaround for this which passes Js.Nullable.null->Obj.magic instead of None. I know this violent usage of Js.Nullable.null is not the nicest way to handle this issue, but as we are passing this straight to the Javascript world I don't think this can cause any issues down the line. I think it would be better if we could introduce a better way to handle something like this and make it type-safe.

Yes, this is possible using mapJsVariables here you have a function that can manipulate the Raw.t_variables which includes Js.Nullable.t's.

Yes, this is possible using mapJsVariables here you have a function that can manipulate the Raw.t_variables which includes Js.Nullable.t's.

Exactly what I needed I am closing this as this is resolved, thank you!


Defer calls to proc_macro::TokenStream::extend

Fixes #198 by batching invocations of the impl Extend<TokenTree> for TokenStream impl.
For the benchmark in https://github.com/illicitonion/num_enum_regression_13 this reduces compile time from 118 seconds to 2.0 seconds on my machine.
Once the Extend performance is fixed in libproc_macro (https://github.com/rust-lang/rust/issues/65080), this commit should be reverted.

N=
before PR
with PR

2
0.1ms
0.04ms

10
0.3ms
0.1ms

100
8.7ms
0.6ms

1000
610ms
6.2ms

2000
2400ms
11ms

3000
5600ms
18ms

4000
9500ms
23ms

5000
15000ms
28ms

6000
23000ms
34ms

7000
32000ms
37ms

8000
47000ms
41ms

extern crate proc_macro;

use proc_macro::TokenStream;
use quote::quote;
use std::time::Instant;

const N: u32 = 7000;

#[proc_macro]
pub fn bench(_input: TokenStream) -> TokenStream {
    let start = Instant::now();
    let counter = 0..N;
    let _ = quote! {
        #(
            #counter
            core::option::Option::None,
        )*
    };
    eprintln!("ELAPSED: {} millis", start.elapsed().as_millis());

    TokenStream::new()
}


DFT running slow in SLURM system

I am running a demo DFT calculation on a small molecule on a SLURM cluster. Here is the python script dft.py:
from pyscf import gto, dft
import numpy as np
from time import perf_counter

def run():
    xyz = """
    C     0.0324075417    1.5597651675    0.0173503882
    C     0.0165327393    0.0274410148    0.0305054658
    C     0.7401306193   -0.5295158287    1.2618054783
    C    -1.4291837338   -0.5260272859   -0.0298377316
    C    -2.1505122569   -0.1629995548   -1.2436891238
    C    -2.7262202740    0.1392620880   -2.2551761211
    H     1.0589579093    1.9399387642    0.0096348267
    H    -0.4845464252    1.9534338078   -0.8620306386
    H    -0.4643663260    1.9623774373    0.9087359643
    H     0.5364722319   -0.3291892511   -0.8679611487
    H     0.2428191250   -0.2118700025    2.1862800077
    H     0.7634809319   -1.6244926985    1.2541585815
    H     1.7738173614   -0.1720416972    1.3033542233
    H    -1.3996184762   -1.6199713974    0.0562607039
    H    -1.9858455552   -0.1676037942    0.8474974509
    H    -3.2444660827    0.4018884507   -3.1437253070
    """
    begin = perf_counter()
    mol = gto.Mole()
    mol.atom = xyz
    mol.basis = 'ccpvtz'
    mol.symmetry = False
    mol.max_memory = 12000
    mol.verbose = 4
    mf = dft.RKS(mol).density_fit()
    mf.grids.level = 4
    mf.xc = 'PBE'
    mf.kernel()
    end = perf_counter()
    print(f"Time: {end-begin:.2f} s")

When I am simply running the script with python dft.py, the code should be running on the management node, and finished in ~53s. But when I tried to submit it to the computation node with srun python dft.py, the exact same code took ~105s. The CPU on the computation node is similar to the management node, if not better. Why will this happen? And may I have a reference on how much time this calculation should take on single CPU core?

There are a lot of different reasons this could happen. Could you give us a few details about:

How many cores are on the management and computation node?
What are the default settings of srun on your system? Does it give you exclusive access to a node or does it request a single process?
Are you setting the number of threads with the appropriate environment variables?
Did you install pyscf with pip or build from sources?
Are you using the best version of BLAS on your computational nodes?

A couple of general notes about performance:

You should be careful to check if another job is running on the same computation node. My guess is that you're running into an oversubscription issue because you aren't getting exclusive access to the node. See the slurm exclusive option docs here
If you're interested in maximizing performance you should be compiling pyscf from source on your computation nodes.
As a last resort, you should reach out to your system administrator and have them double-check that you're running the job as expected

@jamesETsmith Thank you for replying. I found that when using srun, the program defaults to use a single thread. While directly running on the management node, it used all 32 threads. But I tried calculating the same molecule under the same setting with Psi4 (except for a little difference in the grid), it only took 45 sec with a single thread. Would you pls estimate or try this code and let me know how long this computation should take with a single thread in PySCF?

I'm just curious on this issue :joy_cat: (not going to dive deep into this topic currently)
Agree with comments of jamesETsmith. I also tried to make some very crude profiling of this task on two machines.
Machine specification
Memory benchmark were performed with aid of Intel MLC.

Xeon 6150
Ryzen 7945HX

Deployment
Server
Laptop

Architecture
SKL
Zen 4

BLAS
MKL (conda)
OpenBLAS (pypi)

PySCF compile
compiled
pypi

DRAM bandwidth (seq-read)
216 GB/sec
58 GB/sec

Loaded Latency (no delay)
198 ns
811 ns

L2 Cache
1 MB/core
1 MB/core

L3 Cache
24.75 MB
64 MB

Timing benchmark
Note that tricks described in https://github.com/pyscf/pyscf/issues/1915 are applied in both cases. RI-J or RI-JK utilized. But I think that's not important, as Hartree-Fock is quite fast in this case.

CPU
Functional
Physical Cores
Task time

Xeon 6150
PBE
1
117.68 sec

PBE
8
30.16 sec

PBE
16
23.38 sec

HF
16
1.75 sec

Ryzen 7945HX
PBE
1
121.88 sec

PBE
8
30.41 sec

PBE
16
28.57 sec

HF
16
2.06 sec

Major differences of these two machines are DRAM bandwidth and memory load latency.
Xeon 6150 is significantly faster than Ryzen 7945HX for 16-core task, though they behave almost the same for 8-core task. (I mean physical core of CPU if mentioning "core"; a CPU can have lots of cores; cores=threads if no hyper-threading)
Xeon 6150 is also faster than Ryzen 7945HX for 1-core (single-threaded) task. I guess that's because CPU frequency is large when 1-core but decreases significantly when 8-core for Xeon 6150; where frequency of Ryzen 7945HX is steady.

I guess there's a memory or cache/TLB-miss related efficiency problem.
Profiling
For benchmark of the Ryzen 7945HX (16 cores), own-time (wall time) percentage of some functions are

Function
Percentage

_dot_ao_ao_sparse
58.4%

_dot_ao_dm_sparse
16.2%

eval_gto
6.7%

_contract_rho_sparse
3.9%

nr_direct_drv
3.2%

_scale_ao_sparse
3.0%

_eval_xc
2.2%

others
6.4%

Preliminary hacking
I tried to change _dot_ao_ao_sparse to the _dot_ao_ao_dense counterpart; specifically, changing the following code
https://github.com/pyscf/pyscf/blob/e64ed3171982f159f204c6a68febc7049d59356a/pyscf/dft/numint.py#L1156-L1163
into
    elif xctype == 'GGA':
        ao_deriv = 1
        for i, ao, mask, wv in block_loop(ao_deriv):
            wv[0] *= .5  # *.5 because vmat + vmat.T at the end
            aow = numpy.einsum("xgi, xg -> gi", ao[:4], wv[:4], optimize=True)
            _dot_ao_ao_dense(ao[0], aow, None, vmat[i])
        vmat = lib.hermi_sum(vmat, axes=(0,2,1))

Physical Cores
Time before change
Time after change
Percentage

1
121.88 sec
103.76 sec
15%

16
28.57 sec
17.21 sec
40%

Note that this is certainly not a solution. Sparse grid contraction should be potentially faster than dense one.
Preliminary conclusion?
I'm not sure whether these are correct. I'm newbie to program efficiency.
Generally,

For small systems, DFT approximations (even without hybrid ones, $O(N^3)$ ) probably inevitably slower than HF $O(N^4)$. I think this is not only specific to PySCF, but also other atomic-orbital-basis based programs, due to FLOPs analysis. Situation may different for large systems.
Perhaps efficiency could be improved for sparse DFT grid AO-AO contraction, or other sparse grid operations.
Though these functions are paralleled (CPU runs at 800% / 1600%), this task does not benefit much from introducing more CPU cores.

My guess of efficiency problem is that

Though _dot_ao_ao_dense should be mainly computation-intensive GEMM, _dot_ao_ao_sparse is probably implemented in a memory-intensive way (but I haven't double checked by roofline model).
I guess there could be serious cache/TLB-miss problem in _dot_ao_ao_sparse and may have some room to be optimized. But I haven't validated that. Actually currently, I don't know the algorithms of sparse DFT integral and contraction.

So probably, since sparse DFT grid contraction is implemented in memory-intensive way, a slower timing for this task at computation node, may be the reason of the following conditions:

In some cases, DRAM bandwidth or memory latency of computation node is slower than that of management node. CPU frequency and instruction throughput may be better on computation node, however, these are more crutial for computation-intensive tasks than memory-intensive tasks.
For memory-intensive task, if your task is not exclusive, then other person's tasks may consumes up DRAM bandwidth. However, on management node, maybe you could utilize the full DRAM bandwidth, making this task running faster.
Or some other people just used up CPU resources unintentionally. It could happen sometimes.

Note that Psi4 uses density fitting by default

I didn't carefully optimize the memory locality and the data transferring in the sparse algorithm. Like @ajz34 's guess, it has high penalty in multi-threading execution due to cache miss and memory access. And the performance may be strongly affected by the loadage, threads, and other runtime environments.
In PR #1962,  I turned off the sparse algorithm for small systems. It should be able to give you more consistent performance.

Thanks! Is this resolved now?

Thank you all for your help! Based on @ajz34's benchmarks, my time (approximately 110 seconds with a single thread) seems to be reasonable. However, when I tried the same program later, the performance was inconsistent, sometimes taking up to 160 seconds. I will try the latest update by @sunqm later to see if it can solve the problem.
There is another issue regarding the use of density fitting. My original code uses density fitting to compare with Psi4, which uses df by default. In this case, I found Psi4 to be significantly faster, taking only around 50 seconds, while PySCF takes about 110 seconds, which is reasonable as confirmed by @ajz34. (I am referring to using a single thread in all cases.) But then I turned off df in both PySCF and Psi4 (for Psi4 I set scf_type='pk'). I discovered that while the PySCF time only increased to somewhere around 150 seconds, the Psi4 time jumped to 190 seconds.
This seems very strange to me. Should the performance increase multiple times when density fitting is turned on? Or is it because Psi4 is heavily optimized for density fitting as it is the default?

There is another issue regarding the use of density fitting. My original code uses density fitting to compare with Psi4, which uses df by default. In this case, I found Psi4 to be significantly faster, taking only around 50 seconds, while PySCF takes about 110 seconds, which is reasonable as confirmed by @ajz34. (I am referring to using a single thread in all cases.) But then I turned off df in both PySCF and Psi4 (for Psi4 I set scf_type='pk'). I discovered that while the PySCF time only increased to somewhere around 150 seconds, the Psi4 time jumped to 190 seconds.
This seems very strange to me. Should the performance increase multiple times when density fitting is turned on? Or is it because Psi4 is heavily optimized for density fitting as it is the default?

This is completely expected. Psi4 is a program optimized for segmented contracted basis sets, while PySCF uses general contractions, and cc-pVTZ is a generally contracted basis set. The integrals are therefore slower in Psi4; if you study heavy atoms, the speed differences can be huge e.g. 2 seconds vs several hours. When density fitting is used, the differences are smaller since the number of integrals is smaller, $\mathcal{O}(N^2)$ instead of $\mathcal{O}(N^4)$.
When sufficiently accurate auxilary basis sets are used, the error made in the DF approximation  can be made insignificant; see e.g. my recent work on automatic generation of auxiliary basis sets in J. Chem. Theory Comput. 17, 6886 (2021) and J. Chem. Theory Comput. 19, 6242 (2023).

see e.g. my recent work on automatic generation of auxiliary basis sets in J. Chem. Theory Comput. 17, 6886 (2021) and J. Chem. Theory Comput. 19, 6242 (2023).

That is actually quite impressive! Is there an implementation to generate those for use in PySCF?

see e.g. my recent work on automatic generation of auxiliary basis sets in J. Chem. Theory Comput. 17, 6886 (2021) and J. Chem. Theory Comput. 19, 6242 (2023).

That is actually quite impressive! Is there an implementation to generate those for use in PySCF?

The implementation in the basis set utility of ERKALE is openly available on GitHub. The tool reads in and writes out the basis sets in Gaussian'94 format. You can use the Basis Set Exchange Python library to convert between basis set formats if necessary.
The long-term plan is to include the necessary functionality natively in the Basis Set Exchange.


crashes

every time i try adding the clothes with animation it crashes my unity

I'll need a little more to go on than that, can you provide a lot of the console output?

Okay.    If you could find details in a Unity debug log, I might be able to investigate further, but there's really nothing I can do without understanding why that crash happens.
Sorry about this.

Can we talk on discord?
On Fri, Jun 16, 2023, 4:41 PM Sophie @.***> wrote:

Okay. If you could find details in a Unity debug log, I might be able to
investigate further, but there's really nothing I can do without
understanding why that crash happens.
Sorry about this.
—
Reply to this email directly, view it on GitHub
https://github.com/SophieBlueVR/AvatarDresser/issues/6#issuecomment-1595486516,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BATO4YOQDJ5T5UVFTBC5JXLXLTVLBANCNFSM6AAAAAAZISYGWY
.
You are receiving this because you authored the thread.Message ID:
@.***>


[srp-client] treat NXDOMAIN as success for host remove request

This commit updates Srp::Client to treat kResponseNameError
or NXDOMAIN as success if the request is to remove host. This
handles the situation when the server may return this response
code if the host name that is being removed does not exist on
the server (e.g. previous removed).

Background:

This PR is intended to help with Apple BR server devices which return
NXDOMAIN in this case.
We can put this on hold. On further discussion on this, it seems it may be better
for server to return success in such cases (when request to remove something
that is already removed (does not exist)). RFC-2136 also seems to supports this
model.

This change is not necessary. RFC 2136 Section 2.5.3 indicates that the response should return NOERROR if the host does not exist on the server.
   2.5.3 - Delete All RRsets From A Name

   One RR is added to the Update Section whose NAME is that of the name
   to be cleansed of RRsets.  TYPE must be specified as ANY.  TTL must
   be specified as zero (0) and is otherwise not used by the primary
   master.  CLASS must be specified as ANY.  RDLENGTH must be zero (0)
   and RDATA must therefore be empty.  If no such RRsets exist, then
   this Update RR will be silently ignored by the primary master.

This change is not necessary. RFC 2136 Section 2.5.3 indicates that the response should return NOERROR if the host does not exist on the server.

   2.5.3 - Delete All RRsets From A Name

   One RR is added to the Update Section whose NAME is that of the name

   to be cleansed of RRsets.  TYPE must be specified as ANY.  TTL must

   be specified as zero (0) and is otherwise not used by the primary

   master.  CLASS must be specified as ANY.  RDLENGTH must be zero (0)

   and RDATA must therefore be empty.  If no such RRsets exist, then

   this Update RR will be silently ignored by the primary master.

We may still handle NXDOMAIN as NoERROR so that SRP client can tolerate a misbehaving server?


Add assignees list to the hooky config

Codecov Report
Patch and project coverage have no change.

Comparison is base (584a57b) 97.42% compared to head (b8132ff) 97.42%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #92   +/-   ##
=======================================
  Coverage   97.42%   97.42%
=======================================
  Files           5        5
  Lines         311      311
  Branches       68       68
=======================================
  Hits          303      303
  Misses          6        6
  Partials        2        2

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


containerized manageiq - need to put a temp page under the httpd to notify that it is initializing

This goes under usability.
When running a containerized manageiq for the first time it takes several minutes till all services are up, during that time a user might think that something is wrong.
solution:
place a page under the httpd root to be served while the initialization is going on (saying something like "initializing please wait ..." and  remove this page once the initialization is done.

@fbladilo

@bazulay evmserverd brings up httpd during start-up as a last step via systemd, time consuming migrations/db work is done before hand we don't have anything listening on 80/443 during that step, in other words we would not be gaining too much with a "waiting on init" page under this scenario unless we somehow start an httpd instance early before DB preparation and until the point where evmserverd starts up (we don't want to conflict with it).

@fbladilo
it looks like httpd should be brought up at the beginning (not configured yet) with such a page,
Eventually httpd should be configured (place all httpd configurations) as the last step before restarting httpd ...
I know it is easier said than done ... especially since we don't want to diverge from the appliance code.

So the difficulty with this is that right now, apache is started as a part of the web service worker startup process. This ensures that we don't start apache if we are not on an appliance configured for web services. This in turn requires us to have the database configured (because the workers need the database).
@jrafanie this feels like it would require apache to always be running on every appliance. If we are okay with that I think we could consider having a static page that said something like "Appliance is not configured for UI or webservices, or is still initializing". I'm not sure what kind of work it would be to then substitute the default route to our workers though. @abellotti maybe you could shed some light on that?
/cc @gtanzillo

On another note, how is this different from the initialization process the appliance goes through now? As it stands the webservices take a bit to come up after starting the server so while I agree it would be nice to have some better indication than the browser error page, this seems like it may not be worth reworking how we start apache.
If our users are okay with it on an appliance, I don't see why they wouldn't be on a container based deployment, right?

@carbonin
This came up only in containerized environment , because the db migrations are performed the first time the container is brought up.
The solution could be something specific for a containerized appliance.

As far as I know that is also the case for the appliance when the database is initialized @bazulay
We use rake evm:db:region which does a db:drop db:create db:migrate. I still don't see the distinction.

@bazulay @carbonin The monolithic container build uses the same init procedure (appliance_console_cli) as with the VM appliance, I haven't timed both but I imagine around the same startup penalty.

@carbonin
The distinction is that deployment on a VM appliance it is obvious you need to SSH and do something manually , so you know when you bring up the service and can access it only than. while doing a docker run (or running the PODified version) than the infra (docker or k8s) is doing everything and for those environment ssh access to the container/POD should not be assumed.
meaning it can take some time and the user doen't have indication that everything is o.k.
@franco IIUC your comment than the "Application not ready" will be displayed when accesing the route. Not sure but I think this does not help us as there may be a problem under the hood (e.g. miq POD failed to run), the router will still report the same message.
So I still tend to think this is required

Is the webservice role enabled on a containerized appliance ?  if so a successful GET on the API entrypoint /api would be a good indicator.

@bazulay That's still not the case for manageiq images. The database and application are started at first boot without any ssh access or user intervention.

@carbonin please correct me if I'm wrong, IIUC this is only upstream

@bazulay
In regards of OSE, is a bit more complicated. Even if there was a page indicating the application is "starting", the router would not display it until the application actually passes readiness.
It is possible to set a generic http get on port 80/443 as a readiness check but this is debatable since the we are instructing OpenShift that the App is ready when it really isn't yet. The actual readiness check should be specifically targeted to the web-console login page instead.
On typical situations, while launching a deployment on OpenShift (graphical or cli), you get status continously from all deployment configs or pods, it is really verbose about printing state as the deployment goes.

@bazulay Nick is correct, for upstream builds database and application are started without any intervention (/bin/appliance-initialize.sh)

We have discussed having custom error pages for apps under routes - that's been requested by other folks and is a reasonable reqt.  It wouldn't know the difference between initializing and down though.


Using JAVA_HOME bugfix in rpm

Using JAVA_HOME bugfix in rpm
PRESTO_JAVA_HOME was supposed to be removed with:
4a0c5f01ce587fbb28c23d7f217945a030073a8a

I didn't catch that either. No need to sorry.


feat(modal): add emit modal:show/hide when methods are called

work with emitter if someone needs to do something when modal show or hide.

Current coverage is 100% (diff: 100%)

Merging #162 into master will not change coverage

@@           master   #162   diff @@
====================================
  Files          19     19
  Lines         323    326     +3
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
+ Hits          323    326     +3
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 9c2445b...a12f0b6

not able to be merged


I'd love to try adding windows support

Would anyone be able to give me a breakdown of the current issues when running for windows? I want to see what I can do.

Hi. I pointed out some of the issues on another post.
https://github.com/DorskFR/LeaguePyBot/issues/15

me can't run this tool. Something happens with lockfile.py


Make PCUICCumulativity generic in checker_flags

This allows me to use the lemmata.

I agree, but there were Hints, so I would have to close and open sections again, I don't know what's best.

We can re-export all hints and notations at the end of the file. Not very elegant but it does the job ...

Yes I know… It's not very robust though.


Bug: Cannot delete file

Description
I have set the Files.exe run as admin, but it also can't delete file which need admin.
Steps To Reproduce

Create a new file
Change it's permission, disable inheritance and add two users: Administrators has full control, and Users only has read permissions.
Delete this file use Files App
You will  find that Files App can't delete this file but Windws file explorer.exe can do it.

Requirements

Let the Files App can delete that file

Files Version
Version: <IP_ADDRESS>
Windows Version
Windows 11 22H2 23424.1000
Log file
debug.log

Bug right click Files App and choose Run as admin, Files App can delete that file, so setting Files.exe run as an admin doesn't seem like the best approach.

Merging with #10422

This issue is resolved in our dev branch and will be included in the next release.


Textarea error border overhangs on IE8

In modern browsers the 30px bottom margin both on govuk-textarea and govuk-form-group would just collapse. On IE8 the component ends up having 30px bottom-margin which pushes the error border out.

Since internet explorer 8 is functional only, we have decided the time it would take to fix this is not worth the effort.