Mercury uses HG_Register_data internally

HG_Register_data is used in HG_Register for attaching serialization info, meaning users can't use it. I tried using it earlier today and the code promptly blew up :), specifically in HG_Get_input, which calls the serialization functions. Seems easy enough to put the hg_proc_info struct being registered into the hg_rpc_info struct directly, at least.

Took a look at the implementation to see if it was an easy fix and there's some trickiness involved. Currently the split of the mercury and mercury_core sources make it difficult to pass the necessary information between the two without introducing public functions to do so, which should be avoided as users shouldn't be calling them. Particularly, hg_rpc_info is a private struct in mercury_core while hg_proc_info is private in mercury. Simply moving HG_Register to mercury_core (and getting rid of HG_Register_rpc) is insufficient as the proc info still needs to be gotten at in multiple places in mercury.c. I don't want to move code around too much, so I'll leave the decision of how to get around this to you guys.

Hmm ok, could you tell me what is your use case for HG_Register_data?

Sure thing! I'm currently mocking up a mercury+key-val store and am experimenting with eliminating global state and minimizing boilerplate. My current approach is to use c++ classes to implement the RPCs and a single glue function to forward the RPC to the class, using a combination of class instance pointer and pointer-to-member-function to do so. Without the ability to attach to the mercury instance and get it back through hg_handle_t's on RPCs, this isn't possible.

Yeah I see well ok we need to add the possibility to add extra data then :)

Is this one still something you need?

If possible, yes :). It would simplify a lot of recent code I've written.

Ok my current fix for now is to add another pair of set/get functions. Possibly what should be done is prevent usage of both mercury.h and mercury_core.h at the same time.

So actually what I think I'm going to do is have HG_xxx routine only in mercury.h which will then call routines from mercury_core.h, probably named HG_Core_xxx, which should only be used if you don't want to use the hg_proc mechanism

There should not be any API changes from the user perspective, only there won't need to include mercury_core.h anymore

Give it a try, you can now use HG_Register_data() directly

Hooray! I'll give it a try later on.


CustomWebElement class must implement WebElement Interface.

This would allow to easily cast from WebElement reference. Consider a scenario where a call to findElement() returns WebElement but we would like to have
ButtonElement b = (ButtonElement)wd.findElement(...);

This would simplify quite a lot of similar scenarios.

Another advantage this provides is in context of reusability of methods like getTagName() as described in Issue#2


Update google-cloud-nio to 0.126.17

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

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.cloud", artifactId = "google-cloud-nio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.google.cloud", artifactId = "google-cloud-nio" }
}]

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

Superseded by #903.


AttributeError: 'NoneType'

The plugin started acting up since right now and my discord went ham because people couldn't get their roles in.
Here is the log after reboot, after trying to assign and remove a role through the menu, If you have any questions, you could reply to my DM on Discord ;)

2020-10-30T15:34:25.917535+00:00 app[worker.1]:     await member.remove_roles(role)
2020-10-30T15:34:25.917535+00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'remove_roles'
2020-10-30T15:34:26.368785+00:00 app[worker.1]: 10/30/20 15:34:26 main[1142] - ERROR: Ignoring exception in on_raw_reaction_add.
2020-10-30T15:34:26.369520+00:00 app[worker.1]: 10/30/20 15:34:26 main[1143] - ERROR: Unexpected exception:
2020-10-30T15:34:26.369521+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-30T15:34:26.369524+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/client.py", line 312, in _run_event
2020-10-30T15:34:26.369525+00:00 app[worker.1]:     await coro(*args, **kwargs)
2020-10-30T15:34:26.369526+00:00 app[worker.1]:   File "/app/plugins/DAzVise/modmail-plugins/reaction-role-master/reaction-role.py", line 285, in on_raw_reaction_add
2020-10-30T15:34:26.369526+00:00 app[worker.1]:     if member.bot:
2020-10-30T15:34:26.369527+00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'bot'
2020-10-30T15:35:35.463872+00:00 app[worker.1]: 10/30/20 15:35:35 main[1142] - ERROR: Ignoring exception in on_raw_reaction_add.
2020-10-30T15:35:35.464320+00:00 app[worker.1]: 10/30/20 15:35:35 main[1143] - ERROR: Unexpected exception:
2020-10-30T15:35:35.464321+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-30T15:35:35.464322+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/client.py", line 312, in _run_event
2020-10-30T15:35:35.464322+00:00 app[worker.1]:     await coro(*args, **kwargs)
2020-10-30T15:35:35.464323+00:00 app[worker.1]:   File "/app/plugins/DAzVise/modmail-plugins/reaction-role-master/reaction-role.py", line 285, in on_raw_reaction_add
2020-10-30T15:35:35.464324+00:00 app[worker.1]:     if member.bot:
2020-10-30T15:35:35.464324+00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'bot'
2020-10-30T15:35:41.445558+00:00 app[worker.1]: 10/30/20 15:35:41 main[1142] - ERROR: Ignoring exception in on_raw_reaction_remove.
2020-10-30T15:35:41.445987+00:00 app[worker.1]: 10/30/20 15:35:41 main[1143] - ERROR: Unexpected exception:
2020-10-30T15:35:41.445988+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-30T15:35:41.445989+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/client.py", line 312, in _run_event
2020-10-30T15:35:41.445990+00:00 app[worker.1]:     await coro(*args, **kwargs)
2020-10-30T15:35:41.445990+00:00 app[worker.1]:   File "/app/plugins/DAzVise/modmail-plugins/reaction-role-master/reaction-role.py", line 335, in on_raw_reaction_remove
2020-10-30T15:35:41.445991+00:00 app[worker.1]:     await member.remove_roles(role)
2020-10-30T15:35:41.445991+00:00 app[worker.1]: AttributeError: 'NoneType' object has no attribute 'remove_roles'

For future reference, if anyone else ever has this issue. DAZ pointed me towards the server intents.


No module named 'luna.config'

Hi,
I get a 'ModuleNotFoundError' when running the most basic command line Intel-based MacBook Pro / MacOS X 12.4
Traceback (most recent call last):
File "luna/run.py", line 13, in
from luna.config.params import ProjectParams
ModuleNotFoundError: No module named 'luna.config'
Thanks

Hi @pducrot, sorry about this.
Have you installed LUNA through PIP? Maybe you need to update your LUNA version. Could you check out if the version installed on your PC is 0.12.1? If it's not, it should work as soon as you update the LUNA package.
bests

Actuelly, i installés using instructions from issue #36. I was missing proper setup of PYTHONPATH in the luna-env environnement. All fine, thanks.


Also Jump search in Javascript

@Abishethvarman Could you please assign me this issue?

Go ahead. @manisacharya

@Abishethvarman I have added a document in javascript. Please review it. Thank you.


fix: use cli args correctly

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.95%. Comparing base (38cc0ad) to head (c6c77f5).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #32   +/-   ##
=======================================
  Coverage   80.95%   80.95%
=======================================
  Files           2        2
  Lines         567      567
  Branches       80       80
=======================================
  Hits          459      459
  Misses        107      107
  Partials        1        1

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


Warnings for local cluster on upgrade

On upgrade the local cluster will cause warnings in the logs due to not having a driver in the config.

This is seen when upgrading from 2.1.7 to master prior to this fix. The logs seen are Failed to find driver and schema on upgrade. The error comes from the local cluster, no other clusters are required to see the logs.

Tested on upgrade from v2.1.7 to master on a HA setup and single node setup. The logs
Failed to find driver and schema on upgrade were not present in the logs.


feat: Display workerName and processInfoId in the console status bar

Get optional workerName and processInfoId along with the login options response from the DHE host, display in the console status bar.

Resolved conflict in ConsolePanel.test.tsx and rebased.


Replay as is and Playback items in Talk to should be 40px (now 50 px)

EPAM AI DIAL chat version
0.6.0
What happened?

Replay as is and Playback items in Talk to should be 40px (now 50 px)
Confidential information

[X] I confirm that do not share any confidential information

Verified on staging successfully


Mute query errors on routine builds

There's a slew of failed queries on builds, as noted here:
23/2016 15:30:09:ERROR:Query failed:
SELECT count(*) FROM wordsheap
23/2016 15:30:09:ERROR:Query failed:
SELECT count(*) FROM titleLookup
23/2016 15:30:09:ERROR:Query failed:
SELECT count(*) FROM authorLookup
23/2016 15:30:09:ERROR:Query failed:
SELECT count(*) FROM fedNumberLookup
23/2016 15:30:09:ERROR:Query failed:
SELECT count(*) FROM paragraphNumberLookup

The code is happily recovering from there--they happen because certain tables aren't yet built, which it then proceeds to build. So nothing should be written to the screen.

Fixed https://github.com/Bookworm-project/BookwormDB/commit/c836b9e17dd0cba4b1d8cdab52ff98c73f6ef418


Fix dashboard log parsing in host

Fixes regression from https://github.com/dotnet/aspire/pull/5357
There is code in the Aspire host that listens to dashboard logs. It expects JSON logs from the dashboard, which are parsed and possibly written to the host. That allows for dashboard errors to be visible in the host console.
The previous PR changes Aspire to add a timestamp to executable log content, including the dashboard. Parsing timestamp prefixed messages as JSON fails.
Unfortunatly there were no unit tests here and there is no indication when running the host that there are errors when parsing the logs.
Customer Impact
Customer won't see errors from the dashboard in the Aspire host console.
Testing
Unit tests and manual testing.
Before (no error):

After (error in console):

Risk
Low. Product change is to trim a timestamp (if present) from content before deserializing it.
Regression?
Yes
Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[x] Yes
[ ] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

/backport to release/8.2

Do we need to handle 8.2 apphost with 8.1 dashboard?

Do we need to handle 8.2 apphost with 8.1 dashboard?

Not really, unless someone is really going out of their way to force a downgrade of the dashboard, but beginning with 8.2, the dashboard version will always match the reference to the apphost package. ☺

The timestamps in dashboard logs are added by DCP. And DCP adding the timestamp is configured by the apphost. And reading the logs is in the apphost.
all the changes are in the apphost so there is no concern about mixing versions of apphost, DCP or dashboard.

/azp run

/azp run


Trying to fix session locking problems on some server side storages

Removed unneccessary initializers
added some locals
fixed some global variable leaks
adjusted session to only start when it is modified (in hopes to fix locking problems)

so I
a) merged (to our fork that has minor customizations) up to commit 3f115c8 (which I think is enough), and
b) reverted the lua-resty-session change (to memcache.lua)
and tested it again (have a netscaler lb fronting two nginx servers supported by two memcache instances); at first glance, everything seems to work - no hanging
as an additional measure, I instrumented the lock and unlock code, and confirmed that the calls now are paired
so looks good ... thx for the timely response - we appreciate it


Language mode picker should give precise language matches higher priority

VSCode Version: 1.7.2
OS Version: Windows 10, 1607ish

Steps to Reproduce:

Press Ctrl+K, M to open the Language Mode picker

2. Type "C" to select the C language  (or "R" to select the R language; or "D" to select the D language [if you have code-d installed])
EXPECTED:
The C language is selected.
ACTUAL:
Some random menu option is selected.  I can't find anything that I could type to get exactly the C language.  I tried "(c)" and "C (c)" and "C99" and "CC" and "C " and "^c".  I eventually had to resort to the arrow keys to wade through the list.
PROPOSAL:
If I type something short like "c" or "go", and there's a language that exactly matches that name, always select the menu option for that specific language.  Only resort to fuzzy/substring matching if there's no language with exactly that name.
(btw, I'm new to VS code, so if there's an obvious pre-existing solution to this, please educate me!  Thanks)

Fixed for January via https://github.com/Microsoft/vscode/commit/8b834d0f890f62ce25684f6b371559b4f4f6a223

