calico-node is not coming in Running state

calico-node pod showing below errors is logs
felix/daemon.go 245: Failed to get config from datastore error=Get "[https://<IP_ADDRESS>:443/apis/crd.projectcalico.org/v1/clusterinformations/default](https://<IP_ADDRESS>/apis/crd.projectcalico.org/v1/clusterinformations/default)": dial tcp <IP_ADDRESS>:443: i/o timeout

Expected Behavior
calico-node should be in running state 1/1 for each nodes

Current Behavior
Due to Readiness probe failing, calico-node is not coming in Running state. Readiness/Livelinessprobe failure errors:-
 Warning  Unhealthy  5m26s (x8 over 6m22s)  kubelet            Readiness probe failed: calico/node is not ready: felix is not ready: Get "http://localhost:9099/readiness": dial tcp <IP_ADDRESS>:9099: connect: connection refused
  Warning  Unhealthy  76s (x26 over 6m6s)    kubelet            Liveness probe failed: calico/node is not ready: Felix is not live: Get "http://localhost:9099/liveness": dial tcp <IP_ADDRESS>:9099: connect: connection refused

Possible Solution
Need to fix connectivity for getting felix to be in running state, as of now nothing is listening on 9099 port on nodes.

Steps to Reproduce (for bugs)
<Production is impacted we have this issue as of now.

Context
Production EKS cluster is down

Your Environment

Calico version 3.20.5
Orchestrator version (e.g. kubernetes, mesos, rkt): 1.22.9
Operating System and version:

AME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

Link to your project (optional):

dial tcp <IP_ADDRESS>:443: i/o timeout

here  is  apiserver service IP address ?  to be sure  kube-proxy work first

Wha tis your cluster environtment? Aws EKS or you installed the cluster yourself in aws?


⚠ Jenkins Plugins Artifactory has degraded performance

In c826134, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1368 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 8c5f25c after 14 minutes.


Add omni_discardmempooltransaction call

This PR serves to add the capability to Omni Core to manually remove a transaction from the mempool.
Talking with @achamely on issues with OmniWallet whereby a transaction is sent with too low a fee and doesn't get included in a block then gets stuck in the mempool (after being discarded by the rest of the network),  Creating a second transaction to respend those inputs with a higher fee does not work as it's essentially trying to broadcast a double spend through the same node which will be rejected.  A restart of the node is then required (or broadcasting through an alternate node).
A new call is thus added with this PR; omni_discardmempooltransaction, just supply a TXID.
In using this call, the transaction will be discarded from the mempool, but will be readded if another node relays it back so the workflow should be to prepare the replacement transaction, remove the stuck transaction from the mempool and immediately broadcast its replacement.
Note: this PR has nothing to do with RBF.
Note: it's important to note that ideally this shouldn't be used on wallet transactions (the command does not remove transactions from the wallet, just the mempool - since OmniWallet doesn't use the wallet functions of Omni Core this shouldn't be an issue).
Usage is pretty simple.  If we look at my current mempool (at time of writing with a just-started node):
zathras@OMNIDEV:~/github/build/omnicore$ src/omnicore-cli getrawmempool
[
    "4674f652165d022b60c64ac13bfe152acfe149521ddbfd2e7892515a209f6ad1",
    "666c91bc4d24a4e323239f9a97bcea8ec4c056678c7cb6f4c5f0dbddb1d74ac0",
    "93b4f2d8573f613be0b0b905a079555a6adf2a676d8babb8aee7a3b5b9aacc5a",
    "a5e172aa69a45be37cd2ff1905f81226bfbeb57aced6ce44c3dbb55ec9ce8cde",
    "ba9d5158baddca54e8a7ea17c19eb0d34c5d3020c92e0ebb2be3c0788c717752",
    "c6c0ad63eab139fa86eba7735e213d1a94fc9c5c45c7ee4cd39266ab703e202f",
    "ec7194b411944fa2771da55103e826185599bd99377dcb06e2cdfc5fec5a2626"
]

Let's remove the first transaction from the mempool:
zathras@OMNIDEV:~/github/build/omnicore$ src/omnicore-cli omni_discardmempooltransaction "4674f652165d022b60c64ac13bfe152acfe149521ddbfd2e7892515a209f6ad1"
[
    "4674f652165d022b60c64ac13bfe152acfe149521ddbfd2e7892515a209f6ad1"
]

Now if we check the mempool again, we can see the transaction we removed is no longer there:
zathras@OMNIDEV:~/github/build/omnicore$ src/omnicore-cli getrawmempool
[
    "666c91bc4d24a4e323239f9a97bcea8ec4c056678c7cb6f4c5f0dbddb1d74ac0",
    "93b4f2d8573f613be0b0b905a079555a6adf2a676d8babb8aee7a3b5b9aacc5a",
    "a5e172aa69a45be37cd2ff1905f81226bfbeb57aced6ce44c3dbb55ec9ce8cde",
    "ba9d5158baddca54e8a7ea17c19eb0d34c5d3020c92e0ebb2be3c0788c717752",
    "c6c0ad63eab139fa86eba7735e213d1a94fc9c5c45c7ee4cd39266ab703e202f",
    "ec7194b411944fa2771da55103e826185599bd99377dcb06e2cdfc5fec5a2626"
]

@achamely - does this do the trick?
Thanks
Z

I'm sort of doubtful this actually works, because I'd assume connected peers won't accept the updated transaction, if they already have them?
Other than that, before Omni Wallet implements a fancy way to replace transactions, it would be a better start to use proper fee estimations.

@zathras-crypto @dexX7
Yes Omni will use a better fee setup first. However eventually there may be a need for this functionality. Z if it works as described then i think it'll be fine however Dexx does raise an interesting point and it may be something to consider if other nodes won't accept the new tx where does that leave our node once it accepts the new tx.

@dexX7 agreed fee-handling is important, and I've talked to the OW guys about using estimatefee to better determine fee - it's in the pipeline I believe but pending the rebrand PR.
I understand what you're saying about peers accepting the updated transaction, but please consider the use case:
From @achamely :

[3/11/2016 9:24:21 AM] Adam Chamely: user had 217 utxo's on a paper wallet address
[3/11/2016 9:24:40 AM] Adam Chamely: he imported the address into omniwallet,  and created a send to move funds to multisig address
[3/11/2016 9:25:11 AM] Adam Chamely: he left the default fee at .0001  ( :( really need to get that fixed soon)    and the transaction, expectedly was eventaully removed from network

And my introduction to the PR :

...issues with OmniWallet whereby a transaction is sent with too low a fee and doesn't get included in a block then gets stuck in the mempool (after being discarded by the rest of the network)...

Long story short it's specifically intended for use when the rest of the network has discarded the transaction.  My understanding of the issue from @achamely is that his local node (the one he broadcast through) did not discard the transaction whilst the rest of the network did, and this PR is simply to allow that edge case to be cleaned up without a restart of the node.
Hope that helps clarify :)

Long story short it's specifically intended for use when the rest of the network has discarded the transaction.

My bad, I missed that part.
Well, I'm still suspicious, but if you guys think this will work, I'm absolutely fine with it. :)
Code looks good to me.

@achamely: if you need a quick fix immediently, you may try the hidden RPC clearmempool.

if you need a quick fix immediently, you may try the hidden RPC clearmempool, which clears the whole mempool.

[Hangs head in shame]
Sorry guys, looks like I wasted all our time!  I did look for an existing call to remove a transaction from the mempool and didn't find one, hence this PR.  Given that there is a call to clear the mempool already, this PR is kind of pointless.
@achamely since you're not mining blocks you can simply flush the mempool in its entirety to achieve the same thing this PR does.
This PR is on a more granular level, but unless you're using the mempool for other purposes ('Chest uses the mempool to provide unconfirmed tx support) then may as well just flush it empty.
Should I close this without merging?  I don't see much value in adding capability that's essentially already there.
Thanks
Z

Hey Z, don't leave your head hanging. :) 'clearmempool' is the last resort in my opinion, and in case of Omni Wallet the finer level may be needed, to avoid messing with outgoing transactions. Then again, these may already be in other node's mempools.
As mentioned, I'm fine with the PR, if Adam needs it. :)

Thanks guys,  its not any immediate necessity (the issue that caused the original problem i was able to work around).  But do keep it open for now we may want to revisit it in another week or 2 after we finish the rebrand and start working on the newer enhanced features.

No worries, we'll put it on hold for now :)


msg.Timestamp is null in a consumer

Versions
Sarama Version: master
Kafka Version: <IP_ADDRESS>
Go Version: 1.7
Configuration
Default for Sarama and Kafka
Logs
[sarama] 2016/09/27 21:09:53 ClientID is the default of 'sarama', you should consider setting it to something application-specific.
[sarama] 2016/09/27 21:09:53 Connected to broker at kafka.castle:9092 (registered as #1001)
[sarama] 2016/09/27 21:09:53 consumer/broker/1001 added subscription to raw_status/0
2016/09/27 21:09:53 Consumed message time:topic:partition:offset:message 0001-01-01 00:00:00 +0000 UTC:raw_status:0:0:[123 34 116 105 109 101 115 116 97 109 112 34 58 32 49 ...
Problem Description
Why is msg.Timestamp set to null on my consumed message ? Does I need to activate this somewhere ? In Sarama configuration or in Kafka configuration ?
I tried sending message via the http_server.go provided in the example directory as well as via a python producer where I manually set the timestamp in the send method.
Any clue ?
Thanks a lot,
Albin.
PS - Here is my consumer, directly copy pasted from your examples :
package main

import (
	"log"
	"os"
	"os/signal"

	"github.com/Shopify/sarama"
)

func main() {
	consumer, err := sarama.NewConsumer([]string{"localhost:9092"}, nil)
	if err != nil {
		panic(err)
	}
	sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags)

	defer func() {
		if localErr := consumer.Close(); localErr != nil {
			log.Fatalln(localErr)
		}
	}()

	partitionConsumer, err := consumer.ConsumePartition("raw_status", 0, sarama.OffsetOldest)
	if err != nil {
		panic(err)
	}

	defer func() {
		if err := partitionConsumer.Close(); err != nil {
			log.Fatalln(err)
		}
	}()

	// Trap SIGINT to trigger a shutdown.
	signals := make(chan os.Signal, 1)
	signal.Notify(signals, os.Interrupt)

	consumed := 0
ConsumerLoop:
	for {
		select {
		case msg := <-partitionConsumer.Messages():
			log.Printf("Consumed message time:topic:partition:offset:message %s:%s:%d:%d:%v:%d\n", msg.Timestamp, msg.Topic, msg.Partition, msg.Offset, msg.Value, len(msg.Value))
			consumed++
		case <-signals:
			break ConsumerLoop
		}
	}

	log.Printf("Consumed: %d\n", consumed)
}

Off the top of my head you need to create a config struct (NewConfig()) and set the Version value appropriately to tell Sarama it is safe to use the more recent API versions, then pass this configuration into the NewConsumer call.

Here it goes : 2016-09-30 10:41:17.909 +0200 CEST !
Thanks a lot @eapache, and thanks as well for the awesome work on this client. Have a nice weekend !

Hey,
After my successful test with a Python producer, I tried to feed my consumer using Sarama async producer but the timestamp is not set.
I've retried my consumer with the Python producer to be 100% certain that the issue comes from the producer and I still have the Timestam set in the message received in the consumer.
Any idea why my timestamp is not set ? I've also trie to set the Timestamp manually via time.Now() but then Kafka emit errors like this :
[2016-10-04 13:38:29,113] ERROR [Replica Manager on Broker 1001]: Error processing append operation on partition topic-8 (kafka.server.ReplicaManager)
java.lang.IllegalStateException: Compressed message has magic value 0 but inner message has magic value 1
	at kafka.message.ByteBufferMessageSet$$anon$1.readMessageFromStream(ByteBufferMessageSet.scala:143)
	at kafka.message.ByteBufferMessageSet$$anon$1.liftedTree2$1(ByteBufferMessageSet.scala:111)
	...
	at kafka.server.KafkaApis.handleProducerRequest(KafkaApis.scala:405)
	at kafka.server.KafkaApis.handle(KafkaApis.scala:76)
	at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:60)
	at java.lang.Thread.run(Thread.java:745)

