python setup.py install with error

python setup.py install
generating build/warpctc_pytorch/_warp_ctc/__warp_ctc.c
(already up-to-date)
not modified: 'build/warpctc_pytorch/_warp_ctc/__warp_ctc.c'
running install
running bdist_egg
running egg_info
writing warpctc_pytorch.egg-info/PKG-INFO
writing dependency_links to warpctc_pytorch.egg-info/dependency_links.txt
writing top-level names to warpctc_pytorch.egg-info/top_level.txt
reading manifest file 'warpctc_pytorch.egg-info/SOURCES.txt'
writing manifest file 'warpctc_pytorch.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying warpctc_pytorch/_warp_ctc/init.py -> build/lib.linux-x86_64-3.6/warpctc_pytorch/_warp_ctc
running build_ext
building 'warpctc_pytorch._warp_ctc.__warp_ctc' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -m64 -fPIC -m64 -fPIC -fPIC -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/home/carlhung/warp-ctc/include -I/home/carlhung/anaconda3/envs/fastai/include/python3.6m -c build/warpctc_pytorch/_warp_ctc/__warp_ctc.c -o build/temp.linux-x86_64-3.6/build/warpctc_pytorch/_warp_ctc/__warp_ctc.o -std=c++11 -fPIC -std=c99 -DWARPCTC_ENABLE_GPU
cc1: warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -m64 -fPIC -m64 -fPIC -fPIC -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/TH -I/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC -I/home/carlhung/warp-ctc/include -I/home/carlhung/anaconda3/envs/fastai/include/python3.6m -c /home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp -o build/temp.linux-x86_64-3.6/home/carlhung/warp-ctc/pytorch_binding/src/binding.o -std=c++11 -fPIC -std=c99 -DWARPCTC_ENABLE_GPU
cc1plus: warning: command line option ‘-std=c99’ is valid for C/ObjC but not for C++
/home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp: In function ‘int gpu_ctc(THCudaTensor*, THCudaTensor*, THIntTensor*, THIntTensor*, THIntTensor*, int, THFloatTensor*, int)’:
/home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp:92:49: error: cannot convert ‘THCudaTensor*’ to ‘const THFloatTensor*’ for argument ‘1’ to ‘int64_t THFloatTensor_size(const THFloatTensor*, int)’
int probs_size = THFloatTensor_size(probs, 2);
^
/home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp:105:61: error: invalid conversion from ‘size_t {aka long unsigned int}’ to ‘void**’ [-fpermissive]
void* gpu_workspace = THCudaMalloc(state, gpu_size_bytes);
^
/home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp:105:61: error: too few arguments to function ‘cudaError_t THCudaMalloc(THCState*, void**, size_t)’
In file included from /home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC/THC.h:4:0,
from /home/carlhung/warp-ctc/pytorch_binding/src/binding.cpp:9:
/home/carlhung/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/utils/ffi/../../lib/include/THC/THCGeneral.h:205:21: note: declared here
THC_API cudaError_t THCudaMalloc(THCState *state, void **ptr, size_t size);
^~~~~~~~~~~~
error: command 'gcc' failed with exit status 1

sorry, wrong post. can please remove this post.

So you have solved this?
I had this problem too, so I solved it in https://github.com/SeanNaren/warp-ctc/issues/83
However, there is wrong when I run test_gpu.py.
So I am wondering if you have better solution.

i have same problem

THC_API cudaError_t THCudaMalloc(THCState *state, void **ptr, size_t size)

并没有解决。。。。

Hey guys, I've found a solution.
source answer: https://www.jianshu.com/p/e948f44c6b37
`Error info: THC_API cudaError_t THCudaMalloc(THCState *state, void **ptr, size_t size);
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1.
Modification: pytorch_binding/src/binding.cpp:
1 at 92 line
int probs_size = THCudaTensor_size(state, probs, 2);
2 at l05 lines
void* gpu_workspace;
THCudaMalloc(state, &gpu_workspace, gpu_size_bytes);`
Done ^_______________________^


Fixing broken toString() impl, and adding test

Motivation
The toString() was buggy, not correctly printing the names, also the implemtation was doing String concatenation. it also lacked a unit test
Description
fixed impl + test
Progress

[x] Done Task

@ziccardi changed


MIS: Improving Navigation with Hyperlinks

In Section 9.4.1, you refer to other sections of the document. Adding hyperlinks to these references would greatly improve readability and make navigation through the document much easier.

Duplicate of #65


PEP 458: Add Sections for Signing Metadata and the Formats of Key Objects and Metadata

Discuss the actual format of the JSON metadata files, and reference the example metadata files included in the "pep-0458-repository" subdirectory available here.

Explain how the JSON metadata is signed and the signing functions provided by the repository management tool.  Code snippets showing the signing and writing of metadata are provided as well.

Finally, a section for the password-protected, encrypted key files is added.  In addition to the cryptographic primitives that may be used, the format of the key objects stored in these encrypted key files and metadata is outlined.

@lvigdor
Thanks you for reviewing this pull request.  Addressed all of your comments here: https://github.com/vladimir-v-diaz/interoperability-peps/commit/c838e229aed78df274e8a867b2877609247e172e


Document how to set up "Network isolation support"

Create a document (must not be pushed to the official documentation as long as nothing is merged to Master) which provides guidance on

How to set up Marathon (if any preparation must be done)
Example JSONs
General walk through from set up to launch an app

Moved to 0.15. - because it is unclear in the moment how to setup Network Isolation in the cluster.
We have documentation how to use that feature from Marathon, given it is enabled in the cluster.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-2749. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


"patch-1": Make index.php.dist runnable from top directory.

Objective is that you don't have to unpack the picocms package in the http(s) servers root path as single files but put it in a directory called "picocms" while keeping it accessible by "http://top.level.domain/?sub".

Hmm... Unfortunately I don't really understand what you're trying to achieve and why you're trying to achieve it. :confused:
I first though you're trying to move some files to a folder different than httpdocs, but this doesn't seem to be the case. What are the advantages of moving Pico to a sub-folder, but not the index.php?

The main goal is to keep the main http site directory clean because this directory always tends to get full by

Old index.html files (backup)
Media / static content directories
Notes to editors
Direct content which you put there to share it just this moment [I know ... this is bad practise] but forget to clean up
Featured sub-sites

In order to manage all these files (and not to loose overview on clean-ups thus making dangerous deletions) it is IMHO important to stash helper files which don't have to do with this particular website.
And you can more easily prevent access by .htaccess e. g.
And a clean web directory (with two CMS files instead of 13) has less puzzling impact on the editors / administrators.

Thank you for your contribution @jjtmp! :+1: However, as explained above, I think there's a better solution to achieve what you're trying to do. Thus I will close this now. If you have something to add, please don't hesitate to comment. @ALL, more feedback is still appreciated!


[MINOR] Correct TestKafkaSource class and comment

What is the purpose of the pull request
Correct TestKafkaSource class and comment
Brief change log

Correct TestKafkaSource class and comment

Verify this pull request
This pull request is a trivial rework / code cleanup without any test coverage.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Lgtm

reopen to trigger the ci


Broken travis-ci builds

This PR will be used to fix the CI builds.
It wasn't code changes that led to the broken builds. Local builds are passing. Then the cause of failure has to be the CI platform itself.
This is what changed recently:

This job ran on our new platform for Legacy Precise builds. Please read our blog post for more information.

The CI build does hang at the FutureTest. This might have two reasons:

a deadlock happens
the system runs out of resources when creating new threads. Maybe the fork-join thread pool waits for futures to be returned into the pool before creating new ones.

I will commit some debug output to investigate this on the CI server because we can't reproduce it locally on different machines.

Current coverage is 90.43%

Merging #914 into master will increase coverage by +0.01% as of dd31e81

@@            master    #914   diff @@
======================================
  Files           81      81
  Stmts         8651    8670    +19
  Branches      1714    1718     +4
  Methods          0       0
======================================
+ Hit           7823    7841    +18
- Partial        214     215     +1
  Missed         614     614

Review entire Coverage Diff as of dd31e81

Powered by Codecov. Updated on successful CI builds.


Changing Scale for cloned webhook throwing error

Rancher Versions: Master 1/17
Steps to Reproduce:

Create a webhook
Clone webhook and change name and change either the Minimum or Maximum scale (I changed the max to 5, I also tried just changing the minimum scale to 3) and click Create

Results: Error "Bad reque3st body: jason: cannot unmarshal string into Go value of type float64"

Expected: No error
Comment Although after the initial problem is fixed I won't be able to reproduce.  We should be parsing this error so the code is not showing up (I think that is Vincent).

After changing the scale, the request has min/max as type string.
This is request payload I see in dev tools:

@mrajashree That is because it doesn't go through the validator, which is because there's no type on the scaleServiceConfig when it starts from one returned by the API instead of an empty one I generate.  Can you return type: "scaleService" on them?

@mrajashree Also the type on min/max/amount in schemas should be int instead of float.

@vincent99 The PR to change min/max/amount to int was merged yesterday but there wasn't a release of webhook-service since then. I'll do the return  type: "scaleService" change

Version - master 1/24
Verified fixed


Upgrade proc-macro-crate

You didn't declare an MSRV, so publishing a new version with this in as a patch release should be fine.
cc https://github.com/bkchr/proc-macro-crate/pull/39

I will upgrade the syn to 2.0 and then publish a new version. Maybe I would add some check on CI and rewrite unit tests if I have time.

Oh, somehow I missed that syn is also due for an upgrade (not at 2.0 yet here) 😄

Hey @TOETOE55, any reason this PR isn't merged? Do you need help with the syn upgrade?

Hey @TOETOE55, any reason this PR isn't merged? Do you need help with the syn upgrade?

https://github.com/TOETOE55/cfg-vis/issues/5 Here are some of the status quo of cfg-vis, some issues have not been thought through, so you have been shelving your PR.

Thanks for the update! I'm not super happy with having conditionally-public items anyways, so maybe I'll try to remove the cfg-vis use altogether.

Thanks for the update! I'm not super happy with having conditionally-public items anyways, so maybe I'll try to remove the cfg-vis use altogether.

I'm sorry~. I'll also try to find out if anyone can help.

No worries, you don't owe me or the other users of the library anything :)


Set version 1.2.1

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 79.16%. Comparing base (1e707ba) to head (8bf5ca8).
Report is 261 commits behind head on develop.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #150      +/-   ##
===========================================
+ Coverage    70.22%   79.16%   +8.93%
===========================================
  Files           32       63      +31
  Lines         1619     4128    +2509
===========================================
+ Hits          1137     3268    +2131
- Misses         482      860     +378

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update to a link to the newly translated document.

