fix: Improve the accessibility of Profile Tags

Fixes Issue

Example: Closes #7463
Changes proposed
Added the tagindex=-1 to the anchor tag

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

Maybe the Link component can be removed as the Tag has the html button
sure I can use useRouter hook for navigation.

@itsdevdeepak did you mean to close this Pull Request?

New PR to replace this one https://github.com/EddieHubCommunity/LinkFree/pull/7475


Avoid set addr/engine-addr and HackedLockManager in src/node.rs

What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
Check List
Tests

[x] Unit test
[ ] Integration test
[x] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

Maybe we should adapt this in 6.3

./tiflash version
TiFlash
Release Version: v6.2.0-alpha-159-gcb31596d7-dirty
Edition:         Community
Git Commit Hash: cb31596d7c7bee776517ec2914637752e09675cf
Git Branch:      HEAD
UTC Build Time:  2022-08-08 04:20:24
Enable Features: avx avx512
Profile:         RelWithDebInfo
Raft Proxy
Git Commit Hash:   603a332ac90cd47d247d8e9219d1a48ac36640a8
Git Commit Branch: HEAD
UTC Build Time:    2022-08-08 04:20:38
Rust Version:      rustc 1.60.0-nightly (1e12aef3f 2022-02-13)
Storage Engine:    tiflash
Prometheus Prefix: tiflash_proxy_
Profile:           debug

We need to merge https://github.com/tikv/tikv/pull/13234 for TiKV's compat


Parralel resolution of available versions

Currently when using open channels (versions are specified by versionPattern), lot of time is spend on resolving available versions.
For demonstration, it takes about 30 seconds to provision wildfly-core (measured when all artifact files were already present in local maven cache). Of these 30 seconds, more then 20 seconds is spent in the ChannelSession#splitArtifactsPerChannel() method which performs the versions request to remote maven repositories (=> large number of http requests to obtain repository metadata).
I tried a simple experiment where the versions were resolved in a parallel stream using 10 threads. This reduced the installation time from 30 seconds to 10 seconds. The version resolution work now takes only around 2-3 seconds.
Can the channel library do parallel version resolution?

that's a good improvement. We could refactor the code to use a parallelStream. @TomasHofman do you want to do it?

Yes, I will submit a PR.


Shift Modifier in Bank

Shift Modifier implementation to bank, to, let's say, when clicked shift, change withdraw-1 option to withdraw-all.

Rejected


Add NonnullPair

Description
Pair is useful when you associate two things explicitly, but it allows nulls for both lhs and rhs which sometimes leads to a false warning for missing null checks. This is not only annoying but also error-prone if we change something nullable to be nonnull or vice versa. This PR adds a simple class NonnullPair which extends Pair but disallows nulls. I also modified CompactionTask to use it as an example. NonnullPair extends Pair only because it was easy to implement and I wanted to avoid duplicate code. However, this causes the same false warning for missing null checks when you access the variables directly such as nonnullPair.lhs. This is inevitable since they are defined as public in Pair, we can avoid it by changing it to not extend Pair. I'm open to any suggestion.

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

Though now I wonder if Pair should be renamed NullablePair and this should be renamed Pair 🤔 😜

Yeah, I agree it would be better. However, Intellij finds 1286 usages of Pair as of now, doing so will cause bunch of potential conflicts.


Calling "new Chart()" throws Error:  "_auto.default is not a constructor"

Expected behavior
No errors while calling new Chart(...)
Current behavior
The problem is that I can't use the "simple" import described in docs:
import Chart from 'chart.js/auto';
This code transpiles with babel without any problems but I have an error while trying to call new Chart(...):
Uncaught TypeError: _auto.default is not a constructor
I found that console.log(Chart) returns the path to static asset like /static/media/auto.some-hash-here.cjs but not the class/function definition.
This is my configs - maybe I'm doing smth wrong?
// package.json
{
 "devDependencies": {
    "@babel/cli": "^7.19.3",
    "@babel/core": "^7.20.5",
    "@babel/preset-env": "^7.20.2",
    "@babel/preset-react": "^7.18.6",
    "chart.js": "^4.1.2"
 }
}

// jsconfig.json
{
  "compilerOptions": {
    "baseUrl": "./src",
    "target": "es2015",
    "jsx": "react"
  },
  "include": ["src"],
  "exclude": ["node_modules", "dist"]
}

// babel.config.json
{
  "presets": [
    ["@babel/preset-env", {
      "loose": true
    }],
    ["@babel/preset-react", { "runtime": "automatic" }]
  ]
}

The loose prop does nothing (not resolving anything) in my case (and after diving into the desc of it I'd like to remove it imho :))
Reproducible sample
none
Optional extra steps/info to reproduce
No response
Possible solution
No response
Context
No response
chart.js version
v4.1.2
Browser name and version
No response
Link to your project
No response

@paulrevival Hi. Are you using webpack for bundling? Could you please provide minimal repo with issue reproduction?

@paulrevival Please try Chart.js v4.2.0

Chart.js 4.2.0 and Parcel 2.8.3 or parcel-bundler (v1) 1.6.1 works fine locally, but fails on codesandbox.io with the titular error. Perhaps OP is using codesandbox?

Also experiencing this trying to bundle with<EMAIL_ADDRESS>


VaultException Cannot renew lease Status 400 Bad Request lease not found during rotation of credentials

Describe the bug
When using rotation of credentials I receive a

LeaseEventPublisher$LoggingErrorListener : [RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]] Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk', leaseDuration=PT1M, renewable=true] Cannot renew lease: Status 400 Bad Requestlease not found; nested exception is org.springframework.vault.VaultException: Status 400 Bad Request: lease not found; nested exception is org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"errors":["lease not found"]}

Actually the rotation happens (with some delay. Don't actually understand why) but I always get this exception.
Another thing is that I'm not sure to understand why the RequestedSecret has mode RENEW and when we ask for rotation we keep using mode ROTATION. Is there an impact on the behaviour?
If we look in the logs it starts with

Lease change for DB: (org.springframework.vault.core.lease.event.AfterSecretLeaseRenewedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=RENEW]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/Xxafr9a5kgeEOWxjUI94eL0o', leaseDuration=PT25S, renewable=true])

then it expires so we request a ROTATE

Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseExpiredEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=RENEW]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/Xxafr9a5kgeEOWxjUI94eL0o', leaseDuration=PT15S, renewable=true])
Database credentials lease expired. Replacing RENEW with ROTATE.

Right after we get a newly created lease with ROTATE mode and we update the database credentials

2020-12-17 16:22:47.531  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseCreatedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk', leaseDuration=PT1M, renewable=true])
2020-12-17 16:22:47.532  WARN [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Soft evicting database connections
2020-12-17 16:22:47.538  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Updating database credentials
2020-12-17 16:22:47.740  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-2] o.s.v.a.LifecycleAwareSessionManager     : Renewing token
2020-12-17 16:22:47.782  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-2] o.s.v.a.LifecycleAwareSessionManager     : Token TTL (PT5S) exceeded validity TTL threshold (PT7S). Dropping token.

Then happens a renewal, and at the second one it has rotated the secrets again the secret (looking at leaseId)

Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseCreatedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/ivyX0eR1q8Wr5TNbPeh9C1e7', leaseDuration=PT1M, renewable=true])

and then the previous one on renewal gets the exception. And it only happens after a rotation.
any idea?
Sample
Here is the Configuration I use for renewal
`
@Flogger
@Configuration
@ConditionalOnBean(SecretLeaseContainer.class)
@ConditionalOnProperty(
name = "titan.producer.scheduling.enabled",
havingValue = "true",
matchIfMissing = true)
public class VaultConfiguration {
@Autowired
private TitanProperties titanProperties;

@Autowired
private SecretLeaseContainer leaseContainer;

@Autowired
private ConfigurableApplicationContext applicationContext;

@Value("${spring.cloud.vault.database.role}")
private String databaseRole;

@Autowired
private RefreshScope refreshScope;

@Autowired
private HikariDataSource hikariDataSource;

@PostConstruct
private void configureApplicationRestartOnLeaseExpiration() {
    log.atInfo().log("Configuring application restart on lease expiration");

    String vaultCredsPath = String.format("database/creds/%s", databaseRole);

    leaseContainer.addLeaseListener(leaseEvent -> {
        RequestedSecret requestedSecret = leaseEvent.getSource();

        if (!requestedSecret.getPath().equals(vaultCredsPath)) {
            return;
        }

        log.atInfo().log("Lease change for DB: (%s) : (%s)", leaseEvent, leaseEvent.getLease());

        if (leaseEvent instanceof SecretLeaseExpiredEvent && requestedSecret.getMode().equals(RENEW)) {
            log.atInfo().log("Database credentials lease expired. Replacing RENEW with ROTATE.");
            leaseContainer.requestRotatingSecret(vaultCredsPath);
        }

        if (leaseEvent instanceof SecretLeaseCreatedEvent && requestedSecret.getMode().equals(ROTATE)) {
            SecretLeaseCreatedEvent event = (SecretLeaseCreatedEvent) leaseEvent;
            Credential credentials = getCredentials(event);
            if (credentials == null) {
                log.atSevere().log("Unable to get updated DB credentials. Shutting down.");
                applicationContext.close();
                return;
            }
            updateDatabaseConnection(credentials);
        }
    });
}

private void updateDatabaseConnection(Credential credentials) {
    updateDataSourceCredentialProperties(credentials);
    updateDataSource(credentials);
}

private void updateDataSourceCredentialProperties(Credential credentials) {
    System.setProperty("spring.datasource.username", credentials.getUser());
    System.setProperty("spring.datasource.password", credentials.getPassword());
}

private void updateDataSource(Credential credentials) {

    log.atWarning().log("Soft evicting database connections");
    HikariPoolMXBean dataSourcePoolBean = hikariDataSource.getHikariPoolMXBean();
    if (dataSourcePoolBean != null) {
        dataSourcePoolBean.softEvictConnections();
    }

    log.atInfo().log("Updating database credentials");
    HikariConfigMXBean dataSourceBean = hikariDataSource.getHikariConfigMXBean();
    dataSourceBean.setUsername(credentials.getUser());
    dataSourceBean.setPassword(credentials.getPassword());
}

private Credential getCredentials(SecretLeaseCreatedEvent createdEvent) {
    Map<String, Object> secrets = createdEvent.getSecrets();
    if (secrets.isEmpty()) {
        return null;
    }

    String username = (String) createdEvent.getSecrets().get("username");
    String password = (String) createdEvent.getSecrets().get("password");

    return new Credential(username, password);
}

}
`
my bootstrap.yml config
spring.cloud.vault:       enabled: true       discovery:         enabled: false       fail-fast: true       authentication: APPROLE       kv.enabled: false       generic.enabled: false       database:         enabled: true         role: datasource_${TITAN_PRODUCER_ENVKEY}-${TITAN_PRODUCER_GAMEKEY}_titan_${spring.application.name}         username-property: spring.datasource.username         password-property: spring.datasource.password       config:         order: -10         lifecycle:           enabled: true           lease-endpoints: SysLeases       connection-timeout: 5000       read-timeout: 15000
The role in vault has a default_ttl of 60s and max_ttl of 6m (for testing purposes)
Debug logs