Here is my complete producer code :
package scheduler

import (
	"time"

	"github.com/Shopify/sarama"
	redis "gopkg.in/redis.v4"

	"strings"

	log "github.com/Sirupsen/logrus"
)

func Schedule(brokerList []string, redisHost string, topic string) {

	// Configure sarama logger
	sarama.Logger = log.New()

	// Create new producer
	producer, err := newAsyncProducer(brokerList)
	if err != nil {
		panic(err)
	}

	defer func() {
		if err = producer.Close(); err != nil {
			log.Fatal("Failed to close producer:", err)
		}
	}()

	// Init Redis connection
	client := redis.NewClient(&redis.Options{
		Addr:     redisHost,
		Password: "", // no password set
		DB:       0,  // use default DB
	})

	// Get all the things
	things, err := client.Keys("keys:*").Result()
	if err != nil {
		panic(err)
	}

	// Send them all
	for _, thing := range things {
		// We are not setting a message key, which means that all messages will
		// be distributed randomly over the different partitions.
		producer.Input() <- &sarama.ProducerMessage{
			Topic: topic,
			Value: sarama.StringEncoder(thing),
		}
		log.Infof("Send %s on %s", thing, topic)
	}
}

// newAsyncProducer create a new asynchronous Kafka producer
func newAsyncProducer(brokerList []string) (sarama.AsyncProducer, error) {

	// For the access log, we are looking for AP semantics, with high throughput.
	// By creating batches of compressed messages, we reduce network I/O at a cost of more latency.
	config := sarama.NewConfig()
	config.Producer.RequiredAcks = sarama.WaitForLocal       // Only wait for the leader to ack
	config.Producer.Compression = sarama.CompressionSnappy   // Compress messages
	config.Producer.Flush.Frequency = 500 * time.Millisecond // Flush batches every 500ms
	config.Version = sarama.V0_10_0_0

	producer, err := sarama.NewAsyncProducer(brokerList, config)
	if err != nil {
		return nil, err
	}

	// We will just log to STDOUT if we're not able to produce messages.
	// Note: messages will only be returned here after all retry attempts are exhausted.
	go func() {
		for err := range producer.Errors() {
			log.Error("Failed to write entry:", err)
		}
	}()

	return producer, nil
}

Thanks a lot for your support !

I've also tried to set the Timestamp manually via time.Now()

This is the correct method. We should probably add support for auto-setting the timestamp to time.Now but we leave it blank by default for now.

java.lang.IllegalStateException: Compressed message has magic value 0 but inner message has magic value 1

I think this is a Sarama bug when using both timestamps and compression. Can you try with CompressionNone? If that works, please file a separate issue and I'll take a look at fixing it.

It works, time:topic:partition:offset:message 2016-10-04 20:30:39.092 +0200 CEST, opening an other issue !
Thanks,
Albin.


Allow header cells in the table body to be styled

Allow the header cells that appear within the table body to be styled by the theme separately from other cells.

Should the base key be table_header_cell, table_cell_header or something else?

Let's go with table_header_cell as it reads the most clearly.


Sass example cannot be built

Environment

react-static -v: 5.8.2+
node -v: n.a.
yarn --version or npm -v: n.a.
Operating system: n.a.

Steps to Reproduce the problem
Base your steps off of any freshly installed react-static template!

cd examples/sass
npm run build

Expected Behavior
A successfull build
Actual behaviour
ERROR in <path to>.scss
Module build failed: Error: "extract-text-webpack-plugin" loader is used without the corresponding plugin, refer to https://github.com/webpack/extract-text-webpack-plugin for the usage example
    at Object.pitch ( <path to project>/node_modules/extract-text-webpack-plugin/dist/loader.js:57:11)
 @ ./dist/react-static-routes.js
 @ ./src/App.tsx
 @ ./src/index.tsx

I got same issue with both sass & tailwindcss example

I got the same issue and I found some forums talking about replacing "extract-text-webpack-plugin" with "MiniCssExtractPlugin". Any thoughts on how to incorporate this?
https://github.com/webpack-contrib/mini-css-extract-plugin

Chiming in to confirm that the sass template does not build with:
react-static v5.9.1
npm v5.6.0
node v9.10.0
extract-text-webpack-plugin v3.0.2
node-sass v4.9.0
sass-loader v7.0.1

I don't have enough visibility into what react-static is doing with the webpack config function to diagnose why this isn't working.

The issue is with refactored webpack.config.js and exactly with isNode
variable. Please roll back to 5.8.1 - this is last version which is not
affected by webpack.config.js refactoring
2018-05-04 3:59 GMT+08:00 JP<EMAIL_ADDRESS>
Chiming in to confirm that the sass template does not build with:
react-static v5.9.1
npm v5.6.0
node v9.10.0
extract-text-webpack-plugin v3.0.2
node-sass v4.9.0
sass-loader v7.0.1
I don't have enough visibility into what react-static is doing with the
webpack config function to diagnose why this isn't working.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/588#issuecomment-386417861,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACJsec4egbmYAWa6i-gsiJUPGHWW_gbeks5tu2GcgaJpZM4TsVzF
.

adding:
config.plugins.push(new ExtractTextPlugin('styles.css'))

