feat: DNSSEC Validation

resolves #441
Purpose
Adds support for validating DNSSEC records up to the root's chain-of-trust
The level of detail in the validation results depends on the --result-verbosity= flag. In the short mode, validation results are not output (equivalent to no validation). In the normal mode, only the overall validation status is output. In the long mode, all relevant records used for validating this specific result (DS, DNSKEY, RRSIG) and the validation results for each individual RRset are printed. In the trace mode, all validation details for the entire query chain are available along the trace.
Since we are a DNS scanning tool, the resolution results may still hold value even in cases of DNSSEC validation failure. Therefore, a validation failure does not lead to a resolution failure - i.e., the resolution results will still be output normally. It is the responsibility of data consumers to check the DNSSEC validation status before using the results.
Example usage:
go run . A example.com --iterative --validate-dnssec --result-verbosity=long

Example output (long):
{
    "class": "IN",
    "name": "example.com",
    "results": {
        "A": {
            "data": {
                "answers": [
                    {
                        "answer": "<IP_ADDRESS>",
                        "class": "IN",
                        "name": "example.com",
                        "ttl": 3600,
                        "type": "A"
                    },
                    {
                        "algorithm": 13,
                        "class": "IN",
                        "expiration": "20241206041826",
                        "inception": "20241115121713",
                        "keytag": 60915,
                        "labels": 2,
                        "name": "example.com",
                        "original_ttl": 3600,
                        "signature": "vRP5fmIUOIHdIXJsnFkSLYL84OEh4isvOeIkPdGR1Ro+YUs4tTNO6J3ajnDvcIZfc5p+j8R35Z/SOOqD9ZY95w==",
                        "signer_name": "example.com.",
                        "ttl": 3600,
                        "type": "RRSIG",
                        "type_covered": 1
                    }
                ],
                "dnssec": {
                    "additionals": [
                        {
                            "error": "",
                            "rrset": {
                                "class": 4096,
                                "name": ".",
                                "type": 41
                            },
                            "sig": null,
                            "status": "Insecure"
                        }
                    ],
                    "answer": [
                        {
                            "error": "",
                            "rrset": {
                                "class": 1,
                                "name": "example.com.",
                                "type": 1
                            },
                            "sig": {
                                "algorithm": 13,
                                "class": "IN",
                                "expiration": "20241206041826",
                                "inception": "20241115121713",
                                "keytag": 60915,
                                "labels": 2,
                                "name": "example.com",
                                "original_ttl": 3600,
                                "signature": "vRP5fmIUOIHdIXJsnFkSLYL84OEh4isvOeIkPdGR1Ro+YUs4tTNO6J3ajnDvcIZfc5p+j8R35Z/SOOqD9ZY95w==",
                                "signer_name": "example.com.",
                                "ttl": 3600,
                                "type": "RRSIG",
                                "type_covered": 1
                            },
                            "status": "Secure"
                        }
                    ],
                    "authoritative": [
                        {
                            "error": "",
                            "rrset": {
                                "class": 1,
                                "name": "example.com.",
                                "type": 2
                            },
                            "sig": {
                                "algorithm": 13,
                                "class": "IN",
                                "expiration": "20241206020003",
                                "inception": "20241115121713",
                                "keytag": 60915,
                                "labels": 2,
                                "name": "example.com",
                                "original_ttl": 86400,
                                "signature": "9W8bAJT/4vA3nH8QU/NeM1n8bZZWn5PBkN26ix827VQGWY0YdMniks/1YCIaVNl16xly4s5IsVDtI9rLvaZORw==",
                                "signer_name": "example.com.",
                                "ttl": 86400,
                                "type": "RRSIG",
                                "type_covered": 2
                            },
                            "status": "Secure"
                        }
                    ],
                    "dnskey": [
                        {
                            "algorithm": 13,
                            "class": "IN",
                            "flags": 256,
                            "name": "example.com",
                            "protocol": 3,
                            "public_key": "ai2pvpijJjeNTpBu4yg6T375JqIStPtLABDTAILb+f4J7XpofUNXGQn6FpQvZ6CARWn2xQapbjGtDRjTf4qYxg==",
                            "ttl": 3600,
                            "type": "DNSKEY"
                        }
                    ],
                    "ds": [
                        {
                            "algorithm": 13,
                            "class": "IN",
                            "digest": "be74359954660069d5c63d200c39f5603827d7dd02b56f120ee9f3a86764247c",
                            "digest_type": 2,
                            "key_tag": 370,
                            "name": "example.com",
                            "ttl": 3600,
                            "type": "DS"
                        }
                    ],
                    "status": "Secure"
                },
                "flags": {
                    "authenticated": false,
                    "authoritative": true,
                    "checking_disabled": false,
                    "error_code": 0,
                    "opcode": 0,
                    "recursion_available": false,
                    "recursion_desired": false,
                    "response": true,
                    "truncated": false
                },
                "protocol": "udp",
            },
            "duration": 1.072630625,
            "status": "NOERROR",
        }
    }
}

Example output (normal):
{
    "name": "example.com",
    "results": {
        "A": {
            "data": {
                "answers": [
                    {
                        "answer": "<IP_ADDRESS>",
                        "class": "IN",
                        "name": "example.com",
                        "ttl": 3600,
                        "type": "A"
                    },
                    {
                        "algorithm": 13,
                        "class": "IN",
                        "expiration": "20241206041826",
                        "inception": "20241115121713",
                        "keytag": 60915,
                        "labels": 2,
                        "name": "example.com",
                        "original_ttl": 3600,
                        "signature": "vRP5fmIUOIHdIXJsnFkSLYL84OEh4isvOeIkPdGR1Ro+YUs4tTNO6J3ajnDvcIZfc5p+j8R35Z/SOOqD9ZY95w==",
                        "signer_name": "example.com.",
                        "ttl": 3600,
                        "type": "RRSIG",
                        "type_covered": 1
                    }
                ],
                "dnssec": {
                    "status": "Secure"
                },
                "protocol": "udp"
            },
            "duration": 0.803631958,
            "status": "NOERROR"
        }
    }
}

[x] Implement error status handling according to RFC 4035, Section 4.3
[x] Ensure proper handling of non-secure cases
[x] Share retries
[x] Address all linter issues
[x] Limit DNSSEC to iterative mode only?
[x] CLI option

Additionally, let's add integration tests to integration_tests.py for positive/negative test cases, as defined here
https://www.internetsociety.org/resources/deploy360/2013/dnssec-test-sites/

I conducted another round of tests on the top 10k domains, and the results aligned closely with Cloudflare, with a few explainable non-alignments remain:

Domains under the .my TLD:
These cannot be verified by us because they use an oversized RSA exponent that Go does not support. This issue is documented here: https://github.com/golang/go/issues/3161. As discussed with @phillip-stephens, we agree that per RFC 4033, this should be classified as bogus.