2020-12-17 16:22:37.202  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-2] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.AfterSecretLeaseRenewedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=RENEW]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/Xxafr9a5kgeEOWxjUI94eL0o', leaseDuration=PT15S, renewable=true])
2020-12-17 16:22:47.202 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] cretLeaseContainer$LeaseRenewalScheduler : Renewing lease database/creds/datasource_dev-fallback_titan_titan-producer/Xxafr9a5kgeEOWxjUI94eL0o for secret database/creds/datasource_dev-fallback_titan_titan-producer
2020-12-17 16:22:47.367  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseExpiredEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=RENEW]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/Xxafr9a5kgeEOWxjUI94eL0o', leaseDuration=PT15S, renewable=true])
2020-12-17 16:22:47.368  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Database credentials lease expired. Replacing RENEW with ROTATE.
2020-12-17 16:22:47.529 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] o.s.v.core.lease.SecretLeaseContainer    : Secret database/creds/datasource_dev-fallback_titan_titan-producer with Lease database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk qualified for renewal
2020-12-17 16:22:47.530 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] cretLeaseContainer$LeaseRenewalScheduler : Scheduling renewal for secret database/creds/datasource_dev-fallback_titan_titan-producer with lease database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk, lease duration 60
2020-12-17 16:22:47.531  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseCreatedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk', leaseDuration=PT1M, renewable=true])
2020-12-17 16:22:47.532  WARN [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Soft evicting database connections
2020-12-17 16:22:47.538  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Updating database credentials
2020-12-17 16:22:47.740  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-2] o.s.v.a.LifecycleAwareSessionManager     : Renewing token
2020-12-17 16:22:47.782  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-2] o.s.v.a.LifecycleAwareSessionManager     : Token TTL (PT5S) exceeded validity TTL threshold (PT7S). Dropping token.
2020-12-17 16:22:57.531 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] cretLeaseContainer$LeaseRenewalScheduler : Renewing lease database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk for secret database/creds/datasource_dev-fallback_titan_titan-producer
2020-12-17 16:22:57.623 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] o.s.v.a.AppRoleAuthentication            : Login successful using AppRole authentication
2020-12-17 16:22:57.623  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] o.s.v.a.LifecycleAwareSessionManager     : Scheduling Token renewal
2020-12-17 16:22:57.649  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseExpiredEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk', leaseDuration=PT1M, renewable=true])
2020-12-17 16:22:57.857 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] o.s.v.core.lease.SecretLeaseContainer    : Secret database/creds/datasource_dev-fallback_titan_titan-producer with Lease database/creds/datasource_dev-fallback_titan_titan-producer/ivyX0eR1q8Wr5TNbPeh9C1e7 qualified for renewal
2020-12-17 16:22:57.857 DEBUG [titan-producer,,,] 1 --- [g-Cloud-Vault-1] cretLeaseContainer$LeaseRenewalScheduler : Scheduling renewal for secret database/creds/datasource_dev-fallback_titan_titan-producer with lease database/creds/datasource_dev-fallback_titan_titan-producer/ivyX0eR1q8Wr5TNbPeh9C1e7, lease duration 60
2020-12-17 16:22:57.858  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Lease change for DB: (org.springframework.vault.core.lease.event.SecretLeaseCreatedEvent[source=RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]]) : (Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/ivyX0eR1q8Wr5TNbPeh9C1e7', leaseDuration=PT1M, renewable=true])
2020-12-17 16:22:57.858  WARN [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Soft evicting database connections
2020-12-17 16:22:57.858  INFO [titan-producer,,,] 1 --- [g-Cloud-Vault-1] c.l.t.p.vault.config.VaultConfiguration  : Updating database credentials
2020-12-17 16:22:57.863  WARN [titan-producer,,,] 1 --- [g-Cloud-Vault-1] LeaseEventPublisher$LoggingErrorListener : [RequestedSecret [path='database/creds/datasource_dev-fallback_titan_titan-producer', mode=ROTATE]] Lease [leaseId='database/creds/datasource_dev-fallback_titan_titan-producer/7zukxovKwtAW1oQMpCqJl5Nk', leaseDuration=PT1M, renewable=true] Cannot renew lease: Status 400 Bad Requestlease not found; nested exception is org.springframework.vault.VaultException: Status 400 Bad Request: lease not found; nested exception is org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"errors":["lease not found"]}
]
org.springframework.vault.VaultException: Cannot renew lease: Status 400 Bad Requestlease not found; nested exception is org.springframework.vault.VaultException: Status 400 Bad Request: lease not found; nested exception is org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"errors":["lease not found"]}
]
at org.springframework.vault.core.lease.SecretLeaseContainer.doRenewLease(SecretLeaseContainer.java:713)
at org.springframework.vault.core.lease.SecretLeaseContainer.renewAndSchedule(SecretLeaseContainer.java:589)
at org.springframework.vault.core.lease.SecretLeaseContainer.lambda$scheduleLeaseRenewal$0(SecretLeaseContainer.java:581)
at org.springframework.vault.core.lease.SecretLeaseContainer$LeaseRenewalScheduler$1.run(SecretLeaseContainer.java:891)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.vault.VaultException: Status 400 Bad Request: lease not found; nested exception is org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"errors":["lease not found"]}
]
at org.springframework.vault.client.VaultResponses.buildException(VaultResponses.java:63)
at org.springframework.vault.core.VaultTemplate.doWithSession(VaultTemplate.java:469)
at org.springframework.vault.core.lease.SecretLeaseContainer.doRenew(SecretLeaseContainer.java:751)
at org.springframework.vault.core.lease.SecretLeaseContainer.doRenewLease(SecretLeaseContainer.java:688)
... 11 common frames omitted
Caused by: org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"errors":["lease not found"]}
]
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:101)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:184)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:125)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:780)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:738)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:672)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:581)
at org.springframework.vault.core.lease.LeaseEndpoints$2.renew(LeaseEndpoints.java:88)
at org.springframework.vault.core.lease.SecretLeaseContainer.lambda$doRenew$2(SecretLeaseContainer.java:752)
at org.springframework.vault.core.VaultTemplate.doWithSession(VaultTemplate.java:466)
... 13 common frames omitted

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

@fercam24 Did you figure out what caused the "400 Bad Request: lease not found" exceptions? I am facing the same, although it gets printed as a WARN message. But it pollutes the logs with stacktraces.

see https://github.com/spring-cloud/spring-cloud-vault/issues/256


Subdomain Routing in vuejs

Hi everybody. Our first vuejs project next to end. But I faced a problem with routing subdomains. Users can use their user names as subdomain to show their contact informations for example  : http://kamuransonecek.exlample.com
how can I detect username from subdomain to routing the site pages?
'http://:userName.example.com': {
    component: require('./views/userinfo')
  },

This codes not work as I espected. I wait for your helps. Thanks

If this is posible I'll be very surprised.

+1

You shouldn't need vue-router to get this. Just use window.location.host and use regex to extract it yourself.

My solution is this :
'/': {
    component: function() {
      var reg = new RegExp("www|piklook|test|localhost:8000");
      var parts = window.location.host.split(".");
      return reg.test(parts[0]) ? require('./views/home') : require('./views/subdomain');
    }()
  },

I hope it will be helpful for others.

What about SSR? How to get domain name on server?

For SSR see https://github.com/nuxt/nuxt.js/issues/2378

@zolotov88 if you are using ssr you will only want use window when it is available and if you are using express use the 'req' param of your middleware to get the subdomain on first request and the use that to match routes with.

in nuxt with dev server I'm getting window is not defined even if I'm using !process.server. How to handle that?


add missing header end comments

ensures a consistent usage in header files
also add a blank line after the copyright header where missing
also remove orphan new-lines at the end of some files

utACK


Create webpage with user info

Created a jekyll page to show all the info for all users. Also, added service-worker to cache images to increase load time. Page link: https://collinsnji.github.io/github-users-africa/users.html

@Ch3ck please review :)

@collinsnji user data is not sorted.


Remove redundant namespaces 2

All builds restarted and are working now - will open a new branch for part 3.
Part 1/2 are in this branch so can be merged for story #51