I tried out the daily build (Commit 80481edbdf1272a87ca54d4c48a829e0a134dffe), and I'm happy with the new behavior.  It's now easier to select the C language: Ctrl+K, M, C, .

@jtippet thanks for verifying this 👍


swagger dump doesn't include all endpoints

https://github.com/matrix-org/matrix-doc/blob/master/data/api/client-server/third_party_lookup.yaml is left out of the api-docs.json dump.
This seems to be because of the lack of tags. Why?

Yeah what is this about? https://github.com/matrix-org/matrix-doc/blob/11a0c2447ce7d5453e195ed090e8eb4f53645a42/scripts/dump-swagger.py#L101

The tags are used for categorization, so it's a reasonable check. Is the third party API the only one left out?

No there's a few more.
The request token for email/msisdn APIs.
The add3pid API.
The redirect sso API.
That should be it.

Related: #3326

@afranke I think we fixed this with the linked PR?

I don’t know for sure that all untagged endpoints have been tagged. @KitsuneRal said

there don't seem to be many untagged operations remaining. I guess it's fine to merge this PR and then tag them whenever someone feels like doing that.

I reckon we can close this for now, but we should have an issue about dump-swagger.py complaining for untagged operations.

https://github.com/matrix-org/matrix-doc/issues/3687


Switch ringcon compatibility.

Any ideas on how we might be able to get ring con compatibility to work. I am a bit new to this, but I took some time to read through JoyCon.cs and some of info on github (excuse my ignorance if anything I write sounds off).
I ran the demo with my switch joy con and attached the ring con. I hopped that the ring con tension sensor might report it as one of the exiting analog inputs. But that doesn't seem to be the case after checking the unity inspector.
Perhaps the ring con tension data is available on the HIDapi, if so we might be able to process those bytes coming into the report_buff that JoyCon.cc. We may need to request a longer buffer from HIDapi? Or issue some other request to it? If possible, any idea where we might find some details on how to decode that new data off the buffer?
Maybe its not possible to do this without updating the HIDapi as well? Perhaps HIDapi needs an update as well to even pull in this new data?
I do recall my switch issuing a "controller update" when I setup Ring fit. So perhaps something new is going on and HIDapi also needs an update?
Otherwise, perhaps the library you use to get the report_buffer needs to be updated as well.
Is there any homebrew software elsewhere that anyone knows of using the ring con yet?
Thanks for taking a look. Any pointers would be helpful :).

Do you have any progress on this problem. I am also curious about this question.

I forget where it was. But somewhere on GitHub there was an example that
used a ringcon. But it was not for unity
I looked at the unity joycon example. And the code reads and decodes data
off of a buffer. Presumably the ringcon data is just encoded differently. I
didn't spend much time here. But dumping and trying to decipher the bits
may work. Looking at how the non unity example may have insights.
That's how I guess one could proceed and figure it out
On Tue, Aug 25, 2020, 8:05 PM Narcissus2<EMAIL_ADDRESS>wrote:

Do you have any progress on this problem. I am also curious about this
question.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Looking-Glass/JoyconLib/issues/37#issuecomment-680466902,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHDDO3MDFTJCWLO7VBSPY5DSCR3WTANCNFSM4OXUZB5Q
.

If you find that example, you could put it here.
I have tried to read , but I have no idea whether there are any related theories and steps to crack this bit of Bluetooth signals.

Seems that the people that got it working are using the titan two
https://github.com/Minyus/RingFit_MegaMan
https://github.com/SuperLouis64/RingfitAdventure-BotW-Mod


restore Code coverage

due to an upgrade in SonarCloud, we lost the code coverage. We need to find how to reenable it.

seems not due to Sonar upgrade but to the added tests on the Runner main class for  WebSocket and StandardIo.
If i disable them I have coverage reported locally.

coverage is currently reported without tests on the Runner main class for WebSocket and StandardIo


Can't pull thumbnails in list for OneDrive for Business

Why isn't this supported?

Can you elaborate on what REST call you're making that isn't working?

/_api/v2.0/me/drive/root?expand=children(expand=thumbnails)

Yes, that's a known issue right now.
We're working on getting this supported.


Better support fixed timesteps in newest Avian

This primarily does the following things.

Update to breaking Avian changes

Notably, physics layers now require an explicit default instead of implicitly belonging to everything when not specified

Support Avian no longer running in PostUpdate, but in FixedUpdate.

The Tnua plugins for Avian no longer have a Default, as the TnuaControllerPlugin needs to be manually set in PhysicsSchedule as well
Change some scheduling stuff in examples in order to show idiomatic usage

Work with Position and Rotation instead of GlobalTransform to better support interpolation between fixed timesteps

GlobalTransform is in general just the place where the object in question will be rendered, not where it physically is.

Fix just_pressed in demos not working reliably with a fixed timestep

just_pressed in general does not work out of the box for fixed timesteps. LWIM would handle that, but I didn't want to add a new dependency. So, instead the demo now does its own just_pressed caching.

Make demos use PhysicsSchedule by default for avian.

I tested and verified that all examples and demos still work.
Some of these changes like the GlobalTransform stuff would be nice for rapier as well, but I'll leave that for a future follow-up PR.

Good suggestions! Fixed the things that I knew how to fix :)

Looks like the CI ran into an infinite build. Could you rerun it if you happen to have time? :) Also, I'll try to keep this PR up to date so it's ready for Avian 0.2 when it releases.

@janhohenheim I've updated the Avian integration crates to Avian 0.2, and since they've officially changed the default schedule I had do these changes on main - otherwise it'd mess up the demos.
I did not implement any of the other things you did in this PR - just the scheduling.


SD 2068 - add header config to CSV toMediaType

this fixes https://github.com/slamdata/slamdata/issues/2068

Ah ok, I just changed it to match this which was in last comment here:
application/zip,text/csv;columnDelimiter=",";rowDelimiter="\n";quoteChar="";escapeChar="";disposition="attachment;filename*=UTF-8''mytest.zip"

@garyb ah ok, do you mean something like this:
 "columnDelimiter=\"" <> opts.columnDelimiter <> "\""

@garyb ready for review 😄


[Feature request] Markdown Previewer Image Support

I haven't been able to preview images in the markdown editor, so I assume this feature is not yet supported. Hence this feature request. The editor is very cool though.

There are three kinds of images:

Image references from internet (http url)
-> This is already supported.
Image references from local folders
-> This is hard since UWP is very restricted on reading random file/folders and I do not want to complicate it by asking user to select a folder first.
SVG image references from internet
-> I intentionally disabled this because the implementation of SVGImageSource is very poor. I know how to fix it but do not have time to do it now.

Overall, the Markdown feature is added as a good to have feature and only intended for light usage. If you are dealing with markdown text  all day everyday, I would recommend you to choose another markdown editor, just my 2 cents.


Add Terrain instrument

No audio, waiting for consensus
Everything works fine
Also, surely we can get the system to check the sha256 / size and add that to the metadata automatically, right?

This one looks great. Just needs:

Terrain.jpg to be terrain.jpg
audio preview to be added

Then I think it's good to merge!

This one looks great. Just needs:

Terrain.jpg to be terrain.jpg
audio preview to be added

Then I think it's good to merge!

for audio
https://github.com/open-audio-stack/open-audio-stack-registry/issues/44

This one looks great. Just needs:
* `Terrain.jpg` to be `terrain.jpg`

* audio preview to be added

Then I think it's good to merge!

done but please review #44 asap before i contribute more plugins


Logging for kernel shutdown when closing Notebooks

Added logging to detect when a kernel is shutdown & when a notebook is closed.
After adding this logging, things are now magically working.
Lets leave this in here, if this crops up again we'll be able to tell whether our events get fired or not.

Codecov Report

Merging #5320 (8260a56) into main (c35f22b) will increase coverage by 0%.
The diff coverage is 100%.

@@          Coverage Diff          @@
##            main   #5320   +/-   ##
=====================================
  Coverage     73%     73%
=====================================
  Files        401     402    +1
  Lines      26550   26588   +38
  Branches    3877    3877
=====================================
+ Hits       19452   19490   +38
- Misses      5485    5486    +1
+ Partials    1613    1612    -1

Impacted Files
Coverage Δ

src/client/datascience/jupyter/kernels/kernel.ts
81% <100%> (+<1%)
:arrow_up:

.../client/datascience/notebook/kernelWithMetadata.ts
90% <100%> (+<1%)
:arrow_up:

...ent/datascience/notebook/notebookDisposeService.ts
92% <100%> (+1%)
:arrow_up:

src/client/extension.ts
56% <0%> (-1%)
:arrow_down:

...datascience/notebookStorage/nativeEditorStorage.ts
80% <0%> (-1%)
:arrow_down:

src/client/datascience/jupyter/jupyterNotebook.ts
75% <0%> (-1%)
:arrow_down:

...lient/datascience/jupyter/kernels/cellExecution.ts
71% <0%> (-1%)
:arrow_down:

...active-common/intellisense/intellisenseProvider.ts
74% <0%> (-1%)
:arrow_down:

src/client/common/serviceRegistry.ts
100% <0%> (ø)

src/client/datascience/commands/commandRegistry.ts
39% <0%> (ø)

... and 5 more

I mean, I'm happy it works, but doesn't seem like much of a root cause. If logging fixed it then a timing issue of some type?


runFunctionalTests.js is too separate from the yml that uses the groups

Functional test files are split into groups so they can run in parallel. This happens in a javascript file:
https://github.com/microsoft/vscode-jupyter/blob/main/build/ci/scripts/runFunctionalTests.js
The problem is the groups are used in the main.yml file to dole out tests and decide if they use conda or not.
It'd be easier to maintain if this was all done in the yml file. At least the group split up.

Not applicable anymore


Copy .env.defaults to .env if not exists

On Vite startup:
if (!existsSync('.env')) {
  copyFileSync('.env.defaults', '.env');
}

This is to mimic our previous behavior with Webpack and dotenv-webpack
Not sure if this is a good idea.  Open to feedback.  I don't see an obvious way to set default .env values with Vite.

coverage: 94.191%. remained the same when pulling 518fdcece3598e62448a3ee874cbc0324595205c on cody-vite-env-defaults into c18d5249a1db69d84678b7d20c28a7ecf8df9e2e on main.


High memory usage with pool and rethink feeds

I discovered that one of my services has a rather high memory usage which grows over time.
Did a bit of testing and found that when using rethinkdbdash pooling the closing changefeeds to rethinkdb doesn't seem to release the related memory.
For example when using pooling vs no pooling:

Both start of with 1000 rethinkdb feeds which evaluates to ~100mb memory usage.
I trigger some updates for the feed which increases mem usage by another ~100mb.
After that I GC clean up small amounts ~0-20mb. It doesn't seem to clean up any more however long I wait.
After that I close all the cursors. cursor.close() for each one:
POOLING: memory usage stays the same as with feeds running, nothing is released
NO POOL: memory usage drops to ~0-20mb over the baseline.

For no pooling I create a new connection for each feed and after closing the cursor I also close the connections with connection.close().
I tried looking at the amount of connections with r.getPoolMaster().getLength(); and r.getPoolMaster().getAvailableLength();, the latter was showing  -110 after closing all the feeds.
Would it be possible to purge the connections somehow?
Also long-running feeds memory usage will eventually go rather high as no memory seems to be released and every message from rethink seems to increase mem usage. Could this be cleaned up somehow as well?