as the last line in the   webpack: (config, { defaultLoaders, stage }) => { entry, right before return config worked for me.

@kgcreative that indeed fixed it for me! thanks

@kgcreative's fix works, but I had to install the package first and then import it: import ExtractTextPlugin from 'extract-text-webpack-plugin'


Allow the declaration of runner capabilities over FnAPI.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

@lostluck could you please generate the go proto files for me?

I did. Yesterday. https://github.com/apache/beam/commit/a6f55b5eb848433e29f292053fe47ce76fba989f

Run Java PreCommit

Run Python PreCommit

I suspect the failures are due to FLINK-12653, but I'll re-run one more time to try to clear them.

Run Java PreCommit


HIVE-26718: Enable initiator to schedule rebalancing compactions

What changes were proposed in this pull request?
REBALANCE type compaction now can be scheduled by the initiator
Why are the changes needed?
Without initiator, REBALANCE compaction would only be issued by users. To make sure read performance does not degrade over time, tables must be checked automatically too.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Manually and through unit tests

LGTM. Is there any who can approve it?


Bootstrapping script fails on git add

Running the bootstrap script parameterized for golang, I get:
➜  kurtosis-libs git:(master) bash bootstrap/bootstrap.sh golang ../chainlink-testing
Name for Docker image that will be built to contain testsuite (must match regex [a-z0-9._/-]+): kurtosistech/chainlink-testsuite
Name for the Go module that will contain your testsuite project (e.g. github.com/my-org/my-repo): github.com/kurtosistech/chainlink-testing
go: finding github.com/kurtosis-tech/kurtosis-libs latest
go: finding github.com/kurtosis-tech/kurtosis-libs/golang latest
Initialized empty Git repository in <path>/chainlink-testing/.git/
fatal: ../chainlink-testing: '../chainlink-testing' is outside repository at '<path>/chainlink-testing'
Error: Could not stage files in new repo for committing

I can manually cd into the directory and finish the git steps...not clear to me why this script is erroring here

@galenmarchetti is that a direct copy-paste? Or is <path> you swapping out your machine's full path?

I swapped out my machine's full path just because the path name contains some custom stuff that I didn't want to be publicly posting


Regen

cc @EPashkin

sourceview\src\lib.rs need use feature dox?

 I completely forgot the non-generated files... I update.

Updated.

👍


Token File missing - Creating a new one

Even though I create a .mercedesme_token file with data from (copy/paste) from my pc where I ran the python script to get the token. I get this error (Token File missing - Creating a new one) followed by "Error creating token" when restarting home assistant. I also have the .mercedesme_config file with client id etc

Have you placed the file in the home assistant config directory (where you're configuration.yaml is)?

Have you placed the file in the home assistant config directory (where you're configuration.yaml is)?

Thanks that helped. Your readme says hacs folder, and I though that was the mercedesmeapi folder that hacs created

Please use the other script to retrieve the first token and copy it into hacs folder (.mercedesme_token)

Thanks that helped. Your readme says hacs folder, and I though that was the mercedesmeapi folder that hacs created

Please use the other script to retrieve the first token and copy it into hacs folder (.mercedesme_token)

Thanks. I have to change the readme to make it more clear
Il giorno lun 4 gen 2021 alle 20:11 ehallq<EMAIL_ADDRESS>ha
scritto:

Thanks that helped. Your readme says hacs folder, and I though that was
the mercedesmeapi folder that hacs created
Please use the other script to retrieve the first token and copy it into
hacs folder (.mercedesme_token)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/xraver/mercedes_me_api/issues/22#issuecomment-754160815,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALJM7A3FZMLYFGFOHCOHOVLSYIHF7ANCNFSM4VTMYLRQ
.

Thanks. I have to change the readme to make it more clear
Il giorno lun 4 gen 2021 alle 20:11 ehallq<EMAIL_ADDRESS>ha
scritto:

Thanks that helped. Your readme says hacs folder, and I though that was
the mercedesmeapi folder that hacs created
Please use the other script to retrieve the first token and copy it into
hacs folder (.mercedesme_token)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/xraver/mercedes_me_api/issues/22#issuecomment-754160815,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALJM7A3FZMLYFGFOHCOHOVLSYIHF7ANCNFSM4VTMYLRQ
.


"07/14/2021: mysqldump directory option"

Is your feature request related to a problem? Please describe.
[Ranjeeth] Yes. When we choose Delphix to take mysqldump from source the dump is by default routed to /tmp folder. Customer installation is such that they have OS level restriction for tmp folder and due to which mysqldump is failing after the limit is reached.
Describe the solution you'd like
[Ranjeeth] Provide an option to customer to chose the dump directory; Otherwise, utilize mount directory for dump and pass on the instructions to increase mount size so that it includes dump size.
Describe alternatives you've considered
[Ranjeeth] Customer added disk space and performed directory level mapping from tmp to another folder. This is a manual workaround and took significant time.
Additional context

A more consistent option would be using a hidden folder (eg: ./tmp) under the staging mount_point to host the backup and remove it once we restore successfully

@smouhssine - that's a great idea. I think we can pursue that option.


[SPAKE2P] - Bugfix - Calculation of TT value in spake2p protocol

Problem
In spake2p protocol calculation of TT does not take into account the length of context
Summary of Changes
Added context length in calculation of TT
Removed pbkdf2 param request/response from calculation of TT
Fixes #4360

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

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

Not in sync with latest CHIP spec

Not in sync with latest CHIP spec


Connection Refused error after consul installation

Hi All,
I am new to consul and used the ansible-consul role to setup consul on three new servers. The servers are using CentOS 7.
After the start consul task, my script shows this error:
TASK [consul : Check Consul HTTP API (via TCP socket)] *******************************************************************************************************fatal: [DJX-VML-CONSUL3]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for <IP_ADDRESS>:8500"}
fatal: [DJX-VML-CONSUL1]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for <IP_ADDRESS>:8500"}
fatal: [DJX-VML-CONSUL2]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for <IP_ADDRESS>:8500"}
fatal: [DJX-VML-NOMAD01]: FAILED! => {"changed": false, "elapsed": 300, "msg": "Timeout when waiting for <IP_ADDRESS>:8500"}

When i try to check consul info on the bootstrap server, I see connection refused error:
`consul info

Error querying agent: Get http://<IP_ADDRESS>:8500/v1/agent/self: dial tcp <IP_ADDRESS>:8500: getsockopt: connection refused`

I dont get much useful information from the systemctl logs
● consul.service - Consul agent
   Loaded: loaded (/usr/lib/systemd/system/consul.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2021-12-27 20:25:55 UTC; 20s ago
  Process: 224174 ExecStart=/usr/local/bin/consul agent -config-file=/etc/consul/config.json -config-dir=/etc/consul.d -pid-file=/run/consul/consul.pid (code=exited, status=1/FAILURE)
  Process: 224171 ExecStartPre=/bin/chown -R consul:consul /run/consul (code=exited, status=0/SUCCESS)
  Process: 224168 ExecStartPre=/bin/mkdir -m 0750 -p /run/consul (code=exited, status=0/SUCCESS)
 Main PID: 224174 (code=exited, status=1/FAILURE)

Tried enabling debug logs, but no logs are being generated. Here is the inventory file i used:
[consul_instances]
DJX-VML-CONSUL1 ansible_host=##### consul_node_role=server consul_bootstrap_expect=true
DJX-VML-CONSUL2 ansible_host=#### consul_node_role=server consul_bootstrap_expect=true
DJX-VML-CONSUL3 ansible_host=##### consul_node_role=server consul_bootstrap_expect=true
DJX-VML-NOMAD01 ansible_host=##### consul_node_role=client

consul config.json
[root@djx-vml-consul1 consul]# cat config.json
{
    "addresses": {
        "dns": "<IP_ADDRESS>",
        "http": "<IP_ADDRESS>",
        "https": "<IP_ADDRESS>"
    },
    "advertise_addr": #####,
    "advertise_addr_wan": #####,
    "bind_addr": ######,
    "bootstrap": false,
    "bootstrap_expect": 0,
    "client_addr": "<IP_ADDRESS>",
    "data_dir": "/opt/consul",
    "datacenter": "dc1",
    "disable_update_check": false,
    "domain": "consul",
    "enable_local_script_checks": false,
    "enable_script_checks": false,
    "encrypt": #######,
    "encrypt_verify_incoming": true,
    "encrypt_verify_outgoing": true,
    "log_file": "/var/log/consul/consul.log",
    "log_level": "DEBUG",
    "log_rotate_bytes": 0,
    "log_rotate_duration": "24h",
    "performance": {
        "leave_drain_time": "5s",
        "raft_multiplier": 1,
        "rpc_hold_timeout": "7s"
    },
    "ports": {
        "dns": 8600,
        "http": 8500,
        "https": -1,
        "serf_lan": 8301,
        "serf_wan": 8302,
        "server": 8300
    },
    "raft_protocol": 3,
    "retry_interval": "30s",
    "retry_interval_wan": "30s",
    "retry_join": [],
    "retry_max": 0,
    "retry_max_wan": 0,
    "server": true,
    "translate_wan_addrs": false,
    "ui": true

Can anyone please suggest what could be the issue?

run /usr/local/bin/consul agent -config-file=/etc/consul/config.json -config-dir=/etc/consul.d -pid-file=/run/consul/consul.pid
and /usr/local/bin/consul agent -config-file=/etc/consul/config.json -config-dir=/etc/consul.d  and see what errors you see

FWIW I experienced the same problem. Inspected config.json in consul1 and found the following:
root@consul1:/etc/consul# cat config.json
"{\n    \n        \"node_name\": \"consul1\",\n    \"datacenter\": \"dc1\",\n    \"domain\": \"consul\",\n            \"performance\": {\"raft_multiplier\": 1, \"leave_drain_time\": \"5s\", \"rpc_hold_timeout\": \"7s\"},\n\n        \"bind_addr\": \"<IP_ADDRESS>\",\n    \"advertise_addr\": \"<IP_ADDRESS>\",\n    \"advertise_addr_wan\": \"<IP_ADDRESS>\",\n    \"translate_wan_addrs\": false,\n    \"client_addr\": \"<IP_ADDRESS>\",\n    \"addresses\": {\n                \"dns\": \"<IP_ADDRESS>\",\n        \"http\": \"<IP_ADDRESS>\",\n        \"https\": \"<IP_ADDRESS>\",\n                \"grpc\": \"<IP_ADDRESS>\"\n            },\n        \"ports\": {\n                \"dns\": 8600,\n        \"http\": 8500,\n        \"https\": -1,\n        \"serf_lan\": 8301,\n        \"serf_wan\": 8302,\n        \"server\": 8300,\n                \"grpc\": -1\n            },\n\n        \"raft_protocol\": 3,\n\n        \n        \"data_dir\": \"/var/consul\",\n    \"log_level\": \"DEBUG\",\n        \"log_file\": \"/var/log/consul/consul.log\",\n    \"log_rotate_bytes\": 0,\n    \"log_rotate_duration\": \"24h\",\n    \"log_rotate_max_files\": 0,\n        \"disable_update_check\": false,\n    \"enable_script_checks\": false,\n    \"enable_local_script_checks\": false,\n\n            \"encrypt\": \"ph4Y7HUIfyM5K7jr9QqGYqKiEwzkcZNnGIxZQ/xrw2I=\",\n            \n        \"retry_interval\": \"30s\",\n    \"retry_max\": 0,\n\n    \"retry_join\":\n                                                      [\"<IP_ADDRESS>\", \"<IP_ADDRESS>\", \"<IP_ADDRESS>\"],\n\n        \"server\": true,\n\n        \n        \n        \"bootstrap\": true,\n    \n        \"retry_interval_wan\": \"30s\",\n    \"retry_max_wan\": 0,\n\n    \n            \n        \"ui\": true\n}\n"

Hi @lanefu , thanks for the help.
I was able to see after the command, that the issue was due to invalid keys in the config. Checked on the consul site and found that some of these keys were added in the later version than the one i was installing.
Removed those specific keys from the config and it is working now.

I was able to see after the command, that the issue was due to invalid keys in the config. Checked on the consul site and found that some of these keys were added in the later version than the one i was installing.

@sushil-clearsense Which keys are you referring to? Could you outline the changes you made? Thanks.

and see what errors you see

Consul doesn't start as /var/log/consul directory doesn't exist. Output below:
root@consul2:/home/vagrant# /usr/local/bin/consul agent -config-file=/etc/consul/config.json -config-dir=/etc/consul/consul.d
==> Failed to setup logging: open /var/log/consul/consul-1640771892712318601.log: no such file or directory

From journalctl:
root@consul2:/home/vagrant# journalctl -u consul
-- Logs begin at Wed 2021-12-29 09:50:28 GMT, end at Wed 2021-12-29 09:56:24 GMT. --
Dec 29 09:51:57 consul2 systemd[1]: Starting Consul agent...
Dec 29 09:51:57 consul2 systemd[1]: Started Consul agent.
Dec 29 09:51:57 consul2 consul[1670]: ==> Failed to setup logging: open /var/log/consul/consul-1640771517595577466.log: no such file or directory
Dec 29 09:51:57 consul2 systemd[1]: consul.service: Main process exited, code=exited, status=1/FAILURE
Dec 29 09:51:57 consul2 systemd[1]: consul.service: Unit entered failed state.
Dec 29 09:51:57 consul2 systemd[1]: consul.service: Failed with result 'exit-code'.
Dec 29 09:52:40 consul2 systemd[1]: consul.service: Service hold-off time over, scheduling restart.
Dec 29 09:52:40 consul2 systemd[1]: Stopped Consul agent.

Not sure if the playbook creates /var/log/consul/ and grants write permission to consul` user as is apparently required

The step to create log directory  (defined in brianshumate.consul/tasks/dirs.yml) was skipped:
TASK [brianshumate.consul : Create log directory] ******************************
skipping: [consul1.consul] => (item=/var/log/consul)
skipping: [consul2.consul] => (item=/var/log/consul)
skipping: [consul3.consul] => (item=/var/log/consul)

Looks like the criteria for creating log directory are different between brianshumate.consul (consul_syslog_enable | bool) and the version in master branch of this repo (not consul_syslog_enable | bool). Change README_VAGRANT.md to not use the old role?

I was able to see after the command, that the issue was due to invalid keys in the config. Checked on the consul site and found that some of these keys were added in the later version than the one I was installing.

@sushil-clearsense Which keys are you referring to? Could you outline the changes you made? Thanks.

Hi @egmanoj , not sure if you are still facing the issues. The keys I meant are the consul configs. The version I was using did not have the support for the key i was using -->  https://www.consul.io/docs/agent/options#_log_file


Kubernetes Node, Storage , and System level cluster role compliance is missing

Is your feature request related to a problem? Please describe.
In Kubernetes mods we do not have any compliance available for Node, Storage and system cluster role.

Welcome to Steampipe @vishu184 👍!!
Apologies for the radio silence on this issue.
We do have a few controls defined in https://github.com/turbot/steampipe-mod-kubernetes-compliance/blob/main/controls/role.sp that primarily address the roles.
As a part of our implementation, we focussed on getting the control coverage for CIS and NSA benchmarks. Is there a specific compliance that you are looking out for?

Hi @vishu184,
I hope all is well with you. I'm writing to follow up on this issue. Since we haven't received any updates or feedback from you in a while, we'll be closing this issue for now.
If you still need assistance or if you have any further questions, please feel free to reopen the issue or create a new one. We're always here to help!
Thank you for your understanding.


Clean up expression evaluation

Refactored the RPN expression evaluator so binary operators use more common code
Improved(?) performance of some RPN expressions
Improved handling of constant values in RPN expressions
Removed one of the two expression evaluators (not the RPN one :stuck_out_tongue:)
Misc. cleanup as well

The third of those changes has potential for breakage if code used PURGE to change the value the linker would see of some symbols. That said, the behavior of this was never specified, and has always been fragile (there is a warning in the manual about that, too).

Rebased the PR and improved it.

I haven't taken a very detailed look at everything, but for the most part it looks fine to me.

I did some additional testing on my end, and this build seems at least to match current master's behavior. If this seems good, then I will merge. Hopefully this can help clean up further efforts..!!


Localize content/en/docs/reference/glossary/disruption.md into Hindi

The PR localizes content/en/docs/reference/glossary/disruption.md into Hindi.
Fixes #37513

/lgtm

/label tide/merge-method-squash


Skill Bar Limit/Presentation

Your question/topic.
I see that player skill bars have "20" as limit:

But, for example, Pedro 'Apache' Zurita (6993859) has experience level at 71 (20 + 51).

Many other players have skills over 20 (mainly experience and Set Pieces). I don't know how these skill bars will handle these values yet, but it looks like that "skill bars" make sense for skills with defined limit, as "leadership","stamina" and "form".
Would it be better to use another way to present these skill values? What do you think?

I had an idea that all overflow could be written inside the blue bar, for instance is a player have 22 in set pieces, then the blue bar will be full and it will state "+2" on the blue bar. It's not yet implemented though.
But maybe a graphical view isn't needed at all? Just the numbers? (And text later on, but that will wait until I have implemented support for multiple languages).

I had an idea that all overflow could be written inside the blue bar, for instance is a player have 22 in set pieces, then the blue bar will be full and it will state "+2" on the blue bar. It's not yet implemented though.
But maybe a graphical view isn't needed at all? Just the numbers? (And text later on, but that will wait until I have implemented support for multiple languages).

For me the graphical view is important. It makes the tool more than just some datapoints.

For me the graphical view is important. It makes the tool more than just some datapoints.

Experimenting some :)
What about this?

Experimenting some :)
What about this?

I'm not a fan of this one.

I'm not a fan of this one.

Will not do this. Not in line with the graphical vision.


Strengthening flow types

Replaces Object, any or Function types with stronger types

Codecov Report

Merging #3358 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3358   +/-   ##
=======================================
  Coverage   64.93%   64.93%
=======================================
  Files         176      176
  Lines        6514     6514
  Branches        4        4
=======================================
  Hits         4230     4230
  Misses       2283     2283
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-haste-map/src/index.js
95.47% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

this is awesome! thank you!


implement PEP-563: annotations as strings

I think Cython 3.0 would also be a good time to implement PEP-563 ("Postponed Evaluation of Annotations"). There already is a Cython code generator in Cython.CodeWriter that can be used to generate the expression string. This should be done somewhat late in the compiler pipeline since some optimisations can make use of the annotation information. It might be worth creating a separate transformation before the code generation.
What needs to be done:

Implement a new transform class SerialiseAnnotations(VisitorTransform) in ParseTreeTransforms.py.
Give it visitor methods for all nodes that can have annotations (any ExprNode, and anything that has an annotation attribute in Nodes.py).
If the node has an annotation, serialise it using the code writer and replace the existing node.annotation with a StringNode' (or UnicodeNode` ?) that wraps the string value.
Add the new transform to the pipeline in Pipeline.py, rather late, before the final checks.
Extend the existing annotation related tests in tests/run/ to cover the annotation string value. Add new tests for expressions that are not covered yet.

Hi, I would like to work on this. Can someone point me to some resources?

@nihilist-banana, there is a description of the implementation steps in the ticket, and the HackerGuide has some general information about how to get started. Does this help already, or otherwise, could you maybe ask on the cython-devel mailing list if you need more specific guidance?

Thanks, @scoder. I'll look into this for now.

Hi @nihilist-banana, are you still working on this? If not, I'd be happy to work on it.

Any help is appreciated.

I will work on this as soon as I have some cycles to spare.

Just FYI, the Python Steering Council has just decided that the final incarnation of PEP 536 becoming the default behaviour will be postponed and not be released as part of Python 3.10.
I don't see any immediate impact on Cython, though. The change in behaviour is still meant to come in CPython, just in 3.11 (as it stands). Let's keep things on our side as they are, at least for now.

If I remember correctly, the first version of the PR had postponed evaluation as a switchable option. It worked, but I think I ditched it because it seemed like a lot of pointless complexity (evaluating annotation in the right scope was fiddly). But the relevant code will still exist somewhere on github and can be dug up if needed.
But not right now...


the public key size of Generated key pair

Hi
I generated a key pair of secp256r1.
and I found the length of the compressedPublicKey is 65 bytes.
this makes me confused. I think it should be 64 bytes before.

That is certainly weird. An uncompressed key should be 65 bytes and a compressed key should be 33 bytes.
What is the first byte? Compressed keys should start with a 0x02 or 0x03 and uncompressed keys should start with a 0x04.

I see, it should be 64 bytes and the 0x04  starting。Thanks.

I see, it should be 64 bytes and the 0x04 starting。Thanks.

你好，可以给个联系方式吗？咨询你一点iOS问题，谢谢🙏


Add Bit.ly

Next tier up is minimum $5000/year (250% tax) and there is
no way to selectively get SSO on the lower tier.

Hey @daethnir ,
Thank you for your contribution! I just integrated your PR into https://github.com/ssotax/ssotax as this repository was not maintained for a long time. Your changes are in https://github.com/ssotax/ssotax/commit/9fa62dbac75b2339b6dba1a669c5fce603c1229c.
You find the new page under https://ssotax.org/.  I also made a few improvements based on community feedback like showing free SSO providers. Feel free to share your feedback!


runtime error: invalid memory address or nil pointer dereference

Not sure what I've done wrong but I've been met with this error when trying to do an initial setup of notifiarr on unraid.
[ERROR] 2022/08/20 13:17:20 Go Panic! This is a bug please report it on github: https://github.com/Notifiarr/notifiarr/issues/new
runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x65
main.main.func1()
        github.com/Notifiarr/notifiarr/main.go:21 +0x3d
panic({0xc64ba0, 0x1555340})
        runtime/panic.go:884 +0x212
github.com/Notifiarr/notifiarr/pkg/services.(*Config).collectDownloadApps(0xc0002c46e0, {0x159ce50?, 0xf?, 0xd1e7b0?})
        github.com/Notifiarr/notifiarr/pkg/services/apps.go:198 +0x36b
github.com/Notifiarr/notifiarr/pkg/services.(*Config).collectApps(0xc0002c46e0)
        github.com/Notifiarr/notifiarr/pkg/services/apps.go:18 +0x9f
github.com/Notifiarr/notifiarr/pkg/services.(*Config).Setup(0xc0002c46e0, {0x0?, 0x0, 0x0})
        github.com/Notifiarr/notifiarr/pkg/services/services.go:29 +0x85
github.com/Notifiarr/notifiarr/pkg/configfile.(*Config).Get(0xc0002e6140, 0xc0002ec090)
        github.com/Notifiarr/notifiarr/pkg/configfile/config.go:150 +0x39e
github.com/Notifiarr/notifiarr/pkg/client.(*Client).loadConfiguration(0xc0002c4780)
        github.com/Notifiarr/notifiarr/pkg/client/start.go:173 +0x1a5
github.com/Notifiarr/notifiarr/pkg/client.(*Client).start(0xc0002c4780)
        github.com/Notifiarr/notifiarr/pkg/client/start.go:106 +0x36
github.com/Notifiarr/notifiarr/pkg/client.Start()
        github.com/Notifiarr/notifiarr/pkg/client/start.go:101 +0xda
main.main()
        github.com/Notifiarr/notifiarr/main.go:25 +0x6a
[ERROR] 2022/08/20 13:20:43 Go Panic! This is a bug please report it on github: https://github.com/Notifiarr/notifiarr/issues/new
runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
        runtime/debug/stack.go:24 +0x65
main.main.func1()
        github.com/Notifiarr/notifiarr/main.go:21 +0x3d
panic({0xc64ba0, 0x1555340})
        runtime/panic.go:884 +0x212
github.com/Notifiarr/notifiarr/pkg/services.(*Config).collectDownloadApps(0xc0001e4000, {0x159ce50?, 0xc0000de5c0?, 0x3c?})
        github.com/Notifiarr/notifiarr/pkg/services/apps.go:198 +0x36b
github.com/Notifiarr/notifiarr/pkg/services.(*Config).collectApps(0xc0001e4000)
        github.com/Notifiarr/notifiarr/pkg/services/apps.go:18 +0x9f
github.com/Notifiarr/notifiarr/pkg/services.(*Config).Setup(0xc0001e4000, {0x0?, 0x0, 0x0})
        github.com/Notifiarr/notifiarr/pkg/services/services.go:29 +0x85
github.com/Notifiarr/notifiarr/pkg/configfile.(*Config).Get(0xc0000f5180, 0xc0001bc120)
        github.com/Notifiarr/notifiarr/pkg/configfile/config.go:150 +0x39e
github.com/Notifiarr/notifiarr/pkg/client.(*Client).loadConfiguration(0xc0001e40a0)
        github.com/Notifiarr/notifiarr/pkg/client/start.go:173 +0x1a5
github.com/Notifiarr/notifiarr/pkg/client.(*Client).start(0xc0001e40a0)
        github.com/Notifiarr/notifiarr/pkg/client/start.go:106 +0x36
github.com/Notifiarr/notifiarr/pkg/client.Start()
        github.com/Notifiarr/notifiarr/pkg/client/start.go:101 +0xda
main.main()
        github.com/Notifiarr/notifiarr/main.go:25 +0x6a

Sorry if it's something obvious that I'm overlooking.

This is not your doing. This is a bug in how NZBGet service checks are setup.
Do you have NZBGet configured in your config file?

This is not your doing. This is a bug in how NZBGet service checks are setup.
Do you have NZBGet configured in your config file?

I do. I've double checked the nzbget entry but I don't see anything out of the norm. Is there something I need to do within nzbget?

Can you share your [[nzbget]] config snippet? I'm pretty sure I have a fix for this, but I'm still not sure what caused it.

Sure.
[[nzbget]] #name     = "nzbgetvpn"  # Set a name to enable checks of your service. #url      = "http://<IP_ADDRESS>:6789/" #user     = "user" #pass     = "password"

Okay, that makes sense. It's crashing because you configured an empty nzbget. Lines beginning with # are ignored comments. Remove the # from the url line at minimum. Probably the other 3 as well. Then it'll start working without crashing.

OH! I'm sorry that should've been obvious. Thank you!


chore: Incorporate copyright check in pre-commit

About this change - What it does
Delete the copyright make target and replace it with a pre-commit hook. Remove the Github Action job, as this will now run as part of lint.yml::lint.
Why this way
Fewer moving parts and shorter feedback cycle. All linting can now be run uniformly with pre-commit run --all-files.

Merging this will require updating repository settings to remove copyright from required status checks in the branch protection rule for main.


Added options comment support

Hi, we will be removing EntityGenerator in 3.0 and 2.x is already in feature-freeze. Thanks for PR.


"terminal.integrated.shell.windows" in last update

Hi, I wake up this morning and I can't work any more. I Spent 2 hours trying to find out what happened. It turns out there was a visual studio code auto update and the setting "terminal.integrated.shell.windows": "C:\Windows\System32\cmd.exe" was deprecated. Instead there is some sort of powershell, i am not sure.
Anyway it doesn't behave the same way and all my compile scripts don't work any more. I had to uninstall vscode and install the march version, while disabling updates for good.
I am not sure what this is about. Do you know what you did to the shell that caused so much regression on my configuration?

Same for me. (well, in a sense)
I migrated to use the new "terminal.integrated.profiles.windows" setting, but I can't configure default shell per worksapce.
previously, I could set the shellArgs per workspace, and it was good enough.
preferably, at least for me, is the option to set the new "terminal.integrated.defaultProfile.windows" configuration per workspace, e.g.:
have the profiles configuration either at the user-level or the workspace-level (possibly overriding by name), and let me select the default profile at the workspace-level as well.

I've got the same issue here as well. Default terminal per workspace no longer available. All the tasks which depend on custom(default) shell, stopped working. New terminal "features" don't help.

After the april update all my profiles defined at terminal.integrated.profiles.windows stopped work.
It's as if VsCode is ignoring this configuration.

I believe this is already fixed, can you see if you can reproduce in the Insiders build?

I've tried and it doesn't work for my configuration. When you say "it's fixed", what do you mean? It behaves like before by default or i have to do something in the settings?
This is an exemple of what doesn't work:
       {             "label": "compile ts app ; ~ compile ts WATCH @client",             "type": "shell",             "command": "node",             "args": [                 "app-dev-utils/bin/app-dev-utils/src/vsc-task-run/VscTaskRun.js",                 "~ compile ts WATCH @client",                 "tsc-watch --noClear -p app-src/$ver/.compilets/tsconfig-client-app.json --onCompilationComplete \\\"node app-dev-utils/bin/app-dev-utils/src/fix-imports-js/FixImportsJs.js -watch app-bin/app-bin-client app-src/$ver/.compilets\\\"",             ],             "problemMatcher": ["$tsc-watch"],             "isBackground": true,             "auto": true,         },
This works with march version and doesn't with this version. It sends wrong command line arguments to my script, they are split into chunks because the shell is different. I have 30 scripts like this one, and each has a different bug with this new shell options. I spent 2 months writing 30.000 lines of scripting code to handle a cross platform configuration for android/ios/windows/firefox/safari and I don't really want to change it now because vscode has deprecated something (that i don't understand, i admit).
Regards

Let me just say (with respect) that the solution is to not deprecate something that so many people use, or to make an automatic migration to something behaving the same way. Or at least to provide a manual procedure to make our programs work like they did yesterday. This is a google practice to break developper's code, it's not Microsoft's way.

but I can't configure default shell per worksapce. previously, I could set the shellArgs per workspace, and it was good enough

@elazarcoh workspace terminal settings now require "terminal.integrated.allowWorkspaceConfiguration": true to be set as a stop gap solution until we get workspace trust enabled. See https://github.com/microsoft/vscode/issues/121470

I'm guessing everyone is having problems with specifically workspace profiles? The new system should be much better at handling this, but there are some caveats:

Workspace settings don't work by default unless "terminal.integrated.allowWorkspaceConfiguration": true is set for hopefully just this version. After that they won't work in restricted workspaces which is a new security concept coming soon.
A workspace can no longer set the default profile, I could be convinced to allow this you really rely on the default terminal here and getting to it from here is too much hassle:

Please let me know

To get the screenshot above I used:
User settings.json:
"terminal.integrated.allowWorkspaceConfiguration": true

Workspace settings.json
    "terminal.integrated.profiles.osx": {
      "My workspace shell": {
        "path": "bash",
        "icon": "terminal-bash"
      }
    }

After the april update all my profiles defined at terminal.integrated.profiles.windows stopped work.
It's as if VsCode is ignoring this configuration.

I added the configuration "terminal.integrated.allowWorkspaceConfiguration": true and now my profiles have reappeared. My configurations was in the workspace too.

I don't know what is a "workspace profile". I had a normal configuration with cmd.exe shell and no settings or "profiles". The commands which are valid ms dos commands don't work anymore. The command line arguments which are a feature of "type": "shell", "command": "node", "args", they don't work. Do you know why?

@bonjourjoel can you share your settings.json file? Specifically any setting with "terminal" in the key

I have my settings in the workspace, not in settings.json. Here they are
keyja2.zip

@bonjourjoel I expect setting terminal.integrated.allowWorkspaceConfiguration": true in your user settings should fix your problem too (unless you have a defaultProfile set in your user settings)

Yes thanks, it seems to work. I ran a few tests and if I understand correctly, this allowWorkspaceConfiguration makes the deprecated value of terminal.integrated.profiles.windows used like before?
It says that I should use #terminal.integrated.defaultProfile.windows# instead. But how? There is no documentation that I can see about the possible values. And can it do the same thing ? To use cmd.exe instead of powershell for the terminal? If so how?

@bonjourjoel sorry, docs coming soon https://github.com/microsoft/vscode-docs/issues/4526.
Because of these reports, I'm going to swap the priority of defaultProfile and shell/shellArgs such that if shell or shellArgs is specified, that will take precedence over the profile system. Then switch it several months later: https://github.com/microsoft/vscode/issues/123159. Note that this will not change the need for terminal.integrated.allowWorkspaceConfiguration which will is still expected to be going away in the following stable release.

Please put in the doc how to use cmd.exe as vsc's shell. Thanks.


Revert "Fix getMaxId won't get the right max id before GC"

What problem does this PR solve?
Issue Number: ref #3594
Problem Summary: If getMaxId ignore the deleted entry, we will reuse the PageId after a restart, which break the assumption that we will never reuse a PageID after deleted.
What is changed and how it works?
Reverts pingcap/tiflash#4838
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] 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

/merge


Remove vendor information and replace with of library used.

@RackHD/corecommitters @johren

+1

comment by test Jenkins, you can ignore this error
*** BUILD #200 ***
Test Name: test_workflows_action
Error Details: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Length': '147', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"93-TLuaJHRUZnd8+0IGqKa7mA"', 'Date': 'Tue, 30 Aug 2016 06:24:56 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"Request Timed Out (on.task-graph-runner:methods.cancelTaskGraph:Object).","status":"400","UUID":"6d32398e-3c2a-4aff-9f6b-421f49395d00"}
Stack Trace: Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/usr/lib/python2.7/unittest/case.py", line 1043, in runTest
self._testFunc()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 296, in testng_method_mistake_capture_func
compatability.capture_type_error(s_func)
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/compatability/exceptions_2_6.py", line 27, in capture_type_error
func()
File "/tmp/.venv/local/lib/python2.7/site-packages/proboscis/case.py", line 350, in func
func(test_case.state.get_state())
File "/home/onrack/jenkins_slave/workspace/Maglev-BRI-Test/on-http/RackHD/test/tests/api/v2_0/nodes_tests.py", line 318, in test_workflows_action
raise e
ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Length': '147', 'X-Powered-By': 'Express', 'Connection': 'keep-alive', 'ETag': 'W/"93-TLuaJHRUZnd8+0IGqKa7mA"', 'Date': 'Tue, 30 Aug 2016 06:24:56 GMT', 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"message":"Request Timed Out (on.task-graph-runner:methods.cancelTaskGraph:Object).","status":"400","UUID":"6d32398e-3c2a-4aff-9f6b-421f49395d00"}

:+1:

👍


[fix] #2501: Fixes the order of assets in queries with pagination

Signed-off-by: Vladimir Pesterev<EMAIL_ADDRESS>Description of the Change
Replaces the lexicographical order of assets with a timestamp-based order in AssetsMap.
For example:
Before: 1<PHONE_NUMBER>), 10<PHONE_NUMBER>), 2<PHONE_NUMBER>), 3<PHONE_NUMBER>), 4<PHONE_NUMBER>), 5<PHONE_NUMBER>), 6<PHONE_NUMBER>), 7<PHONE_NUMBER>), 8<PHONE_NUMBER>), 9<PHONE_NUMBER>).
Now: 1<PHONE_NUMBER>), 2<PHONE_NUMBER>), 3<PHONE_NUMBER>), 4<PHONE_NUMBER>), 5<PHONE_NUMBER>), 6<PHONE_NUMBER>), 7<PHONE_NUMBER>), 8<PHONE_NUMBER>), 9<PHONE_NUMBER>), 10<PHONE_NUMBER>).
Where N is Id and T is an insertion timestamp in N (T) format.
Issue
Resolves #2501
Benefits
Order now depends on insertion timestamp.
Possible Drawbacks
The queries that retrieve an asset will execute a bit slower because $O(\log n)$ (current implementation) and $O (\log n + \log n)$ (twice b-tree lookup) (impl in this PR).