Coverage remained the same at 100.0% when pulling e149483d9d951dc45810f0bb0cfa6270019a824e on remove-redundant-namespaces-2 into 62113aac24e72ba819b1f5fc8978288bbba04b58 on master.


Parent addtemp sum time if player already has temp perm/group

Hello, how about the command parent addtemp on a player that already has the target addtemp group/perm sums up the time instead of a message warning that he already has it?
With this the user can extend their time before the temp/group expires!

Thanks for the suggestion, I've been meaning to do this for a while 👍

Any update? Would be REALLY handy.

This has been implemented for for more than a year. Check your config and the Command Usage page.

Oh, thanks for your quick response. Sorry for bothering, I was blind :D


name within 'gaffer python' script

Hey,
I'm just starting to get my head around Gaffer, mainly as a non-interactive tool for doing basic image processing.
I'm writing python scripts that will be launched using "gaffer python".
One thing that I just noticed is that _name_ will be "_builtin_" when in gaffer, whereas it would be "_main_" when launching using straight python.

Hi Hugh,
I think @ivanimanishi came across this and also felt it could be considered a bug, so I'm just linking him in. As a workaround for now, you may find that gaffer env python myScript.py will work as you expect.
It's really cool that you're taking a look at Gaffer, but do bear in mind that the image processing side of things is currently much less developed than the 3d side of things, and is also developing at a slower pace...
Cheers…
John

Hey John,
Understood about the level of work on the image processing side. What I'm after is incredibly simple stuff - just looking to replace command-line Shake in our pipeline for the basic stuff like generating thumbnails. I was seriously considering writing a Deep EXR reader for Shake... Luke Goddard suggested that I wake a look at Gaffer...
Gaffer may not support Deep EXRs yet, but I'd rather implement it for a tool that wasn't discontinued 10 years ago!
Any time I find that the image side of Gaffer is missing something, I'll have a look at implementing it myself - are you open to pull requests?

Cool - just wanted to caveat things a bit before you rely on it too much and only then start finding the missing functionality. We're definitely open to pull requests, but do give us a shout before embarking on anything major to make sure we're all in agreement on the approach…
Cheers…
John