I have a similar problem, although I haven't tested it as much. I've used Rethinkdbdash 2.3.6, Node.js 6.2.1, it's just a simple Express + Prometheus app that doesn't serve any front-end traffic. The code is quite simple -
    function initChangefeedQuery() {
        log('Starting changefeed query.');
        r.db('foo').table('bar')
            .changes({squash: 0.5})
            .then(function (cursor) {
                return cursor.eachAsync(observeStuff, genericErrorHandler)
            })
            .catch(reconnectStuff);
    }

    function reconnectStuff(err) {
        log('Changefeed query died, reconnecting in 3s', 'WARNING');
        log(err, 'WARNING');
        if (err.stack) log(err.stack, 'DEBUG');
        setTimeout(initChangefeedQuery, 3000);
    }

    function observeStuff(row) {
        if (row.new_val && !row.old_val) {
            metrics.whatever.business_foo.inc();
        } else if (row.new_val && row.old_val) {
            metrics.whatever.business_bar.inc();
        }
    }

    function genericErrorHandler(err) {
        // log stuff
    }

For ~300k individual changes, the memory goes up to ~1.2GB in the course of 24hrs, and goes down only when rethinkdb connection dies. Am I doing something wrong, or is eachAsync just leaking memory somehow?

Can you provide a full script that reproduce this?
What if you set timeoutGb to let's say 10000?

Using timeoutGb seems to make a small difference. Using the same test case with 1k feeds and few changes triggered (this used 200mb) it released ~30mb.
 So now I made an actual test script which has similar results. Memory usage amounts are a bit different, but the proportions are similar.
The code and commands should be self-explanatory.
retest.zip

Hum, I'm still not quite certain that there's a leak in rethinkdbdash. Something is fishy, but I can't put my finger on it. The dump doesn't show anything special. That being said, while playing around, I fixed a bug (released in 2.3.9), so at least there's that :)
var Promise = require('bluebird');
var util = require('util');
var heapdump = require('heapdump')

var initialMemoryUsage = process.memoryUsage();
console.log(util.inspect(initialMemoryUsage));
function printMemoryUsage() {
  var diff = process.memoryUsage();
  var result = {};
  result.diff_rss = diff.rss - initialMemoryUsage.rss ;
  result.diff_heapTotal = diff.heapTotal - initialMemoryUsage.heapTotal;
  result.diff_heapUsed = diff.heapUsed - initialMemoryUsage.heapUsed;
  console.log(util.inspect(result));
}

var NUM_FEEDS = 1000;
var INSERT_TIMERS = 100;
var DELETE_TIMERS = 100;
var UPDATE_TIMERS = 100;
var TIME_END = 60*1000;

function startTest() {
  console.log('-- Start test');
  var r = require('./lib/index.js')({
    max: 1000,
    buffer: 50,
    timeoutGb: 1000*10
  });

  setup(r).then(function() {
    var feeds = [];
    openFeeds(r, feeds);
    var timers = [];
    fireUpdates(r, timers);
    setTimeout(function() {
      tearDown(r, feeds, timers)
    }, TIME_END)
    return null;
  }).catch(function() {
    console.log('Could not setup the test.')
  });
}

function setup(r) {
  console.log('-- Setup test');
  return r.dbCreate('test').run().then(function() {
    console.log('-- db created');
  }).catch(function() {
    console.log('-- db not created');
  }).finally(function() {
    return r.db('test').tableCreate('test').run()
  }).then(function() {
    console.log('-- table created');
  }).catch(function() {
    console.log('-- table not created');
  }).finally(function() {
    return Promise.resolve(true);
  });
}

function openFeeds(r, feeds) {
  console.log('-- Open feeds');
  var count = 0;
  r.db('test').table('test').changes().run().then(function(feed) {
    feeds.push(feed);
    feed.eachAsync(function() {
      count++;
    }).catch(function(e) {
      console.log('Caught error?');
      console.log(e);
    });
  });
}

function fireUpdates(r, timers) {
  console.log('-- Fire updates');
  for(var i=0; i<INSERT_TIMERS; i++) {
    timers.push(setInterval(function() {
      r.db('test').table('test').insert({
        heavy: "a".repeat(100000)
      }).run();
    }, 1000));
  }
  for(var i=0; i<DELETE_TIMERS; i++) {
    timers.push(setInterval(function() {
      r.db('test').table('test').limit(1).delete().run();
    }, 1000));
  }
  for(var i=0; i<UPDATE_TIMERS; i++) {
    timers.push(setInterval(function() {
      r.db('test').table('test').limit(1).update({
        value: Math.random()
      }).run();
    }, 1000));
  }
}

function tearDown(r, feeds, timers) {
  console.log('-- Tear down');
  printMemoryUsage();
  global.gc();
  console.log('-- Forced GC');
  printMemoryUsage();
  for(var i=0; i<timers.length; i++) {
    clearInterval(timers[i]);
  }
  Promise.map(feeds, function(feed) {
    return feed.close().catch(function(e) {
      console.log('Caught error?');
      console.log(e);
    });
  }).then(function() {
    console.log('-- Feed closed');
    feeds = [];
    timers = [];
    printMemoryUsage();
    global.gc();
    console.log('-- Forced GC');
    printMemoryUsage();
    r.getPoolMaster().drain();
  }).then(function() {
    console.log('-- Pool master drained');
    printMemoryUsage();
    global.gc();
    console.log('-- Forced GC');
    printMemoryUsage();
    r = null;
    printMemoryUsage();
    global.gc();
    console.log('-- Forced GC');
    printMemoryUsage();
    heapdump.writeSnapshot('/home/michel/tmp/' + Date.now() + '.heapsnapshot');

  });
}

startTest();

I looked a bit more in the dump, I'm not sure how I read it last time, but yea, there's a leak somewhere... It was added in 2.3.x at some point.

Actually it wasn't really a leak. It's just that we were not deferencing the promises in the double queue.
Fixed in 2.3.10.

Hi,
Thanks for your investigation and fixes. I've deployed my service with rethinkdbdash 2.3.10 to production, but sadly, the memory usage has ballooned up to 480MB of used heap / 600MB RSS for a service that does practically nothing besides listening to 4 changefeeds and incrementing some numbers in Prometheus. There were about 1.2M inserts or changes in one table, and a few tens of thousands in the other 3 tables, in about 5.5 hours since I deployed it. The service is basically using 4 variations of the code mentioned in my comment above, and nothing else. The memory usage is growing proportionately slower if I disable the changefeed on the table with millions of changes (but still grows ~40MB per day, the initial used heap after startup being ~21MB).

I just pushed 2.3.11 with a slight tweak. It doesn't fix any memory leak, but release some information a bit earlier.
As far as I'm concern, there's no leak in rethinkdbdash. I don't see any heap issue with this script:
var Promise = require('bluebird');
var util = require('util');
var heapdump = require('heapdump')

function gc() {
  console.log('-- Forced GC');
  global.gc();
}

var initialMemoryUsage = process.memoryUsage();
console.log(util.inspect(initialMemoryUsage));
function printMemoryUsage() {
  var diff = process.memoryUsage();
  var result = {};
  result.diff_rss = diff.rss - initialMemoryUsage.rss ;
  result.diff_heapTotal = diff.heapTotal - initialMemoryUsage.heapTotal;
  result.diff_heapUsed = diff.heapUsed - initialMemoryUsage.heapUsed;
  console.log(util.inspect(result.diff_heapUsed/1000000)+"Mb");
}

var NUM_FEEDS = 100;
var INSERT_TIMERS = 20;
var DELETE_TIMERS = 20;
var UPDATE_TIMERS = 20;
var TIME_END = parseFloat(process.argv[2])*60*1000;

var countOps = 0;
var countOpsSuccess = 0;
var countOpsErrors = 0;

function startTest() {
  console.log('-- Start test');
  var r = require('./lib/index.js')({
    max: 1000,
    buffer: 50,
    //timeoutGb: 1000*10
  });

  setup(r).then(function() {
    var feeds = [];
    openFeeds(r, feeds);
    var timers = [];
    fireUpdates(r, timers);
    setTimeout(function() {
      tearDown(r, feeds, timers)
    }, TIME_END)
    return null;
  }).catch(function() {
    console.log('Could not setup the test.')
  });
}

function setup(r) {
  console.log('-- Setup test');
  return r.dbCreate('test').run().then(function() {
    console.log('-- db created');
  }).catch(function() {
    console.log('-- db not created');
  }).finally(function() {
    return r.db('test').tableDrop('test').run()
  }).then(function() {
    console.log('-- table dropped');
  }).catch(function() {
    console.log('-- table not dropped');
  }).finally(function() {
    return r.db('test').tableCreate('test').run()
  }).then(function() {
    console.log('-- table created');
  }).catch(function() {
    console.log('-- table not created');
  }).finally(function() {
    return Promise.resolve(true);
  });
}

function openFeeds(r, feeds) {
  console.log('-- Open feeds');
  var count = 0;
  r.db('test').table('test').changes().run().then(function(feed) {
    feeds.push(feed);
    feed.eachAsync(function() {
      count++;
    }).catch(function(e) {
      console.log('Caught error?');
      console.log(e);
    });
  });
}

function fireUpdates(r, timers) {
  console.log('-- Fire updates');
  for(var i=0; i<INSERT_TIMERS; i++) {
    timers.push(setInterval(function() {
      countOps++;
      r.db('test').table('test').insert({
        a: "a".repeat(100000),
        b: "b".repeat(100000),
        c: "c".repeat(100000),
        d: "d".repeat(100000),
        e: "e".repeat(100000),
        f: "f".repeat(100000),
        g: "g".repeat(100000),
        h: "h".repeat(100000),
        i: "i".repeat(100000)
      }).run().then(function() {
        countOpsSuccess++;
      }).catch(function(e) {
        countOpsErrors++;
      });
    }, 1000));
  }
  for(var i=0; i<DELETE_TIMERS; i++) {
    timers.push(setInterval(function() {
      r.db('test').table('test').limit(1).delete().run();
    }, 1000));
  }
  for(var i=0; i<UPDATE_TIMERS; i++) {
    timers.push(setInterval(function() {
      r.db('test').table('test').limit(1).update({
        value: Math.random()
      }).run();
    }, 1000));
  }
}

function tearDown(r, feeds, timers) {
  console.log('-- countOps:', countOps);
  console.log('-- countOpsSuccess:', countOpsSuccess);
  console.log('-- countOpsErrors:', countOpsErrors);
  console.log('-- Tear down');
  printMemoryUsage();
  gc()
  printMemoryUsage();
  for(var i=0; i<timers.length; i++) {
    clearInterval(timers[i]);
  }
  Promise.map(feeds, function(feed) {
    return feed.close().catch(function(e) {
      console.log('Caught error?');
      console.log(e);
    });
  }).then(function() {
    console.log('-- Feed closed');
    feeds = [];
    timers = [];
    printMemoryUsage();
    gc()
    printMemoryUsage();
    return r.getPoolMaster().drain();
  }).then(function() {
    console.log('-- Pool master drained');
    printMemoryUsage();
    gc()
    printMemoryUsage();
    r = null;
    printMemoryUsage();
    console.log('-- countOps:', countOps);
    console.log('-- countOpsSuccess:', countOpsSuccess);
    console.log('-- countOpsErrors:', countOpsErrors);
    gc()
    printMemoryUsage();
    heapdump.writeSnapshot('/home/michel/tmp/' + Date.now() + '.heapsnapshot');
  });
}

startTest();

The problem earlier were actually because of the script itself - I forgot to return the promise created by drain.

If you really think there's a leak in rethinkdbdash, please provide a script that proves it (that can be run without any input, and is using rethinkdbdash only). I'm not able to reproduce any memory leak.

Actually, reverting 2.3.11 because it's not strictly a no-op. But still there's no leak in 2.3.10.

Thanks for the thorough response. Sorry for the delay in responding on my part.
I see that you actually drain the pool. When I use this then all of the memory seemed to be released as expected. Though it seems a bit like a hack to drain the pool.
Should using drain() be something done regularly on a production server then?
And how would one come back from that? Create a new pool that would initialize new connections?