Convert this to a draft because the current decision affects memory related optimizations.

@pesterev I believe we can close this in favor of #2575


Add support for Desktop application using Electron

What would you like to be added:
Currently, the project only supports web applications. It would be beneficial to add support for Desktop applications as well. Utilizing framework like Electron could enable the project to expand its compatibility to desktop platforms.
Why is this needed:
Adding support for Desktop applications would enhance the versatility and reach of the project, providing users with more options to interact with the application beyond just web browsers.
Additional Information:

@devleejb
I Interested in this issue, Can I try it?
If I proceed with the issue, I wonder if I can use cross platform framework like tauri in addition to electron.

@minai621
Sure, I'll assign this to you.
However, I'm not familiar with desktop applications. Could you share the pros and cons of the different solutions you're considering?
I believe it would be good to discuss this before proceeding with the implementation.

@devleejb
It seems like Tauri and Electron are the most popular libraries for building native desktop applications. After comparing the two.
Tauri

Pros
Lightweight: Small app size (a few MB) by using the system's native webview.
Low Memory Usage: Doesn't bundle Chromium, so it uses fewer system resources.
Secure: Strong security model by isolating frontend and backend.
Native Access via Rust: Access to system features (file system, OS APIs) with high performance and safety through Rust.
Cons
Rust Complexity: Requires knowledge of Rust, which has a steep learning curve.
Smaller Ecosystem: Fewer third-party tools and plugins compared to Electron.

