This Exception was thrown from a job compiled with Burst, which has limited exception support.
0x00007ffde165c586 (e66c59c764169f741423df1c419b5a2) Unity.Entities.EntityComponentStore.AssertEntityHasComponent (at D:/work/client_Survivor/Library/PackageCache/com.unity.burst@1.8.7/.Runtime/Library/PackageCache/com.unity.entities@1.0.11/Unity.Entities/EntityComponentStoreDebug.cs:338)
0x00007ffde16aaed2 (e66c59c764169f741423df1c419b5a2) Unity.Entities.ComponentLookup1<NSprites.LocalToWorld2D>.get_Item (at D:/work/client_Survivor/Library/PackageCache/com.unity.burst@1.8.7/.Runtime/Library/PackageCache/com.unity.entities@1.0.11/Unity.Entities/Iterators/ComponentLookup.cs:235) 0x00007ffde16a9d48 (e66c59c764169f741423df1c419b5a2) NSprites.LocalToWorldSystem2D.ComputeChildLocalToWorldJob.ChildLocalToWorldFromTransformMatrix (at D:/work/client_Survivor/Assets/NSprites-Foundation/Transform2D/Systems/LocalToWorldSystem.cs:98) 0x00007ffde16aa28c (e66c59c764169f741423df1c419b5a2) NSprites.LocalToWorldSystem2D.ComputeChildLocalToWorldJob.ChildLocalToWorldFromTransformMatrix (at D:/work/client_Survivor/Assets/NSprites-Foundation/Transform2D/Systems/LocalToWorldSystem.cs:103) 0x00007ffde16aa7e8 (e66c59c764169f741423df1c419b5a2) NSprites.LocalToWorldSystem2D.ComputeChildLocalToWorldJob.Execute (at D:/work/client_Survivor/Assets/NSprites-Foundation/Transform2D/Systems/LocalToWorldSystem.cs:122) 0x00007ffde16abc00 (e66c59c764169f741423df1c419b5a2) Unity.Entities.JobChunkExtensions.JobChunkProducer1<NSprites.LocalToWorldSystem2D.ComputeChildLocalToWorldJob>.ExecuteInternal (at D:/work/client_Survivor/Library/PackageCache/com.unity.burst@1.8.7/.Runtime/Library/PackageCache/com.unity.entities@1.0.11/Unity.Entities/IJobChunk.cs:400)
0x00007ffde16a97f6 (e66c59c764169f741423df1c419b5a2) c6b5edfca1a757b312a8fd6185424bf0
0x00007ff643351ddc (Unity) ExecuteJob
0x00007ff643352144 (Unity) ExecuteJobCopyData
0x00007ff643352e5f (Unity) ForwardJobForEachToManaged
0x00007ff64334f02e (Unity) ujob_execute_job
0x00007ff64334e4e4 (Unity) lane_guts
0x00007ff643351044 (Unity) worker_thread_routine
0x00007ff643580507 (Unity) Thread::RunThreadWrapper
0x00007ffe510326ad (KERNEL32) BaseThreadInitThunk
0x00007ffe52b6aa68 (ntdll) RtlUserThreadStart

@utkucnay need your help here

Ok, seems there will no help. I'll look into this.
Obviously such functionality need unit test.
Also I want to tell 2 things:

There is no really huge difference between using Foundation's transforms as opposed to unity's transforms, because it just a copy of it with using float2 instead of float3 in one not very important place, so there are no big deal.
I have plans to construct real 2D transform by scratch with using lightweight matrix to reduce data per entity. Like with 2D transforms we can store rotation as float instead of float4 as it is now.

I have plans to strip off 2D transforms. Will do this in next update very soon.

I solved this problem by removing the Parent and Parent2D components before destroying the ChildEntity, and then destroying the ChildEntity in another system running behind the ParentSystem2D

Would you mind to make a pull request?

This is only a modification at the business level. There is no problem at the NSpriteFounddation framework level.

I solved this problem by removing the Parent and Parent2D components before destroying the ChildEntity, and then destroying the ChildEntity in another system running behind the ParentSystem2D

Do you think this shouldn't be done automatically?


[Wiki] Wrong link to responses.sample.json

On https://github.com/microsoft/m365-developer-proxy/wiki/Mock-responses there is a link to responses.sample.json that is dead.
The link still points to https://github.com/microsoft/m365-developer-proxy/blob/main/msgraph-developer-proxy/responses.sample.json but should point to https://github.com/microsoft/m365-developer-proxy/blob/main/m365-developer-proxy/responses.sample.json instead.
I'd also like to have a hint on this page that wildcards can be used safely in responses.sample.json (like https://*.api.com/*).
I'd love to create a pull request but after googling how to do pull requests for a GitHub wiki (as opposed to "just" code) I don't dare to try that.

Good catch, thanks for raising the issue @heinrich-ulbricht and sorry for the trouble.
I've fixed the broken link, seems we didn't quite capture all links referring to the old repo.

I'd also like to have a hint on this page that wildcards can be used safely in responses.sample.json (like https://.api.com/).

Great idea, we should certainly include that.

I'd love to create a pull request but after googling how to do pull requests for a GitHub wiki (as opposed to "just" code) I don't dare to try that.

Yes, unfortunately this is a limitation of the wiki that it does not support PRs. We do have plans to move our docs to a more appropriate place, so this will be possible in the future.

I've made an update to https://github.com/microsoft/m365-developer-proxy/wiki/Mock-responses to include a section on the use of wildcards.
Thanks for the suggestion @heinrich-ulbricht if you have any other suggestions or feedback, please do raise an issue.
Thanks again. ❤

Perfect, thanks for the update!


Feat/panel optimized button borders

Preflight Checklist

[ ] I have read the Contributing Guidelines for this project.
[ ] I agree to follow the Code of Conduct that this project adheres to.
[ ] I have searched the pull request tracker for a Pull Request (PR) that matches the one I want to submit, without success.

Issue
This PR Closes #
Pull request checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[ ] Build (npm run build) was run locally and any changes were pushed
[ ] Lint (npm run lint) has passed locally and any fixes were made for failures

Changes
Changes in this pull request:

Browsers
I tested the build on the following browsers:

[ ] Firefox Desktop
[ ] Chrome Desktop
[ ] Safari Desktop
[ ] Firefox Mobile
[ ] Chrome Mobile
[ ] Safari Mobile
[ ] Opera
[ ] Brave

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Does this introduce a breaking change?

[ ] Yes
[ ] No

Other information

Mentions

@lyne-design-system/core

@feerglas with this trick me might be able to have nicer borders even on non-retina devices.

Codecov Report

Merging #701 (9423cc8) into master (e7f0ef0) will increase coverage by 1.42%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #701      +/-   ##
==========================================
+ Coverage   37.89%   39.31%   +1.42%
==========================================
  Files           6        7       +1
  Lines         256      262       +6
  Branches       59       59
==========================================
+ Hits           97      103       +6
  Misses        149      149
  Partials       10       10

Impacted Files
Coverage Δ

src/components/lyne-panel/lyne-panel.tsx
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


authors: fix when indexing author which name didn't changed

I just had a look on how you refactored the process_references_for_papers and I don't  like the approach. Why did you separate the modified authors/modified collaboration from the rest? Is it because the rest mostly use "linked" institutions/conferences etc.? The naming for that is very confusing get_linked_papers_if_reference_changed, they are not even papers! Some are returning institutions to reindex. It's messy.
I would have a function get_records_to_reindex_for_lit_record or something to signify that it doesn't return just papers and reference is changed is too vague. And in that function, have all the calls we use to retrieve the records which need to be reindexed. Then you could test this by calling that function and checking it return empty list instead of calling indexing with delay False and seeing it doesn't throw exception. And then you can have another function for author records (to get records to reindex)
We also need to rename the variables papers_to_reindex is wrong. Before it was called uuids which made sense more or less.

Why did you separate the modified authors/modified collaboration from the rest?
I didn't separated them. They are new.

The naming for that is very confusing get_linked_papers_if_reference_changed, they are not even papers!
Ok, I'm not best with names. I will change this.

I would have a function get_records_to_reindex_for_lit_record or something to signify that it doesn't return just papers and reference is changed is too vague. And in that function, have all the calls we use to retrieve the records which need to be reindexed.
I'm not sure about this. Where you would preffer to put this? In Lit record? Why lit record should care about this? Maybe in reindex? But then we would create new function just to call 3 methods from Literature Record?

And what with author record? Should it stay unchanged? Then our records API would be inconsistent. So Maybe we should create method get_records_uuids_to_reindex for all Classes which would return proper uuids  But i believe that this would be useful if this would be more complex, as creating this to replace 2 ifs in indexer is a little to much right now I believe.

We also need to rename the variables papers_to_reindex is wrong. Before it was called uuids which made sense more or less.
Agree

Why did you separate the modified authors/modified collaboration from the rest?

I didn't separated them. They are new.

Well, they still should be with the other function calls

I would have a function get_records_to_reindex_for_lit_record or something to signify that it doesn't return just papers and reference is changed is too vague. And in that function, have all the calls we use to retrieve the records which need to be reindexed.

It's not just 3 function calls, it's 5 (the other 2 should be here too). I think it makes sense to be a separate function as the code will be more readible and you would be able to test the functionality of reindexing records based on this lit record in an easier way.

And what with author record? Should it stay unchanged? Then our records API would be inconsistent. So Maybe we should create method get_records_uuids_to_reindex for all Classes which would return proper uuids But i believe that this would be useful if this would be more complex, as creating this to replace 2 ifs in indexer is a little to much right now I believe.

Why is it inconsistent? You just have a function that is giving you uuids to reindex. You can even do one function and put the ifs in there as well and just call it. I just think it would be good to have it separated and not all the logic inside the indexing task so it can be tested in a better way and modified collaborations and authors should go with the other as well. Right now, we have a function that gets us half of the records to be indexed. Then we call another 2 functions to get the rest inside the indexing task which is messy.

Discussed IRL with @monaawi . I created new task to move logic out of index_record task. https://its.cern.ch/jira/browse/INSPIR-3518


Introduce new case data algorithm which accounts for the possibility of false negative results

🤔

Do we have a formal proof of correctness that this algorithm will provide correct results with a probability p > 0.5?

Do we have a formal proof of correctness that this algorithm will provide correct results with a probability p > 0.5?

Yes

Forall epsilon>0 we have that |true-estimated| < epsilon with probability 0<p<1

@johnnyapol I think you forgot to merge this


Update volumes.md

Proposed changes
Needs the --name option, or the create fails with this:
"docker volume create" accepts no argument(s).
See 'docker volume create --help'.