This is a Bug Report
Problem:
Some documents need to be updated to link to the newly translated documents in Korean.
Proposed Solution:
For example:
# download script
git clone https://github.com/ysyukr/k8s-ko-docs-scripts.git

# run script
$ ./docs_link-chk.sh
This script checks for reference links in newly added documents.
Checked the website folder. Run the script.
Check branch name:
dev-1.18-ko.2
...
How many weeks ago would you like to see data?:
6
The week you enter is 6 weeks.
Use the git log command to find new documents added in the last 6 weeks.
Please check the links-ko-chk.txt file and correct the link.

/language ko
/assign

/close


adonis-upgrade-kit@unknown can't be resolved to a satisfying range

Package version
1.3.0
Describe the bug
While I'm trying to upgrade adonis v5 to v6 and after installing @adonisjs/upgrade-kit gloabally using yarn, this error message is visible and during the upgrade-packages script :
❯ yarn dlx adonis-upgrade-kit upgrade-packages
➤ YN0027: adonis-upgrade-kit@unknown can't be resolved to a satisfying range
➤ YN0035: The remote server failed to provide the requested resource
➤ YN0035:   Response Code: 404 (Not Found)
➤ YN0035:   Request Method: GET
➤ YN0035:   Request URL: https://registry.yarnpkg.com/adonis-upgrade-kit

➤ Errors happened when preparing the environment required to run this command.

Maybe I missed somthing, but I basically follow the Adonis Migration Guide (https://v6-migration.adonisjs.com/guides/upgrade-kit).
Reproduction repo
No response

I am not familiar at all with yarn and not sure of what is the equivalent of npx
After reading this : https://stackoverflow.com/questions/66496166/is-there-any-yarn-equivalent-of-npx-preact-create I am thinking of removing instructions for Yarn and just keep npm and pnpm. Any suggestions ?

Any suggestions ?

I believe we can remove yarn specific command.
In the end, people not using the default should know what is the equivalent, we could even remove pnpm for that reason.

yup thats what i did a few weeks ago. i removed all reference to yarn. we can close


Port Scalar to Linux

Feature Summary
Scalar is built on .NET Core, so in theory it can be run on Linux to some extent. We already generate Linux installers of our Git fork. Here are the things we need to do to support a Linux port:

Create a Linux version of the Scalar service daemon.
Create a Scalar installer for Linux. (How does this work across distros?)
Create functional test builds.
Move all case-insensitive comparisons to the ScalarPlatform and allow Linux platform to be case-sensitive.
Update the recommended config options as necessary.

We may also want to consider the equivalent of the native notifications on Linux, if such a thing is possible across the many window management options.
How to get this on the backlog
We have real customers that need Scalar on Windows and Mac, so we are committed to supporting a quality product on those platforms. To build and maintain a Linux port, we need evidence that a sufficiently large group actually plans to use Scalar on Linux.
You can help by commenting on this issue with the following details:

How large is your repository? Valuable metrics include: size of pack-file on initial clone, number of commits, number of files in the working directory, number of full-time engineers contributing to the repo.
How do you work right now? Are you on a different version control system and Git has been too painful to switch? Or, are you using Git right now but struggling?
Do you have resources to assist in the building or testing of a Linux port of Scalar?

That would be awesome!

Create a Scalar installer for Linux. (How does this work across distros?)

I'd suggest you have a look at AppImage  and FlatPak.
Both have their own advantages, but please avoid "snaps" (snapcraft).

avoid "snaps" (snapcraft).

Why? snaps make installation very convenient on Linux operating systems such as Ubuntu that support them.

avoid "snaps" (snapcraft).

Why? snaps make installation very convenient on Linux operating systems such as Ubuntu that support them.

Snaps and FlatPaks are very easy to install, but FlatPak should be prefered.

How large is your repository? Valuable metrics include: size of pack-file on initial clone, number of commits, number of files in the working directory, number of full-time engineers contributing to the repo.
I'll have to comment  more on this later.  We currently have ~400 repos and ~300 Github users to the various repos.
How do you work right now? Are you on a different version control system and Git has been too painful to switch? Or, are you using Git right now but struggling?
We're in the process of migrating our source from Perforce, ClearCase, and Subversion to Git.  We have been migrating the smaller code bases first so we have not tackled the very large repos let.  Without something like scalar, we probably would look at dividing the existing very large code base into smaller repos but would be interested in using scalar instead.  We've been using/migrating to Git for about 2 years with several more years to go.  Part of the challenge is that our product is a monolith and has dependencies on tools like clearmake that need to be removed before putting into Git.
Do you have resources to assist in the building or testing of a Linux port of Scalar?
Yes, I think we have some resources to assist in testing Linux port.  Not sure what is expected for someone to assist in building.

https://github.com/sluongng/git-care#git-care I ported most of the git optimization from Scalar to bash, with some caveats documented in README.md.
Personally I would like to remake it in Golang / Rust so it would be multi-platform compatible while being lightweight. But right now I am not in a rush to have such thing happen.

Status update for May 28th, 2020
We have a plan that could make this process a bit easier than we expected, but the timeline is quite far out. The biggest blocker for us right now is to implement the Scalar.Service project with the platform specifics for Linux. This mainly promotes the background maintenance feature, which is a very important feature in Scalar. However, we are working on implementing background maintenance in Git itself, which could replace the Scalar.Service project. Once that is available, then the other issues around a Linux port become much simpler. Also, many users might not even need Scalar any more if they can rely entirely on Git for that aspect.
Thanks for all your interest!

Any progress on this?

Labeling this issue as stale. There has been no activity for 30 days. Remove stale label or comment or this issue will be closed in 7 days.

It is hilarious that just because an issue is stale, it gets programmed to be auto-closed. That's not how issues work in the real world. That's how shirkers work.

We are making progress on this (see #418 for example). We just have a job that helps us make sure we are keeping our backlog clean. These alerts help us make clear which things are still planned versus items that are explicitly cut.

Scalar for Linux Now Available!
Hello, everyone here! I'm pleased to announce that our latest release includes an installer for Debian-based Linux distributions! Please give it a try and let us know if you have any issues!
Also, please take a look at the new documentation being added in #457 and see if that could be improved to make the installation process easier.
Thank you for your patience!

HUGE thanks to:

@chrisd8088 who provided most of the cross-platform capabilities and build steps.
@mjcheetham for paving the way forward with microsoft/git-credential-manager-core getting a Linux version
@kyle-rader for updating the build systems for all of these repos, and currently working on our apt-get integration!

This is amazing news! :tada:
Please consider publishing via Flatpak  as well, as outlined in my previous comment:
https://github.com/microsoft/scalar/issues/323#issuecomment-588297530:
PS: Please avoid "Snaps" (aka "Snapcraft"), as they (amongst the three "universal" Linux publishing systems) are the worst option to ship an application on Linux; again, see https://github.com/microsoft/scalar/issues/323#issuecomment-588297530.
:tada: :rocket:

Installation instructions are now available on the Readme.md.

@derrickstolee its a bit scary that Scalar would only work with https://github.com/microsoft/git.
The README of https://github.com/microsoft/git is still saying Git for Windows so we dont have much information on the compatibility with linux of this fork.

@derrickstolee its a bit scary that Scalar would only work with https://github.com/microsoft/git.

"only work" is only that if you don't install it, then you won't get background maintenance (yet).

The README of https://github.com/microsoft/git is still saying Git for Windows so we dont have much information on the compatibility with linux of this fork.

Git for Windows also compiles and runs on macOS and LInux. The microsoft/git fork has been held to that same standard and ships a .deb package.
Again, you don't need to use it. Scalar will detect that your version doesn't have the maintenance builtin and skip calling git maintenance start. You just won't have all of the benefits that Scalar provides.

bump

:+1:

The Scalar CLI has been ported to C and can be installed from the microsoft/git fork. It is currently being upstreamed to the core Git project. See https://github.com/microsoft/git#linux for installation instructions.


Support dylib

Problem
Right now we use wasmer wasm for Circom witness generation and static lib for whole of mopro.
This might be a challenge in a few areas:

Performance (dylib might be faster than interpreting wasm file for witness gen)
Binary size (static lib quite big)
Startup time
Compliance with app store (for distribution, dylib might be better approach)

Notes
This might require some additional work regarding setup, library initialization etc.
Acceptance criteria

Existing work cleaned up https://github.com/oskarth/mopro/pull/7
dylib behavior hidden under a feature flag
witness generation and proving integrated throughout
basic numbers to compare witness gen and proof gen on real device
updated docs on other ad hoc actions needed (install paths, code signing etc)

Merged some partial cleaned up progress https://github.com/oskarth/mopro/blob/main/mopro-core/build.rs

More work here https://github.com/oskarth/mopro/blob/main/mopro-core/src/middleware/circom/mod.rs


Add code coverage

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@039dd9e). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage        ?   50.00%
=======================================
  Files           ?        3
  Lines           ?       10
  Branches        ?        0
=======================================
  Hits            ?        5
  Misses          ?        5
  Partials        ?        0


feature request: clickable commands

Another idea I had, which would probably be fairly easy to add since you already have the structure going on:
If there is a command in the message such as ./cmd or /cmd, you could make that clickable aswell to execute the command directly. Arguments could be added using smth like /cmd%arg1%arg2 to prevent it to interfere with the sentence (just as an idea I had, need some sort of spacing indicator).

Some thoughts. Open to discussion.
1. The command will not execute on click, but will be copied to the input (can be configurable)
2. I would remove "." before the command, only if it is the first character of the message. I.e. do not remove if text ./cmd
About the arguments logic: new syntax is surely unavoidable, escaping is undesirable.
3. I am sure commands without arguments should be clickable. E.g. use /cmd or ./cmd
4. I would rather
text ,,/cmd arg1 arg2,, text
than
text /cmd%arg1%arg2
(,, or % will be customizable)
Pros: any text can be copied (or only commands, will be customizable)
Cons: there is a risk of accidental triggering (but not if only commands)
In theory, the plugin could support both syntaxes, but this seems overkill.

New release: https://github.com/festino-mc-plugins/ClickableLinks/releases/tag/v2.0.0
Check if this fixed the issues or if any new ones appeared. And try out the new functionality. :)
I also discovered that I forgot to add some of the configurations promised here.

Awesome, I love the changes!
I fiddled around with it a bit and everything worked fine. Thanks for turning my suggestions into reality! ^^

Actually, I did find one problem after all- Our custom HoverStats are gone after your plugin "re-formats" the message

Glad to hear you like the update. :>
I'm also curious if that funny bug was accidentally fixed.
You can create create a new issue, I will try to fix them all (someday :D). This issue will be closed when I implement more configuration (copy or run command, trigger copyable text only on commands). Probably tomorrow.


