Add quantization

CVS-129098

@aleksandr-mokrov, I believe this PR should be closed https://github.com/openvinotoolkit/openvino_notebooks/pull/1703?

fixed

View entire conversation on ReviewNB

removed

View entire conversation on ReviewNB

fixed

View entire conversation on ReviewNB

Changed

View entire conversation on ReviewNB

Added

View entire conversation on ReviewNB

Fixed

View entire conversation on ReviewNB

renamed

View entire conversation on ReviewNB

removed

View entire conversation on ReviewNB

I'm not sure that here is needed any specific function to calculate inference time. Generation an image in the example takes about 1 minute for fp16 model and about 30 seconds for int8 model and the notebook demonstrates it. Renamed Run inference to Run inference and compare inference time.

View entire conversation on ReviewNB

I mean "import openvino as ov"

View entire conversation on ReviewNB

done

View entire conversation on ReviewNB

I added a multiselector. Unused pipeline is deleted.

View entire conversation on ReviewNB

Changed. Now it is possible to choose pipeline for demo, run demo, stop demo and choose another pipeline.

View entire conversation on ReviewNB

removed

View entire conversation on ReviewNB


Deploy docs for release 1.5

Deploy doc updates for release 1.5.0

You also need
  push:
    branches:
    - release-1.4
    paths:
    - "site/**"

See https://github.com/nginxinc/nginx-gateway-fabric/pull/2597/files as an example (this PR forgot the paths section, however)

Yes, just fixed it.


What about displacement maps?

I see no suffix listed for displacement maps.
Also, in the old UE4 wiki, they used "_DP" for this which doesn't conflict with your existing suffixes, so might be a good idea to use the same.

If you're talking about vector displacement maps, I'd recommend _V, whereas for linear displacement maps I'd just go with _H for height.

@LuggLD I guess this makes sense.
@Allar What are your thoughts on this?

I'd cast a vote for _WD for "World Displacement" since it matches the material node well.


Why do we have to run merge?

Can't I just generate the the edit locations and then run the repair?
mkdir results # where we will save our results
python agentless/fl/localize.py --file_level --related_level --fine_grain_line_level \
                                --output_folder results/location --top_n 3 \
                                --compress \
                                --context_window=10 \
                                --temperature 0.8 \
                                --num_samples 4

Why I have to also run the following command?
python agentless/fl/localize.py --merge \
                                --output_folder results/location_merged \
                                --start_file results/location/loc_outputs.jsonl \
                                --num_samples 4

What is it doing really? @dengyinlin @brutalsavage

Hi @ramsey-coding these commands are to reproduce our exact setup we used in the paper on SWE-Bench Lite.
In this example the first command will generate 4 sets of edit locations (using sampling) and the second command will proceed to merge these edit locations together to do pair wise merging (please see the our paper and readme for a bit more detail)
If you prefer to generate just the one set of edit locations (without having to merge), you can look at our top-level readme or simply remove the --temperature and --num_samples


Feature Engineering using Lambda Layers for an end to end training pipeline.

In this example we look at how we can create a full training and inference pipeline implemented only using the Keras library. As we build up our graph we also visualize our network.
We will end up with only one artifact containing the full pipeline. This can easily be deployed and you do not need to create features with other libraries before feeding data to your model.
Feature engineering will be part of our network.

Thanks for the PR! Feature engineering for categorical data is a great topic. However, using Lambda layers is not recommended. They're not safely serializable and I wouldn't recommend them in production for this reason.
We also already have an example on structured data feature engineering here: https://keras.io/examples/structured_data/structured_data_classification_from_scratch/
I would recommend turning your example into a tutorial that focuses on something that's absent from the example above. Perhaps we could take the approach of doing the feature engineering in a single Layer subclass that takes in a dict of data. What do you think?

@fchollet That sounds great yes. I will have a look at changing it to subclass Layer class.

Thanks for the PR! Feature engineering for categorical data is a great topic. However, using Lambda layers is not recommended. They're not safely serializable and I wouldn't recommend them in production for this reason.
We also already have an example on structured data feature engineering here: https://keras.io/examples/structured_data/structured_data_classification_from_scratch/
I would recommend turning your example into a tutorial that focuses on something that's absent from the example above. Perhaps we could take the approach of doing the feature engineering in a single Layer subclass that takes in a dict of data. What do you think?

@fchollet Hi Francois. Thanks for the suggestion. Changes made to use a single feature layer by subclassing Layer class and using a dict of Input objects as input. Please let me if this is also what you had in mind.

Hi @fchollet . Thanks for the suggestions. We now have one layer for feature preprocessing that utilises keras preprocessing layers. I have implemented the class you suggested. It contains multiple preprocessing layers and combinations of them.
Please let me know what you think. Is the dataset used fine for showcasing preprocessing layers? I was thinking to use a model from decision forest library instead neural network.

Hi. Let me give it another go and than we can see if this will be a good addition to the website.

Hi. Let me give it another go and than we can see if this will be a good addition to the website.

Hi @fernandonieuwveldt, thanks again for this PR. Are you planning to make the requested changes? Let us know if you're still working on this. Otherwise we'll close the request. Thanks!

Hi. I made the requested changes. Hope we can still work further on this.

@fchollet @pcoet Let me know if the changes look good. All the requested changes have now been implemented.


Document the Enchantability of the Shield

Enchantability is a stat that determines the odds of getting a good enchantment, as well as how often you get more than one on an enchanting table. The shield's enchantability isn't documented in the wiki, so I think it would be a good idea to document it for more technical players.

More technical players could just look for it in the Java files, there is not really a good place with how I structure documentation for the mod to put it on the wiki, its a very non-technical wiki.
Your best bet is really getting a mod that lists that sort of info if you want it, since its hidden on all vanilla and modded tools anyways.

Anyways, its enchantability is 12, or 16 if it has a pattern.


Remove utilities from bootstrap-grid

Hi, I usually use bootstrap-reboot and bootstrap-grid to build my websites, and I have noticed a lot of useless utility classes in my build CSS file that I don't frequently use, I suggest to remove utility classes from bootstrap-grid and use bootstrap-utilities apart

Can't remove them in v4, that's a breaking change. v5 could maybe introduce a split there that makes it grid and utilities as separate files. Not sure if that's just getting us into roundabout modular approach in our dist files vs the source files, too.
Thoughts @twbs/css-review?

You will have the ability to control the spacing utilities in v5 with our utilities Sass map. I do see the offset classes are still part of the grid, maybe we can also move them to the utility API?

Offset should stay with the grid. I'm inclined to leave this as we have it now as we work through v5's alpha development. I imagine the most we'd do is actually to customize the utilities a bit for the grid build.


WIP debug 0.2021.30

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

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) and found it was in an excellent condition.

@conda-forge-admin rerender

@conda-forge-admin rerender

This won't pass until the new build of galsim 2.3.2 hits the CDN. It should be restarted in a few hours.

@conda-forge-admin restart ci


Manual Installation still didn't show up

i'm a win11 users and i have redownloaded the same version with my previous photoshop .
however i just can't install animdessin2 successefuly.
i've tried Extension Presets Manual Installation. And i didn't any step, just dont know why...and i need it right now..

When you did the manual installation, did you also edit the regedit so it shows up in the extension menu?
You need to esit the regedit so you can enter debug mode, its for developping cep panels.
You can how to do it on my home oage of animdessin2
https://github.com/schroef/AnimDessin2


Segmentation label map

Hello
How are you?
Thanks for contributing to this project.
I want to get one segmentation map containing all the class labels rather than binary mask for each instance.
How can I get it?

Hi, you can run a loop to aggregate all the predicted binary masks:
# create an all-zeros mask
single_channel_mask = torch.zeros_like(image)

# loop through all instance masks
for cls_id, mask in zip(result.pred_classes, result.pred_masks):
    mask *= cls_id
    single_channel_mask = torch.max(single_channel_mask, mask)

Thanks for your help.


Cant validate email using mongoose

I have a pretty simple validation in a mongoose schema, and it used to work perfectly. But for some weird reason, after updating to 5.0.0 it doesn't work anymore...
When I use version 5.0.0 the validation process stuck, like it was in an infinite loop. But if I go back to version 4.9, it works.
I tryied to debug, but I couldnt find the problem. Aparently isEmail funcition returns normally.
email: {
    type: String,
    index: { unique: true },
    required: true,
    validate: [validator.isEmail, 'user.invalidemail']
},

https://github.com/rodrigogs/nodejs-web-jade-scaffold

You'll have to open a ticket over at the mongoose repo. As you said, the isEmail validator is returning normally when you use this library directly.

But it stoped working due to some change made in validator module. Otherwise, returning to 4.9 would not solve the problem.

The issue is not with the isEmail function but with the way that mongoose calls it. It's not my responsibility to fix bugs in the libraries that depend on this one.

For anyone who comes across this, make sure you check out the Mongoose docs, this can be solved simply:
email: {
    type: String,
    unique: true,
    lowercase: true,
    required: true,
    validate: {
      isAsync: true,
      validator: (v, cb) => {
        cb(isEmail(v));
      },
      message: '{VALUE} is not a valid email'
    }
  },

http://mongoosejs.com/docs/validation.html#async-custom-validators

Another possibility (synchronous instead of asynchronous):
validate: {
  validator: email => validator.isEmail(email),
  message: '{VALUE} is not a valid email'
}


append subscription labels

What type of PR is this?
kind/apis
What this PR does / why we need it:
append subscription labels to Description and HelmRelease objects.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

/cc @DanielXLee @huxiaoliang


java.lang.IllegalStateException: An instance of OnFlingListener already set.

Adding Snaps dynamicaly and notifyDataSetChanged gives this above error what i'm doing so far is
 //add three more items
            progressBar.setVisibility(View.VISIBLE);
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {

                    List<App> apps = getApps();
                    snapAdapter.addSnap(new Snap(Gravity.CENTER_HORIZONTAL, "Paper Industry", apps));
                    snapAdapter.addSnap(new Snap(Gravity.CENTER_HORIZONTAL, "Wood Industry", apps));
                    snapAdapter.addSnap(new Snap(Gravity.CENTER_HORIZONTAL, "Cement Industry", apps));
                    snapAdapter.notifyDataSetChanged();
                    progressBar.setVisibility(View.GONE);
                }
            },3000);

@SUPERCILEX  can you please help

@rubensousa

sorry that was due to my mistake.


pydantic2 migration

All tests passing now
had to disable @validate_arguments
@alibillalhammoud
@tvt173

We are wating now for the rest of the plugins to port

[x] kfactory
[ ] meow
[ ] sax
[ ] tidy3d

FYI All future releases of tidy3d will use pydantic v2. We went with the approach of importing pydantic.v1 and replacing pylint with ruff.

