Update or create new Mac installers for Big Sur

Users have reported on issues #14218 and #14222 that our Mac installers are not working on Big Sur (they simply crash at startup). So it'd be nice if for our next version we can make them work for that Mac version.
@mrclary, could you take care of this one?

I'll have to upgrade to Big Sur first to test it out. Is Big Sur available yet for GitHub Actions? It may be as simple as running the build on the new OS. But then we'll need to check that it's backward compatible. If not, we can add multiple operating systems to the matrix build...

Okay, I've caught up on those issues mentioned, including #14256. I'm not sure that we'll need to change anything for the Mac installer. It looks like updating Qt and/or adding QT_MAC_WANTS_LAYER to start.py will resolve the issue. Am I wrong?

Nevertheless, I'll update one of my computers to Big Sur to test the build process and backward compatibility.

My understanding is that updating Qt from 5.9 to 5.12 resolves the sluggishness of the editor (at least partially) and using  QT_MAC_WANTS_LAYER=1 allows the app to be launched. I am not sure why sometimes  QT_MAC_WANTS_LAYER is needed (for me with conda python) and sometimes not (for me with brew python).
Seeing how this is quite a bad issue and a lot of people are updating to Big Sur, should we consider releasing 4.2.1 sooner than planned?

@impact27, I understand your concern. However, we're trying to adjust our schedule to release a new version every six weeks and making a new release now would disrupt our planning for the next six months (yes, we're also trying to make longer term plans). Fortunately, there's now a workaround and people will be able to use Spyder in the meantime.
Another possibility would be to generate a new installer only with PR #14256 (which is a very simple patch) and make an announcement about it. But for that we'd need to change our Github action to upload a new artifact not only on_release,  but also when instructed and applying certain patches (or copying files to certain locations). @mrclary, what do you think?

@ccordoba12 @impact27, I suppose what we are really talking about is "hot fixes", but I don't have the experience to say how that should be handled. But for now, I think the easiest thing is for users to grab the artifact from the PR build of #14256. We've instructed others to do this for the purpose of testing before.
Indeed, there is no reason why this can't be done for other issues either (such as #14269). If there are a few of these issues that can be resolved fairly quickly, then their PRs could easily be rebased on top of each other before, and before we make any substantive updates to the code base, then we could point users to the last PR build as a "patch" until our next scheduled release (in ~month).
I don't see any reason why this couldn't be a standard option for app users: the next release is always at most about 6 weeks away; if an issue is so important that they can't wait, then any relevant PR build should carry them through...

Ultimately, post build testing is required to preempt issues such as #14269, and testing new (beta) operating systems in advance of their release would help us preempt issues such as #14222. Is it possible to get beta operating systems for Github Actions?

Hey @mrclary, sorry for not answering this one but in the end I decided to not update our installers and leave them to be fixed in 4.2.1.
I'd just like to ask you: is the full installer working on Big Sur?
@impact27, if you're in Big Sur already, could you give us a hand testing the full installer as well? Thanks!

I'd just like to ask you: is the full installer working on Big Sur?

Unfortunately, I am unable to test at this time. I have two computers: my personal iMac (late 2013), which I discovered will not support Big Sur; and my work Macbook Pro 16" (really nice!), which I'm currently prohibited from updated to Big Sur at this time.
I expected to install Big Sur in VMWare Fusion on my Macbook, but was unable to do so. I seem to have been able to successfully create the installer iso disk image, but VMWare won't bootup into it for installation...
If anyone has some insight here, I'd greatly appreciate it.

@ccordoba12 , I now have access to Big Sur on a separate machine. I can confirm that our latest 4.2.1 macOS installer (which includes the QT_MAC_WANTS_LAYER fix) does work on macOS 11.1. I have not yet tested building on 11.1 yet, but I don't think that is an issue at this time since building on Catalina is working just fine.
I think we can close this issue. When our GitHub action runs-on: macos-latest actually moves to Big Sur, we can investigate any issues that may arise. In particular, we may want to watch for the ability to build on Apple silicon as well.

@ccordoba12 , I now have access to Big Sur on a separate machine. I can confirm that our latest 4.2.1 macOS installer (which includes the QT_MAC_WANTS_LAYER fix) does work on macOS 11.1. I have not yet tested building on 11.1 yet, but I don't think that is an issue at this time since building on Catalina is working just fine.
I think we can close this issue. When our GitHub action runs-on: macos-latest actually moves to Big Sur, we can investigate any issues that may arise. In particular, we may want to watch for the ability to build on Apple silicon as well.

I can confirm that our latest 4.2.1 macOS installer (which includes the QT_MAC_WANTS_LAYER fix) does work on macOS 11.1

That's great to know! Thanks for the confirmation.

I think we can close this issue. When our GitHub action runs-on: macos-latest actually moves to Big Sur, we can investigate any issues that may arise. In particular, we may want to watch for the ability to build on Apple silicon as well.

I think we should keep building our installers in Catalina for all people that don't want or is unable to upgrade to Big Sur.

I can confirm that our latest 4.2.1 macOS installer (which includes the QT_MAC_WANTS_LAYER fix) does work on macOS 11.1

That's great to know! Thanks for the confirmation.

I think we can close this issue. When our GitHub action runs-on: macos-latest actually moves to Big Sur, we can investigate any issues that may arise. In particular, we may want to watch for the ability to build on Apple silicon as well.

I think we should keep building our installers in Catalina for all people that don't want or is unable to upgrade to Big Sur.


Review all ScanCode.io "strings" for consistency,

Review all ScanCode.io "strings" for consistency, for example:

models help_text
success/error messages
command-line help
logging messages

@hyounes4560 a new DockerWindows pipeline and related pipes were merged.
It would be great to review and adjust those 2 files are well (docstring + all string as described above) as part of this ticket.
Content in:

scanpipe/pipelines/docker_windows.py
scanpipe/pipes/windows.py

@tdruez will do.


Easy way to locate and delete the CLIP models?

So, I traced where the models are saved somewhere in:
C:\Users\HOME.cache
Is it possible to have a tab for managing downloaded CLIP models?
A UI indicator of which models has been downloaded would be nice too.
I kinda messed up and tried almost every CLIP model before finding out my C drive is starting to get filled to the brim.
Also, anyway to include deepdanbooru model? Other interrogator seems to use .onnx

The model files for me are stored in:
stable-diffusion-webui/models/BLIP
The cache folder might just be where they're downloaded temporarily until they're moved to their final home. That's a local OS setting. On my system they download to the BLIP folder with a temporary filename like tmp75esz16w.


add facebook license

see: https://github.com/superkhau/lice/issues/18, https://github.com/superkhau/lice/issues/15

@superkhau needa  new release


"Liked Songs" menu icon is very bad

which one is active?

The icons you're using are not from this theme and the liked icon is always solid, on base Spotify too.

The icons you're using are not from this theme
what you mean?

liked icon is always solid, on base Spotify too
really bad design so

You probably have other extensions installed like Fluent.js which are changing the icons

[Setting]
spotify_path            = /opt/spotify
prefs_path              = /home/chibo/.config/spotify/prefs
current_theme           = DribbblishDynamic
inject_css              = 1
replace_colors          = 1
overwrite_assets        = 1
color_scheme            = base
spotify_launch_flags    =
check_spicetify_upgrade = 0

[Preprocesses]
disable_sentry        = 1
disable_ui_logging    = 1
remove_rtl_rule       = 1
expose_apis           = 1
disable_upgrade_check = 1

[AdditionalOptions]
extensions            = fullAppDisplay.js|hidePodcasts.js|dribbblish-dynamic.js
custom_apps           = reddit|new-releases|lyrics-plus
sidebar_config        = 1
home_config           = 1
experimental_features = 1


[5.4] Add App\User to Guard::user() possible return values

I personally almost always stick with the default App\User model and this provides autocompletion for custom methods defined on it in IDEs like PhpStorm.

For those who choose to change the default location of User model it will make no difference.

It doesn't make a lot of sense to put \App\User in the framework.


incorrect namespace

These interfaces and functions are incorrectly placed under the "Reader" namespace because they can also be used for Writer:

src/Reader/Filter
src/Reader/SortableDataInterface.php
src/Reader/FilterableDataInterface.php
src/Reader/Sort.php
DataReaderInterface#withLimit()

Example SQL update:
UPDATE `table` SET values... WHERE <filters> ORDER BY <sorters> LIMIT <limit>

Additional info

Q
A

Version
1.0.0 under development

PHP version
-

Operating system
-

and \Yiisoft\Data\Reader\OffsetableDataInterface: mongodb support inserting at position (see $position). I can imagine that there is an API endpoint that can write to a position similarly.

While such SQL makes sense, I see no use for filtering in case of writer. We have data we want to write already, it's easier and more efficient to filter data with simple foreach than by passing unfiltered data array to writer along with saving criteria.

Example SQL update:

This looks like MySQL-specific. AFAIK limit and order are not directly supported in update queries by most of DBMS.

@rob006 This is a generic Writer layer, if you have the opportunity somewhere, it is advisable to plan into the layer.

I still don't see any practical application for using filters with a data writer. We have our data, we can prepare it right away before sending it to writer. That has both simplicity and performance benefits.

I can't really see what the Writer interface is all about. I assumed that ActiveRecord would use this too, hiding the write layer, e.g. so that I can swap one NoSQL under it for another NoSQL without changing ActiveRecord class.
$ar->field2 = '22';
$ar->save();

// $ar->save() --> $db->writer() -> writer->write();
$db->writer->withFilters(new Equals('id',  $ar->id))->write($ar->changedAttributes());

I implemented more database server under yii2, and I find this solution easier to implement and more flexible.

I can't really see what the Writer interface is all about.

Having array of data items, persist all of them.

$db->writer->withFilters(new Equals('id',  $ar->id))->write($ar->changedAttributes());