Cool stuff.
One thing - do you have a place for general discussion? Or would you generally use issues for that? I don't want to raise something as an issue if it's been discussed and decided.
(In this case, it's about the (in)ability to pass flags beginning with "-" through to the gaffer python app.)

Oh, I missed your comment about "gaffer env python" for this... This actually fixes both of my issues here - thanks for flagging.

We have a google group which we use for general discussion/questions. That would be the right place to open an initial discussion like "deep would be cool, how might it fit into gaffer?" or to ask "hey, does this seem right?". Those sorts of discussions can then lead to tickets which are hopefully quite specific about some action which needs to be taken before the ticket can be closed. The "can't pass flags beginning with '-'" thing seems clear cut enough just to be an issue straight away.
Glad the workaround is doing the job for now though...

Or not... (sorry for spamming the issue a little!)
Running "gaffer env python myScript.py", when I do an "import GafferImage", gives me:
Traceback (most recent call last):
  File "/mount/users/hughmacdonald/development/pipeline/develop/scripts/createThumbnail.py", line 7, in <module>
    import GafferImage
  File "/mount/apps/linux/gaffer/<IP_ADDRESS>/python/GafferImage/__init__.py", line 45, in <module>
    from _GafferImage import *
TypeError: No to_python (by-value) converter found for C++ type: Gaffer::Plug::Flags

Running the same thing with "gaffer python myScript.py" does the import fine.

My interim workaround for the arguments is the following line before running argparse:
sys.argv = [a.replace("_", "-", 1) if a.startswith("_") else a for a in sys.argv]

And passing all arguments in as "_f" instead of "-f". A little horrible, but it'll get me through for now!

Just make sure you import Gaffer before you import GafferImage and that TypeError: No to_python (by-value) converter found for C++ type: Gaffer::Plug::Flags should go away.

Another thing to note before you dive head in to GafferImage, we are currently planning several internal re-designs, so you'll need to be prepared for the API/ABI to break fairly regularly, for a little while at least. Like John says, it receives less love than the 3d side for sure, so the updates might feel a bit slow going... If you're interested in helping out with any of that, we can get into more detail off list, and divy up the issues a bit.


use toFixedAsString and DoubleProperty in diagnosticProperties

Description
use DoubleProperty instead of DiagnosticProperty<double> and use toFixedAsString(1) in place of String interpolation in several cases that were flagged during rolling flutter web.
Related Issues
https://github.com/flutter/flutter/pull/33349

Updated to use debugFormatDouble


Error with Openseespy

Description
What steps will reproduce the problem?

Please find the errors for your information. Thanks.
Traceback
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_namespace_view:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call get_var_properties:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range
Exception in comms call is_special_kernel_valid:
  File "C:\Program Files\Spyder\pkgs\spyder_kernels\comms\commbase.py", line 317, in _comm_message
    buffer = cloudpickle.loads(msg['buffers'][0],
IndexError: list index out of range

Versions

Spyder version: 5.4.0  (standalone)
Python version: 3.8.10 64-bit
Qt version: 5.15.2
PyQt5 version: 5.15.7
Operating System: Windows 10

Dependencies
# Mandatory:
atomicwrites >=1.2.0                 :  1.4.1 (OK)
chardet >=2.0.0                      :  5.0.0 (OK)
cloudpickle >=0.5.0                  :  2.2.0 (OK)
cookiecutter >=1.6.0                 :  2.1.1 (OK)
diff_match_patch >=20181111          :  20200713 (OK)
intervaltree                         :  None (OK)
IPython >=7.31.1;<8.0.0              :  7.34.0 (OK)
jedi >=0.17.2;<0.19.0                :  0.18.1 (OK)
jellyfish >=0.7                      :  0.9.0 (OK)
jsonschema >=3.2.0                   :  4.17.0 (OK)
keyring >=17.0.0                     :  23.9.3 (OK)
nbconvert >=4.0                      :  7.2.3 (OK)
numpydoc >=0.6.0                     :  1.5.0 (OK)
paramiko >=2.4.0                     :  2.11.0 (OK)
parso >=0.7.0;<0.9.0                 :  0.8.3 (OK)
pexpect >=4.4.0                      :  4.8.0 (OK)
pickleshare >=0.4                    :  0.7.5 (OK)
psutil >=5.3                         :  5.9.3 (OK)
pygments >=2.0                       :  2.13.0 (OK)
pylint >=2.5.0;<3.0                  :  2.15.5 (OK)
pylint_venv >=2.1.1                  :  2.3.0 (OK)
pyls_spyder >=0.4.0                  :  0.4.0 (OK)
pylsp >=1.6.0;<1.7.0                 :  1.6.0 (OK)
pylsp_black >=1.2.0                  :  1.2.1 (OK)
qdarkstyle >=3.0.2;<3.1.0            :  3.0.3 (OK)
qstylizer >=0.2.2                    :  0.2.2 (OK)
qtawesome >=1.2.1                    :  1.2.1 (OK)
qtconsole >=5.4.0;<5.5.0             :  5.4.0 (OK)
qtpy >=2.1.0                         :  2.2.1 (OK)
rtree >=0.9.7                        :  1.0.1 (OK)
setuptools >=49.6.0                  :  65.5.1 (OK)
sphinx >=0.6.6                       :  5.3.0 (OK)
spyder_kernels >=2.4.0;<2.5.0        :  2.4.0 (OK)
textdistance >=4.2.0                 :  4.5.0 (OK)
three_merge >=0.1.1                  :  0.1.1 (OK)
watchdog                             :  2.1.9 (OK)
zmq >=22.1.0                         :  24.0.1 (OK)

# Optional:
cython >=0.21                        :  0.29.32 (OK)
matplotlib >=3.0.0                   :  3.6.2 (OK)
numpy >=1.7                          :  1.22.4 (OK)
pandas >=1.1.1                       :  1.5.1 (OK)
scipy >=0.17.0                       :  1.9.3 (OK)
sympy >=0.7.3                        :  1.11.1 (OK)

# Spyder plugins:
spyder_terminal.terminalplugin 1.2.2 :  1.2.2 (OK)

Hey @pdhhiep, thanks for reporting. This problem happens because you installed spyder-kernels 3.0 in an external environment that you connected to Spyder.
To fix that, you need to install spyder-kernels 2.4 instead in that env, since you're using Spyder 5.4 (Spyder and spyder-kernels versions need to be in sync for them to work as expected).


Check if there is actual difference in the performance if the DB connection pool is using the recommended DB driver class

the recommended DB driver class or maybe it will help with the transaction deadlocks?
Ordering of the updates should help with the transaction deadlocks. (https://gist.github.com/isopov/9af3864888b85c6cffc4 and some comments in the TFB issues/PRs).
Also the Resin documentation strongly recommends usage of the JDBC more advanced connection options if available. The Driver class is a last resort.
Also check the setting of the PostgreSQL about the server-side prepared statement threshold.

Also the Resin documentation: http://caucho.com/resin-4.0/admin/database.xtp#JDBC2.0-ConnectionPoolDataSource

52805 vs 56594 RPS for the DB test. Submitting a PR with only changed the datasource.
The prepared statement threshold is not very helpful for the benchmarks because the very small number of different statements is used - after the warm up and the various test cases we should see statement reuse.


[RPC] NBXplorer Integration - missing RPC methods

These are required to integrate with NBXplorer:

getnetworkinfo
getblockchaininfo
fundrawtransaction
signrawtransaction
importprivkey
lockunspent

As per #3356 getblockheader needs to be enhanced to be compatible with NBitcoin

We have fundrawtransaction on api not sure if we have it on RPC

What's left to do on this?

What's left to do on this?

Are you able to help?

Hey, Mike sorry for the delay responding ... I can't help directly but I maybe able to get help, if I knew what was left to do.

I am quite sure this 2 methods are now implemented
getnetworkinfo
getblockchaininfo


Offer a new [SliverCustomExtentList] for developer to improve ListView performance.

ListView backed by SliverList has a poor performance when jumping to a long-distance scroll offset. There are already too many issues that have been filed against this problem, such as #31637 and #52207 #55144 #59404 #61193.
The key point of the SliverList problem is that it has no idea of which item child should be constructed to fit the current viewport offset. So it just goes through the list and builds every child one by one until it reaches the viewport area. That is also the reason why SliverFixedExtentList is more efficient as it can just calculate the item index by dividing the scroll offset by the fixed extent.
To gift SliverList with the efficiency of SliverFixedExtentList, it needs to know the extent of every child item without building it which is diverse from lists to lists. That is to say, it is impossible to work well by framework only. In other words, it is the developer's responsibility to figure out its specific rules of the extent, the relationship between child index and scroll offset.
To get this right, here comes this PR offering a new SliverCustomExtentList with its SliverCustomExtentListAssistant. With this PR, developers can implement their own SliverCustomExtentListAssistant to resolve the conversion between child index and scroll offset, helping SliverCustomExtentList to perform layout as quickly as SliverFixedExtentList. The only thing that a developer should pay attention to is to resolve the calculation efficiently given that it is the performance bottleneck now.
For flutter developers, if you thought this PR is helpful for your app or not, please pick an emoji reaction to let me know, thanks.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@dnfield hi~ would like you to review this PR as you've engaged in those related issue discussions.

Thanks for the contribution!
While I haven't taken a close look yet, this looks like it could also be released as a package on pub.dev. Have you considered that?

Thanks for the contribution!
While I haven't taken a close look yet, this looks like it could also be released as a package on pub.dev. Have you considered that?

Yeah, pub.dev is an option.
First, I think this is a common case that most developers encounter.
Secondly, SliverCustomExtentList is an abstraction for helping developers to handle their own algorithms more than a full implementation.
This matches the Flutter 2022 roadmap strategy of raising the level of abstraction so that developers can benefit, so I prefer to land it onto the framework rather than a solution package, meanwhile, in my opinion, SliverPrototypeExtentList might be stripped to a package as it's sort of duplication of SliverFixedExtentList.

any update here?

@Piinks Thanks for your comment.
SliverCustomExtentList is indeed designed to be efficient with an assistant implemented by developers who do know the size of their widgets ahead of time. If they do not know the size, it can't help. The test cases of this PR have shown a simple usage of SliverCustomExtentList. And, we have a real scenario use SliverCustomExtentList in Quark album, it's written in Chinese, sorry for any inconvenient. This application shows an album, all the images are downloaded from the server. It will first get some info from the server, including the images count of each date. So it can resolve the extent in advance.
I shall look into incorporating it into SliverList and have an update commit later. But I have no idea about where the benchmark codes are, would you please paste a link here and I will make sure that it covers. Thank you!

@Piinks I've had [SliverCustomExtentList] incorporated into [SliverList] and would like you to review it again.
It's not incorporated into [ListView] under some concern that custom extent assistant is treated as a sort of complicated usage that requires a developer of more acknowledgment about the essence of slivers.

(triage): Looks like there are some analyzer issues with this PR. Could you fix those? Thanks.

(triage): Looks like there are some analyzer issues with this PR. Could you fix those? Thanks.

done

@goderbauer @Piinks, I appreciate for your comments! I'd close this PR and seek a chance to push up to pub.dev.


VR/3D-based client?

I don't really see the point of this (fun, maybe?) since VR and 3D don't necessarily work with card games (unless we add nice visual effects and such).
A-Frame is a framework for easily making 3D/VR scenes. Since it is mostly based around HTML and since we're going to be switching to React, we wouldn't necessarily have to re-write the entire client: we would just make a second sub-set of presentational components that instead use "A-Frame HTML" rather than regular HTML.
That being said, it wouldn't be much of a change in our plan for the design of the client since this will all fit nicely in with React/Redux.

Realistically this likely won't happen anywhere in the foreseeable future #144


md5sum mismatch in resharded OPT-175B

I've consolidated the 992 shards of the OPT-175B model into 8 files, following the instructions here: https://github.com/facebookresearch/metaseq/blob/main/projects/OPT/download_opt175b.md#reshard-the-shards
but the md5sums for all of the shards don't match the ones in that README. Here are mine:
reshard-model_part-0.pt,ca52a4d1a3d1672b5249481169078469
reshard-model_part-1.pt,5c776fbc0f212df52fbf83b0ca4c7a64
reshard-model_part-2.pt,73e90bef8877f96674800712269149ae
reshard-model_part-3.pt,94d9442ec9fe04eab633df27d6e3ab5a
reshard-model_part-4.pt,dac742fe02fba6d500375bdd0a5113ea
reshard-model_part-5.pt,42485e9f21c759cae1f22079c0971a0b
reshard-model_part-6.pt,48ee0e983a8cde23b7544213e329afec
reshard-model_part-7.pt,ac62284b7f93d1f2a28eef6779cabeae

I've verified that the md5sums on all 992 individual shards that I've downloaded match the ones in https://github.com/facebookresearch/metaseq/blob/main/projects/OPT/assets/opt175b_md5sum_shards.csv .
One possible explanation is that I'm using CUDA 11.1 rather than 11.3 as specified on https://github.com/facebookresearch/metaseq/blob/main/docs/setup.md (we have a managed cluster that it's hard to install 11.3 on), but I didn't expect that to affect the model weights. Could it? I've otherwise followed the metaseq install directions exactly.

@tangbinh any chance the new reshard script would change the md5sums here?

@tangbinh any chance the new reshard script would change the md5sums here?

Thank you for surfacing the issue @dpfried. @suchenzang Indeed, the new script metaseq/scripts/reshard_fsdp.py potentially changes the md5sums since previously we didn't reshard the optimizer state dicts as we do now. There's also an option to unflatten the weights. Let me update the docs to reflect these changes.

The issue has been addressed in #591. @dpfried Please let us know if you still have concern.

@tangbinh I don't think this issue has been resolved. When I use the latest version of the code (commit b47f8d1) and run the command specified in the README:
for j in {0..7}; do
    python -m metaseq.scripts.reshard_fsdp \
    --input-glob-pattern "/path/to/raw/checkpoints/checkpoint_last-model_part-$j-shard*.pt" \
    --output-shard-name "/path/to/resharded/checkpoints/reshard-model_part-$j.pt" \
    --num-output-shards 1 --skip-optimizer-state True --unflatten-weights True
done

I still get the following outputs:
ca52a4d1a3d1672b5249481169078469	reshard-model_part-0.pt
5c776fbc0f212df52fbf83b0ca4c7a64	reshard-model_part-1.pt
73e90bef8877f96674800712269149ae	reshard-model_part-2.pt
94d9442ec9fe04eab633df27d6e3ab5a	reshard-model_part-3.pt
dac742fe02fba6d500375bdd0a5113ea	reshard-model_part-4.pt
42485e9f21c759cae1f22079c0971a0b	reshard-model_part-5.pt
48ee0e983a8cde23b7544213e329afec	reshard-model_part-6.pt
ac62284b7f93d1f2a28eef6779cabeae	reshard-model_part-7.pt


filter out "temporarily closed" data

Hi, are you able to filter out the "temporarily closed" data?

It is not supported.


Use Output tab for Task - Gradle Server

Is your feature request related to a problem? Please describe.
Having the Gradle Server for this extension show up in the Terminal section of the bottom pane is somewhat annoying because I expect that space to be for terminals that I launch and use. Most extensions show their output under the Output tab of the same bottom pane. I believe that supports input too for use cases where the Gradle Task might need console input.
Describe the solution you'd like
It would be nice if the Gradle Server output could be shown in the output tab. If this isn't possible because the Output tab lacks a feature of the Terminal tab, at least have an option where users can toggle where it shows up. None of my Gradle tasks require user input so showing their output under Output if this was a restriction wouldn't be an issue.
Describe alternatives you've considered
None.
Additional context

VSCode 1.46 (May 2020)
Extension Version 3.3.0

Hi, thanks for the feature request. It looks like you are mentioning two things here:

The Gradle Server
Executed Gradle Tasks

In both cases, yes they are run in the terminal.
For the first case, I make the terminal visible so that users can see exceptions and stacktraces thrown by the server if there are any errors. I could potentially improve this, and hide the server terminal, and instead log everything to disk or to the output panel. This is something i'm willing to consider.
For the second case, the design of the extension is that Gradle tasks are run as vscode tasks. This is kinda the selling point of the extension: it creates VS Code tasks from the Gradle tasks (so you can, for example, use the "Run Task" command to run gradle tasks). VS Code tasks are run in an integrated terminal.
The output panel is meant for displaying simple text (like logs or errors), it cannot for example render color text as it does not support ANSI control characters.
There are other issues like interacting with the task process. For example, a gradle task might take a while to run. While it's run in the terminal, you can cancel the task as you would normally in a terminal (eg ctrl/cmd +c), but you couldn't do this in the output panel.
So you have to look at it as: extension output vs process output.
If I were to redirect output to the output panel, i'm not sure how I would manage the output channels. Does each task have it's own output channel? If so, the user cannot close/remove the channels, so you'll end up with a long list of output channels. Do you want all tasks to output to the same output channel? I think this might get confusing.

That makes sense, I guess it would make sense for Gradle Tasks to run in a terminal since they would run once I launch the corresponding VSCode task created by the extension. I thought about it and my only real issue was with having the initial Gradle Server output show up as a Terminal instead of in Output because it creates a Terminal as soon as I launch VSCode.
Like you said, I think separating the two separate parts here and moving (or offering the option to move) the Gradle Server output to the Output tab while keeping Gradle Task output in the Terminal tab (creating a Terminal when a task is launched) makes the most sense.

Cool, I'll make it so the "Task - Gradle Server" terminal is hidden by default, but users can show it via a setting 👍
(Somewhat related to https://github.com/badsyntax/vscode-gradle/issues/512, where the server shows the wrapper download status.)

dev notes: i spent a bit of time exploring the API. you can set task.isBackground but this does not hide the task terminal, so it's not possible to create tasks with hidden terminals AFAICT. i would need to start the server without using a vscode.Task and instead use the node apis.

Would using the node APIs and piping output to an Output Channel interfere with how the Gradle Tasks are run?
I'm not sure how this would work, I don't have much experience developing VSCode extensions but somewhere near GradleServer.ts:60 would have something like this I'm assuming?

let _channel: vscode.OutputChannel;
function getOutputChannel(): vscode.OutputChannel {
	if (!_channel) {
		_channel = vscode.window.createOutputChannel('Gradle Server');
	}
	return _channel;
}

const { stdout, stderr } = await exec(getGradleServerCommand(), { cwd });
if(stdout && stdout.length > 0) {
    getOutputChannel().appendLine(stdout);
}
if (stderr && stderr.length > 0) {
    getOutputChannel().appendLine(stderr);
    getOutputChannel().show(true);
}

// INSTEAD OF (DEPENDING ON USER SETTING)
// this.taskExecution = await vscode.tasks.executeTask(task);

Would using the node APIs and piping output to an Output Channel interfere with how the Gradle Tasks are run?

Nop! The output streams of the server are only related to the server itself (like logging or errors). Output streams of the Gradle Tasks are streamed to the client client via gRPC and rendered in the custom integrated terminal:
https://github.com/badsyntax/vscode-gradle/blob/82a3b403382a599754c07cf07a9b450d23393410/gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/RunBuildHandler.java#L54-L71
So your example is on the right path, but as the server process is long running, we'd need to use cp.spawn and pipe the stderr and stdout streams to the output channel (probably using OutputChannel.append). I'm thinking to use the same "Gradle Tasks" output channel with a different prefix. So you would see logs similar to:
[info] [gradle-server] [main] INFO com.github.badsyntax.gradle.GradleServer - Server started, listening on 64258
[error] [gradle-server] [grpc-default-executor-3] ERROR com.github.badsyntax.gradle.handlers.RunBuildHandler - Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-6.4-bin.zip'.

I'll probably adjust the Java log format to exclude redundant log levels (INFO,ERROR etc)

I've added some initial code with https://github.com/badsyntax/vscode-gradle/pull/540

I'm happy with #540 now, but this change could "break" things for users who have been relying on setting Gradle/Java ENV vars via terminal.integrated.env.*. Not sure what to do about that yet.

Sorry for the delay! Released with 3.4.0. Can you update the extension and test this change? Thanks!


Dashboard docs

Addresses and closes #71.
I have done two things here:

Added an example for SGE.
Added an example on how to access dashboard.

cc: @jhamman @mrocklin.

Btw, you're awfully early, @mrocklin!

East coast time, It's 8:30am

Looks like the test failed on a piece of code. Anything I could help with here, @mrocklin?

Not sure.  Maybe the SLURM cluster took a while to fire up?  I suspect that any of the other maintainers has more experience here than I do.

Thanks @ericmjl !


Using this library, there was an error running on esp32 arduino

When running esp32 on the arduino ide and using this library, an error occurred. Below is a screenshot of the error prompt. Please help identify and fix the problem.

Compiles fine for me using Arduino 1.8.19, the latest version of the library downloaded directly from GitHub, and compiling for ESP32 Dev. Please confirm that you are using the latest version of the library downloaded directly from GitHub (Arduino's library manager sometimes doesn't catch version updates). If you're still encountering issues, please provide the Arduino version number and the exact board that you are compiling for as well as the version of the ESP32 board software.

Compiles fine for me using Arduino 1.8.19, the latest version of the library downloaded directly from GitHub, and compiling for ESP32 Dev. Please confirm that you are using the latest version of the library downloaded directly from GitHub (Arduino's library manager sometimes doesn't catch version updates). If you're still encountering issues, please provide the Arduino version number and the exact board that you are compiling for as well as the version of the ESP32 board software.

使用 Arduino 1.8.19 编译得很好，Arduino 32.32.<> 是直接从 GitHub 下载的最新版本的库，并为 ESP<> Dev 编译。请确认您使用的是直接从 GitHub 下载的最新版本的库（Arduino 的库管理器有时无法捕获版本更新）。如果您仍然遇到问题，请提供 Arduino 版本号和您正在编译的确切开发板以及 ESP<> 开发板软件的版本。

I am using the latest version, please take a screenshot, the IDE is 2.1

Do you have these error prompts when trying out version 2.0 of the Arduino IDE?

No, still compiles without errors or warnings. Again, recommend downloading and installing directly from GitHub rather than the builtin Arduino library manager.

好的，谢谢，我再试一试，
OK, thank you. I'll try again.

I manually installed the latest library, but there was still an error. The error message is as follows. What are the possible reasons?

I was able to get it to compile by using the ESP32 dev module for the board.

I was able to get this working, I only needed to use the RX input so the code chages to:

Note that I am using the RX 2 pin on the ESP 32. which is GPIO 16.

#include "sbus.h"

/* SBUS object, reading SBUS */
// bfs::SbusRx sbus_rx(&Serial2, 26, 27, 1, 1);
bfs::SbusRx sbus_rx(&Serial2, 16, 17, true);
/* SBUS object, writing SBUS */
// bfs::SbusTx sbus_tx(&Serial2, 26, 27, 1, 1);
/* SBUS data */
bfs::SbusData data;

void setup() {
  /* Serial to display data */
  Serial.begin(115200);
  while (!Serial) {}

  delay(2000);

  /* Begin the SBUS communication */
  Serial.println("Begin SBUS...");
  sbus_rx.Begin();
  // sbus_tx.Begin();
}

void loop() {

  if (sbus_rx.Read()) {
    /* Grab the received data */
    data = sbus_rx.data();
    /* Display the received data */
    for (int8_t i = 0; i < data.NUM_CH; i++) {
      Serial.print(data.ch[i]);
      Serial.print("\t");
    }

    /* Display lost frames and failsafe data */
    Serial.print(data.lost_frame);
    Serial.print("\t");
    Serial.println(data.failsafe);
    /* Set the SBUS TX data to the received data */
    // sbus_tx.data(data);
    /* Write the data to the servos */
    // sbus_tx.Write();
  }
}

Example

Hope this helps

I also can work on esp32 board with Arduino IDE 2.0，but can not work for esp8266

are you using a 5 to 3.3v converter?

https://github.com/Witty-Wizard/SerialIO
Try using this library


export file adjustments

Proposed Changes

when splitting an export window into multi size 1 batches, adjust the end timestamp to avoid hash collisions on Android device matching.

Release Note
Update batch num/size and timestamp handling

addressed all comments by write comments int he code

/hold

/hold cancel

@whaught
merged in your suggestions, please lgtm again


Partial Bun password API support

Hey! Thank you for this project. I've been meaning to get around to this and I finally have some cycles to start work.
The following functions have been "implemented" to the best of my ability from the Bun.password namespace:
pub fn bun_password_hash(password: input, algorithm: Option(Algorithm)) -> Promise(String)
pub fn bun_password_verify(password: input, hash: input_2, algorithm: Option(Algorithm)) -> Promise(Bool)
pub fn bun_password_hash_sync(password: input, algorithm: Option(Algorithm)) -> Promise(String)
pub fn bun_password_verify_sync(password: input, hash: input_2, algorithm: Option(Algorithm)) -> Promise(Bool)
pub fn bun_argon2i_algorithm(memory_cost: Option(Int), time_cost: Option(Int)) -> Algorithm
pub fn bun_argon2id_algorithm(memory_cost: Option(Int), time_cost: Option(Int)) -> Algorithm
pub fn bun_argon2d_algorithm(memory_cost: Option(Int), time_cost: Option(Int)) -> Algorithm
pub fn bun_bcrypt_algorithm(cost: Option(Int)) -> Algorithm

Some things to note:

Bun doesn't implement CompressionStreams yet, so I had to filter out those tests so they don't run when the platform is bun
The API for Bun.password.hash requires multiple different kinds of arguments, so I made an Algorithm wrapper to identify algorithms, and the password/hash parameters are generic for flexibility

You can check out the "types" for the password namespace here: https://github.com/oven-sh/bun/blob/main/packages/bun-types/bun.d.ts#L1556

In a previous conversation about a month ago, it was determined that this pull request was out of scope of the project. I personally don't understand why, but there's no point in keeping this pull request open if it won't be merged.


Add Visual Studio guidance to quickstart

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/add-ins/quick-start.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@jasonjoh -- please test/verify the Visual Studio guidance in this article before merging this PR (by attempting to use the instructions to create/test the add-in). I had some trouble getting my VS project to run, but believe it's due to a configuration issue on my part, not due to an issue with the instructions -- but I'd suggest that you confirm.
Also -- note that I made a change to the "Any editor" section of the article re guidance about the Certificate that Yo Office generates. FYI, Yo Office was updated (on 12/18) so that it now generates a valid certificate...you still need to go through the process of trusting the cert, but once you do that, the add-in will run via HTTPS. If you have other articles which provide guidance about using Yo Office, I'd suggest you update these articles in a similar fashion.


集成后编译报错

as编译时出现这个
Error:Execution failed for task ':app:processMallDebugManifest'.

Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:44:9-43
is also present at [com.github.frank-zhu:pullzoomview:1.0.0] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher).
Suggestion: add 'tools:replace="android:icon"' to  element at AndroidManifest.xml:40:5-449:19 to override.

@hexianqiao3755 add 'tools:replace="android:icon"' to element at AndroidManifest.xml:

can also use tools:replace="icon, label" for icon and label Manifest merger failed.


README Rewrite

The README has been a bit of a mess for a while, so I rewrote it.
Highlights :

Added a TOC
Moved the breaking changes into their own section that is at the end
Added a section on Bulk
Split up "Getting Started" into more logical pieces, and have separate paths for GraphQL vs REST
Highlighted the importance of GraphQL for clients

Added links to the new docs so that they don't have to redirect, rewrote the authentication section to account for the new tutorial format, changed forum links to the new forums, and added GraphQL Reference link at the end!


What about running the same queries

Thanks for this demo guys. I'm running a similar setup. My challenge is, that I want to run the same kind of queries both in Gatsby and in ApolloClient. I want my search page to render the first 10 results from Gatsby, after that, the user can search and filter with live data via ApolloClient. Also, I have a client-only route fetching for an item that hasn't built yet. All of this works, if I set up 2 different queries. Because the shape is just a bit different. gatsby-source-graphql wraps the query with an extra something parent, typenames get prepended with SOMETHING_. This wouldn't be too bad if I could share the requested fields between the gatsby graphql``` and apolloClient gql``` but gatsby wont allow me to interpolate variables into the graphql block.
Hope anyone has any idea's to share more between the 2

you could potentially use a fragment, but unfortunately Gatsby's GraphQL setup isn't compatible with other tools, so you'll probably need the two queries 😕
you may want to ask on one of Gatsby's official channels? they might know something I don't

Thanks for the response @jlengstorf , I'll try to explore elsewhere.


How might we abstract DynamoDB?

DynamoDB is an essential part of a serverless architecture in AWS. Laconia encourages technologists to not be dependent on the cloud in their core application. At the same time, I'm also reluctant to introduce an unnecessary abstraction. Is there a middle ground that covers 80% of user's use cases? How will the API look like if we want to help developers use DynamoDB?

I think your instinct about unnecessary abstraction is sound. Are there concrete use cases people are seeing in the wild where support would help? In most cases I'd imagine a fair amount of implementation specific detail which would be better encapsulated in a custom adapter rather than using a generic framework.
Only thing I could think of is triggering a Lambda on data changes?

Read / write
Can you elaborate more on "fair amount of implementation specific detail which would be better encapsulated in a custom adapter"?
My use case is pretty much driven by data storage i.e. repository. As my background on this is driven much by spring-data, I was thinking that we could adopt a similar abstraction for DynamoDB (seems like someone has made the implementation in spring-data for DynamoDB too!)
Apart from repository pattern as an abstraction, what other abstraction can it look like?
Trigger
I don't have personal experience on this one that I don't actually know what people would want. That said, I think a simple adapter would be helpful, just like how we support Kinesis now: https://laconiajs.io/docs/api/adapter#kinesis-app. I'll file a separated issue on this one.

Re: more elaboration... DynamoDB supports (fairly) rich query language which would be hard to abstract over. Targeting a spring-data alike abstraction though sounds very do-able.


[SPARK-44913][SQL] DS V2 supports push down V2 UDF that has magic method

What changes were proposed in this pull request?

Right now we only support pushing down the V2 UDF that has not a magic method. Because the V2 UDF will be analyzed into the ApplyFunctionExpression which could be translated and pushed down. However, a V2 UDF that has the magic method will be analyzed into StaticInvoke or Invoke that can not be translated into V2 expression and then can not be pushed down to the data source. The magic method is suggested.
Why are the changes needed?

This PR adds the support of pushing down the V2 UDF that has a magic method.
Does this PR introduce any user-facing change?

Yes, now the V2 UDF with the magic method could be pushed down.
How was this patch tested?

New UTs.
Was this patch authored or co-authored using generative AI tooling?

No

Gentle ping @cloud-fan @sunchao, could you please also take a look at this? Really appreciate.

Apologies @ConeyLiu , just saw this PR. I think this makes sense. Could you rebase it? I'll review afterwards.

@sunchao that's OK, rebased.

Thanks! merged to master branch

Thanks @sunchao @beliefer @cloud-fan


Add filter[assignee] support on WorkItem Endpoint

Adds gin index to all work_items.fields

Fixes #527
Contributed-by: Richa Rupela<EMAIL_ADDRESS>

Current coverage is 69.73% (diff: 100%)

Merging #596 into master will increase coverage by 0.20%

@@             master       #596   diff @@
==========================================
  Files            74         74
  Lines          4267       4286    +19
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           2967       2989    +22
+ Misses         1014       1012     -2
+ Partials        286        285     -1

Powered by Codecov. Last update 791edb6...b3119d2


Create some info on Power Supplies

Make a small page with recommended PSUs and the case that poor supplies will at times cause SD card corruption, etc
 Front conversations

@ntzovanis Maybe you can help here me here? Would it be relevant to have this information now.

@vipulgupta2048 sure, what's the context on this? PSUs for what type of board? What is it that we're trying to achieve here?

I suspect the original context here was people using "cheap" micro-USB PSUs (e.g. a generic phone charger) to power e.g. a Raspberry Pi. If the PSU is insufficient and the Pi starts doing something CPU-intensive (or controls something with its GPIO pins), then the Pi may draw more current than the PSU can supply, which will cause the Pi to brown-out; and like any unexpected-reset-event this can cause the filesystem on the SD card to become corrupt (which in the worst-case-scenario might cause the Pi to fail to boot until the SD card is re-flashed).

Hey @ntzovanis I have taken up some Docs Cleanup this time round. I don't have a lot of context for you apart from the front conversation linked in the first message by Shaun (4 years old). Reading from the messages there, it seems like the issue was diagnosed as SD card corruption due to heavy read/writes. Another leading cause for that might be an inefficient PSU that they might be using as lurch suggested above. Hence, was my question if we could have any relevant information of PSU that folks could use according to their board type which I agree is a very broad, not to mention vague question.
What we can do?

How about a small FAQ answer on the FAQ page about better reading voltage requirements to pick the right PSU for the board that customers might be using?
Any useful advice other than what's already mentioned here under power - https://www.balena.io/docs/learn/welcome/production-plan/#hardware

If nothing comes to mind, the issue is infact 4 years old. Balena now supports a ton of devices, so having info on specific PSU's for each board might not be a list that would be beneficial to maintain. We can close the issue cc @shaunmulligan if you have thoughts since you created the issue.

How about a small FAQ answer on the FAQ page about better reading voltage requirements to pick the right PSU for the board that customers might be using?

Just a quick comment to add that the current-requirements are just as important as the voltage-requirements. A PSU with too high voltage may damage the board, but a PSU with too low voltage will probably cause the board to fail to boot. Whereas if the PSU isn't capable of providing the maximum current that the board can demand (which is what I was referring to by "insufficient" in my previous comment) then the board may boot okay (giving the user the impression that everything is "okay"), but then later on (when a CPU-intensive task kicks in) the board may try to draw more current than the PSU is capable of, which then leads to the brown-out (i.e. the board unexpectedly resetting).

Any useful advice other than what's already mentioned here under power - https://www.balena.io/docs/learn/welcome/production-plan/#hardware

That page says "the power supply is capable and actually providing the required power" - looks like that might be a typo for "the power supply is capable of actually providing the required power" ? :shrug:

Hey @lurch Thanks for the comments. Information like this is exactly what might help a new user or a customer running a fleet deploy with fewer issues. Would you like to take a shot at this and we can continue the discussion in the PR?

Hey @lurch Thanks for the comments. Information like this is exactly what might help a new user or a customer running a fleet deploy with fewer issues. Would you like to take a shot at this and we can continue the discussion in the PR?

I'm happy to provide helpful comments, but I don't have time to create PRs, sorry.

I'm happy to provide helpful comments, but I don't have time to create PRs, sorry.

@lurch No apologies needed, we will take whatever help we can get :hatching_chick: Thanks for sticking around. I will put down your comments in a PR and put this 4-year-old issue to bed.

@lurch No apologies needed, we will take whatever help we can get :hatching_chick: Thanks for sticking around. I will put down your comments in a PR and put this 4-year-old issue to bed.

It might also be worth noting that with the increased power-requirements of e.g. the Pi3 and the Pi4, trying to power them with a low-quality phone-charger might not even get them past the boot-stage; so this issue of low-current power supplies causing unexpected resets during high CPU-load might be less prevalent than it was 5 years ago? :wink: :shrug:

It might also be worth noting that with the increased power-requirements of e.g. the Pi3 and the Pi4, trying to power them with a low-quality phone-charger might not even get them past the boot-stage; so this issue of low-current power supplies causing unexpected resets during high CPU-load might be less prevalent than it was 5 years ago? :wink: :shrug:


Type Error [ E R R_ I N V A L I D_ A R G_ T Y P E] -----

The plugin is dumping this issue right now on linux and osx.
Serverless: Packaging service...

  Type Error [ E R R_ I N V A L I D_ A R G_ T Y P E] -----

  TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type boolean
      at validateString (internal/validators.js:125:11)
      at Object.resolve (path.js:1080:7)
      at Promise.all.files.map.file (/src/packages/parser/node_modules/@vercel/nft/out/node-file-trace.js:32:29)
      at Array.map (<anonymous>)
      at nodeFileTrace (/src/packages/parser/node_modules/@vercel/nft/out/node-file-trace.js:31:29)
      at module.exports.resolveFilePathsFunction (/src/packages/parser/node_modules/serverless-plugin-tree-shake/index.js:510:47)

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              10.23.0
     Framework Version:         2.10.0 (local)
     Plugin Version:            4.1.1
     SDK Version:               2.3.2
     Components Version:        3.3.0

From inspecting the source, it looks like it's failing to read the entrypoint from one of my ~30 functions. How do I know which one? How do I know why?

Have you tried to add a console.log to the resolveFilePathsFunction function?
https://github.com/sergioramos/serverless-plugin-tree-shake/blob/master/index.js#L401

Actually, I have a better idea:
@@ -155,7 +155,10 @@ module.exports = class {
     const allFiles = await Map(
       this.serverless.service.getAllFunctions(),
       (fnName) => {
-        return this.resolveFilePathsFunction(fnName);
+        return this.resolveFilePathsFunction(fnName).catch((error) => {
+          console.error(error, { fnName });
+          return [];
+        });
       },
     );

Just found a PR that tries to resolve this https://github.com/sergioramos/serverless-plugin-tree-shake/pull/423


listener: add TLS inspector listener filter.

This is a prerequisite for multiple filter chains.

Q1: Should this be called TLS inspector or Protocol inspector (in case we want to extend it a bit in the future, to say, detecting HTTP vs Mongo vs whatever)?
Q2: Should requestedServerName() be requestedServerNames() and/or support multiple values (thinking abut non-TLS use cases)?
cc @ggreenway @mattklein123

I don't have a super strong opinion on whether we rename now or later, but I do have a strong suspicion that we will eventually extend this to other protocol types so that we can do fully transparent routing. So I guess my mild preference is to rename now and document that it only does TLS for now, but will defer to both of you.

One top-level comment to start:
Can we have BoringSSL export an API to do some/most of this parsing for us? Testing/validating all of the parsing is going to be painful, and I'm pretty sure this is more-or-less duplicated from BoringSSL. @davidben?

I suppose one way we could slightly abuse the BoringSSL API here is to create a new SSL, configure it with a BIO instead of the fd, peek the data from the socket (as this code currently does), feed it into the new SSL, wait for callbacks for SNI and ALPN (or errors), then destroy the temporary SSL. If the temporary SSL tries to write anything, we assume it's finished parsing the ClientHello and destroy it.

I'm not sure what this PR is doing, but we already have the ClientHello callback. Does that not do what you want here?
(ClientHellos may be fragmented across multiple records and it is not reflected in the transcript. Parsing it ad-hoc and behaving differently for different fragmentations can lead to subtle downgrade attacks.)

@davidben The basic summary of what we're trying to do is get a few values from the ClientHello (mainly SNI, but also protocol version and ALPN), and then decide what to do with the connection. Options are:

Terminate TLS normally with BoringSSL
TcpProxy it to somewhere else (no TLS termination, but route it based on the SNI value)

If we didn't need the option to TcpProxy it, this could all be done from the normal SNI callbacks already provided by openssl/boringssl. But we'd like to have the ability to choose to not terminate TLS at all, hence the unusual requirements.

@davidben yeah, we're using the ClientHello early callback right now... but like Greg mentioned, we want to have an option to TCP proxy TLS traffic instead of terminating it, based on SNI (e.g. to terminate TLS for cdn.example.com at the edge, but TCP proxy everything else) and/or ALPN (e.g. to terminate TLS for HTTP/2 traffic, but TCP proxy everything else), so we need to peek at and process ClientHello before handing connection off to BoringSSL.
Also, the early callback doesn't expose parsed extensions, so all the processing that's happening in processTlsClientHello() would need to stay on the Envoy side anyway (e.g. see how SNI is currently processed)... Ideally, most of this could be exposed in BoringSSL, hence my SSL_CTX_set_early_cb() patches and discussion months ago, but we're not there yet.
wrt ClientHello spanning multiple fragments - we briefly talked about it in Singapore, and I was under the impression that you said that no one does that, because of middle boxes... That's why I left it as TODO in code.
@ggreenway abusing BIO sounds appealing in theory, but I feel that overhead and extra code complexity would be non-trivial, since we'd need to deal with BIO, SSL_CTX, SSL, read retries, parsing extensions (see above), and it would prevent use from adding other protocols here over time.

@PiotrSikora Yes, I agree that the complexity and performance may be poor with what I proposed.
I think I'm going to try to make a first-pass at it to see how it looks, ie how much cleaner (if at all) it looks.

Ok, I put together a proof-of-concept, which correctly gets the version and SNI, but isn't getting the alpn callback (haven't had time to debug why yet).  I think this code is simpler and easier to maintain, but I haven't done any performance measurements. It could be pretty slow. Note that the SSL_CTX would go in the Config, so the only part that would be done on every connection is SSL_new() and down.
  SSL_CTX* ctx = SSL_CTX_new(TLS_with_buffers_method());
  SSL_CTX_set_ex_data(ctx, sslContextIndex(), this);
  SSL_CTX_set_options(ctx, SSL_OP_NO_TICKET);
  SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
  SSL_CTX_set_select_certificate_cb(
      ctx, [](const SSL_CLIENT_HELLO* client_hello) -> ssl_select_cert_result_t {
        Filter* filter = static_cast<Filter*>(
            SSL_CTX_get_ex_data(SSL_get_SSL_CTX(client_hello->ssl), sslContextIndex()));
        filter->version_ = ntohs(client_hello->version);

        return ssl_select_cert_success;
      });
  SSL_CTX_set_alpn_select_cb(ctx,
                             [](SSL*, const unsigned char** /*out*/, unsigned char* /*outlen*/,
                                const unsigned char* /*in*/, unsigned int /*inlen*/,
                                void* arg) -> int {
                               Filter* filter = static_cast<Filter*>(arg);
                               filter->alpn_found_ = true;
                               return 0;
                             },
                             this);
  SSL_CTX_set_tlsext_servername_callback(ctx, [](SSL* ssl, int* /*out_alert*/, void* arg) -> int {
    static_cast<Filter*>(arg)->sni_found_ = true;
    printf("servername %s\n", SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name));
    return SSL_TLSEXT_ERR_OK;
  });
  SSL_CTX_set_tlsext_servername_arg(ctx, this);

  SSL* ssl = SSL_new(ctx);
  SSL_set_accept_state(ssl);
  BIO* bio = BIO_new_mem_buf(data, len);
  BIO_set_mem_eof_return(bio, -1);
  SSL_set_bio(ssl, bio, bio);
  int ret = SSL_do_handshake(ssl);
  SSL_free(ssl);
  SSL_CTX_free(ctx);
  printf("SSL_do_handshake %d, got_alpn %d, got_sni %d, version %x\n", ret, alpn_found_, sni_found_,
         version_);

Yes, I agree that the complexity and performance may be poor with what I proposed.

I would be in favor of using a less performant solution until we can get the needed functionality exposed out of BoringSSL directly.  In general, I think performance requirements for per-connection code are much less stringent then for per-request code anyway. cc @davidben

Why drop into just a tcp proxy ? Can we drop into a http connection manager at the very least?

Sorry, but I don't understand this comment. What is this about? Neither TCP proxy nor HTTP connection manager are involved in this code.

Ignore. I didn’t fully understand the context behind this comment. I have a better idea now

Options are:

Terminate TLS normally with BoringSSL
TcpProxy it to somewhere else (no TLS termination, but route it based on the SNI value)

The plan is to continue with the approach in #3062 . Closing. If that changes, we can re-open this PR.


[SPARK-15059] [CORE] Remove fine-grained lock in ChildFirstURLClassLoader to avoid dead lock

What changes were proposed in this pull request?
In some cases, fine-grained lock have race condition with class-loader lock and have caused dead lock issue. It is safe to drop this fine grained lock and load all classes by single class-loader lock.

Can one of the admins verify this patch?

ok to test

Test build #57646 has started for PR 12857 at commit f131cd8.

LGTM.

Test build #57646 has finished for PR 12857 at commit f131cd8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57646/
Test PASSed.

Merging to master / 2.0.

LGTM. Merging to master and branch 2.0. Thanks!

Oh, missed the update, go ahead.


left joycon input delay

Im getting the same thing

Not sure if left, but one of mine is getting input delay.


Migration to TypeScript

This project is going to scale and it should adopt TypeScript as early as possible. TS has a much better DX compared to plain JS without JSDoc and that alone should attract more open source efforts in the long run. If there's no obvious reasons that I missed, I'd love to help out along the way since I want to see success in the project.

+1 on this

+1 had asked about this in the discord but got lost in the chatter. Yessss! Thank you

Hi team, I noticed there's no branch, PR, or additional repos for the TS migration yet. I also couldn't find the desktop app with Typescript, but wouldn't the frontend and much of the backend logic be the similar to the webapp.
Once the TypeScript setup and infrastructure are in place, I believe many could help out on the incremental migration. And it would benefit the community being an opportunity for newcomers and first-time contributors to get familiar with the codebase,  starting with peripheral components as good first issue.


Added Project

Added React Project :- Video Mania
Description
Developed a video streaming platform using React.js, Chakra UI, and Sass. The platform enables
users to stream videos while providing a seamless user experience. Utilized various front-end technologies to build a
responsive and modern platform
Screenshots of Project

without the issue number, we are unable to merge this PR.
Check the Contributing.md

without the issue number, we are unable to merge this PR.


[BUG] Can't scroll left and right when zoomed in.

Can't scroll the map in the left or right direction when zoomed in on the map. Reported on Mac, on Chrome browser.

Mac's have some known issues with rendering WebGL things. I'll look into it if we can do something about it.


27078 - updated the es kubectl installation docs

PR to address #27078
removed the old kubectl installtion markdown file
followed the hierarchy for en and introduced the markdown files
added markdown files for macos,Linux and windows operating systems

/check-cla

@SivaTharun did you need any help with the CLA? Feel free to ping me over slack at any time.
/check-cla

Please @SivaTharun let me know if we can help you with the CLA :)