SAX ported (using pydantic.v1 for now). Next week I'll tackle meow.

Moved to https://github.com/gdsfactory/gdsfactory/pull/2038


[data provider issue] UCSF harvesting issues - contacted UCSF

Nuxeo project folder cleanups
https://help.oac.cdlib.org/a/tickets/138396

[x] Registry ID: 26221
Nuxeo project folder – “Internet Archive scans” folder → do not publish?)
UCSF needs to move the IA scans (not intended for publication) into a different folder.

https://calisphere-stage.cdlib.org/collections/26221 - 953 items
https://calisphere.org/collections/26221 - 51 items
Note: Updated harvest extra data to: asset-library/UCSF/Berne_Eric_Collection/PUBLISH/MSS 89-12 Eric Berne papers/Transactional Analysis Bulletin

[x] Registry ID: 26742
Nuxeo project folder – includes a “Do not publish” folder. Needs a separate “Publish” folder.
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/ee8477e2-5c54-4b8e-a05a-1fb76f7f1579/view_documents

https://calisphere-stage.cdlib.org/collections/26742/ - 23 items
https://calisphere.org/collections/26742/ - 6 items
Note: Updated harvest extra data to: asset-library/UCSF/AR 2014-32 Alumni relations/PUBLISH
Nuxeo object cleanups

[ ] Registry ID: 1780
Empty record--delete?
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/ffa82783-996f-4d0c-a1e0-671310263380/view_documents

These objects have a TIF uploaded, but the document type is CustomFile (text):

[ ] Registry ID: 15586
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/2425dfc1-0c44-4b22-80b3-9ca47f982571/view_documents

Nuxeo document type is a file, but object is a TIF. Additionally, Nuxeo didn’t generate a thumbnail.
These objects have a PDF uploaded, but the document type is SampleCustomPicture:

[ ] Registry ID: 18931
Run ID: manual__2024-05-13T23:27:13+00:00

https://nuxeo.cdlib.org/nuxeo/nxdoc/default/7a69763e-6de5-40dd-8b68-b2d94c3fb24e/view_documents

[ ] Registry ID: 26791
Run ID: manual__2024-05-13T23:29:24+00:00

https://nuxeo.cdlib.org/nuxeo/nxdoc/default/a52a3ab2-8c2b-48d0-b082-969e6cb6dcc3/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/a52a3ab2-8c2b-48d0-b082-969e6cb6dcc3/view_documents

[ ] Registry ID: 105
Run ID: manual__2024-05-13T22:49:58+00:00

https://nuxeo.cdlib.org/nuxeo/nxdoc/default/43f153c8-1720-4c0a-ab3f-c7e425ee49b1/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/ab9b81dc-e760-4ae8-b7fc-2792f61a9b32/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/9f991997-2151-4d1d-a140-b0c415914c40/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/897a19c1-c44d-4815-98dc-d4a8c7bbbffa/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/6b2f4a45-6a1b-42a5-b2bb-b278a6b39118/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/0bab3de2-069f-4b0c-a648-3dbf0e68fc06/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/54703f7d-d1dc-476c-ae35-346980c1f804/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/590da61a-f5b8-4b38-bb09-cdf789a6e380/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/7d5f639d-af6f-499f-ac5f-9a691222205f/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/0433038d-2438-4ccb-87b1-9fb734ec00fe/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/7ca671ed-adf9-480e-998d-f1b7651ca187/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/4fa14269-4c28-4bd0-8f97-89ea7dd68cc7/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/252578af-7ae2-446d-964c-885a4b4d0eb4/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/6d1cac39-66fc-4cdc-bb06-6d3f03ee9a85/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/7358959c-4b97-441f-aa71-c12d40b7be16/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/7dd8fd07-ba6f-4ea7-a946-19edba8dbad8/view_documents
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/20b281d4-1d89-4a4e-aaf6-7ff652a9b617/view_documents

@aturner -- just an fyi that I updated the "harvest extra data" for both 26221 and 26742. Both collections are now up on -stage and their counts look closer to what is expected.