Electron

Pros
Familiar JavaScript/Node.js Environment: Easy access to native features using JavaScript.
Large Ecosystem: Many libraries and tools available.
Cross-Platform Compatibility: Well-supported across multiple platforms.
Native Access via Node.js: Direct interaction with native system features using Node.js.
Cons
Heavy and Resource Intensive: Large file size and higher memory usage due to bundling Chromium.
Security Concerns: Allows full Node.js access in the renderer process by default, which may create security risks.

Additionally, there’s NW.js, but it has a less mature ecosystem compared to Tauri and Electron, though it offers a simpler, unified JavaScript environment for accessing native features.

It would be good to use JavaScript, just like in other projects.
There seem to be many things to discuss regarding the project setup, so let's discuss them together here.

It would be good to use JavaScript, just like in other projects.

In Tauri, Rust is primarily used for interacting with native system features such as the file system, OS APIs, or hardware. However, the complexity of Rust is mostly abstracted, so unless there is a need to implement specific native system functionality, the majority of the code can be written in JavaScript/TypeScript.
Focus on converting an already developed website into a native application, Tauri might be the better choice due to its lightweight nature and lower resource consumption.

@devleejb
After considering the deploy for current work, I think Tauri might be a better option than Electron, mainly due to the smaller packaging size. Once we move forward with distribution, we’ll need to set up a proper process for it.
compares the two framework: https://www.levminer.com/blog/tauri-vs-electron