Hello @SivaTharun, thanks for your PR but without the CLA, it cannot be merged. Please let me know if you can to try it again in the future, I'll be more than happy to help you get the CLA.
/close


Mysterious Mac stack overflow

Version
What package version of the SDK are you using.
c65c7443dcfbf3a39588b9684ecd635c92562f8b
Describe the bug
See this https://github.com/microsoft/botbuilder-dotnet/pull/4185
To Reproduce
Steps to reproduce the behavior:

Clone https://github.com/xieofxie/botbuilder-dotnet/tree/hualxie/mac_stackoverflow
Run TestScriptTests_HttpRequestMock in Mac
Stack over flow

Expected behavior
Work correctly as Windows
Additional context
Add any other context about the problem here.
When we visit a 404 url, response.Content is null and it will throw NullReferenceException here https://github.com/microsoft/botbuilder-dotnet/blob/c65c7443dcfbf3a39588b9684ecd635c92562f8b/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/Actions/HttpRequest.cs#L305
However, in Mac it does not catch the exception but stackoverflow instead:

I suspect it is a Mac dotnet runtime issue?
[bug]

Notice the validation report for the closed pr: it will only fail on mac with stackoverflow

I don't have a macOS so I use the pr to check it.

As this pr https://github.com/microsoft/botbuilder-dotnet/pull/4154 's status indicates, even windows stackoverflow now