Hum, if you don't drain the pool, then the pool is sitll holding on some connections/past queries, hence the high usage of memory.
The memory the pool is using is however capped by how many connection you have. So the usage just grow as you use more connections. If you use the same number of connections, your memory usage should be relatively constant.

So theoretically the same connections could always be reused, before they time out, and the baggage of past queries could stay there and keep on increasing?

No, a connection doesn't keep track of old queries.
On Tue, Jun 28, 2016, 23:03 veikovx<EMAIL_ADDRESS>wrote:

So theoretically the same connections could always be reused, before they
time out, and the baggage of past queries could stay there and keep on
increasing?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/neumino/rethinkdbdash/issues/263#issuecomment-229264610,
or mute the thread
https://github.com/notifications/unsubscribe/ABZOu_GEeDGjPOV1umrBriGwK4G7EwXiks5qQgrNgaJpZM4I6eAS
.

Hi,
I'm sorry, I've realized I haven't explained myself correctly previously. The memory leaks occurs when the changefeed is open a long time and gets a lot of changes - it just keeps ballooning up with every change. For me, it releases the memory correctly if the connection is closed (I haven't tested closing and reopening the changefeed without closing the connection, but it seems to be the case based on this output)
I've modified the script slightly and made a gist here, and this is the output for 15 minutes -
2016-06-29T12:35:53.195Z - { rss: 21430272, heapTotal: 11530240, heapUsed: 5351752 }
2016-06-29T12:35:53.196Z - -- Start test
Creating a pool connected to localhost:28015
2016-06-29T12:35:53.240Z - -- Setup test
2016-06-29T12:35:53.315Z - -- db not created
2016-06-29T12:35:53.415Z - -- table dropped
2016-06-29T12:35:54.863Z - -- table created
2016-06-29T12:35:54.864Z - 0 tried, 0 done, 0 errors; 5 MiB
2016-06-29T12:35:54.865Z - -- Forced GC
2016-06-29T12:35:54.877Z - 0 tried, 0 done, 0 errors; 2 MiB
2016-06-29T12:35:54.878Z - -- Open feeds
2016-06-29T12:35:54.879Z - -- Fire updates
2016-06-29T12:35:59.882Z - 400 tried, 400 done, 0 errors; 10 MiB
2016-06-29T12:36:04.883Z - 900 tried, 900 done, 0 errors; 7 MiB
2016-06-29T12:36:09.885Z - 1400 tried, 1400 done, 0 errors; 19 MiB
2016-06-29T12:36:14.887Z - 1900 tried, 1900 done, 0 errors; 15 MiB
2016-06-29T12:36:19.889Z - 2400 tried, 2400 done, 0 errors; 13 MiB
2016-06-29T12:36:24.889Z - 2900 tried, 2900 done, 0 errors; 25 MiB
2016-06-29T12:36:29.888Z - 3400 tried, 3400 done, 0 errors; 21 MiB
2016-06-29T12:36:34.889Z - 3900 tried, 3900 done, 0 errors; 18 MiB
2016-06-29T12:36:39.888Z - 4400 tried, 4400 done, 0 errors; 15 MiB
2016-06-29T12:36:44.888Z - 4900 tried, 4900 done, 0 errors; 27 MiB
2016-06-29T12:36:49.889Z - 5400 tried, 5400 done, 0 errors; 23 MiB
2016-06-29T12:36:54.882Z - -- Forced GC
2016-06-29T12:36:54.907Z - 5900 tried, 5900 done, 0 errors; 10 MiB
2016-06-29T12:36:59.910Z - 6400 tried, 6400 done, 0 errors; 24 MiB

// *snip*

2016-06-29T12:49:50.147Z - 83400 tried, 82870 done, 0 errors; 72 MiB
2016-06-29T12:49:55.148Z - 83900 tried, 83327 done, 0 errors; 76 MiB
2016-06-29T12:49:56.353Z - -- Forced GC
2016-06-29T12:50:00.150Z - 84400 tried, 83829 done, 0 errors; 69 MiB
2016-06-29T12:50:05.150Z - 84900 tried, 84429 done, 0 errors; 76 MiB
2016-06-29T12:50:10.149Z - 85400 tried, 85040 done, 0 errors; 81 MiB
2016-06-29T12:50:15.150Z - 85900 tried, 85536 done, 0 errors; 72 MiB
2016-06-29T12:50:20.150Z - 86400 tried, 86086 done, 0 errors; 77 MiB
2016-06-29T12:50:25.150Z - 86900 tried, 86647 done, 0 errors; 80 MiB
2016-06-29T12:50:30.174Z - 87400 tried, 87183 done, 0 errors; 83 MiB
2016-06-29T12:50:35.176Z - 87900 tried, 87745 done, 0 errors; 74 MiB
2016-06-29T12:50:40.177Z - 88400 tried, 88261 done, 0 errors; 75 MiB
2016-06-29T12:50:45.178Z - 88900 tried, 88744 done, 0 errors; 75 MiB
2016-06-29T12:50:50.179Z - 89400 tried, 89201 done, 0 errors; 75 MiB
2016-06-29T12:50:54.882Z - -- countOps: 89800
2016-06-29T12:50:54.882Z - -- countOpsSuccess: 89650
2016-06-29T12:50:54.883Z - -- countOpsErrors: 0
2016-06-29T12:50:54.883Z - -- Tear down
2016-06-29T12:50:54.883Z - 89800 tried, 89650 done, 0 errors; 68 MiB
2016-06-29T12:50:54.884Z - -- Forced GC
2016-06-29T12:50:54.950Z - 89800 tried, 89650 done, 0 errors; 60 MiB
2016-06-29T12:50:54.969Z - -- Feed closed
2016-06-29T12:50:54.977Z - 89800 tried, 89689 done, 0 errors; 60 MiB
2016-06-29T12:50:54.977Z - -- Forced GC
2016-06-29T12:50:54.997Z - 89800 tried, 89689 done, 0 errors; 10 MiB
2016-06-29T12:50:54.998Z - -- Pool master drained
2016-06-29T12:50:54.998Z - 89800 tried, 89689 done, 0 errors; 10 MiB
2016-06-29T12:50:54.998Z - -- Forced GC
2016-06-29T12:50:55.021Z - 89800 tried, 89689 done, 0 errors; 10 MiB

Basically, for every 100k changes, I get ~100MB of leaked memory.

Thanks @analytik for digging a bit more into it. Rethinkdbdash used to call the callstack in each before, but for some reason it's not doing it anymore - I somehow can't remember when I stopped doing that. I just pushed 2.3.13 with a fix.
Script
var Promise = require('bluebird');
var util = require('util');
var heapdump = require('heapdump');

function log(message) {
    console.log(new Date().toISOString() + ' - ' + message);
}

function gc() {
    log('-- Forced GC');
    global.gc();
}
var countOps = 0;
var countOpsSuccess = 0;
var countOpsErrors = 0;
var feedChanges = 0;

var initialMemoryUsage = process.memoryUsage();
log(util.inspect(initialMemoryUsage));
function printMemoryUsage() {
    var diff = process.memoryUsage();
    var result = {};
    result.diff_rss = diff.rss - initialMemoryUsage.rss;
    result.diff_heapTotal = diff.heapTotal - initialMemoryUsage.heapTotal;
    result.diff_heapUsed = diff.heapUsed - initialMemoryUsage.heapUsed;
    log(`${countOps} tried, ${countOpsSuccess} done, ${countOpsErrors} errors, ${feedChanges} feed changes; ${parseInt(result.diff_heapUsed / (1024 * 1024 ))} MiB`);
}

var NUM_DOCS = 1000;
var UPDATE_TIMERS = 1000;
var TIME_END = parseFloat(process.argv[2] || 15) * 60 * 1000;

function startTest() {
    log('-- Start test');
    var r = require('./lib/index.js')({
        max: 1000,
        buffer: 50,
        host: 'localhost',
        port: 28015,
        // timeoutGb: 1000 * 10
    });

    setup(r).then(function () {
        var feeds = [];
        openFeeds(r, feeds);
        var timers = [];
        fireUpdates(r, timers);
        setTimeout(function () {
            tearDown(r, feeds, timers)
        }, TIME_END);
        timers.push(setInterval(function() {
          gc()
          printMemoryUsage()
        }, 5000));
        return null;
    }).catch(function (err) {
        log('Could not setup the test. ' + err);
    });
}

function setup(r) {
    log('-- Setup test');
    return r.dbCreate('test').run().then(function () {
        log('-- db created');
    }).catch(function () {
        log('-- db not created');
    }).finally(function () {
        return r.db('test').tableDrop('test').run()
    }).then(function () {
        log('-- table dropped');
    }).catch(function () {
        log('-- table not dropped');
    }).finally(function () {
        return r.db('test').tableCreate('test').run()
    }).then(function () {
        log('-- table created');
    }).catch(function () {
        log('-- table not created');
    }).finally(function () {
        return Promise.resolve(true);
    });
}

function openFeeds(r, feeds) {
    log('-- Open feeds');
    r.db('test').table('test').changes().run().then(function (feed) {
        feeds.push(feed);
        feed.eachAsync(function () {
            feedChanges++;
        }).catch(function (e) {
            log('Caught error?');
            log(e);
        });
    });
}

function fireUpdates(r, timers) {
    log('-- Fire updates');
    // Insert the first batch
    var promises = [];
    for (var i = 0; i < NUM_DOCS; i++) {
      promises.push(r.db('test').table('test').insert({}).run())
    }

    Promise.all(promises).then(function() {
      for (var i = 0; i < UPDATE_TIMERS; i++) {
          timers.push(setInterval(function () {
              countOps++;
              r.db('test').table('test').limit(1).update({
                  value: Math.random()
              }).run().then(function () {
                countOpsSuccess++;
              }).catch(function (e) {
                countOpsErrors++;
              });
          }, 1000));
      }
    }).catch(function(error) {
      console.log('Could not perform all inserts', error);
      console.log(error);
    });
}

function tearDown(r, feeds, timers) {
    log(`-- countOps: ${countOps}`);
    log(`-- countOpsSuccess: ${countOpsSuccess}`);
    log(`-- countOpsErrors: ${countOpsErrors}`);
    log('-- Tear down');
    printMemoryUsage();
    gc();
    printMemoryUsage();
    for (var i = 0; i < timers.length; i++) {
        clearInterval(timers[i]);
    }
    Promise.map(feeds, function (feed) {
        return feed.close().catch(function (e) {
            log('Caught error?');
            log(e);
        });
    }).then(function () {
        log('-- Feed closed');
        feeds = [];
        timers = [];
        printMemoryUsage();
        gc()
        printMemoryUsage();
        // return r.getPoolMaster().drain();
    }).then(function () {
        setTimeout(function () {
            log('-- Pool master drained');
            printMemoryUsage();
            gc()
            printMemoryUsage();
            r = null;
            printMemoryUsage();
    log(`-- countOps: ${countOps}`);
    log(`-- countOpsSuccess: ${countOpsSuccess}`);
    log(`-- countOpsErrors: ${countOpsErrors}`);
            gc()
            printMemoryUsage();
        }, 5000);
        log('-- Pool master drained');
        printMemoryUsage();
        gc()
        printMemoryUsage();
        // r = null;
        printMemoryUsage();
    log(`-- countOps: ${countOps}`);
    log(`-- countOpsSuccess: ${countOpsSuccess}`);
    log(`-- countOpsErrors: ${countOpsErrors}`);
        gc()
        printMemoryUsage();
        // heapdump.writeSnapshot('./' + Date.now() + '.heapsnapshot');
    });
}

startTest();