Specific domains (www.correoargentino.com.ar, xskt.com.vn, and futbollibrehd.pe):
Cloudflare flagged these as bogus due to their inability to establish Secure Entry Point (SEP). Upon reviewing DNSViz, it appears these domains use NSEC3 records with iterations > 0, which is non-compliant with RFC9276. Cloudflare likely ignored these NSEC3 records, rendering them unable to confirm the non-existence of DS records.
Since we are not a publicly facing recursive resolver and are not exposed to the risk of DoS attacks from this, I decided that we would continue to validate these NSEC3 records while printing a log: 9f7d8913ef1e5af17151c80f74d2c26ab4034452.

I'm comfortable with the shape of this PR now. Feel free to start reviewing @phillip-stephens @zakird.

Re 1: This might be worth fixing in ZCrypto and using that. I think that we can leave this however as a FR and merge in any case.


EPSON TM-U220 Issue

I use  [ESC-POS-.NET) primary with thermal printers but some users still uses imact printers such  TM-U220 It prints but images does not print properly and each printing lines are split into two lines.
Definitelly must I don't use [ESC-POS-.NET] with this printers?

I'm familiar with impact printers but haven't tried the library with them. I believe it should work though. Try legacy image printing mode. Try the console.test app included with the source and see what does and doesn't work and report back!

Hi, I tryed adjusting width from 48 t0 40 chars and now it prints properly the text. But still having problems with logo.
Yes I tryed legacy mode, and when I change isHiDPI to false logo does not print!!!

Can I print flashed logo with ESC-POS.NET?

What do you mean by flash logo?  Provide more information and I will try best to help you

Epson printers has a feature that allow me to store the logo on it's flash memory
https://www.epson-biz.com/modules/pos/index.php?page=single_soft&cid=2346
This allow me whe use the driver to config if it prints before / after any print job. but with oPos does not work .
My question is about if ican send an oPos command to force the printer to print this logo, because with the TM-U220 model logo does not print properly.

I will check it out and come back to you by next Thursday


operator: fix panic for non existing CEPs

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x118 pc=0x1dcb219]
goroutine 161 [running]:
main.enableUnmanagedKubeDNSController.func1(0x28aa1a0, 0xc00069e880, 0x3d3d0a0, 0xd9fc43ebeec50347)
	/go/src/github.com/cilium/cilium/operator/k8s_pod_controller.go:67 +0xa69
github.com/cilium/cilium/pkg/controller.(*Controller).runController(0xc000789a00)
	/go/src/github.com/cilium/cilium/pkg/controller/controller.go:205 +0xa2a
created by github.com/cilium/cilium/pkg/controller.(*Manager).updateController
	/go/src/github.com/cilium/cilium/pkg/controller/manager.go:120 +0xb09

Fixes: 26e74511a8dc ("operator: use watcher to track unmanaged pods")
Reported-by: Tobias Klauser<EMAIL_ADDRESS>Signed-off-by: André Martins<EMAIL_ADDRESS>

test-me-please

Travis hit flake https://github.com/cilium/cilium/issues/11560. This time it looks like the amount of errors have been reduced, most likely due to https://github.com/cilium/cilium/pull/11685/commits


Show previews of ANFPad in the readme file

Addressing #17.
Some preview images showing the different themes and the markdown renderer.

Alrighty then

Alrighty then

Formatted.

Formatted.


IGNITE-22753 Sql. TestCluster, NPE eventually raised on mocked structure

Thank you for submitting the pull request.
To streamline the review process of the patch and ensure better code quality
we ask both an author and a reviewer to verify the following:
The Review Checklist

[ ] Formal criteria: TC status, codestyle, mandatory documentation. Also make sure to complete the following:
- There is a single JIRA ticket related to the pull request.
- The web-link to the pull request is attached to the JIRA ticket.
- The JIRA ticket has the Patch Available state.
- The description of the JIRA ticket explains WHAT was made, WHY and HOW.
- The pull request title is treated as the final commit message. The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
[ ] Design: new code conforms with the design principles of the components it is added to.
[ ] Patch quality: patch cannot be split into smaller pieces, its size must be reasonable.
[ ] Code quality: code is clean and readable, necessary developer documentation is added if needed.
[ ] Tests code quality: test set covers positive/negative scenarios, happy/edge cases. Tests are effective in terms of execution time and resources.

Notes

Apache Ignite Coding Guidelines

@lowka i make a trivial fix, can you make a review plz ?


bun: 1.0.36 -> 1.1.0

Description of changes
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

@thilobillerbeck Sure thing! I'll change the PR title to 'bun: 1.0.36 -> 1.1.0'. Thanks for the suggestion and for pointing out the mistake.


Add context module for aboutThisAuction

adding this contextModule since this is a place from which you can tap 'register to bid'

:rocket: PR was released in v1.49.0 :rocket:


Allow template file to be read from stdin

Hi again,
I noticed that you can pass in vars via stdin, but I was wondering if it might be possible to allow templates to be passed in via stdin too?
On a very basic level my use-case is something like this (I can dive more into why this would be nice if you want me too but it basically has to do with dynamic files and getting the output into a template that jinjanate can process)
cat template.yaml.j2 | jinjanate template -

or
export FOO=bar; echo "{{ env('FOO') }}" | jinjanate template -

This would be useful for when you already have variables defined in the environment.

I could see this as a challenge since you already allow the data to be passed into stdin so it would hard to distinguish which is being passed in unless you create a new arg.

Maybe something like this could work?
export FOO=bar; echo "{{ env('FOO') }}" | jinjanate template --from-env -

I came across a project which supports this feature, looks like a rust implementation of this tool. I'll go ahead and close this issue, feel free to reopen if it's something you feel is wanted in this project.
https://github.com/mitsuhiko/minijinja/tree/main/minijinja-cli


Rework azure rate limit retry logic and add chunking

Description of Change
fixes #1058

[X] added max retries and logging with hint on how to fix
[X] added support for "day based chunking" of Azure requests to handle large requests, that would otherwise result in an infinite loop
[X] added config option to turn on chunking and set chunk size in days

Checklist

[X] PR description included and stakeholders cc'd
[x] tests are changed or added
[x] yarn test passes
[X] yarn lint has been run
[X] git pre-commit hook is successfully executed.
(Please refrain from using --no-verify)
[x] yarn changeset was run and relevant packages have been updated as a major/minor/patch bump with descriptions
(Determine version update using Semantic Versioning)
[ ] relevant documentation is changed or added

Notes
Additional information relevant to the changes
© 2021 Thoughtworks, Inc.

@4upz thanks for the review, will take a look at it tomorrow!

@4upz I have resolved all mentioned items.
The failing tests also fail on the trunk branch for me, so it seems the failures were not caused by these changes...
Hope all is good now, otherwise let me know!


opt: Add optimizer support for UPSERT and INSERT..ON CONFLICT statements

PR: https://github.com/cockroachdb/cockroach/pull/33339
From release notes:

The new experimental_optimizer_updates cluster setting controls whether UPDATE and UPSERT statements are planned by the cost-based optimizer rather than the heuristic planner. Also note that when the setting is set, check constraints are not checked for rows skipped by the INSERT ... DO NOTHING clause. [#33339][#33339] {% comment %}doc{% endcomment %}

This was done as part of the work that closed #3998 and is already live in the CBO docs.


az vm create: add flag for "requireGuestProvisionSignal" api field

Is your feature request related to a problem? Please describe.
Yes. I would like to boot VMs without the agent, but I do want to boot them through the CLI.
Describe the solution you'd like
Expose a az vm create flag that corresponds to the requireGuestProvisionSignal that is part of hte VM Create REST API.
Ex:
az vm create --image /sub/image-without-agent --require-guest-provisioning-signal false

Describe alternatives you've considered
I can't come up with any.

@qwordy please take a look.

I get an error when testing this field.
The property 'requireGuestProvisionSignal' is not valid because the 'Microsoft.Compute/Agentless' feature is not enabled for this subscription

When I try to register it, I get
The feature 'Agentless' could not be found.

Can you use this field successfully?

It seems like it's been part of the public Compute API for years, I just assumed it was available. I was waiting for CLI support to test it out.

@qwordy I’m having the same problem with the 'requireGuestProvisionSignal' error. Did you find a solution? If so I would appreciate the help you could provide me.

Hi service team, do you know how to use requireGuestProvisionSignal? I try to register the feature, I get "The feature 'Agentless' could not be found."

@qwordy In my case, I received that error while trying to deploy Rome resources through a template. I fixed it by removing the line.
"requireGuestProvisionSignal": true

This property was inappropriately added to the public APIs, and it is not currently supported. This was added at one point in the past by someone doing experimentation, but it should not have shown up in the public APIs.
I will work with the team to get this property removed from the public APIs because it is not supported for general usage.

Okay, I'll explore other options in the meantime. I don't know if y'all want to leave this open to track removal from API, but we can close this one whenever. Thanks for the update @Drewm3!

Also, since I didn't link them already... for anyone else here following breadcrumbs, the related walinuxagent issue: https://github.com/Azure/WALinuxAgent/issues/1888

Thank you @Drewm3

This parameter is also showing up in VM templates exported from the portal which causes an error when trying to use said template. Then I had to track down this thread to figure out what was going on.

Currently, the error still exist:
The property 'requireGuestProvisionSignal' is not valid because the 'Microsoft.Compute/Agentless' feature is not enabled for this subscription.
Will it be available under Microsoft.Compute resource provider?
It was in a template generated from Azure Portal for automation.


pydantic_core._pydantic_core.ValidationError: 1 validation error for StripePrices

I have only 1 subscription model in stripe. Any idea maybe im doing something wrong

This is an issue with aggregate usage not being an optional type


changed tree to use promises

using async/await pattern everywhere to facilitate migrating to db tree

closing wrt our latest discussion


feat: automatically pick active menu item color by contrast

picking text color by contrast instead of hardcoded white for easier color scheme customisation
Description
while active menu item background is taken from customizable color palette, it's color is still hardcoded to white and needs to be replaced manually to matching color.

Closes https://github.com/zurb/foundation-sites/issues/11353

Motivation and Context
For easier color scheme customization the text color could be picked automatically by comparing color contrasts, like its done for styled buttons ( _buttons.scss line 140 ).
Screenshots (if appropriate):
Types of changes

[ ] Documentation
[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing
functionality to change)

Imho, this PR is an improvement. Since auto-picking color by contrast is already implemented for styled buttons, i would expect the same behavior for other styled elements. Therefore the issue is kind of "unexpected behavior". I checked both "fix" and "new feature"
Checklist (all required):

[x] I have read and follow the CONTRIBUTING document.
[x] There are no other pull request similar to this one.
[x] The pull request title is descriptive.
[x] The template is fully and correctly filled.
[x] The pull request targets the right branch (develop or support/*).
[x] My commits are correctly titled and contain all relevant information.
[x] My code follows the code style of this project.
[ ] I have updated the documentation accordingly to my changes (if relevant).
[ ] I have added tests to cover my changes (if relevant).
[x] All new and existing tests passed.

Planned for v6.6.0 as this is a new feature.

@vanilla-thunder Will you have time to discuss/provide the requested changes ?
Note to myself: maybe we could simplify the pull request "Checklist" and add a checkbox "I am availaible to discuss and work on this pull request later"

sure, sorry for letting you wait.
I had some additional thoughts about customizing menu colors, especially the regular menu item text, not only the active. Just in case someone would like to have different menu color than regular text color (e.g. when having dark navbar while the rest of the page is light), you might want to keep the original variable for active color, but also add variables for regular menu item color and alternative color for active menu item.
Something like this:
/// regular menu colors
$menu-item-color: $white !default;
$menu-item-color-alt: $black !default;
/// active item colors
$menu-item-color-active: $menu-item-color !default;
$menu-item-color-alt-active: $menu-item-color-alt !default;

So people who already configured own $menu-item-color-active will keep it.
What do you think about that?
Also, i found the same color picking bahavior in dropdown-menus, do you want me to make separate PR for dropdowns or add my changes into this PR?

For now, menus doesn't have a color set for their default state. If I understand your proposal correctly, it would change this color to $white. Is that what you mean ?
For the pull requests, please group all similar changes even across multiple components. It's easier for us to follow. Please update the pull request title and description.

please have a look at the changes, this should be finde now.
(forget my other suggestion, I accidentally looked into wrong files)

Thank you


File handling for kubeconfig

I'd eventually like to get away from creating the files, but the way helm works this is a lot easier.

/lgtm
/approve


chore: upgrade Mitosis to latest version

Upgrade Mitosis to latest version and fix issue from the upgrade if existed.
We currently use custom scripts to generate components and types files from build:component command in ui package. Check if mitosis build from the cli is improved and can (partially, or totally) replace our custom scripts

Merged in #19


Rust API Guidelines compliance

Multiple miscellaneous small changes to honor Rust API Guidelines. See individual commits for details.
Known violations of the guidelines:

C-SERDE: We don't implement Serialize and Deserialize yet. This can be meaningful for the private and public key types, but I don't want to bother with Serde right now (it's a giant dependency to pull in). We can add that later in a minor release if someone really needs it.

C-GOOD-ERR: TransportError does not implement std::error::Error due to technical reasons. This should not impair its usability.

C-NEWTYPE-HIDE: We expose output encrypted container as simply Vec<u8> which is not super-perfect clean, but I don't want to bother the users with constant ToVec trait bounds and to_vec() calls. Plus, using newtypes for input requires premature and incomplete error checking which will be super-bothersome as well.

wow Rust guidelines are very unusual 🤔

@vixentael I don't hold these particular guidelines in absolutely high regard... Some of the check list items there are useful, but others are not so much, IMO. But hey, an incomplete check list is better than nothing. Nevertheless, I would not recommend making these guidelines official in any capacity.


cluster-dns add IPv6 to the documentation

Although RKE2 cluster DNS supports both IPv4 and IPv6, the documentation does not currently mention the option to use an IPv6 address for the cluster DNS. Similarly, users can specify an IPv4, IPv6, or dual-stack address for the cluster DNS.
https://github.com/rancher/rke2/blob/9255fd8fa411695fc93573a6e6dfa9470e13e938/scripts/validate-charts#L54

Would you like me to submit a PR/MR to change the line you mentioned in the link?

Yes, that'd be appreciated!

Here is my PR on the k3s repo
https://github.com/k3s-io/k3s/pull/11498


Climbing stair solution added

Related Issue
Fixed : #418
Description
i have added solution of "Climbing Stairs" Solution
Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / Videos (if applicable)

Checklist

[x] I have performed a self-review of my code.
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional Context
[Include any additional information or context that might be helpful for reviewers.]
Resources for Guidance
Here are some resources that may be helpful as you contribute to CodeHarborHub:

Code Harbor Hub Community Features
Docusaurus Documentation
React.js Documentation
Markdown Guide
MDX Documentation
Mermaid Documentation

Resources for DSA Features on Our Site:

Tabs: Switch Languages
Line Numbering
Math Equations

hey @Ajay-Dhangar , i have added solution to paths to reach origin .
can please make it level 3
Reason:
make same as "Two sum Problem" as @Ajay-Dhangar (you ) suggested
added 4 Approach

@Vipullakum007  don't spam issues please

@rajnishdesai23 , sorry bhai i have don't have idea before , i have knowledge about that tomorrow . please don't ban me

hey @rajnishdesai23 , don't make my PR close i don't make spam in FUTURE

hey @Ajay-Dhangar , i have added solution to paths to reach origin .
can please make it level 3
Reason:

make same as "Two sum Problem" as @Ajay-Dhangar (you ) suggested
added 4 Approach

hey @Ajay-Dhangar , i have added solution to paths to reach origin . can please make it level 3 Reason:

make same as "Two sum Problem" as @Ajay-Dhangar (you ) suggested
added 4 Approach

@Vipullakum007 I know your content is good, but it needs more improvement and better explanation. Based on the current level, I can't assign a level 3 rating. Level 3 is for very advanced work, like that of a professional. This documentation page should not be rated at level 3 as the code is more suited to level 2. The basics are aligned with level 1. I have already completed the setup and provided resources on how to write, so you only need to write the content. This is similar to a simple markdown file implementation. Based on GSSOC'24 guidelines, I can't assign a level 3 rating.

hey @Ajay-Dhangar , how to make solution for level 3 label. can you point out features how to make professional repo ?

hey @Ajay-Dhangar ,please answer so i follow that points in future


Fix: UnicodeEncodeError in cli.py on Windows

Related to issue https://github.com/hadialqattan/pycln/issues/54

Unfortunately, this solution won't work since encode("utf-8") returns bytes while typer.echo works only with str as well as sys.stdout (print) in Python3.

Fixed via: #56


yewprint_css download the newest css from blueprintjs

blueprintjs 0.4 is there, they updated the css namespace bp3 to bp4
Meaning that the new css will break yewprint since we use the bp3 namespace

My bad, yewprint-css wasn't updated


Save custom initial delay

Basically the title. Whenever the user requests a custom delay using the --wait flag, this delay gets saved in the config, just like the theme and the GH token. Also a few minor style suggestions.

Also you should update the comment regarding this option in the README so people know it's stored

Hi @Sup3Legacy, any chance you want to pick this PR up again?


cooldown epochs

Thank you for your great work!
As far as I know, models such as DeiT and ConvNext do not use "cooldown_epochs".
However, the code looks like MogaNet was trained in 310 epochs rather than 300 epochs. Are the accuracies in the paper posted on openreview all learned from 310 epochs?

Hi, @dhkim0225, thanks for your question! The "cooldown_epochs" is not the necessary setup for training MogaNet, and we also provided 300-epoch implementations and results in OpenMixup. Actually, the "cooldown_epochs" implemented in Timm is the default training setup as the image classification implementation was migrated from PoolFormer, which has little effect on the final performance. It might be useful to some Transformer architectures, e.g., Uniformer. To my knowledge, whether to use 300 or 310 epochs training has little to do with whether to post manuscripts on visual architectures on OpenReview,


Error , can't add it to the pubspec.yaml

when i try to add the dependencie at the pubs file i got error .

change your flutter project name, the name cannot be same as 'device_policy_manager' (this package name)


SYBASE + FreeTDS: Issues getting rowcount passing in parameters

Environment

Python: 3.7.5
pyodbc: 4.0.30
OS: Linux-4.15.0-99-generic-x86_64-with-Ubuntu-18.04-bionic
DB: sybase (Adaptive Server Enterprise/16.0 SP02)
driver: FreeTDS

Issue
Forwarded from: https://github.com/sqlalchemy/sqlalchemy/issues/5311
import pyodbc

connect_args = {"autoconnect": True}
connector = pyodbc.connect(
    database=database,
    user=username,
    password=password,
    driver="FreeTDS",
    host=host,
    port=port,
    **connect_args,
)

This works:
cnxn = connector.connect()
cursor = cnxn.cursor()
cursor.execute(
    "INSERT INTO mytable (type, description, create_date) "
    f"VALUES ('TEST', 'TEST', '{datetime.utcnow().isoformat()}')
)
cursor.execute("SELECT @@identity AS lastrowid")
print(cursor.fetchone()[0])

large number

But this fails (returns 0):
cnxn = connector.connect()
cursor = cnxn.cursor()
cursor.execute("INSERT INTO mytable (type, description, create_date) VALUES (?, ?, ?)", 'TEST', 'TEST', '2020-05-06T13:22:43.923404')
cursor.execute("SELECT @@identity AS lastrowid")
print(cursor.fetchone()[0])

0

SQL queries with parameters run kinda like they are stored procedures (sort of).  You could try adding the select @@identity to the end of the query:
cnxn = connector.connect()
cursor = cnxn.cursor()
cursor.execute("INSERT INTO mytable (type, description, create_date) VALUES (?, ?, ?);SELECT @@identity AS lastrowid", 'TEST', 'TEST', '2020-05-06T13:22:43.923404')
if cursor.nextset()
    print(cursor.fetchone()[0])

Thanks for the tip, but it doesn't seem to like that syntax:
ProgrammingError: ('42000', "[42000] [FreeTDS][SQL Server]Incorrect syntax near ';'.\n (102) (SQLPrepare)")

Hmm.  That syntax works on SQL Server.  Looks like it used to work on Sybase but no more:
https://answers.sap.com/questions/84778/-incorrect-syntax-near-''----sybaseadonet2aseclien.html
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00729.1500/html/errMessageAdvRes/CHDGFCCJ.htm
You could try replacing the semicolon with a newline character \n.  I'm afraid I can't check it myself because I don't have access to a Sybase database.

That's unfortunate. I tried out \n with no luck.

Indeed.  You could perhaps try using just a space between the statements, but I'm guessing here.  You could also try wrapping the whole SQL in BEGIN END, or putting GO between the statements, but it looks like the SQL has to be just one statement.  If all else fails, you could create a stored procedure that runs the SQL and returns the identity value.  A bit long-winded but it should do the trick.

I was able to run it with a space and a \n but it didn't return anything. It seemed like the second statement was ignored.

SQL queries with parameters run kinda like they are stored procedures (sort of)

Is this something that could be changed or is it expected behavior and a wontfix?

Unfortunately, there's not much pyodbc can do about this, even if it wanted to.  pyodbc is simply a conduit between your python code and the database (via the driver manager and driver).  pyodbc does not parse the SQL statement, it simply passes it on to the database and manages any return messages.  If the database does not execute part of the SQL or does not return any messages, that's not something pyodbc can somehow "force" to happen.
The behavior in this scenario is specific to the RDBMS (and drivers).  The Python code and multi-statement SQL query I described above does work on SQL Server with the "ODBC Driver 17 for SQL Server" driver, and does return the identity value.  I'm afraid your best bet is to raise this with Sybase and/or FreeTDS.

Alright, that makes sense. Thanks for your assistance, much appreciated :+1:

@keitherskine, you were definitely on the right track. I should've followed up on that. This solution seems to work: https://github.com/FreeTDS/freetds/issues/337#issuecomment-640070962


Update priority class logic

Description
Use the Kubernetes system priority classes, system-node-critical & system-cluster-critical, for Calico pods so they have the highest possible priority.
Fixes #1428.
For PR author

[X] Tests for change.
[x] If changing pkg/apis/, run make gen-files
[x] If changing versions, run make gen-versions

For PR reviewers
A note for code reviewers - all pull requests must have the following:

[ ] Milestone set according to targeted release.
[ ] Appropriate labels:

kind/bug if this is a bugfix.
kind/enhancement if this is a a new feature.
enterprise if this PR applies to Calico Enterprise only.

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

/assign @tmjd

I can't see the errors in Semaphore due to a 404, I'm not sure if this is expected?

Unfortunately I don't know there is anything I can do to open up Semaphore access. I think you should be able to get the errors if you ran make test or the target that Semaphore is running is make ci but I think the test target would show the errors that are being hit.

Thanks @tmjd I'm unable to easily run make from my Windows box but I'm able to manually run the tests in the render package and hopefully it's just these which are broken.

Yeah the failures all look to be in pkg/render/render_test.go and pkg/render/node_test.go

@tmjd the tests should be fixed now. Are you happy with my other changes to the imports and deployment API, nothing was "broken" but the code in the render package should now be more consistent.

I've been looking and the priority class changes look good.
I would have preferred the main changes and the import changes to at least be in a separate commit, if not a separate PR, since they aren't related but you don't need to split them (I'm just mentioning for any possible future PRs). If I thought we'd be picking these changes to previous releases I would request splitting the changes because additional changes would just make for more potential conflicts when picking changes.
One thing that I'm checking with some colleagues on, is to see if they have a preference on the move to v1 for the k8s.io/api/core/v1, because I think it would be more consistent with the other import names if we used corev1 but you've gone with v1 but I don't want to request that change if others don't agree. This isn't a big deal but if we're changing it I want to make sure it is the "preferred" value.

Thank you @stevehipwell for this contribution.

Thanks for the quick review @tmjd. I looked a bit further into the codebase as switched v1 to corev1, which is my personal preference. Sorry about the single commit, some projects always want 1 per PR and I wasn't sure if you wanted separate PRs or not; noted for the future.

@tmjd I don't suppose there is a release date for the next version? Our clusters built with our new pattern that uses the tigera-operator are currently impacted by the low priority class on the calico-node daemonset.

I'm not sure when the next release will be, there was a release recently and we have one at least once a quarter, so the longest would be 3 months.
If you can't relieve the pressure on your cluster to ensure there is room, you could pick your changes in this PR onto the version of the operator and build a custom operator image to pick up those changes.

@tmjd I suspect that even with a split commit that this wouldn't be a candidate to be picked into the current release. Would it be possible to create a PR for the current release to use the new behaviour if an environment variable was set, and if so what would the release windows for something like that be?
The back story of this is that we have a TF module to build EKS clusters, used for a large number of clusters, which installs the common components into a system node group with a high resource pressure from system components with system-node-critical and system-cluster-critical priority classes causing the calico-node daemonset to be un-schedulable on these nodes.

Back porting a change and making it available through an env var or other config in a previous version is not something we would want to do. You can pick the changes into a branch based on the release you want to have updated and build an image and push it to docker hub then just switch the operator deployment you're using to use that image.
@stevehipwell I know you said you can't run make on your windows machine but you could run a Linux VM (locally or on a cloud) where you'd need to install a few dependencies and then you can do make image on your custom branch to create an image with these changes.

I thought that would be the case @tmjd. If I need an image I can create some tooling to build it, it's just that I'd rather not if at all possible.


Review Accounting After a Cash Sync

Expected Behavior
After a cash sync, the cashbook shouldn't change a lot.
Actual Behavior
The live deployment to Kraken starts with:
CashBook Total Value:                ₿0.24
2024-04-05T00:00:49.7808038Z TRACE:: Total margin information: TotalMarginUsed: 0.18, MarginRemaining: 0.06

Then we have a cash sync where the margin information jumps:
2024-04-05T11:45:00.0572082Z TRACE:: Brokerage.PerformCashSync(): Sync cash balance
2024-04-05T11:45:10.4329261Z TRACE:: Total margin information: TotalMarginUsed: 0.13, MarginRemaining: 0.32

Potential Solution
N/A
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues
[x] I have provided detailed steps to reproduce the issue

5 is pretty big in BTC which is what the user is using, so it should be relative to the TPV I think

kraken, sounds like it accounting for the holdings again on each cash sync but should be the first only really

After doing some research about this bug I found the following things:

I found that the Margin Remaining value changes even without applying the balances values obtained from Kraken API each time the method KrakenBrokerage.GetCashBalance() is called. To find that I ran the algo BasicTemplateCryptoAlgorithm using live-kraken environment and USD as account currency, and commented the following line (531) so that the new balance cash amount wasn't applied to the algorithm's Cashbook:

Martin and I thought that the MarginReamining value could have been changing since Kraken was taking into account the profit/loss of an open position so that KrakenBrokerage.GetCashBalance() was always adjusting to the current price, profit/loss included, but LEAN wasn't. In order to see if our hypothesis was right we took 2 snapshots (with a difference of 10 minutes between them) of the state of the LEAN Holdings, Cashbook and TPV as well as the Holdings and Cash balances from Kraken API responses. After comparing those snapshots we found that the responses from the Kraken API changed just in two fields (value and net) but those weren't used when computing the cash balances for LEAN. Below is a screenshot of the difference between the Kraken resposes as well as the file with the two snapshots:

KrakenCashBalanceBugLogs.txt

Shipping fix at https://github.com/QuantConnect/Lean.Brokerages.Kraken/pull/48, starting from version 16546


Sequence annotation

How would I go about generating objects with sequence annotation? Also, making this annotation reference another object (in the same file or externally).
I couldn't find an example in the paper or the example sheets. I'm guessing I can do that sort of automatedly with the sbol python libraries but just wonder if there is a way already within excel2sbol.

Could you provide a bit more details about what you are trying to do?  My guess is that you can do it either using one of our templates, or possibly creating a new template.  @JMante1 @wdrav please also have a look at this request.

How I understand the program currently makes composite parts is by taking basic parts with defined sequences and concatenating those with SequenceConstraint objects.
What I would like to make is an object with multiple SequenceAnnotation objects pointing to other components I defined on the excel file.
To let you know specifically what I'm working on:
I have defined a library of basic/composite components, but now I'd like to create objects for plasmids that hold those components (plus some other features). Not everything in the backbone plasmid is defined, so I can't just make objects for everything and concatenate them.

You can likely achieve this by creating a new Excel template.  In many cases, you can simply change the configuration in the template itself.  For some more complex things, you may need to add a special function to Excel2SBOL.  You can find more details about configuring Excel2SBOL in @JMante1 thesis:
https://geneticlogiclab.org/publication/promotion-data-reuse-mante-2022/


French locale is used by default

When I try to create new moment date without setting locale, date has french locale.
Environment  Node.JS v.6.9.1 on Ubuntu 16.0.4
Example of usage:
console.log(koa.request.body.startDate); //return 2017-05-25
console.log(moment(koa.request.body.startDate, 'YYYY-MM-DD').locale()); //return fr
This bug is replicated locally and on production, which has the same environment, but different timezone.

console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)
Result:
Thu May 25 2017 10:56:52 GMT+0300 (MSK)
5/25/2017, 10:56:52 AM
-180
2.10.6

I'm seeing the same issue.
Explicitly setting locale worked around it
require('moment').locale('en');

That's certainly odd. 2.10.6 is pretty old though. If you upgrade to the latest, does it still happen?
You can set Moment's default locale with
moment.locale('en');

It should be on 'en' by default but if something hidden is setting it, that's the workaround.

I'm actually on 2.18.1.
I'm also using Ubuntu as the original reporter is. The system locale is set to US English.
Above workaround does fix it.

I have updated version and result is the same, but the workaround helps.

I see the same issue -- I was installing '^2.15.1', and in the last week or so got French suddenly.  I had inconsistent behaviors across docker image builds, so I suspect there is a bad version in the NPM mirrors somewhere that gets pulled sometimes.  Just a guess.
Moving to '^2.18.1' seems to have addressed it for me for now. YMMV

I'm on 2.18.1, seeing the same thing suddenly in production. Haven't changed any code, just deployed a build that triggered an npm install.

Also seeing the same issue +1

+1

Enough of you have reported this that I'm convinced we need to do something to fix it, but I'm not in a position to help, partially because it seems to be Linux-specific and I don't currently have a dev environment set up there. So...help wanted.

would love to give this a shot? can someone give me an idea of how to start off?

This might not be a great starter project, TBH. But if you want to try it, you'd need to reproduce it and then do some debugging of Moment's locale methods to see what's happening. I don't know what the problem is, so I'm not quite sure how to point you the right way

@icambron Has anyone finished this? Or has it been fixed in a later release? I would like to give it a shot. I'm on Mac but I can probably set up a Dev Ubuntu Environment using Docker and try this out.

@Debdutto As far as I know, this is still an open issue. So yeah, go for it

@icambron @nastya-kostyukova
I have not been able to reproduce the bug. I am running Ubuntu 16.0.4 in a docker container.
console.log(moment("2017-05-25", 'YYYY-MM-DD').locale());
console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(moment.version)

The code above gives the output:
en
Fri Dec 08 2017 17:32:11 GMT+0000 (UTC)
12/8/2017, 5:32:11 PM
0
2.10.6

node -v gives v6.9.1
npm -v gives 3.10.8
Ubuntu version is 16.0.4
Is anybody still having this issue? Maybe we can figure out what precise scenario causes this.

Are folks still seeing this on 2.19.4 ?
This one might be related -  https://github.com/moment/moment/issues/4116

@nastya-kostyukova @bryanhiggins @jayjanssen @0xc00010ff @ajsouza @roymap  - has anyone been able to reproduce this in 2.19.x or 2.20.x ?

I'm going to close this - but please re-open if it's still a problem.


Update getting started doc to install invokers

Now that riff ships invoker-less, the getting started guide should tell users how to install invokers, and that invokers need to be installed.

This issue has gone stale, we're on Knative now! Please reopen if still relevant.


Error while using bundled redis database - similar to #168

When using ArgoCD and performing a sync through a pipeline the second deployment fails due to redis auth errors, if i prune, force & replace from Argo it comes right however not ideal similar to #168.
Going to use redis outside the chart.
Raising incase anyone else runs into this

Are you setting the redis.auth.password in your chart values? As mentioned in the README, you must set the passwords in the PostgreSQL and Redis sub-charts otherwise each time Helm runs it generates a new random password.

another possibility is to add ignoredifferences key for that password on ArgoCD side and then it will not regenerate it.

Closing in favor of #187


New package: SAT v0.1.0

Registering package: SAT
Repository: https://github.com/CarloLucibello/SAT.jl
Created by: @CarloLucibello
Version: v0.1.0
Commit: 198c42eb314012e21e2d01710e5ac2232682a2a9
Reviewed by: @CarloLucibello
Reference: https://github.com/CarloLucibello/SAT.jl/commit/198c42eb314012e21e2d01710e5ac2232682a2a9#commitcomment-48708790

Perhaps HeuristicSAT.jl?

Or  BeliefPropagationSAT.jl?


perf: Improve cassette writer performance

Since cassettes writer adds a certain overhead I looked for ways to improve performance.
Here some performance benchmarks I did with the current implementation (with using hyperfine on default settings and -i option to ignore non-zero exit codes).
HTTP
The built-in test server was used with the following config:
./test_server.sh 8081 --endpoints=success,failure,path_variable,multipart,recursive,multipart,payload,upload_file
Command: schemathesis run --hypothesis-max-examples=1000 --hypothesis-seed=1 --hypothesis-deadline=None http://<IP_ADDRESS>:8081/swagger.yaml + --store-network-log=cassette.yaml in relevant cases
No cassettes: 11.222 s (baseline)
Current implementation with C-extension: 12.504 s (+11.4%)
Current implementation without C-extension: 17.058 s (+52%)
WSGI
The same test server config was used but with Flask-based implementation.
Command: PYTHONPATH=pwd schemathesis run --app=test.apps._flask.app:app --hypothesis-max-examples=1000 --hypothesis-seed=1 --hypothesis-deadline=None /swagger.yaml  + --store-network-log=cassette.yaml in relevant cases
No cassettes: 8.188 s (baseline)
Current implementation with C-extension: 10.616 s (+29.6%)
Current implementation without C-extension: 14.252 s (+74%)
Investigated approaches

Rust. Unfortunately yaml_rust does not expose emit_node and it is problematic to have incremental writing. Then serde-yaml doesn't expose Serializer which makes things even more complicated. So, I gave up there

Composing strings instead of using pyyaml. We have a simple format and it turned out that composing  YAML with string formatting is much simpler to implement than it was with the current approach.

Here are results for the string-based approach
HTTP: 11.512 s (+2.5%)
WSGI: 9.740 s (+18.9%)
I feel that this approach is a bit hacky since YAML is composed manually, but having a much simpler implementation than pyyaml-based one and that performance gain makes me think that it worth having.

Codecov Report

Merging #532 into master will decrease coverage by 0.24%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #532      +/-   ##
==========================================
- Coverage   99.55%   99.31%   -0.25%
==========================================
  Files          34       34
  Lines        2268     2201      -67
  Branches      359      353       -6
==========================================
- Hits         2258     2186      -72
- Misses          4        9       +5
  Partials        6        6

Flag
Coverage Δ

#unittests
99.31% <100.00%> (-0.25%)
:arrow_down:

Impacted Files
Coverage Δ

src/schemathesis/models.py
100.00% <ø> (ø)

src/schemathesis/cli/cassettes.py
96.87% <100.00%> (-2.34%)
:arrow_down:

src/schemathesis/_compat.py
87.50% <0.00%> (-12.50%)
:arrow_down:

src/schemathesis/utils.py
97.87% <0.00%> (-2.13%)
:arrow_down:

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 88649fe...5f28348. Read the comment docs.


Failed to render error when updating folder via settings

Expected Behavior
I want to create a folder with requests in a collection on Insomnia and add a markdown description to the folder.
Actual Behavior
What actually happens is that Insomnia crashes the moment I try to write anything in the text box.
Reproduction Steps

Create a new collection on Insomnia.

Create a new folder.

Click on the folder Settings.

Try to write anything in the text box.

It crashes...

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
The error message that gets displayed is the following (in text form):
Failed to render. Please report to our Github Issues

Error: No route matches URL "/organization/org_default-project/project/proj_6109ca6b0daf4363b4dc167815ea2a1d/workspace/wrk_8c28c645db9f4589b4ae4e256fca6706/debug/request-group/fld_3d00639ab1194a2cbf0ea1aded1337f1/update"
Try to reload the app
Error: No route matches URL "/organization/org_default-project/project/proj_6109ca6b0daf4363b4dc167815ea2a1d/workspace/wrk_8c28c645db9f4589b4ae4e256fca6706/debug/request-group/fld_3d00639ab1194a2cbf0ea1aded1337f1/update" at Pi (file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:31:8269) at Object.Ye [as fetch] (file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:30:17838) at Object.submit (file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:49:6555) at file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:131:22895 at onChange (file:///opt/Insomnia/resources/app.asar/debug-94b4d679.js:35:20727) at file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:649:57921 at file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:638:4471 at file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:17:25974 at file:///opt/Insomnia/resources/app.asar/index-ae32ab7a.js:17:25921 at sentryWrapped (/opt/Insomnia/resources/app.asar/node_modules/@sentry/browser/dist/helpers.js:76:23)

Insomnia Version
2023.5.4
What operating system are you using?
Ubuntu
Operating System Version
Ubuntu 22.04.3 LTS
Installation method
apt
Last Known Working Insomnia version
No response

@thanoskoutr @skipfire we can reproduce this issue, we're working on a fix and will update you asap.


[Bug]: Some of the columns in the grid are not as wide as the other ones

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When I try to resize a widget the grid shows up and some of the columns are not as wide as the other ones.
I also tried to resize the widget to some of those grids, but the grid acts as if they don't exist.
I tried some of my old apps as well as creating new apps, but this doesn't happen there. It only happens for this app (an old app that I opened randomly today): https://app.appsmith.com/applications/616aa9b3770d321d435c3a23/pages/616aa9b3770d321d435c3a25
I also can not drag widgets around on the canvas.
Steps To Reproduce

Drop a widget on the canvas
Try to resize it (doesn't work when I try to drag it around)
Observe

Environment
Production
Version
Cloud

@momcilo-appsmith can you give us access to the app? Does it happen if you clone the app as well? Can you share a video?

@Nikhil-Nandagopal I tried to reproduce this in other apps, it doesn't happen at all.

@Nikhil-Nandagopal I tried to reproduce this in other apps, it doesn't happen at all.

ok then this must be an issue in older apps


InputWithClearButton: Refactor clear button

Before:

After:

Thanks, redid the commit eliminating the Touchable. I had changed padding to 8 to match material design spec but on closer inspection of the docs ,16 is the recommended value. Made that change as well.

Thanks @agzuniverse ! Merged -- this definitely makes the search bar look a lot nicer.
One important bit in the commit message: a "refactor" means it doesn't change how the app works on the outside. This isn't a refactor. :wink:

(also thanks @borisyankov for the original review!)


RunPSWithString function added

It allows to be able to send commands directly to powershell rather than cmd

Hi,
This looks good, and would fix the stale PR #97 which I wasn't really fond of.
But, we already have a Powershell function that generates the powershell command to be used with RunWithString. We could remove the Powershell function, but that would break the API.
Instead, would you mind rewriting your PR so that RunPSWithString internally calls Powershell, and move the gory details (like the UTF16 conversion) to that function ?
Thanks !

I've applied changes :)

@masterzen do you need anything else?

@mertcelen thanks for the reminder, I totally forgot your PR.
It looks good to me, many thanks for your contribution !


Removed openmm-dev package

This is an attempt to fix https://github.com/pandegroup/openmm/issues/910

The openmm-dev package has now been removed due to #203

It is now here: https://github.com/omnia-md/openmm-dev


Help with getting the remote app working

I've got the main GPMDP up and running and I can't work out how to access the settings inside GPMDP so I can enable the PlaybackAPI - so I can get the remote app working, which is the only reason I am using GPMDP. Can anyone please help? I'm desperate and have already spent hours getting to this stage.
OS:
Win 10
GPMDP Version:
the latest

sorted


Feature/server side entity id generation

Exposes an endpoint to make it easy for frontend applications to assign entity key ids, based off a subset of properties.

Overriding with 1 approval.


Python client consumer.reveive() call suspends processing of interrupts within the program

Describe the bug
Python client consumer.receive() call suspends processing of interrupts within the program
(including SIGTERM, SIGINT) which makes difficult to implement graceful shutdown.
There was a similar issue some time ago, but it was obviously not implemented.
To Reproduce
Steps to reproduce the behavior:

Run the following Python code for the empty topic:

import signal
import pulsar

def shutdown_signal_received(signum, frame):
    print("Received system signal {} ({}).".format(signum, signame), flush=True)

signal.signal(signal.SIGINT, shutdown_signal_received)
signal.signal(signal.SIGTERM, shutdown_signal_received)

client = pulsar.Client('pulsar://localhost:6650')
consumer = client.subscribe('abcd', subscription_name='xyz',  consumer_type=pulsar.ConsumerType.Shared)

msg = consumer.receive()

See error: receive hangs and suspends interrupts if the input queue is empty.
For example results of the kill -15 command would be seen only if new data message is sent is
provided though the topic.

Expected behavior
receive() call should be interrupted (at least) on registered exception, and empty (None) result should
be returned and / or appropriate Pulsar exception should be raised.
Desktop (please complete the following information):

OS: macOS Catalina, 10.15.3

Any info on the solving status of this issue?

@bry00 Any new developments here?  I'm having the same problem on v2.7.1.

@jiazhai @sijie Any developments? Is there any chance for fix of the issue in the next release?

i'm facing the same problem in 2.9.1

This remains a problem with the current client. For SIGINT to be received by a Python program, you have to do one of two thigns:

call receive with a timeout, in which case the signal will be received after the timeout.
use a message_listener handler, which really changes guarantees and behavior.

Other network service drivers are interruptible when in their receive operation; can this one be? At least on Linux, it looks like Boost is calling read when there's no data in the socket, rather than using an interruptible multiplexer (e.g. poll/epoll/select) to wait until data is ready; the latter would allow operations to respond to signals. Nonblocking reads with a socket-timeout set are also an option.


Plan Verifiable Credential Formats

https://github.com/roots-id/rootswallet/wiki/Roots-Wallet-Implementation-Proposal#layer-3-data-exchange-protocols

timeline here, we'll tackle each format type separately


Add dynamic/static security controls policy validation script with deployed microservice for dynamic use cases

20230627 update
when enabling Cloud Armor where the client API uses a json api - specify to armor that json is ok - pass through gcloud/tf/kcc
Add both a static policy validator and various versions of a microservice to exercise the allow/deny parts of the network config.
Heads up on a a second part of validation to add to our static analysis - runtime - as in traffic generation (ideally 3+ containers - 2 in a workload vpc, 1 outside the org to verify private/public flow logic - for later once we finish a CD pipeline to bring up/tear-down the LZ on demand - for now a scripted container deploy GCE to start but GKE/Cloud-run/appengine-flex to cover off
1+ robot traffic gen to exercise some of the rules (generate alerts/logs/metrics/flows/scaling/availabilty/errors/trace-flows....
Verify
https://github.com/canada-ca/cloud-guardrails-gcp
reference from
https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding/blob/main/modules/guardrails/modules/guardrails/cloudbuild-bootstrap.yaml#L13
via execution of https://github.com/canada-ca/cloud-guardrails-gcp/tree/main/guardrails-validation

container
registry.hub.docker.com/obrienlabs/magellan-nbi:0.0.3-ia64

Leverage policy automation in the blueprints repo https://github.com/terraform-google-modules/terraform-example-foundation/tree/master/policy-library/policies/templates

Add infrastructure around
https://github.com/obrienlabs/magellan/tree/master/magellan-nbi
in IA64 image at
https://hub.docker.com/layers/202355515/obrienlabs/magellan-nbi/0.0.3-ia64/images/sha256-8cfe5acdde1ea075ad704293048d9429f74462ae280b7bf21ba423744b4a1e3e?context=repo
Exercised by
http://<IP_ADDRESS>/nbi/api

Infrastructure POC VM for docker container
partial Confidential Computing VM
admin_super@cloudshell:~ (landingzone-stg-os)$ gcloud compute instances create trafficgen1 --project=ospe-obs-obsprd-obshostproj9 --zone=northamerica-northeast1-a --machine-type=n2d-standard-2 --network-interface=network-tier=PREMIUM,subnet=ospecnr-obsproduction01-obshostproj9-snet --maintenance-policy=TERMINATE --provisioning-model=STANDARD<EMAIL_ADDRESS>--scopes=https://www.googleapis.com/auth/cloud-platform --tags=http-server,https-server --create-disk=auto-delete=yes,boot=yes,device-name=trafficgen1,image=projects/debian-cloud/global/images/debian-10-buster-v20220406,mode=rw,size=10,type=projects/ospe-obs-obsprd-obshostproj9/zones/northamerica-northeast1-a/diskTypes/pd-balanced --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any
Created [https://www.googleapis.com/compute/v1/projects/ospe-obs-obsprd-obshostproj9/zones/northamerica-northeast1-a/instances/trafficgen1].
NAME: trafficgen1
ZONE: northamerica-northeast1-a
MACHINE_TYPE: n2d-standard-2
PREEMPTIBLE:
INTERNAL_IP: <IP_ADDRESS>
EXTERNAL_IP: <IP_ADDRESS>
STATUS: RUNNING

20240406: Closing issue during retrofit/rebase of this TEF V1 based/modified repo to TEF V4 standards
This issue may participate in the LZ refactor after rebase
Query on all issues related to the older V1 version via the tag
https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding/labels/2024-pre-tef-v4

Part of #180


Reformat json files

Coverage increased (+1.71%) to 100.0% when pulling ca98ed2b82024bda27ca742ed8911527b37c880c on akkie:master into 099bda8c329416b4a0894e8ca18b17a3d018a3e0 on mohiva:master.


read_yaml requires 'Loader' argument

depends on PyYaml version,
Loader argument is required
def read_yaml(yaml_dir: str) -> dict:
    r"""read yaml file"""
    _, file_extension = os.path.splitext(yaml_dir)
    assert file_extension == '.yaml', 'only yaml file is allowed'
    with open(yaml_dir, encoding='utf-8') as cfg:
        config = yaml.safe_load(cfg)
    return config

sample codes from other project
    with open(f'{BASE_DIR}/{pdf_target}/{cleaned_grade_str}{subject_eng}.yaml', 'rb') as f:
        try:
            config = yaml.load(f, Loader=yaml.FullLoader)
        except yaml.YAMLError as e:
            print("Parsing YAML string failed")
            print("Reason:", e.reason)
            print("At position: {0} with encoding {1}".format(e.position, e.encoding))
            print("Invalid char code:", e.character)
            raise ValueError


WIP Add size based eviction to MemoryCache

Addresses #326
TODO:

[ ] Doc comments
[ ] Add more tests
[ ] Evaluate perf impact
[ ] Fix AppVeyor, seems like compaction failed to trigger on the single threaded machine

MemoryDistributedCache should set sizes by default. This will enable Session to work without changes.


Great idea

Is it for transferring config from one system to the other or for setting up a system from scratch?
I keep a list of tables with system- and user-specific setting. If it's easy enough, I shall contribute here 😃

Love the way that GitHub presents it as "Great idea #1", it may well be my first great idea :-)
It's for the repetitive tasks after spinning up a new developer system (NPL / A4H). Even with regular backups there are still occasions where you want to or have to start from scratch. Backups too old, SAP bring out a new version, broke something without noticing a while ago.
So I had a couple of hacky programs to do some of the stuff. The SSL certificate was a bugbear, and when I saw that I decided to clean up and put everything into a public repo.
It's one program, the idea being copy/paste and go. My thoughts are currently to have all the config & personalisation in an include, again to make it copy-paste-able. Everything is in two ABAP programs, one public the other private.
I haven't pushed the source yet as I haven't had a chance to test it on a real system and it's one of those things that's hard to unit test and can definitely break things too.

An all-in-one program is good. Easy to handle esp. for a new system.
Instead of config inside of code, I was thinking more of serializing the config to (private) repo. In the target system, you could then deserialize it again. Kind of like abapGit does it for data (tabu), but that feature is not powerful enough and anyway out-of-scope for AG.
If it breaks something, we just bring up a new A4H image 😉 Looking forward to it 👍

Hmm, interesting idea about private repo. If we can fetch abapGit then I guess we can fetch a repo. But for now it's simpler than that, it was originally a couple of hacky programs I'd written for myself.
I've uploaded my current version.

Looks good! Maybe add a copy of zdevsysinit_params with empty entries that can be used as a template (zdevsysinit_template)

Good idea, added example.
Re. pulling config from a private repo, I think copy/paste is easier for now. You still need to tell it where to pull from, and we either need the full abapGit to do so, or else pull the file content from a URL, which may be confusing if a user isn't aware of the difference between a link to the file's GitHub page vs link to the raw file.

couple of minor suggestions:

adding the option to flag a repo as favourite
optionally clearing the existing abapGit database before importing the user-specified repos