@boydc2014 can you investigate?

@boydc2014 , please add priority and size.

Our investigation shows this is a very corner case only happens in .net core 2.1 + RichardSzalay mock + uncaught exceptions in certain test stages.  We are suspecting there is something wrong with this mock library dealing with multi-tasks or exceptions. But we are not able to track the root cause of this yet.
Given the scope, and we do have a mitigation which is either using .net core 3.1 or catch the exceptions correctly. We are moving this out of R11.

@JuanAr, could you please see if you can track the root cause of this bug? Thank you.

As @boydc2014 mentioned, this is related to .net core 2.1 which is reaching support EoL. We can go ahead and close this issue.

Hi @mrivera-ms, as support for .netcore 2.1 in V5 has ended, we can close this issue.


depth files on NYUDv2

Thanks for your working! The value in npy files on NYUDv2 seems the real depth with meter. When training on one depth estimation task decoder,  it is hard to convergence with L1 loss on the provided depth files. Did you do some preprocessing, such as normalize the value to [0, 1]?

@HIT-LiuChen Hello, I haven't performed any extra post-processing apart from the codes provided in this repository. Convergence should not be a problem here based on my experience.

Thanks for your reply. I have check my code and it is not a problem anymore. Best wishes to you.


Event end doest work....

When the csv is too large and the "end" event is dispatched, all rows have been not readed. It is like the "end" event was triggered before all "line" event has been dispatched and readed.
The code bellow returns the number of lines of a file. I tested a file with 1500 lines.
   let linesCounter = function(path) {
		return function(callback){
			let lr = new LineByLineReader(path)
			let count = 0
			lr.on('line', function(line) {
				count ++
			})

			lr.on('end', function () {
				callback(null,count)
			})
		}
	}