ConsecutiveFailuresHealthPolicy would wrongly mark a new faulty destination as healthy, causing proxy failure.

Describe the bug
We noticed that there is a bug in ConsecutiveFailuresHealthPolicy: link
ConsecutiveFailuresHealthPolicy doesn't factor in whether the current active DestinationHealth is Unknown before applying its regular failure count logic. This means that when a new faulty destinations are added but immediately return failures from active health probes, the policy would have a period where it mark destination as DestinationHealth.Healthy before it transition to DestinationHealth.Unhealthy based on the configured consecutive failure count.
Example if consecutive failures threshold is 2.
When a new unreachable destination comes up:

time
health state
Should be

t0
unknown
unknown

t1
healthy
unhealthy

t2
healthy
unhealthy

t3
unhealthy
unhealthy

The reason we encounter this problem is because we host service on Service Fabric Cluster. And we would do weekly deployment. Every time we have weekly deployment, we see proxy failure. Because, when new destination showing up, the service on this new destination are not reachable during the start up. But destination are marked as healthy in our gateway, due to the ConsecutiveFailuresHealthPolicy.
Suggestion
Can we add a condition in  EvaluateHealthState?
If previous health state is unknown, and new health state is unhealthy, immediately return DestinationHealthState = unhealthy.

Slightly modified table from the issue description that might make the issue more obvious:
Assume a destination is actually unhealthy -- i.e. all probe attempts WILL deterministically fail.

time
Active probe result
Expected destination health in YARP
Actual destination health in YARP

t0 (init, before any probes)
--
unknown
unknown ✅

t1
fail
unhealthy
healthy ⚠

t2
fail
unhealthy
healthy ⚠

t3
fail
unhealthy
unhealthy ✅

Thanks for filing the issue, the current behavior does look wrong.
We might want to tweak the expected state to "unknown, unknown, unknown, unhealthy" (unknown instead of immediately unhealthy), but it should definitely not switch to healthy.

Extending the unknown period seems reasonable given the semantics of the policy and works for our destination selection purposes.

Once we introduce the notion of Degraded state, that may be more appropriate than Unknown for those initial moments -- in that case we have at least some data to indicate the destination is not healthy -- if other destinations are perceived as Healthy, we would prefer to route to those instead. Related: #2071

Triage: Looks like a bug we should fix.

Any news on this bug?

@karelz I propose the following solution until you can implement "remaining unknown":
Change
var count = _failureCounters.GetOrCreateValue(destination);
to
var count = failureCounters.GetValue(destination, _ =>
{
var ac = new AtomicCounter();
Enumerable.Range(0, threshold - 1).ToList().ForEach( => ac.Increment());
return ac;
});
in ReverseProxy/Health/ConsecutiveFailuresHealthPolicy.cs line 44
I think it's better to return unhealthy instead of healthy in this case. It seems unacceptable to say "it's healthy" while healthcheck says the opposite.

It is considered as a bug since 8 months.
We must set ConsecutiveFailures to 1 (and cannot use a higher value) as a workaround.
Any news on the fix?


Loading mhchem and bussproofs

Hi Xavier ,
I was wondering why you explicitly loading mhchem and bussproofs.
Aren't they bundled with Obsidian (mathjax-full) and autoloaded on first use?

Huh, that may be the case, when I had originally developed the plugin I had tried to use bussproofs and got an error. If I can remove them then all the better :)


Add deprecation notices and migration docs

Jira

http://vjira2:8080/browse/BDS-2091 (deprecate packages)
http://vjira2:8080/browse/BDS-2071 (migration docs)

Summary
Deprecate packages that will be removed in v3.x and add docs for migrating to v3.x.
Details

Deprecates the following packages in the NPM registry:

postcss-themify
components-critical-css
components-critical-css-vars
components-critical-fonts
critical-path-polyfills

Add note to each package's README.md linking to migration docs
Add initial migration docs (subject to change as we get closer to v3.0)

How to test

View the following on NPM and verify they are deprecated:

https://www.npmjs.com/package/@bolt/postcss-themify
https://www.npmjs.com/package/@bolt/components-critical-css
https://www.npmjs.com/package/@bolt/components-critical-css-vars
https://www.npmjs.com/package/@bolt/components-critical-fonts
https://www.npmjs.com/package/@bolt/critical-path-polyfills

Review the code changes and the migration docs page.

FYI, I'm hoping to get to this one today.

PR was released with v2.23.0


Unicode printing unclean

?- '🀱 ' = J. % This looks bad just here in this window but not when entered/displayed in the terminal.
   J = '🀱 '.

?- 🀱  = J.
   J = '🀱'. % This looks bad in the terminal. You have to cell spacing 2.00 x width to make the quoting visible
             % and why quoting anyway?

% SWI
?- 🀱  = J.
J = 🀱 .

Trealla speaks UTF-8 not Unicode. Using Unicode may or may not work as you expect.

The 'char' above is taken from UTF-8 subset ( U+1F030 -- U+1F09F )
https://www.utf8icons.com/subsets/domino-tiles

Yes, i retracted my comment.
On Tue, Jan 16, 2024 at 8:09 AM flexoron @.***> wrote:

The 'char' above is taken from UTF-8 subset ( U+1F030 -- U+1F09F )
https://www.utf8icons.com/subsets/domino-tiles
—
Reply to this email directly, view it on GitHub
https://github.com/trealla-prolog/trealla/issues/470#issuecomment-1892815717,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFNKSEVWIPOO7KER42WQNWLYOWSKHAVCNFSM6AAAAABB3SANA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJSHAYTKNZRG4
.
You are receiving this because you commented.Message ID:
@.***>

Other examples of uncleaned output:

?- ( 🀱 , 🀱 , 🀱  ) = J.
   J = (🀱 , 🀱 , 🀱) .

?- { 🀱 , 🀱 , 🀱  } = J.
   J = {🀱 , 🀱 , 🀱} .

?- [ 🀱 , 🀱 , 🀱  ] = J.
   J = "🀱🀱🀱".

What's uncleaned about them?
On Tue, Jan 16, 2024 at 8:57 AM flexoron @.***> wrote:

Other examples of uncleaned output:
?- ( 🀱 , 🀱 , 🀱  ) = J.
J = (🀱 , 🀱 , 🀱) .
?- { 🀱 , 🀱 , 🀱  } = J.
J = {🀱 , 🀱 , 🀱} .
?- [ 🀱 , 🀱 , 🀱  ] = J.
J = "🀱🀱🀱".
—
Reply to this email directly, view it on GitHub
https://github.com/trealla-prolog/trealla/issues/470#issuecomment-1892849449,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFNKSERLMVQ3RGUZGFYHF3TYOWX43AVCNFSM6AAAAABB3SANA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJSHA2DSNBUHE
.
You are receiving this because you commented.Message ID:
@.***>

Overlapping: Third char, right bracket.
You see it in the terminal.

FWIW swipl does the same.

I'm tending to think it's a GNOME terminal problem.

As i'm also seeing a comma in the middle of the domino character.

Yes and it is a terminal font problem.
Here it is ok but thats not standard:
Terminal: BlackBox
Font: Inconsolata weight=275 Ultra-Expanded 10
The font name says it all.

Tweak has no effect.

Not meant to be visible, fixing a Logtalk problem.
On Tue, Jan 16, 2024 at 9:38 AM flexoron @.***> wrote:

Tweak has no effect.
—
Reply to this email directly, view it on GitHub
https://github.com/trealla-prolog/trealla/issues/470#issuecomment-1892875521,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFNKSEWN4OQ6EV7TCGRYWBLYOW4Y7AVCNFSM6AAAAABB3SANA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJSHA3TKNJSGE
.
You are receiving this because you commented.Message ID:
@.***>


Editor: playback rate control is broken

changing it and hitting play will reset the control back to "1". the chart moves at the specified speed, but the song playback does not

looks like this was missed as state that should be kept in https://github.com/thomasboyt/bipp/commit/071e65f063478a4e2d365e8d619fb1c94c3b97f3


Flash_Decode V2 not running fast enough on TG llama shapes

Currently running at 32305 ns at 64 cores with (1, 8, 32, 128) inputs.
Refer to the device perf sheets for more details: TG llama device perf

This should no longer be an issue as @kpaigwar observed 13us device perf for flash decode on TG using 32 chunk size.


StreamingProtocols/StreamingIntegrationTest.PostAndProcessBufferedRequestBodyTooBig/IPv4_GoogleGrpc_WithDeferredProcessing

https://dev.azure.com/cncf/4684fb3d-0389-4e0b-8251-221942316e06/_apis/build/builds/104872/logs/221
cc @gbrail

I've studied this for a bit but it's sure not obvious. I bet it's crashing when the gRPC mechanism is trying to delete the stream, and when we changed ext_proc a while back to let gRPC recycle its clients, I recall it was hard to get it to work right. Any suggestions for a way to track it down? Should I add more tracing in a PR?

I'd check out the test/intetration/ README file to see if you can repro with the flaky test instructions.  If not, adding more trace logging SGTM.  it's possible to turn up logging by default in CI for one test too if you need to

It's reproducible... But I don't know how long it will take to find in my limited time. Working on it!


Virtual Desktop : Direct a process to a certain virtual desktop

Description of the new feature / enhancement
Direct a certain program to a specific virtual desktop.
For example, when I open Outlook it must open in the virtual desktop named "Mail", when I open Rambox it must open in the virtual desktop "Chat" and so on.
All definable by rules.
Of course after starting, you should switch directly to the desktop where you started the application.
Scenario when this would be used?
The scenario is where you have defined, renaming them, two or three virtual desktops and you want the programs to go to the desktop you indicated when they start.
Supporting information
No response

/dup #24


Add Diagram Export Capabilities

Feature request
Empower Users with Diagram Export to share and reuse their work effectively.
Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
Implement a feature that allows users to export diagrams in various image formats (e.g., PNG, JPEG, SVG) and potentially also in editable formats (e.g., PDF, Visio).
Describe alternatives you've considered
In download file it can be exported, and added as a diagram file as well.
Additional context
Currently, there are no alternatives to exporting diagrams within the application.

Hi @pouya-loyall, for reference, could you please provide an example of the exported diagram? I'm curious to see how complex database schemas are represented in the diagram.

Hi @krisnaw

Okay, I just checked the React Flow documentation. It seems like there is a way to download the diagram using HTML-to-image. Here's an example:

What do you think, @gregnr?


Unable to auth with Google auth

Google replies that logging in is temporary disabled, because the app is not verified.