Usage:  docker volume create [OPTIONS]

Create a volume

Sorry, this isn't true:
$ docker volume create test1
test1

$ docker volume create --name=test2
test2

What version of Docker are you running and what exact command did you run to make it fail?

Sorry, it might be a user error (I'm new to docker), but your example didn't work for me.
Here's the output:
bpm@wkg2eng2(4):~ $ docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6
bpm@wkg2eng2(4):~ $ docker volume create test1
"docker volume create" accepts no argument(s).
See 'docker volume create --help'.

Usage:  docker volume create [OPTIONS]

Create a volume
bpm@wkg2eng2(4):~ $ docker volume create --name=test2
test2

Ah, sorry - found the change: https://github.com/moby/moby/pull/23830
Looks like it's just my build's version of docker being outdated. I'll close.

You are on an impressively old version of Docker! If you're using Docker CE, the latest stable version is 17.12, which was released last December. Your version was released 13 months ago, which is quite old in Docker-land. https://docs.docker.com/release-notes/docker-engine/#1126-2017-01-10

Yes, that's the one from the official Centos repo, rather than the Docker repo - knew I'd missed a step somewhere, but got it all sorted out now. Sorry for the trouble.


Change missing trailing comma span to be more helpful

First time contributing, let me know if something should be different e.g. where I place the test and so on (or if you disagree with the PR altogether).
I noticed if I forget a trailing comma, the span info pointed to the span before the one I expected.
// user code
rsx!{
  p { class: "foo bar"
    "hi"
  }
}

// stderr before
error: missing trailing comma
 --> tests/rsx/trailing-comma-0.rs:9:20
  |
9 |             class: "foo bar"
  |             ^^^^^

// stderr after
error: missing trailing comma
 --> tests/rsx/trailing-comma-0.rs:9:20
  |
9 |             class: "foo bar"
  |                    ^^^^^^^^^

So I changed the span to the one after, and added a test to verify the new stderr.

This is great - even comes with a nice test. Thank you so much!


Should QGC add support for DO_SET_HOME in missions?

Currently QGC does not list DO_SET_HOME as being a supported command by firmware. But it looks like there is support for DO_SET_HOME on the firmware side. So the question is whether QGC should make that available in missions or will it just cause more confusion due to possible strangeness as described by Nate:
"The caveat here is (if my memory serves) PX4 will automatically replace the home position as others specified during certain conditions (arming, GPS lock, takeoff). This behavior makes it kinda unintuitive to predict where home is if you manually set it with DO_SET_HOME and it subsequently gets replaced.
I think input and changes are probably needed on both ends to make the behavior predictable to track what is most desirable given the level of user engagement. (IE: if they manually configured home position, maybe don't automatically override it?). Maybe things have already changed on that front since I last used it."
Discussion started here: https://github.com/mavlink/qgroundcontrol/issues/6371#issuecomment-385265600

This needs to be thought through VERY carefully as HOME setpoint is safety critical and impacts many things.
Concepts of HOME location and HOME (field) altitude need to be considered and how changing either of those impacts things during, before, or after flight.
The idea that HOME gets updated upon takeoff (or arming) is a fairly universal behavior in the small UAV world these days (always exceptions, but...).

Within commander we now have better support for setting this manually and not auto updating once it's been set manually. The missing piece is the interaction via mavlink or within a mission.
When is a planned home position needed or wanted?
Personally I'd be happy if QGC only ever displayed the real PX4 home position.

This has nothing to do with "Planned home position". This is if you explicity add a DO_SET_HOME command somewhere in your mission.

Personally I'd be happy if QGC only ever displayed the real PX4 home position.

I think people that plan missions ahead of time will not be happy with that. It means no mission time calculation, no battery count calculation, ... amoung other things.

This has nothing to do with "Planned home position". This is if you explicity add a DO_SET_HOME command somewhere in your mission.

I'm saying it could be if you had QGC send DO_SET_HOME when a user manually set it.
Again, how do people actually want to use this?

I think people that plan missions ahead of time will not be happy with that. It means no mission time calculation, no battery count calculation, ... amoung other things.

I suspect some of those users think placing the home position is actually doing something on the vehicle.

Could we make it entirely optional? The default for QGC + PX4 could be not showing the home position unless it's streaming from the vehicle. Then a user could opt into placing a home position for the sake of planning and qgc stats.
Later if anyone actually wants a manually set home position we can plumb it together easily enough.

The default for QGC + PX4 could be not showing the home position unless it's streaming from the vehicle.

That pretty much means you will never get correct stat calcs (time, batteries, bottom alt/terrain display, ...) until you are at the field and the vehicle is in the position you plan to take off from. Which is about as close to never as you can get. That is not super useful.

I personally think "Planned Home" should be replaced with "Virtual Home". To me, the word "Planned" means the home position I planned while planning the mission, which could also lead into confusion with DO_SET_HOME position (once that command is added). On the other hand, "Virtual Home" gives a more strong feeling that this home is not real.

I think people that plan missions ahead of time will not be happy with that. It means no mission time calculation, no battery count calculation, ... amoung other things.

Where does the new QGC show mission times and battery count calculation?

I get what you are saying about Planned. Not sure about Virtual. Maybe Expected would be better.

FWIW
My preference would be "Placeholder Home". I would be OK with: Planning, Planned, Nominal, Notional. Either way, it should be visibly different.
Virtual is too overloaded as a term - raises more questions than it answers. No so sure for Expected.


dm renaming

renaming derived model submodules to remove the leading _dm
also moving away from double to single underscores in derived model package

Codecov Report

Merging #320 (9e1cbf6) into integration (d89b18d) will decrease coverage by 0.03%.
The diff coverage is 87.98%.

@@               Coverage Diff               @@
##           integration     #320      +/-   ##
===============================================
- Coverage        64.31%   64.28%   -0.04%
===============================================
  Files              125      125
  Lines            27147    27124      -23
===============================================
- Hits             17460    17437      -23
  Misses            9687     9687

Impacted Files
Coverage Δ

...py/derived_model/_add_one_blocked_well_property.py
95.00% <ø> (ø)

resqpy/derived_model/_add_single_cell_grid.py
100.00% <ø> (ø)

resqpy/derived_model/_copy_grid.py
91.66% <ø> (ø)

resqpy/derived_model/_gather_ensemble.py
81.25% <ø> (ø)

resqpy/derived_model/_tilted_grid.py
83.33% <71.42%> (ø)

resqpy/derived_model/_interpolated_grid.py
34.59% <75.00%> (ø)

resqpy/derived_model/_local_depth_adjustment.py
83.15% <77.77%> (ø)

resqpy/derived_model/_refined_grid.py
66.51% <83.33%> (ø)

resqpy/derived_model/_unsplit_grid.py
88.88% <83.33%> (ø)

resqpy/derived_model/_extract_box.py
78.53% <84.00%> (ø)

... and 26 more

Continue to review full report at Codecov.

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


add new workflows

Description of changes:
Added new workflows scrnaseq (with cellranger) , fastqc, vep, taxprofiler, hisat-genotype
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Zoiks!! 848 Files Changed!! Did these come from the hackathon?

Zoiks!! 848 Files Changed!! Did these come from the hackathon?

Yes!

I will presume that the 848 file change is largely adding new files (workflow definitions). Will triage review to changed pre-existing files.


Define format for datetime don't work

It's don't work.
RailsAdmin.config do |config|
For config format of datetime
config.models do
fields_of_type :datetime do
strftime_format "%Y-%m-%d"
end
end
...
end
But if i include this configuration in this model it's work fine.
RailsAdmin.config do |config|
...
config.model 'HomeMessage' do
field :created_at
field :name
field :email
field :fone
field :message
fields_of_type :datetime do
strftime_format "%Y-%m-%d"
end
end
...
end

config.models does not accept block, it can't be used for bulk configuration.


Add echasnovski/mini.nvim#mini.operators

Repo URL:
https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-operators.md
Checklist:

[x] The plugin is specifically built for Neovim, or if it's a colorscheme, it supports treesitter syntax.
[x] The lines end with a .. This is to conform to awesome-list linting and requirements.
[x] The title of the pull request is Add/Update/Remove `username/repo`  (notice the backticks around `username/repo`) when adding a new plugin.
[x] The description doesn't mention that it's a Neovim plugin, it's obvious from the rest of the document. No mentions of the word plugin unless it's related to something else.
[x] The description doesn't contain emojis.
[x] Neovim is spelled as Neovim (not nvim, NeoVim or neovim), Vim is spelled as Vim (capitalized), Lua is spelled as Lua (capitalized), Tree-sitter is spelled as Tree-sitter.
[x] Acronyms should be fully capitalized, for example LSP, TS, YAML, etc.

Thanks for the PR!


Fix notifications bugs

Summary of the Pull Request
What is this about?
Implements 1. and 3. from #2530
PR Checklist

[ ] Applies to work item: #xxx
[ ] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

Codecov Report

Merging #2534 (7af1b4c) into main (b3fd6d5) will increase coverage by 5.53%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2534      +/-   ##
==========================================
+ Coverage   29.99%   35.53%   +5.53%
==========================================
  Files         289      135     -154
  Lines       35488    17118   -18370
==========================================
- Hits        10645     6083    -4562
+ Misses      24843    11035   -13808

Impacted Files
Coverage Δ

src/agent/coverage/src/test.rs
92.85% <0.00%> (-7.15%)
:arrow_down:

src/agent/coverage/src/code.rs
8.29% <0.00%> (-6.12%)
:arrow_down:

src/agent/onefuzz/src/machine_id.rs
51.21% <0.00%> (-5.63%)
:arrow_down:

src/agent/onefuzz/src/sanitizer.rs
69.69% <0.00%> (-2.91%)
:arrow_down:

src/agent/onefuzz-agent/src/worker/tests.rs
99.10% <0.00%> (-0.11%)
:arrow_down:

src/agent/onefuzz/src/asan.rs
0.00% <0.00%> (ø)

src/agent/coverage/src/cache.rs
0.00% <0.00%> (ø)

src/agent/onefuzz-agent/src/setup.rs
0.00% <0.00%> (ø)

src/agent/coverage/src/block/linux.rs
0.00% <0.00%> (ø)

src/agent/onefuzz-agent/src/reboot.rs
0.00% <0.00%> (ø)

... and 166 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


"fetch" is not defined

When I use fetch,  a polyfill is imported like this import 'whatwg-fetch', and "fetch" is not defined error would show up.
I know that I could use "global" to prevent this error, but should these been considered in standard for these common polyfill?

@yoshuawuyts Thanks! I should have thought of using window before.

@yoshuawuyts, how does this take into account server-side use of fetch? There is no window object in Node.

It may be just be a import from a package like node-fetch? it would be inside your file scope as import so no need for global.

Exactly what @falmar said. In node:
const fetch = require('node-fetch')
fetch('https://github.com/', ...)

Hmm, aren't things like isomorphic-fetch were meant to be imported as a global (import isometric-fetch), not a default or named import?

Not a good idea, IMO. As a rule, modules shouldn't set global variables. A better approach would be to import fetch in both node and the browser environment. (In the browser, it could simply return window.fetch.)
If you still want to use isomorphic-fetch, I recommend documenting it's behavior with a comment:
import "isometric-fetch" /* global fetch */

Not a good idea as in "I don't recommend using isomorphic-fetch", or not a good idea as in "use it like const fetch = require('isomorphic-fetch')"? I thought isomorphic-fetch was meant to act as a polyfill and thus needed to be global, no? Perhaps it can be import as a default import?

import "isomorphic-fetch" /* global fetch */

I'm currently doing it this way, but it did feel kind of icky, and I was hoping there was a better solution. However, I'm not sure I fully understand what you're suggesting as an alternative. Thanks for replying so quickly to all of this though!

isomorphic-fetch exports the function in addition to patching the global scope. The following should work great:
const fetch = require('isomorphic-fetch')

fetch('http://example.com')
  .then(res => res.text())
  .then(text => console.log(text))

@LinusU, are you sure of this? I haven't seen examples of it used as a ponyfill like you are exampling, and there are lots of issues and PRs which seem to hint otherwise—the README itself warns that the library "adds fetch as a global so that its API is consistent between client and server.".

Apologies, I mis-read your comment and see now that you say "in addition to patching the global scope". However, if isomorphic-fetch is already patching the global scope, what is the use of doing something like const fetch = require('isomorphic-fetch')? IMO, having something like require('isomorphic-fetch') /* global fetch */ is far more honest about what is really going on.

I highly recommend you to use it like @LinusU in his snippet. It is way more declarative and you will know exactly what is going on. I do expect that isomorphic-fetch will inject fetch into the global scope, but what if there is something that change it and wont work as expected. I rather import it and use that way, maybe when you are on web browser environment it gives you the actual fetch from window and if it is another environment it supply you with their custom isomorphic-fetch

It is way more declarative and you will know exactly what is going on

How? The library is replacing the global fetch...

but what if there is something that change it and wont work as expected

I'm not sure I fully understand what you're getting at here, but I think you may be misunderstanding isomoprhic-fetch. All it does is merge together node-fetch and GitHub's Fetch polyfill so that the former is pulled in when you run require('isomorphic-fetch') on the server, and the latter on the client. isomorphic-fetch is mostly config, there's barely any code at all.

How? The library is replacing the global fetch...

I think the point is that the global fetch could be replaced by another fetch pollyfill that runs later. By explicitly depending on your local fetch variable, you guarantee that your code will always get the fetch implementation that it is expecting.

I think the point is that the global fetch could be replaced by another pollyfill that executes later, in another package.

I'm pretty confused by this. Wouldn't the global fetch just be set by isomorphic-fetch here? Why would it change? Are people including multiple polyfills in a single project?

Why would it change? Are people including multiple polyfills in a single project?

In an ideal world, no one would include multiple polyfills in a single project. However, if one of the packages you're using includes isomorphic-fetch or another implementation that also tries to overwrite the global, then the order these run in will affect the outcome.
It's not that complicated: packages should never write globals. If you, as a top-level user who is making an app, want to polyfill fetch, then you should do:
if (typeof window.fetch !== 'function') {
  window.fetch = require('some-fetch-implementation')
}

That said, isomorphic-fetch seems to otherwise be a good package, so it's totally fine if you want to use it. Just be explicit about where fetch is coming from to satisfy standard. To do that, you have two options:

Use it directly (best)

const fetch = require('isomorphic-fetch')
fetch('http://example.com')

Use the global

require('isomorphic-fetch') /* global fetch */
fetch('http://example.com')

This is all documented in the readme here: http://standardjs.com/#i-use-a-library-that-pollutes-the-global-namespace-how-do-i-prevent-variable-is-not-defined-errors

Ah, that makes perfect sense, @feross. I really appreciate you taking the time to explain this, as I know you likely have many other things competing for your attention. I agree 100% with what you have laid out now that is has been explained in more detail. Thanks again.

No problem!

use this  global.fetch = require('node-fetch')

npm install --save isomorphic-fetch es6-promise
const fetch = require('isomorphic-fetch')


Spelling corrections and fixed stack compose formatting in example

Not a big change, but contributing nonetheless.

thanks!


Suggestion Description
The doc for rocprofv3 gives a clear overview of the features. However, notably, it appears that "filtering" is not/no longer a feature. By filtering, I mean restricting the profiling e.g. to a kernel with a specific name, to a region identified with roctx markers, to a region identified with start/stop markers, ... I just wanted to ask the question whether support for such filtering is not planned for rocprofv3 or whether it is planned to be added at a later stage?
Operating System
No response
GPU
No response
ROCm Component
No response

Hi @maartenarnst, if you use the new rocprofiler-sdk-roctx, there are new ROCTx functions: roctxProfilerPause and roctxProfilerResume.
Sample
#include <rocprofiler-sdk-roctx/roctx.h>

__global__ void
transpose(const int* in, int* out, int M, int N);

int main()
{
    auto tid = roctx_thread_id_t{};
    // get the thread id recognized by rocprofiler-sdk from roctx
    roctxGetThreadId(&tid);

    for(size_t i = 0; i < 100; ++i)
    {
        transpose<<<256, 64>>>(...);
        if(i == 0)
        {
            // first kernel will be profiled, all subsequent kernel launchs and/or API calls will not be collected
            // NOTE: there is no need for any device/stream "sync" here
            roctxProfilerPause(tid);
        }
    }
    hipDeviceSynchronize();

    return 0;
}

You are welcome to test out this feature. Anything command-line based will probably be supported eventually but we have rewritten the rocprofiler library from scratch so rocprofv3 is a secondary focus while this foundational work is still under development (i.e. it's hard to build a full-featured tool when the library that the tool is built on top of is still being written/designed).

Hi @maartenarnst,
Going to close this ticket, please see above for the response to your question. Please feel free to create another ticket if you have any future concerns, thanks!


Linux build: X11 and GL libs lowercase?

Hi there,
Linking with libX11 and libGL on Linux is usually done with -lX11 -lGL. However, in build.zig lowercase versions of
the library names are used, leading to the flags -lx11 -lgx - which doesn't work (on my system, NixOS).
When I changed the two to "GL" and "X11" respectively, the Linux build succeeded.
Am I the only one with this problem?
// ...

// OpenGL
pub fn glLibrary(exe: *std.build.LibExeObjStep) *std.build.LibExeObjStep {
    // ...
    if (target.isLinux()) {
        gl.linkSystemLibrary("gl");   // channge this to "GL"
    }

// ... and

// GLFW
pub fn glfwLibrary(exe: *std.build.LibExeObjStep) *std.build.LibExeObjStep {
    // ...
    if (target.isLinux()) {
    // ...
        glfw.linkSystemLibrary("x11");    // change this to "X11"
// ...

Strangely enough this compiles on ubuntu(the only linux I plan to support) last I tested it, if you can find a more specific platform to use inside of the linux branch that fits NixOS I'll gladly add support for it.


Wrong IF condition in finder-test.sh script which fails the test cases.

As this is assignment number 1 so the default text is "assignment1" in conf/assignment.txt In "finder-test.sh" line 37, it checks if it is not assignment 1 only then it creates directory for writing test files which is wrong behavior. If there is no directory there is this error "cannot create /tmp/aeld-data/itshaider091.txt: Directory nonexistent"
assignment=`cat ../conf/assignment.txt

if [ $assignment != 'assignment1' ]
then
	mkdir -p "$WRITEDIR"

Please look into this matter.
Regards

I got confused between instructions of Assignment 1 and Assignment 2.
writer.sh script in Assignment 1 is supposed to create directories if they do not exist.
Closing this issue.


Value of creator is not matching public key value used when create product

Create product using https://api-external.oftrust.net/polku/translator/v1/public.key
Try fetch the product and check the response, specifically signature block

Result
Signature block has property creator with value: https://api-external.oftrust.net/translator/v1/public.key

Wanted
Value for creator  to be the one used when create product: https://api-external.oftrust.net/polku/translator/v1/public.key
@hoanvancs , @jc487497 Fyi

At least on test env, still visible; I left comment on internal task as well.


Create Player Bio “hannah-aka-raginbabewriting”

Automatically generated by Netlify CMS

👷 Deploy Preview for 4shame processing.

Name
Link

🔨 Latest commit
e038698a13a93fd60da5db72d57ddfd8923515f1

🔍 Latest deploy log
https://app.netlify.com/sites/4shame/deploys/64109dd0384b9b0007db27a7


BizTalkSample.msi fails: "file cannot be found in cabinet file"

When compiling the BizTalk Sample out of the box and installing, it fails with the error message displayed in the attachment. Has anyone seen this before? Can it be that my system is corrupted?

When applying the BizTalk Deployment Framework to a custom solution, I get tjhe exact same error message. After playing around, it seems that it only appears when there are multiple files in one of the redist directories.

In short, having the Contents.wxi file contain the following, fails (with a similar message as the the attached error message):

while the following succeeds:

Might a solution be to wrap the files within a Component element (in the .wxi) ? (and subsequently adjust the ComponentRefs within the Feature element)?
Attachments
ErrorMsg.JPG
This work item was migrated from CodePlex
CodePlex work item ID: '1440'
Vote count: '1'

[BVeldhoen@3/18/2008]
Addtional info:

Tested with v3.1.

[BVeldhoen@3/18/2008]
The error message always contains the Id of the 2nd file in the directory (in the above case, that would be "_800CA61FF06C40F2A20E5965095BBBB5").

[UnknownUser@6/23/2008]

[UnknownUser@6/23/2008]

[UnknownUser@5/16/2013]

Issue closed by tfabraham with comment
In the latest release, 3.1e, the MSI generation has been significantly changed from 3.1.  Please give 3.1e a try and file a new issue if you are still experiencing problems.  Thanks for the report!


Release v0.43.2

0.43.2
Internal Changes

Enforce Tag on PRs (#969).
Generate SDK for apierr changes (#970).
Add Release tag and Workflow Fix (#972).

Note: The failing test is about the first commit having [Release] tag in it. This was added in previous commit after this PR is created. As we already have the changelog ready. Going ahead with release.

Note: Nightly tests for azure prod is running, rest passed. There is a chance that 1 test fails due to user limit but this was passed for previous release (after cleanup) and there have only been internal changes since. Due to time taking process of nightly and cleanup, we should go ahead with this release to unblock TF release.


qBraid copyright footer

Add actions that verifies that each notebook has the following copyright footer in the raw .ipynb file data:
  {
   "cell_type": "markdown",
   "id": "7edaff03-26c3-4370-9f91-8b028b625732",
   "metadata": {},
   "source": [
    "
\n",
    "Copyright Notice: \n",
    "    All rights reserved © [2024] qBraid. This notebook is part of the qBraid-SDK.\n",
    "The qBraid-SDK is free software released under the GNU General Public License v3\n",
    "or later. You can redistribute and/or modify it under the terms of the GPL v3.\n",
    "See the LICENSE file in the project root or <https://www.gnu.org/licenses/gpl-3.0.html>. THERE IS NO WARRANTY for the qBraid-SDK, as per Section 15 of the GPL v3.\n",
    "
"
   ]
  },

Possibly could be a magic command through qBraid-CLI?


Floating Button Behaviour

The scroll to top button currently appears at a fixed scroll off-set.
I would be very interested in a behaviour similar to the SliverAppBar with floating: true,
where the button would only appear if the user is scrolling up.
(I also hope I am not too annoying with all the requests)

Hmm, how do you think that should be implemented? Would a gesture detector detecting a scroll up be enough?

(I also hope I am not too annoying with all the requests)

No please, any feature requests to improve the library are welcome!

Would a gesture detector detecting a scroll up be enough?

Probably? I tried looking at how the slivers do it in the source code, but its convoluted, so I didnt figure it out.

@clragon can you check out #8 if that is the implementation you are looking for?

oh yeah this is brilliant.
I was thinking it might even be nice to have a small off-set that the user has to scroll up before it shows up,
(which could be configured, like the promptScrollOffset)
but that might complicate the implementation alot.

oh yeah this is brilliant.
I was thinking it might even be nice to have a small off-set that the user has to scroll up before it shows up, (which could be configured, like the promptScrollOffset) but that might complicate the implementation alot.

yeah, it will be hard to account for all the edge cases. I will release this implementation for now and update it later if I can think of a consistent way to implement that

maybe something like tracking the point at which the user first started scrolling up (when the scroll notification gets triggered) and whenever the user scrolls we compare it to the offset.
when a down-scrolling notification occurs, we simply set the point of first scrolling up to null again.

@clragon Added in the PR, is that what you required?
Also I am having trouble with the parameter names being clear with their purpose so if you think they should be renamed to something else please let me know

this works wonderfully!
I dont think I can come up with any better names.
Though I think the doc string for scrollOffsetUntilVisible is incorrect?
If alwaysVisibleAtOffset is true, what offset should the user scroll in the opposite direction (ex, upwards scroll on a non-reversed vertical ScrollView) before the prompt becomes visible.

doesnt this only trigger when alwaysVisibleAtOffset is false?

Right, I'll fix that

it also seems that the button will not show up in a NestedScrollView, if alwaysVisibleAtOffset is false.

it also seems that the button will not show up in a NestedScrollView, if alwaysVisibleAtOffset is false, and a scrollcontroller is passed to both the NestedScrollView and the ScrollWrapper.
I assume thats because of how the NestedScrollView works.

It's working fine for me, did you add NestedScrollView.sliverOverlapAbsorberHandleFor(context); to handle the overlap between the header and body, in a builder function inside the body? It's possible that it is showing up but is hidden behind the header due to the overlap

Ah, wait.
The issue here is you are not supposed to pass a scroll controller in that case @clragon
That is how it works with ScrollViews inside the body of NestedScrollView, they are supposed to use the PrimaryScrollController

ah, I see. Yeah, I kind of suspected that.

If you pass a scroll controller to a CustomScrollView without using the ScrollWrapper you will face a similar issue, where the CustomScrollView  will start scrolling free from the NestedScrollView

I will add a warning in the readme for this

The new version is up on pub.dev

very nice 👌


Can not run any code

Hi, I am trying to run the code on my computer. I have encountered with several problems. I followed the instruction in README.But, I tried environment python files in the environment directory, they all report the following error message.

File "build/bdist.linux-x86_64/egg/pycolab/human_ui.py", line 333, in _display
AttributeError: 'numpy.ndarray' object has no attribute 'board'

My python version is

Python 2.7.15rc1

Numpy version is

numpy==1.15.0

I believe the README is out of date, can you update it, or we dont know how to run this code.

Hi, I ran it yesterday and everything is fine. maybe you can create a clean virtual environment to rerun it again?

I found the root cause of this issue. This repo relies on a specific version of pycolab

Submodule path 'pycolab': checked out 'b389d1e7ef949863561047d358a1661c298d382f'

The latest version of pycolab will cause this problem...


Self host Models weights using Torrent

Description
We need to self-host the weights using Torrent on a Hetzener machine. The steps are the following:

Run the transmission daemon using docker-compose
Download the weights from HF
Create a .torrent file for each folder containing the weights.
Seed the torrents using the folder used for dumping the weights.

We want to seed the following models:

[ ] premai-io/CodeLlama-34b-Instruct-hf
[ ] petals-team/StableBeluga2
[ ] tiiuae/falcon-180B-chat

Missing
Most of the logic and the scripts are in the repo. The entire flow must be tested and fixed accordingly.

surely we should have WebSeeds^torf-webseed too?
In pseudocode:
wget https://example.com/model.hf
torrent create -o model.torrent model.hf
torrent modify --add-url https://example.com/model.hf model.torrent  # proposed
torrent serve model.torrent

Sure, good for me. Let me know when you need access to the machine :)

hi need access :")

For having a separate webseed url, we should be using a new instance which will just serve the files over http. Are we okay with using another machine for this?
we cannot directly serve the files from hf link (using git lfs) e.g -https://huggingface.co/premai-io/CodeLlama-34b-Instruct-hf as a webseed url. And if using the same server for seeding torrent + hosting webseed url, it'll cause much higher load on the machine.
Ideally for webseed url we should have a mirror link (e.g https:mirror.premai.io/models/CodeLlama-34b-Instruct-hf) which will point to this new instance hosting models.

I think we can start with serving webseed url from the same machine and later move if required.


Compile classes with u flag

When running
install -v moduleName
I see
Compilation started on 5/13/2024 12:23:34 with qualifiers "d-lck"
but I'm seeing issues with the class Ens.Utils.Tasks.Purge being compiled when I deliver rclib-ens and this is causing the entire module from not being installed successfully as ENSLIB is marked as ReadOnly
If I do
##class(%SYSTEM.OBJ).IsUpToDate("Ens.Utils.Tasks.Purge")
it reports 0.
All of this being said I would like to see ZPM call the class compiler with the u(skip up to date) flag, to skip any up to date classes.
Consider I have a module with 100 classes on version 1.0.1
and then I make a change to one of the 100 classes and do not change the version.
This will redeliver all 100 classes and compile all 100 classes but in practice we only need to compile one class.

@SCanzano I view this as an upstream issue in that ##class(%SYSTEM.OBJ).IsUpToDate("Ens.Utils.Tasks.Purge") definitely should report 1 (and IPM can't do anything about that). This could be worth pursuing via InterSystems Support.
As a workaround, two options:

Use the Flags attribute on the resource in question to add the -u flag - e.g.:
<Resource Name="WhateverPackage.PKG" Flags="ck-u" />
Use $System.OBJ.SetFlags/SetQualifiers to skip up-to-date by default (https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=RCOS_vsystem_flags_qualifiers#RCOS_vsystem_flags_qualifiers_defaults)

Disclaimer: I haven't used the Flags attribute for ~7 years, but I think it should work!

@isc-tleavitt I dont disagree with you and this may not have solved my issue but the real question is when running install moduleName should it force the recompile of classes which have not changed. Using the u flag would allow it to skip the up to date classes and produce a much faster install time for modules that have a large number of classes and the latest version of the module has only changed a few of the classes in the module,

That's a fair question. @isc-kiyer @isc-bzhang do you have any thoughts on this? I think changing the default flags (or making the default compilation flags an IPM setting like default registry, analytics, etc.) in this way would be reasonable.

@isc-tleavitt Purely from the use case scenario described, skipping up-to-date classes sounds reasonable... I'm a bit concerned with whether it would break any usage for non-compile lifecycle or something else...

Added documentation here:
https://github.com/intersystems/ipm/wiki/03.-IPM-Manifest-(Module.xml)#resource


AbstractValidator ValidateAsync Overrides Not Firing

All of the normal "RuleFor" rules are working perfectly.
ValidateAsync does not fire at all.
Am I missing something?

Hi there, after taking a closer look to the code, i found that the FluentValidationHanler called the IValidator,Validate in bothe of its Validation methods (Validate and ValidateAsync), i fixed it and i will provide a new Version.
it would be helpfull if you provide me a sample so that i can see if this solves your Problem. :)

The scenario/use case that I am dealing with currently is a registration page that requires both a unique username and a unique email address.  I need to hit a database, preferably asynchronously, to validate that these two are both unique (UserName and Email is a EF Core Alternate Key).
I could use FluentValidation's "MustAsync" extensions, but I figured it would be cleaner to use one ValidateAsync override so as not to have two different "MustAsync" invocations for username and email respectively.

i'll close this issue, if your problem is still not solved please feel free to reopen it.


Code Dev: Plugable Storage

We want to be able to have different storage for different environments. Because of that, we need a common input/output with each storage solution so Punchcard won't need to know which storage solution is being used.
Feature: Plugable file storage
  As a core developer
  I want file storage options with common, asynchronous inputs and outputs
  So that I can have multiple storage options with the same interface.

  Scenario: Input
    Given that I will have a file or files which need to be stored
     When Punchcard sends the file or files to be stored
     Then it should include details on the file(s)
      And the details should include each file's name
      And the details should include each file's type
      And the details should include each file's location

  Scenario: Output with error
    Given that I gave the storage plugin a file which will cause errors
      And that those errors will happen when the storage plugin attempts to receive the file
     When the storage plugin receives an error when trying to store a file
     Then it should return an error object
      And the object should include a human-readable error string

  Scenario: Output with success
    Given that I gave the storage plugin a file which causes no errors
      And because it causes no errors, it is stored by the storage option that storage plugin called
     When storage plugin responds on successful storage of a file
     Then it should return a success object
      And that object should include a file path
      And that file path should be relative to the storage plugin's route.

  Scenario: Punchcard use when success
    Given that a user has submited a piece of content
      And that the content has no validation errors for any attributes
      And that said content included a file to be saved
      And that Punchcard has sent the file to the storage plugin
     When the storage plugin is successful in storing the file
     Then Punchcard receives a success response from the storage plugin
      And said response should include the relative file path for the file
      And Punchcard should save the piece of content to the database
      And said content should include the relative path to this file.

  Scenario: Punchcard use when failure
    Given that a user has submited a piece of content
      And that the content has no validation errors for any attributes
      And that said content included a file to be saved
      And that Punchcard has sent the file to the storage plugin
     When the storage plugin encounters an error when attempting to store the file
     Then Punchcard receives an error from the storage plugin
      And it should treat this error as a validation error
      And it should not save the data from the form
      And it should return the user to the data entry form
      And the data entry form should display the error from the plugin
      And it should display the error next to the file upload input
      And the error should look the same as other validation errors.

storage plugin

[ ] Input
[ ] Error
[ ] Success
[ ] Punchcard good
[ ] Punchcard bad

Need to add a file storage label as part of this as well


Enhancement Request: lxc list --format=csv --columns=46 convert newlines to whitespace

Currently --format=csv for ipv4 + ipv6 addresses are returned with embedded newline characters embedded in records.
This means some variable number of lines per container, which makes parsing data fragile, because multiple lines must be gathered together to represent one container.
Be great if --format=csv converted any newlines in any columns to whitespace, to simplify parsing.
Thanks for considering this enhancement request.

Space separation would break the current formatting as the interface name is shown after a space following the IP address.
I just checked our output and our CSV is valid multi-line. That is, any value that's multi-line gets quoted. This matches the CSV spec and should be interpreted properly by all valid CSV parsers.
As changing this would effectively break existing users and our output is spec-compliant, I don't intend to change it.

Thanks for the info.


Using Invoke-SharpCradle and point it to load Rubeus.exe into memory

On the Rubeus piece, I did find a way to use the Option 14 to load rubeus.exe into PowerShell using the Invoke-SharpCradle module in WinPwn. (Thanks to you again!!)
If I use Invoke-SharpCradle -Url https://raw.githubxxxx -Argument1 asktgt /user:Bob /password:user@123   ---> works perfectly well.
but, from WinPwn when I use the same functionality,  why do I need to pass 3 arguments separately? When I prompted for Argument1 I typed: asktgt /user:Bob /password:user@123 and it failed to process! Is it not possible to pass the entire command as string and pass it to Rubeus as Argument1 in WinPwn just like Invoke-SharpCradle!
Please comment!

Please help. Thanks in advance.

The function only accepts two arguments, not more. So what you want to do with it is not possible.

But I can still update the main menu with a Rubeus custom command option in the next days.

Here it is
https://github.com/S3cur3Th1sSh1t/WinPwn/commit/de0000ca7ebbaee5e34e11ef6bb7a6722f2da7f1

Thank you so much Fabian! ;-)


Replace wasm-pack with bare wasm-bindgen

Not the most urgent item, but would be good to keep our build steps as uncomplicated as possible, and remove dependencies that aren't maintained.
Currently we use wasm-pack to bundle prql-js. IIUC we're using it because

we previously wanted to create a simple npm package, which wasm-pack does well
then we decided to also create bundler & web targets
so we made our own npm package which contained all three
...but Instead of using wasm-bindgen alone, we kept wasm-pack and added package.json scripts to move the files it output (link above)

For context, wasm-pack is a wrapper of wasm-bindgen and isn't really maintained, whereas wasm-bindgen remains well-supported.
As discussed in https://rustwasm.github.io/docs/wasm-bindgen/reference/deployment.html, I think it should be possible to remove this middle layer and use wasm-bindgen alone; likely using a similar set of steps to what we do now in package.json scripts.
This would be a good contribution for someone who's somewhat familiar with JS, and would like an early PR before diving into the PRQL compiler.

There's now a library that will do build a wasm package as part of the build:
Quoting from https://github.com/PRQL/prql/issues/2158

https://crates.io/crates/substrate-wasm-builder
It requires nightly, which we won't ever require, but also possibly it might be moving to not require nightly? https://github.com/paritytech/substrate/pull/13580
We're 2-3 months behind on the toolchain, so assuming this works, we could use this in a few months to replace wasm-pack. That would simplify the build a lot as well as solving this perf issue.

So I'll mark this as postponed, but leave it open, and we can implement this when it's available. It'll make the builds faster, much much faster when there are no changes, and reduce our use of unsupported crates.

Update:

substrate-wasm-builder is cool but not that practical for us — it doesn't generate the JS file. It compiles a .wasm artifact by creating a whole new crate at build-time, building it, and then copying the .wasm artifact back [^1]
https://github.com/rustminded/xtask-wasm looks good as a replacement but doesn't seem to handle generating the package.json etc, which wasm-pack does
So — stepping back — except from the general overhead of having wasm-pack around, the main pain comes from running wasm-opt on each run — it has no caching, and so is run on every run.

So I think for the moment, we can have a build option that runs with --dev, which skips wasm-opt, which we can run locally. And then we can return to this if the ecosystem's tooling improves.
[^1]: Given that it doesn't create JS files, I'm not sure why it does this, rather than just compiling the main project with wasm — possibly there are parts of the project that want to use a default target but which want to use a .wasm binary.


No reader function for tag

Hi ! I'm trying to add alias :quickdoc in my deps.edn which contains a tagged literal, #env for clojure cli cuz I'm using this https://github.com/liquidz/build.edn/blob/a4a8f70d2df7591fd0eb7c455d7310f60600b8ac/doc/deploy.adoc#environmental-variables
However, it occurs an error No reader function for tag env. It'd be helpful to accept any literal tag in deps.edn or wanna expect an workaround.
If you give me an idea to work out, I want to contribute it as well.
Thank you for the quickdoc too!

Please provide the full deps.edn and a full invocation, i.e. a reproducible state.

I think I know what the problem is. bb.edn is parsed by bb as EDN without support for tags.
A workaround is to move that to deps.edn and then use this in bb.edn:
{:deps {local/deps {:local/root "."}}}

Made a bb issue here: https://github.com/babashka/babashka/issues/1364

O wait, you're not using bb for this maybe? Can you provide a full repro with your complete project, deps.edn + code + command line invocation?

This project doesn't parse deps.edn so it might just be a tooling issue unrelated to quickdoc.

This is a repo I tried to make a quickdoc.
{:paths   ["src" "resources" "classes"]
 :deps    {camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}
           com.github.seancorfield/honeysql    {:mvn/version "2.2.891"}
           com.rpl/specter                     {:mvn/version "1.1.4"}
           com.taoensso/nippy                  {:mvn/version "3.1.1"}
           com.taoensso/timbre                 {:mvn/version "5.2.1"}
           com.walmartlabs/lacinia             {:mvn/version "1.1"}
           failjure/failjure                   {:mvn/version "2.2.0"}
           io.sentry/sentry-clj                {:mvn/version "5.7.180"}
           medley/medley                       {:mvn/version "1.4.0"}
           org.clojure/clojure                 {:mvn/version "1.11.1"}
           org.clojure/data.json               {:mvn/version "2.4.0"}
           org.clojure/tools.logging           {:mvn/version "1.2.4"}
           org.clojure/core.match              {:mvn/version "1.0.0"}
           superlifter/superlifter             {:git/url "https://github.com/green-labs/superlifter.git"
                                                :sha     "e0df5b36b496c485c75f38052a71b18f02772cc0"}
           metosin/malli                       {:mvn/version "0.8.4"}
           com.github.seancorfield/next.jdbc   {:mvn/version "1.2.780"}
           aero/aero                           {:mvn/version "1.1.6"}}

 :aliases {:test     {:extra-paths ["test"]
                      :extra-deps  {io.github.cognitect-labs/test-runner {:git/tag "v0.5.0"
                                                                          :git/sha "b3fd0d2"}}
                      :exec-fn     cognitect.test-runner.api/test
                      :exec-args   {:excludes [:integration]}}

           :build    {:deps              {com.github.liquidz/build.edn {:git/tag "0.3.90"
                                                                        :git/sha "e3a3e31"}}
                      :ns-default        build-edn.main
                      :deploy-repository {:username #env YOUR_USERNAME
                                          :password #env YOUR_PASSWORD}}
           :quickdoc {:deps      {org.babashka/cli            {:mvn/version "0.2.11"}
                                  io.github.borkdude/quickdoc {:deps/root "jvm"
                                                               :git/sha   "c5320cbe311b651a60b47f4d00d7e8ab63291b6e"}}
                      :main-opts ["-m" "babashka.cli.exec" "quickdoc.api" "quickdoc"]
                      :exec-args {:github/repo "https://github.com/green-labs/gosura"
                                  :git/branch  "master"}}}}

Above deps.edn is a full itself and a below is what I got,
❯ clj -M:quickdoc

Execution error at babashka.cli.exec/-main (exec.clj:39).
No reader function for tag env

Full report at:
/var/folders/s6/l1p_l9z50_g45bc3tfp3lrdr0000gn/T/clojure-6539955112641972439.edn

This project doesn't parse deps.edn so it might just be a tooling issue unrelated to quickdoc.

It's true. I've read a whole code to find an issue and couldn't find a code parsing deps.edn.

Ah, this is a bug in babashka CLI. I will fix.

@borkdude Thank you! please let me know if PR is open :)

Can you try with the just upgraded CLI:
           :quickdoc {:deps      {org.babashka/cli            {:mvn/version "0.4.36"}
                                  io.github.borkdude/quickdoc {:deps/root "jvm"
                                                               :git/sha   "c5320cbe311b651a60b47f4d00d7e8ab63291b6e"}}
                      :main-opts ["-m" "babashka.cli.exec" "quickdoc.api" "quickdoc"]
                      :exec-args {:github/repo "https://github.com/green-labs/gosura"
                                  :git/branch  "master"}}

@borkdude it works! Could I know changes for it?

Just pushed the change here: https://github.com/babashka/cli

@borkdude Thanks!


[Cognitive Services] Create a package for common tasks.

Create a new package CognitiveServices.Common, which doesn't contain any API spec.
Background
Cognitive Services need to provide a package for common tasks. These common tasks involves some common data structure, which I think it should be auto generated so that we don't need to maintain them in all platforms.
AutoRest will generate a client class, but it won't be included when configuration the package (aka csproj.)
Feel free to give comments.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-node

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

Automation for azure-sdk-for-ruby

@marstr It looks like not the same scenario with SQL team.
This package will be referenced from many CognitiveServices SDKs. The package will contains some helper classes/functions for cognitive services.
For example:
There will be a CognitiveServicesEndPoint class. CognitiveServicesEndPoint(AzureRegion.WestUS, EndpointBasePath.TextAnalyticsV2)
There will be a CognitiveServicesCredential class which will magically choose between different authentication methods.
So for TextAnalytics SDK, developers can do this after installed this common package.
TextAnalyticsClient(new CognitiveServicesEndPoint(AzureRegion.WestUS, EndpointBasePath.TextAnalyticsV2), new CognitiveServicesCredential(), handlers: handler);
For both, we will have some enums and string constants.
Why not directly create projects for .net/python....
We do not have to use azure-rest-api-specs to keep track of enums and string constants. However, maintain those enums and constants for all platforms might be painful.
Why not refer those enums in API SDKs.
Because we dont want to update all API SDK for when we update the enums or common codes.
I do understand that keeping them in azure-rest-api-specs doesn't seems to be a perfect design. Please let me know if you have other suggestions.

Closed due to these common files might bring many potential issues.


Share button for plyr

Hello
Can design and add social share button for your player?
The sharing button can have several different modes:

share link (url) of page video in
share link (url) of page video in, with picture of page and few description
share embedable video code

Every one that you run is great
Thank you

I’m not sure this is something that is best built into the player. Another candidate for the ability to add custom buttons perhaps.

On 18 Nov 2018, at 8:29 pm, ahmadshc<EMAIL_ADDRESS>wrote:
Hello
Can design and add social share button for your player?
The sharing button can have several different modes:
share link (url) of page video in
share link (url) of page video in, with picture of page and few description
share embedable video code
Whichever one you implement is great
Thank you
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I’m not sure this is something that is best built into the player. Another candidate for the ability to add custom buttons perhaps.
…
On 18 Nov 2018, at 8:29 pm, ahmadshc @.***> wrote: Hello Can design and add social share button for your player? The sharing button can have several different modes: share link (url) of page video in share link (url) of page video in, with picture of page and few description share embedable video code Whichever one you implement is great Thank you — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

Thank you for reply.

This should be added as plugin (see #1242).

I'd say there wouldn't be a requirement for this. The sharing should be done on the parent page rather than built into the player itself. Remember we want to keep the player as small as possible in terms of file size. The ability to add custom buttons (with a callback) is what's required for this.


Define setup tooling for web-api-support checks (CanIUse)

Open Questions/To-dos

Why?
Check if we can e.g. setup eslint (or a similar tool) to check/warn for Web API support / browser compatibility in our code.
So that we are notified when we try to use a Web API that is not supported by X percent of browsers.
Also look into the necessity of polyfills etc for supporting older browsers in the company
Acceptance criteria

[ ] Pipeline should check browser support of the web APIs we use
[ ] Define a list of relevant browser
[ ] If there are issues that get out of scope, create tickets
[ ] Update the Docs to reflect which browsers + versions are supported (ideally it is connected to a browserlists file)

Definition of Done

[ ] follow-up tickets were created if necessary
[ ] updated version + documentation is deployed

Approval

[ ] approved by dev

Implementation details

Info: ask A.S. from the department "Workplace Platform Design" about which relevant browsers & versions we have to support

Proposed browserlist: https://browsersl.ist/#q=>+0.5%25%2C+last+2+versions%2C+Firefox+ESR%2C+not+dead

with npx browserslist we can get a list of supported browsers -> based on that we can render a table of all supported browsers in the Docs

Desktop browser requirements: Edge, Safari (last 2 Versions), Firefox ESR (Source: Workplace Platform Design)


Not compatible with collider -> Component change in Nez

https://github.com/prime31/Nez/commit/ea8cd09c7c527caaa1ac2c6d74d43d5bfacf7a0c breaks some samples. Creating this issue to track updating the samples to be compatible with the change. I'm working on a pull request.

The Samples repo hasn't yet been updated to the latest Nez version with the Collider changes. The update will probably go live in a few days once everything is deemed stable on the mainline since it was a pretty major change.

OK, so I should wait with any work on a potential pull request?

Yeah. No need to do a thing. Everything will get the update real soon to the latest version of Nez.

All right :) Thanks for your hard work. Feel free to close this if/when suitable.


Where are the results cached locally?

$XDG_DATA_HOME/mods (e.g. ~/.local/share/mods)

also adding a --dirs to print the dirs in use, #155


Do tf.Example protos contain the same information as the Scenario protos for the Motion dataset?

Hi,
I have two codes to process the waymo_open_dataset_motion_v_1_1_0 independently. And now I need to combine them.
But I found that they have different scenario_id. For example, for 'uncompressed_scenario_training_training.tfrecord-00000-of-01000' and 'uncompressed_tf_example_training_training_tfexample.tfrecord-00000-of-01000', I found there is no same scenario_id between these two files. Does it mean that they have different scenarios?
Thanks in advance.

Hi @wangqf1997,
I'm pretty sure the scenario IDs should match between the two datasets in general (except maybe O(10) tf.Examples that failed extraction for some reason).
I haven't checked this, but I suspect the problem to be the data shards containing examples in a different order, i.e. shard0 for tf.examples might contain different IDs than shard0 of scenarios. Could you try to check over the whole dataset?
Maybe @scott-ettinger can confirm too.

Hi,
The two versions of the datasets have exactly the same set of scenario IDs, however they are sharded differently, i.e. the file uncompressed_scenario_training_training.tfrecord-00000-of-01000 will not contain the same subset of scenario IDs as the file uncompressed_tf_example_training_training_tfexample.tfrecord-00000-of-01000.  All of the scenario IDs in the scenario file will be present in one of the tf_example shard files, but they do not contain the same ordering.
Please let me know if you have further questions about this.

Hi,
Thanks for your timely reply. I don't have any other questions.
Best regards,
Qingfan
---- Replied Message ----
| From | @.> |
| Date | 8/3/2023 05:18 |
| To | @.> |
| Cc | Qingfan @.> ,
@.> |
| Subject | Re: [waymo-research/waymo-open-dataset] Do tf.Example protos contain the same information as the Scenario protos for the Motion dataset? (Issue #705) |
Hi,
The two versions of the datasets have exactly the same set of scenario IDs, however they are sharded differently, i.e. the file uncompressed_scenario_training_training.tfrecord-00000-of-01000 will not contain the same subset of scenario IDs as the file uncompressed_tf_example_training_training_tfexample.tfrecord-00000-of-01000. All of the scenario IDs in the scenario file will be present in one of the tf_example shard files, but they do not contain the same ordering.
Please let me know if you have further questions about this.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hi,
what's the difference between training and training20s?


Add FileVersion indices, management command [OSF-8616]

Purpose
Speed up NodeFilesList.get and osfstorage_get_lineage
Changes

Add indices
Add management command to purge RunScope nodes that get out of hand

Side effects
None expected
Deployment Notes
Two VACUUM ANALYZE's should be ran after running Django migrations:
VACUUM ANALYZE osf_basefilenode_versions;
VACUUM ANALYZE osf_fileversion;

To clean up @brianjgeiger 's offending node, run
python manage.py purge_test_node --node='x9n8j' --i-am-really-sure-about-this

Ticket
[OSF-8616]

This is related to (and migrations will conflict with) https://github.com/CenterForOpenScience/osf.io/pull/7680  -- both are adding the descending index for FileVersions on -date_created
Should I remove the migration from my PR, or add this other index in mine and this one gets removed? Up for either!

this is a hotfix, so assuming I should remove the migration from the other PR, yes?

That'd also be my assumption, but probably worth confirming with @sloria

Makes sense to me too! Removed migration in #7680!


Help put the blue circles to this day

Hello everyone, I need to put the blue circles when I insert an event in a day ... what code / method should I use?
In addition I would like to take away everything that puts as an example of default ...
Thank you!

supplementarySetup() populates the circles.
supplementaryView(ShouldDisplayOnDayView) determines whether a circle displays. You should see in there the randomizing function that does the example defaulting.

I found the function that puts the blue circles in the case because it is this:
if (Int (arc4random_uniform (3)) == 1)
But having a table under the calendar I would like that if you have an entry in the table then it must be put on blue circle otherwise not ... how can I?

You could put your logic in supplementaryView and that way it would return true if it's supposed to display the circle and return false if it's not supposed to. Since you're working with a dayView object, you have access to the date from there and can check that against your table, assuming your table is a table of dates.

Meanwhile, thanks for the answers ...
In function: supplementaryView (shouldDisplayOnDayView dayview: DayView) I put a "IF" that compares when "dayView.date.commonDescription = date" (the date is my String) ..
If you do so the blue circles are seen properly ... BUT why if I print "dayView.date.commonDescription" he writes dates of the current month, the previous month and the following month but not update if I change the month?
By doing so if I go back to two months I delete circles facts and the app sends me crash because he tells me that he dayView.date.commonDescription as "nil" value?
I hope I explained ... Thanks again!

I think you're probably running into this case:
https://github.com/Mozharovsky/CVCalendar/issues/272
Implementing my solution suggested there should help.

Ok now not going the crash.
But the problem of the circles disappear remained! :(
So ... if the function "supplementaryView (shouldDisplayOnDayView dayview: DayView)" I do "print (dayView.date.commonDescription)" in the console I find the dates ranging from "March 28, 2016 al June 5, 2016" so if I go over in type months to February, when returning the current month (May) the circle that was on yesterday for example, has disappeared! although within it there are events ...

func supplementaryView(shouldDisplayOnDayView dayView: DayView) -> Bool {
let dateformatter = NSDateFormatter()
dateformatter.dateFormat = "yyyy/MM/dd"
let date2 = dateformatter.stringFromDate(dayView.date.convertedDate()!)
let date_Array = ["2016/02/10","2016/02/11","2016/02/12"]
print(dataOdierna) <-- print: 2016/03/28 .... 2016/06/05
for(var i=0;i<date_Array.count;i++)
{
if(date2==date_Array[i])
{
return true
}
}
return false
}

Stops everything !!!
Excuse my fault ... I was wrong to pass the value to compare ... if I was going back or forward to two months the date was lost ...
I am a BIPPPPP :)
I always close my questions anyway then ...
I had downloaded the version of Branch: master, and if I put the iPhone in landscape calendar skips constrait ... there is a way to solve?
Thank you :)


Add koa-compress

I'm not sure that compression is something that we want to do on application level, it's more of a middleware concern that could be done by a reverse proxy / api gateway

Agreed. Closing this issue.


Enable alicloud

What this PR does / why we need it:
Alicloud support added.
Release note:
Alicloud support added.

Uh, a PR since May... sorry, but why haven't you pinged me? I am subscribed to hundreds of repos and cannot watch everything/my Outlook rules only react if I am mentioned directly. I will take a look when I find the time, but next time, please ping me. :-)

I did only a superficial check. Looks good so far. Thank you very much.
I will take a deeper look, once you have set up the test clusters and can run the module against them.
The __init__.py contains significant amounts of code. Please make sure that no IP was violated and all code is yours and yours alone.

Yes, I wrote the entire init.py. Since Alibaba did not provide a suitable function packaging module, I wrote an AliyunBot class to wrap the Alibaba APIs that are used.

Some post-cleanups done:

Added release note
Commits not squashed, squashed now
Editor removed some non-compliant (PEP8) spaces/new lines, but there are a ton more
Replaced unused variables with _ and dropped unused imports, too
The deepcopy wasn't working @kevin-lacoo: TypeError: cannot pickle 'module' object; I removed the deepcopy code, please reintroduce, if you believe it is needed/should work, but it didn't for me
I noticed a warning that should probably be debug message, no @kevin-lacoo?[WARNING] no exists alc for mode total in vpc vpc-gw8qv9kg4hi79ojv0rvye, unblock exited!!

Thank you @kevin-lacoo! I tested the main functionality and everything worked for me...
...with the notes above.
Please check the deepcopy especially. I dropped it from your sources while testing, but it's still in there in git.

Hi @vlerenc , my python version is 3.9 and I found the deepcopy call for Ali request object will fail in version 3.6. I don't know if the test env can use python 3.9 or later?

I have 3.11.
Why is that needed? I removed the deepcopy and invoked the method twice (it's probably only relevant during retry). The second call worked just as fine. Are you sure, deepcopy is required?


Nathan solution

comfort: 3
completeness: 3

:+1:  Please see inline comments. Nice job pushing yourself to put everything in an object.  In the future please include any questions or snippets where you want specific feedback.


Display Background Text overflows into all free & previously-used tiles

It looks like there's no limit on the amount of space that Display Background Text can fill. So if you have a large continuous string of white tiles, the text-writing routine goes hogwild and fills as much as it can.
Requesting a "length" field or width/height fields, and an option to clear tiles before writing. 🙏

This doesn't happen as severely when background tiles are present, but it does still affect tiles previously filled with text.

Steps to reproduce:
GB Studio 3.0.3
Create a new scene, and use the default "placeholder" background.
Create an actor, and add the following events to On Init:

An update on this after asking around on Discord:

The larger overfill issue was happening because I was using the default "placeholder" background in a Logo scene as well. Changing the Logo background fixes this, as does removing the Logo scene entirely (in my case, I don't actually need the scene). Chalk this part up to user error.

The text-drawing routine does still overfill into tiles that have been previously written into. Here's an example where the text only starts spilling into the next line after I've printed a larger string into it.

Funnily enough, the overfill respects newlines. I begin drawing at X:4, Y:4, and then insert a newline after the word "of". The text drops to X:4, Y:5, and so the text-draw routine skips tiles X:0 to X:3 when overfill occurs.


Fix read calls

Contributor Self-Check:

[x] My commits and messages are solid
[x] I have included tests that check success and failure
[x] I have updated the README as appropriate

Which GitHub Issues does this PR address?
https://github.com/privateprep/intacct-ruby/issues/7
Really an adjustment of PRs #8 #9
What does this PR do?
Allows for varying cases in the keys of calls. This is needed to support more than create and update calls!
How do I manually test this?
N/A CI is enough!
Additional Comments
This is a breaking change.

@bezoar17 I cherry-picked your commits!
Wanted to be sure it passed CI and needed to resolve a merge conflict with master after another PR went through
Will release a new gem version shortly!


Messaging of VCI publication

We wish to widely broadcast that we published a paper on the VCI

[x] Add publication link and comment to top of interface home page
[x] Add publication to ClinGen publications page

Done


Incorrect message model

I noticed that when forwarding a message, the bot cannot get 'forwand_origin' and 'forwand_from_chat', although they are in the telegram message object

i use latest grammY version

This works as expected. You have to check the chat type first. The type cannot be inferred from the target chat identifier so you must narrow it down.

This works as expected. You have to check the chat type first. The type cannot be inferred from the target chat identifier so you must narrow it down.

oh, sorry, my bad!
if (ctx.message?.forward_origin?.type != 'channel') return


[WIP] CARRY: Override host ethernet MTU

To support Azure's increased MTU, despite DHCP still supplying the same default 1500 MTU to virtual machines.
AROMTUConfig.MTU value must be set by ARO-RP prior to resolving the install graph.

NOTE:
This is a reimplementation of https://github.com/Azure/ARO-RP/pull/1672, with most of the logic moved to the installer.
Marked WIP while testing with ARO-RP, but the code can be reviewed.

Force pushed to add unit tests to the carry patch.


gRPC complains about Kick failed billions of times!!!!!!

Please answer these questions before submitting your issue.
Should this be an issue in the gRPC issue tracker?
Yes
What version of gRPC and what language are you using?
C++, gRPC 1.4.2
What operating system (Linux, Windows, …) and version?
Linux 3.10
What runtime / compiler are you using (e.g. python version or version of gcc)
GCC 6.2
What did you do?
An async client sent unary requests to a group of async servers at the rate of 20w/s.
What did you expect to see?
Without exceptions.
What did you see instead?
After a while of running, gRPC at the client side printed billions of  Kick failed messages.
E0925 17:21:42.759336694  106490 ev_epollsig_linux.c:1218]   pollset_kick: {"created":"@1506331302.759324417","description":"Kick Failure","file":"src/core/lib/iomgr/ev_epollsig_linux.c","file_line":275,"referenced_errors":[{"created":"@1506331302.759323926","description":"OS Error","errno":11,"file":"src/core/lib/iomgr/ev_epollsig_linux.c","file_line":1131,"os_error":"Resource temporarily unavailable","syscall":"pthread_kill"}]}

me too...

Is your program doing something with unix signals ? (more specifically with signal 40 ? i.e  SIGRTMIN+6  ) like masking signals or registering a custom signal handler ?

Can you do ulimit -a and paste the outputhere? (I am more interested in seeing the pending signals limit)

@sreecha Thanks for the reply.
Here are all signals my program explicitly uses: SIGINT, SIGTERM, SIGUSR1, SIGUSR2.
Here are ulimit -as outputs:
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1030587
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 655360
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 655360
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

This issue seems more critical now.
Because the rt signal is queued tooo many, epoll_pwait always return immediately, which leads to high CPU usage. And, thanks to the error log, mutex (possible) from inside the vsprintf family is highly contended. All these things make the performance of our application degrades terribly.

Here is my questions that you guys maybe enlight me:

When pthread_kill or pollset_worker_kick is invoked, in what kind of context.
I saw the is_kicked atomic operation, but how could gRPC can guarantee that the queued signals are consumed up in time, at the same pace with pthread_kill. AFAK, invoking the signal handler is completely up to the kernel.

Hmm..I am not exactly sure what is going on your application.. it seems like the for some reason, the  signal SIGMINRT+6 is not getting delivered and getting queued up. In the past the only times I saw such an error was either (a) if the application was explicitly blocking the signal or (b) if it registered a custom signal handler and then re-raising that signal (which is left unhandled)
Now to answer your questions:

pollset_worker_kick (which calls pthread_kill) is called when there is an event on the completion queue - and the thread that is interested in that event is potentially blocked in inside epoll_pwait.   So we use this signal (pthread_kill) to get that thread out of epoll_pwait

is_kicked is used to prevent calling another pthread_kill on a thread that already received a signal.
The signal here is used as a mechanism to interrupt a thread and bring it out of epoll_pwait - so when exactly the signal handler is invoked isn't super critical (also I do not think the kernel is delaying delivering this signals so much that it results the errors you are seeing. Moreover, your ulimit -i i.e the pending signals queue size is over a million which is pretty big).

Solution:
We will be releasing version 1.7 very soon (in the next couple of weeks or so) and that uses a completely different polling engine by default that does not use signals. Once you upgrade to 1.7 you will not be seeing this issue
Short-term mitigation:
To mitigate this in the short term, you can use a different polling engine by setting the environment variable GRPC_POLL_STRATEGY to poll before launching your application ?
This will use a different polling engine that does not use signals. Please note that this does not scale well for a large number of file descriptors (i.e thousands of concurrent connections)

I added some thread local state counters in ev_epollsig_linux.c to trace serveral actions. Here are the counters of one specific CQ(thread) out of 32 ones:

pollset_worker_kick called 1445968 times.
"finally_kick" from pollset_kick called 1445968 times.
pthread_kill called 600000 times.
pthread_kill failed with EAGAIN 556575 times.
epoll_pwait called 101149 times.
epoll_pwait failed with EINTR 8610 times.
signal handler called 8610 times.

As shown, the signal handler is invoked only if (but not every time) epoll_pwait called, which is reasonable due to the sigmask. Although kicks or pthread_kills are for to other CQ threads from this specific thread, numbers of every thread are overall the same. The peculiar thing is that pthread_kill is invoked way more times than signal handler.
@sreecha

Thanks for the info @dutor
You are right that the pthread_kill counts are from the current thread to the other threads but if the counts are this high for every thread, then this is very peculiar..
Is there a lot of thread-churn in your application ? - i.e are the set of 32 threads polling the cqs changing constantly ? - if so, that might explain this behavior.

@sreecha

I wrote a demo application, and it does not use any RT signals.
is_kicked is for every poolset_worker, but not an thread.
Although timing of the invoke of signal handler is not critical for the main logics, but the chances that the handler get invoked are tiny.

@sreecha I don't quite follow what thread-churn and changing mean. I have 32 threads each of which runs its own CQ. In each thread, they handle requests from remote, and request to remote at the same time, all in a async way.

FYR.
Every thread runs this:
    auto run = [this] (ServerCompletionQueue *cq, GrpcClient *client) {
        new CallData(&service_, cq, client);
        void *tag = NULL;
        bool ok;
        while (true) {
            cq->Next(&tag, &ok);
            if (!ok) {
                break;
            }
            (*reinterpret_cast<Tag*>(tag))();
        }
    };

Tag is a CallData, whose operator() is:
CallData::operator()() {
     if (status_ == PROCESS) {
        new CallData(service_, cq_, client_);
        status_ = FINISH;
        if (req_.hop() == 1) {
            resp_.set_msg(req_.msg());
            responder_.Finish(resp_, Status::OK, this);
            return;
        }
        auto cb = [this] (EchoResponse *resp) {
            resp_.set_msg(req_.msg());
            responder_.Finish(resp_, Status::OK, this);
        };
        req_.set_hop(req_.hop() - 1);
        client_->Echo(req_, std::move(cb));
    } else if (status_ == FINISH) {
        delete this;
    } else {
        assert(false);
    }
}

The demo is an async echo server. Every echo message has a hop field. If the hop reaches 0, the server send response directly, or it would redirect the message to another server with hop decrease by `.

Do you have two servers ? or is the server sending to itself? - Would you be able to share the whole demo program so that I can try to repro the issue here?
By the way, we are releasing grpc version 1.7 this week and that will fix the issue you are seeing. If you want to try this out, the changes are already at HEAD.

Yes, I have one async client, and two async server talking to each other. Later, I could extract the main codes of my demo and paste them here.
I will wait for your release of 1.7.

This is the proto definition.
syntax = "proto3";
package echo.proto;

option cc_generic_services = false;
option optimize_for = SPEED;
import "google/protobuf/empty.proto";

message EchoRequest
{
    string msg = 1;
    uint32 hop = 2;
}

message EchoResponse
{
    string msg = 1;
}

service EchoService
{
    rpc Echo(EchoRequest) returns (EchoResponse);
}

This is Server.
#include <thread>
#include <mutex>
#include <atomic>
#include <grpc++/grpc++.h>
#include "proto/echo_api.pb.h"
#include "proto/echo_api.grpc.pb.h"
namespace echo {

/**
 * GrpcClient, GrpcAsyncServer, etc.
 */
class Tag {
public:
    virtual ~Tag() {}
    virtual void operator()() = 0;
};

class ClosureBase : public Tag {
public:
    ClosureBase() = default;
    virtual ~ClosureBase() = default;
    grpc::ClientContext& context() {
        return context_;
    }

    grpc::Status& status() {
        return status_;
    }

protected:
    grpc::ClientContext         context_;
    grpc::Status                status_;
};
template <typename Resp>
class Closure : public ClosureBase {
public:
    explicit Closure(std::function<void(Resp*)> &&);
    virtual ~Closure() = default;
    using AsyncPtr = std::unique_ptr<grpc::ClientAsyncResponseReader<Resp>>;
    void finish(AsyncPtr ptr);
    void operator()() override;
private:
    AsyncPtr                    asyncPtr_;
    Resp                        resp_;
    std::function<void(Resp*)>  callback_;
};

class GrpcClient {
public:
    using CompletionQueue = grpc::CompletionQueue;
    using EchoService = echo::proto::EchoService;
    using Stub = EchoService::Stub;
    using EchoRequest = echo::proto::EchoRequest;
    using EchoResponse = echo::proto::EchoResponse;

    GrpcClient(std::shared_ptr<CompletionQueue> cq, std::unique_ptr<Stub> stub);
    ~GrpcClient();

    void Echo(const EchoRequest &request, std::function<void(EchoResponse*)> callback);

private:
    std::shared_ptr<CompletionQueue>            cq_;
    std::unique_ptr<Stub>                       stub_;
};

template <typename Resp>
Closure<Resp>::Closure(std::function<void(Resp*)> &&callback)
    : callback_(std::move(callback)) {
}

template <typename Resp>
void Closure<Resp>::finish(AsyncPtr ptr) {
    //asyncPtr_ = std::move(ptr);
    //asyncPtr_->Finish(&resp_, &status_, reinterpret_cast<void*>(this));
    ptr->Finish(&resp_, &status_, reinterpret_cast<void*>(this));
}

template <typename Resp>
void Closure<Resp>::operator()() {
    if (status_.ok()) {
        callback_(&resp_);
    } else {
        callback_(nullptr);
    }
    delete this;
}

GrpcClient::GrpcClient(std::shared_ptr<CompletionQueue> cq, std::unique_ptr<Stub> stub) {
    cq_ = std::move(cq);
    stub_ = std::move(stub);
}

GrpcClient::~GrpcClient() {
}

void GrpcClient::Echo(const EchoRequest &req, std::function<void(EchoResponse*)> callback) {
    auto closure = new Closure<EchoResponse>(std::move(callback));

    closure->finish(stub_->AsyncEcho(&closure->context(), req, cq_.get()));
}

class GrpcAsyncServer {
public:
    GrpcAsyncServer(std::string local, std::string remote, size_t nr_cq);
    void stop();
    void wait();
private:
    using Status = grpc::Status;
    using ServerContext = grpc::ServerContext;
    using Server = grpc::Server;
    using ServerBuilder = grpc::ServerBuilder;
    using ServerCompletionQueue = grpc::ServerCompletionQueue;
    using EchoRequest = echo::proto::EchoRequest;
    using EchoResponse = echo::proto::EchoResponse;

    class CallData : public Tag {
    public:
        using Status = grpc::Status;
        using ServerContext = grpc::ServerContext;
        using ServerCompletionQueue = grpc::ServerCompletionQueue;
        using EchoRequest = echo::proto::EchoRequest;
        using EchoResponse = echo::proto::EchoResponse;

        CallData(proto::EchoService::AsyncService *service,
                ServerCompletionQueue *cq, GrpcClient *client);
        void operator()() override;

    private:
        enum CallStatus {
            PROCESS,
            FINISH,
        };
        CallStatus                                  status_;
        proto::EchoService::AsyncService           *service_;
        ServerCompletionQueue                      *cq_;
        GrpcClient                                 *client_;
        ServerContext                               ctx_;
        EchoRequest                                 req_;
        EchoResponse                                resp_;
        grpc::ServerAsyncResponseWriter<EchoResponse>     responder_;
    };

private:
    std::atomic<bool>                                       stopped_{false};
    ServerBuilder                                           builder_;
    std::vector<std::unique_ptr<std::thread>>               threads_;
    std::vector<std::shared_ptr<ServerCompletionQueue>>     cqs_;
    proto::EchoService::AsyncService                        service_;
    std::unique_ptr<Server>                                 server_;
    std::vector<std::unique_ptr<GrpcClient>>                clients_;
};

GrpcServer::GrpcServer() {
}

GrpcServer::~GrpcServer() {
}

grpc::Status GrpcServer::Echo(ServerContext *ctx, const proto::EchoRequest *req,
                             proto::EchoResponse *result) {
    result->set_msg(req->msg());
    return Status::OK;
}

GrpcAsyncServer::GrpcAsyncServer(std::string local, std::string remote, size_t nr_cq) {
    builder_.AddListeningPort(local, grpc::InsecureServerCredentials());
    builder_.RegisterService(&service_);
    auto run = [this] (ServerCompletionQueue *cq, GrpcClient *client) {
        new CallData(&service_, cq, client);
        void *tag = NULL;
        bool ok;
        while (true) {
            cq->Next(&tag, &ok);
            if (!ok) {
                break;
            }
            (*reinterpret_cast<Tag*>(tag))();
        }
    };
    for (auto i = 0; i < nr_cq; i++) {
        std::shared_ptr<ServerCompletionQueue> cq = builder_.AddCompletionQueue();
        auto channel = std::shared_ptr<grpc::Channel>(
                grpc::CreateChannel(remote, grpc::InsecureChannelCredentials()));
        auto stub = echo::proto::EchoService::NewStub(std::move(channel));
        clients_.emplace_back(std::make_unique<GrpcClient>(cq, std::move(stub)));
        cqs_.emplace_back(cq);
    }
    server_ = builder_.BuildAndStart();

    for (auto i = 0; i < cqs_.size(); i++) {
        threads_.emplace_back(std::make_unique<std::thread>(run, cqs_[i].get(),
                                                            clients_[i].get()));
    }
}

void GrpcAsyncServer::stop() {
    if (!stopped_) {
        stopped_ = true;
        server_->Shutdown();
        for (auto &cq : cqs_) {
            cq->Shutdown();
        }
    }
}

void GrpcAsyncServer::wait() {
    for (auto &th : threads_) {
        th->join();
    }
}

GrpcAsyncServer::CallData::CallData(proto::EchoService::AsyncService *service,
        ServerCompletionQueue *cq, GrpcClient *client)
    : service_(service),
      cq_(cq),
      client_(client),
      responder_(&ctx_) {
    service_->RequestEcho(&ctx_, &req_, &responder_, cq_, cq_, this);
    status_ = PROCESS;
}

void GrpcAsyncServer::CallData::operator()() {
     if (status_ == PROCESS) {
        new CallData(service_, cq_, client_);
        status_ = FINISH;
        if (req_.hop() == 1) {
            resp_.set_msg(req_.msg());
            responder_.Finish(resp_, Status::OK, this);
            return;
        }
        auto cb = [this] (EchoResponse *resp) {
            resp_.set_msg(req_.msg());
            responder_.Finish(resp_, Status::OK, this);
        };
        req_.set_hop(req_.hop() - 1);
        client_->Echo(req_, std::move(cb));
    } else if (status_ == FINISH) {
        delete this;
    } else {
        assert(false);
    }
}

}

The client logics is like this:
RateLimiter limiter;
GrpcAsyncClient clients[];
auto run = [] () {    // many threads run this
    while (!stopped) {
        limiter.take();    // rate limiter controls rate of request sending
        auto cb = [] (EchoResponse *resp) {
            limiter.release();
            // handle responses
        };
        // prepare requests
        auto client = pickClientRandomly();
        client->Echo(req, cb);
    }
};

This problem may be solved by call service_->RequestEcho() many times before while loop to eliminate pthread_kill
    auto run = [this] (ServerCompletionQueue *cq, GrpcClient *client) {
        // Add for loop here
        for (int i = 0; i < 1024; i++) {
            new CallData(&service_, cq, client);  // call service_->RequestEcho()
        }
        void *tag = NULL;
        bool ok;
        while (true) {
            cq->Next(&tag, &ok);
            if (!ok) {
                break;
            }
            (*reinterpret_cast<Tag*>(tag))();
        }
    };

@wylazy Thanks for reply, but what's the rationale?

@dutor Because your server has many CompletionQueues which are waiting at epoll_pwait(). When clients request so many RPC calls at the same time. One CompletionQueue will be awake first and read the requests from clients, but it can process only one request. So it put remainded requests to other CompletionQueues, and then call pthread_kill() many times to notify.
When clients send so many requests concurently, and epoll_pwait() returns, a notified worker thread can process many requests, but consume only one signal (other signals are queued). If your clients send requests constantly, pending signals will accumulate.
But if you call service_->RequestEcho() many times when init, this requests are queued at the CompletionQueue. When this CompletionQueue receive many RPC call from a client. It can process the RPC call itself. There is no need to call pthread_kill().

@dutor , you should not be seeing this from 1.7 release onwards since 'epollsig' is no longer the default polling engine.
I am closing this issue.