The result was 1423 lines.
I am using the version 0.1.4

that was fixed in 0.1.5 see #6


There is currently no simple way to remove one entry from WorkflowTask.args

(thanks @rkpasia)

Close in favor of #629


merge from template-node-app

package.json

chore(deps): add ^11.10.11 remove ^11.10.10 (devDependencies.npm-pkgbuild)

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

npm package (@latest dist-tag)
v6.4.5
GitHub release

Your semantic-release bot :package::rocket:


xeus-zmq: init at 1.1.0

Description of changes
Add the xeus-zmq library.
This is the first step of packaging xeus-cling, the Jupyter kernel for C++. See the draft PR #244777.
Opening this per discussion in the QuantStack/Lobby room. Any chance you could review @serge-sans-paille ?
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Thanks for the review! I updated the hash, but had a few questions about the style changes.

Without entering the merits of the proposals, your protest would have some merit for "syntatic sugar" parts - namely, things like indentation and one-element-per-line listings.
However, with is not a syntatic sugar. It was abused as syntatic sugar, but it isn't.
So, it is far from being amenable to automation.
Indeed, I have given a NixOS-blessed reference about this issue:
https://nix.dev/recipes/best-practices#with-scopes
For completion, here is a more technical post about the hurdles of with:
https://www.tweag.io/blog/2023-01-24-nix-with-with-nickel/
The examples are instructive.