Why do you need withFilters here? Also, changed attributes isn't writer concern. That's internal thing of a possible AR specific implementation.

It's ok, if run INSERT, but if require UPDATE?
$writer = new ActiveRecordDataWriter(User::class);
$writer->write($data);

I don't really see why Writer filters are provided wit AR, whereas Reader filters are not.
$db->writer->withFilters(new LessThan('id',  88))->write($attributes);
// === yii2 AR->updateAll($attributes, ['<', 'id', 88]);

If I use simple types, I just need to replace the Writer and write to almost any target destination (RDBMS, NoSQL, Redis), eg with custom BasicActiveRecord. If ActiveRecord does this (why?), Then I need to create a N versions of class because they must extends from different classes.
Nonetheless, I already understand that this is not a real Writer layer, but some very simplified implementation, and I probably need to see the rest of the system to understand why.

Yes, that wasn't meant to replace AR or provide full-featured abstraction over any storage. Let's assume it won't be needed to reuse filters for writer.


Update http4s-blaze-client, http4s-circe, ... to 1.0.0-M29

Updates

org.http4s:http4s-blaze-client
org.http4s:http4s-circe
org.http4s:http4s-client
org.http4s:http4s-core
org.http4s:http4s-dsl
org.http4s:http4s-server

from 1.0.0-M21 to 1.0.0-M29.
GitHub Release Notes - Version Diff
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!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-pre-release

Superseded by #219.


Make the pid file match the defaults in the init

This change shouldn't be breaking but will not actually make a meaningful change to the system until the service is restarted. But some testing might be good.
Fixes #28

Since #34 greatly enhances the test suite, may want to hold off on a merge and rebase to that?

Agreed. After #34 I will rebase

Since it seems #34 is dead in the water we may just want to merge this now and I'll work on a separate PR to upgrade the test suite, etc.

While I am here I will get this whipped up into a release shortly.

Actually, did you want to hold off on this until we get the suite in better shape on master?

Actually, did you want to hold off on this until we get the suite in better shape on master?

not unless you feel that's a blocker

It seems there is no interest in merging this.
I will close this but please free to re-open if it is viable for merge


settings: Change the how we tell the user we saved their changes.

Fixes #7622.

Language Setting:

Also now I made a function for the  set_margin and display_checkmark  to address the DRY concept.

Resolved Merge conflicts.

Thanks @Balaji2198!
One thing that will help review this is having one commit that just changes all the messages (to "Saved", "Save failed", etc), and then the rest in a commit on top of that.

@rishig  Updated. Ready to review.

@shubhamdhama Thanks for the review. Updated. All the tests are passing now.

There's several visual glitches with this; @brockwhittaker can you help out with making this look correct?  The big things I notice are:

The spacing after the header increases when one of these indicators is shown/hidden
The spacing between the check and the text feels off

Merged as 5aa7098c81af2330af73054dceed3f0fbd240d66, thanks to @Balaji2198 and @brockwhittaker (for making this look a lot better).


Libsql support