Seems to be a duplicate of #29 . The app has been verified for two weeks now, but apparently the user cap has not been increased yet. I guess I'll have to get in touch with Google Cloud support.


"Șpring" is listed in the drop-down menu

Description:
"Șpring" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Șpring" in the search bar.

Expected results
The location is listed in the drop-down menu as "Șpring, Alba (Șpring)".


Introduce AsyncLoopOp.

AsyncPollOp and AsyncRetryOp share a non-tirivial amount of code
with each other. Moreover, a class for fetching responses in pages also
would (#1477 has shown that reusing AsyncPollOp is ugly).
AsynLoopOp is exactly what all of them have in common - running
requests in a loop, potentially sleeping between them and allowing for
cancellations.
There are no test because AsyncRetryOp and AsyncPollOp are already
tested.

This change is

For what is worth, I was able to find the Windows log:
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_loop_op.h(42): error C2338: Operation has to have a templated Start() member function instantiatable with functors like PrototypeLoopOperationStartCallback
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_loop_op.h(221): note: see reference to class template instantiation 'google::cloud::bigtable::v0::internal::MeetsLoopOperationRequirements<Operation>' being compiled
        with
        [
            Operation=google::cloud::bigtable::v0::internal::RetriableLoopAdapter<google::cloud::bigtable::v0::internal::ConstantIdempotencyPolicy,google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>,google::cloud::bigtable::v0::internal::AsyncUnaryRpc<google::cloud::bigtable::v0::AdminClient,MemberFunction ,google::cloud::bigtable::v0::internal::CheckAsyncUnaryRpcSignature<MemberFunction >,0>>
        ]
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_retry_op.h(248): note: see reference to class template instantiation 'google::cloud::bigtable::v0::internal::AsyncLoopOp<google::cloud::bigtable::v0::internal::RetriableLoopAdapter<IdempotencyPolicy,Functor,Operation>>' being compiled
        with
        [
            IdempotencyPolicy=google::cloud::bigtable::v0::internal::ConstantIdempotencyPolicy,
            Functor=google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>,
            Operation=google::cloud::bigtable::v0::internal::AsyncUnaryRpc<google::cloud::bigtable::v0::AdminClient,MemberFunction ,google::cloud::bigtable::v0::internal::CheckAsyncUnaryRpcSignature<MemberFunction >,0>
        ]
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_retry_unary_rpc.h(128): note: see reference to class template instantiation 'google::cloud::bigtable::v0::internal::AsyncRetryOp<IdempotencyPolicy,Functor,google::cloud::bigtable::v0::internal::AsyncUnaryRpc<Client,MemberFunctionType,google::cloud::bigtable::v0::internal::CheckAsyncUnaryRpcSignature<MemberFunctionType>,0>>' being compiled
        with
        [
            IdempotencyPolicy=google::cloud::bigtable::v0::internal::ConstantIdempotencyPolicy,
            Functor=google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>,
            Client=google::cloud::bigtable::v0::AdminClient,
            MemberFunctionType=MemberFunction
        ]
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/table_admin.h(170): note: see reference to class template instantiation 'google::cloud::bigtable::v0::internal::AsyncRetryUnaryRpc<google::cloud::bigtable::v0::AdminClient,MemberFunction,google::cloud::bigtable::v0::internal::ConstantIdempotencyPolicy,Functor,google::cloud::bigtable::v0::internal::CheckAsyncUnaryRpcSignature<MemberFunctionType>,0,0>' being compiled
        with
        [
            Functor=google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>,
            MemberFunctionType=MemberFunction
        ]
..\google\cloud\bigtable\table_admin.cc(54): note: see reference to function template instantiation 'std::shared_ptr<google::cloud::bigtable::v0::AsyncOperation> google::cloud::bigtable::v0::noex::TableAdmin::AsyncCreateTable<google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>,0>(std::string,google::cloud::bigtable::v0::TableConfig,google::cloud::bigtable::v0::CompletionQueue &,Functor &&)' being compiled
        with
        [
            Functor=google::cloud::bigtable::v0::internal::AsyncFutureFromCallback<google::bigtable::admin::v2::Table>
        ]
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_loop_op.h(45): error C2338: Operation has to have an Cancel() member function.
T:\src\github\google-cloud-cpp\google/cloud/bigtable/internal/async_loop_op.h(47): error C2338: Operation has to have an WaitPeriod() member function.


V6dev

Supports basic IPv6 communication
TCP/UDP over IPv6
SLAAC (incomplete)

TODO:
Check for address duplication using DAD
Support IPv6 for Socket API
Merge TCP/UDP into one file
Manage address status
Manage NDP cache status
Address generation using methods other than EUI-64
Implement MLD
Implement extension headers


Alphabetically ordered language translations

Edited the README.md its easier to read/find a translation and doesn't kick your minor form of OCD

Great!


Migrates to styled-components

fixes https://github.com/frontity/saturn-theme/issues/113

:tada: This PR is included in version 1.6.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 0.11.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Unable to create web and web-secure action

The wsk cli offers the parameters web and web-secure to create/update actions that are reachable via https with optional secret. I haven't found an equivalent in the documentation nor in the js actions api. How can I create actions with web=true and a web secret?

The debug output of the wsk cli was very misleading as it showed the annotations that were sent to the openwhisk endpoint differently.
I found the names and values of the annotations here: https://github.com/apache/openwhisk/blob/master/docs/annotations.md#annotations-specific-to-web-actions
With these information I created the annotation like this
const annotations: openwhisk.Dict = {
    'web-export': true,
    'final': true,
    'raw-http': false,
    'require-whisk-auth': `${process.env.API_KEY}`,
};

which results in a public endpoint that is secured by an api key. I hope that this information will help those who also stumble upon the problem.

Thanks @robrat!


python37Packages.pytest_6: 6.1.1 -> 6.1.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python37Packages.pytest_6 is: "Framework for writing tests"
meta.homepage for python37Packages.pytest_6 is: "https://docs.pytest.org"
meta.changelog for python37Packages.pytest_6 is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 6.1.2 with grep in /nix/store/zca1h9nkb52y8fb6vkbjffdmcdkpxgav-python3.7-pytest-6.1.2

directory tree listing: https://gist.github.com/510a349712c1bf6ad6897aaba09cf31e

du listing: https://gist.github.com/9d21fd530cfacd3f487fa102bada99bd

Rebuild report (if merged into master) (click to expand)

16 total rebuild path(s)

4 package rebuild(s)

4 x86_64-linux rebuild(s)
4 i686-linux rebuild(s)
4 x86_64-darwin rebuild(s)
4 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python37Packages.pytest_6
python37Packages.pytest_xdist_2
python38Packages.pytest_6
python38Packages.pytest_xdist_2

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zca1h9nkb52y8fb6vkbjffdmcdkpxgav-python3.7-pytest-6.1.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python37Packages.pytest_6 https://github.com/r-ryantm/nixpkgs/archive/498552ddbf07fdcb9123a6a83f615f83310cf5eb.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zca1h9nkb52y8fb6vkbjffdmcdkpxgav-python3.7-pytest-6.1.2
ls -la /nix/store/zca1h9nkb52y8fb6vkbjffdmcdkpxgav-python3.7-pytest-6.1.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review 1

4 packages built:

python37Packages.pytest_6
python37Packages.pytest_xdist_2
python38Packages.pytest_6
python38Packages.pytest_xdist_2

Maintainer pings
cc @domenkozar @lovek323 @madjar @lsix for testing.

Result of nixpkgs-review pr 103034 run on x86_64-darwin 1

4 packages built:

python37Packages.pytest_6
python37Packages.pytest_xdist_2
python38Packages.pytest_6
python38Packages.pytest_xdist_2


sfdx sfpowerscripts:apextests:trigger throws error

Describe the bug
The following command:
sfdx sfpowerscripts:apextests:trigger -l RunAllTestsInPackage -n my-package-xxx -c --validatepackagecoverage
Throws this error in version 18.1.3 of sfpowerscripts:
Cannot read properties of undefined (reading 'packageVersionNumber')
To Reproduce
Steps to reproduce the behavior:
Package descriptor:
{
"path": "xx/xx/my-package-xxx",
"package": "my-package-xxx",
"checkpointForPrepare": true,
"versionNumber": "<IP_ADDRESS>",
"type": "source",
"reconcileProfiles": false
},
Run the command:
sfdx sfpowerscripts:apextests:trigger -l RunAllTestsInPackage -n my-package-xxx -c --validatepackagecoverage
Expected behavior
run unit tests and validate individual class code coverage for the package
Screenshots
If applicable, add screenshots to help explain your problem.
Platform Details (please complete the following information):

Salesforce CLI(sfdx cli) Version: 7.159.0
sfpowerscripts version: 18.1.3

Additional context
Add any other context about the problem here.

I confirm same issue.


drm: output list of deleted files option

admins would like a list of the files that drm deletes... just in case a user asks about it later.

We could do this with a new --output option in drm.
There are two lists I can think of that might be of interest.
1) files that were deleted
2) files that were not deleted, because they didn't exist or there was some other I/O error

Perhaps one could break list 2 into sublists based on the type of error?

Working this issue in PR https://github.com/hpc/mpifileutils/pull/288


Request: Support for passing lookback timestamp instead of pulling from Dynamo

It seems like this project is no longer maintained but I'm looking to receive the past hour of logs after this function gets triggered by an SNS topic. I can fork this repo, and make the changes for it to accept either dynamo or a timestamp as a parameter. I would then make a PR back to this repo.
I can also just fork it and strip out the dynamo stuff and leave it as a fork

@Arnauec Is this project still maintained?

Hey @AndrewCharlesHay, I don't see anything in the description that makes me thing it is not maintained, but best to check with @webratz. I only did a minor modification a while ago.

Gracias Arnauec! I don't do much open-source work. When I see no recent contributions I assume it's not maintained but idk

If I don't get a response I won't contribute the dynamo removal because it probably isn't wanted. However, I did make this PR https://github.com/personio/rds-audit-logs-s3/pull/590 to fix the test and build process.
@webratz


use Crystal::Hasher and openaddressing in StringPool