I definitely don't see why "syntactic sugar"-ness should be a great proxy for "amenable to automation"-ness.
I did not know that nix.dev had become officially blessed, so thanks for the clarification.
I have no doubt that the proposed best practice is a great idea! But that doesn't really change the objection. What good is it for new PRs to avoid relatively innocuous uses of with, so that an experimental new language (Nickel) is easier to write, if the elimination of with doesn't eventually happen tree-wide in Nixpkgs anyway?
Anyway, I've made the changes, thanks for working through this with me :)

I definitely don't see why "syntactic sugar"-ness should be a great proxy for "amenable to automation"-ness.

Syntatic sugar is (usually) easier to automate because its evaluation is simpler, not requiring the full power of an evaluator. Sometimes it can be executed via macro substitution (similar to #define in C/C++).
On the other hand, the with construction effectively requires the full power of an evaluator, because it loads potentially arbitrary code.

so that an experimental new language (Nickel) is easier to write,

Nickel is just an example of real world case use. It is not the kernel of the argument.
The text itself cites a thing that is far from being a niche nowadays: Language Server Protocol clients.
What I was pointing out is that with is a nasty keyword, and especially nested withs should be avoided.
(And, incidentally, instances of such nastiness were found in production code.)
I can live with with lib.maintainers; [ chesterton scotus schopenhauer ];, but stacking with lib; { . . . with maintainers; [ . . . ] }; is way more controversial.

if the elimination of with doesn't eventually happen tree-wide in Nixpkgs anyway?

If.

Anyway, I've made the changes, thanks for working through this with me :)

That's fine. This will be useful as a reference in the future.

Fixed whitespace and squashed, thanks @AndersonTorres !

However, with is not a syntatic sugar. It was abused as syntatic sugar, but it isn't. So, it is far from being amenable to automation.
Indeed, I have given a NixOS-blessed reference about this issue:
nix.dev/recipes/best-practices#with-scopes
For completion, here is a more technical post about the hurdles of with:
tweag.io/blog/2023-01-24-nix-with-with-nickel
The examples are instructive.

Yes but the using with lib; in a limited scope like meta is definitely not a problem. Using something like with pkgs; with qtPackages; with plasma5Packages; over a 500 line file is definitely a problem and has to be improved.

Yes but the using with lib; in a limited scope like meta is definitely not a problem.

I am being more radical: with should not be treated as a "factorization trick" like a*b+a*c=a*(b+c).
In this sense, a rule with no margin for exceptions (never use nested with, never use global with) are easy to follow and easy to reason about.
Trying to define "small enough scopes" will eventually blow up because of the vagueness of this concept.


whitelist npm package files

The npm package includes several non-essential files. Let's trim those down using the files field.
$ npm pack
$ tar -tf react-datetime-2.6.0.tgz
# before:
package/.eslintrc.js
package/.npmignore
package/.travis.yml
package/CHANGELOG.md
package/CONTRIBUTING.md
package/DateTime.js
package/LICENSE
package/PULL_REQUEST_TEMPLATE.md
package/README.md
package/css/react-datetime.css
package/dist/react-datetime.js
package/dist/react-datetime.min.js
package/example/example.js
package/example/index.html
package/example/react-datetime.css
package/gulpfile.js
package/package.json
package/react-datetime.d.ts
package/src/DaysView.js
package/src/MonthsView.js
package/src/TimeView.js
package/src/YearsView.js
package/src/onClickOutside.js
package/tests/datetime-spec.js
package/tests/testdom.js

# after:
package/CHANGELOG.md
package/DateTime.js
package/LICENSE
package/README.md
package/css/react-datetime.css
package/dist/react-datetime.js
package/dist/react-datetime.min.js
package/package.json
package/react-datetime.d.ts
package/src/DaysView.js
package/src/MonthsView.js
package/src/TimeView.js
package/src/YearsView.js
package/src/onClickOutside.js

# removed:
package/.eslintrc.js
package/.npmignore
package/.travis.yml
package/CONTRIBUTING.md
package/PULL_REQUEST_TEMPLATE.md
package/example/example.js
package/example/index.html
package/example/react-datetime.css
package/gulpfile.js
package/tests/datetime-spec.js
package/tests/testdom.js

Hey @cody-greene, nice catch and thanks for your contribution! I did some quick research about the amount of data this change will save for individuals and also the universe 👽.

The files we're ignoring after this change: ~56KB
Amount of data saved each day: ~100MB
Amount of data saved each week: ~570MB
Amount of data saved each month: ~2.34GB

🎉 🎉 🎉
(Data about amount of downloads is taken from the react-datetime npm package website)


reactor-core 3.4.28 (was 3.4.14)

About this PR
📦 Updates io.projectreactor:reactor-core from 3.4.14 to 3.4.28
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.projectreactor", artifactId = "reactor-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.projectreactor", artifactId = "reactor-core" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #225.