Libsql (https://github.com/tursodatabase/libsql) is an open contribution fork of sqlite. It adds a lot of features including server replication and vector search. Some people have expressed interest in sponsoring the work to get it working within op-sqlite, I would be willing to tackle the job but it looks like multi day work so I need to make time (= money) to reserve the time for it.

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

There is a version out that supports libsql:
<EMAIL_ADDRESS>enable it by modifying the package.json:
"op-sqlite": {
  "libsql": true
}

Caveats:

Hooks are not supported
Reactive queries are not supported
Multiple statements in a single query are not supported

There is a new version 6.0.2-beta4 adds support for remote connections:
import {openRemote} from '@op-engineering/op-sqlite';

const remoteDb = openRemote({
  url: 'my_url',
  authToken: '...'
});

There is a version out that supports libsql:
<EMAIL_ADDRESS>
enable it by modifying the package.json:
"op-sqlite": {
  "libsql": true
}

Caveats:

Hooks are not supported
Reactive queries are not supported
Multiple statements in a single query are not supported

This version is using experimental C bindings from libsql, so some features might be broken. Give it a thorough test and report any issues here please.

Awesome work, great to see libsql in RN, wondering is libsql missing the update hooks c bindings, if so,  it really miss very important feature.

No, it's not about the bindings, they don't support it.

They are discussing such a Proof of Concept update hook.


UIA: incorrect move to previous word

Since #7677 was merged:
In the NVDA Python console (NVDA+control+z):
Word
>>> # In a Word document (accessed VIA UIA, positioned on the start of the text "My name is Carlos"):
>>> ti=nav.makeTextInfo("caret")
>>> ti.expand("word")
>>> ti.text
'My '
>>> ti.collapse() # Make a degenerate range (move end to start)
>>> ti.move("word", 1)
1
>>> ti.expand("word")
>>> ti.text
'name '
>>> ti.collapse()
>>> ti.move("word", -1)
-1
>>> ti.expand("character")
>>> ti.text
'M' # GOOD

conhost
>>> # Now, in Conhost
>>> ti=nav.makeTextInfo("caret")
>>> ti.expand("word")
>>> ti.text
'C:\\Users\\codeofdusk>My '
>>> ti.collapse() # Make a degenerate range (move end to start)
>>> ti.move("word", 1)
1
>>> ti.expand("word")
>>> ti.text
'name '
>>> ti.collapse()
>>> ti.move("word", -1)
-1
>>> ti.expand("character")
>>> ti.text
' ' # BAD

Cc @carlos-zamora.

@DHowett Any chance this could be 21H1 instead?

I split up your codeblock and introduced section headers because I got a bit confused when reading it.

@codeofdusk I renamed the "21H1" milestone to "Windows vNext". They mean the same thing, but they don't use our internal version designators or make any guarantees about when they're going to be released. :smile:


KONG performance break down while updating entity via admin API

Summary

Kong version 2.2.1

We are currently facing a production issue. Once we apply a change via PATCH on one particular route entity, KONG nodes are not able to operate on normal level anymore. It does not accept requests or at least processing it is very slow. See some statistics attached.

Also latency explodes in such a time.

How to find out if we suffer from bad performance during cache invalidation?
We run a six node cluster using cassandra as a datastore. We cannot see any problems on database level. As per documentation (at least this is what I understand) only particular cache key will be invalidated once it was updated and not whole cache. Why do I face issues on all services/routes when changing only one particular entity?
We use 2.2.1 version. I don’t have any clue how to identify the root cause :frowning:
Thanks in advance
Henning

@23henne do you have worker_consistency set to strict or eventual?
https://github.com/Kong/kong/blob/master/kong.conf.default#L1309

Good catch, it defaults to strict. So, we will try with eventual to enhance performance. This sounds very promising!!!

@23henne, yes let's see if we can drop strict on 3.x. Let us know if that helped.

@bungle
Unfortunately, it did neither fix nor mitigate the issue :(
Questions

Admin API request often takes 10 or more seconds. When should request be finished - immediately or once change was propagated to all worker processes?
How is cache refresh working? As per documentation only updated entities will be invalidated. So no need to rebuild whole cache?
We have 1000 routes in place. Do we reach some limit or should KONG be capable to handle it?
Does it care whether this update request affects a route which currently has lots of active traffic or not?

Thanks
Henning

Hello @23henne.

Slow admin API calls are not normal. I would say if a PATCH request takes seconds to finish, maybe it is worth investigating to see if there is any performance issue with the DB.
That's correct.
1000 routes are generally not a problem. Router rebuild is mostly a CPU bound operation, but it does need to read all routes from the DB, so a slow DB will slow down router rebuild.
It shouldn't. That's the purpose of the eventual consistency setting.

Thanks @dndx !
We really don't have a clue. We cannot see any bottleneck on DB level.
One question as we use 2.2.1 version. I can see PR  concerning worker consistency coming with 2.3.3.
Might this exactly be our problem?

Hi @23henne!
#6833 is related to upstream entities, it should not matter if you are not patching an upstream. Anyway, we recommend you to upgrade to the most recent version.

Do you see any [error] messages in the error.log?
Can you share more details on your PATCH request?
What is the behavior during the low performance period? Do clients get connection refused errors, timeouts, 500s?

Hello @locao!
We upgraded to 2.4.1 last week. Let's say, 'perceived performance' is better, e.g. we can fire 10 PATCH requests in a row, firsts are very fast (<300 ms), future requests 6,7,8 might take longer (up to 9 seconds). We will add response times to admin API access logs to have reliable values. During our tests also latencies for customer requests were not that high as it was with former version but maybe it's just coincidence.
Coming back to your questions:
Do you see any [error] messages in the error.log?
Yes, I can see timeouts during healthchecks on upstream targets and DNS resolution.
2021/07/06 10:57:36 [error] 67872#0: *9959743 [lua] healthcheck.lua:1104: log(): [healthcheck] (dcbc966e-8f84-47ec-8b85-92a157f5ee98:ws_xxx) failed to receive status line from 'x.x.x.x (x.x.x.x:xxxxx)': timeout, context: ngx.timer, 67872#0: *9959743 [lua] healthcheck.lua:1104: log(): [healthcheck] (dcbc966e-8f84-47ec-8b85-92a157f5ee98:ws_xxx) failed to receive status line from 'x.x.x.x (x.x.x.x:xxxxx)': timeout, context: ngx.timer
2021/07/06 10:57:40 [error] 200960#0: *9233671 [lua] balancer.lua:1061: execute(): DNS resolution failed: dns client error: 101 empty record received. Tried: ["(short)xxxxx:(na) - cache-miss","xxxxx:1 - cache-miss/in progress (sync)/try 1 error: failed to receive reply from UDP server xxxxx:53: timeout/scheduled/querying/try 2 error: timeout/dns lookup pool exceeded retries (1) ....
But we know such targets were available.
Can you share more details on your PATCH request?
It's patching an existing route resource changing response_buffering to false. That's it.
What is the behavior during the low performance period? Do clients get connection refused errors, timeouts, 500s?
I can see high amount of HTTP 408, 499, 502, 503.
To be honest if I'd not know it better for me it looks like we hit some kind of TCP or resource limit. It is striking that we have huge CPU consumption during this time frame. I thought it was caused by update propagation, that's why it was very promising to play with worker consistency setting.

It is really strange. Maybe it's worth to mention that we have 2k RPS on our 6 instances.

Hello @23henne ,
Could you check your DNS resolver's performance? If the DNS resolver is slow then it may cause new requests to be blocked on DNS resolution after PATCH.

Hi @23henne, could you try using target IP addresses instead of host names, so we can pinpoint if this is related to DNS or not?
Out of curiosity, unrelated to this issue, are you using https to active health check the upstreams?

@locao, are we talking about upstreams? We don't use hostnames in there! But we also have service targets which are not referring to KONG upstreams but some other destination using domain name.
We use active health check but is HTTP, not HTTPS.

And this applies for all cluster nodes. I have no clue.

Same today morning, migrated three services to new targets (used kong decK in this case).
[27/Jul/2021:07:52:25 +0200] "PUT /services/afef86df-fc60-4315-be88-87a0eb71ec6f HTTP/1.1" 200 408 "-" "Go-http-client/1.1"
[27/Jul/2021:07:52:25 +0200] "PUT /services/deb08b99-613e-4778-8c28-77b33674f87d HTTP/1.1" 200 406 "-" "Go-http-client/1.1"
[27/Jul/2021:07:52:25 +0200] "PUT /services/9323fada-fde3-4e9f-bb7a-0d358739b72b HTTP/1.1" 200 428 "-" "Go-http-client/1.1"
[27/Jul/2021:07:52:25 +0200] "PUT /services/9d896f92-4c14-46b6-bf86-66697187c772 HTTP/1.1" 200 415 "-" "Go-http-client/1.1"
[27/Jul/2021:07:52:25 +0200] "PUT /plugins/3da583e2-c5ea-4a0f-9842-15d6c1a26352 HTTP/1.1" 200 248 "-" "Go-http-client/1.1"

Latency explodes, request time per routes increases up to nearly one minute (for all services, not only the one I touched before).

CPU maxes out on all nodes of the cluster.

Hello @23henne,
Could you share us the debug level logs for Kong when the latency spike happens?

Unfortunately, we are not able to reproduce it on one of our preprod environments. We enabled debug on one of our let's call it slave machines (which are not used for admin API communication) while problem occurred. As it's production data will take some time to review and anonymize it.
What we did see while facing the problem is nginx processes were completely busy (i.e. 100% CPU usage).

Even if four worker processes should be enough we gave it a try increasing to 16 (we have 28 cores available on this machine). As a consequence it was 16 processes busy instead of four 😄 I was really interested what they did in this moment.

Hello @23henne,
Yeah, please share the debug logs with us once it is ready. If you don't feel comfortable uploading it on GitHub, you can also email the logs to me at:
datong.sun-konghq.com (replace - with @)
Just mention the issue # in the email.
Also, your system CPU usage isn't that high (84% idling), I wonder if increasing the number of Nginx workers on the machine can help reduce the CPU usage of individual workers?

Hello @dndx,
thank you, hopefully we can provide logfiles shortly.
As I said we already increased worker processes to 16 per node and also in this case all were more or less busy. Don't you think it was enough? Shame on me but I didn't execute an strace during the issue, maybe it would have helped.
While going thru documentation we found following paragraph concerning mem_cache_size parameter.

We recommend defining the mem_cache_size configuration as large as possible, while still providing adequate resources to the operating system and any other processes running adjacent to Kong. This configuration allows Kong to take maximum advantage of in-memory cache, and reduce the number of trips to the database. Additionally, each Kong worker process maintains its own memory allocations, and must be accounted for when provisioning memory. By default one worker process runs per number of available CPU cores. In general, we recommend allowing for ~ 500MB of memory allocated per worker process. Thus, on a machine with 4 CPU cores and 8 GB of RAM available, we recommend allocating between 4-6 GB to cache via the mem_cache_size directive, depending on what other processes are running alongside Kong.

tbh this confuses me. It defaults to 128M but you recommend 500M or as large as possible.
Maybe you can help us to find a proper sizing for our demands.

common dayload about 2000 RPS in total
6 instances running on 6 physical nodes (having 64GB RAM + 28 cores (Intel(R) Xeon(R) Gold 6132 CPU @ 2.60GHz))

This is what our current configuration looks like. We were also wondering if it was worth it to play with update frequency parameters.
prefix = /abc/apps/kong-pu/

log_level = warn

proxy_access_log = /abc/logs/kong-pu/access.log kong_proxy if=$keeplog
proxy_error_log = /abc/logs/kong-pu/error.log

admin_access_log = /abc/logs/kong-pu/admin_access.log
admin_error_log = /abc/logs/kong-pu/error.log

plugins = bundled,kong-plugin-redirect,kong-page-mgmt-redirect,error-transformer-handler
anonymous_reports = off
proxy_listen = <IP_ADDRESS>:10480 reuseport backlog=16384, [fddf:a139:1004:500:11:1111:1111:1111]:10480 reuseport backlog=16384, <IP_ADDRESS>:10443 reuseport backlog=16384, [fddf:a139:1004:500:11:1111:1111:1111]:10443 reuseport backlog=16384
admin_listen = <IP_ADDRESS>:18001 reuseport backlog=16384, [fddf:a139:1004:500:11:1111:1111:1111]:18001 reuseport backlog=16384, <IP_ADDRESS>:18444 http2 ssl reuseport backlog=16384, [fddf:a139:1004:500:11:1111:1111:1111]:18444 http2 ssl reuseport backlog=16384
status_listen = <IP_ADDRESS>:10481, [fddf:a139:1004:500:11:1111:1111:1111]:10481
nginx_worker_processes = 16
nginx_events_worker_connections = 1024
nginx_main_worker_rlimit_nofile = 32768
headers = off
nginx_admin_include = /abc/conf/kong-pu/nginx-admin.conf
nginx_http_lua_shared_dict = prometheus_metrics 20m
database = cassandra
cassandra_contact_points = <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>
cassandra_port = 9042
cassandra_keyspace = kong_pu
cassandra_username = kong_pu
cassandra_password = topsecret1234
db_update_frequency = 5
db_update_propagation = 2
worker_consistency = eventual
lua_package_path = ./?.lua;./?/init.lua;/pkg/moip/env/kong/plugins/kong-plugin-redirect/?.lua;/pkg/moip/env/kong/plugins/kong-page-mgmt-redirect/?.lua;/pkg/moip/env/kong/plugins/kong-plugin-error-transformer-handler/?.lua;;

Thank you so much
Henning

As I said we already increased worker processes to 16 per node and also in this case all were more or less busy.

It is most probably a router rebuild that is happening there. Router is rebuilt on each worker when you change settings (more workers more work to be done). If you change things in batch, e.g. multiple changes, it may rebuilt router multiple times. Eventual rebuilding happens on background, but it is still work to be done.

Sure, but it should never block complete environment for several minutes.

We set mem_cache_size = 8192m but still faced an outage on production today.
This is what was issued via admin API.
[11/Aug/2021:08:00:13 +0200] "PUT /services/some-service/routes/some-route-2786 HTTP/1.1" 200 599 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "GET /routes/1de06a5d-3779-4208-91a7-7bce524e86c7/plugins HTTP/1.1" 200 587 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /routes/1de06a5d-3779-4208-91a7-7bce524e86c7/plugins/b726245f-66d4-46da-9f68-d567b8a7e6cf HTTP/1.1" 200 564 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /services/some-service/routes/some-route-2787 HTTP/1.1" 200 599 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "GET /routes/d9e0fe1d-0e33-4276-8cc3-89c7feb6d210/plugins HTTP/1.1" 200 587 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /routes/d9e0fe1d-0e33-4276-8cc3-89c7feb6d210/plugins/e5c84ac7-5bd2-4626-8420-4e7ee2b7a8c4 HTTP/1.1" 200 564 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /services/some-service/routes/some-route-2790 HTTP/1.1" 200 601 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "GET /routes/e1477a2e-6279-4130-bffb-d01326c869bc/plugins HTTP/1.1" 200 589 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /routes/e1477a2e-6279-4130-bffb-d01326c869bc/plugins/08174b71-13fb-4d5b-a5c3-47fca35a7683 HTTP/1.1" 200 566 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /services/some-service/routes/some-route-2788 HTTP/1.1" 200 599 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "GET /routes/f80dcada-4bb6-4e06-a3dd-9f50cf7274ad/plugins HTTP/1.1" 200 587 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /routes/f80dcada-4bb6-4e06-a3dd-9f50cf7274ad/plugins/b1e0e5b2-47ac-4155-b948-1ed80fbbbf4b HTTP/1.1" 200 564 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /services/some-service/routes/some-route-2789 HTTP/1.1" 200 600 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "GET /routes/55915ac9-c788-4ba2-a5d6-6a44f68cbc2a/plugins HTTP/1.1" 200 588 "-" "Java-SDK"
[11/Aug/2021:08:00:13 +0200] "PUT /routes/55915ac9-c788-4ba2-a5d6-6a44f68cbc2a/plugins/6965553d-d492-4deb-9ffe-b0cc303d4fb2 HTTP/1.1" 200 565 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "PUT /services/some-service/routes/some-route-2791 HTTP/1.1" 200 602 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "GET /routes/5612edf4-9554-4da2-95bf-862a944fb1a5/plugins HTTP/1.1" 200 590 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "PUT /routes/5612edf4-9554-4da2-95bf-862a944fb1a5/plugins/3647df43-123f-4bf6-98cd-5d49380c77e7 HTTP/1.1" 200 567 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "PUT /services/some-service/routes/some-route-3301 HTTP/1.1" 200 519 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "GET /routes/d2dcaf9f-2fae-4492-b49d-4af7a5af0085/plugins HTTP/1.1" 200 23 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "POST /routes/d2dcaf9f-2fae-4492-b49d-4af7a5af0085/plugins HTTP/1.1" 201 445 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "PUT /services/some-service/routes/some-route-299 HTTP/1.1" 200 510 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "GET /routes/26061cf8-79e2-44b5-8af1-7aed340841fb/plugins HTTP/1.1" 200 23 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "POST /routes/26061cf8-79e2-44b5-8af1-7aed340841fb/plugins HTTP/1.1" 201 397 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "GET /routes?tags=some-tag HTTP/1.1" 200 54062 "-" "Java-SDK"
[11/Aug/2021:08:00:14 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQwYjQ2MzIzNS00N2E1LTQwNWItYTU1NC02ZGFlOTM1NDk3NmTwf%2F%2F%2Fm%2FB%2F%2F%2F%2Bb&tags=some-tag HTTP/1.1" 200 53703 "-" "Java-SDK"
[11/Aug/2021:08:00:15 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQxNGU2MGY0My0yZmQwLTQ3OWUtOTQ3Ni03MDdhZDE4OWI1Y2Pwf%2F%2F%2FN%2FB%2F%2F%2F83&tags=some-tag HTTP/1.1" 200 53918 "-" "Java-SDK"
[11/Aug/2021:08:00:15 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQxZTE0Y2NhMi00MmIyLTQyMjEtOWU2Ni1mZGE4OTMxZWEwZGHwf%2F%2F%2B0%2FB%2F%2F%2F7T&tags=some-tag HTTP/1.1" 200 53908 "-" "Java-SDK"
[11/Aug/2021:08:00:15 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQyN2I2MDRjZi05MzA4LTQ4ODQtOGE4Zi01YjU4ZDc2NDE4Nzbwf%2F%2F%2Bb%2FB%2F%2F%2F5v&tags=some-tag HTTP/1.1" 200 54346 "-" "Java-SDK"
[11/Aug/2021:08:00:16 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQyZjc5ZTA4Zi03MTM2LTQ2OTItYjg1Yi05NDk1NTBhNzc1OWTwf%2F%2F%2BC%2FB%2F%2F%2F4L&tags=some-tag HTTP/1.1" 200 53566 "-" "Java-SDK"
[11/Aug/2021:08:00:16 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQzOTJmZDE0OC0zMDFjLTQ2YmItODYwNi04NmEzMmM2N2UzOTnwf%2F%2F9p%2FB%2F%2F%2F2n&tags=some-tag HTTP/1.1" 200 53576 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ0MjEwNzhhOC02OTMwLTQ0ZGEtYmMzYy1hMjdhMzk2MzY4ZmXwf%2F%2F9Q%2FB%2F%2F%2F1D&tags=some-tag HTTP/1.1" 200 53731 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ0YWNjOGVjMi1jMmFiLTQ5M2MtOTU4NC03NDUzZjFhOWE0ZmHwf%2F%2F83%2FB%2F%2F%2Fzf&tags=some-tag HTTP/1.1" 200 53932 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ1NDE3OWZlMC01MDFjLTQzNWMtODIwZC00NGE4ZDM3NzQxM2bwf%2F%2F8e%2FB%2F%2F%2Fx7&tags=some-tag HTTP/1.1" 200 53911 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ1YzliNjU2Ny1mNjU2LTQ2MmYtOGQ3Mi00ZGU1ZGI1ODFmNTbwf%2F%2F8F%2FB%2F%2F%2FwX&tags=some-tag HTTP/1.1" 200 53984 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ2NjY0NTI0Ni1hNWQzLTRlNWYtOTRiMi1kMjI2Y2Q0ZTFlMTTwf%2F%2F7s%2FB%2F%2F%2Fuz&tags=some-tag HTTP/1.1" 200 53745 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ2ZjQ0ZTgwNC1lZTdjLTRlNTEtODdlMS1lYzAxMmFjOWRmMmbwf%2F%2F7T%2FB%2F%2F%2FtP&tags=some-tag HTTP/1.1" 200 53849 "-" "Java-SDK"
[11/Aug/2021:08:00:19 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ3N2JiNGQ4OS1iMDZkLTRiZTktOWY1MS01NmIzYzU1Y2MyNTbwf%2F%2F66%2FB%2F%2F%2Frr&tags=some-tag HTTP/1.1" 200 53931 "-" "Java-SDK"
[11/Aug/2021:08:00:19 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ4MGMyZDEwYS0zN2M4LTRlNGMtYWI3MC05NDgxYjJmMTY4N2Lwf%2F%2F6h%2FB%2F%2F%2FqH&tags=some-tag HTTP/1.1" 200 53852 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ4OTQ1MzQyMS05YThmLTQwNDEtOTBlOS05MGM1YTEyMDhlYWHwf%2F%2F6I%2FB%2F%2F%2Foj&tags=some-tag HTTP/1.1" 200 53534 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ5MzcxMTExZC01YTczLTRkOTUtYTQ1ZC0wNTE4NzkxMWMzYTLwf%2F%2F5v%2FB%2F%2F%2Fm%2F&tags=some-tag HTTP/1.1" 200 53720 "-" "Java-SDK"
[11/Aug/2021:08:00:16 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQzOTJmZDE0OC0zMDFjLTQ2YmItODYwNi04NmEzMmM2N2UzOTnwf%2F%2F9p%2FB%2F%2F%2F2n&tags=some-tag HTTP/1.1" 200 53576 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ0MjEwNzhhOC02OTMwLTQ0ZGEtYmMzYy1hMjdhMzk2MzY4ZmXwf%2F%2F9Q%2FB%2F%2F%2F1D&tags=some-tag HTTP/1.1" 200 53731 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ0YWNjOGVjMi1jMmFiLTQ5M2MtOTU4NC03NDUzZjFhOWE0ZmHwf%2F%2F83%2FB%2F%2F%2Fzf&tags=some-tag HTTP/1.1" 200 53932 "-" "Java-SDK"
[11/Aug/2021:08:00:17 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ1NDE3OWZlMC01MDFjLTQzNWMtODIwZC00NGE4ZDM3NzQxM2bwf%2F%2F8e%2FB%2F%2F%2Fx7&tags=some-tag HTTP/1.1" 200 53911 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ1YzliNjU2Ny1mNjU2LTQ2MmYtOGQ3Mi00ZGU1ZGI1ODFmNTbwf%2F%2F8F%2FB%2F%2F%2FwX&tags=some-tag HTTP/1.1" 200 53984 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ2NjY0NTI0Ni1hNWQzLTRlNWYtOTRiMi1kMjI2Y2Q0ZTFlMTTwf%2F%2F7s%2FB%2F%2F%2Fuz&tags=some-tag HTTP/1.1" 200 53745 "-" "Java-SDK"
[11/Aug/2021:08:00:18 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ2ZjQ0ZTgwNC1lZTdjLTRlNTEtODdlMS1lYzAxMmFjOWRmMmbwf%2F%2F7T%2FB%2F%2F%2FtP&tags=some-tag HTTP/1.1" 200 53849 "-" "Java-SDK"
[11/Aug/2021:08:00:19 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ3N2JiNGQ4OS1iMDZkLTRiZTktOWY1MS01NmIzYzU1Y2MyNTbwf%2F%2F66%2FB%2F%2F%2Frr&tags=some-tag HTTP/1.1" 200 53931 "-" "Java-SDK"
[11/Aug/2021:08:00:19 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ4MGMyZDEwYS0zN2M4LTRlNGMtYWI3MC05NDgxYjJmMTY4N2Lwf%2F%2F6h%2FB%2F%2F%2FqH&tags=some-tag HTTP/1.1" 200 53852 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ4OTQ1MzQyMS05YThmLTQwNDEtOTBlOS05MGM1YTEyMDhlYWHwf%2F%2F6I%2FB%2F%2F%2Foj&tags=some-tag HTTP/1.1" 200 53534 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ5MzcxMTExZC01YTczLTRkOTUtYTQ1ZC0wNTE4NzkxMWMzYTLwf%2F%2F5v%2FB%2F%2F%2Fm%2F&tags=some-tag HTTP/1.1" 200 53720 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyQ5ZDUzNTdkZi1jNzMyLTQ5NDYtYmYwOC04MmQ1N2E0ODE2OTHwf%2F%2F5W%2FB%2F%2F%2Flb&tags=some-tag HTTP/1.1" 200 54009 "-" "Java-SDK"
[11/Aug/2021:08:00:20 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRhNTkzYWE5OC05N2MwLTQ5NWEtYWU0My05MjliZjg3MjAyNjHwf%2F%2F49%2FB%2F%2F%2Fj3&tags=some-tag HTTP/1.1" 200 53762 "-" "Java-SDK"
[11/Aug/2021:08:00:21 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRhYzc5YTMwZS0wZGM2LTRmZTQtYWMzOC1mZjgyYzkwODRjYWTwf%2F%2F4k%2FB%2F%2F%2FiT&tags=some-tag HTTP/1.1" 200 54056 "-" "Java-SDK"
[11/Aug/2021:08:00:21 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRiNTYyY2E4YS0zMzU3LTRkMjktODFmZS0wODZhYTEyZTFiMzLwf%2F%2F4L%2FB%2F%2F%2Fgv&tags=some-tag HTTP/1.1" 200 54100 "-" "Java-SDK"
[11/Aug/2021:08:00:21 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRiZWEzNjI0OC0xZGZmLTQwZTgtYWRlNS02MGUzMDEwODc0NTbwf%2F%2F3y%2FB%2F%2F%2FfL&tags=some-tag HTTP/1.1" 200 54014 "-" "Java-SDK"
[11/Aug/2021:08:00:22 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRjNmU5ZDFiOS03ZjhkLTRlZGUtOTk4OS04MjdhODg0ZmI0NTHwf%2F%2F3Z%2FB%2F%2F%2Fdn&tags=some-tag HTTP/1.1" 200 54198 "-" "Java-SDK"
[11/Aug/2021:08:00:23 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRkMDA3YTNkYy0xODBmLTRiZTYtOGRkZC1lNjdiY2M1ZWFmYTfwf%2F%2F3A%2FB%2F%2F%2FcD&tags=some-tag HTTP/1.1" 200 53993 "-" "Java-SDK"
[11/Aug/2021:08:00:23 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRkOGJkMWEzYy02OTBmLTQyZWEtYmE3OC01YzcwZTUxMTNkMTDwf%2F%2F2n%2FB%2F%2F%2Faf&tags=some-tag HTTP/1.1" 200 53795 "-" "Java-SDK"
[11/Aug/2021:08:00:24 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRkZmUzODk4Mi02ZDhkLTQ0NTUtOTBjZi03NjAzYTI5ODI4Njjwf%2F%2F2O%2FB%2F%2F%2FY7&tags=some-tag HTTP/1.1" 200 53851 "-" "Java-SDK"
[11/Aug/2021:08:00:24 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRlYTcwYzdlZS1lNDI2LTQ5ZDctYWRjNC03NjhhZTVkNGM3Y2Pwf%2F%2F11%2FB%2F%2F%2FXX&tags=some-tag HTTP/1.1" 200 53985 "-" "Java-SDK"
[11/Aug/2021:08:00:24 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRmMzY0ZDA3OC04ZGYwLTRmNzMtYjI3NS1iZDg5NTY5MmU0MWbwf%2F%2F1c%2FB%2F%2F%2FVz&tags=some-tag HTTP/1.1" 200 53999 "-" "Java-SDK"
[11/Aug/2021:08:00:25 +0200] "GET /routes?offset=AC0ABnJvdXRlcyRmYjk5YjQ1Zi04MDI5LTQ1ZWItOGUzZi1jZTAwZjcxMTcyYzjwf%2F%2F1D%2FB%2F%2F%2FUP&tags=some-tag HTTP/1.1" 200 28059 "-" "Java-SDK"
[11/Aug/2021:08:00:27 +0200] "DELETE /routes/4d34120f-237c-4a39-8d89-0adc6fcd7efa HTTP/1.1" 204 0 "-" "Java-SDK"
[11/Aug/2021:08:00:30 +0200] "DELETE /routes/8b986421-1f30-4614-86f0-dd103d27073a HTTP/1.1" 204 0 "-" "Java-SDK"
[11/Aug/2021:08:00:30 +0200] "DELETE /routes/8bd636fa-4826-429f-bcc0-e11815683c8a HTTP/1.1" 204 0 "-" "Java-SDK"

I think it's normal behaviour that we see thousands of entries like below while running an strace on some nginx worker process, isn't it?
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x2101a6f3, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x2101a6f3, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x2101a6f3, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x2101a6f3, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x2100c5e3, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x1dbf5553, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x1c5be343, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x4bf9313, 16709)             = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x44420463, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x1fc7ed33, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
read(149, 0x4c883783, 16709)            = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(26, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
writev(49, [{iov_base="igation__phoe20{position:relativ"..., iov_len=512}, {iov_base="r.navigation--scrolled .navigati"..., iov_len=4096}, {iov_base="vigation__1st-level-subnav:after"..., iov_len=4096}, {iov_base="media (max-width:63.9375em){.nav"..., iov_len=4096}, {iov_base="eded;padding:0;margin:11px 66px "..., iov_len=4096}, {iov_base=".firefox .navigation__switch-bar"..., iov_len=2458}], 6) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)
accept4(56, 0x7fff1b8bcd10, [112], SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)

@23henne because Nginx uses non blocking I/O, EAGAIN on accept is actually normal. It just means the server is busy handling a lot of connections.
One way to rule out the router rebuild as the culprit is to add debug logs to print out timestamps around calls to https://github.com/Kong/kong/blob/master/kong/runloop/handler.lua#L671. If the router rebuild is slow either due to slow DB or slow rebuild, it should be very obvious.
If possible, you can also run https://github.com/kong/stapxx#lj-lua-stacks tool on the offending instance according to the directions to capture the CPU flame graph of the LuaJIT VM, it will also tell you where the CPU time has been spent on.

@dndx We will implement logging enhancement by next week.
Besides that, did you have a change to take a look at DEBUG logs I sent you via mail?
What is also not clear to us - is there any kind of inter-node communcation bypassing database?

Finally, we were able to reproduce the problem on test environments and find the root cause. It is related to the local cache in router.lua, and more precisely to the way it is built.
After update or kong restart, this cache is built from scratch and each incoming request have to review all routes definitions to find the one that matches it. The matching algorithm is that paths definitions in routes which are regular expressions are matched at the beginning and the prefixed definitions (without wildcards) are matched after that.
So, for each incoming URI, which is not in the router local cache and does not match any definition that is the regular expression, but does match the definition that is the prefix, kong have to parse all the regular expressions anyway, which costs a lot of CPU time.
If we have many regex paths definitions (in our case it is more than 3000), it takes a lot of time.  In combination with high incoming traffic it causes a rapid increase in CPU usage.
The situation is made worse by the fact that each nginx worker has a separate local cache to build.
An additional side effect we discovered is that sending many requests which generate 404 errors may lead to a DoS because for each such request, kong has to review all route definitions every time.

@marcinkierus Glad you were able to find the issue. Regex routes in general are very expensive, because they are hard to parallelize. Even softwares like Nginx will run those one by one, essentially being a O(n) solution.
There are possibly some ways to combine multiple regexes into a few bigger automata that can be run simultaneously, but it will require some custom regex engine to work.
Out of curiosity, could you share with us what your 3000 regex routes looks like? Is there any similarities between them that may enable a more efficient search algorithm (e.g. radix tree)?

@dndx  I'd like to create an artificial example to explain our use case, since our ruleset is changing frequently and optimizing one time might not be helpful on the long run:
There are multiple base path we'd like to route to a service serving a specific part our our web portal: eg. /products
This example service is in general responsible for serving html pages about products / product configurations. Now we are required to have the possibility to route any specific part below /products to a different location (redirect) or other service if needed. Importent part: it should be an exact match. Example: /products/redirect should be redirected  but /products/redirect/normal-service should be covered by our original rule for /products.
To achieve this we are currently forced to use regex for exact match, but if we define our rules (like /products) with high trafic as a prefix we observe the performance problems explained above by @marcinkierus, since it's processed at the end of the ruelset. To reduce our problem we currently define high traffic routes which don't have the need for exact matches as regex with priority 1. eg /static(/|$)
In general the number of exact match rules might grow and an alternative approach would be helpful to do exact matches in a less cpu hungry approach.
(I hope I was able to clarify our general situation)

@dndx after further investigation it turned out, that our problem might be related to https://github.com/Kong/kong/issues/7482
First tests are showing that after increasing lua_regex_cache_max_entries to a value greater than the amount of all our existing regex rules, latency and cpu usage look way better during updating entities. Since I consider this more as a workaround than as a solution, I am wondering if this is a limitation of Kong in terms of regex usage? Default value of lua_regex_cache_max_entries is 1024 and our problems started around the time when number of rules exceeded this value.

@23henne Have you solved this problem? I have a similar problem. Update Kong.yml every second ,
http 503 error will appear during pressure test, Kong version 2.8.1，dbless mode

@kanbo please see the latest reply from @maro2289 for a possible workaround of the described issue.

We have similar problem.   After we edit a plugin config , the related route will perform high latency in the first request. We fixed by this related issue :

https://github.com/Kong/kong/pull/8896.


chore: configure Dependabot for GitHub Actions

Codecov Report

Merging #60 (6fd57ae) into master (c1e9161) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #60   +/-   ##
=======================================
  Coverage   92.26%   92.26%
=======================================
  Files           4        4
  Lines         181      181
  Branches       54       54
=======================================
  Hits          167      167
  Misses         13       13
  Partials        1        1

Continue to review full report at Codecov.

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


attempt for platform relation feature

Hi Ricardo,
I'm the colleague of David who try to integrate the vm_platform_relation.
I tried to reverse engineer your Program and create a function for the platform, but my python expertise is not on your level :)
Honestly it feels like I'm on the right way...maybe you can help us to bring it to an end.
Thanks for the Help and the Program so far!!!

merged to dev branch


implement local origin errors

Implements istio/api#1989
Fixes #32645
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[X] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
7a80d9c02f95a09540df6dfd81b15c3ac9fbeab1
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-mc-k8s-tests_istio
0f22bff1306963b646dd11742b7779a9e589a48b
link
/test integ-telemetry-mc-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-telemetry-mc-k8s-tests_istio

@howardjohn changed PTAL

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4f79429014fd9f476897de402b69475c668d17c7
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-k8s-tests_istio

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4f79429014fd9f476897de402b69475c668d17c7
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-k8s-tests_istio

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4f79429014fd9f476897de402b69475c668d17c7
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4f79429014fd9f476897de402b69475c668d17c7
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-k8s-tests_istio

integ-security-multicluster-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4f79429014fd9f476897de402b69475c668d17c7
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-k8s-tests_istio

integ-security-multicluster-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-multicluster-tests_istio

integ-telemetry-mc-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-telemetry-mc-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-multicluster-k8s-tests_istio

integ-telemetry-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-telemetry-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-multicluster-k8s-tests_istio

integ-telemetry-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-telemetry-k8s-tests_istio

integ-pilot-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ramaraochavali: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-multicluster-k8s-tests_istio

integ-telemetry-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-telemetry-k8s-tests_istio

integ-pilot-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-pilot-k8s-tests_istio

integ-security-multicluster-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-k8s-tests_istio

@ramaraochavali: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
a7e86c345e69d0df03e353800ede1c56389e6112
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-k8s-tests_istio


Class security using events

I'm try to check permissions inside events as described in docs:
events:
	beforeUpdate: () ->
		if !Roles.userIsInRole Meteor.user(), ['admin']
			throw new Meteor.Error 403, 'You are not authorized'

But when i call myModel.save() on server side (where it's no need to check permissions) it raises an error:
Exception in callback of async function: Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.

How to check permissions in this case?

Don't use coffee script for sample codes and there is to little context that you're providing. How/where do you call it on the server? What is Roles.userIsInRole?

events: {
    beforeUpdate: function() {
        if (!Roles.userIsInRole(Meteor.user(), ['admin'])) {
            throw new Meteor.Error(403, 'You are not authorized');
        }
    }
}

Roles.userIsInRole from the popular Meteor package https://atmospherejs.com/alanning/roles , but it doesn't matter. I call model.save() from server background task, where Meteor.user() not available.

So it's not a thing related with Astronomy. Your are just calling function which is not available. If it's a background task that it's called on schedule then you certainly can't access user id as there is no user.

I have the same issue here.
Is beforeUpdate server side not knowing Meteor.user() ?

Can I know Meteor.user() in any method ?

Astronomy does not change anything about Meteor.user()

@jagi I know but the issue here is that we want to be able to access Meteor.user() in beforeUpdate, afterUpdate events server side. It seems to be impossible because when we do that, it throws
Exception in callback of async function: Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.

Such error does not mean that it's a bug in Astronomy. Probably you're just calling it in not Meteor method context. Show the code so I will be able to tell more.

Thanks @jagi. I didn't manage to reproduce this bug. Sorry for the trouble and thanks for your help !

Ok no problem


ugprade renterd

This PR upgrades the renterd dependency and moves over some session code we removed on renterd's side. This PR is necessary to prepare hostd for upgrading its core dependency.

closing in favour of https://github.com/SiaFoundation/hostd/pull/185 which includes both

Going to reopen this to make the diff smaller in #185 ... seems like after upgrading core the txn signatures become invalid.


plugin: Update CE Opcode for v6.0

Quick test shows it's working in-game.

Thank you (as always!!).  This is super appreciated.


go/packages: support ad-hoc packages

gopls users have been reporting a common issue - gopls fails outside of $GOPATH without a go.mod file. This is to be expected, because go/packages does not support the file= query on ad-hoc packages. Ideally, go list would support the file= query, eliminating the need for go/packages to implement this support. In the meantime, go/packages should add support for ad-hoc packages.
/cc @matloob

@stamblerre Please apply NeedsInvestigation/NeedsFix and a milestone when opening issues. You are in a better position than the OSP team to triage :)

Sorry, thank you for doing it. I usually try to, but forgot because, for once, it was not my issue to solve :smile:


Support ssl connections

I would like to use ssl connections to connect mysql server.
I added this support using ssl options of mysql2 client.
close #68

example configuration file:
adapter: mysql
database: convergence_test
host: <IP_ADDRESS>
username: root
password:
sslca: /path/to/ca-cert.pem
sslverify: true

LGTM, Thanks 👍


Add new fields to Express Route objects

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Hi @vinayada, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (vinayada). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@azuresdkci add to whitelist


Cancel a task but the Tasks view goes to a wrong state and always shows a running icon

I've noticed that this issue also occurs when you remove the Gradle task's terminal.


Test: To-Entities refactor to get explicit errors.

Few changes in the to-entities test:

Added a const to true/False to is easy to understand if has access or
not in validateConnectivity.
Refactor validateconnectivity to instead of match true/false use the
custom CMDSucess, so errors will print command output.
Move the manifestGet to  the context for entities, so with a simple
read you know what yaml is added.

Signed-off-by: Eloy Coto<EMAIL_ADDRESS>

This change is

test-me-please

test-me-please

I am retracting approval - the tests still are skipped. @eloycoto is this needed for 1.3?

@ianvernon not all the test are skipped (Still two are in place), and in this way the debug of the issues will be much better, so another PR can enable the test.
Happy to wait until enable other test, but I think that can be merged.

@eloycoto you are right, my mistake.


feat(user-auth): add changeUsername mutation

Signed-off-by: khanjasir90<EMAIL_ADDRESS>Description: added mutation for changeUsername functionality.

@d-e-v-esh I have added the changeUsername mutation and it's working perfectly fine on my machine.

@d-e-v-esh ok will do the mentioned changes.

@khanjasir90 The code works well! 💯
Couple small things and it will be ready for merging 👍

@d-e-v-esh sure ! will do the needed changes asap!

@d-e-v-esh I have made the needed changes! pls go through it once

@khanjasir90 Hey Jasir, sorry for the delay. It would be better if we cleaned up the commits before merging. You can either change the commit messages of the last two commits OR you can squash the last two into the first one. You can check out this video if you need any help with rewriting git history. I think squashing would be the better and easier option.

@d-e-v-esh got it! Should we squash or fixup?

@d-e-v-esh np! I have squashed the commits, pls have a look at it once

🎉🎉

🎉🎉

@d-e-v-esh thanks devesh for helping me out! got to learn a lot of things.


Add support for Mame

Support for Mame on computer, installing the overlays in the artwork directory of Mame.

Hello,
These overlays have the RetroArch format, and only work on RetroArch.
The source of the overlays are MAME overlays/bezels, and can be found here: https://forums.libretro.com/t/my-realistic-arcade-bezels/10604 or here: https://github.com/cosmo0/retropie-overlays-arcade-realistic/tree/master/_sources or here: https://github.com/cosmo0/retropie-overlays-arcade-artwork/tree/master/_sources
You can just download and install them as any regular MAME overlay/bezels.

If anyone comes across this you'll be interested in looking at the Bezel Project for Windows that does exactly this.
https://github.com/thebezelproject/BezelProject-Windows/releases

Nice! Too bad it's only for Windows, though.

Actually it works for anything since it works for Retroarch.
https://prnt.sc/104a0n1

Yeah but you have to run it on a Windows computer.
It's interesting, though. Maybe when I have time to finally update/upgrade this project I'll take a few ideas from there.
Thanks for the info :)

What I like about your version is that there's no TV in the overlays. It would be nice to have the option of without or without the TV!


Crashes when loading llama-2-7b-chat.Q4_K_M.gguf , this is the error I am facing 32: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value .

This is the error I am facing , I tried handling it with many if , guard but maybe its throwing error because of model is nil or its receiving nil ?

Hi. Is the error occurring on a real device or on a simulator?

Yeah I used simulator so will it run on a real device right ?

I got it

Hi,
I try comment '''params.use_metal = true''' ,But already crash.
Env:
macOS app

I got it.
Beause my app enable sandbox , i disable it.


Help need to add a private registry to containerd / k3s

Hi All,
i have deplyed k3s with containerd backend and i have a Nexus private registry on http.
i have been able to locate this doc https://github.com/containerd/cri/blob/master/docs/registry.md
and i have add the below to /etc/containerd/config.toml
# Config file is parsed as version 1 by default.
# To use the long form of plugin names set "version = 2"
# explicitly use v2 config format
version = 2

[plugin."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugin."io.containerd.grpc.v1.cri".registry.mirrors."test.http-registry.io"]
    endpoint = ["http://<<IP>>:32000"]
[plugin."io.containerd.grpc.v1.cri".registry.configs."test.http-registry.io".tls]
  insecure_skip_verify = true

failed to resolve reference "<<IP>>:32000/prod/jacket:1": failed to do request: Head "https://<<IP>>:32000/v2/prod/jacket/manifests/1": http: server gave HTTP response to HTTPS client

helping someone will be able to help me to get it to work.

Please run containerd with debug on "containerd -l debug" and check the log to find out why it didn't connect via http.. it adds a default to the list for https and reports that result. Would need a PR to get it to report both failures.

Please run containerd with debug on "containerd -l debug" and check the log to find out why it didn't connect via http.. it adds a default to the list for https and reports that result. Would need a PR to get it to report both failures.

@mikebrow I have been able to get this working

@mikebrow I have been able to get this working


[BUG] Excluding system indices from snapshot fails with index_not_found_exception

Describe the bug
When I want to restore a snapshot without .opendistro_security it fails.
Below in the example snapshot created with 2.2.1, The restore target is 2.4.1
To Reproduce
Steps to reproduce the behavior:
PUT _snapshot/backup/1
{
  "indices": "-.opendistro_security,-.kibana_1,-security-auditlog*",
  "include_global_state": false
}

response:

{
	"error": {
		"root_cause": [
			{
				"type": "index_not_found_exception",
				"reason": "no such index [-.opendistro_security]",
				"index": "-.opendistro_security",
				"resource.id": "-.opendistro_security",
				"resource.type": "index_or_alias",
				"index_uuid": "_na_"
			}
		],
		"type": "index_not_found_exception",
		"reason": "no such index [-.opendistro_security]",
		"index": "-.opendistro_security",
		"resource.id": "-.opendistro_security",
		"resource.type": "index_or_alias",
		"index_uuid": "_na_"
	},
	"status": 404
}

GET _cat/indices/.opendistro_security
{}

response:

[
	"green open .opendistro_security 95EuPX8yRnCBF7okGMUJvA 1 2 9 2 142.3kb 47.4kb"
]

So this index is exists, but can not skip from backup.
When I use:
PUT _snapshot/backup/1
{}

Works well and I use this way, BUT..
I wanted to restore the snapshot to an empty cluster this way:
POST _snapshot/backup/1/_restore
{
  "indices": "-.opendistro_security,-.kibana_1,-security-auditlog*",
  "include_global_state": false
}

and I got this response:
{
	"error": {
		"root_cause": [
			{
				"type": "security_exception",
				"reason": "no permissions for [] and User [name=admin, backend_roles=[manage_snapshots, admin], requestedTenant=null]"
			}
		],
		"type": "security_exception",
		"reason": "no permissions for [] and User [name=admin, backend_roles=[manage_snapshots, admin], requestedTenant=null]"
	},
	"status": 403
}

and in the log I got:
cluster:admin/snapshot/restore for '.opendistro_security' index is not allowed for a regular user

So I can't do backup without this index and I can't restore a backup which include this index.
Am I doing something wrong?
Expected behavior
Full backup (without skipping indexes) works well, good.
Restore from backup excluding .opendistro_security index should work too.
Plugins
s3, prometheus-exporter
Screenshots
I think screenshot not needed.
Host/Environment (please complete the following information):
Kubernetes 1.24.x, deployed with Opensearch operator 2.2.1
Additional context
n/a

@peternied do you know what prevents this index to be snapshot?

@pasztorl That error message cluster:admin/snapshot/restore for '.opendistro_security' index is not allowed for a regular user might be incorrect.  I've created a pull request to resolve this https://github.com/opensearch-project/security/pull/2525
It also looks like @Rishikesh1159 has started to look into this issue, they might be able to confirm additional troubleshooting steps.

Sorry @peternied, I am not looking into this issue. I mistakenly assigned this issue to myself. I unassigned the myself and removed "CCI label"

@pasztorl I've looked into the kind of issue that is triggered as you've reported it.  Good news, this issue has been fixed and will be available in the 2.7 release of OpenSearch.  Duplicating this issue to https://github.com/opensearch-project/security/issues/1652.

Thanks for the update, great news! I see that the fix will be on 2.7. Now I locked on an older version because the application what I use not tested/supported at that version and who know when it will. There is a suggested workaround how I can backup/restore data from 2.2/2.4?

@scrawfor99 Do you know of a workaround?

Yes, use an admin certificate rather than basic auth. With the cert auth you can circumvent the error.


How to run only dmtet without initialization from nerf

giving error
Traceback (most recent call last):
File "/home/jupyter/Magic123/main.py", line 622, in
trainer.train(train_loader, valid_loader, test_loader, max_epoch)
File "/home/jupyter/Magic123/nerf/utils.py", line 1049, in train
self.train_one_epoch(train_loader, max_epochs)
File "/home/jupyter/Magic123/nerf/utils.py", line 1278, in train_one_epoch
loss, losses_dict, outputs = self.train_step(data)
File "/home/jupyter/Magic123/nerf/utils.py", line 645, in train_step
outputs = self.model.render(rays_o, rays_d, mvp, H, W, staged=False, perturb=True, bg_color=bg_color, ambient_ratio=ambient_ratio, shading=shading, binarize=binarize)
File "/home/jupyter/Magic123/nerf/renderer.py", line 1521, in render
results = self.run_dmtet(rays_o, rays_d, mvp, h, w, **kwargs)
File "/home/jupyter/Magic123/nerf/renderer.py", line 1264, in run_dmtet
rast, rast_db = dr.rasterize(self.glctx, verts_clip, faces, (h, w))
File "/home/jupyter/Magic123/venv_magic123/lib/python3.10/site-packages/nvdiffrast/torch/ops.py", line 310, in rasterize
return _rasterize_func.apply(glctx, pos, tri, resolution, ranges, grad_db, -1)
File "/home/jupyter/Magic123/venv_magic123/lib/python3.10/site-packages/torch/autograd/function.py", line 506, in apply
return super().apply(*args, **kwargs)  # type: ignore[misc]
File "/home/jupyter/Magic123/venv_magic123/lib/python3.10/site-packages/nvdiffrast/torch/ops.py", line 248, in forward
out, out_db = _get_plugin().rasterize_fwd_cuda(raster_ctx.cpp_wrapper, pos, tri, resolution, ranges, peeling_idx)
RuntimeError: instance mode - pos must have shape [>0, >0, 4]

Not the focus of this work. Thanks. You can look the code of Fantansia3D.


WIP: improve code quality

add import tests
cleanup import functions,
add Puissance acoustique interieure,
correct documentation urls in readme

WIP: please do not merge for the moment
ToDos:

[x] Revert change of .csv
[ ] add test pipeline
[ ] ...

This was closed automatically while moving the repo from RE-LAB to FZJ-IEK3-VSA. I'll try to open the PR again


Resource returned multiple times if it meets both base criteria and _include criteria

Describe the bug
When running a search that has _include that meets the base criteria and also the include criteria, a single resource is included twice. Example: search for Locations and include partOF, which references a location, the location resource is returned twice.
FHIR Version?
R4
Data provider?
CosmosDB
To Reproduce
Steps to reproduce the behavior:

Post a Location resource which references another Location resource with partOf.
Query : {{fhirurl}}/Location?_include=Location/partOf
Same Location resource will be returned twice

Expected behavior
We expected a resource to only be returned once, even if it matches multiple criteria.
Actual behavior
Resource meeting multiple criteria is returned twice.

AB#84439

From Zulip on correct behavior:
I don't know of a place that it is specified cleanly, but the Constraints on bundle include a combination of rules that I believe force it:
fullUrl must be unique
fullUrl cannot be version specific
In the comments for Bundle.entry.search.mode, there is the line:
There is only one mode. In some corner cases, a resource may be included because it is both a match and an include. In these circumstances, 'match' takes precedence.
So, while well-hidden, match takes priority.

Fixed in #2448


Dropdown Colour Change in Profile Edit Section for Dark Mode

Description
For dark mode, The dropdown color in TechStack should be Dark and the Text should be white.
Screenshots

Additional information
No response

sir where I could find the tech stack section in website

@harsh-na just go to your profile and click on the edit profile button.
You can see the techstack field where you will see all the Techstack listed.
In the codebase, The Techstacks are mentioned inside database folder
database/techstack -> Path

okay sir I want to work on this issue

@harsh-na Go for it

@Debajyoti14 Can I work on this

@Sparsh752 Wait for @harsh-na to finish

Can I work on this if it is open? @Debajyoti14

@ankushj0801 have you fixed this issue...


Unified error handling in NNVM and Relay frontends

Consolidated helper functions across several files and created custom exceptions. @yzhliu @wweic

I am not very about this change, as the exception themselves are relatively minimal and it may not make sense to introduce another layer of abstraction.

#2279 The high level idea is that for product line usage, we would require a unified error handling mechanism. Having it abstracted as a layer would be helpful towards this direction.

To be clear, I am not against the structured error categorization. But I am not sure about the current proposal of raise_xyz function. Because it is less apparent on what was being raised and a developer needs to dig into the additional layer of the raise_xyz in order to see what is going on.
If it is the same exception(RuntimeError), I would simply inline the error message and follow the same convention. Otheriwse, perhaps it is better to just subclass the RuntimeError to get a new Error class and raise that one.

Acknowledge that following the Python exception convention makes sense. However, what we want is to be able to return error messages to end users in a systematic way. Having developers independently enter error messages makes this goal difficult to achieve. Perhaps we can define unified error messages to inline with the exception? @KoinFlyp

see my followup comments in #2279 I think perhaps a simple way is to clearly document the error message convention and have specific error type when necessary.
Notably, existing frameworks(TF, PT) manage to use raise style error in a consistent fashion, I believe it is not a too hard task, with clear error message documentation.

Perhaps the best approach to error handling is driven by what sorts of errors the user will face. On one end of the spectrum, we have errors that are very specific and cannot be grouped with others, such as the nuances of a particular operator or framework. On the other end of the spectrum, there are errors that are so similar that their handling would be pretty much identical, e.g., unsupported operators.
I'm not too sure what an error message convention would look like, but keeping the fine-grained hierarchy of error types (which inherit from the Python primitive error types) and documenting them thoroughly seems necessary.

The PR consists of 3 parts:

Categorized errors types.
New exception class hierarchy: OperatorAttributeRequired, OperatorAttributeValueNotValid, etc and error message formatting.
Helper functions to throw above exceptions.

I think 1 and 2 are absolutely necessary and I don't find big issues here. For 3 I was on the fence, but after second thought, I would vote to get rid of them. This abstraction doesn't really reduce code complexity, instead adding a bit for new developers.
Also please add good documentation for the exception classes. Maybe with example failure cases, error message format.

I think we should just have error classes which take the right pieces of state, instead of constructing a string every time, say for missing attribute.
raise MissingAttribute(op, attr)
where
class MissingAttribute(Exception):
  def __init__(self, op, attr):
     msg = ...
     super().__init(msg)

In general there is a lot of repeated error code in the code base and it would be good to move towards these, currently most errors come in the form of checks which are annoying and hard to handle because there is little way to categorize what went wrong. Some errors are unrecoverable but we should make it easier to catch recoverable errors.

I created https://github.com/dmlc/tvm/pull/2838 to provide some scaffolds on this. Let us move more discussions to the RFC

Holding off until #2838 is merged.

Can someone please take a look? @jroesch @srkreddy1238 @Huyuwei @yidawang

cc @tqchen

@KoinFlyp Would be great if you can also request some additional reviewers, in particular from those who you do not interact physically :)

@tqchen will do, thanks :)
@kazum @srkreddy1238 @Huyuwei

Please fix the lint errors, @yidawang @JennyChou5, please https://docs.tvm.ai/contribute/code_review.html#approve-and-request-changes-explicitly

@KoinFlyp There are integration tests failure in http://ci.tvm.ai:8080/blue/organizations/jenkins/tvm/detail/PR-2828/9/pipeline/235.

Tests passed

Thanks, @JennyChou5 @yidawang @KoinFlyp this is now merged


Github signature not required for setting up a webhook

Question: As part of the Webhooks specification on https://developer.github.com/webhooks/securing/ it does not specify you have to use a secret value. The GithubWebhook implementation expects the signature header to exist. Are there any plans to support insecure hooks or is it expecting if using the aspnet webhook the setup has to have a secret key?
Just want clarification before I spend time looking at potential options and sending a PR :-)

There are no plans to support insecure requests. Further, all WebHooks receivers require a secret key (or similar configuration) and use it to confirm requests came from the intended sender.

No problem, good to know.


Min, max validator not working correct

Hi Olton,
on Your website https://metroui.org.ua/validator.html in section Func examples there are two text inputs with "min value 10" and "max value 10".
If You put "3" in "min value 10" validator says it's ok. This is wrong behaviour.
If You put "5" in "max value 10" validator says it's not ok. This is also wrong behaviour.

Thsnk, fixed in develop branch.

Great !


fix(tooltip): add display block to style

Under PR #4363 the display block style was
removed but the popover implementation needs
that style as the bootstrap popover starts with
a display of none.

LGTM


⚠ Bofrost.at has degraded performance

In c8925e6, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2410 ms

Resolved: Bofrost.at performance has improved in ba2671f after 13 minutes.


[Feature] Support for F-Tile HE-HSSI 200G/400G

Description
This change adds a new 'command' to the 'hssi' utility (which was originally built using the afu-test framework) to support the 200G/400G HE-HSSI AFU (host exerciser high speed serial interface accelerator functional unit). 'HSSI' is synonymous with 'Ethernet'. The HE-HSSI AFU is only useful when compiled with a FIM that contains the HSSI-SubSystem (HSSI-SS) (i.e. the actual Ethernet interface).
The 200G/400G HE-HSSI AFU differs from the 10G/100G HE-HSSI AFUs in that it contains a new traffic generator IP (TG) to drive the 200G/400G HSSI-SS in the FIM. A new TG is needed to support MAC-segmented signaling on the HSSI-SS, which is required for the faster speeds.
Like other 'commands', the utility looks for the specific AFU-ID of the 200G/400G HE-HSSI AFU and will otherwise error out.
The TG simply reads packet data from a ROM, therefore that data is fixed at compile time. The ROM end-address is different for 200G vs 400G. There is a read-only register in the AFU that is read to discern which speed the given AFU supports.
The ROM contains 32 x 1482-byte packets. The TG has a CSR to specify how many times the ROM shall be read (called the 'ROM loop count') and we use this to control the total number of packets transmitted.
The only argument is --num-packets.
The utility displays the measured throughput and other useful information.
It assumes the 200G AFU variant contains two Ethernet ports, and the 400G variant contains one Ethernet port.
Collateral (docs, reports, design examples, case IDs):

[X] Document Update Required? Yes
The 'hssi' utility readme has been updated. PR is here.

Tests added:
Tests run:

Manually tested against 200G/400G FIM+HE-HSSI on F-Series Dev Kit.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 68.161%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
15754

Relevant Lines:
23113

💛  - Coveralls


HTML2

[ ] does "Chapter" suppression work for html2?
[ ] do MathJax configuration for html2 as for html.
[ ] how to control numbering with db in autolabel.elements?
[ ] how to get navigational links?
[ ] how to chunk glossary and bibliography?

moved to DocBook readme


Half render and locks inputs after unlocking

Almost same issue as #419 except there's nothing to do with pam, it's just half renders and sometimes locks my inputs after unlocking, have to enter another tty and return back to Hyprland to "unlock" my input.
Basically what happen with "locks my inputs" (if I look though the verbose) is that Hyprlock still renders the lock after unlocking, it did not unlock just yet after entering the password until I enter another tty and return to Hyprland, that's when Hyprlock unlocks itself
As for "Half render", Hyprlock first renders a red color (weirdly, because it never happened before), and then renders everything (background, text etc.) at like half transparency or else (because it's random). I either have to wait long time, or move my mouse to have the full render.
Verbose for both issue if you're curious: https://paste.linux.chat/?45b293a05fef521d#DiZPQwtmwCLNQa4iFa1DV2X3yiaRVr9NxZajsoNbXcFF
System specs:
Arch Linux 6.9.9-arch1-1
Ryzen 7 4800H
NVIDIA GTX1660Ti Mobile

hyprland and hyprlock versions?

For Hyprland, I am running the latest git build 0.41.2 (manual build)
For Hyprlock, it's 0.4.0-2

latest git build 0.41.2 (manual build)

so the tag v0.41.2, or latest commit?

eh it should be latest commit because it's manual build, adding tag 0.41.2 because I am not sure what version my Hyprland is running

Yeah sorry hl git and hyprlock v0.4.0 (and below) don't work together since https://github.com/hyprwm/Hyprland/pull/6850. Should be fixed with #421.
Can you check hyprlock git please?
Also @vaxerski should we release 0.4.1 because of that?

we could, tag me tomorrow

@vaxerski tag :slightly_smiling_face:

https://github.com/hyprwm/hyprlock/releases/tag/v0.4.1

I am still facing this issue on 0.4.1. I get the reed flashbang every time hyprlock launches.

Hl version?

Just wanted to say that the hyprlock-git 0.4.1.r17.g153977aa-1 fixed the issue. However the non-git version still broken

It's fixed for me on hyprland 0.44, aquamarine 0.4.1 and hyprlock 0.4.1.


Setting up Bing account to manage DuckDuckGo search

Right now search results on DuckDuckGo are surfacing repetitive page summaries as well as our print only user guide PDF. @nickclyde said DuckDuckGo uses Bing's search index, so we may need to create an account there to do some clean up.

cc: @lauraykerr

@lauraykerr the devs will need to do this set up for us, but you can pair on them for any content needs


nixos/borgbackup: fix extraCompactArgs

Description of changes
Fixes the extraCompactArgs introduced with #224072 as the variable currently isn't added to the script's environment.

Things done

Built on platform(s)

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

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

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

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

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

[X] Fits CONTRIBUTING.md.

Fixes the extraCompactArgs introduced with https://github.com/NixOS/nixpkgs/pull/224072 as the variable currently isn't added to the script's environment.

Can you add that to the commit message?

@bjornfor added that line to the commit message.

@bjornfor I added that line to the commit message.

Thanks. Can you also wrap it at 72 chars, following standard git commit message style?

Done.

Thanks!


[TIR][Transform] Implement InlinePrivateFunctions

The functionality to express a call from one PrimFunc to another was introduced in https://github.com/apache/tvm/pull/14889.  While this was initially planned to be supported at codegen for all targets (see https://github.com/apache/tvm/pull/15835), this resulted in breakage on some backends (see https://github.com/apache/tvm/pull/16033). After discussion, the plan was changed to support TIR inlining, which would enable the same high-level functionality in TIR without requiring immediate low-level support across all codegens.
This commit implements and tests a new IRModule transform InlinePrivateFunctions, which can be used as part of lowering in a follow-up commit.
Because this is initially implemented for use quite late in the lowering flow, many constructs are not currently supported.  The current implementation has the following restrictions.

tir::Block nodes may not occur in the inlined function.  Because a subroutine may be called multiple times, inlining of a subroutine that contains tir::Block would result in non-unique names. Support of subroutines with tir::Block instances will require de-duplication of block names.

The subroutine's callsite must occur within a tir::Evaluate block. Because inlining a subroutine inserts the tir::Stmt body at the point of use, replacement must occur in a context where a tir::Stmt can be returned.  Support of subroutines that are called within an expression (e.g. Replacing func in Buf[0] = func(1) + func(2)) would require hoisting preprocessing done in the subroutine to the parent tir::Stmt.

The subroutine may only accept primitive arguments, and must have an empty buffer_map.  Support of subroutines that are called with tir::Buffer or tir::BufferRegion arguments would require a way to represent these arguments at the callsite, and substitution of the buffer into the callee.

If these unsupported constructs are used, then the inlining of those functions is skipped.  This commit includes unit tests for these unsupported constructs, to validate that InlinePrivateFunctions produces well-formed output even when they are present.

Rebased onto main as the CI results were a bit stale.

I am not especially familiar with the TIR code base, but the logic here seems reasonable. Is there a reason the issue of unique names for blocks is a blocker?

Not a strong blocker, just an unsupported case at the moment.  Something that can definitely be extended in the future, but not something required for use late in the lowering pipeline.

Doing one last CI re-run before merging.  I don't expect there to be breaking changes introduced over Christmas, but I try to avoid stale CI results either way.

CI is passing, except for a flaky unit test.  I've submitted https://github.com/apache/tvm/pull/16337 to disable the flaky unit test.  Re-running the CI to see if I can hit the 2/3 chance of passing the flaky test while I wait on it.


ability to dispatch event at the end of the drag.

Nice Library. Easy to learn and use. Thank you.
It would be better if it dispatches an event at the end of the drag, so that i can redraw and resize some of the components using  javascript.

There are three callbacks that can be configured. onDrag, onDragStart, onDragEnd

Got it. Thanks.


[TS] - Enable the inclusion of typescript files

Disable or don't enable typescript linting

#3546 Completed in


try fix windows

not ready yet, huh?

good to go? tests went fine, right?

I think so. Linux failed but that looks like it was an internet dropout or something?
Tim or someone else may want to clean it up more. But it works for now.

I think so. Linux failed but that looks like it was an internet dropout or something?

usually @charlesneimog can tell us about this

let's see how the new test goes

Hi, in my machine, it is working, probably one simple bad request. In the actual build it is working again.

I'm actually now unable to build, see error
-- Configuring done
CMake Error at cmake/PuredataConfig.cmake:68 (add_library):
Cannot find source file:
//elsefile.c

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
.hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
Call Stack (most recent call first):
plugins/puredata/CMakeLists.txt:2 (include)
CMake Error at cmake/PuredataConfig.cmake:68 (add_library):
No SOURCES given to target: elsefile
Call Stack (most recent call first):
plugins/puredata/CMakeLists.txt:2 (include)

It seems this is related to this https://github.com/porres/pd-else/issues/1774
sfz~ only loads if the elsfile object is loaded via some other object that actually loads it, in short, the linkage is still broken now for some reason @alcomposer