cause StringPool is used in json decoding, it is important to have it safe.
I suppose that Crystal::Hasher should be safe somedays.
Openaddressing also may increase performance a bit (https://github.com/crystal-lang/crystal/pull/4675#issuecomment-324674579).
Extracted from #4675.
/cc @RX14

Why not just change StringPool#hash(str, len) method?
I probably missed the original discussion where everything else had to change.

@asterite modern hashes prefer open-addressing due to it's locality (CPU cache friendly hashes).
So here is first application of open-addressing in Crystal. Later Hash will be reworked too (I hope).

Please see #4557 for details.

Just simple bench:
require "benchmark"
require "./new_string_pool"
require "./old_string_pool"

Benchmark.ips do |x|
  x.report("insert new string pool") { test_with(NewStringPool.new) }
  x.report("insert old string pool") { test_with(OldStringPool.new) }
end

Benchmark.ips do |x|
  x.report("get new string pool") { test_with(NewStringPool.new) }
  x.report("get old string pool") { test_with(OldStringPool.new) }
end

def test_with(pool)
  (0..1_000_000).each do |num|
    pool.get("hello #{num}")
  end
end

➜  bench_string_pool.cr git:(master) ✗ ../crystal/bin/crystal src/bench.cr --release
Using compiled compiler at `.build/crystal'
insert new string pool   5.76  (173.47ms) (± 2.68%)       fastest
insert old string pool   3.03  (329.95ms) (± 2.75%)  1.90× slower
get new string pool   5.78  (173.08ms) (± 1.97%)       fastest
get old string pool   3.04  (328.83ms) (± 1.93%)  1.90× slower

Take a note that OldStringPool uses Crystal::Hasher too:
  private def hash(str, len)
    hasher = Crystal::Hasher.new
    hasher = str.to_slice(len).hash(hasher)
    hasher.result
  end

I like this but I don't quite understand the algorithm. Is it using Quadratic probing?
We can merge this, but a detailed explanation of the algorithm must be attached somewhere in the file.
I'm pretty impressed by the performance!

@asterite it's just linear probing afair (was renamed some variables to show it). @funny-falcon is author, can describe it better, but it's simple.

:-D
But why incrementing d by one and probing over and over guarantees that the key will be found? This is what I don't understand. I'm pretty sure there's some math theorem about this, but without a comment explaining that, a link or something, it will become impossible to maintain if nobody knows how and why it works.

I understood you and will describe this :)
In short - part of hash table always empty, see rehash etc.
So linear probing with always take empty element (it is not +1 everytime (but +N), but it is guaranteed).

LOL. I found nothing about this variant of linear probing :) but it's anyway a variant of typical (+1 increment) linear probing.
@funny-falcon have you any references?

For now, will replace with trivial linear probing :)

It is called "quadratic probing"
https://en.wikipedia.org/wiki/Quadratic_probing

For m = 2^n, a good choice for the constants are c1 = c2 = 1/2, as the values of h(k,i) for i in [0,m-1] are all distinct. This leads to a probe sequence of h(k),h(k)+1,h(k)+3,h(k)+6,... where the values increase by 1, 2, 3, ...

It suffers less from secondary clustering (compared to linear probing). And still provides good cache locality, because first several probes are nearby. Google Dense Hash uses same quadratic probing.
@akzhan why did you change to linear probing? Do you doubt my sanity?

I was wrong (will return this)

Was rolled back and described quadratic probing implementation details.

Good catch on size recalculation on rehash!
I wanted to argue about 64bit hash, but decided not to.

Crystal::Hasher returns 64bit hash values.

@asterite ready to review :)

I'm still looking for a proof that quadratic probing where the capacity if a power of two hits all buckets. Anyone can find one? Maybe a proof can be done by induction, though I haven't done that in a long time now...

@asterite something like http://www.idryman.org/blog/2017/07/04/learn-hash-table-the-hard-way/ and the other on the series?

http://goog-sparsehash.sourceforge.net/doc/implementation.html

Quadratic probing, using the triangular numbers, avoids the clumping while keeping cache coherency in the common case. As long as the table size is a power of 2, the quadratic-probing method described above will explore every table element if necessary, to find a good place to insert.

https://fgiesen.wordpress.com/2015/02/22/triangular-numbers-mod-2n/

You can find lots of places on the web mentioning that the resulting probe sequence will visit every element of a power-of-2 sized hash table exactly once; more precisely, the function f(k) = T_k \mod 2^m is a permutation on { 0, 1, \dots, 2^m-1 }. But it’s pretty hard to find a proof; everybody seems to refer back to Knuth, and in The Art of Compute Programming, Volume 3, Chapter 6.4, the proof appears as an exercise (number 20 in the Second Edition).

Explanation related to Google SparseHash has been added.

I wouldn't link to SparseHash because this is not SparseHash :-)
Maybe link to https://fgiesen.wordpress.com/2015/02/22/triangular-numbers-mod-2n/
But all these comments are private to the implementation, not public documentation. Nobody needs to know how StringPool is implemented internally, as long as its efficient. Ruby's Hash implementation doesn't have a comment explaining all of the internals; it's documented in the C code, but not publicly visible. Please do the same here (just put it below the class StringPool line).

Done

Glad to see this part merged, and will step further!
Thanks to @funny-falcon for its great work!

Indeed, thank you @funny-falcon and @akzhan 🙇

Nice 5k get, BTW! :clap:


Use shared helper function from ccbr_tools

Changes
Refactor to use shared functions from https://github.com/CCBR/Tools
Issues
Related to https://github.com/CCBR/Tools/issues/5
PR Checklist
(~Strikethrough~ any points that are not applicable.)

[x] This comment contains a description of changes with justifications, with any relevant issues linked.
~[ ] Update docs if there are any API changes.~
~[ ] Update CHANGELOG.md with a short description of any user-facing changes and reference the PR number. Guidelines: https://keepachangelog.com/en/1.1.0/~

@samarth8392 could you test this on biowulf with a real dataset?

Update: run completed successfully using GUI. Testing the same run now with CLI.

CLI test completed successfully.


merge error on serial.txt

When using output, the following error happens on localhost
merge error for serial.txt: previous content changed...
Error 409

It prevents the sources from being saved (after it happens). This may also happen in apps.

@abchatra I think this is P1

This https://github.com/Microsoft/pxt/commit/c85b5d6190e78949085acf58a99d68e18aa49af4 seems to fix it. Feel free to cherry pick on master.

This should be now fixed.

Fixed in both v0 and master.


WIP: Add TS Codegen

Adding Codegen for TS AST nodes

Thank you. We can do smaller PRs so it's easier to review and test.
We can enable conformance tests from cargo coverage to make sure things work correctly.

No worries. I can split this up into smaller PRs :) Will work on splitting it up today.

First PR https://github.com/oxc-project/oxc/pull/2443


issue with npm run dev

when I try to run command npm run dev, I got this error. And it was working fine last night. Can someone help me

concurrently "npm run server" "npm run client"

[0]
[0] ><EMAIL_ADDRESS>server /Users/kevindo/Desktop/myportfoliosite
[0] > nodemon index.js
[0]
[1]
[1] ><EMAIL_ADDRESS>client /Users/kevindo/Desktop/myportfoliosite
[1] > npm run start --prefix client
[1]
[1]
[1] ><EMAIL_ADDRESS>start /Users/kevindo/Desktop/myportfoliosite/client
[1] > node index.js
[1]
[0] [nodemon] 1.18.10
[0] [nodemon] to restart at any time, enter rs
[0] [nodemon] watching: .
[0] [nodemon] starting node index.js
[1] internal/modules/cjs/loader.js:651
[1]     throw err;
[1]     ^
[1]
[1] Error: Cannot find module '/Users/kevindo/Desktop/myportfoliosite/client/index.js'
[1]     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:649:15)
[1]     at Function.Module._load (internal/modules/cjs/loader.js:575:25)
[1]     at Function.Module.runMain (internal/modules/cjs/loader.js:862:12)
[1]     at internal/main/run_main_module.js:21:11
[1] npm ERR! code ELIFECYCLE
npm ERR! errno 1
[1] npm ERR<EMAIL_ADDRESS>start: node index.js
[1] npm ERR! Exit status 1
npm ERR!
[1] npm ERR! Failed at the<EMAIL_ADDRESS>start script.
[1] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[1]
[1] npm ERR! A complete log of this run can be found in:
[1] npm ERR!     /Users/kevindo/.npm/_logs/2019-03-14T17_01_50_393Z-debug.log
[1] npm ERR! code ELIFECYCLE
[1] npm ERR! errno 1
[1] npm ERR<EMAIL_ADDRESS>client: npm run start --prefix client
[1] npm ERR! Exit status 1
npm ERR!
[1] npm ERR! Failed at the<EMAIL_ADDRESS>client script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[1]
[1] npm ERR! A complete log of this run can be found in:
[1] npm ERR!     /Users/kevindo/.npm/_logs/2019-03-14T17_01_50_411Z-debug.log
[1] npm run client exited with code 1
[0] Server listening on port ${PORT}
^C[0] npm run server exited with code 0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>dev: concurrently "npm run server" "npm run client"
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      /Users/kevindo/.npm/_logs/2019-03-14T17_01_59_638Z-debug.log
"scripts": {     "start": "node index.js",     "server": "nodemon index.js",     "client": "npm run start --prefix client",     "dev": "concurrently \"npm run server\" \"npm run client\""   },

Could you please post the following information:

OS & version:
Node version (node -v) [Node v6+ is required] :
FoundationPress version (see line 3 in package.json):
Foundation version (found in node_modules/foundation-sites/package.json) :

yes!
os version: 10.14.1
node version: 11.11.0
FoundationPress version:0.1.0
Foundation version (found in node_modules/foundation-sites/package.json) : I don't have it in my node_module... umm this is weird


Event handling: Use binding model as context

This is more of a question than it is a pull request. I've just started playing with rivets, it's working pretty great. There is one thing that 'feels' a bit odd, it's the context of a function that is called within events. Let me explain:
Current situation
Toggle me

Information

class SomeInterface
  toggle: (event, context) ->
    @open = !@open # This doesn't work because we're not in the right context
    context.model.open = !context.model.open

Situation in this pull request
Given the same HTML as above.
class SomeInterface
  toggle: (event, context) ->
    @open = !@open

Is this on purpose, am I missing something? Or am I simply doing something wrong? Would love to get some feedback.

@Arjeno Your handler is configurable. You can .call the bound method with whatever you want.
From Rivets website:
rivets.configure(
  // Augment the event handler of the on-* binder
  handler: function(target, event, binding) {
    this.call(target, event, binding.view.models)
  }
})

In our SPA's we prefer to call the method with the context of the closure as the the original object. So the word this inside of the closure would be reference the parent. In your example the word this would be === SomeInterface
Here is how that is done:
rivets.configure({
    handler : function(target, event, binding) {
        this.call(binding.observer.target, event, binding.view.models);
    }
});

here is a working fiddle similar to what your example demonstrates:
http://jsfiddle.net/c022hme3/4/

@Duder-onomy Thanks a lot, crystal clear answer. I'll configure that in my project as it would be my preference.

@Duder-onomy Any idea how I could get the same instantiated SomeInterface from within an iterator? It looks like it copies the data for each iterator. I'm doing something like this:
class SomeInterface
  articles: [...]
  constructor: ->
    rivets.bind($('#element'), @)

  select: (event, object) ->
    console.log @ # This is a different object each iteration
    @currentArticle = object.article

interface = new SomeInterface()

%div{ 'rv-each-article' => 'articles', 'rv-class-active' => 'article.id | eq currentArticle.id' }
  %a{ 'rv-on-click' => 'select' } { article.title }

Yeah, I dont totally understand why this is happening. But here is a A/B with one line change to make it work / not work:
Here is is not working, as close as I could get to your example:
http://jsfiddle.net/bd9ucLo6/11/
Notice this line number 12:
this.rivetsView = rivets.bind(document.getElementById('yeahBuddy'), this);

Here is a working example,
http://jsfiddle.net/bd9ucLo6/12/
Notice this line number 12:
this.rivetsView = rivets.bind(document.getElementById('yeahBuddy'), { interface : this });

*also had to change the HTML to access from the interface.
Yeah, I dont really know why....but that is the fix.

@Duder-onomy Thanks for investigating and setting up those fiddles. Looks like rivets simply copies the key/values from the original data. So the way I work with rivets (using instances) won't work. There's a pull request / discussion for this: https://github.com/mikeric/rivets/pull/417

Might as well close this one for now. Thanks for your help @Duder-onomy


Fboylu staging

Added training with Azure ML pipelines and publishing the pipeline as REST endpoint.

This looks good to me.

@grecoe Can you approve? thanks


How can We Drag the Text Filed Within The Canvas

How can We Drag the Text Filed Within The Canvas

Any update on this ?

I need help in creating a draping app that can change shirt image textures and adjust the texture size. If any knowledge or suggestions on how to achieve this, please provide your assistance. Thank you!


[Question] How to send messages from background agent ?

For some triggers we need to send notifications to users, what subscribes for news.
We have serialized Reply params with ChannelUrl, From, To params to Notify users, but we can't send reply message, because we not have actual connection to bot and all requests rejected with Forbidded result.
Hot to send messages in background ?

@ZOXEXIVO are you using C# or Node SDK for BotBuilder?
I'm not sure I understand your use case. You want your bot to send a proactive notification message to a specific user? On what channel? (Slack, Skype, FB, etc?)

User subscribes for some news tags and background crawler everytime search news and send notification to subscribers

@ZOXEXIVO It sounds like you are looking for a proactive bot that uses Azure Functions to trigger notifications.  Check out this article for more information on integrating Azure Function triggers into your bot app - https://docs.botframework.com/en-us/azure-bot-service/templates/proactive/


10324 missing ability specs

Added ability specs for QingGroup, OptionSet, OptionNode
Consolidated OptionSet change_geographic under update_core
Refactored some older code
Saved this gist of ability usages for future refactoring (ideally it will remain relevant as long as we maintain ability.rb during future changes, but I also included the regex for finding all usages in case we want to run again)

TODO (Tom):

More cleanup

Closing in favor of #721


fix(web): tests

I don't understand what this change is doing

Fixing this
 FAIL  src/middleware/auth.test.ts > Auth Middleware > should continue if JWT is valid
TypeError: Cannot read properties of undefined (reading 'endsWith')
 ❯ src/middleware/auth.ts:17:26
     15|
     16|  // Don't run on logout page 😂
     17|  if (context.request.url.endsWith("/auth/logout")) {
       |                          ^
     18|   console.debug("Logout page, skipping auth middleware");
     19|   return next();
 ❯ applyHandle node_modules/astro/dist/core/middleware/sequence.js:22:22
 ❯ Module.<anonymous> node_modules/astro/dist/core/middleware/sequence.js:19:12
 ❯ src/middleware/auth.test.ts:63:9


feat(forge): support for console.log on Invariant handlers

Motivation
Closes #4951
Solution
Adds support for console logs on invariant handlers, by persisting the logs and traces for the last call.
To avoid any performance regressions we only move values and only copy where absolutely necessary (filling each invariant with the corresponding logs at the end), and only persist the call values at the end of each run campaign, as they would just be overwriting values persisted at the stack otherwise.

hey hey @mds1 mind sanity testing this too? this is a highly requested feature so wanna make sure all is good ^^

For sure, again tagging @lucas-manuel and @PaulRBerg for testing assistance too 😁

cc @mattsse this should be good for another review round—functionality is sound


feat: adding the delete permission verification

Why
The delete all records command is blocked if there is a record that does not have delete permission.
What

[x] Do not delete the unprivileged records.
[x] The info of unprivileged records should be logged.

How to test
N/A
Checklist

[x] Read CONTRIBUTING.md
[x] Updated documentation if it is required.
[x] Added tests if it is required.
[x] Passed yarn lint and yarn test on the root directory.

Because we decided to support only API Token for now.
So, I close this PR.


Add the very awesome Ms Dev Show to the DotNet list of podcasts.

Add the very awesome Ms Dev Show to the DotNet list of podcasts.

@chad-ramos , thank you for this awesome contribution :100:


fix(client): stack trace with source-map-support. Closes #3945

Closes #3945
The parsing logic of the stack trace is now moved out to a separate function called parseStack.
Also we're printing the "simple" stack without the concrete stack trace, if the line, that we found doesn't contain Prisma.

New snapshots are 😍


A better way to check if Rails was run from console

return if defined?(Rails::Console) || Rails.env.test? || File.split($0).last == 'rake' didn't work too well for me and is also quite wrong in that defined? returns a string not a boolean. Yuck.
After quite a bit of digging I found the Ruby 2.5 class method const_defined? to be more suitable. Rails.const_defined?('Console') did the trick and correctly returned when in an initializer.
I hope this helps others.

Also when run in an initializer there is no method and therefore it does not return. This also handles multi-process servers such as Puma. So I found this structure to be more useful:
  dont_run_scheduler = Rails.const_defined?('Console') || Rails.env.test? || File.split($PROGRAM_NAME).last == 'rake'
  schedule = Rufus::Scheduler.new(lockfile: Rails.root.join('.rufus-scheduler.lock')) unless dont_run_scheduler
  if schedule && schedule.started_at.present?
    ...
  end

Hello,

and is also quite wrong in that defined? returns a string not a boolean. Yuck.

There is nothing wrong with that, truthy and falsey are good enough and it reads well. Keep your "Yuck" for yourself.

Also when run in an initializer there is no method and therefore it does not return.

What method are you talking about?
May I get a decent issue report?
Thanks in advance and best regards.

Sorry it's not really an issue. Just a minor point with the example code that it uses return but the initializer is not in a method.
My main point with is issue is that
defined?(Rails::Console) didn't work for me but Rails.const_defined? did

Thanks.
defined?(Rails::Console) used to work, at least when I wrote that part of the readme.
What version of Rails are you using on what version of Ruby?

Yeah it's possibly version related. I'm using Rails 6.1.4, Ruby 2.6.6. I'll give it a try on a 5.2 app I've as well.

My mistake. return is working. I must have been conflating issues. So ignore that part of it.
So yeah, in Rails 6 Rails::Console is not defined in the initializer but Rails.const_defined?('Console') does work so it must lazy load it. defined?(Rails::Console)` does work once you're in the console.
defined?(Rails::Console) works fine in Rails 5 so seems to be a Rails 6 change.

Thanks a lot!
I will adapt the README to that change.

Hold on, I'm having trouble with Rails.const_defined?('Console') now. I'll do some more testing and get back to you.

I'm at a loss. Rails::Console does not appear to be defined at the point the initializers are called in Rails 6. Which is weird as the args have been consumed at that point.
However, when running in a console the scheduled jobs are not run, I'm guessing because the console is blocking. So it seems a little accidental but has the same effect. There maybe other scenarios where they do run however.

OK, I will take a look at that during the week-end. Thanks for the information so far!

Thanks. And thank you for a great tool!

notes in passing, while playing with a test Rails 6 install

spring stop https://stackoverflow.com/questions/37064276/does-rails-initializers-gets-called-when-i-run-rails-console

Hello,
I am not a Rails user, but I can find my way around.
I think that the Spring tool is what is giving you sketchy result. When Spring is in action, the Rails initializers are run only once (and they stick in the Spring process). You have to run spring stop to force the initializers being re-run.
I disabled Spring with export DISABLE_SPRING=true && spring stop and the "guard" code at the top of the initializers got evaluated (and prevented the scheduler running) each time rails c got called.
Could you please double check that on your side? If that's the case, I'll update the rufus-scheduler README to explain the situation.
Thanks in advance.

Yeah I was doing spring stop each time as I want it to work with Spring as well. The other thing is that even if you exit the console, if Spring is still running it'll keep running scheduled jobs.
It also is running when in the console. It wasn't logging to screen but I checked the Rails logger and it's still pumping messages into there when the jobs run.
I'm thinking it might not be useful to run in development anyway so I'll probably have a flag you can set to turn it on. Normal behaviour is for people to run Spring and I don't want to force them to do something different.
I think a note about Spring would be useful.
Thanks so much for looking into this.

Just to clarify: If you run a console with Spring then exit the console jobs will still run until running spring stop. This doesn't happen when running the server however.

OK.
Yesterday I worked with https://github.com/jmettraux/sc_gh323_rails_console

Rails 6.1.4
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-openbsd6.7]
OpenBSD yawara 6.9 GENERIC.MP#3 amd64