@minai621
I understand that Tauri has advantages in terms of resource usage. However, considering the open-source projects, I believe Electron is easier to manage due to its larger ecosystem. What are your thoughts on this?
Both frameworks seem to have their pros and cons.
@hackerwins May I ask for your opinion?

@devleejb @minai621
Thank you both for your valuable input. After careful consideration:
I hope we proceed with Electron, primarily because:

It's easier for the sub-project owner(@devleejb) to maintain, which is crucial for long-term sustainability.
Its larger ecosystem offers better support and resources.

However, we'll keep our options open:

We'll structure our code to be as framework-independent as possible.
We'll optimize for performance to mitigate Electron's resource intensity.
We'll keep Tauri in mind for potential future migration.

This approach leverages our current team's strengths while allowing flexibility for future developments. I hope we start with a small prototype in Electron and reassess as we progress.
Your continued input is welcome as we move forward.

@devleejb
I’ve encountered platform-specific limitations when building with Electron. To build a macOS app, it must be done on a macOS environment, and the same goes for Windows builds—they need to be built in a Windows or Wine environment.
We need to discuss two issues

How to handle platform-specific builds
macOS builds must be performed in a macOS environment, and Windows builds can be done using Docker with Wine, though this has some limitations.
Pipeline considerations
After the builds, we need to create an environment where the resulting packages can be downloaded for codepair testing.

@devleejb
I’ve encountered platform-specific limitations when building with Electron. To build a macOS app, it must be done on a macOS environment, and the same goes for Windows builds—they need to be built in a Windows or Wine environment.
We need to discuss two issues

How to handle platform-specific builds
macOS builds must be performed in a macOS environment, and Windows builds can be done using Docker with Wine, though this has some limitations.
Pipeline considerations
After the builds, we need to create an environment where the resulting packages can be downloaded for codepair testing.

Additionally, could we resolve the issue by making our app a PWA instead of an Electron app?

Handling platform-specific builds
We can use Electron Builder Action, which supports multiple environments.
Deployment considerations
For now, I believe uploading GitHub release artifacts is sufficient.
PWA
While PWA is also a good option, its support varies depending on the user’s OS and browser (e.g., Safari). Additionally, for installable applications, registering on the App Store in the future could provide more opportunities for users to discover CodePair.


[WIP] Anonymous credential provider

Closes #1286.
I do not have an AWS account, but I tested this with with the Internet Archive's S3 API. That is my use case, and the reason I wrote this.
Things to resolve before I merge:

[ ] Get a sign off that my clever approach is acceptable
[ ] Get guidance on what unit tests to write for the new provider (how many services? Are non-AWS tests allowed?)
[ ] Contribution guidelines: add a comment to the CHANGELOG
[ ] Contribution guidelines: figure out how to ensure generated code was updated

Thanks for the pull @jhwgh1968!
One approach that I've taken in the past when it comes to adding a new feature like this is to first examine how other language SDKs implement the feature and adapt the standard to the target language.
I've noticed in both the Go and Java SDKs anonymous credentials are implemented as sentinel values represented simply as credentials with empty values
This seems like a solution that could work just as easily here.
Panics should be reserved for states within an application that can exisit where all other attempts to represent that state as a value failed . The rust book has some good guidance  on this topic
One alternative might be to use a sentinel value produced by a new associated fn on StaticCredentialProvider and or an associated const and use the knowledge of that sentinel value to avoid the signing process.

Though it may seem odd at first, @softprops, I chose to refuse returning a ProvideAwsCredentials object at all (and panic instead) intentionally.
Allow me to explain; if you still want me to change it, I will do so.
I had a number of ideas on how this could be done, and your suggestion was one of the first ones I thought of. But when I surveyed the code, I discovered the obvious solutions are inhibited by the current state of the APIs:

The AwsCredential type is a user visible type.

If I were to change it (such as making it an enum of Anonymous and KnownCreds), that would break custom credential providers as well as some user code that defined credentials statically.
If I don't change any APIs, then the sentinel values I can use for the anonymous credential instances (e.g. empty string) are unhelpful and (in my not-so-humble opinion) very un-Rust. Nothing forces service code to check for the sentinel value, and logic errors are not only uncaught, but actively misleading (see later).

There is a lot of type erasure around the ProvideAwsCredentials trait.

If I compatibly change the trait interface (like adding an is_anonymous method which defaults to false), that would break user code for custom providers. This would also have the same sentinel value problem of uncaught logic errors as above.
If I changed the trait interface to force the use of sentinels (such as returning Option<&str> for the getters that returned &str so that anonymous credentials could return None), then this one little edge case would add significant complexity.

Credentials can no longer be required at compile time, even by services that require credentials.
Every service must to unwrap valid credentials and propagate the error of "anonymous credentials are not supported" to users, making their API more complex.
Every user would need to handle a new type of error besides "permission denied": credentials required.

If I don't change the trait and instead split anonymous credentials from "real" ones, I would have to change almost all the code that uses credentials, because it could not type erase anymore.

To circle back for a moment: why are logic errors actively misleading? Because the sentinel values are "valid nonsense" rather than an instance of a violated invariant (the latter is what Rust prefers).
As far as I can tell, if empty string or nonsense credentials are provided to a service (or user code) that didn't check for them, the request would be generated and signed just fine. It would just be rejected by the server with "access denied." For S3, this would lead a user to think "this bucket does not support anonymous access" rather than "there must be a bug in the anonymous credential handler."
Since this was requested in February, and no one has even made a suggestion about it, I suspected this was trickier than it first seemed. Thus, rather than creating a large PR with one of those approaches that might be rejected, I chose a solution which is a compromise, but avoids all the major drawbacks:

No API changes on types or traits.
No changes to type erasure or flow of the code.
The type system can still detected anonymous credentials where they are used (via type size == 0). Thanks to dead code elimination after monomorphization, this also makes anonymous credential handling zero cost.
Services do not have to explicitly handle error cases with boilerplate. Instead, the credentials should never be unwrapped in the first place if they are anonymous.
Any logic errors in services will fail with a clear error message -- though at runtime, rather than compile time.

If you would still prefer a different approach, let me know.

I would also point out: the current behavior of the default credential provider is to panic if it can't find any credentials. Thus, I thought panicing in the face of an internal logic error -- a service did not handle anonymous credentials correctly -- would be perfectly acceptable.

@jhwgh1968 thank you for the thoughtful and detailed response. These are all very reasonable points.
My intent was only to illustrate how other SDKs solved the same problem. There is value in sharing a common solution within a common domain. In other SDKs, the signers are anonymous credential aware as it is in this branch.
I feel the simplest possible solution may be to use the static credential provider given credentials with an empty key and secret and and let the signer be aware that the empty credentials indicate anonymity. That maybe the reason why other SDKs have taken that path.
Another consideration is that attempts have been made and are in progress to be made to slim this project's code down. I'm not sure the amount of code added to support this weighs well against how common the case of anonymous credential usage is throughout aws services.
I don't feel super strongly but would like to give others a chance to weigh in.

After reading through the great comments in here, I'm leaning towards this approach over sentinel values. If we're still unsure about this approach vs how other AWS SDKs handle anonymous credentials, we could have a PR with that approach and compare how they look.
If we do go forward with this approach, adding an integration test would work well as both verifying behavior and as an example of how to use it. I'd say a test in the S3 integration tests would work well. Using a non-AWS service there would be fine IMO. 👍

I realize I’m a bit late to the party, but I’d like to chip in nonetheless.
While I don’t mind the sentinel approach per se, the way it’s tested against using size_of concerns me a bit, as it implictly relies on the memory layout of the provider types.
As a result, it seems brittle and prone to breakage. For example, as a third party I couldn’t ever create another impl of ProvideAwsCredentials on a ZST, without it breaking in a way that’s possibly difficult to understand.
I think I would prefer an approach using TypeId, if that’s at all possible. Alternatively, I don’t quite understand why a new trait method like is_anonymous wouldn’t work? That seems to me like it would be a cleaner approach.
Generally speaking, I don’t think we should be concerned about backwards compatibility here, as we often cut breaking changes, and I’d rather see us focus on finding a robust and clear API for this.
On Fri, Nov 1, 2019, at 2:23 PM, Matthew Mayer wrote:

After reading through the great comments in here, I'm leaning towards this approach over sentinel values. If we're still unsure about this approach vs how other AWS SDKs handle anonymous credentials, we could have a PR with that approach and compare how they look.
If we do go forward with this approach, adding an integration test would work well as both verifying behavior and as an example of how to use it. I'd say a test in the S3 integration tests https://github.com/rusoto/rusoto/blob/master/integration_tests/tests/s3.rs would work well. Using a non-AWS service there would be fine IMO. 👍
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/rusoto/rusoto/pull/1566?email_source=notifications&email_token=AAUNTLOLH73PU4IYUI4NV6LQROOMBA5CNFSM4JGTL6T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECZ4HWI#issuecomment-548651993, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUNTLISO7H4HPFUYGZLR2TQROOMBANCNFSM4JGTL6TQ.