Update:
26791 is harvesting from this Nuxeo folder:
asset-library/UCSF/Berne_Eric_Collection/PUBLISH/
26221 is now harvesting from this Nuxeo folder:
**asset-library/UCSF/Berne_Eric_Collection/PUBLISH/**MSS 89-12 Eric Berne papers/Transactional Analysis Bulletin
I think we need 26221 to be in a separate folder. Or else if we run a re-harvest of 26791, it will pick up 26221. (Or maybe not, since the ID conflicts wouldn't overwrite.)

Collection: 105
application/pdf SampleCustomPicture issue -- just one more record
"media_source": {"url": "https://nuxeo.cdlib.org/nuxeo/nxfile/default/1ad5e594-dc15-4e9c-a49a-239fcab72663/file:content/photocoll_sod_classphotos_0022-0024.pdf?changeToken=4-0", "mimetype": "application/pdf", "filename": "photocoll_sod_classphotos_0022-0024.pdf", "nuxeo_type": "SampleCustomPicture"}
https://nuxeo.cdlib.org/nuxeo/nxdoc/default/1ad5e594-dc15-4e9c-a49a-239fcab72663/view_documents

@aturner -- these collections are all harvested through to stage! I've updated UCSF on this. Thanks!!


save SDP unknown fields

Save SDP unknown/unrealized fields as Other field in order to improve SDP scalability.
People can easily implement his own SDP library.

If I understand correctly, this change would cause unknown SDP fields to be transparently forwardable. Your change looks good. Could you help me understand why it's needed? AFAIK SDP doesn't do what HTTP does with X-Foo: Bar headers.
Would it be possible to put JSON or something in the Session Info field? https://tools.ietf.org/html/rfc4566#section-5.4 The SDP standard says i= is arbitrary UTF-8 and u=  is an arbitrary URL for anything we want.
If there's existing systems productionized that use non-RFC fields, could you provide details on what they are?

Yes, one protocol named gb28181 which can control camera uses non-rfc SDP. It uses y= to describe ssrc and f= to describe camera stream(IPC like the sip phone so we can call it and the video will return back).So I think that maybe it is a good way to add strange fields into Other

I'm happy to merge this as a workaround. I can't promise it in the long term because RFC 4566 defines its BNF in such a way as to not allow custom SDP fields. Easiest way for @GB28181 to help us is to publish an RFC explaining how these new fields work.

Thanks, perhaps a better way is to maintain a copy of SDP.However this SIP library and SDP are interdependent(https://github.com/jart/gosip/blob/master/sip/msg_parse.rl#L68).
&MiscPayload{T: ctype, D: data[p:len(data)]} is better

I'm happy to merge this as a workaround. I can't promise it in the long term because RFC 4566 defines its BNF in such a way as to not allow custom SDP fields. Easiest way for @GB28181 to help us is to publish an RFC explaining how these new fields work.

I think the standard SIP library should strictly follow the RFC regulations.
Should we decouple SIP and SDP?

For posterity, we've moved this discussion into #11.


Meaningful name suggestions for surface container download

Currently, any download is named digital_surface_twin.zip per default. Would be nice to have a surface container named APOL Roasted Chestnut Polished actually suggested as something like apol_roasted_chestnut_polished.zip when downloaded.

We can use slugify from Django to turn a string (name of a DST?) into something that can be used as a file name: https://docs.djangoproject.com/en/4.2/ref/utils/#django.utils.text.slugify

If multiple surfaces are downloaded from different containers how should the default download name for the zip file be addressed?

My suggestion is to pick an automatic name only if this is easily possible, i.e. if the user selected only a single Surface or Topography that both have names. It looks to me like the name selection needs to happen here:
https://github.com/ContactEngineering/topobank/blob/150aeba043a34981e76690368b7080313ecdbd9e/topobank/manager/views.py#L1649
This function gets a single surface_id which can be turned into a name using slugify, see here for the function signature:
https://github.com/ContactEngineering/topobank/blob/150aeba043a34981e76690368b7080313ecdbd9e/topobank/manager/views.py#L1607
It is a bit more difficult when the user decides to download an arbitrary selection, but that is this function:
https://github.com/ContactEngineering/topobank/blob/150aeba043a34981e76690368b7080313ecdbd9e/topobank/manager/views.py#L1677
My suggestion is to keep the generic name digital_surface_twin.zip if there are multiple surfaces that are selected, but pick the name of the surface if only one is selected. This should easy to check from the length of this list:
https://github.com/ContactEngineering/topobank/blob/150aeba043a34981e76690368b7080313ecdbd9e/topobank/manager/views.py#LL1685C5-L1685C13
@Siddhantsaka - let me know if you have questions about this.

Closed with #994


Link down

More details around capabilities and pricing of the Power Platform offers can be found in the Microsoft Power Platform Licensing Guide.
This link does not work!
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 56b6371f-3a43-09ba-e714-b6a9995a1e19
Version Independent ID: f1e0a6b5-26c9-3f31-7e8b-4e58c34d9636
Content: Licensing overview for Microsoft Power Platform - Power Platform
Content Source: power-platform/admin/pricing-billing-skus.md
Service: power-platform
Sub-service: admin
GitHub Login: @dileepsinghmicrosoft
Microsoft Alias: dileeps

Thanks for your comment, @benopax8apac. This issue has been assigned to the doc author for review.


Release 1.1.2

This PR does the release of a library version 1.1.2.
It also migrates all tests off Mockito and removes Mockito and SLF4J from the project dependencies.

@armiol PTAL.


[types] Create native wrapper for Sent and Received Payment events.

Motivation
This PR aims to address #2064. In the previous implementation, we implemented a struct AccountEvent to represent either the SentPayment Event or the ReceivedPayment Event, as they have exactly the same struct layout. This is fragile, however, as it makes distinguishing two types of events. This PR will separate two events with its own Rust implementation.
Have you read the Contributing Guidelines on pull requests?
(Write your answer here.)
Test Plan
cargo test

@bors-libra r=davidiw

:pushpin: Commit 6afe793 has been approved by davidiw

:hourglass: Testing commit 6afe79349084ac268c8449e9f15ad4b3647db9db with merge c92212bac1e57d3128382ddbb4b8412420d76fe8...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: davidiw
Pushing c92212bac1e57d3128382ddbb4b8412420d76fe8 to master...


Document current camera systems

What are the specifics for current hardware on:

Lenses?
Adapter mounts?
Pi camera model

Added an initial summary in dencam_hardware / hardware.md


Update to new Snowflake recommended setup

Snowflake now recommends to use their new SAML2 Security Integration, which has a lot more features like metadata download, signing requests, tweaking NameID etc.
https://docs.snowflake.com/en/user-guide/admin-security-fed-auth-advanced.html#migrating-to-a-saml2-security-integration

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a5733ec0-25ee-bd16-58d4-6a921f6ab1fd
Version Independent ID: d80fe5dc-505f-5f7b-0f01-8e86233cd64a
Content: Tutorial: Azure Active Directory integration with Snowflake
Content Source: articles/active-directory/saas-apps/snowflake-tutorial.md
Service: active-directory
Sub-service: saas-app-tutorial
GitHub Login: @jeevansd
Microsoft Alias: jeedes

@TheMorganator Thank you for sharing this info . We will involve the content team to review the current documentation and see how best we can update the details.

We are updating this change in the document.
#please-close


Replace marked with Remarkable and update dependencies

Coverage increased (+0.2%) to 69.508% when pulling 43b392fbc67b33616b96d78f32fb421367411e6d on update_deps into f05a0d74c662967025c9d53f9f6fb0504703a63d on master.


[vite] Internal server error: Cannot read properties of null (reading 'split')

Describe the bug
vite server proxy
    proxy: {
      '^/dev-api/.*': {
        target: DEV_URL,
        changeOrigin: true,
        rewrite: (path) => {
          return path.replace(/^\/dev-api/, '')
        },
      },
    },

const DEV_URL = 'http://auth.test.cloud:8000';   // ok
const DEV_URL = 'https://auth.test.cloud:8000';   // ok
const DEV_URL = '//auth.test.cloud:8000';         // error so why?

so why?
Reproduction
https://stackblitz.com/edit/vitejs-vite-d1x3wu?file=vite.config.js&terminal=dev
Open and then access /foo
Steps to reproduce
No response
System Info
vite 3.1.6

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

It's because https://github.com/http-party/node-http-proxy does not support that format.

@xuoutput 遇到一样的问题，请问解决了吗

Closing as there's not much we can do. For progress upstream, you can follow https://github.com/http-party/node-http-proxy/pull/1298


Netlify Logo link is not working

In README.md file "Supported by" section, the Netlify Logo link is not working.

Fixed! Thanks for pointing this out.


Update request: nix 2.18.1 → 2.19.2

Package name: nix

Latest released version: 2.19.2

Current version on the unstable channel: 2.18.1

Current version on the stable/release channel: 2.18.1

[x] Checked the nixpkgs pull requests

Notify maintainers
@ryantm @fabaff

After the NixOS 23.11 release, I checked the nix website and also saw the latest nix version is v2.19.2.
When I run:
$ nix upgrade-nix
My nix version doesn't get updated. After running nix upgrade-nix --debug I found that  https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix points to v2.18.1.  Is this update not automated during releases? I couldn't find much information about this other than seeing one merged PR where v2.19.2 gets introduced to nixpkgs. Can we upgrade the expression to v2.19.2 asap so nix upgrade-nix upgrades to v2.19.2 properly.
What I currently get:
$ nix upgrade-nix --debug

found Nix in '/nix/var/nix/profiles/default/bin'
found profile '/nix/var/nix/profiles/default'
ignoring the client-specified setting 'extra-platforms', because it is a restricted setting and you are not a trusted user
ignoring the client-specified setting 'sandbox-dev-shm-size', because it is a restricted setting and you are not a trusted user
performing daemon worker op: 1
upgrading Nix in profile '/nix/var/nix/profiles/default'
querying latest Nix version...
downloading 'https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix'...
starting download of https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix
finished download of 'https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix'; curl status = 0, HTTP status = 200, body = 226 bytes
downloading '/nix/store/azvn85cras6xv4z5j85fiy406f24r1q0-nix-2.18.1'......
performing daemon worker op: 10
verifying that '/nix/store/azvn85cras6xv4z5j85fiy406f24r1q0-nix-2.18.1' works......
installing '/nix/store/azvn85cras6xv4z5j85fiy406f24r1q0-nix-2.18.1' into profile '/nix/var/nix/profiles/default'......
replacing old 'nix-2.18.1'
installing 'nix-2.18.1'

Don't know much about the Nix release process but I'm using nixVersions.nix_2_19 on unstable to fix https://github.com/NixOS/nix/issues/5759.
Not sure if it's stable yet since 2.19.2 gives me these warnings when rebuilding:
warning: Ignoring setting 'auto-allocate-uids' because experimental feature 'auto-allocate-uids' is not enabled
warning: Ignoring setting 'impure-env' because experimental feature 'configurable-impure-env' is not enabled


Add [Binance] #malicious GAHK7E…TODB4A

Address: GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A
Tags: malicious
Title: Binance
Requested by @jvilla29xlm

@jvilla29xlm It was labeled a Binance wallet a while ago and does seem to be one due to the memos asnd only USDC and XLM or transfered.
Sadly many'most scammers use Binance accounts to take their stolen funds off chain. Binance and ChangeNow are the biggest ones that I have seen used by most scammers and money launderers.
But with that said, there could be a middle man account used to cover their tracts even better. That is something to investigate in the future.


Fix/dependencies

:x: Build TheIdServer 4.2.1-fix-dependencies1-0177 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/a16683b073 by @)

:white_check_mark: Build TheIdServer 4.2.1-fix-dependencies1-0178 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/e95ac75ce8 by @)


Create bottled cards command

Create the !bottled command, this should list the bottled cards for the base game Bottle relics.
I believe there may be modded Bottle relics but this does not cover them.
Bottled cards also have the "misc" property for their current value if it's a meta-scaling card (Ritual Dagger, Genetic Algorithm, etc), but I don't think the actual value needs to be part of the command

I feel the need to note that this is completely untested lol

How about adding which bottle the cards are from for UX clarity? I personally like using emoji:
⚡ Apotheosis, 🔥 Searing Blow +69, 🌪 Corruption
All of those are standard emoji, so they should work "everywhere". (baller run if we have all of the above btw)

I have never used emojis directly in code, is it fine to just have it like this then?

Or is there some like ":tornado:" colon code I should use? I like the idea of specifying them though


Drag&Drop does not work with within Elevated Apps

Describe the bug
Reorder a ListView with drag&drop make the app crash when running elevated.
Steps to reproduce the bug

Build https://github.com/davidegiacometti/listview-crash
Run as normal user
Reorder the ListView with drag&drop: working
Retry running elevated: Catastrophic failure (0x8000FFFF (E_UNEXPECTED))

Expected behavior
Working when running elavated
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.1.4
Windows app type

[ ] UWP
[X] Win32

Device form factor
Desktop
Windows version
Windows 10 (21H2): Build 19044
Additional context
No response

Does this issue repro after 1.2-preview2? There were significant Drag and Drop fixes in that release (all of which are in 1.2 stable).

Still persists with latest preview.

There's a limitation currently that drag/drop isn't supported in apps running elevated
https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#elevation

Hi @MikeHillberg
Thank you! I totally missed that.
Is there an official issue tracking this or should I leave this opened?

I don't see it in Issues either, let's leave this one. And thanks for opening

I changed the title for clarity.

Was this  solved? At current state  1.3,   When I drag on  elevated app I see ban icon.

@Petrarca181 I think you're referring to dragging external content into the elevated app?  That would present the ban icon, and is a behavior of Windows.  You can repro by running Notepad as admin, and attempting to drag a txt file into.

Starting to drag a Border in an elevated app also crashes due to it being unsupported. Why is this in the Freezer? It sounds like being able to drag UI elements is a useful part of many UIs.

I have exactly the same issue/senario with
                 <GridView x:Name="GridViewDevices"
                           CanDragItems="True"
                           SelectionMode="Extended"
                           ItemsSource="{x:Bind ItemsSourceDevices, Mode=TwoWay}"
                           Loaded="{x:Bind LoadedStartConnectedAnimationForBackNavigationDevices}"
                           ItemsPanel="{StaticResource ItemsPanelTemplateDevices}"
                           ItemTemplate="{StaticResource DataTemplateDevices}"
                           ContainerContentChanging="ContainerContentChangingDevices"/>

If i run code in visualstudio 2022 and start normally, all is good. If i start VS as admin, code segs on start of drag.
Im running windowsappsdk 1.3.230724000 (everything else is latest too)

Any update on this? Application crashing in elevated mode when user initiates drag is horrible experience.
Simple functionality like CanReorderItems simply crashes the app...

sadly I just upgraded to [1.4.2 (1.4.231008000)] (https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-142-14231008000) and the bug still exists. code crashes with "catastrophic error" when Admin and drag and drop is performed, but works fine if not running as Admin

Yeah, for now it seems best solution is to to just implement in-app Drag&Drop yourself without using builtin apis.

After more than one year development, WinUI team still not resolve this issue.

After more than one year development, WinUI team still not resolve this issue.

This is a very critical bug. Don’t the Microsoft team think so?

Yeah, for now it seems best solution is to to just implement in-app Drag&Drop yourself without using builtin apis.

Sounds like the best solution is not to use Windows App SDK / WinUI 3 as long as that's the level of maturity and support.

Our current application ships with SDK 1.3.230724000 and many of our customers suddenly have the same issue. Our application needs elevated mode. Strangely it never happened before the latest windows updates. We didn't even change anything in our application.
Same problem occurs even with the latest "WinUI 3 Gallery" app in elevated mode and latest SDK. It even sometimes crashes when switching between the pages.
This is a serious issue and must be addressed as soon as possible!

I support you MetalMonkey in saying this is a serious issue and is not being taken seriously. I don't even see an acknowledgement that the problem has been recreated, even though it takes 2 minutes to recreate.
Could someone at Microsoft acknowledge that this is a serious issue and provide an update as to the plan to fix it?
thx

This also seems to affect the TabView and it occurs in WinUI 2 with Xaml Islands as well - you can see in Notepad and Windows Terminal they've just disabled the ability to reorder tabs when the app is running as administrator - quite disappointing that they've had to resort to that to address this issue since now you can't reorder tabs when running as admin.

After two years, I have never seen WinUI team plan to fix this issue.

After two years, I have never seen WinUI team plan to fix this issue.

A shame really as my app also depends on admin access for hardware sensors.
For now I just added a safeguard where I disable CanDrag if Admin access is detected.

i think the worst part about this is that it crashes even when dragging within your own application


Azure AD B2C: Bad Request

I get the following error at UserManager.userManager.signinRedirectCallback():

Here is my config:
  authority: 'https://<tenant_name>.b2clogin.com/<tenant_name>.onmicrosoft.com/<policy>/v2.0',
  client_id: '<client_id>',
  redirect_uri: `http://localhost:4200/login-callback`,
  response_type: 'code',
  scope: 'openid profile',

Also:

Before the error, I am able to login properly using the Azure AD B2C login page.
When I use the endpoint v1 (by removing the "v2.0" suffix from the authority) it's working as expected.
I use the "Sign up and sign in" (no custom policy here).

Env:
oidc-client: 1.10.1
@angular/core: 9.1.3
@angular/cli: 9.1.3
chrome: 81.0.4044.138

I tried many different configurations without success.
Is oidc-client compatible with Azure AD B2C?
I really don't want to use msal. ☹

The problem was not in my code, but in my B2C settings on Azure.
Thanks to this answer from @chrsi, I was able to fix it.
First, change the reply URL type in your app registration manifest to Spa:

Then, make shure you set some API specific scopes (e.g. https://<tenant>.onmicrosoft.com/api/write). Otherwise, the returned access token will be undefined.


Metadata XML writing is intensive

While writing the results of a 10k MC sampling with 671 input variables, the CSV was written successfully but writing the accompanying XML file crashed the available memory on a node on the HPC.
Perhaps we should consider more memory-efficient ways of writing out this file.  I suspect the issue is in construction the large XML tree before writing it, as we've run into this before with writing large BasicStatistics XML files.

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[ ] 1. Is it tagged with a type: defect or improvement?
[ ] 2. Is it tagged with a priority: critical, normal or minor?
[ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[ ] 1. If the issue is a defect, is the defect fixed?
[ ] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[ ] 4. If the issue is a defect, does it impact the latest stable branch? If yes, is there any issue tagged with stable (create if needed)?
[ ] 5. If the issue is being closed without a merge request, has an explanation of why it is being closed been provided?

In addition to this, the file sizes of a 100k Monte Carlo sample set I generated did not seem to make sense.  The data consists of 54 columns in a PointSet and the csv version of the data was ~50MB. The xml was ~200MB, and the HDF5 was ~800MB.  There seems to be some inefficiencies in how we are storing data, especially in the metadata. Not to mention reading this data from HDF5 was really slow. I can avoid it by loading from csv without the xml files present. I did not attempt to load the file with the xml present as I assume that will incur a lot of overhead with the metadata.

By way of warning, excluding the metadata XML is only safe for Monte Carlo sampling, since we don't care about probability weights, just in case someone else runs across this approach as a potential workaround.

This issue can be closed since the new dataobject system and it is invalid now.


Signed-off-by: charles.davernas<EMAIL_ADDRESS>

Update the ScheduleDefinition's Cron property to accept direct string assignment
Many thanks for submitting your Pull Request :heart:!
What this PR does / why we need it:
Allows users to directly set the expression on the Cron property instead of having to create a new object (only required if ValidUntil has to be set)

This is so cool. Thanks!


feat: adds secrets field to job type

adds an Optional secrets field to the Job type, to match the Job interface in GH Acitons
note - I tried to update a test to demonstrate using this field but unfamiliar with how to freeze a particular commit or branch for testing, leading to Expression doesn't match annotation errors because the new type wasn't being used. happy to include that in this PR if there's guidance on how to freeze the commit appropriately
I was able to test it locally by changing the remote import to the branch in my fork:

let GithubActions =
      https://raw.githubusercontent.com/aglover-zendesk/github-actions-dhall/aglover/add-secrets/package.dhall
        sha256:feee9bf55dbdd94352e835a7c07b0850c6530b7ddf1eea9ae959b41464fddd5a

let matrix =
      toMap { java = [ "8.0.232", "11.0.5" ], scala = [ "2.11.12", "2.12.11" ] }

let setup =
      [ GithubActions.steps.actions/checkout
      , GithubActions.steps.actions/cache
          { path =
              ''
              ~/.sbt
              "~/.cache/coursier"
              ''
          , key = "sbt"
          , hashFiles =
            [ "build.sbt"
            , "project/plugins.sbt"
            , "project/build.properties"
            , "project/Dependencies.scala"
            ]
          }
      ]

in  GithubActions.Workflow::{
    , name = "Greeting"
    , on = GithubActions.On::{
      , push = Some GithubActions.Push::{=}
      , pull_request = Some GithubActions.PullRequest::{=}
      }
    , jobs = toMap
        { checks = GithubActions.Job::{
          , name = Some "Checks"
          , runs-on = GithubActions.types.RunsOn.ubuntu-latest
          , secrets = Some [ { mapKey = "secret1", mapValue = "foo" } ]
          , steps =
                setup
              # [ GithubActions.steps.actions/setup-java { java-version = "11" }
                , GithubActions.steps.run
                    { run = "sbt scalafmtCheckAll scalafmtSbtCheck" }
                ]
          }
        , build = GithubActions.Job::{
          , name = Some "Build"
          , needs = Some [ "checks" ]
          , strategy = Some GithubActions.Strategy::{ matrix }
          , runs-on = GithubActions.types.RunsOn.ubuntu-latest
          , steps =
                setup
              # [ GithubActions.steps.actions/setup-java
                    { java-version = "\${{ matrix.scala}}" }
                , GithubActions.steps.run
                    { run = "sbt \"++\${{ matrix.scala}} test\"" }
                ]
          }
        }
    }

Thanks for this @aglover-zendesk, and sorry for the slow response.

happy to include that in this PR if there's guidance on how to freeze the commit appropriately

To be honest, I haven't invested enough time on this unfortunately, but normally, I only update the tests/examples after changes are in.

thanks @regadas 🚀


Updating gitignore to exclude files for IntelliJ IDEA, etc.

Generated a .gitignore file using gitignore.io to ignore IntelliJ IDEA files as well as other build artifacts from the tools used in this project.

Released as version 1.0.6 (may takes some time until it's available via maven).


build(cypress): Remove e2e pull_request event trigger

SUMMARY
Remove the pull_request event trigger for e2e Cypress tests, in favor of pull_request_target, now that https://github.com/apache/incubator-superset/pull/11750 has been merged. The latter should have access to the CYPRESS_RECORD_KEY secret in the upstream repo, and Cypress tests should now run in parallel.
TEST PLAN
Cypress tests in CI should run in parallel.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #12076 (26eef98) into master (8fe9ee0) will decrease coverage by 0.21%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #12076      +/-   ##
==========================================
- Coverage   63.59%   63.37%   -0.22%
==========================================
  Files         959      476     -483
  Lines       47148    29371   -17777
  Branches     4613        0    -4613
==========================================
- Hits        29984    18615   -11369
+ Misses      16980    10756    -6224
+ Partials      184        0     -184

Flag
Coverage Δ

javascript
?

python
63.37% <ø> (-0.78%)
:arrow_down:

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

Impacted Files
Coverage Δ

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/databases/commands/create.py
32.65% <0.00%> (-59.19%)
:arrow_down:

superset/sql_validators/postgres.py
50.00% <0.00%> (-50.00%)
:arrow_down:

superset/db_engine_specs/hive.py
54.61% <0.00%> (-29.62%)
:arrow_down:

superset/views/database/mixins.py
59.64% <0.00%> (-22.81%)
:arrow_down:

superset/db_engine_specs/mysql.py
79.59% <0.00%> (-12.25%)
:arrow_down:

superset/databases/commands/update.py
85.71% <0.00%> (-8.17%)
:arrow_down:

superset/databases/dao.py
94.11% <0.00%> (-5.89%)
:arrow_down:

superset/views/database/validators.py
78.94% <0.00%> (-5.27%)
:arrow_down:

superset/databases/api.py
83.87% <0.00%> (-5.25%)
:arrow_down:

... and 502 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8fe9ee0...26eef98. Read the comment docs.


Update custom_ops.md

add domain for SentencePiece Op
I use this sample to create a sub onnx graph, and without  having domain defined in the Operator, both the onnx.checker.check_model and runtime will through exception.

/azp run onnxruntime-extensions.CI


fix(expandable-tile): set tile height using resize observer

Fixes #1730
Currently, the ExpandableTile does not dynamically set the height of the above-the-fold content. In cases where the content is dynamic (a lot of text), this can result in clipped content.
This PR aims to fix this problem by using the Resize Observer to set the height of the tile, and adjust it if the height changes. It implements the approach of the upstream React library almost verbatim.
In terms of behavior, this should not be a breaking change since you can still specify a custom tile height on the "above" and "below" slots.
Changes

Fix ExpandableTile to use Resize Observer to set the tile max height
Rework the docs to promote not setting a height; add an example for customizing the tile heights

Example
In the following example, I am clicking a button that doubles the text in the above-the-fold tile. Note how the tile height adjusts itself dynamically.
https://github.com/carbon-design-system/carbon-components-svelte/assets/10718366/fa875e6e-124e-4eeb-a470-570c2b603fda
Issue #1730 (before)
https://github.com/carbon-design-system/carbon-components-svelte/assets/10718366/33e0ca54-c519-4d50-8d47-7d63c2d2b9c0
Issue #1730 (after)
https://github.com/carbon-design-system/carbon-components-svelte/assets/10718366/02dd432c-cc31-4314-aee4-2c2f411c81f3

Thanks for reviewing! 🙏


API change ideas, per gitter discussion

Discussion of these changes begins at https://gitter.im/http4s/http4s?at=5a9ef5196f8b4b9946f7deaa. It extends for a while, into the next day, so I'll try to paraphrase, starting with reasons.
Ideas

An original goal of http4s was to allow users to enjoy a separation between http4s-dsl and http4s-server, so that custom routing DSLs and code would be easy to use and could add features to http4s.
I proposed an alternative routing DSL which is less expressive in exchange for being more easy to analyze and more performant.
There are other routing DSL ideas loosely following Haskell's servant.

Issues

Routing as a concern is shared between http4s-server, http4s-dsl, and http4s-core. The only way to do routing is really with HttpService[F] and <+>; that's the only thing middleware supports, that's the only thing mountService will take in, and that's what's created by HttpService.apply. This means all services must have a) effectful routing and b) "unsealed" routing (to be later "capped" by adding 404's for failed matches).
The above means alternative routing DSLs are unable to create "sealed" routes which must succeed and have that encoded in the type, or to use exclusively "non-effectful" routing (with Option outside the service effect F), and even if they did, middlewares would not be usable on them.
Routing with <+> creates every effectful F[Response] in the entire HttpService, even when it knows that effect won't be executed because an earlier route was successfully matched. 300 routes, 300 unnecessary object creations.
More severely, the way those effects are created (if you're using HttpService.apply, as most are) includes executing matcher code and then sequencing a resulting Option, which means that no matter which route is accessed the routing itself always takes worst-case time.

Solutions (in decreasing order of controversy)

HttpService.apply should suspend its matching inside an F[_]: Sync. It's a bit sneaky, but it's the best way to avoid re-matching on requests. We will still create the unnecessary effect objects, and benchmarking would be nice to establish the degree this helps (and could be made better).
A new version of mountService which works on total services.
More polymorphic middlewares that can work on different service types.
Perhaps a rewrite of the old version of mountService to use the new version, so that routing is always handled by user code and never http4s-server or any backends.

In regards to solutions:

1 should be implemented for now, on master, for the sake of an efficiency fix.
2 we need some notion of what services are total. It also seems not independent from numba 3, but both are good solutions.

Some relevant tickets from the past: #53, #55, #353, #1424.

This is pretty well addressed by the introduction of HttpApp, deferred <+> on HttpRoutes, and the parameterization of most middleware.


JAMES-3709 Refactoring POP3 command handlers to share common code

Make TopCmdHandler re-use common code from RetrCmdHandler as protected respondWithMessage method.
Keep only specific argument parsing in retr and top handler methods respectively.
Add unit tests for everything, but in particular getMessageContent throwing or yielding null, which was missing in TopCmdHandler before.
I did not include the handling of IndexOutOfBoundsException / NoSuchElementException from TopCmdHandler, could not see when this would happen. I assume maybe Mailbox.getMessage() did that at some point, but not anymore. That would also explain the missing null check.

This latest refactoring introduces a base class AbstractPOP3MessageCommandHandler for all message related commands, not only TOP and RETR. Access to deleted messages throws IOException instead of returning null. Further expands tests.
Also includes and fixes https://github.com/apache/james-project/pull/868
Bonus: Fixes wrong numbering in LIST command after deleting some messages.

Little checkstyle issue during the build, easy to fix :+1:
03:14:34,002 [INFO] There is 1 error reported by Checkstyle 8.29 with checkstyle.xml ruleset.

03:14:34,009 [ERROR] src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java:[22,8] (imports) UnusedImports: Unused import - java.io.IOException.

How ever did this get through...? Fixed in latest push.

BTW I actually prefer it when people comment on my code. It improves code quality, catches the occasional bug, and I get to learn the preferred James style. So thank you!

Latest push squashed commits and rebased on current master.


kube-proxy-replacement breaks nfs reconnect

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
We setup cilium using:
cilium install --kube-proxy-replacement probe --helm-set k8sServiceHost=<IP_ADDRESS>,k8sServicePort=6443,global.etcd.enabled=true,global.etcd.managed=true,operator.replicas=3
We are using the NFS operator from here:
https://github.com/openebs/dynamic-nfs-provisioner
We provision a pod attached to the NFS mounted volume, everything works successfully.
We then fake an outage on the node hosting the NFS server, the NFS pod is then rescheduled to another server.
When using kube-proxy-replacement the mount within the pod consuming the NFS server hangs indefinitely with:
[147766.740926] NFSD: Unable to initialize client recovery tracking! (-22)
[147766.740929] NFSD: starting 90-second grace period (net f000174e)
[147792.384961] nfs: server <IP_ADDRESS> not responding, timed out
[147819.009203] nfs: server <IP_ADDRESS> not responding, still trying
[147972.610076] nfs: server <IP_ADDRESS> not responding, timed out
[147977.733893] nfs: server <IP_ADDRESS> not responding, timed out
[147980.801919] nfs: server <IP_ADDRESS> not responding, still trying
[148152.834725] nfs: server <IP_ADDRESS> not responding, timed out
[148157.954807] nfs: server <IP_ADDRESS> not responding, timed out
[148163.075008] nfs: server <IP_ADDRESS> not responding, timed out

<IP_ADDRESS> is the cluster IP of the NFS service
service/nfs-pvc-729ceb2e-0959-4d81-bc96-94fd37a73061   ClusterIP   <IP_ADDRESS>   <none>        2049/TCP,111/TCP   42m   openebs.io/nfs-server=nfs-pvc-729ceb2e-0959-4d81-bc96-94fd37a73061

When not using kube-proxy-replacement the mount reconnects automatically and everything works again.
Cilium Version
cilium-cli: v0.12.4 compiled with go1.19.1 on linux/amd64
cilium image (default): v1.12.2
cilium image (stable): v1.12.2
cilium image (running): v1.12.2
Kernel Version
Ubuntu 22.04
Linux dedi2-cplane1.23-106-58-144.lon-01.uk.appsolo.com 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
v1.25.2
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Here's the relevant entry from the service list:
258   <IP_ADDRESS>:111       ClusterIP      1 => <IP_ADDRESS>:111 (active)
259   <IP_ADDRESS>:2049      ClusterIP      1 => <IP_ADDRESS>:2049 (active)

It has the correct entry for the rescheduled pod
pod/nfs-pvc-729ceb2e-0959-4d81-bc96-94fd37a73061-78d48ffc59-6prlp   1/1     Running       0          34m    <IP_ADDRESS>   dedi1-node1.23-106-58-141.lon-01.uk.appsolo.com   <none>           <none>

pwru --filter-dst-ip=<IP_ADDRESS> --output-tuple shows no traffic also pwru --filter-dst-ip=<IP_ADDRESS> --output-tuple shows no traffic.
conntrack -L | grep <IP_ADDRESS> shows no entries, conntrack -E | grep <IP_ADDRESS> shows no events.
What other logs can I provide?

If another mount is attempted from the same node to the service IP, it will try to use the old unavailable pod IP.
However if another mount is attempted from the same node to the server IP, but using a different version of NFS, it will use the new pod IP.
This makes me believe that there is something perhaps in the NFS kernel client which is using different connection routing than eBPF?

@Rid Thanks for the detailed issue. I think you are hitting https://github.com/cilium/cilium/issues/12859 (cc @aditighag). TL;DR the sock has the old service backend IP. You could work around by either switching NFS to use TCP or by disabling the socket LB for pods (socketLB.hostNamespaceOnly=true).

@brb Thanks for taking a look, as you can see from the logs above the NFS mounts are already TCP.
<IP_ADDRESS>:/ on /var/lib/kubelet/pods/fb6a9039-589d-48b8-8b42-215706216ecb/volumes/kubernetes.io~nfs/pvc-714d603f-a2bc-4f61-aab3-5e346c3bb4da type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)
<IP_ADDRESS>:/ on /var/lib/kubelet/pods/54c775ea-a909-4811-b676-4f504b343d5c/volumes/kubernetes.io~nfs/pvc-703de151-7b89-4404-ab26-d11b1540a39a type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)
<IP_ADDRESS>:/ on /var/lib/kubelet/pods/9b3d5e2d-4544-4976-9b0d-28d737b7bd55/volumes/kubernetes.io~nfs/pvc-748d9915-84dc-4850-bb7b-0532b86d5944 type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<IP_ADDRESS>,local_lock=none,addr=<IP_ADDRESS>)

I will try with socketLB.hostNamespaceOnly=true and report back.

@brb Unfortunately even with socketLB.hostNamespaceOnly=true we're still having the same problem, so perhaps it's caused by a different issue?
You can reproduce it with the following:
#!/bin/bash
#
# Edit <backend-storageclass-name> to match your storageclass name, the backend storage
# should be accessible from both nodes, we use https://github.com/piraeusdatastore/piraeus for this purpose
#
# Edit <node1> and <node2> to match your node names

kubectl apply -f https://openebs.github.io/charts/nfs-operator.yaml

kubectl cordon <node2>

kubectl apply -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: new-storageclass
  namespace: default
  annotations:
    openebs.io/cas-type: nfsrwx
    cas.openebs.io/config: |
      - name: NFSServerType
        value: "kernel"
      - name: BackendStorageClass
        value: "<backend-storageclass-name>"
allowedTopologies:
- matchLabelExpressions:
  - key: kubernetes.io/hostname
    values:
    - <node1>
    - <node2>
provisioner: openebs.io/nfsrwx
reclaimPolicy: Delete
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
    volumeMounts:
    - mountPath: /nfs
      name: nfs
  restartPolicy: Always
  volumes:
  - name: nfs
    persistentVolumeClaim:
      claimName: nfs-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Mi
  storageClassName: new-storageclass
  volumeMode: Filesystem
EOF

kubectl uncordon <node2>
kubectl cordon <node1>

NFS_POD=$(kubectl -n openebs get all | grep 'pod/nfs-pvc' | awk '{print $1}')

kubectl -n openebs delete ${NFS_POD}

# Wait for the pod to be rescheduled

kubectl uncordon <node1>

kubectl -n default exec -it busybox -- ls /nfs

# This will hang indefinitely now, dmesg on the node will show the timeout:
# nfs: server <NFS SVC IP> not responding, timed out

ping @brb @aditighag would you be able to run the reproducer and let me know if it's reproducible?

Can you confirm that the NFS provisioner is running with

> kubectl -n openebs get all -o wide
NAME                                                               READY   STATUS    RESTARTS   AGE   IP             NODE           NOMINATED NODE   READINESS GATES
pod/nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f-f6d7b9f76-hvmfz   1/1     Running   0          40m   <IP_ADDRESS>   kind-worker2   <none>           <none>
pod/openebs-nfs-provisioner-66674b9b-9cf5w                         1/1     Running   0          40m   <IP_ADDRESS>   kind-worker    <none>           <none>

NAME                                                   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)            AGE   SELECTOR
service/nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f   ClusterIP   <IP_ADDRESS>   <none>        2049/TCP,111/TCP   40m   openebs.io/nfs-server=nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f

NAME                                                           READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS                IMAGES                            SELECTOR
deployment.apps/nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f   1/1     1            1           40m   nfs-server                openebs/nfs-server-alpine:0.9.0   openebs.io/nfs-server=nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f
deployment.apps/openebs-nfs-provisioner                        1/1     1            1           40m   openebs-provisioner-nfs   openebs/provisioner-nfs:0.9.0     name=openebs-nfs-provisioner,openebs.io/component-name=openebs-nfs-provisioner

NAME                                                                     DESIRED   CURRENT   READY   AGE   CONTAINERS                IMAGES                            SELECTOR
replicaset.apps/nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f-f6d7b9f76   1         1         1       40m   nfs-server                openebs/nfs-server-alpine:0.9.0   openebs.io/nfs-server=nfs-pvc-74970974-8d5d-419a-a416-ddc2a7828f4f,pod-template-hash=f6d7b9f76
replicaset.apps/openebs-nfs-provisioner-66674b9b                         1         1         1       40m   openebs-provisioner-nfs   openebs/provisioner-nfs:0.9.0     name=openebs-nfs-provisioner,openebs.io/component-name=openebs-nfs-provisioner,pod-template-hash=66674b9b

I ran the following:
cd cilium
./contrib/scripts/kind.sh '' 2 '' '' 'none'
cd ../cilium-cli
./cilium install --wait --rollback=false --config monitor-aggregation=none --helm-set-string=kubeProxyReplacement=strict --helm-set-string=tunnel=vxlan --version=v1.12.4

And then your nfs.sh with the following nodes:
set +ex

NODE1=kind-worker
NODE2=kind-worker2

@brb that's strange, kind-worker2 should have been cordoned so the nfs-pvc pod shouldn't have been scheduled on that node, perhaps we should have waited until the resources were ready, could you try the following?
#!/bin/bash
#
# Edit ${NODE1} and ${NODE2} to match your node names
#

NODE1=node1-name
NODE2-node2-name

kubectl apply -f https://openebs.github.io/charts/nfs-operator.yaml

kubectl cordon ${NODE2}

kubectl apply -f - <<EOF
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-local-pv
spec:
  capacity:
    storage: 10Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: my-local-storage
  local:
    path: /tmp
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - ${NODE1}
          - ${NODE2}
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: new-storageclass
  namespace: default
  annotations:
    openebs.io/cas-type: nfsrwx
    cas.openebs.io/config: |
      - name: NFSServerType
        value: "kernel"
      - name: BackendStorageClass
        value: "my-local-storage"
allowedTopologies:
- matchLabelExpressions:
  - key: kubernetes.io/hostname
    values:
    - ${NODE1}
    - ${NODE2}
provisioner: openebs.io/nfsrwx
reclaimPolicy: Delete
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - image: busybox
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
    volumeMounts:
    - mountPath: /nfs
      name: nfs
  restartPolicy: Always
  volumes:
  - name: nfs
    persistentVolumeClaim:
      claimName: nfs-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Mi
  storageClassName: new-storageclass
  volumeMode: Filesystem
EOF

echo "Waiting for pod to be created"
until [ "$(kubectl get all | grep 'pod/busybox' | awk '{print $3}')" = "Running" ]; do sleep 1; done

kubectl uncordon ${NODE2}
kubectl cordon ${NODE1}

NFS_POD=$(kubectl -n openebs get all | grep 'pod/nfs-pvc' | awk '{print $1}')

kubectl -n openebs delete ${NFS_POD}

echo "Waiting for pod to be rescheduled"
until [ "$(kubectl -n openebs get all | grep 'pod/nfs-pvc' | awk '{print $3}')" = "Running" ]; do sleep 1; done

kubectl uncordon ${NODE1}

kubectl -n default exec -it busybox -- ls /nfs

# This will hang indefinitely now, dmesg on the node will show the timeout:
# nfs: server <NFS SVC IP> not responding, timed out

I appear to also be facing this issue when hosting a nfs server with Service type LoadBalancer.

Is <IP_ADDRESS> reachable from kind-worker?

Noup. But this gives me a good hint what might be happening. I will comment in a bit.

@Rid When you hit the issue, was kube-proxy running?

@Rid When you hit the issue, was kube-proxy running?

No it was removed.

Can you provide the Cilium sysdump?

@Rid bump

Can you provide the Cilium sysdump?

I'm just setting up a cluster on digital ocean to test the reproducer outside of our setup. I will send you a message on Slack to provide you access.

Not sure if related but I'm running Longhorn & Cilium (also with kube proxy replacement) and RWX volumes don't seem to work. Note that Longhorn uses NFS for this, getting similar logs:
[20760.312153] nfs: server <IP_ADDRESS> not responding, timed out
[20765.435864] nfs: server <IP_ADDRESS> not responding, timed out
[20770.552228] nfs: server <IP_ADDRESS> not responding, timed out
[20807.420819] nfs: server <IP_ADDRESS> not responding, timed out
[20825.209258] nfs: server <IP_ADDRESS> not responding, still trying

We're having the same issue; existing mounts hang when the pod behind the service is replaced with a new pod with a different IP.
I've been looking into it with bpftrace, and I think the issue is that the sunrpc in xprtsock.c calls kernel_connect with a struct sockaddr that is actually a pointer into a long-living struct rpc_xprt. Some output below from my tracing:
[ The NFS-share is mounted. The service address is <IP_ADDRESS>, the pod is <IP_ADDRESS>. ]

sunrpc:
xs_connect: (xprt: 0xffff93f93abd6800) <IP_ADDRESS>
xs_tcp_finish_connecting: (xprt: 0xffff93f93abd6800) <IP_ADDRESS>

kernel:
kernel_connect: <IP_ADDRESS>
inet_stream_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>
tcp_v4_pre_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>
[ address presumably rewritten by cilium in cil_sock4_connect() ]
tcp_v4_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>

[ tcpkill and a result reconnect; note that xs_connect now uses the pod address directly ]

sunrpc:
xs_connect: (xprt: 0xffff93f93abd6800) <IP_ADDRESS>
xs_tcp_finish_connecting: (xprt· 0xffff93f93abd6800) <IP_ADDRESS>

kernel:
kernel_connect: <IP_ADDRESS>
inet_stream_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>
tcp_v4_pre_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>
tcp_v4_connect: (addr: 0xffff93f93abd6820) <IP_ADDRESS>

I don't know if this is a kernel bug (does sunrpc need to make a copy of the address?) or a case of cilium doing something that's not going to work.

@dhedberg That's interesting, do you have any idea where xprt is being updated to the pod IP.
When you're doing the tcpkill, has the pod already been replaced by a new one?
I have sent @brb the details to a test cluster which reproduces the issue, we're currently waiting for him to debug.

@Rid Yes, the issue is that there's only one copy of the address involved here. So any changes to this address will actually change the address in rpc_xprt.
My understanding is:

The final step in tcp_v4_pre_connect is a call to any bpf hooks, this calls cilium.

Cilium sees that the address (<IP_ADDRESS>) is a service address and rewrites it (in place) with an actual pod IP.

tcp_v4_connect is called with the rewritten address.

Any rewrite by cilium above directly changes the actual address inside the rpc_xprt struct. So the rpc client now effectively oses track of the service IP.
When we consequently force a reconnect by using tcpkill, the rpc client will reconnect using the only address it knows about, which is now the pod IP (see the second xs_connect). This means that cilium can no longer rewrite the service address to any new pod IP if that becomes necessary, since it won't see it.
I'm guessing that usually the address here is just a copy of something from userspace and can be rewritten without issue, but since the rpc client is part of the kernel it's able to pass a pointer directly to its internal data instead. This probably breaks an assumption made somewhere.

@dhedberg Have you confirmed using bpftrace that on an non-NFS pod, after the tcpkill, xs_connect is still using the service IP?

@Rid xs_connect is an NFS specific function, so you would have to dig for some other workload that uses kernel_connect (might be broken as well) or one that goes through the syscall.
I'm happy to do any further experiments if requested by a developer and of course happy to be corrected if my understanding is incorrect, but at the moment I feel fairly confident to leave it with the above :-)

@dhedberg Thanks for the explanation, would you mind sharing the source you used for the bpftrace? I'll test it on the cluster I setup for @brb, it may also help speed up debugging.

@Rid It's not pretty, but here are the relevant parts.

As a mitigation, would it be reasonable to skip socket LB for Service external IPs? It would be a less efficient datapath as the traffic would have to leave + re-enter the node before it gets load-balanced, but it should work for in-kernel clients.

Thanks @brb I was going to reopen this, is there any update regarding https://github.com/cilium/cilium/pull/25169 being merged? It looks like there's a couple of failing tests.

When not using kube-proxy-replacement the mount reconnects automatically and everything works again.

@Rid What configuration did you use with Cilium to get NFS to work? Did you disable kube-proxy-replacement by setting it to disabled or partial? Testing this locally with Cilium v1.12.6 and can't get NFS to reconnect no matter what I try.

@jrife I set kube-proxy-replacement to disabled and used IPVS, however you need to be mindful of another bug with IPVS: https://github.com/cilium/cilium/issues/18610
In order to overcome that issue we used a script which injects the additional iptables rules and is run on all nodes:
#!/bin/bash

CILIUM_HOST_IP=$(ip --json addr show dev cilium_host | jq -r '.[0].addr_info[0].local')

iptables -t nat -A CILIUM_POST_nat -o cilium_host -m mark --mark 0xf00/0xf00 -m comment --comment "hairpin traffic that originated from a local pod" -j SNAT --to-source "${CILIUM_HOST_IP}"
iptables -t nat -D CILIUM_POST_nat -o cilium_host -m mark --mark 0xf00/0xf00 -m conntrack --ctstate DNAT -m comment --comment "hairpin traffic that originated from a local pod" -j SNAT --to-source "${CILIUM_HOST_IP}"

iptables -A CILIUM_OUTPUT -m mark ! --mark 0xe00/0xf00 -m mark ! --mark 0xd00/0xf00 -m mark ! --mark 0xa00/0xe00 -m mark ! --mark 0x800/0xe00 -m mark ! --mark 0xf00/0xf00 -m comment --comment "cilium: host->any mark as from host" -j MARK --set-xmark 0xc00/0xf00
iptables -D CILIUM_OUTPUT -m mark ! --mark 0xe00/0xf00 -m mark ! --mark 0xd00/0xf00 -m mark ! --mark 0xa00/0xe00 -m mark ! --mark 0x800/0xe00 -m comment --comment "cilium: host->any mark as from host" -j MARK --set-xmark 0xc00/0xf00

I haven't had time recently, but it might be worth compiling and testing https://github.com/cilium/cilium/pull/25169 to see if it also fixes this issue?

@Rid Looks like I'm running kube-proxy in iptables mode. I deployed kube-proxy and setting kube-proxy-replacement to disabled, but found that I needed to reboot my nodes before NFS reconnects worked as I wanted them. Before rebooting all my nodes, I tried restarting Cilium agents, restarting my NFS client pod, etc. but nothing worked until I rebooted my nodes. I'm assuming some other state or config was cleared by the reboots but not sure what.

This kernel patch fixes the issue.

This kernel patch fixes the issue.

@jrife Nice find! I had a question around the NFS application: does it try to re-connect on an existing socket when remote connectivity breaks? On a related note, cilium intercepts some of other socket calls such as getpeername and bind, so I wonder if this logic in cilium BPF programs suffices - https://github.com/cilium/cilium/blob/main/bpf/bpf_sock.c#L639?

@aditighag Yes, I found that reconnect attempts are made when the remote connectivity breaks.

I wonder if this logic in cilium BPF programs suffices, or are there cases where your kernel patch would have to be extended for these sockets calls?

I actually drafted an earlier patch that performs an address copy for both kernel_sendmsg and kernel_bind, as in theory they could have the same issue. However,  I ended up not including these in my patch because there weren't any obvious scenarios that I could test that would be broken.

@aditighag Yes, I found that reconnect attempts are made when the remote connectivity breaks.

I wonder if this logic in cilium BPF programs suffices, or are there cases where your kernel patch would have to be extended for these sockets calls?

I actually drafted an earlier patch that performs an address copy for both kernel_sendmsg and kernel_bind, as in theory they could have the same issue. However, I ended up not including these in my patch because there weren't any obvious scenarios that I could test that would be broken. The challenge with testing these calls is that you can't call them directly from user space, so I'm limited to code paths reachable by using features from user space. For example, testing the change to kernel_sendmsg isn't possible with NFS, because the NFS client code doesn't use the msg_name field in msg even when operating in UDP mode.
AFAIK the kernel equivalent to getpeername isn't at risk, because the address parameter is supposed to be set by the call.

Sounds good, thanks for the clarifications and for taking up this issue! Once your patch lands in mainline I can ping Greg for stable inclusion. I think the one thing left on Cilium side is to document that the restriction is lifted with your patch, I can send a small doc change PR and then we should be able to close the GH issue.

@borkmann Looks like the patch was merged into mainline today, albeit during the merge window not yet in a release.

I discovered this problem exists with SMB mounts as well due to this code:
	rc = socket->ops->connect(socket, saddr, slen,
				  server->noblockcnt ? O_NONBLOCK : 0);

which skips kernel_connect() completely and just calls socket->ops->connect(). I tested a patch that fixes the issue by calling kernel_connect instead to make sure saddr doesn't get overwritten:
	rc = kernel_connect(socket, saddr, slen, server->noblockcnt ? O_NONBLOCK : 0);

I'll send this upstream and work on backporting it. Similar code exists (socket->ops->connect()) in the Ceph driver, but I wasn't able to break Ceph yet (testing with Rook).

I discovered this problem exists with SMB mounts as well due to this code:
	rc = socket->ops->connect(socket, saddr, slen,
				  server->noblockcnt ? O_NONBLOCK : 0);

which skips kernel_connect() and just calls socket->ops->connect(). One way to fix it is with this patch:
	rc = kernel_connect(socket, saddr, slen, server->noblockcnt ? O_NONBLOCK : 0);

However, there are a lot of other places in the kernel (Ceph driver included) where a raw call to socket->ops->connect() exists, and it's not clear which of these might break when using Cilium. A better solution would be to push the address copy downward a bit in the stack from kernel_connect to where pre_connect() is called:
net/ipv4/af_inet.c:

inet_dgram_connect
inet_stream_connect

net/mptcp/protocol.c:

mptcp_connect

Otherwise it will just turn into a game of whac-a-mole. This does lead to an unnecessary address copy in cases where the code path is reached from sys_connect(), but it doesn't seem like this would have an appreciable performance impact.
FYI @borkmann

This patch series was merged into mainline today which addresses similar issues with the kernel_bind(), kernel_sendmsg(), and sock_sendmsg() in kernel space. I'm following up with several patches to various subsystems such as Ceph, and SMB so that they use these safe versions of kernel_bind() and kernel_connect() instead of raw calls to ops->connect() and ops->bind().


Godot 4: a click on an animation name can paste name of animation previously renamed on SpriteFrames

Godot version
v4.0.dev.calinou [4f298237b]
System information
Windows 10 64bit - Vulkan API 1.2.141 - GeForce GTX 1660 SUPER
Issue description
A video is better than words:
https://user-images.githubusercontent.com/2736557/145475667-801433e3-da17-419c-b772-ee86010ec23e.mp4
Note: I only use mouse to perform this bug (I'm not pasting anything with my keyboard).
Godot 3.4 and 3.4.1-rc2 are not affected by this bug. All official builds are affected.
Steps to reproduce

Go to SpriteFrames menu
Create an animation named "a"
Create an animation named "b"
Double click on "a" for editing the name
Click on "b"
"b" should be renamed "a 1"

Minimal reproduction project
bug-click-animation-name.zip

The bug concerns Tree node itself (not only SpriteFrames)

Looks like #42419, except the "tree" in SpriteFrames editor is an ItemList.

I think I already know about the cause of this problem. Similar to #60842.
https://github.com/godotengine/godot/blob/296c8b74f22172225946b4cd100f818234e8aa35/editor/plugins/sprite_frames_editor_plugin.cpp#L894
In this method, the entire tree is rebuilt. And this method may be called for a small change.

Cannot reproduce on master. Seems to have been fixed somewhere?
https://user-images.githubusercontent.com/1133892/202018119-8f23cd05-ef63-40a8-a447-043464777ff0.mp4

Thanks for testing! Closing.

Sorry, this issue doesn't seem to be resolved yet.
https://user-images.githubusercontent.com/30386067/202041870-67d0bf11-c6ad-48ab-96c1-a31b85f1cb19.mp4

I'm recompiling right now to test again, but it looks like you may have double-click selected the name and dragged it onto the other animation name?

Ok, here are some more details.
If you select a node, enter rename mode, then click some other node after a bit of time has passed, the bug does not occur.
If you double-click a node and immediately after click another node, the second node will become "selected". You can see it because it becomes highlighted. In that situation, clicking again anywhere will rename the last node selected.

It seems that the results returned by Tree::get_edited() and Tree::get_selected() are inconsistent.


[Tests] Yeoman tests are flaky (specifically generator-test and generator-android-test)

These tests sometimes fail on Travis and on my local machine as well. My suspicion is that it has to do with how the tests are scheduled since the generator tests write to a temporary directory on disk, and the Yeoman APIs are global so maybe there isn't good isolation between tests (there is one assert.file function that somehow knows what the current temp dir is).
Perhaps we should disable these tests for now, or run the local-cli tests separately from the JS tests and mark them as "allowed to fail" in Travis.

I also noticed the Podfile test failed on my local machine when running the jest tests in-band. I believe we should look into mocking "fs" if that's possible.

Thanks for reporting!

Sure thing. A couple other things I observed were:

The waitsFor block in the tests seems to be completing successfully. I didn't see it time out, and I also didn't see "error" events from the Yeoman RunContext (we get only "end" events).
There is some code to silence some noisy console.log calls in the tests. I copied it over to generator-android-test.js and it fixed the noisiness but the test still sometimes failed.

Example of a failed test run: https://travis-ci.org/facebook/react-native/jobs/81832471

Looks like we're using Yeoman tests correctly: http://yeoman.io/authoring/testing.html
Maybe we're not using waitsFor correctly, still reading the code.

The tests not being isolated properly sounds like a reasonable explanation as well. Does npm test run tests in parallel?

It looks like the tests run sequentially when I run them locally.

One way to debug this would be to add logging to the tests and check output on Travis.

Jest will spawn child processes for each test file, but I believe the specs within each file run sequentially.

One way to debug this would be to add logging to the tests and check output on Travis.

I looked into that and saw that beforeEach -> spec 1 -> beforeEach -> spec 2 -> etc... so it seemed like the specs would run sequentially. The fact that the tests are flaky made me think it had to do with scheduling though.

Maybe we're not using waitsFor correctly, still reading the code.

I think waitsFor is fine and the timeout message is never printed. We probably don't need the runAllTicks/Timers calls though because auto-mocking is disabled.

Note: after the tests are more reliable we should delete allowed_failures from .travis.yml: https://github.com/facebook/react-native/blob/master/.travis.yml#L74

:+1: Thanks for the "fix"! :)
Asked whether Yeoman tests can be run in parallel here: http://stackoverflow.com/questions/32751180/can-yeoman-tests-be-run-in-parallel

Turns out the Yeoman tests rely on changing the current working directory. Therefore they can't be run in parallel: http://stackoverflow.com/questions/32751180/can-yeoman-tests-be-run-in-parallel/32751527

Nice find :) We could manually mock out fs and process.chdir, which is called here: https://github.com/yeoman/generator/blob/master/lib/test/helpers.js#L87. I do worry about the chdir call having side effects that we have not anticipated.

Yes just saw that line too and was thinking of how to avoid it. Since run creates a temp folder, we could simply replace all our assets to check that test folder, instead of using Yeoman's assert. Although I think that a simple in-memory fs would be nicer than having to actually write to disk and then read from it.

Or we could just tell Jest to run the only CLI tests sequentially and remove allowed_failures.

I'd prefer we try to get the mock fs + process.chdir working, and if that fails then run the CLI tests sequentially because there is a measurable perf improvement with the parallelism on my machine (2~3x I think) .
For in-memory fs, webpack has one that it has used for quite awhile: https://www.npmjs.com/package/memory-fs

Cool, can give it a try tomorrow unless you're faster while I'm asleep :)

OK. I probably won't get around to it but am happy to review if you'd like an extra pair of eyes on it.

kk

Yeah, we should aim at mocking the things that are clashing and make sure each test can be run safely in isolation. Let me know if you need any help @mkonicek.

Hmm, how has this only now started to happen? Did something change in Jest? Did tests use to run sequentially? It's weird because these tests were stable for a long time, and the tests themselves haven't changed.
Perhaps an easier fix than mocking fs would be to simply change these tests to use different name arguments for the generator (e.g. TestAppIOS, TestAppAndroid, TestApp), this way they shouldn't overwrite each other in the temp dir. Thoughts?

Talked to @foghina, the right solution is to submit a PR to Yeoman. Mocking fs won't help, the key thing to mock would be os.chdir but Yeoman relies on it too much.
As a quick fix we'll put the tests in a single describe so they run sequentially.

What about what @foghina said and using a different name for the generator? That seems smarter.

#3000 (different names) seems to be working well. If we see more failures in the future let's revisit this issue then.


Can't manage inbox relays

I'm noticing a problem with my relay management in Coracle - I have two relays extra that I'm pretty sure I did not add: wss://relay.0xchat.com and wss://auth.nostr1.com. Both of them are set as Inbox relays, and are the only ones that are like that. When I try to leave these relays nothing happens.
Also wss://auth.nostr1.com has been down consistently so I always have a orange dot on the relays menu warning me about it.

#428

This should actually be fixed in the next release. I'm not sure where the relays are coming from, but the problem with removing them is due to failing to normalize urls before comparing them.

is this fix in the last welshman version @staab ?

It was in engine/commands: fb00f51d5a83b062c844aa011a3229b0ba6a6540


Added litreview2 for that beruberufunbot guy

(late :disappointed: )

Better late than never :clock1130:
Only one day late


[WIP] Load cloud build images into bazel docker daemon

Would love feedback on this PR. I am still going through the documentation on how to test these builds with Bazel.

Ignore this PR.


Support single table design

We currently have the problem where an Entity is coupled to a DynamoDB Table. This puts all the burden of single table design on the user because our framework does not help with mapping pk/sk attributes for developers, so the only way currently is to use a union type and manage the pk/sk yourself.
It would be better if our framework provided a pattern for this.
I propose we decouple entity from DynamoDB and introduce a new store primitive.

entity - is a schema (a data type) that can be stored in a store. it has its own pk/sk configuration.
store - is a polymorphic table containing one or more entity types within.

export const User = entity("User", {
  attributes: {
    userId: z.string(),
    userName: z.string()
  },
  partition: ["userId"],
});

export const Friend = entity("Friend", {
  attributes: {
    userId: z.string(),
    friendId: z.string()
  },
  partition: ["userId"],
  sort: ["friendId"]
})

export const userStore = store("UserService", {
  entities: [
    User,
    Friend
  ]
});

Queries are executed against the store. We can include the data type always in the key to enable a nice polymorphic, type-narrowing experience.
await userStore.query({
  // query all Friends
  type: "Friend",
  userId: "<user-id>",
});

Indexes are configured on the store, but depending on the attributes specified
// create an index to be able to query users who are friends with someone
const usersWithFriend = userStore.index("usersWithFriend", {
  // narrow only to the Friend type
  type: "Friend",
  partition: ["friendId"],
  sort: ["userId"]
});

TODO: what about indexes on more than one type?
// Option 1 - specify a list of type names
userStore.index("usersWithFriend", {
  type: ["User", "Friend"],
});

// Option 2 - omit it to mean all types
userStore.index("usersWithFriend", {
  // ..
});

// Option 3 - pass a reference to the entities themselves
userStore.index("usersWithFriend", {
  type: [User, Friend],
});

Perhaps collection instead of store?


Reading Introduction Page is not in Yellow Bubble

https://jlpteaching.github.io/comparch/modules/introduction/intro/
On this page, the reading for the 201A class is not in the yellow bubble.

Thanks for letting me know. Fixed now!


GetBlockTemplate no longer works

Hi there,
Since Bitcoin 0.13.1 (segwit), the getblocktemplate() method no longer returns anything.
I think this is due to the fact that you now need to specify a rule when calling getblocktemplate. For example, if you call:
bitcoin-cli getblocktemplate
You get this error:
error code: -8
error message:
Support for 'segwit' rule requires explicit client support

To get it working, you have to pass a rule like this as an extra argument, like so:
bitcoin-cli getblocktemplate '{"rules":["segwit"]}'
I'm trying with this:
CoinService.GetBlockTemplate("'{\"rules\":[\"segwit\"]}'")
but the result is:
"{\"result\":null,\"error\":{\"code\":-1,\"message\":\"JSON value is not an object as expected\"},\"id\":1}\n"
Is there any way to pass this argument to the CoinService.GetBlockTemplate() method to get it working again?

@idt-byte, thank you for reporting this 👍 I apologize for the delay, I hope @Sword-Smith can look into this (as per #116). Let’s give @Sword-Smith 3 days to respond.

Looking into it

Against my 0.19.1 Bitcoin Core node, this call works:
var blockTemplate = CoinService.GetBlockTemplate( new { rules=new List<string> { "segwit" } });

So by supplying the parameters as an anonymous you should be able to get the call to work. If you think the interface should work differentely, let me know.

Closing this as it works and the interface in my opinion is OK


DISTINCT clause fix

Hi,
I've found that SelectTable#distinct(...) method is implemented incorrectly - here is my fix for that (+ version for 2 columns).

@jaceksokol Many thanks for your contribution!


update pypcode to use version >2.0.0

Quokka was enforcing pypcode<2, but a new version 2.0.0 was released. This merge request updates the pypcode part to use the latest version. The following things have changed.

ContextObj is no longer exposed
Context.translate, returns a TranslationResult which sole attribute is directly a list of PcodeOps. No more instructions

This merge request changes the following:

change ContextObj to Context object.
remove combine_instructions() as translating a block returns directly a list of PcodeOps
remove the equality and object_hash monkey patching. Its was problematic to port, and not sure it was really useful ? And used for ? (ping @DarkaMaul )

Shall be prooftested before merging...

remove the equality and object_hash monkey patching. Its was problematic to port, and not sure it was really useful ? And used for ? (ping @DarkaMaul )

I think it was used to be able to create dict of instructions and/or allow them to be cached.

I force-pushed to rebase it on the current main.
I also change the requirement from pypcode >= 1.1.1 to >= 1.1.2
Just FYI pypcode now is marked as an optional dependency (so install it with pip install quokka-project[pypcode])

I think changes I made breaks the backward compatibility with older versions of pypcode. Thus we need to enforce pypcode>=2.0.0.
Was the dependency optional previously ? If not I would prefer to leave it as mandatory for ease of use.

I think changes I made breaks the backward compatibility with older versions of pypcode. Thus we need to enforce pypcode>=2.0.0.

Ah sorry, I thought the requirement was for >= 1.1.2

Was the dependency optional previously ? If not I would prefer to leave it as mandatory for ease of use.

It has been optional since https://github.com/quarkslab/quokka/commit/fe701ba20e908c298f79c8f74d754a4cf9e19c5d

Ready to be merged on my side.


remove covid from student checkin

remove covid from checkin. can remove other covid restriction information.

Issue was created from comment in board meeting. Don't see COVID in check-in process. Removed  COVID policy from class registration.


Bubble Sort in Dart

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Code for sorting a list using Bubble Sort technique
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Repl link :-<EMAIL_ADDRESS>Related Issues or Pull Requests
Fixes #4297
(Write your answer here.)

I have made the necessary changes and also added a repl link for the code incase someone wants to test it out.


Database schema problem

Hi,
I am trying to run the demo . I having an error with my database schema . I am able to receive data at the /recieve_data method and it returns a 200. But when I go into my DB no records have been added.
Find here my CREATE TABLE statement.
CREATE TABLE users (
    id serial PRIMARY KEY,
    name            VARCHAR(50) NOT NULL,
    date            DATE NOT NULL,
    arrival_time    TIME ,
    departure_time  TIME,
    arrival_picture VARCHAR(255),
    departure_picture   VARCHAR(255)

);

This is the output of the app.py which returns a 200 for all requests.
(venv) (base) backend$ python app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 239-480-892
user OUT
<IP_ADDRESS> - - [24/Jan/2021 18:00:31] "POST /receive_data HTTP/1.1" 200 -
user OUT
<IP_ADDRESS> - - [24/Jan/2021 18:00:49] "POST /receive_data HTTP/1.1" 200 -
<IP_ADDRESS> - - [24/Jan/2021 18:13:53] "GET /get_5_last_entries HTTP/1.1" 200 -

This is the error I get when I curl /get_5_last_entries.
curl http://<IP_ADDRESS>:5000/get_5_last_entries
{
  "error": "error detect"
}

If you could let me know how you created your DB. It would be of great help.

Hey @gonwi , I need your help regarding this project.
Please reach me out at<EMAIL_ADDRESS>Thank You


Allow to be included into NodeJS without breaking

Expected Behavior
Should be able to require/import Croppie from any environment, not just from inside a browser, safely.
Actual Behavior
When required/imported from a non-browser environment, Croppie does it's initialization which expects browser specific features (like window, document, HTMLCanvasElement, etc.) to be present and just crashes if they are not.
Why would anyone want this
While Croppie is obviously only meant to be used within a browser, it is often useful to be able to run your client-side code to (pre)render your app server-side - maybe for user experience, maybe for SEO, maybe because you just feel like it ...
It is perfectly fine if Croppie won't actually work under such an environment, 'cos it can easily be not run when such an environment is detected, but it is a problem if Croppie throws errors when just being included.
As is, just importing Croppie:
import croppie from 'croppie';

... will break execution of the intire script importing it, and there is no (elegant) way to conditionally work around importing Croppie based on detected environment.
Steps to Reproduce the Problem

Require Croppie from a NodeJS program:const croppie = require('croppie');
console.log('Works!');

Run program ...

Suggested sulution
Instead of just throwing errors when environment is missing required feature, during initialization (upon being required/imported) check for those features and only use them if found. This way, requiring/importing Croppie in any environment will be possible ...
Specifications

Browser: Any non-browser environment; most probably, NodeJS
Version: Any

Related issues
Partially related, but more specific than #455

I've pushed a suggested fix here: PR #657


Suggestions for website

Hey @duckness, great work on the site, I just had a few suggestions (which perhaps I could do a PR for if you agree to them).

Allow a light/dark mode toggle

The current background probably won't be everyone's favourite, and I personally don't like the particular tint is has. Nonetheless if it had a light mode it would be a lot more neutral and appealing.

Have an easily accessible navigation to each item in a category.

By default, the Mask of Goblin sends everyone to Kasel's particular page, which only has a search to the top right and no other obvious navigation.
Same applies to the Artifacts. (Perhaps they could be populated on the same page since they aren't as detailed?)

Possibly split hero pages into Attributes and Skill Details via an easily accessible tab to reduce scrolling.

This one isn't as necessary since there is a pretty useful navigation to the top left of the hero section.

Highlight values that change when stats are modified

It would be easier to see values that are modified when leveling up or increasing transcendence levels by putting them bold, giving them a unique color and/or adding a background color.

Those are my main ideas to help improve this project. I'm willing to make PRs for most/all of these as long as you want them to be added.
Thanks

light/dark mode

Sure.

Navigation

I agree it needs some work. I can't think of a good way to do it while making it not look terrible though. I  can't show all the images on one page as I'm trying to reduce bandwidth usage (Netlify is complaining about bandwidth).

Splitting attributes

Navigation wise, I'd prefer to keep them all on the same page instead of separating them. I do agree that scrolling might be an issue, which is why I have been hesitant to add extra stuff like the hero stories and inn lines even though they are already in the .json files

Highlight values that change when stats are modified

Currently, the strings for UW/UT/Artifacts are stored rather inefficiently, needing the full string per star (unlike skills). This stems from the fact that I'm just extracting the strings directly from the game files. It is difficult to automate extracting the change in values as Vespa sometimes leave typos in them (e.g., Frey 5* UW used to say 1050% atk), and sometimes the phrasing for different stars are also different. The fact that there are multiple languages also compound the issue. So changing it at the source is not a good idea.

Thanks for the quick reply, I only have one other suggestion to your feedback.

For navigation you could simply have a vertical menu with text links to each hero/artifact. Images would be largely unnecessary for that purpose.

I'll consider forking and working on the features agreed to once I have some spare time.

For navigation you could simply have a vertical menu with text links to each hero/artifact. Images would be largely unnecessary for that purpose.

I'll think of something for the navigation.

I'll consider forking and working on the features agreed to once I have some spare time.

The offer is appreciated but not necessary, feel free to bug me again if I don't finish the navigation thing and the themes in a week from now.

Ok sounds good 👍 looking forward to it.

Navigation looks like this for now, I'll work on themes next.

ok, I'm too dumb/lazy to make custom theming work, I'll switch to a more neutral looking (IMO) dark theme.

Artifact menu will come later, think I want to manually map artifacts into standard/event/GC/WB categories

Looks great so far! I like the menu arrangement, quite easy to find each hero..