Once Spring was put aside, all the rails c console calls were correctly skipped, as per my original console detection code. I experienced no cases of rails c not skipping the scheduler initializer.
I cannot reproduce your issue. I will add a note about Spring in the README and then close this issue.


/searching by date and/or datetime and/or datetime+ms

Hi, when calling the /search endpoint that is implemented here: https://github.com/stac-utils/stac-fastapi/blob/main/stac_fastapi/api/stac_fastapi/api/app.py, it seems we cannot search by date, but only by datetime.
A GET request with /search?datetime=2000-01-01 will fail with this error from https://github.com/stac-utils/stac-fastapi/blob/main/stac_fastapi/types/stac_fastapi/types/rfc3339.py
b'{"detail":"Invalid RFC3339 datetime."}'

A POST request will fail with what seems to by a pydantic error:
b'{"detail":[{"type":"datetime_parsing","loc":["body","datetime"],"msg":"Input should be a valid datetime, invalid datetime separator, expected `T`, `t`, `_` or space","input":"2000-01-01","ctx":{"error":"invalid datetime separator, expected `T`, `t`, `_` or space"}}]}'

We would like to allow our users to search by date without time, then our application (that uses stac_fastapi) would return all products for this whole day. Would this be possible ?
Then we would like to do the same for milliseconds: our products have a ms information, so if the user searches by datetime+ms, we would like to return products only for this specific ms. If he searches by datetime without ms, we would like to return all products for this whole second.
Our problem is that, if he searches for ms=.000 (to have products only for this specific ms) with a GET request e.g. /search?datetime=2000-01-01T01:01:01.000Z, stac_fastpi removes the ms=.000 information: our app receives the value datetime=2000-01-01T01:01:01Z, so it doesn't know anymore if the user wanted only products for this specific ms, or for this whole second. I think this removal is made when stac_fastapi converts the str to datetime in rfc3339_str_to_datetime https://github.com/stac-utils/stac-fastapi/blob/main/stac_fastapi/types/stac_fastapi/types/rfc3339.py#L51 (I couldn't find where this datetime is converted back to str).
To summarize, my two questions are:

Could a user search by date, not datetime ?
Could we stop stac_fastpi from removing the "ms=.000" information ?

Thank you :)

Thank you very much @vincentsarago for your answer. I'm using the pgstac backend.
I will take a look at this customization for searching by date. For the ms, the str to datetime conversion with rfc3339_str_to_datetime is working well, the field microsecond has the value 0, this is OK. The problem is that datetime is converted back into a str before being passed to my app, and here the ms=.000 is lost.
Allow me to paste a screenshot from my call stack, I've called my endpoint with `/search?datetime=2000-01-01T01:01:01.000Z", then in: /stac_fastapi/pgstac/core.py

This p variable will be passed to my app, we see this is a list[str] with one element that contains "datetime":"2000-01-01T01:01:01Z" so here the ms=.000 information is lost.
A little before in the call stack, we see that self.post_request_model returns a datetime as a str (without the ms=.000) that will be used later in the call stack, and also an end_date as a datetime with the ms info, but which is not used later.

Can you share the version of stac-fastapi, stac-fastapi-pgstac and stac-pydantic please

Can you share the version of stac-fastapi, stac-fastapi-pgstac and stac-pydantic please
I have these:

pypgstac                                 0.8.6
pystac                                   1.11.0
stac-fastapi-api                         3.0.3
stac-fastapi-extensions                  3.0.3
stac-fastapi-pgstac                      3.0.0
stac-fastapi-types                       3.0.3
stac-pydantic                            3.1.3


Issue with Prisma Query Engine Panic: Unable to Export JSON File Due to VRAM Error in Local Environment

Bug description
I encountered an issue where I cannot export a conversation history JSON file due to a Prisma Query Engine panic in a local environment setup. The error appears to be related to VRAM allocation for my NVIDIA GPU, possibly connected to Faraday, which I’m using in this setup.
The following message appears in the console:Invalid Vt.modelLayerSamples.upsert() invocation in C:\Users\kenny\AppData\Local\faraday\app-0.30.0\resources\app.asar\dist\server\main.js:1144:63297
...
This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.
How to reproduce

Expected behavior
When trying to export a JSON file in my local setup, Prisma crashes due to an invalid invocation of Vt.modelLayerSamples.upsert() during a process involving GPU VRAM allocation. The application (Faraday) attempts to read the GPU’s free and total VRAM but encounters an issue, specifically with fetching accurate VRAM values for NVIDIA GPUs. This results in a Prisma panic, making the operation non-recoverable.
Prisma information
This issue occurred within an application using Prisma in conjunction with a local environment (Windows) involving VRAM allocation for an NVIDIA GPU (RTX 3070). It involves a large conversation history, which might contribute to the problem. Below is a snippet of the log error I received:Invalid Vt.modelLayerSamples.upsert() invocation...
...
This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic.
Environment & setup
OS: Windows 10
Processor: Intel i7-11800
GPU: NVIDIA RTX 3070
RAM: 16 GB
Prisma Client: Using Prisma for a local project
Application: Faraday (app-0.30.0)
Other tools: Powershell (used by Faraday to fetch VRAM information), Vulkan
Prisma Version

I don't know what version of Prisma it is; I'm using Backyard AI version:v0.30.0

Prisma doesn't use GPU in any way and can't possibly fail with any GPU related errors. Please report this issue to the application this problem happens in. If there is a Prisma issue, please provide an actionable reproduction steps, including the schema and the query that fail and the specific error that originates in Prisma.


Unable to restore a split like attached image.

Can't figure out how to restore the following, anything I try is just opening them as new options in the dropdown list (only one terminal shown at once).

We have updated it to make it more reliable: https://marketplace.visualstudio.com/items?itemName=EthanSK.restore-terminals
Let me know if this works for you


lanes_info packet encode/decode module (.js) implementation

Description
Implementation of lanes info packet in designs/packet-protocols.md.

Now for python is unnecessary because of #159


Extension host crash with extension ssh workspace folder on RHEL 6

Issue Type: Bug

Install 1.53 Insider (my tests have been in portable mode)
Install either kelvin.sshfs or liximomo.remotefs
Configure an SSH connection to a RHEL 6 host
Add connection as workspace folder (crash may occur before this step with liximomo)

VS Code version: Code - Insiders 1.53.0-insider (c265dff48a27868c7f0f84fd25a169897dc43d73, 2021-01-14T06:31:42.082Z)
OS version: Windows_NT x64 10.0.21292
Also reported SchoofsKelvin/vscode-sshfs#225 but at least at the time, he was unable to reproduce the crash, which I am guessing - since I only just discovered this was relevant - is because he was not trying to connect to a RHEL 6 host. As I mentioned in the other issue, I just discovered that the crash doesn't seem to happen when connecting to RHEL 7.3.
Both extensions work fine with the same connection configurations on 1.52.0-insider (dbbf7079b20b3036b3ff5ac2e2106b84dd3c6d66, 2020-12-10T17:20:40.435Z).
The crash seems to happen - I think - during the check for various potential configuration files in the workspace folder (.vscode, .git, .devcontainer, etc.), but I don't know whether those are causing it or if the timing might be coincidental.
I looked into using the official Remote SSH extension instead, but it doesn't seem to allow a remote workspace folder in the current session rather than the remote session taking over, and isn't compatible with the hosts I need to connect to anyhow.

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (8 x 3408)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.93GB (13.94GB free)

Process Argv
--crash-reporter-id 8b95c023-eb1f-4528-9f8a-1680eaf9da0e

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

vscode-sshfs
Kel
1.19.1

A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368:30146709
vsreu685:30147344
openlogontheside:30221882
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30208929
wsl2prompt:30219162
vstry244:30244315
pythonvsdeb440:30224570
unusedpromptcf:30219165
folderexplorer:30219166
openfilemenu:30219168
pythonvsded773:30223139
vstes627:30244334
pythonvspyt859:30241729
core-portspanelcf:30233468

@scriptninja Please continue the troubleshooting with @SchoofsKelvin via https://github.com/SchoofsKelvin/vscode-sshfs/issues/225 . IMHO the crash of the extension host is caused (directly or indirectly) by something the extension is doing. I am happy to jump back into troubleshooting once we figure out that this is a crash caused by vscode core itself.

@scriptninja Please continue the troubleshooting with @SchoofsKelvin via https://github.com/SchoofsKelvin/vscode-sshfs/issues/225 . IMHO the crash of the extension host is caused (directly or indirectly) by something the extension is doing. I am happy to jump back into troubleshooting once we figure out that this is a crash caused by vscode core itself.

With the stable release of 1.53.0, this issue seems to have returned with multiple reports: SchoofsKelvin/vscode-sshfs#239. This also seems to be affecting users of a similar extension: liximomo/vscode-sftp#881.
I've noticed that there have been several internal version changes regarding OpenSSL/Electron/NodeJS, which might be part of the cause.

Thanks to the efforts of people who understand node and electron better than I, it seems we've traced this as far as electron/electron#27673
Telling the server you're connecting to not to use Diffie-Hellman seems like it may not be possible for a lot of people, which I have the impression means their options are limited to staying on 1.52 until a fix both lands in Electron and gets pulled into vscode, or doing without the affected extensions. At any rate I thought it might be useful to connect this issue to that one.

I've quickly tested this in 1.54.0-insiders (3290f9a) and it seems like e4a082a did indeed fix it. I was able to use the affected diffie-hellman-group-exchange-sha256 without problem.


Add license and URLs to nuget package

Fixes #104

Downloaded the generated nupkgs, looks like metadata is in order:
    <licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
    <projectUrl>https://github.com/tunnelvisionlabs/dotnet-trees</projectUrl>

Downloaded the generated nupkgs, looks like metadata is in order:
    <licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
    <projectUrl>https://github.com/tunnelvisionlabs/dotnet-trees</projectUrl>


Infinite backtrace, odd backtrace behavior and "corrupted stack?" in GDB

STR
$ cargo generate --git ~/rust-embedded/cortex-m-quickstart --name app && cd app

$ cargo add panic-abort

$ # modify examples/panic.rs to use panic-abort

$ # change memory.x to match the memory layout of the STM32F3DISCOVERY

$ # uncomment thumbv7em-none-eabi target and gdb runner in .cargo/config

$ cargo run --example panic
(gdb) backtrace  # "corrupt stack?"
#0  DefaultPreInit ()
    at /home/japaric/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rt-0.6.5/src/lib.rs:556
#1  0x08000412 in Reset ()
    at /home/japaric/.cargo/registry/src/github.com-1ecc6299db9ec823/cortex-m-rt-0.6.5/src/lib.rs:496
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

(gdb) continue
Breakpoint 4, main () at examples/panic.rs:29
29          panic!("Oops")

(gdb) backtrace  # where did Reset go?
#0  main () at examples/panic.rs:29

(gdb) continue
Breakpoint 3, rust_begin_unwind (_info=0x10001fb4) at (..)
31          unsafe { intrinsics::abort() }

(gdb) backtrace  # infinite backtrace
#0  rust_begin_unwind (_info=0x10001fb4) at (..)
#1  0x080006b0 in core::panicking::panic_fmt () at libcore/panicking.rs:77
#2  0x080006b0 in core::panicking::panic_fmt () at libcore/panicking.rs:77
#3  0x080006b0 in core::panicking::panic_fmt () at libcore/panicking.rs:77
(..)

Metadata
$ rustc -V
rustc 1.31.0-nightly (f99911a4a 2018-10-23)

$ grep cortex-m-rt Cargo.lock
 "cortex-m-rt 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)"

$ arm-none-eabi-gdb --version
GNU gdb (GDB) 8.2

Has anyone experienced these issues? I've seen them with previous releases of cortex-m-rt so I don't think they are related to the recent changes to HardFault. Also, in the above logs all backtrace invocations are before reaching HardFault.