I realize I’m a bit late to the party, but I’d like to chip in nonetheless.
While I don’t mind the sentinel approach per se, the way it’s tested against using size_of concerns me a bit, as it implictly relies on the memory layout of the provider types.
As a result, it seems brittle and prone to breakage. For example, as a third party I couldn’t ever create another impl of ProvideAwsCredentials on a ZST, without it breaking in a way that’s possibly difficult to understand.
I think I would prefer an approach using TypeId, if that’s at all possible. Alternatively, I don’t quite understand why a new trait method like is_anonymous wouldn’t work? That seems to me like it would be a cleaner approach.
Generally speaking, I don’t think we should be concerned about backwards compatibility here, as we often cut breaking changes, and I’d rather see us focus on finding a robust and clear API for this.

Thanks everyone for your comments.
I just now tried switching to empty string sentinels instead of panics, just to see what it would look like. While the code does not look as bad as I feared, my prediction of troubles debugging have come to pass.
The first thing I tried was this instead of my check:
     fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
         match self.state.take().unwrap() {
             SignAndDispatchState::Lazy { mut request } => {
                let has_credentials = self.inner.credentials_provider.as_ref()
                    // Anonymous credentials return an empty string sentinel we need to check for.
                    .map(|p| !p.credentials().get_aws_access_key_id().is_empty())
                    .unwrap_or(false);
                if has_credentials {
                    let p = self.inner.credentials_provider.as_ref().unwrap();
                    let future = p.credentials();
                    self.state =
                        Some(SignAndDispatchState::FetchingCredentials { future, request });
                } else {
                    request.complement_with_plus(true);
                    let future = self.inner.dispatcher.dispatch(request, self.timeout);
                    self.state = Some(SignAndDispatchState::Dispatching { future });
                 }

However, that didn't work, because p.credentials() in that map is not the actual provider, but instead a future to it.
To try and find where the equivalent call was (grep was not helpful), I tried to put an assert in the actual signing code itself:
    /// Signs the request using Amazon Signature version 4 to verify identity.
    /// Authorization header uses AWS4-HMAC-SHA256 for signing.
    pub fn sign_with_plus(&mut self, creds: &AwsCredentials, should_treat_plus_literally: bool) {
        assert!(!creds.aws_access_key_id().is_empty(),
                "Internal error: service does not support anonymous credentials");
        self.complement_with_plus(should_treat_plus_literally);
    # ...

The back trace I got was... pretty unreadable:
thread 'tokio-runtime-worker-0' panicked at 'Internal error: service does not support anonymous credentials properly', /home/admin/Desktop/Software/rusoto/rusoto/credential/src/anonymous.rs:63:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:77
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:61
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1028
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:65
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:50
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:189
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:206
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:469
  11: std::panicking::begin_panic
             at /rustc/518deda77feb4957bfd311b6cb50baa7ef9ca6a2/src/libstd/panicking.rs:403
  12: <rusoto_credential::anonymous::AnonymousProvider as rusoto_credential::ProvideAwsCredentials>::credentials
             at /home/admin/Desktop/Software/rusoto/rusoto/credential/src/anonymous.rs:63
  13: <alloc::sync::Arc<P> as rusoto_credential::ProvideAwsCredentials>::credentials
             at /home/admin/Desktop/Software/rusoto/rusoto/credential/src/lib.rs:228
  14: <rusoto_core::client::SignAndDispatchFuture<P,D> as futures::future::Future>::poll
             at /home/admin/Desktop/Software/rusoto/rusoto/core/src/client.rs:188
  15: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/future/mod.rs:113
  16: <rusoto_core::future::RusotoFuture<T,E> as futures::future::Future>::poll
             at /home/admin/Desktop/Software/rusoto/rusoto/core/src/future.rs:244
  17: <futures::sync::oneshot::Execute<F> as futures::future::Future>::poll
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/sync/oneshot.rs:589
  18: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/future/mod.rs:113
  19: futures::task_impl::Spawn<T>::poll_future_notify::{{closure}}
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/mod.rs:329
  20: futures::task_impl::Spawn<T>::enter::{{closure}}
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/mod.rs:399
  21: futures::task_impl::std::set
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/std/mod.rs:83
  22: futures::task_impl::Spawn<T>::enter
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/mod.rs:399
  23: futures::task_impl::Spawn<T>::poll_fn_notify
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/mod.rs:291
  24: futures::task_impl::Spawn<T>::poll_future_notify
             at /home/admin/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.29/src/task_impl/mod.rs:329
   ...

In other words, ~turtles~ Tokio all the way down. :turtle: :turtle: :turtle: :turtle: ...
I have no idea what the chain of futures looked like to get there, and no idea how to figure it out. Any guidance would be helpful.
Also @srijs, I though of using type_id, but though it was de-stabilized due to a security vulnerability.
Turns out I was confused, and I was thinking of Error::type_id, which is different. That would be my Plan B, unless there is a bottom to that stack of turtles after all.

I tend to agree here with @softprops on the use of sentinel values. From the perspective of a user, I believe this is the most straight forward. When I look at anonymous credentials docs in other SDKs, IMO,  I can quickly understand how its implemented and can  use it accordingly, "oh it's just empty values".   In addition  I don't believe we should have panics in validly reachable parts of our code. Although it might not make sense to call those methods on an anonymous credentials it shouldn't be our decision to dictate that a run time crash should occur if it happens. With that being said, sentinel values or not, I'd like to see integration tests showing/testing the workflow of it and a better way to test for the provider and to not rely on std::mem::size_of.

Here's a draft for alternative approach https://github.com/rusoto/rusoto/pull/1575. I'm not married to it and happy to discard it but I thought it would illustrate some ideas more clearly that I could express in pr comments

Thanks for the alternative, @softprops!
Now that I have seen that code and poked at it a bit, I would be happy to take that approach. It solves the main reasons I did that the other way:

Based on the providers that were already there, I was thinking that anonymous credentials should be a separate provider. That impl From<AwsCredentials> for StaticProvider combined with adding a new default for static credentials was something I simply never thought of. It creates an interface to using anonymous credentials that seems logical to me.

I had trouble seeing the entire data path due to the Futures involved, and could not find a similar place in the client to do the anonymous check with the credentials "present" rather than as a Future.

Since @itsHabib had questions about my runtime asserts, I will start with the first commit on #1575 and build more on top of it. Sound good, @softprops?

Go for it! Thanks for sticking with it.

After considerable reading and some experimentation, I've come up with a good approach and made some progress on it. But now I'm stuck.
I don't have an AWS account myself because reasons, so I am starting out with the Ceph S3-compatible provider in the Semaphore CI tests. It support ACLs, including the built-in ACL for world-readable. It also accepts anonymous requests without the authentication header just like the Internet Archive.
Given that, I thought it would be easy to test by updating one of the integration tests which does create, put, get, list, delete, and doesn't put any important data into the bucket. Right before the HEAD and GET requests, I set the "public-read" pre-canned ACL on the bucket, and then switch to a separate S3Client with anonymous credentials.
The WIP commit currently in my branch will do this ACL update, but gates the unauthenticated reads behind the S3_ANONYMOUS_READ environment variable. When unset, my new test passses. When set, it fails because the first HEAD request gets a 403 Forbidden response.
I am fairly new to this level of detail in the Amazon APIs, so I probably missed something. Any pointers?

It looks like my ACL grant was only to the bucket, and not recursive. My bad!

I think this is what you were looking for, @softprops! Could I get a review?

I haven't taken a close look yet but can do you have access to the build logs for these CI errors @jhwgh1968?
Otherwise the changes look good. Just had a few comments on the changelog entry. I'd like to see if the CI tests errors were caused by the change before merging

If I'm reading the AppVeyor log correctly, @softprops, the failure is that there were no test dependencies added for the unit test you wrote, so it couldn't find the crates you used. Several of the Azure pipelines failures are the same thing, so I presume they will all be fixed as well.
I also addressed your one comment. Let me know if there's anything else!

Okay, CI is indeed green. I think I've fixed your comment. Anything else, @softprops?

Looks good. Thanks for your time and patience on this @jhwgh1968


Add Alphaday to Showcase

Thank you for your contribution to the IC Developer Portal.
Before submitting your Pull Request, please make sure that:

[ ] You have updated the .github/CODEOWNERS file according to your changes.
[ ] You have registered new documents to /sidebars.js if any.

Hello,
Can I get some help to resolve issues regarding checks? I did sign the CLA here: https://github.com/dfinity/cla/issues/429
I also did link our website in the submission but the website check gives an error.
Note: We are already grantees of ICP and have built the free-to-use dashboard for your community. We are just seeking a bit of help spreading awareness.
Thank you,
Mike


fix two problems in windows

export libuv symbols when linking without shared libuv
fix linking lua lib name without standard name in windows (lua for windows)

+1 Thank you.


Tutorials in docs for VNETs - Picture update needed for subnet details

Hi team,
While I was doing the tutorials, I observed that the UI for VNET creation was updated. The pictures needs to be updated on this Quickstart page and all subsequent tutorials. Only the subnet create/edit page are inconsistent.
Apart from that, good stuff - well thought through. Thanks!
Current in tutorials:

Current in Azure Portal:

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

ID: 0f0990fc-9834-bde3-5e06-071c75fa89a5
Version Independent ID: 96f5df37-aa95-443d-2500-37665179ce89
Content: Quickstart: Use the Azure portal to create a virtual network - Azure Virtual Network
Content Source: articles/virtual-network/quick-create-portal.md
Service: virtual-network
GitHub Login: @asudbring
Microsoft Alias: allensu

Thanks for your dedication to our documentation. We have created an internal work item in our backlog to resolve this issue. If you determine another possible update to our documentation, please don't hesitate to reach out again.
#please-close


Create TestProject template for JS

Implementation for https://github.com/microsoft/botframework-sdk/issues/5346

version 4.5.0 or above of the generator-botbuilder npm package now supports core bot test as an option


Monitoring v0.1.1

Fix https://github.com/rancher/rancher/issues/26969

Include https://github.com/rancher/system-charts/pull/185


Order facets by count

🗒 Summary
Order facets by count
Also removes boost filters
♻ Related Issues

Refs NASA-PDS/portal-wp#69

Asked to review but already merged 🤷

@jordanpadams if you're going to submit a PR at 3:00pm PT and then merge at 3:08pm without any review, I have to ask: what are we doing here? You have the permissions to commit directly to main—just do that and not waste anyone else's time, right?

@nutjob4life I agree. I was in a rush to get these changes in for the weekend. This was bad form. I will roll back that changes and create a new PR for the changes as needed.

@jordanpadams don't sweat it! Sometimes time is of the essence


ARO-5325: Use cloud error whenever the run encounters an error so it …

…is propagated to user.
Which issue this PR addresses:
Fixes
https://issues.redhat.com/browse/ARO-5325
What this PR does / why we need it:
Propagate error to user.
Test plan for issue:
Updated runner_test.go
Is there any documentation that needs to be updated for this PR?
No, tech debt.
How do you know this will function as expected in production?
Unit test.

thanks for the fix, you may want to fix the test failures caused by the err -> NewCloudError change, eg, in install_test.go.

FYI you'll need to move this to a branch off the main repo to get the CI to run: https://redhat-internal.slack.com/archives/C02ULBRS68M/p1710987980698209?thread_ts=1710774666.598769&cid=C02ULBRS68M


Added new baselines

Goes with UV-CDAT/uvcdat#1999

@chaosphere2112 are you sure the anti-alias is OFF?

@doutriaux1 I'll regenerate them tomorrow, but I'm pretty sure these were made using the new 'testing.regression.init', so they really should be.

@doutriaux1 Yup, these were made with anti aliasing off. I just draw a lot of points for the circles :wink:


Add optional trimming of fastq files

Description of feature
When running low input libraries we are having issues with overrepresentation of polyG sequences in the data coming from the NovaseqX instrument. A possible solution is to include an optional trimming of fastq files with fastp.

done


die() in tested class still result in "Success"

If I die() in a tested method of a given class, the executed test still prints a "Success" message and returns "0".

> atoum version nightly-823-201111021458 by Frédéric Hardy
> PHP path: /usr/bin/php5
> PHP version:
=> PHP 5.3.6-6~dotdeb.0 with Suhosin-Patch (cli) (built: Apr 17 2011 13:37:29)
=> Copyright (c) 1997-2011 The PHP Group
=> Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
> GivenClass...
[SSS.._______________________________________________________][3/5]
=> Test duration: 0.01 second.
=> Memory usage: 1.75 Mb.
> Total test duration: 0.01 second.
> Total test memory usage: 1.75 Mb.
> Running duration: 0.14 second.
Success (1 test, 5 methods, 30 assertions, 0 error, 0 exception) !

There is no way to handle direct call to die() or exit() in a tested class.
The only solution is to use a dedicated public method to stop the script and mock it in the test.
stop('Stop because i want !');
       }
   }
}