Result:
michel@h9:~/projects/github.com/neumino/rethinkdbdash$ node --expose-gc test.js 1000
2016-06-30T05:22:07.780Z - { rss: 25960448, heapTotal: 11530240, heapUsed: 5507488 }
2016-06-30T05:22:07.781Z - -- Start test
Creating a pool connected to localhost:28015
2016-06-30T05:22:07.822Z - -- Setup test
2016-06-30T05:22:07.885Z - -- db not created
2016-06-30T05:22:07.897Z - -- table dropped
2016-06-30T05:22:08.229Z - -- table created
2016-06-30T05:22:08.229Z - -- Open feeds
2016-06-30T05:22:08.230Z - -- Fire updates
2016-06-30T05:22:13.318Z - -- Forced GC
2016-06-30T05:22:13.344Z - 4000 tried, 3000 done, 0 errors, 3986 feed changes; 11 MiB
2016-06-30T05:22:18.372Z - -- Forced GC
2016-06-30T05:22:18.392Z - 9000 tried, 8000 done, 0 errors, 8987 feed changes; 11 MiB
2016-06-30T05:22:23.414Z - -- Forced GC
2016-06-30T05:22:23.434Z - 14000 tried, 13000 done, 0 errors, 13986 feed changes; 10 MiB
2016-06-30T05:22:28.455Z - -- Forced GC
2016-06-30T05:22:28.472Z - 18000 tried, 18000 done, 0 errors, 18986 feed changes; 8 MiB
2016-06-30T05:22:33.489Z - -- Forced GC
2016-06-30T05:22:33.507Z - 23000 tried, 22570 done, 0 errors, 23618 feed changes; 9 MiB
2016-06-30T05:22:38.525Z - -- Forced GC
2016-06-30T05:22:38.542Z - 28000 tried, 27409 done, 0 errors, 28459 feed changes; 9 MiB
2016-06-30T05:22:43.559Z - -- Forced GC
2016-06-30T05:22:43.585Z - 33000 tried, 29000 done, 0 errors, 30050 feed changes; 19 MiB
2016-06-30T05:22:48.611Z - -- Forced GC
2016-06-30T05:22:48.643Z - 38000 tried, 35394 done, 0 errors, 35766 feed changes; 15 MiB
2016-06-30T05:22:53.677Z - -- Forced GC
2016-06-30T05:22:53.699Z - 43000 tried, 41972 done, 0 errors, 42932 feed changes; 10 MiB
2016-06-30T05:22:58.721Z - -- Forced GC
2016-06-30T05:22:59.190Z - 48000 tried, 47000 done, 0 errors, 47507 feed changes; 10 MiB
2016-06-30T05:23:04.658Z - -- Forced GC
2016-06-30T05:23:04.682Z - 54000 tried, 53000 done, 0 errors, 53986 feed changes; 11 MiB
2016-06-30T05:23:09.708Z - -- Forced GC
2016-06-30T05:23:09.745Z - 59000 tried, 58000 done, 0 errors, 58986 feed changes; 11 MiB
2016-06-30T05:23:14.782Z - -- Forced GC
2016-06-30T05:23:14.804Z - 63000 tried, 62977 done, 0 errors, 63894 feed changes; 8 MiB
2016-06-30T05:23:19.826Z - -- Forced GC
2016-06-30T05:23:19.851Z - 68000 tried, 67806 done, 0 errors, 68698 feed changes; 9 MiB
2016-06-30T05:23:24.876Z - -- Forced GC
2016-06-30T05:23:24.902Z - 73000 tried, 72536 done, 0 errors, 73576 feed changes; 10 MiB
2016-06-30T05:23:29.928Z - -- Forced GC
2016-06-30T05:23:29.962Z - 78000 tried, 77000 done, 0 errors, 77988 feed changes; 11 MiB
2016-06-30T05:23:34.996Z - -- Forced GC
2016-06-30T05:23:35.029Z - 83000 tried, 82000 done, 0 errors, 82987 feed changes; 11 MiB
2016-06-30T05:23:40.064Z - -- Forced GC
2016-06-30T05:23:40.095Z - 88000 tried, 86911 done, 0 errors, 87593 feed changes; 11 MiB
2016-06-30T05:23:45.127Z - -- Forced GC
2016-06-30T05:23:45.161Z - 93000 tried, 92000 done, 0 errors, 92986 feed changes; 11 MiB
2016-06-30T05:23:50.195Z - -- Forced GC
2016-06-30T05:23:50.226Z - 98000 tried, 97000 done, 0 errors, 97986 feed changes; 11 MiB
2016-06-30T05:23:55.257Z - -- Forced GC
2016-06-30T05:23:55.290Z - 103000 tried, 102000 done, 0 errors, 102986 feed changes; 11 MiB
2016-06-30T05:24:00.323Z - -- Forced GC
2016-06-30T05:24:00.344Z - 107000 tried, 107000 done, 0 errors, 107986 feed changes; 8 MiB
2016-06-30T05:24:05.365Z - -- Forced GC
2016-06-30T05:24:05.385Z - 112000 tried, 111875 done, 0 errors, 112906 feed changes; 9 MiB
2016-06-30T05:24:10.405Z - -- Forced GC
2016-06-30T05:24:10.431Z - 117000 tried, 116330 done, 0 errors, 117380 feed changes; 10 MiB
2016-06-30T05:24:15.457Z - -- Forced GC
2016-06-30T05:24:15.479Z - 122000 tried, 121000 done, 0 errors, 121988 feed changes; 11 MiB
2016-06-30T05:24:20.502Z - -- Forced GC
2016-06-30T05:24:20.529Z - 127000 tried, 126000 done, 0 errors, 126986 feed changes; 12 MiB
2016-06-30T05:24:25.556Z - -- Forced GC
2016-06-30T05:24:25.585Z - 132000 tried, 131000 done, 0 errors, 131987 feed changes; 12 MiB
2016-06-30T05:24:30.614Z - -- Forced GC
2016-06-30T05:24:30.637Z - 136000 tried, 136000 done, 0 errors, 136986 feed changes; 8 MiB
2016-06-30T05:24:35.660Z - -- Forced GC
2016-06-30T05:24:35.679Z - 141000 tried, 140907 done, 0 errors, 141899 feed changes; 10 MiB

Amazing, thank you for your patience with this ticket, and solving it so quickly :)
Just for the joy of it, here are two services listening to the same changefeed, the climbing one with 2.3.12, the sawtooth one with 2.3.13 -

Again, thanks for rethinkdbdash! (Now only if you had a twin brother who would do the same for python :D )

Sorry to open this can of worms again, but...
2.3.16:
2016-07-21T13:34:25.140Z - 79600 tried, 79563 done, 0 errors; 32 MiB
2016-07-21T13:34:30.141Z - 80100 tried, 79993 done, 0 errors; 17 MiB

2.3.17:
2016-07-21T13:14:17.556Z - 89900 tried, 89900 done, 0 errors; 72 MiB

2.3.19 should fix the issue. I guess there's really no way to build a long chain of promises...


Legacy api

This patch attempts to recreate the required API endpoints to run the CSB js app

"Minor: Fixed missing "of" in the description" fixes #71

"Prevent people calling the rescue or register page when logged in" fixes #70

"Switching to using the sessions table in the database" is meant to address #72 - though I don't know if it completely fixes it.

"Generate nav links from active applications in the database" fixes #17


Issue #240: add breakdown of pom. Resolves #240

@inoxx03 mind taking  quick look?

I've also seen a couple of capitalization issues. Things like "maven" (should be Maven), "tomcat" (should be Tomcat or "Openshift" (should be OpenShift).

CC @SlavoKrupa @RadekKoubsky

Thank you for all the feedback @Ladicek, I've amended this PR with the changes.
Let me know what you think.

I'm not sure about capitalization of "pom" (maybe should be POM?) and fmp (maybe should be FMP?). Otherwise LGTM.

merging

merged: 37d38711933d74820d54c7b2b8a427a09653859f


Allow setting isMovable option to prevent window dragging on OSX.

It's currently possible to drag the window around an detach it from the tray icon. By passing the movable option we let users decide what should happen.

@maxogden Can you please merge this one?

@vernondegoede Why it's needed?
As I understand the code you can pass movable option directly to menubar function and it will merged with default options through next line:
https://github.com/vernondegoede/menubar/blob/9476b127b13930a9c47e53d282eba3873fc31689/index.js#L88


List all the tags in tag groups page under each tag group name and make this list scrollable horizontally

Done


Register updated OAuth2 middlewares

Builds will fail until dapr/components-contrib#2964 is merged and a new contrib is pinned

See dapr/components-contrib#2964 for context

Closing as we changed it to a single component


open_meteo feature implementation

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Deprecation (breaking change to happen in the future)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the development checklist
[ ] I have followed the perfect PR recommendations
[ ] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
[ ] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

[ ] I have reviewed two other open pull requests in this repository.

Description:
Feature wind chill-We have added the windchill capability to our Open-Meteo integration, which is a huge improvement. This advancement was made possible by using existing temperature and windspeed properties and calculating windchill using a well-established method. The windchill number obtained is then deducted from the original temperature data.
The value of including windchill in weather data cannot be emphasized. Windchill gives critical information on how people experience weather conditions. It considers the combined effects of temperature and wind to provide a more realistic picture of subjective coldness. This knowledge is especially useful for outdoor activities because it allows people to make informed decisions about how to dress appropriately, reduce the risk of cold-related health conditions, and ensure their safety.In essence, the addition of the windchill capability improves the usefulness and dependability of our Open-Meteo integration, allowing users to make more educated weather-related decisions.

Group 8:open_meteo integration
when we are running the code we should change the code of the file in the path as below
/workspaces/core/config/configuration.yaml:
default_config:
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
logger:
default: info
logs:
homeassistant.components.cloud: debug
template:

sensor:

name: "Wind_chill"
unit_of_measurement: "°"
state: "{{ state_attr('weather.home', 'wind_chill') }}"


syzlang: Macro definitions for repeated syscall descriptions

Repeated code patterns like this:
ioctl$CHAR_RAW_RAGET(fd fd_char_raw, cmd const[BLKRAGET], arg ptr[out, intptr])
ioctl$CHAR_RAW_ROGET(fd fd_char_raw, cmd const[BLKROGET], arg ptr[out, intptr])
ioctl$CHAR_RAW_BSZGET(fd fd_char_raw, cmd const[BLKBSZGET], arg ptr[out, intptr])
ioctl$CHAR_RAW_PBSZGET(fd fd_char_raw, cmd const[BLKPBSZGET], arg ptr[out, intptr])