I did see similar issues when I was running through "Chapter 6 - Hello, world!" of the Discovery book. I took a quick look at the time and seem to remember that the panic related functions were modifying important registers like LR without first saving them on the stack. I didn't really dig into it since I am a Rust noob and I figured that was the expected behavior for Rust's panic handling code. If you want, I can investigate this. I don't think my HardFault change has anything to do with this but I can make sure that is the case and I think they are probably a similar type of issue.

You are correct. core::panicking::panic modifies LR without first pushing it onto the stack.
$ cd $(rustc --print sysroot)

$ arm-none-eabi-objdump -Cd lib/rustlib/thumbv7m-none-eabi/lib/libcore-*.rlib
(..)
00000000 <core::panicking::panic>:
   0:   b08c            sub     sp, #48 ; 0x30
   2:   e890 1006       ldmia.w r0, {r1, r2, ip}
   6:   e9d0 3e03       ldrd    r3, lr, [r0, #12]
   a:   6940            ldr     r0, [r0, #20]
   c:   e9cd 1206       strd    r1, r2, [sp, #24]
  10:   a906            add     r1, sp, #24
  12:   f240 0200       movw    r2, #0
  16:   9100            str     r1, [sp, #0]
  18:   2101            movs    r1, #1
  1a:   f2c0 0200       movt    r2, #0
  1e:   9101            str     r1, [sp, #4]
  20:   2100            movs    r1, #0
  22:   e9cd 1102       strd    r1, r1, [sp, #8]
  26:   e9cd 2104       strd    r2, r1, [sp, #16]
  2a:   a908            add     r1, sp, #32
  2c:   e9cd c308       strd    ip, r3, [sp, #32]
  30:   e9cd e00a       strd    lr, r0, [sp, #40]       ; 0x28
  34:   4668            mov     r0, sp
  36:   f7ff fffe       bl      0 <core::panicking::panic>
  3a:   defe            udf     #254    ; 0xfe

It seems that all divergent functions (fn(..) -> !) are given the noreturn attribute in LLVM-IR and this gives LLVM permission to thrash the LR register when optimizing the code. See example below:
#![feature(asm)]
#![no_main]
#![no_std]

extern crate panic_abort;

use cortex_m_rt::entry;

#[entry]
fn main() -> ! {
    foo();
    bar();
    baz()
}

#[inline(never)]
fn foo() {
    unsafe {
        asm!("" :: "r"(0) "r"(1) "r"(2) "r"(3) "r"(4) "r"(5) :: "volatile");
    }
}

#[inline(never)]
fn bar() {
    unsafe {
        asm!("" :: "r"(0) "r"(1) "r"(2) "r"(3) "r"(4) :: "volatile");
    }
}

#[inline(never)]
fn baz() -> ! {
    unsafe {
        asm!("" :: "r"(0) "r"(1) "r"(2) "r"(3) "r"(4) "r"(5) :: "volatile");
    }

    quux()
}

#[inline(never)]
fn quux() -> ! {
    unsafe {
        asm!("" :: "r"(0) "r"(1) "r"(2) "r"(3) "r"(4) "r"(5) "r"(6) :: "volatile");
    }

    loop {}
}

$ cargo rustc --example asm --release -- --emit=llvm-ir

$ cat $(find -name '*.ll')
; asm::foo
; Function Attrs: noinline nounwind
define internal fastcc void @_ZN3asm3foo17h42aa59da8b4484e3E() unnamed_addr #0 {
start:
  tail call void asm sideeffect "", "r,r,r,r,r,r"(i32 0, i32 1, i32 2, i32 3, i32 4, i32 5) #3, !srcloc !513
  ret void
}

; asm::bar
; Function Attrs: noinline nounwind
define internal fastcc void @_ZN3asm3bar17h6e8a9117df8b0663E() unnamed_addr #0 {
start:
  tail call void asm sideeffect "", "r,r,r,r,r"(i32 0, i32 1, i32 2, i32 3, i32 4) #3, !srcloc !514
  ret void
}

; asm::baz
; Function Attrs: noinline noreturn nounwind
define internal fastcc void @_ZN3asm3baz17h32a1e9952bcf27a1E() unnamed_addr #1 {
start:
  tail call void asm sideeffect "", "r,r,r,r,r,r"(i32 0, i32 1, i32 2, i32 3, i32 4, i32 5) #3, !srcloc !515
; call asm::quux
  tail call fastcc void @_ZN3asm4quux17h6aa0bed8e5be8684E()
  unreachable
}

; asm::quux
; Function Attrs: noinline noreturn nounwind
define internal fastcc void @_ZN3asm4quux17h6aa0bed8e5be8684E() unnamed_addr #1 {
start:
  tail call void asm sideeffect "", "r,r,r,r,r,r,r"(i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6) #3, !srcloc !516
  br label %bb1

bb1:                                              ; preds = %bb1, %start
  br label %bb1
}

$ cargo objdump --example asm --release -- -d -no-show-raw-insn -print-imm-hex
Disassembly of section .text:
asm::foo::hab8803af3cab0482:
 8000400:       push    {r7, lr}
 8000402:       mov.w   r12, #0x0
 8000406:       mov.w   lr, #0x1
 800040a:       movs    r2, #0x2
 800040c:       movs    r3, #0x3
 800040e:       movs    r0, #0x4
 8000410:       movs    r1, #0x5
 8000412:       pop     {r7, pc}

asm::bar::h0d958609aa53168d:
 8000414:       mov.w   r12, #0x0
 8000418:       movs    r1, #0x1
 800041a:       movs    r2, #0x2
 800041c:       movs    r3, #0x3
 800041e:       movs    r0, #0x4
 8000420:       bx      lr

asm::baz::h3d14c7f076829055:
 8000422:       mov.w   r12, #0x0
 8000426:       mov.w   lr, #0x1 ; <-
 800042a:       movs    r2, #0x2
 800042c:       movs    r3, #0x3
 800042e:       movs    r0, #0x4
 8000430:       movs    r1, #0x5
 8000432:       bl      #0x2
 8000436:       trap

asm::quux::h485b4bd2341abdb3:
 8000438:       mov.w   r12, #0x0
 800043c:       mov.w   lr, #0x1 ; <-
 8000440:       movs    r2, #0x2
 8000442:       movs    r3, #0x3
 8000444:       movs    r0, #0x4
 8000446:       movs    r1, #0x5
 8000448:       movs    r4, #0x6
 800044a:       b       #-0x4 <asm::quux::h485b4bd2341abdb3+0x12>

I can't think of any way to solve this issue from our side given that libcore comes pre-compiled.

Jumping in this thread. I saw this in an Embedded Rust workshop I ran at work the other day.

It would be nice if the LLVM backend for ARM targets could be told to not trash LR when the noreturn attribute is used so that stack backtraces weren't broken in the debugger. What's more important, the little bit of speed/space savings from not spilling LR to the stack before modification or allowing a developer to actually be able to debug their code when such code is in the middle of their stack backtrace?

AFAICT the difference between noreturn and no-noreturn is not small. The former will not stack any registers until all registers (~10) are used up; the latter will stack registers as soon as the scratch registers (3-5) are used up. I think we should not disable this optimization (in LLVM or in cortex-m-rt), or make it opt-in (makes too big of a diff in perf to have people "forget to enable it").

It would be nice if the LLVM backend for ARM targets could be told to not trash LR when the noreturn
attribute is used

If LLVM has this feature then I think it should be opt-out (i.e. enabled by default in the compiler but can be disabled via a compiler flag) for the Cortex-M targets. I haven't seen any switch like that though; I have only seen one for the frame pointer (-fno-omit-frame-pointer).

I think we should not disable this optimization (in LLVM or in cortex-m-rt), or make it opt-in (makes too big of a diff in perf to have people "forget to enable it").

I wonder how big the performance hit really is as these divergent functions aren't going to be called in a hot loop since they never return to be called more than once.
To corrupt the registers so bad that a developer can't get a stack backtrace in the debugger is pretty bad behavior. It is made even worse by the fact that a lot of times these noreturn functions find themselves in the middle of a call stack that a developer would really be interested in looking at (HardFault, panics, etc).

Isn't it possible to do some linker tricks to avoid the noreturn?
fn panic(info: &PanicInfo) -> ! {
  if trick_the_optimizer() {
    unsafe { asm!{"ret"} }
  } else {
    loop {}
  }
}

And then replace trick_the_optimizer during linking and maybe disable LTO if it is too good. Or maybe it is enough to mark it as extern "C" to inhibit optimizations.

Isn't it possible to do some linker tricks to avoid the noreturn?

I tried various methods, including the one you suggested. Unfortunately, this does not seem to help because there are a couple other noreturn functions between fn panic(info: &PanicInfo) -> ! and the panic site, so LR ends up corrupted anyway.
I have found that one can break on core::panicking::panic instead of rust_begin_unwind and still have a consistent stack. You don't get the panic message because it hasn't been constructed yet, but you do get a complete and non-corrupted backtrace, which is much more valuable in my experience. Perhaps the .gdbinit should be changed so that this is the default.

Is there an upstream issue for this?

There have been discussions about this with one of the teams (at previous all hands), not sure if there is an issie

There is a case in which break on core::panicking::panic  does not help.
My code controls the PWM output for a power inverter. I run the code with only one breakpoint, as in case of an accidental stop, the device may be destructed.
The rust_begin_unwind contains code to correct stoping of device. After this code I set breakpoint and want to watch registers and memory. But now stack already corrupted!
Removing noreturn from a -> ! function seems to be the right solution for thumbv7m-none-eabi (also thumbv6m-none-eabi and et.al.)

Submitted an upstream bug report: https://github.com/rust-lang/rust/issues/69231

Has nobody tried building with -Cforce-frame-pointers=true yet? Is there a minimal example showing the issue?

Has nobody tried building with -Cforce-frame-pointers=true yet? Is there a minimal example showing the issue?

FYI it's -Cforce-frame-pointers=yes/no, but unfortunately it doesn't seem to make a difference to the backtrace.
I wasn't aware of a minimal example, so I put one together based on the quickstart that you can use. https://github.com/MabezDev/cortex-m-quickstart

Great, thanks!

Reposting here for anyone not following the upstream issue: https://github.com/rust-lang/rust/issues/69231#issuecomment-587127524
Forcing framepointers on fixes the backtrace issue, unfortunately the precompiled core  doesn't force framepointers hence you will have to build your own with xargo or -Z build-std at the moment.

This should be fixed on the current nightly

Closing as fixed!
Note that according to https://github.com/rust-lang/rust/issues/69231#issuecomment-591093480 there might be a cheaper way of achieving this, so if someone wants to go after that, feel free! (I won't be spending more time on this as we don't have any easy to use tooling for assessing changes like this)