namespace vendor\project\tests\units;

class foo extends \mageekguy\atoum\test
{
    public function testSoSomethingAndCallStop()
    {
        $this->mockTestedClass();

        $foo = new \mock\vendor\project\foo();
        $foo->getMockController()->stop = function() {};

        $foo->doSomethingAndCallStop();

        $this->assert
		->mock($foo)->call('stop')->withArguments('Stop because i want !')->once()
	;
    }
}

?>

Just to be sure, I don't want to test the call to die(), I want to prevent someone to call a die() somewhere and still my CI is green.

Also it says "3/5" and "Success", could it be just a regular check that every method was successful ?

But how can you return a global Success status though the status line prints 3/5 ?

"Success"  means "no fail, no error and no exception".
Currently, it does not mean that all test methods was executed.

Maybe adding a "--strict" option a la Behat, where skipped test returns Error could solve this issue ?

Yep I see.
When you say "Currently", do you mean that you consider it as a bug (I do) ?
In fact there can be multiple exit scenarii that you cannot intercept like fatal errors, that lead to such a case.

When you say "Currently", do you mean that you consider it as a bug (I do) ?

Not sure that it's a bug, see below.

In fact there can be multiple exit scenarii that you cannot intercept like fatal errors, that lead to such a case.

atoum can handle fatal error and it's a failure.
atoum can also handle segfault without any problem, but it's not a failure, because it's a PHP problem (bug in the Zend Engine), not a code problem (not a bug in the tested class).
I think that it's a semantic problem.
What means exactly "SUCCESS" ?
In my current opinion, "SUCCESS" = 0 fail, 0 error, 0 exception.
Segfault is a problem, but it's not a test failure.
Direct call to die() or exit() are in fact similar to segfault : the php script stop, and it's not a test failure.
So, perhaps there is not enough visibility in the report about the fact that some test methods stop "abnormaly".
try this :

It's a failure ? Not sure...
Currently, atoum say :

atoum version DEVELOPMENT by Frédéric Hardy (/Users/fch/Atoum/repository)
PHP path: /usr/local/bin/php
PHP version:
=> PHP 5.3.8 (cli) (built: Sep 21 2011 23:14:37)
=> Copyright (c) 1997-2011 The PHP Group
=> Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
=>     with Xdebug v2.1.1, Copyright (c) 2002-2011, by Derick Rethans
mageekguy\atoum\tests\units\adapter...
[.___________________________________________________________][0/1]
=> Test duration: 0.01 second.
=> Memory usage: 0.00 Mb.
Total test duration: 0.01 second.
Total test memory usage: 0.00 Mb.
Code coverage value: 0.00%
=> Class mageekguy\atoum\adapter: 0.00%
==> mageekguy\atoum\adapter::__call(): 0.00%
==> mageekguy\atoum\adapter::invoke(): 0.00%
Running duration: 0.16 second.
Success (1 test, 1 method, 0 assertion, 0 error, 0 exception) !

According to me, Success means : every test passed.
One test that did not run is a failure. What is the purpose of this test if when it does not run, the global status is still ok ?
I write tests for them to be run :)

I write tests for them to be run :)

But it can't run with a die() or a exit() in it...
So, if there is a die() in it, it's certainly because you don't want run it, so it's not a failure.

if all tests was run and passed => Success
if one or more tests wasn't run or not passed => Fail (or Error, or Warning, or whatever)

In fact we put a die in it to debug something. And we saw that the test still pass. That's why we opened this issue in the first place :D
The test should have failed. That surprised us it did not.

Currently, a die() in a test method is equivalent to an empty test method.
And an emtpy test method is not a failure.
So i have a problem, because this case is like the schrodinger cat : it may be failure, or not.

But what is the point of an empty test method ? According to me it should be considered as a failure.

Why ?
No assert = no failure = success.

No assert = useless = failure :)
Different point of view :D

No assert = useless = failure :)
Different point of view :D

Yes, just need to know if all users are the same point of view than you.
FYI, It's not a problem to change this behaviour.
Just need to add a "status" in the score to handle these cases (segfault, direct call to die()/exit(), empty test method).
Currently, there are "fails", "errors" and "exceptions" in score.
But i have no idea for the name of the new status.
If you have a suggestion...

"problem" ?

"not completed" ?

+1

I have find during the name, It will be "uncompleted".


Enhance ConnectivityServiceEndPoint to include capacity/bandwidth

Enhance ConnectivityServiceEndPoint to include capacity/bandwidth (to support different input and output B/W profiles).
Do we need same attribute in the ConnectivityConstraint? If so, how to resolve in-consistencies if present.

TAPI Call 6/6/2017:  Agreed - It was also noted that this issue and related use cases are described in the ONF contribution onf2017.037.xx which was presented/discussed at the ONF Heidelberg interim meeting (Feb 2017) as well as subsequent TAPI calls. As a result of those discussions, the group agreed to add the Capacity attribute to ServiceInterfacePoint  and ConnectivityServiceEndPoint,  but not clear if there is value to add the attribute to the NodeEdgePoint.


Error in ToolsExample

Hi!
I clone your repository and try the ToolsExample, work nicely until I click on Gender, then I get an error, origina DataFileengine.cs, line 287, when parsing to integer. The nextToken value can change ("u", "y", "as" are just 3 examples).
But maybe I should start by asking: is this repository still maintained? It's older than the issue in AlexPoint's OpenNLP, I haven't find anywhere if his repository works on .NET Standard or this is the one.

Six months later, no answer. I guess this is not a maintained project. What a pity.


[Event Request] Report 790 Calculate Inventory - procedure CalcWhseQty - OnCalcWhseQtyOnAfterGetWhseItemTrkgSetup

Please add an Event OnCalcWhseQtyOnAfterGetWhseItemTrkgSetup in procedure CalcWhseQty in Report 790 Calculate Inventory
local procedure CalcWhseQty(AdjmtBin: Code[20]; var PosQuantity: Decimal; var NegQuantity: Decimal)
    var
        WhseEntry: Record "Warehouse Entry";
        WhseEntry2: Record "Warehouse Entry";
        WhseItemTrackingSetup: Record "Item Tracking Setup";
        ItemTrackingMgt: Codeunit "Item Tracking Management";
        WhseQuantity: Decimal;
        NoWhseEntry: Boolean;
        NoWhseEntry2: Boolean;
    begin
        AdjustPosQty := false;
        with QuantityOnHandBuffer do begin
            ItemTrackingMgt.GetWhseItemTrkgSetup("Item No.", WhseItemTrackingSetup);

            OnCalcWhseQtyOnAfterGetWhseItemTrkgSetup("Location Code", ItemTrackingSetup); <-- NEW EVENT

            ...
        end;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnCalcWhseQtyOnAfterGetWhseItemTrkgSetup(LocationCode: Code[10]; var ItemTrackingSetup: Record "Item Tracking Setup")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 43974.


OS Error 21 thrown when getting mounts on Windows Server 2008R2

When executing the System::mounts() function on Windows Server 2008, it returns the following error:
The device is not ready. (os error 21)
I tried debugging the application but because this is a production machine, I am not able to install rust and therefore the backtrace generated is just a bunch of <unknown>s.
λ cargo --version
cargo 1.34.0 (6789d8a0a 2019-04-01)
λ rustc --version
rustc 1.34.1 (fc50f328b 2019-04-24)
Windows Version: Windows Server 2008 R2

interesting.. can you reproduce on a local 2008 VM and/or Win7 or something?
I'm not very familiar with Windows, so I probably won't be able to help.

Just reproduced on a Windows 7 Professional machine.
main.rs:
extern crate systemstat;

use systemstat::{System, Platform};

fn main() {
	let sys = System::new();

	match sys.mounts() {
		Ok(val) => println!("{:?}", val),
		Err(e) => println!("{:?}", e)
	}
}

Output:
Os { code: 21, kind: Other, message: "The device is not ready." }
I'll pull the source and see if I can isolate which winapi call causes this error

Ok, so I've discovered what the problem is.
On older windows systems (2008 && Win7, afaik), the OS will return an error when it is reading an empty CDROM drive. I was thinking that if the event of an error being returned by the GetVolumeInformationW, you could call GetDriveTypeW and see if it returns DRIVE_CDROM and if so, just fill the Filesystem struct for that drive with some values indicating that has 0 avail, 0 free, and 0 total.
I can create a PR for it, if you want to move forward with my idea. If not, that's fine too.

Interesting! Yeah of course please do create a PR.


problems with netexec

Hello,
The installation completed correctly (including netexec) but the script considers it not installed :
[+] Mon Oct 16 11:46:39 PM CEST 2023
[-] Please ensure netexec is installed and try again...

package netexec 1.0.0, installed using Python 3.11.5
- NetExec
- netexec
- nxc
Do you know what's missing? a path?

which netexec
/home/kali/.local/bin/netexec
netexec=$(which netexec)
if [ ! -f "${netexec}" ] ; then
echo -e "${RED}[-] Please ensure netexec is installed and try again... ${NC}"
There is no reason?