(https://github.com/google/syzkaller/pull/1912/commits/3d5282cc133ac52272cb87749a9b3861a43f63a6)
or:
openat$cachefiles(fd const[AT_FDCWD], file ptr[in, string["/dev/cachefiles"]], flags flags[open_flags], mode const[0]) fd
openat$ndctl0(fd const[AT_FDCWD], file ptr[in, string["/dev/ndctl0"]], flags flags[open_flags], mode const[0]) fd
openat$nmem0(fd const[AT_FDCWD], file ptr[in, string["/dev/nmem0"]], flags flags[open_flags], mode const[0]) fd
openat$nvram(fd const[AT_FDCWD], file ptr[in, string["/dev/nvram"]], flags flags[open_flags], mode const[0]) fd
openat$ocfs2_control(fd const[AT_FDCWD], file ptr[in, string["/dev/ocfs2_control"]], flags flags[open_flags], mode const[0]) fd

(https://github.com/google/syzkaller/blob/5962a2dc88f6511b77100acdf687c1088f253f6b/sys/linux/sys.txt)
could benefit from some macro-like syntactic sugar for generating the definitions, e.g.:
for i in ["cachefiles", "ndctl0", "nmem0", "nvram", "ocfs2_control"]:
  openat${%i}(fd const[AT_FDCWD], file ptr[in, string["/dev/{%i}"]], flags flags[open_flags], mode const[0]) fd

Bikeshedding welcome.

The idea was to address this with call templates. There is no exact syntax for this, but something along the lines of:
ioctl[fd_char_raw, BLKROGET, intptr]
openat["/dev/cachefiles", fd]

Yes, this is another option. May I suggest using angle brackets to add some scent of C++?

If we use <> for calls, we probably need to change structs to <> as well. But then the question is: do we use <> only in declaration or when templates are used as well? Using <> in declaration and [] at use site is somewhat inconsistent. But using <> at both places will make templates significantly inconsistent with everything else and will require changing all existing descriptions... I would like to hear complete proposal for what we use where to understand all implications.

+Cheng-Min Chiang<EMAIL_ADDRESS>+John Davis<EMAIL_ADDRESS>Is there any reason not to use flags for this case?  Something like:
ioctl_raw_cmds = BLKRAGET, BLKROGET, BLKBSZGET, BLKPBSZGET
ioctl$CHAR_RAW(fd fd_char_raw, cmd flags[ioctl_raw_cmds], arg ptr[out, intptr])
On Wed, Jul 8, 2020 at 4:10 AM Dmitry Vyukov<EMAIL_ADDRESS>wrote:

If we use <> for calls, we probably need to change structs to <> as well.
But then the question is: do we use <> only in declaration or when
templates are used as well? Using <> in declaration and [] at use site is
somewhat inconsistent. But using <> at both places will make templates
significantly inconsistent with everything else and will require changing
all existing descriptions... I would like to hear complete proposal for
what we use where to understand all implications.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/syzkaller/issues/1913#issuecomment-655451162,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AESJUWVQZUPD6KPQYQNLV5DR2RHZLANCNFSM4OUMRLSA
.

Is there any reason not to use flags for this case? Something like: ioctl_raw_cmds = BLKRAGET, BLKROGET, BLKBSZGET, BLKPBSZGET ioctl$CHAR_RAW(fd fd_char_raw, cmd flags[ioctl_raw_cmds], arg ptr[out, intptr])

This will work.
We try to not do this lately, though, for the following reasons.
flags is generally considered more "permissive" wrt what values can be passed.
These ioctl variants are really different syscalls for most practical purposes, so we tried to stick to convention: one kernel syscall -> one syscall variant in the descriptions. This may allow better heuristics in future, e.g. what should be a priority of one syscall as compared to another. Blending effectively several syscalls into a single variant in descriptions makes such reasoning harder.
But maybe we need something else to support these patterns better.


System.Threading.Tasks.Extensions could be removed?

Is System.Threading.Tasks.Extensions actually used? By searching on github it is found just in csproj. As currently Mediator bring this dependency to blazor (wasm) project and I am just curies if it could be removed.

Hey yeah I think you're right, I don't think thats being used. I'll make sure it's removed for the next version, thanks!


Feature Request: Scrollable LayoutGrid with Builder Functionality

I am exploring this package as a potential alternative to flutter_staggered_grid_view, which no longer supports scrollable staggered grid views (it supports staggered grids, but these are not buildable or scrollable).
This package allows full control over placing items in rows and columns, which is invaluable for creative layouts. However, I couldn't find any option for using a Builder, which is a critical feature for my use case.
Ideally, a LayoutGrid builder should operate like other builders in Flutter. Instead of receiving a list of children, it would rather have a Widget Function(BuildContext context, int index) parameter to dynamically build its children. Using this approach, the Grid could build children only when they are in the viewport. This also means, the Grid would be scrollable and transform it into a LayoutGridView, based on Flutter's naming convention, where Views are scrollable. This functionality is crucial for larger grids with many children, as building all children at all times can lead to significant performance issues.
The usual practice in Flutter for lists and grids is to first create a Sliver version (a builder without a ScrollView), then provide a version wrapped in a BoxScrollView. For example, a ListView is a SliverList wrapped in a BoxScrollView.
The API might look similar to this:

a SliverLayoutGrid widget, which is a Sliver that uses a SliverChildBuilderDelegate to build its children.
a LayoutGridView widget which is a BoxScrollView that internally uses a SliverLayoutGrid. It could come with both a children list parameter and a .builder constructor. This would not replace the usual LayoutGrid, which is not scrollable.

Incorporating this functionality may entail a significant refactor, and I'm unsure about its feasibility with the current layout algorithm (since flutter_staggered_grid_view removed StaggeredGridView due to performance issues with its layout algorithm). It also deviates somewhat from a pure CSS grid. However, this enhancement would make the package incredibly versatile.
The key use case for this feature is to create infinite, paginated, quilted/staggered image layouts. Pagination can be added externally as long as a Sliver version with a builder is available. I typically use infinite_scroll_pagination to enable this functionality with any Sliver.

I am searchig the same functionality, like the CSS grid or flex system, where the row elements expands to the height of the tallest row element, would be very useful if this package had some similar functionality.

I was about to make the same request, it would be very useful, specially for not having to set an specific row number.


tests: dont stop on errors by default

Why do we need this?
Why the default is true?
PS. Commit has no task number.


PVS analyzer founds issue in "CHECK" macro

Hey! Currently i'm getting PVS warnings related to "CHECK" macro. I've debugged a bit. Looks like issue is there
https://github.com/cschreib/snitch/blob/main/include/snitch/snitch.hpp#L2324
and other similar places.
Repro:
CHECK(some_val == 2);

Warning:
It's odd to compare a bool type value with a value of 2.

Short repro: https://godbolt.org/z/a6EnPoqvT
Looks like VA_ARGS should be placed in ()

Hi there, and sorry for the slow response, I'm on holiday this week.
Your reproduction code isn't quite like the real code; in snitch, the expression decomposer operator<= doesn't return a bool, but an unary_expression. This funky operator overloading is done (as in Catch2, doctest, or Boost UT) to enable expression decomposition. The __VA_ARGS__ cannot be placed within parentheses in this case, because it would prevent this from working. When the macro expands, it will "look" as if the expression is weird, but it is actually as intended.
I assume PVS studio isn't able to see through the trick, so it reports a fals positive here. Do you have a way to silence this warning on your end?

I've double checked and see your trick. It is not a problem for me to silence warning, just wanted to share.
BTW, looks like catch2 W/A it with help of pragmas
__pragma(warning(push)) catchAssertionHandler.handleExpr(Catch::Decomposer() <= call_count == 0);
__pragma(warning(pop))

__pragma(warning(push)) and __pragma(warning(pop)) don't silence warnings on their own, they just introduce a new warning scope. You then need __pragma(warning(disable: ...)) to actually silence a warning. For example:
__pragma(warning(push))
__pragma(warning(disable: 4127))
// your code here: warning 4127 is disabled
__pragma(warning(pop))

// other code outside of the warning scope: warning 4127 is no longer disabled

See the Microsoft documentation (since __pragma(...) is a Microsoft extension, I assume you're using MSVC). snitch already uses this to silence some warnings (using _Pragma(...) instead, which is standard C).
Since you're able to silence the PVS warning on your end, I'll mark this issue as closed. You may want to report the false-positive to the PVS team.


Blazor project tracking 2022

2022
For the 2021 idea list, UE pass list, and notes, see Blazor project tracking 2021 (dotnet/AspNetCore.Docs #19286).
For the 7.0 tracking issue later

Per https://github.com/dotnet/AspNetCore.Docs/pull/25283, remove the remark on DateOnly/TimeOnly and PU cross-link. That should be resolved at 7.0 GA.

Doc ideas
Not ALL of these will be worked. This is an idea list/check list that don't rise to the level of opening an issue at this time.

[ ] There's about a half-dozen or so cases of using compiler directives around the docs to control code for debug vs. release configs. Confirm that configuration/environment can't manage these cases or that using configuration/environment wouldn't make sense for them.
[x] Use no-loc syntax for the Client and Server project mentions of hosted WASM solutions. https://github.com/dotnet/AspNetCore.Docs/pull/27075#issuecomment-1254953624 PR: https://github.com/dotnet/AspNetCore.Docs/pull/27151
[x] Currently, docs are mostly consistent on the instance name of an injected NavigationManager as NavigationManager. However, the PU favors Navigation in their examples. BTW, the glob-loc topic uses Nav. Consider making this consistent on Navigation everywhere, including in the snippet sample apps (and other sample apps). https://github.com/dotnet/AspNetCore.Docs/pull/27153
[ ] Cross-link CSS isolation/collocated JS and controlling <head> content in the Performance doc. https://github.com/dotnet/AspNetCore.Docs/issues/26994
[x] Consider making the Lifecycle topic call out that the explanations and diagrams are oversimplifications of what the framework really does, which is too complex to explain/show in the text and diagrams in a simple way. https://github.com/dotnet/AspNetCore.Docs/issues/26989 PR: https://github.com/dotnet/AspNetCore.Docs/pull/27170
[ ] Ask Tanay to review the new example at Fundamentals > DI > Utility base component classes to manage a DI scope section.
[ ] Port this new section from Add JS interop example back to 6.0, 5.0, and 3.1. Note that requires changes on the dotnet/blazor-samples repo (rename ListItem to ListItem1, place the new ListItem2). I scribbled a note to delete Shared/ListItem.razor and to kill Pages/dependency-injection/Preferences.razor.
[x] Moving some components to the main repo and updating route templates so that the sample apps will run. This was started on https://github.com/dotnet/AspNetCore.Docs/pull/26830, and there will be one or a few PRs to finish this task over time. More work on https://github.com/dotnet/AspNetCore.Docs/pull/26879 and https://github.com/dotnet/blazor-samples/pull/38.
[ ] Chat with Javier about the WHY aspects on https://github.com/dotnet/AspNetCore.Docs/pull/26620#issuecomment-1205513721. I'd like to know why the RID works with the MSBuild prop (/p:RuntimeIdentifier={RID} but the self-contained setting doesn't (/p:SelfContained=false).
[ ] Chat with Tanay about https://docs.microsoft.com/en-us/aspnet/core/blazor/components/dynamiccomponent?view=aspnetcore-6.0 per https://github.com/dotnet/AspNetCore.Docs/pull/26557. Is this the best way to showcase event callbacks with dymanic components?
[x] Add a tidbit on logging in WASM's Program.cs to the Logging topic. https://github.com/dotnet/AspNetCore.Docs/pull/26449
[x] In JS interop examples, I use the global FN location approach as the quick, simple, cut-'n-paste approach. I think these spots could have a brief NOTE and cross-link to the JS location coverage at <xref:blazor/js-interop/index#location-of-javascript>. https://github.com/dotnet/AspNetCore.Docs/pull/26166
[x] Move the Blazor-SignalR tutorial sample apps to the dotnet/blazor-samples repo and cross-link code to the dedicated repo. Kill 🔪 the samps in the main doc set repo. https://github.com/dotnet/AspNetCore.Docs/pull/26117
[ ] Should we have a 'how to read cookies in code (JS interop)' piece in the JS interop (Call JS from .NET) doc (e.g., https://github.com/dotnet/AspNetCore.Docs/pull/26063#issue-1261857484)? Broadly, would it make sense to have a topic JS interop recipes with common JS interop scenarios?
[x] Double-check the built-in components list (https://docs.microsoft.com/aspnet/core/blazor/components/built-in-components). Added RouteView on https://github.com/dotnet/AspNetCore.Docs/pull/26100. Opened https://github.com/dotnet/AspNetCore.Docs/issues/26099 to ask about SectionOutlet/SectionContent, but closed it immediately when Mackinnon informed me that they're internal, which I missed because I didn't read the bleed'in code! 🙈😄 I need a vacation! 🏖
[x] Code cross-links to dotnet/blazor-samples repo sample apps. :::code language="csharp" source="~/../blazor-samples/6.0/BlazorSample_Server/ExampleModel.cs" highlight="6"::: https://github.com/dotnet/AspNetCore.Docs/raw/main/aspnetcore/blazor/samples/6.0/BlazorServerDbContextExample.zip Cross-ref: https://github.com/dotnet/AspNetCore.Docs/pull/24883 UPDATE: Moved to the dedicated issue at https://github.com/dotnet/AspNetCore.Docs/issues/26074. Resolved by: https://github.com/dotnet/AspNetCore.Docs/pull/26087
[x] Looks like the perf topic sections are too deep to surface content well in the ToC sidebar. UPDATE (5/31): I can't fix this, so I'm marking it off the list. I added a remark on this to my 'Show More' docs issue at https://github.com/MicrosoftDocs/feedback/issues/3770#issuecomment-1142559244.
[x] Consider a short focused section on RenderFragment for defining reusable, non-component rendering code in the components topic. It's currently a bit buried in the perf topic. Other docs can cross-link to it for a definition of RenderFragment with an example. Cross-links to and from this section make sense to index the various uses and examples. Besides, the child component section is the first mention of it, and it's not particularly well described at the moment in a general way there. This could be part of any updates for https://github.com/dotnet/AspNetCore.Docs/issues/25822. NOTE: Search out cross-links to re-point. There's one coming up in the Hybrid 'reuse components' topic. https://github.com/dotnet/AspNetCore.Docs/pull/26017
[x] Sync/async coverage for JS interop is a bit messy and needs re-org, clean up, and clarifications for IJSInProcessRuntime (3.1 or later)/IJSInProcessObjectReference (5.0 or later). https://github.com/dotnet/AspNetCore.Docs/pull/26101
[x]  On the diff code blocks, most have a space between the +/- and the line. A few don't ... bring those into alignment with a space. https://github.com/dotnet/AspNetCore.Docs/pull/25983
[x] Per guidelines, we're supposed to avoid "log"-based auth session wording (e.g., "log in"/"log out") in favor of "sign"-based terminology (e.g., "sign in"/"sign out"). I've asked DR what he thinks because the PU regularly sends me "log"-based wording in PU content/code samples. We might need a PR to adjust the lingo globally. UPDATE (5/3): The word is given: The PU prefers "log{in|out|into|out of}" wording in framework naming, including in the project templates, so we'll ignore the doc division guidance on this point. The docs can probably just continue with a mix, since these are used interchangeably by the whole industry.
[x] There's an "Unhandled Exceptions" folder of docs in my browser. One cross-ref is to some debugging code that Javier recommended to a dev to log some debug details. Check and make sure that that scenario is covered. Check the other docs to see if there's anything useful to add to the docs. UPDATE: Only found a tiny NIT to fix. We have Error Boundaries. We have Steve's alternative global exception handling section (i.e., custom error component as a cascading value). We have good logging coverage in the Logging topic. I think we're good here (sans logging in Program.cs, but I'm going to add a nibblet on that shortly).
[x] Consider recasting or providing more explicit details on subdomain multiple WASM app hosting scenario at Hosted deployment with multiple Blazor WebAssembly apps per request at https://github.com/dotnet/AspNetCore.Docs/issues/25723. PR: https://github.com/dotnet/AspNetCore.Docs/pull/25754
[x] Make a RexHax™ 🙈 custom logger that deals with log scopes, place it into the dotnet/blazor-samples repo and link to it there. Note to self: It's on the I: drive! 😄 https://github.com/dotnet/AspNetCore.Docs/pull/25705#issuecomment-1106444305 UPDATE: Checking this off here because it's going to be tracked by its own issue at: https://github.com/dotnet/AspNetCore.Docs/issues/25982
[x] A number of code examples don't leverage implicit namespaces for .NET 6 or later. I think it's very important to address this before reaching .NET 7, so I've opened https://github.com/dotnet/AspNetCore.Docs/issues/25702 to fix up the examples. https://github.com/dotnet/AspNetCore.Docs/pull/25733 & https://github.com/dotnet/blazor-samples/pull/10 Note: IntelliSense doesn't indicate implicit @using directives in components, so I'll table that aspect for a future VS release that can help identify them.
[x] Drop ReferenceParent3 example from the docs sample repo. https://github.com/dotnet/blazor-samples/pull/7
[x] Add ".NET MAUI" and "Mac Catalyst" to no-loc metadata. https://github.com/dotnet/AspNetCore.Docs/pull/25384#discussion_r833483829 https://github.com/dotnet/AspNetCore.Docs/pull/25429
[x] For all of the 'add a package reference' guidance, use the INCLUDE to explain where the reader can get more info: [!INCLUDE[](~/includes/package-reference.md)]. https://github.com/dotnet/AspNetCore.Docs/pull/25260
[x] Walk the main doc set logging topic and identify which scenarios don't work/aren't relevant for Blazor WASM logging and call them out in the Blazor WASM section of the Blazor logging topic. It will be a sister update to the work that's being put in now on https://github.com/dotnet/AspNetCore.Docs/issues/25172. PR: https://github.com/dotnet/AspNetCore.Docs/pull/25705
[x] Purge lingering (sneaky 😈) 'Blazor component' naming in the docs. Most of these came in from PU content that I didn't catch on edits 🙈, but it's been dealt with fully in the Blazor docs now. https://github.com/dotnet/AspNetCore.Docs/pull/25118 ... Successful thus far with external doc sets: .NET MAUI docs, .NET docs, and I created a private (hidden) issue for Learn Modules. https://github.com/dotnet/docs/pull/28324 https://github.com/dotnet/maui/issues/4830 This work is on-going as I find and report it to other doc set maintainers.
[x] Take a look at https://github.com/dotnet/AspNetCore.Docs/issues/25103 for File Uploads (WebAssembly scenario). https://github.com/dotnet/AspNetCore.Docs/pull/25160
[x] Blazor SEO: Perform a meta description and first sentence review on the whole Blazor docs node. Look for opportunities to improve them. https://github.com/dotnet/AspNetCore.Docs/pull/25311
[x] For August: Re-assess success for changes on https://github.com/dotnet/AspNetCore.Docs/pull/24878. UPDATE (4/25): I'm checking this off per DR's remark that he's cool with the approaches taken to improve the SEO for the article.
[x] See https://github.com/dotnet/AspNetCore.Docs/pull/24868#issuecomment-1029500175 ... We don't want to show an example of using a HeadContent component that adds a global stylesheet from an RCL. It works, but it isn't recommended. It's an advanced scenario that devs can use at their own risk. #25161
[x] I had to remove the AOT definition cross-link. It was pointing to our .NET glossary definition, but there are problems with linking that content at the moment. I opened https://github.com/dotnet/docs/issues/27934 to see if updates can be made, but it was ignored by the .NET docs folks. Update (3/9): After looking the guidance over, I'm happy with what we have at this time. "AOT" is described clearly, along with the "hybrid"/"mixed-mode" aspect (without using those terms) (i.e., it still requires the managed DLLs). I'm going to check this item off as a won't fix scenario.
[x] Take a look at how the sample is linked into the SignalR-Blazor tutorial and the EF Core doc to react to devs mistakenly thinking that they need it in advance as a prereq. https://github.com/dotnet/AspNetCore.Docs/issues/24670#issuecomment-1016785786 https://github.com/dotnet/AspNetCore.Docs/pull/24684
[x] For the DI topic where [Inject] is described: Injected properties are expected to be available, so make them non-nullable. https://github.com/dotnet/aspnetcore/pull/39445#discussion_r787781819 https://github.com/dotnet/AspNetCore.Docs/pull/24685
[x] Confirm runtime relinking guidance stating that it's a publish-and-Release config gesture. Building a project-template-based test app produced a 51.5 MB app. Publishing in Debug resulted in a 9.3 MB app without relevant console compiler output. Publishing in Release resulted in a 6.6 MB app with console compiler output that indicated runtime relinking.
[ ] When https://github.com/dotnet/docs/issues/27395 is resolved and Mono/WASM MSBuild props are covered, update the cross-links from the targets file to the new official doc. Links can be located on the PR that added them at https://github.com/dotnet/AspNetCore.Docs/pull/24493.
[x] It seems like everyplace that we have hosted WASM, we should call out that the project must be run from the Server project. The errors for not doing so can be quite cryptic 😵. For example, the File Uploads topic example throws a "JSON token" error when the solution is run from the client app. It's not at all clear that it was simply run from the wrong project.
[x] In the Prerender and Integrate topic, clarify the line that speaks to the dev starting with RP/MVC and then including Blazor Server app in order to render components from pages/views. https://github.com/dotnet/AspNetCore.Docs/issues/23948#issuecomment-974559793 ~Related: I add a HeadOutlet component to the layout at Line 212 for the scenario of an RP/MVC app that embeds components from a hosted WASM app (render-mode="ServerPrerendered") to allow components to control head content. Due to time constraints at the moment, the coverage is going in. When I address this item and touch that line :point_up: also run a quick test and confirm the scenario for Line 212 actually works ... or did I just make up a new Blazor feature all by myself?! 🙈😄~ The last piece was fixed as part of https://github.com/dotnet/AspNetCore.Docs/pull/24548 prompted by a user issue. The first bit is fixed by https://github.com/dotnet/AspNetCore.Docs/pull/24665.
[x] InputFile component preview guidance (6.0) is in the new Blazor Images topic and probably should be better cross-linked (https://github.com/dotnet/AspNetCore.Docs/issues/23802). https://github.com/dotnet/AspNetCore.Docs/pull/24666
[x] For passing extra params to elements with Action delegates, I whipped up a (contrived) example on https://github.com/dotnet/AspNetCore.Docs/pull/23566#issuecomment-947503152. It's not particularly complicated to enhance the example that appears in the Perf topic. I'm going to merely leave the test case on that PR comment for the time being.
[x] Ask RA for an internal issue on pivot search results. The problem is that the whole topic is indexed but the links to the topics don't point to the pivot where the content lives ... the topic loads with whatever default pivot the user has selected earlier (or the default). I think the search results should be by-pivot with a clear pivot indication and with a pivot-specific landing link. This would mean that it's possible for the reader to receive two or more search result links, but the reader would be taken directly to the pivot and not get confused when the land to find no content for what they searched. UPDATE (1/31): Sent an email to the docs team on 1/31/2022 with DR and Artak copied. This is considered 'closed' for Blazor work until they resolve it. In the few spots that we use pivots in Blazor docs, I'll maintain NOTEs where needed to surface alternative pivot coverage.
[x] For Blazor AOT, add remark ... https://github.com/dotnet/aspnetcore/issues/37092#issuecomment-930356311 ... also see :point_right: https://github.com/dotnet/aspnetcore/issues/35302 https://github.com/dotnet/AspNetCore.Docs/pull/24686
[x] Ping Pranav to take a look at the new guidance at https://docs.microsoft.com/en-us/aspnet/core/blazor/performance?view=aspnetcore-6.0#avoid-recreating-delegates-for-many-repeated-elements-or-components. The pattern was signed off by Artak at https://github.com/dotnet/aspnetcore/issues/17886#issuecomment-566158668 with an update later per https://github.com/dotnet/AspNetCore.Docs/pull/23566.
[x] Create an Overview in the Fundamentals node with a bare bones explanation of a component in order to understand fundamental concepts+examples better, orient on any doc consumption features (e.g., use of working examples, sample apps, use of the this keyword, resolve #14216, etc.), and any other prelim remarks before the reader gets into the meat of the coverage. https://github.com/dotnet/AspNetCore.Docs/issues/22230#issuecomment-875910670 https://github.com/dotnet/AspNetCore.Docs/pull/24880
[x] JS interop

[x] Call JS from .NET doesn't demo cancellation token use with aborting a long-running JS FN. I think a working cut-'n-paste example wouldn't take up much space and would be nice to show. Issue: https://github.com/dotnet/AspNetCore.Docs/issues/25319 PR: https://github.com/dotnet/AspNetCore.Docs/pull/25346
[x] The Call .NET from JS topic mentions but doesn't show an example of calling a generic class method ... include one? Cross-ref: InteropComponent.razor, jsinteroptests.js, and GenericType<TValue> Issue: https://github.com/dotnet/AspNetCore.Docs/issues/25450 PR: https://github.com/dotnet/AspNetCore.Docs/pull/25465
[x] Is there anything else in the family of JS interop JS function calls that should be mentioned or explained out with examples? Cross-ref: PU Microsoft.JSInterop.ts UPDATE: Let's hold with what we have for additional community feedback and/or PU guidance on any missing scenarios, probably edge scenarios tho given that the most common scenarios should be covered now with the addition of the prior two bullet points.

[x] Old sample apps dropped on #23228. Do we want to make the snippet sample apps into running apps and link them in the Blazor docs? Related ?: Whether or not we make snippet samples for download, should sample apps in general be kept/cross-linked in the official MS samples repo for easy download. This was a long-range plan for all ASP.NET Core sample apps AFAIK, but it hasn't taken place due to constant higher-priority work. We could at least make the Blazor Server-EF Core final app and the two Blazor-SignalR tutorial final apps available via that mechanism for easy download. Begins with https://github.com/dotnet/AspNetCore.Docs/pull/24880, but I'll be performing further updates quickly to use the new dotnet/blazor-samples repo.
[x] WRT Static files caching behaviors, I think updates have addressed it. https://github.com/dotnet/AspNetCore.Docs/pull/23235) https://github.com/dotnet/AspNetCore.Docs/pull/24807

UE pass tracking
Only includes topics that weren't reached in '21 or new topics added in '21.

[ ] Components

[ ] Control <head> content
[ ] Dynamically-rendered components

[x] File downloads topic: Use fully-working examples, place code into snippet sample apps, and see the cross-linked discussion and bits mentioned in https://github.com/dotnet/AspNetCore.Docs/pull/24560#issuecomment-1011301931.
[ ] Call a web API from WebAssembly — Although this topic had it's UE pass in '21 on #22410, the web API aspects rely on the main doc set web API article, and churn in the web API doc can break the Blazor experience in this topic.
[x] Images topic: Use fully-working examples.
[ ] Security and Identity — See :point_right: #20708, #19807, and #19226. I placed an ellipsis in the App component example INCLUDE(s) to cover 6.0 churn. See: https://github.com/dotnet/AspNetCore.Docs/issues/23696. Work https://github.com/dotnet/AspNetCore.Docs/issues/25026 in this node. There are general remarks and some specific items for AAD/AAD B2C and UserManager/SignInManager at #27279.

[ ] Overview — Either here or in the Blazor Server Overview: #22405
[ ] Blazor Server

[ ] Overview — Review, work was done on :point_right: https://github.com/dotnet/AspNetCore.Docs/pull/20119 and mention https://github.com/dotnet/AspNetCore.Docs/issues/19797#issuecomment-779294104.
[ ] Threat mitigation
[ ] Additional scenarios — Review, work was done on :point_right: https://github.com/dotnet/AspNetCore.Docs/pull/20119. Also, see :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/22122. Refresh token info request: https://github.com/dotnet/AspNetCore.Docs/issues/26086.

[ ] Blazor WebAssembly — See :point_right: #20512 & https://github.com/dotnet/AspNetCore.Docs/issues/21816#issuecomment-803152089. Also, consider surfacing a smidgen of WebAssembly "sandbox" content in a new section with a cross-link or two (e.g., https://webassembly.github.io/spec/core/intro/introduction.html#security-considerations, https://webassembly.org/docs/security/). It would be nice to clarify that WebAssembly (as a non-MS technology) is constantly undergoing security patching, and there is a place (I'll find the link) where devs can see potential security vulnerabilities, work on WebAssembly security, and patches being put into place.

[ ] Overview — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21741 (cross-link to an Azure doc from all of our AAD/B2C docs)
[ ] Standalone with Authentication library — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21510, https://github.com/dotnet/aspnetcore/issues/30068, https://github.com/dotnet/AspNetCore.Docs/issues/23712
[ ] Standalone with Microsoft Accounts
[ ] Standalone with AAD
[ ] Standalone with AAD B2C — "custom user flows" language https://github.com/dotnet/AspNetCore.Docs/issues/21144. Take a look at signup-signin Azure UI per https://github.com/dotnet/aspnetcore/issues/39401#issuecomment-1009511236. Note to readers that B2C with Graph API isn't supported.
[ ] Hosted with AAD — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21983, https://github.com/dotnet/AspNetCore.Docs/issues/26165
[ ] Hosted with AAD B2C — "custom user flows" language https://github.com/dotnet/AspNetCore.Docs/issues/21144; see :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21640. Take a look at signup-signin Azure UI per https://github.com/dotnet/aspnetcore/issues/39401#issuecomment-1009511236. Take a look at an edge case for wanting the id token in spite of the default code flow: https://github.com/dotnet/aspnetcore/issues/39311#issuecomment-1138777859 w/addl discussion at https://github.com/dotnet/aspnetcore/pull/41873 ... I don't think that we'll cover it, but take a look, especially if MS IdP/MSAL/Azure docs cover it and it can be cross-linked (and this assumes that we're even keeping this topic in the first place. It might get the 🔪.) Note to readers that B2C with Graph API isn't supported directly ... the host ASP.NET Core app can expose Graph API via web API calls.
[ ] Hosted with Identity Server — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21842 and also see https://github.com/dotnet/AspNetCore.Docs/issues/22753 (Was it just VS not creating the project with the correct Identity config to run OOB when deployed to Azure directly from VS?) Consider splitting out custom domains from IdS, and check on the B1 requirement IdS-only scnearios (it might not be a requirement in that case). See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/24067#issuecomment-980033383.
[ ] Additional scenarios - Look for split-out opportunities. Possibly add an introductory ToC with section descriptions. Consider if the Unauthenticated or unauthorized web API requests in an app with a secure default client section could be better cross-linked/mentioned explicitly in the individual WASM security topics (https://github.com/dotnet/AspNetCore.Docs/issues/22217 and https://github.com/dotnet/AspNetCore.Docs/pull/22220). Consider making an INCLUDE out of the prerendering guidance and shooting a copy of that into the Prerendering and Integration topic (https://github.com/dotnet/AspNetCore.Docs/issues/23441). Check on the "outgoing HttpResponseMessage" language in the API doc, per discussion at #26739 (and respond back on that issue with the final answer from the PU).
[ ] AAD groups and roles — https://github.com/dotnet/AspNetCore.Docs/pull/20856; do we need a Blazor Server pivot, or can we cross-link? See :point_right: #22422
[ ] Graph API — See :point_right: #22657

[ ] Content Security Policy

[ ] Debug WebAssembly &mdash: Resolve :point_right: #23373 ... and we'll probably need to show full files everywhere we refer to tasks.json/launch.json due to https://github.com/OmniSharp/omnisharp-vscode/issues/4542. See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/23777
[ ] WebAssembly native dependencies
[ ] Test components - Specifically, let's consider hosting example component tests for WASM and Server (TestServer). https://github.com/dotnet/AspNetCore.Docs/issues/25263
[ ] Progressive Web Applications — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21100
[ ] Host and deploy: Apache for hosted WASM/sub-app scenarios might need more work. See 👉 https://github.com/dotnet/AspNetCore.Docs/pull/24519#issuecomment-1008480134.

[ ] Overview — Perhaps for Routing, too, but clarify the navigation behavior of NavigationManager.NavigateTo. See :point-right: https://github.com/dotnet/AspNetCore.Docs/pull/22146#issuecomment-827802596.
[ ] Blazor Server — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/21226
[ ] Blazor WebAssembly — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/19979 and https://github.com/dotnet/AspNetCore.Docs/issues/21829#issuecomment-803192673 and validate web.config post PR https://github.com/dotnet/AspNetCore.Docs/pull/24950 and in light of discussion on https://stackoverflow.com/a/69888016 and https://stackoverflow.com/a/70967738. Probably add a tagged SO filter link: https://stackoverflow.com/questions/tagged/blazor+iis+compression
[ ] WebAssembly deployment layout

[ ] Blazor Server and EF Core
[ ] External to the Blazor node: Scaffolding topic sections that pertain to Blazor — See :point_right: https://github.com/dotnet/AspNetCore.Docs/issues/8434#issuecomment-808893911

SEPARATE WORK ITEM FOR SECURITY NODE

[ ] Consider a topic on Azure Functions with Blazor WASM+AAD/B2C: My understanding is that it was NOT possible ... at least for B2C (perhaps AAD always worked). See https://github.com/dotnet/aspnetcore/issues/35794#issuecomment-908683517. That discussion occurred back in August, 2021, so things may have improved by now for B2C/WASM/AF. IMO, this architecture makes a lot of sense for WASM serverless scenarios. :+1:

UE pass tracking ('23)
New topics added in '22 that probably wouldn't receive a UE pass until '23.

Blazor Hybrid

Overview
Tutorials

Overview
.NET MAUI
Windows Forms
WPF

Routing and navigation
Static files
Dev Tools
Reuse components
Security

Overview
Security considerations

Is it yet possible to compile a WASM Blazor app using AOT into pure .wasm files, with no .dll or .bin downloads?  If so, is it possible to split these .wasm files into chunks much like a JS SPA app would be?  I'd like Blazor to get to a stage where my app is served in several chunks (each a .wasm file with DLL code obfuscated enough to get past firewalls), where you have the chunks split up intelligently for optimal caching.  For instance, one chunk could just contain commonly-used DLL code that is likely not to change, such as System.Collections.Generic.  Another could contain other .NET framework dependencies for the app.  Another could contain Nuget package dependencies, and another could contain the remaining app code (most likely to need regular updates).

@jez9999 ... That discussion is taking place on https://github.com/dotnet/aspnetcore/issues/36978.


Upgrade k8s.io/* to v0.28, sigs.k8s.io/controller-runtime to v0.16

How to categorize this PR?

/area open-source
/kind enhancement
What this PR does / why we need it:
This PR vendor<EMAIL_ADDRESS><EMAIL_ADDRESS>and<EMAIL_ADDRESS>and adapts to the breaking / most notable changes
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/8382
Special notes for your reviewer:
In draft for -

 patch release of controller-runtime
depending on https://github.com/gardener/gardener/pull/8447

Release note:

The following golang dependencies have been upgraded, please consult the upstream release notes and [this issue](https://github.com/gardener/gardener/issues/8382) for guidance on upgrading your golang dependencies when vendoring this gardener version:
- `k8s.io/*` to `v0.28.2`
- `sigs.k8s.io/controller-runtime` to `v0.16.2`
- `sigs.k8s.io/controller-tools` to `v0.13.0`

`leader-election-resource-lock` flag is dropped and the leader-election resource-lock is hard coded to leases.

Please also update https://github.com/gardener/gardener/blob/00365d6c0fa6fb9053dec6f1e2fa489c53ef53cc/hack/prepare-envtest.sh#L21
and the version in integration tests like https://github.com/gardener/gardener/blob/638a8a8b4bcdd6419dac86b6867aeaedabf45bab/test/integration/resourcemanager/garbagecollector/garbagecollector_suite_test.go#L126

v0.16.2 also contains https://github.com/kubernetes-sigs/controller-runtime/pull/2472, I have not checked in detail, but from https://github.com/kubernetes-sigs/controller-runtime/pull/2425#issuecomment-1715710831, it seems like it fixes what https://github.com/kubernetes-sigs/controller-runtime/pull/2425 was trying to.

/retest-required

/hold
Something wrong is going on with GitHub changes pushed to the branch is not getting reflected in PR.