Contains() method with nullable Guids translating locally.

When a nullable Guid and a non-nullable Guid are compared using the Contains() method I get a log message: "could not be translated and will be evaluated locally". Unfortunately this is then downloading a big table to perform the comparison causing a performance problem. This occurs whether the nullable is an argument to or the caller of .Contains() as will be shown in the four cases below.
This may be related to https://github.com/aspnet/EntityFramework/issues/7616
Steps to reproduce
Here is a cut-down version of the entity:
public class Skill
{
	public Guid SkillId { get; set; }
	public Guid? PrimarySkillId { get; set; }

	// Navigation (self-join)
	public Skill PrimarySkill {get;set;}
}

Here are the four cases with resulting log messages and MySQL
//nullable Guid list, nullable field - works
List<Guid?> primarySkills = ...;
var outerQuery = dc.Skills.Where(s => primarySkills.Contains(s.PrimarySkillId));
var result = await outerQuery.ToListAsync();

SELECT s.SkillId, s.Name, s.PrimarySkillId, s.Source, s.SourceId
FROM Skills AS s
WHERE s.PrimarySkillId IN (...)
//nullable Guid list, non-nullable field - fails
List<Guid?> primarySkills = ...;
var outerQuery = dc.Skills.Where(s => primarySkills.Contains(s.SkillId) );
var result = await outerQuery.ToListAsync();

The LINQ expression '{__primarySkills_0 => Contains(Convert([s].SkillId))}' could not be translated and will be evaluated locally.
The LINQ expression 'Contains(Convert([s].SkillId))' could not be translated and will be evaluated locally.
SELECT s.SkillId, s.Name, s.PrimarySkillId, s.Source, s.SourceId
FROM Skills AS s
and the inverse is true:
//non-nullable Guid list, non-nullable field - works
List<Guid> primarySkills = ...;
var outerQuery = dc.Skills.Where(s => primarySkills.Contains(s.SkillId));
var result = await outerQuery.ToListAsync();

SELECT s.SkillId, s.Name, s.PrimarySkillId, s.Source, s.SourceId
FROM Skills AS s
WHERE s.SkillId IN (...)
//non-nullable Guid, nullable field - fails
List<Guid> primarySkills = ...;
var outerQuery = dc.Skills.Where(s => /*primarySkills.Contains(s.SkillId) ||*/ s.PrimarySkillId != null && primarySkills.Contains(s.PrimarySkillId.Value));
var result = await outerQuery.ToListAsync();

The LINQ expression '{__primarySkills_0 => Contains(Convert([s].PrimarySkillId))}' could not be translated and will be evaluated locally.
The LINQ expression 'Contains(Convert([s].PrimarySkillId))' could not be translated and will be evaluated locally.
SELECT s.SkillId, s.Name, s.PrimarySkillId, s.Source, s.SourceId
FROM Skills AS s
WHERE s.PrimarySkillId IS NOT NULL
Unfortunately what I need to do is compare to both fields at once - so I can't get away from the nullable problem so easily. Ideally what I want is:
.Where(s => primarySkills.Contains(s.PrimarySkillId ?? s.SkillId));

Further technical details
These are my relevant project references:
PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.1"
PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1"
PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.1.0-preview4-final"
PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="1.1.0-"
PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.0-"
Workaround
Having written all this up I realised a stupidly simple workaround, and this works fine, but I'm thinking this is still something that'd be useful for you to know about.
List<Guid> primarySkills = ...;
List<Guid?> primarySkillsNullable = primarySkills.Cast<Guid?>().ToList();
var outerQuery = dc.Skills.Where(s =>
	primarySkills.Contains(s.SkillId) || primarySkillsNullable.Contains(s.PrimarySkillId));

SELECT s.SkillId, s.Name, s.PrimarySkillId, s.Source, s.SourceId
FROM Skills AS s
WHERE s.SkillId IN (...) OR s.PrimarySkillId IN (...)

This seems this also same when we use contains with List<int?>?

For EF team to see the same issue with INT - http://stackoverflow.com/questions/42856379/c-sharp-linq-nullable-int-field-contain-within-listint-sql-translation/42856449

I just took a look into this issue, and it can be closed.
I can confirm the issue is happening on 1.1.1, but it has already been resolved in the dev branch..

@pmiddleton PRs with additional tests are always welcome. 😸


make_valid, buffer(0), is_valid not working properly in this case (invalid shape)

Expected behavior and actual behavior.
i'm trying to make valid a non valid one, using make_valid and buffer(0), but none of them is working (not a Geojson valid geometry, there is an intersection). shapely consider it as valid, and Buffer(0) or make valid don't change anything.
Steps to reproduce the problem.
aPolygon=Polygon([ [ 2.239307379133081, 50.37833950216459 ], [ 2.23932288262624, 50.37832091329708 ], [ 2.239323076574488, 50.37834745704141 ], [ 2.239322741111627, 50.37830154561176 ], [ 2.23936695305881, 50.37824213244645 ], [ 2.239345413627982, 50.37827856546105 ], [ 2.239381046651415, 50.37825117380836 ], [ 2.239439891538907, 50.37818061771576 ], [ 2.239364310849121, 50.37813487411446 ], [ 2.23927845625879, 50.37822580401623 ], [ 2.239266556956693, 50.37824200006929 ], [ 2.239259907852623, 50.37825938205488 ], [ 2.239258772207612, 50.3782772617753 ], [ 2.239260294620766, 50.3782861670696 ], [ 2.239267444539276, 50.37830346757686 ], [ 2.239273001098963, 50.37831169112052 ], [ 2.239287802286535, 50.37832687759487 ], [ 2.239296900046265, 50.37833368983314 ], [ 2.239307379133081, 50.37833950216459 ] ])

print(str(to_geojson(aPolygon)) + " is_valid: " +str(aPolygon.is_valid))
aPolygon=make_valid(aPolygon.buffer(0))
print("avec Buffer 0 " + str(to_geojson(aPolygon)) + " is_valid: " +str(aPolygon.is_valid))

Operating system
ubuntu 23
Shapely version and provenance
shapely 2.0.1, and GEOS 3.11.1-CAPI-1.17.1
installed from apt install python3-xxx
thanks

@olver62 thanks for the report. However, running your example, aPolygon as defined above is already valid for me:
In [22]: aPolygon.is_valid
Out[22]: True

I see this both with shapely 2.0.1 (with GEOS 3.11.2) and with latest shapely (with GEOS 3.12.0)


I really hope Jordan (React creator) will save us again.
https://facebook.github.io/reason/
https://jaredforsyth.com/2017/06/23/when-will-reasonml-be-ready/

Hmm, not this year yet.

LOL
I've used Elm a bit but that is an entirely different ecosystem.
Have you looked at Bucklescript?

Oh oops, didn't realize Reason and Bucklescript merged.


az functionapp create doesn't support https-only true

Is your feature request related to a problem? Please describe.
Yes, the problem is that I'm trying to use az functionapp create to create a new function instead of using ARM as ARM removes all appsettings on update.
The problem I have is that subscription policy for this client denies creating a function without https-only true but I can't set this at function creation time using az...
Describe the solution you'd like
I'd like to be able to specify more settings on function creation, such as https-only true, or have the functionapp automatically enable https-only true as this is 2021 after all...
Describe alternatives you've considered
Crying 😢
ARM/TF don't work properly.
Can't use az and write PowerShell scripts either.
Additional context
https://github.com/Azure/azure-cli/issues/11718
If issues like the above were fixed it'd be a lot easier to use ARM/TF for this.
Function apps should not be using appsettings for infrastructure values such as Storage Account and Function Version... These aren't app settings but intrinsic to the function, much like the OS type of a resource or Size of a VM is.

functionapp

functionapp

@gzuber can you please take a look at this?

@gzuber can you please take a look at this?

I've had to wrok around this by creating my own JSON and using az resource create:
az functionapp create `
	--name $FunctionName `
	--resource-group $ResourceGroup `
	--storage-account $StorageAccount `
	--assign-identity '[system]' `
	--functions-version $FunctionVersion `
	--os-type Linux `
	--plan $ServicePlan `
	--runtime dotnet `
	--tags @tagsArray

has become:
		# `az functionapp create` doesn't support https only currently...
		# Therefore I need to mimic what `az functionapp create` does
		# and call `az resource create` myself...
		$appServicePlan = (
			az appservice plan show `
				--name $ServicePlan `
				--resource-group $ResourceGroup `
			| ConvertFrom-Json
		)

		$servicePlanResourceLocation = $appServicePlan.location

		$jsonDocument = @{
			name = $FunctionName
			tags = $Tags
			location = $servicePlanResourceLocation
			kind = 'functionapp,linux'
			properties = @{
				serverFarmId = $ServicePlan
				reserved = $true
				clientAffinityEnabled = $false
				siteConfig = @{
					alwaysOn = $true
					appSettings = @(
						@{
							name = $ENV_FUNCTION_VERSION_KEY
							value = "~$FunctionVersion"
						},
						@{
							name = 'FUNCTIONS_WORKER_RUNTIME'
							value = 'dotnet'
						},
						@{
							name = $ENV_STORAGE_ACCOUNT_KEY
							value = $StorageAccountConnectionString
						}
					)
				}
				httpsOnly = $true
				http20Enabled = $true
			}
			identity = @{
				type = 'SystemAssigned'
			}
		} | ConvertTo-Json -Compress -Depth 100

		az resource create `
			--api-version 2020-06-01 `
			--name $FunctionName `
			--resource-group $ResourceGroup `
			--resource-type Microsoft.Web/Sites `
			--is-full-object `
			--properties ("$jsonDocument" -replace'(\\*)"','$1$1\"')

I've had to wrok around this by creating my own JSON and using az resource create:
az functionapp create `
	--name $FunctionName `
	--resource-group $ResourceGroup `
	--storage-account $StorageAccount `
	--assign-identity '[system]' `
	--functions-version $FunctionVersion `
	--os-type Linux `
	--plan $ServicePlan `
	--runtime dotnet `
	--tags @tagsArray

has become:
		# `az functionapp create` doesn't support https only currently...
		# Therefore I need to mimic what `az functionapp create` does
		# and call `az resource create` myself...
		$appServicePlan = (
			az appservice plan show `
				--name $ServicePlan `
				--resource-group $ResourceGroup `
			| ConvertFrom-Json
		)

		$servicePlanResourceLocation = $appServicePlan.location

		$jsonDocument = @{
			name = $FunctionName
			tags = $Tags
			location = $servicePlanResourceLocation
			kind = 'functionapp,linux'
			properties = @{
				serverFarmId = $ServicePlan
				reserved = $true
				clientAffinityEnabled = $false
				siteConfig = @{
					alwaysOn = $true
					appSettings = @(
						@{
							name = $ENV_FUNCTION_VERSION_KEY
							value = "~$FunctionVersion"
						},
						@{
							name = 'FUNCTIONS_WORKER_RUNTIME'
							value = 'dotnet'
						},
						@{
							name = $ENV_STORAGE_ACCOUNT_KEY
							value = $StorageAccountConnectionString
						}
					)
				}
				httpsOnly = $true
				http20Enabled = $true
			}
			identity = @{
				type = 'SystemAssigned'
			}
		} | ConvertTo-Json -Compress -Depth 100

		az resource create `
			--api-version 2020-06-01 `
			--name $FunctionName `
			--resource-group $ResourceGroup `
			--resource-type Microsoft.Web/Sites `
			--is-full-object `
			--properties ("$jsonDocument" -replace'(\\*)"','$1$1\"')

@ElvenSpellmaker
Hi ElvenSpellmaker, i tired to use your fix but i keep getting "NotSpecified: (UnrecognizedArg...ments: Europe"}:String) []," whenever the script get to "az resource create"
Could the "--properties ("$jsonDocument" -replace'(\*)"','$1$1"')" be missing something ?

Hey, it's working fine for me, I've just checked master and re-copied and pasted it in above, please double check.

You'll also need these:
Set-Variable `
	ENV_FUNCTION_VERSION_KEY `
	-Option Constant `
	-Scope Script `
	-Value FUNCTIONS_EXTENSION_VERSION

Set-Variable `
	ENV_STORAGE_ACCOUNT_KEY `
	-Option Constant `
	-Scope Script `
	-Value AzureWebJobsStorage

@ElvenSpellmaker
below is exact code, after changing the variables to be pre-set variables:
$appServicePlan = (
az appservice plan show 				--name $planName
--resource-group $rgName `
| ConvertFrom-Json
)
	$servicePlanResourceLocation = $appServicePlan.location

	$jsonDocument = @{
		name = $functionAppName
		tags = $Tags
		location = $servicePlanResourceLocation
		kind = 'functionapp,linux'
		properties = @{
			serverFarmId = $planName
			reserved = $true
			clientAffinityEnabled = $false
			siteConfig = @{
				alwaysOn = $true
				appSettings = @(
					@{
						name = $ENV_FUNCTION_VERSION_KEY
						value = "$FunctionVersion"
					},
					@{
						name = 'FUNCTIONS_WORKER_RUNTIME'
						value = 'dotnet'
					},
					@{
						name = $ENV_STORAGE_ACCOUNT_KEY
						value = $StorageAccountConnectionString
					}
				)
			}
			httpsOnly = $true
			http20Enabled = $true
		}
		identity = @{
			type = 'SystemAssigned'
		}
	} | ConvertTo-Json -Compress -Depth 100

	az resource create `
		--api-version 2020-06-01 `
		--name $functionAppName `
		--resource-group $RgName `
		--resource-type Microsoft.Web/Sites `
		--is-full-object `
        --properties ("$jsonDocument" -replace'(\\*)"','$1$1\"')

Error line was from:
az resource create `

					@{
						name = $ENV_FUNCTION_VERSION_KEY
						value = "$FunctionVersion"
					},
					@{
						name = 'FUNCTIONS_WORKER_RUNTIME'
						value = 'dotnet'
					},
					@{
						name = $ENV_STORAGE_ACCOUNT_KEY
						value = $StorageAccountConnectionString
					}

Did you set the variables I showed above?

No i didn't, not sure where to retrieve the exact values, as this is a new function app creation

Right, this script assumes you have an App Service Plan, as that can be done in ARM/Terraform without much difficulty. 🙂
Are you planning on running the function in an App Service Plan or Consumption?

It is from App Service Plan.
App Service Plan will be created by Az Cli, "az functionapp plan create"

OK the plan has to be created first such that the plan can be retrieved by my script. 🙂

Yeah, plan was created and function app created in the plan
The steps to create includes:
az group create - creates resource group
az storage account create - create storage account
az functionapp plan create  - create webapp plan
My initial script was to add the httpOnly after creation, that is wait 2 minutes before the below, but still didnt work, until i ran the below separately.
if ($functionAppNameExists)
{   az functionapp update         --name $functionAppName
--resource-group $rgName         --set httpsOnly=true
}

If the plan exists and you have the right variables set it should work, hrm.

Hi @ElvenSpellmaker We apologize for not getting back to you sooner. https-only is now a supported param for the az functionapp create command. As such, I will mark this as resolved. Thank you!

@kamperiadis Better late than never thanks! 🙂


Why does using msamp decrease throughput

Why does the throughput of the CIFAR10 example in the project decrease when using deepspeed with MSAMP enable? Whether it is a forward process or a backward calculation process
MS-AMP enable：

MS-AMP close：

Hi @forevergj , thanks for your attention to our work!
When using MS-AMP, the quantization (BF16 -> FP8) and de-quantization (FP8 -> BF16) operations take extra time cost. It decreases the training throughput when training small models (< 1B parameters).
MS-AMP improves the throughput when training large models with more than 1B parameters.

I am running a 1.8B model and the throughput drops by nearly half. Is this related to any operator?

MS-AMP improves the throughput when training large models with more than 1B parameters.

The de-quantization happens on the computation of FP8 Tensors, including FP8 weight gradients (grad = grad_lp.float()) and optimization states exp_avg = exp_avg_lp.float(); exp_avg_sq = exp_avg_sq_lp.float() (https://github.com/Azure/MS-AMP/blob/main/msamp/optim/adamw_base.py#L274).
It is adapted for both H100 and H800.

tks a lot!!


Navbar Mixin Missing UL

The Pug mixins for "navbar-fixed" and "navbar-static" appear to be missing "ul.nav.navbar-nav".

It's fixed now in the latest version 1.0.13


Found another odd conflict with the mod Icarus

Hi. Sorry, but I found another one!
Icarus is a flight mod that adds some really awesome wings as trinket accessories and for some reason PlayerEx stops them from working. I also had some trouble with the regular Elytra, but that might have been from some library mods I was troubleshooting with.
Setup:
mc 1.16.5
fabric-api-0.36.0+1.16
playerex-2.0.2-1.16.5
trinkets-2.6.7
icarus-1.2

Hi there,
After taking a look at the source I found the problem: it's an issue with CaelusAPI - it adds an attribute for flight to act as a boolean determining whether elytra flight is possible.
Looking back on these bug reports, I think I've made a bit of an oversight with the design of PlayerEx: any mod that adds an attribute to the player is automatically incompatible unless a datapack entry for that attribute is made. So to solve this issue, either I add one .json file for the flight attribute, or the mod author does, or the end user adds a datapack containing the same .json.
I'll add a fix for this incompatibility in the next update, but in the mean time I think I'm gonna add a note on the curseforge page about how the end user can fix it themselves.
Tl;dr; this likely solvable by adding a datapack entry.
Thanks for the report, I appreciate your consistent testing.

Oh I see!
When you say you'll add a fix - do you mean you'll specifically add support for CaelusAPI or do you mean you plan to rework it so that attributes from other mods aren't disabled?
On a related note I reported a bug for BetterEnd and the mod author thinks that its also due to their custom attribute. Though I'm not sure why in that case it causes a crash, since with Icarus it simply doesn't work.
But the page is here if you want to see.
https://github.com/paulevsGitch/BetterEnd/issues/214

Hi,
So when I said I'll add a fix, all that means is I'll add the necessary json attribute for flight to be included by default in the mod, to save end users having to patch it themselves by using a datapack. I'm almost 100% certain that's the whole issue: just a missing json.
It would be hard to rework the mod again for 1.16.5 so that this wasn't an issue, but I can at least think about a more clever way to implement datadriven attributes for 1.17.
The thing is, attributes in minecraft have two steps to working: step one, register them - this is fine, and PlayerEx doesn't override or remove registered attributes, vanilla nor modded; step two, add the attribute to the desired entity's attribute container (this is where the problem occurs). PlayerEx override's the player's (PlayerEntity) attribute container with one that supports lazy-loading attributes from datapack jsons. This means that only attributes that exist in json form are added to the player's attribute container - so when a mod adds an attribute to the player without including the necessary json to support it, a crash occurs because some code looks for an attribute that the player doesn't have. The fix is nice and easy though: just add the json file - either by external datapack or by including it as default; either by the mod's author or by me.
As for Icarus, the issue is not directly with Icarus, rather its jar-in-jar bundled Caelus API - Caelus API is the mod that adds the flight attribute, and the code that uses it. Regardless of what mod is specifically causing the problem, I'm certain that it's an easy fix; so rather than releasing another version just to patch one json file, I'd instead prefer to wait for more bugs to be discovered so I can get the most out of each release.

Thanks for the very detailed answer!
For adding other mod attributes, do we simply need to add the json file to /playerex/attributes and follow the same layout as as the others?

It's slightly more complicated than just adding to data/playerex/attributes:
So for Caelus API for example, it would be adding the json: data/minecraft/atttributes/caelus.elytra_flight.json. The reason being here; as you can see, there is no modid, which means that the attribute has been registered as a vanilla minecraft attribute, hence the minecraft data folder; and the attribute has been registered using the key caelus.elytra_flight, hence the json naming.
To add attributes for other mods, you need to look into their githubs and find out exactly how they're registering the attribute: you're looking for the namespace (which will usually be either minecraft or their modid), and you're looking for the path (which is whatever they've called their attribute in when registering it). The namespace is the name of the folder data/namespace/, and the path is the name of the json.
As for formatting the json, you'll need a new UUID, which can be done with this website, entering the code:
public class HelloWorld {
    public static void main(String []args){
       System.out.println("" + java.util.UUID.randomUUID());
    }
}

and the rest is generally straight forward using the wiki. Since we're talking about adding attributes for mod compatibility, you don't have to worry about functions.
Hope that helps,
Thanks.

This should now be fixed in v2.0.3.


Support query cancellation

Not sure about the other database drivers, but node-postgres has support for cancelling running queries. It would be nice to utilize bluebird's cancellation logic to allow queries to be cancelled via the promise mechanism.

If that's not feasible at the moment, is there a way to access the node-postgres client and query objects so the query could be cancelled by user code?

Curious, what sorts of situations are you looking to cancel queries - just so I understand the use case a little better... would it be based on some sort of timeout (query taking too long) or something else?

Generally speaking, it'd be in response to a timeout; however, I've been looking at switching my web-based PostgreSQL client over to using knex, and in that case it'd be in response to a button press on the client side.

Just curious... If I were to try and implement this, do you have any guidelines for adding a DB client API function that may only be implemented by some clients? I was thinking of at least implementing this in the PostgreSQL client, and we can work on adding it to other clients later.

There are no guidelines how to do this.
Would be good to study which dialects could support the feature and then consider if it should be implemented in knex or separate library.
API should be designed to be generally usable, but if some dialect does not support it using the feature should throw an exception...

In the Bluebird docs on Cancellation, where they describe the differences between the old 2.x cancellation semantics and the new 3.x approach, they say:

The new cancellation has "don't care" semantics while the old cancellation had abort semantics. Cancelling a promise simply means that its handler callbacks will not be called.

...

Note that the onCancel hook is really an optional disconnected optimization, there is no real requirement to register any cancellation hooks for cancellation to work. As such, any errors that may occur while inside the onCancel callback are not caught and turned into rejections.

...

As shown in the example the handlers registered with .finally are called even if the promise is cancelled. Another such exception is .reflect(). No other types of handlers will be called in case of cancellation. This means that in .then(onSuccess, onFailure) neither onSuccess or onFailure handler is called. This is similar to how Generator#return works - only active finally blocks are executed and then the generator exits.

Since errors from onCancel are not integrated into the promise chain, it makes sense that no error should be thrown by backends that do not implement cancellation. (they simply do not register an onCancel handler - the user can still take advantage of the other cancellation semantics built into Bluebird; they just won't get the query itself canceled, since that's an "optional disconnected optimization")
I also suggest that cancellation would still need to be enabled by the calling code; I do not think knex should do this. On knex's end, this is pretty simple to achieve; any backend that implements cancellation would just check if the onCancel function was passed into the Promise constructor, and only register its handler if that was the case.
As far as whether this should be in knex itself or in a separate library... I'll have to do more research on the driver libraries for the various dialects in order to know whether or not they support query cancellation. If it is decided that this should be in a separate library, how should that be achieved? Are there any sort of extension points built into knex's dialects I could leverage to allow me to replace the promise returned by running the query?

@wubzz @byronmwong following up on this issue. It looks like implementing query cancellation for PostgreSQL and other drivers should be pretty easy now that @byronmwong added it for MySQL. Is there any blockers here or is it just waiting for a PR from someone?

Gosh, I'm surprised there isn't a way to cancel a query that's timing out. @mohannad-musleh, I'm also facing this building an Electron app. For now, my workaround will be to shorten the timeout and repeatedly give the user the option to try again.

It should be possible to add one. We already invoke query cancellation on timeout, guess it should be possible to expose manual cancellation. Is there anyone willing to work on a PR (with some guidance)?

Still an issue.
I am also looking for cancelling a pending migration. For example when developer accidently runs a migration that does not return a Promise, runs into a situation where migration stays on Pending, probably forever?

@solanoepalacio I am one of the maintainers, yes. Would be happy to help!

@solanoepalacio @kibertoad I'm also interested in implementing this, potentially as soon as this week.
What I have in mind is a chainable method on the query object, tentatively named abortOnSignal. This method takes an AbortSignal (available since Node v15). AbortController/AbortSignal came out of an extensive discussion about the right interface for cancelling HTTP requests made using the fetch API.
As an example, you could implement your own query timeouts (without using knex's built-in query.timeout method) like this:
async function runMyQueryWithTimeout() {
  const abortController = new AbortController()
  setTimeout(() => abortController.abort(), 1000)

  return await knex('my_table')
    .select('id', 'my_column')
    .abortOnSignal(abortController.signal)
}

The promise returned by runMyQueryWithTimeout() would either resolve to the query result, or reject with an AbortError.

I am currently facing this issue as well. Some of the queries take a long time to complete, so users are tempted to close/duplicate application windows or move through the application unhindered. The HTTP requests are aborted, however, the database queries do not cancel themselves - which tends to create massive CPU consumption for no reason. The solution with AbortSignal would be a very welcome sight, I will create a placeholder solution until then.
I have partially solved this in the past. We needed to see long-running queries in the application GUI and the ability to cancel them - the solution was a method, which cancels the request by __knexUid. There is added complexity if your application scales backends - nevertheless, this is just a MSSQL solution:
                const activeRequests = ourGlobalProcessObject.knex.client.pool.used.map(({ resource: { __knexUid, request } }) => {
                    return {
                        __knexUid,
                        request,
                    };
                });

                const requestToDestroy = _.find(activeRequests, { __knexUid: requestId });
                if (requestToDestroy) {
                    requestToDestroy.request.cancel();
                    return true;
                }


[FLINK-7125] [yarn] Remove Configuration loading from AbstractYarnClusterDescriptor

Instead the AbstractYarnClusterDescriptor is passed in a Configuration instance which
is sent to the started application master.

Thanks for your review @pnowojski. The PR passed on Travis. Merging it.


too_many_websockets disconnect being raised in a single-instance app

Operating context:

there is only a single instance of the app - no multiple-processes-running-the-app
Also @dbudim mentioned that after replacing their application token, the problem is gone for a week 🤔

Relevant logs:
WebSocketConnectReadThread-677874] 2023-10-25 09:45:50 [INFO ] [SocketModeClient:261] - New session is open
[WebSocketConnectReadThread-677874] 2023-10-25 09:45:50 [DEBUG] [SocketModeClient:384] - Socket Mode Request:

{
  "type": "disconnect",
  "reason": "too_many_websockets",
  "debug_info": {
    "host": "applink-6"
  }
}

[WebSocketConnectReadThread-677874] 2023-10-25 09:45:50 [INFO ] [SocketModeClient:272] - onClose listener is called (code: 1006, reason: )
[WebSocketConnectReadThread-677874] 2023-10-25 09:45:50 [DEBUG] [DetailedLoggingListener:84] -

java SDK:
<dependency>
       <groupId>com.slack.api</groupId>
      <artifactId>bolt</artifactId>
      <version>1.34.0</version>
</dependency>
<dependency>
       <groupId>com.slack.api</groupId>
       <artifactId>bolt-socket-mode</artifactId>
       <version>1.34.0</version>
</dependency>

Originally posted by @dbudim in https://github.com/slackapi/node-slack-sdk/issues/1654#issuecomment-1779584504

Seems might be caused by https://github.com/slackapi/java-slack-sdk/issues/1206

too_many_websockets gets raised by our backend if the backend has more than 10 concurrent connections active with a single app.
Because this is a single instance of an app, this leads me to believe maybe this library is establishing more than these ten connections at a time, possibly due to reconnection logic? Looking at the socket-mode code, it seems to me no connection pool is used in this library. The only location I see where possibly multiple connections are held at the same time is here, but presumably the 'old' session is only active for a very short, overlapping time between the 'new' session is connected, so I'm not sure this is possible.
@dbudim are you able to provide more logs? If possible including verbose logging and from the very first occurrence of any disconnect or warning received from the Slack backend.
Another possibility is perhaps the backend's state-tracking for how many concurrent connections per app ID are active is stale?

Yes, DEBUG level is fine, thank you!

Could we don't check sessions count before waiting next failure?

Possible. Once we have logs, I think it will be easier to cross-reference behaviour with code to get a better idea of why this is happening.

@dbudim not sure if you saw, but in #1206 the original poster of that issue mentioned that switching to the Tyrus WebSocket implementation addressed the issue for them. Maybe worth a shot to see if that helps you, as well?

@dbudim not sure if you saw, but in #1206 the original poster of that issue mentioned that switching to the Tyrus WebSocket implementation addressed the issue for them. Maybe worth a shot to see if that helps you, as well?

Nice idea, I'll try and back with result within a week)

@filmaj Hi, sorry for a delay, I have a full portion of logs from a beginning and it starts from
Failed to send a ping message and then makes retries. After that it exceed a limit of sessions. By the way I moved to recommended ws library and nothing helps(
Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:232] - New session is open (session id: 2217e8d7-6eff-4488-8259-e125c4041301)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 2217e8d7-6eff-4488-8259-e125c4041301, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:06 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 2217e8d7-6eff-4488-8259-e125c4041301, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@58b2f406[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@4933579e[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@2a8b7534]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@72e510c3[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 16])
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: fac195f4-a738-4bbf-9462-320f6796c25b, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:232] - New session is open (session id: 09916a41-b340-4f45-8799-54a24b39c9e6)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 09916a41-b340-4f45-8799-54a24b39c9e6, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 965d73cf-f075-431e-9e6e-61aea16123e5, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:232] - New session is open (session id: caf24176-39f9-44e4-a08b-741d179bf12f)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: caf24176-39f9-44e4-a08b-741d179bf12f, reason: Closed abnormally.)
[socket-mode-session-cleaner-worker-95] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: c1ed11a6-1dfe-4d01-ab22-b34f92df0b2d, reason: com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl did it)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: dbb2bb28-c5ea-4713-8827-17e05464719e, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:232] - New session is open (session id: 90be2317-2bae-46d7-a749-b7c12ae9e45b)
[Grizzly(2)] 2023-12-24 01:47:06 [INFO ] [SocketModeClient:232] - New session is open (session id: c3b41e09-1085-42be-989a-a4329ec78f9d)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 90be2317-2bae-46d7-a749-b7c12ae9e45b, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@2304bf7d[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@59fef065[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@3bb99d78]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@736366eb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 9])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: d95fcf25-96bb-488e-82d0-c58f34f971fd)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 05b787e7-eac4-46fe-be77-9224c3afe8d4, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: d95fcf25-96bb-488e-82d0-c58f34f971fd, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: fc1f4a6d-dca2-4b2e-a460-ef6e36b85bf7)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 1399de65-d596-4c50-8eb9-0642a739da3a)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: fc1f4a6d-dca2-4b2e-a460-ef6e36b85bf7, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 794fa0c3-be2c-49dd-b1c4-139e48655f62)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 794fa0c3-be2c-49dd-b1c4-139e48655f62, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@473c7589[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@1206fbbd[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@5d6631b2]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@bd69ced[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 11])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 79bc4280-dbda-4538-aad1-5d68033edcb0, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 794fa0c3-be2c-49dd-b1c4-139e48655f62, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 5b4f8944-eb06-40d7-aba0-add54fa8e00c)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 5b4f8944-eb06-40d7-aba0-add54fa8e00c, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 14a9dcff-fac7-4474-be19-76b0603d6f73)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 14a9dcff-fac7-4474-be19-76b0603d6f73, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: f5b2229b-47c3-4d32-b38e-b10682988a11)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: f5b2229b-47c3-4d32-b38e-b10682988a11, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: e7183eb7-66d6-4d78-b12b-858734bf5462)
[socket-mode-session-cleaner-worker-144] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 4a66a00a-4ee4-493b-9727-cbf2bd19564a, reason: com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl did it)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 4a7c4440-5025-49b9-9540-c8b2b2fbcc8c)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: e6abc674-dc7f-4034-ac90-e3b5da6d2e53)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 8e6205c2-3632-4bbd-a941-f4caf35c9119)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 2f7a5e41-2276-48fd-adfa-d09289dd9145)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 2d043bdb-cc4e-49cc-a5fa-c620d713a7c7)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 791a9efa-d232-4c44-b3c2-d5ce653025bc)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: e6abc674-dc7f-4034-ac90-e3b5da6d2e53, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 65b336bc-f233-452f-a504-e0a6362da1d6, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: d3218d3a-28d3-4af0-b710-81266999c052)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: d3218d3a-28d3-4af0-b710-81266999c052, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: d3218d3a-28d3-4af0-b710-81266999c052, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@68aab4fd[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@733001c1[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@68ec4a4c]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@68b304cb[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 17])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 10f4f6f3-7ba6-414c-8484-be717f253b3f, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 8a4b7f2c-a3c4-4be8-865d-f785658b9d2e, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: b8424916-a257-4621-9f41-c96da7cd38c5)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 576e0f2a-5a31-4438-8691-b11e92488210)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: b8424916-a257-4621-9f41-c96da7cd38c5, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 3f88f8a6-d3b7-4cf9-9bae-aea29cf66800)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 3f88f8a6-d3b7-4cf9-9bae-aea29cf66800, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@3eb2a393[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@46814ab9[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@22826d90]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@73742555[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 4])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 791a9efa-d232-4c44-b3c2-d5ce653025bc, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 3f88f8a6-d3b7-4cf9-9bae-aea29cf66800, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 791a9efa-d232-4c44-b3c2-d5ce653025bc, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@7e63b99d[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@2f98fbc2[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@2e505c5]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@5b2e1863[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 32])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 84dcd1e6-9b50-4b00-914c-2b5e5deda05e, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 84dcd1e6-9b50-4b00-914c-2b5e5deda05e, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@24e4cc9c[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@7545533a[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@392c25c1]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@5b2e1863[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 32])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 2959c247-b34c-421a-947a-1a76bc3a1c85, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: a538df59-61a7-4604-af00-58eaaa4d625c)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: a538df59-61a7-4604-af00-58eaaa4d625c, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: f7eaa661-f240-435c-8e4c-54a293bd58b0)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: f7eaa661-f240-435c-8e4c-54a293bd58b0, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 0a4bb8bd-89fd-40d1-b5dd-d3dc39a8d3fc)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 0a4bb8bd-89fd-40d1-b5dd-d3dc39a8d3fc, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 7a02ae57-3271-423c-b343-16659d776df7)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 7a02ae57-3271-423c-b343-16659d776df7, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 9e9b7b70-dafa-4035-8ce0-0aa4bd0d898d)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 9e9b7b70-dafa-4035-8ce0-0aa4bd0d898d, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 84104aab-1b7c-4d3e-a279-d860c86fc30b)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 84104aab-1b7c-4d3e-a279-d860c86fc30b, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 49eb7157-4530-447c-afab-00de8444c204)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 49eb7157-4530-447c-afab-00de8444c204, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@19a1633a[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@540bb83a[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@10c3fd61]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@76af3c45[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 12])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 49eb7157-4530-447c-afab-00de8444c204, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 2f7a5e41-2276-48fd-adfa-d09289dd9145, reason: Closed abnormally.)
[socket-mode-session-cleaner-worker-95] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 2f7a5e41-2276-48fd-adfa-d09289dd9145, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@4e75a0aa[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@5b303df2[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@5bce7996]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@268bbaad[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 11])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 6830e028-f620-4e45-85cb-557fea1a9484)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 6830e028-f620-4e45-85cb-557fea1a9484, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 3832638b-6a8c-43fa-84e4-16efe5a0eb9a)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 3832638b-6a8c-43fa-84e4-16efe5a0eb9a, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@2be7b175[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@51c897eb[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@4b7d5065]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@10ce62b2[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 19])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 013fc9e9-719f-41d7-931a-358ca821e152, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 3832638b-6a8c-43fa-84e4-16efe5a0eb9a, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 0f49f222-c3c8-4f88-b07a-8876ab9f17e0)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 0f49f222-c3c8-4f88-b07a-8876ab9f17e0, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [WARN ] [SocketModeClient:209] - Failed to send a ping message (session id: 0f49f222-c3c8-4f88-b07a-8876ab9f17e0, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@1652ada[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@1b2299db[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@11080e23]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@501e87a6[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 13])
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 1399de65-d596-4c50-8eb9-0642a739da3a, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 0ba86d61-e074-4d53-b3fa-ebc4aaea9190)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 0ba86d61-e074-4d53-b3fa-ebc4aaea9190, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: f6c805c6-21df-4f49-b1de-f7e29f351515)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: f6c805c6-21df-4f49-b1de-f7e29f351515, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: 76fd4f7a-4ec1-47c8-81bc-95a50f12c231)
[Grizzly(1)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 76fd4f7a-4ec1-47c8-81bc-95a50f12c231, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:232] - New session is open (session id: a57e51fb-4255-46bc-9671-cef169764d63)
[Grizzly(1)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: a57e51fb-4255-46bc-9671-cef169764d63, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:07 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 2d043bdb-cc4e-49cc-a5fa-c620d713a7c7, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 03fb50a3-b0d9-4b77-96e5-b6294eb48ee8)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 03fb50a3-b0d9-4b77-96e5-b6294eb48ee8, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: f16c5a1c-5082-4057-b0ba-8cd477c41b01)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: f16c5a1c-5082-4057-b0ba-8cd477c41b01, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: c0eb641c-9c9f-4681-af44-37e405e75cbc)
[socket-mode-session-cleaner-worker-95] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 1c290446-2c5c-49a8-a909-266cc2e48e6d, reason: com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl did it)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 11f5014a-097f-4f9a-9aaf-8a0ce5ce9db4)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 11f5014a-097f-4f9a-9aaf-8a0ce5ce9db4, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 991f9316-1a41-43cd-bffd-7e56d9748ca9)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: d3ab0814-2ea9-4b78-b0e8-ea0a39756fb4)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 991f9316-1a41-43cd-bffd-7e56d9748ca9, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: bbe50fa2-d7fb-4255-9265-229ea2de31f6)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: bbe50fa2-d7fb-4255-9265-229ea2de31f6, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 8ee1d8ee-d023-431b-9625-20387d95748d)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: 8ee1d8ee-d023-431b-9625-20387d95748d, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: e4dc7a9d-2b22-4751-a489-23228c977445)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: e842a265-17c7-49c9-a30c-9163a70c0a28)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:240] - onClose listener is called (session id: e4dc7a9d-2b22-4751-a489-23228c977445, reason: Closed abnormally.)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 592f3a8d-fadb-461f-95c9-e3a250b72af8)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 5e73ec8f-4803-40f3-a8ca-0ed66e3dfd0c)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 8e06ff07-15b0-4524-968b-a3e504627fce)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: fa3f2fe9-ec40-468b-a5cb-2ca7f25a4deb)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 90dba958-8dc5-4fcf-a457-9afabcefb423)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: bd00f506-cac0-402d-882d-690dc5d491bd)
[Grizzly(2)] 2023-12-24 01:47:08 [INFO ] [SocketModeClient:232] - New session is open (session id: 66652362-b9fc-442f-bd59-56fbd2c419a4)
[Grizzly(2)] 2023-12-24 01:47:08 [ERROR] [SocketModeClient:263] - Failed to reconnect to the Socket Mode server: Failed to connect to the Socket Mode API endpoint. (status: 429, error: ratelimited)
java.io.IOException: Failed to connect to the Socket Mode API endpoint. (status: 429, error: ratelimited)
	at com.slack.api.Slack.issueSocketModeUrl(Slack.java:196)
	at com.slack.api.socket_mode.SocketModeClient.connectToNewEndpoint(SocketModeClient.java:65)
	at com.slack.api.socket_mode.SocketModeClient.runCloseListenersAndAutoReconnectAsNecessary(SocketModeClient.java:261)
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.onClose(SocketModeClientTyrusImpl.java:242)
	at jdk.internal.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.glassfish.tyrus.core.AnnotatedEndpoint.callMethod(AnnotatedEndpoint.java:551)
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:566)
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:575)
	at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:1235)
	at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:110)
	at org.glassfish.tyrus.core.ProtocolHandler.close(ProtocolHandler.java:488)
	at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:244)
	at org.glassfish.tyrus.client.TyrusClientEngine$2$1.close(TyrusClientEngine.java:613)
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter$CloseTask.execute(GrizzlyClientFilter.java:484)
	at org.glassfish.tyrus.container.grizzly.client.TaskProcessor.processTask(TaskProcessor.java:91)
	at org.glassfish.tyrus.container.grizzly.client.TaskProcessor.processTask(TaskProcessor.java:68)
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter.handleClose(GrizzlyClientFilter.java:198)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$4.execute(ExecutorResolver.java:52)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515)
	at org.glassfish.grizzly.nio.NIOConnection.preClose(NIOConnection.java:881)
	at org.glassfish.grizzly.nio.transport.TCPNIOConnection.preClose(TCPNIOConnection.java:73)
	at org.glassfish.grizzly.nio.NIOConnection.terminate0(NIOConnection.java:599)
	at org.glassfish.grizzly.nio.transport.TCPNIOConnection.terminate0(TCPNIOConnection.java:267)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.read(TCPNIOTransport.java:608)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleRead(TCPNIOTransportFilter.java:51)
	at org.glassfish.grizzly.filterchain.TransportFilter.handleRead(TransportFilter.java:149)
	at org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper.handleRead(SSLBaseFilter.java:1120)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: SlackApiException(response=Response{protocol=h2, code=429, message=, url=https://slack.com/api/apps.connections.open}, responseBody={"ok":false,"error":"ratelimited"}, error=SlackApiErrorResponse(ok=false, warning=null, error=ratelimited, needed=null, provided=null, httpResponseHeaders=null))
	at com.slack.api.methods.impl.MethodsClientImpl.parseJsonResponseAndRunListeners(MethodsClientImpl.java:3553)
	at com.slack.api.methods.impl.MethodsClientImpl.parseJsonResponseAndRunListeners(MethodsClientImpl.java:3526)
	at com.slack.api.methods.impl.MethodsClientImpl.postFormWithTokenAndParseResponse(MethodsClientImpl.java:3433)
	at com.slack.api.methods.impl.MethodsClientImpl.appsConnectionsOpen(MethodsClientImpl.java:1297)
	at com.slack.api.methods.impl.MethodsClientImpl.appsConnectionsOpen(MethodsClientImpl.java:1302)
	at com.slack.api.Slack.issueSocketModeUrl(Slack.java:184)
	... 47 more

Updated bolt sdk and jdk (saw advices that solves some issues with ssl) but didn't help.
First we hav and ssl hadhsake error and then retries and exceeding a limit
12-26T18:22:47.375Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: fd362d39-f74f-4a84-8954-9acf138768f9)
2023-12-26T18:22:47.390Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: fd362d39-f74f-4a84-8954-9acf138768f9, reason: Closed abnormally.)
2023-12-26T18:22:47.485Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: e0021593-e6f6-41c2-9549-c051c8e876e5)
2023-12-26T18:22:47.504Z  INFO 130 --- [     Grizzly(1)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: e0021593-e6f6-41c2-9549-c051c8e876e5, reason: Closed abnormally.)
2023-12-26T18:22:47.520Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: c045827f-7121-489f-b33c-3362b803a994)
2023-12-26T18:22:47.523Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: c045827f-7121-489f-b33c-3362b803a994, reason: Closed abnormally.)
2023-12-26T18:22:47.594Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 03df01fd-d3a5-4069-bac7-3bc87aa69641)
2023-12-26T18:22:47.614Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: d04a1c12-145f-43f8-9431-b6e49ed7cc03)
2023-12-26T18:22:47.615Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: 03df01fd-d3a5-4069-bac7-3bc87aa69641, reason: Closed abnormally.)
2023-12-26T18:22:47.712Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: f08109c4-ebeb-4152-8de4-a0656248e9a1)
2023-12-26T18:22:47.717Z  WARN 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : Failed to send a ping message (session id: f08109c4-ebeb-4152-8de4-a0656248e9a1, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@61278af5[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@281e57f7[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@541e60a]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@5982a0d1[Shutting down, pool size = 4, active threads = 0, queued tasks = 0, completed tasks = 4])
2023-12-26T18:22:47.757Z  INFO 130 --- [aner-worker-198] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: f08109c4-ebeb-4152-8de4-a0656248e9a1, reason: com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl did it)
2023-12-26T18:22:47.788Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 9c486e21-b2e0-42b7-a94f-d2049508e21f)
2023-12-26T18:22:47.892Z  INFO 130 --- [aner-worker-192] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: d04a1c12-145f-43f8-9431-b6e49ed7cc03, reason: com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl did it)
2023-12-26T18:22:47.898Z ERROR 130 --- [aner-worker-181] c.s.api.socket_mode.SocketModeClient     : Failed to reconnect to Socket Mode server: javax.websocket.DeploymentException: Handshake error.

java.io.IOException: javax.websocket.DeploymentException: Handshake error.
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.connect(SocketModeClientTyrusImpl.java:173) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.SocketModeClient.connectToNewEndpoint(SocketModeClient.java:66) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.SocketModeClient.runCloseListenersAndAutoReconnectAsNecessary(SocketModeClient.java:261) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.onClose(SocketModeClientTyrusImpl.java:242) ~[slack-api-client-1.36.1.jar:1.36.1]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.callMethod(AnnotatedEndpoint.java:551) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:566) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:575) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:1235) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:110) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.ProtocolHandler.close(ProtocolHandler.java:488) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:244) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:254) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusRemoteEndpoint.close(TyrusRemoteEndpoint.java:480) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusSession.close(TyrusSession.java:211) ~[tyrus-standalone-client-1.21.jar:na]
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.closeSession(SocketModeClientTyrusImpl.java:296) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.lambda$setCurrentSession$1(SocketModeClientTyrusImpl.java:278) ~[slack-api-client-1.36.1.jar:1.36.1]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: javax.websocket.DeploymentException: Handshake error.
	at org.glassfish.tyrus.client.ClientManager$3$1.run(ClientManager.java:658) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.client.ClientManager$3.run(ClientManager.java:696) ~[tyrus-standalone-client-1.21.jar:na]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
	at org.glassfish.tyrus.client.ClientManager$SameThreadExecutorService.execute(ClientManager.java:849) ~[tyrus-standalone-client-1.21.jar:na]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) ~[na:na]
	at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:493) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:355) ~[tyrus-standalone-client-1.21.jar:na]
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.connect(SocketModeClientTyrusImpl.java:170) ~[slack-api-client-1.36.1.jar:1.36.1]
	... 20 common frames omitted
Caused by: org.glassfish.tyrus.core.HandshakeException: Response code was not 101: 408.
	at org.glassfish.tyrus.client.TyrusClientEngine.processResponse(TyrusClientEngine.java:300) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter.handleHandshake(GrizzlyClientFilter.java:323) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter.handleRead(GrizzlyClientFilter.java:292) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549) ~[tyrus-standalone-client-1.21.jar:na]
	... 1 common frames omitted

ion id: 92c7e0f2-1dba-472a-ab37-f053a8b283fc, reason: Closed abnormally.)
2023-12-26T23:24:16.881Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: a1b4f1cb-0b95-42b9-a5da-c070b8b2947c)
2023-12-26T23:24:16.897Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 7a4a3c63-4fd6-4abe-80cc-2ef6031a361c)
2023-12-26T23:24:16.900Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: a1b4f1cb-0b95-42b9-a5da-c070b8b2947c, reason: Closed abnormally.)
2023-12-26T23:24:16.928Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: a1326811-8a08-448c-b1a3-2645d4b82e0f, reason: Closed abnormally.)
2023-12-26T23:24:16.941Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 8b8d532e-d981-43eb-976a-83493ac4f0fe)
2023-12-26T23:24:16.951Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: 8b8d532e-d981-43eb-976a-83493ac4f0fe, reason: Closed abnormally.)
2023-12-26T23:24:16.998Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 4c32957b-bddf-40f8-8084-b6c5c2e68ecb)
2023-12-26T23:24:17.007Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 355d9b0d-d4b5-4f0b-850c-63645061e1ad)
2023-12-26T23:24:17.011Z  INFO 130 --- [     Grizzly(1)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: 4c32957b-bddf-40f8-8084-b6c5c2e68ecb, reason: Closed abnormally.)
2023-12-26T23:24:17.065Z  WARN 130 --- [aner-worker-198] c.s.api.socket_mode.SocketModeClient     : Failed to send a ping message (session id: 4c32957b-bddf-40f8-8084-b6c5c2e68ecb, error: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@5fec3609[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@2cec5a3c[Wrapped task = org.glassfish.tyrus.core.TyrusSession$IdleTimeoutCommand@6a54033c]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@2bd3abfd[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 7])
2023-12-26T23:24:17.072Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: 7e7e39af-d1fd-456f-a2e2-c68d378c336c)
2023-12-26T23:24:17.083Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: 7e7e39af-d1fd-456f-a2e2-c68d378c336c, reason: Closed abnormally.)
2023-12-26T23:24:17.089Z ERROR 130 --- [     Grizzly(2)] com.slack.api.methods.impl.TeamIdCache   : Failed to call auth.test API (error: status: 429, error: ratelimited, needed: null, provided: null, warning: null)

com.slack.api.methods.SlackApiException: status: 429, error: ratelimited, needed: null, provided: null, warning: null
	at com.slack.api.methods.impl.MethodsClientImpl.parseJsonResponseAndRunListeners(MethodsClientImpl.java:3617) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.MethodsClientImpl.parseJsonResponseAndRunListeners(MethodsClientImpl.java:3590) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.TeamIdCache.lambda$lookupOrResolve$0(TeamIdCache.java:44) ~[slack-api-client-1.36.1.jar:1.36.1]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[na:na]
	at com.slack.api.methods.impl.TeamIdCache.lookupOrResolve(TeamIdCache.java:67) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.TeamIdCache.lookupOrResolve(TeamIdCache.java:40) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.MethodsClientImpl.postFormWithTokenAndParseResponse(MethodsClientImpl.java:3488) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.MethodsClientImpl.appsConnectionsOpen(MethodsClientImpl.java:1301) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.methods.impl.MethodsClientImpl.appsConnectionsOpen(MethodsClientImpl.java:1306) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.Slack.issueSocketModeUrl(Slack.java:184) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.SocketModeClient.connectToNewEndpoint(SocketModeClient.java:65) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.SocketModeClient.runCloseListenersAndAutoReconnectAsNecessary(SocketModeClient.java:261) ~[slack-api-client-1.36.1.jar:1.36.1]
	at com.slack.api.socket_mode.impl.SocketModeClientTyrusImpl.onClose(SocketModeClientTyrusImpl.java:242) ~[slack-api-client-1.36.1.jar:1.36.1]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.callMethod(AnnotatedEndpoint.java:551) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:566) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.AnnotatedEndpoint.onClose(AnnotatedEndpoint.java:575) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:1235) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:110) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.ProtocolHandler.close(ProtocolHandler.java:488) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:244) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.client.TyrusClientEngine$2$1.close(TyrusClientEngine.java:613) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter$CloseTask.execute(GrizzlyClientFilter.java:484) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.TaskProcessor.processTask(TaskProcessor.java:91) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.TaskProcessor.processTask(TaskProcessor.java:68) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientFilter.handleClose(GrizzlyClientFilter.java:198) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.ExecutorResolver$4.execute(ExecutorResolver.java:52) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.NIOConnection.preClose(NIOConnection.java:881) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOConnection.preClose(TCPNIOConnection.java:73) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.NIOConnection.terminate0(NIOConnection.java:599) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOConnection.terminate0(TCPNIOConnection.java:267) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.read(TCPNIOTransport.java:608) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleRead(TCPNIOTransportFilter.java:51) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.TransportFilter.handleRead(TransportFilter.java:149) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper.handleRead(SSLBaseFilter.java:1120) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569) ~[tyrus-standalone-client-1.21.jar:na]
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549) ~[tyrus-standalone-client-1.21.jar:na]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]

Hey @dbudim, happy new year!
Regarding your last logs provided in your last comment: it seems the websocket connection gets closed 'abnormally' first:
2023-12-26T18:22:47.375Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : New session is open (session id: fd362d39-f74f-4a84-8954-9acf138768f9)
2023-12-26T18:22:47.390Z  INFO 130 --- [     Grizzly(2)] c.s.api.socket_mode.SocketModeClient     : onClose listener is called (session id: fd362d39-f74f-4a84-8954-9acf138768f9, reason: Closed abnormally.)

This is assuming that session id: fd362d39-f74f-4a84-8954-9acf138768f9 is the 'first' session on app boot up?
According to the WebSocket spec, an abnormal closure is one where the connection was severed without an endpoint sending a Close frame (see close code 1006). This indicates to me that the underlying network connection had an issue.
Regardless, I would expect this SDK to be able to handle this, try to reconnect, and not get itself all confused and cause a rate limit exception 😓
Looking through the logs, it seems to me that possibly the SDK is not accounting for the retries in a correct manner. Some of the session IDs are not 'paired' properly with a open and close message. For example, session ID 7a4a3c63-4fd6-4abe-80cc-2ef6031a361c I only see an 'open' message for, but not a closed one. Additionally, it seems like the socket connection thread pool (of size 4) also experienced issues.
This will probably be difficult to debug / reproduce, but I will try...

Actually, #1256 has very similar logging as here... looking into it.

Going to close this issue as it is a duplicate of #1256 and there is more activity there. If you have more discussion to contribute to this issue, please comment over in #1256.


Implement Gnocchi measures batch create via metrics IDs

Add ability to create measures of a different metrics via metrics IDs references.
Add unit and acceptance tests and a documentation example.
That request implements pushing measures to different metrics via batch request to metric IDs.
Those changes won't provide the ability that allow user to batch measures via resource IDs and metric names.
Docs reference: rest.html#batch
For #698
Links to the line numbers/files in the OpenStack source code that support the
code in this PR:
API:

https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/rest/api.py#L1614

Storage code depends on a driver that is used for saving measures:

Ceph: https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/incoming/ceph.py#L81
Redis: https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/incoming/redis.py#L52
File: https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/incoming/file.py#L168
S3: https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/incoming/s3.py#L161
Swift: https://github.com/gnocchixyz/gnocchi/blob/stable/4.1/gnocchi/incoming/swift.py#L100

@jtopjian I've played with the third variant of the implementation. You can check how it looks.

@jtopjian I've fixed the name.
I've checked the type BatchCreateMetricsOpts []MetricOpts and i think it's providing at least on benefit - options for the BatchCreateMetrics are little cleaner now:
createOpts := measures.BatchCreateMetricsOpts{
  {
    ID: "777a01d6-4694-49cb-b86a-5ba9fd4e609e",
    Measures: []measures.MeasureOpts{
      {
        Timestamp: &currentTimestamp,
        Value:     200,
      },
      {
        Timestamp: &pastHourTimestamp,
        Value:     300,
      },
    },
  },
  {
    ID: "6dbc97c5-bfdf-47a2-b184-02e7fa348d21",
    Measures: []measures.MeasureOpts{
      {
        Timestamp: &currentTimestamp,
        Value:     111,
      },
      {
        Timestamp: &pastHourTimestamp,
        Value:     222,
      },
    },
  },
}

I've commited those changes.

@ozerovandrei This looks really good and I really like the final result.
Is this good to merge or is there anything else you wanted to do?

@jtopjian let's merge it.

Sounds good. Nice work on this :)


Package managers support

[ ] brew
[ ] krew
[ ] snap
[ ] .rpm (dnf, yum)
[ ] .deb (apt)

krew 👍
brew 👍


command interface using px4

I am trying to use this planner with px4 as I would like to simulate a drone I will later build.
I was looking for the actual commands sent to the drone, which are usually passed as mavros_msgs/AttitudeTarget or as trajectory_msgs/MultiDOFJointTrajectoryPoint.
Analyzing the topic /rmf_obelix/command/trajectory I found that there a message of the latter type is published in it, but at a very slow rate and probably not for the purpose at which such messages are normally published, so I have a doubt about it. Is it used to keep a rough track of
/rmf_obelix/command/motor_speed instead publishes a message of type mav_msgs/Actuators direclty to gazebo, which I understand is the used way to move the drone.
now, is there a way to get the planner to output one this type of messages among the two mentioned above?

Hello @DavidePatria ,
Sorry for the late reply. The final path is published by the Planner Control Interface (PCI) which publishes it as a trajectory_msgs/MultiDOFJointTrajectoryPoint. This is published only when a new path is calculated. Since the PX4 might need a continuous stream of input the way we handle this is by using a separate controller that will use the trajectory published by PCI and convert it to attitude commands. If you want to use the position controller of the PX4 stack you can have a path tracker that publishes waypoints instead of attitude commands.
In conclusion, PCI only publishes the path when a new path is calculated and a separate controller is need to follow this path.
Let me know if this helps.
Best,
Mihir

Hi, thank you for your response.
I was able to identify and connect the right topics to the components I an truing to use, but the published waypoints seem too few to trigger px4 and the drone doesn't follow the path properly.  I am using a controller that takes the correct path message

What commands does your controller provide to the px4? If you are sending position waypoints to px4, then your controller will have to send one waypoint at a time and send the next waypoint only after the robot has reached the first one.

I am using this, which takes the waypoints and sends attitude commands (I believe), which works with other programmes I am using, with an higher number of waypoints

Hi @DavidePatria ,
Sorry for the late reply.
I believe you are using the geometric_controller in the above package and remap the topic published by the planner to the topic here.
This calculates the control output only when it receives a trajectory message on this topic and only towards the first waypoint. So if you are using this you will have to publish the trajectory accordingly.
Let me know.
Best,
Mihir


[Bug]: Global search item font size is too small, line spacing is too small

ODC version
odc430
OB version

What happened?
Global search item font size is too small, line spacing is too small

What did you expect to happen?
Increase font size and line spacing
How can we reproduce it (as minimally and precisely as possible)?
View global search
Anything else we need to know?
No response

Fixed In Commit 7e9548985c9d1dae81911e06802b50444f4cd502
------
畅晚
Mon Jul 8 21:28:40 2024 +0800

pass


feat(frontend): Add feedback button

End-user friendly description of the problem this fixes or functionality that this introduces

[ ] Include this change in the Release Notes. If checked, you must provide an end-user friendly description for your change below

Give a summary of what the PR does, explaining any non-trivial design decisions

Redirects to a feedback form

Link of any specific issues this addresses

To run this PR locally, use the following command:
docker run -it --rm   -p 3000:3000   -v /var/run/docker.sock:/var/run/docker.sock   --add-host host.docker.internal:host-gateway   -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:e158775-nikolaik   --name openhands-app-e158775   docker.all-hands.dev/all-hands-ai/openhands:e158775

I think the feedback form should have an "other" option.
I must have seen some experiments out there, although I don't know how good or open to users they were.

@rbren any update on the result of your meeting?

Going to close this for now. Please reopen when discussions are done and PR is ready again.


⚠ Processors has degraded performance

In 80cbc6a, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 73 ms

Resolved: Processors performance has improved in 3537096.


Intro Section Without Image for Foundations

Description
Currently, each content begins with an introductory section that provides a brief overview of the topic. This works well on the component pages, where there is a clear visual separation between the introduction and the main content. However, on the foundations pages, this separation is missing because we only have one version of the intro section – the one with an image on the right side.
Request
We need an additional variation of the intro section without an image, allowing for both layouts (with and without an image) to be utilized across different types of pages.
Expected Enhancement

A visually distinct intro section on foundation and component pages.
Increased recognition and consistency within the content, enabling users to learn what to expect in the intro section across all pages.

Allready implemented


Future of FASTER

Do you want to improve Faster to make it as powerful as Redis？

The core FASTER library continues to evolve and expand its feature set based on use cases in production (see our recent pull requests and releases for more info). Note that FASTER is not directly comparable to Redis, as FASTER is not just a cache. FASTER can index and access data larger than memory, as well as take consistent checkpoints for recovery, more like a persistent hash key-value store + cache combination. FASTER is multi-threaded and latch-free as well, which gives it very high performance on a single machine.
Some recently completed and ongoing/future work items on our roadmap can be found at https://microsoft.github.io/FASTER/roadmap.
From a research perspective, we plan to making a distributed elastic version of FASTER available in the next 6 months. We also plan to release a new storage and query layer for flexible-schema data such as JSON and CSV (based on extending FASTER) in the future. You can read more about this storage layer, called FishStore, in our new research paper.


False positive warnings "function is never used" and "constant is never used"

Problem
I get warnings about "function is never used" and "constant is never used".  However I know they are used when I run cargo run or execute the binary directly.
Steps
When I run these commands
cargo clippy -- --deny clippy::all
cargo build
cargo build --release
cargo test
in this repository at this commit
https://github.com/sean-hut/create-readme/tree/a1a4c3419d7108d2f7e7adfb5df54b1d47c7b98e
I get these warnings:
warning: constant is never used: `CHANGELOG`
 --> src/sections/changelog.rs:1:1
  |
1 | / pub const CHANGELOG: &str = "## Changelog
2 | |
3 | | The changelog file is: CHANGELOG.md
4 | |
5 | | All notable changes to this project are documented in the changelog file.";
  | |___________________________________________________________________________^
  |
  = note: `#[warn(dead_code)]` on by default

warning: function is never used: `contributing`
 --> src/sections/contributing.rs:1:8
  |
1 | pub fn contributing() -> &'static str {
  |        ^^^^^^^^^^^^

warning: function is never used: `documentation`
 --> src/sections/documentation.rs:1:8
  |
1 | pub fn documentation() -> &'static str {
  |        ^^^^^^^^^^^^^

warning: function is never used: `example_use`
 --> src/sections/example_use.rs:1:8
  |
1 | pub fn example_use() -> &'static str {
  |        ^^^^^^^^^^^

warning: function is never used: `licence`
 --> src/sections/license.rs:1:8
  |
1 | pub fn licence() -> &'static str {
  |        ^^^^^^^

warning: function is never used: `overview`
 --> src/sections/overview.rs:1:8
  |
1 | pub fn overview() -> &'static str {
  |        ^^^^^^^^

warning: function is never used: `top_heading`
 --> src/sections/top_heading.rs:1:8
  |
1 | pub fn top_heading() -> &'static str {
  |        ^^^^^^^^^^^

warning: function is never used: `development_version`
 --> src/sections/versions.rs:1:8
  |
1 | pub fn development_version() -> &'static str {
  |        ^^^^^^^^^^^^^^^^^^^

warning: function is never used: `stable_version`
 --> src/sections/versions.rs:7:8
  |
7 | pub fn stable_version() -> &'static str {
  |        ^^^^^^^^^^^^^^

warning: 9 warnings emitted

Notes
Output of cargo version: cargo 1.47.0 (f3c7e066a 2020-08-28)

It looks like you have two crates in your project, a library and a binary.  It looks like you reuse mod sections in both.  In the binary, you don't appear to be using the sections module (just importing it with mod), so it is reporting that all of that is unused in the binary.  Each crate is independent of one another, so rustc does not know that code is used in another crate. I'd suggest removing the mod sections from main.rs.  If you need to access code of a library from a binary, typically you access it through the library crate (side_effects in this case).
Here is some documentation on Rust's crate and module system: https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html and http://www.sheshbabu.com/posts/rust-module-system/

Thank you for your thoughtful response and the links to the reference material.

I'd suggest removing the mod sections from main.rs.

This suggestion solves the problem.
I was overlooking main.rs.
It would be nice if these warning messages said what file the unused importing was happening in.


No req.header() in version 4

What version of Hono are you using?
4.0.10
What runtime/platform is your app running on?
cloudflare workers
What steps can reproduce the bug?
I have a simple example that works with Hono v3.  This is a websocket example, but the issue seems to be that there are no req.header() when fetching on /ws when using Hono v4
src/index.ts
import { Hono } from 'hono'
export { SignalServer } from './signalserver'

type Bindings = {
  SIGNAL_SERVER: DurableObjectNamespace
}
const app = new Hono<{ Bindings: Bindings }>()
app.use('*', (c) => {
  const id = c.env.SIGNAL_SERVER.idFromName('A')
  const obj = c.env.SIGNAL_SERVER.get(id)
  // console.log('url:', c.req.url, c.req.header()). // HEADERS EXIST HERE
  return obj.fetch(c.req.url, c.req)
})

export default app

src/signalServer.ts
import { Hono } from 'hono'
import RX from './rx.html'

export class SignalServer {
  state: DurableObjectState
  app: Hono = new Hono()

  constructor(state: DurableObjectState) {
    this.state = state

    this.app.get('/ws', async (c) => {
      const upgradeHeader = c.req.header('Upgrade')
      console.log('headers:', c.req.header()) //  IN V3,  HEADERS EXIST.  IN V4, THERE ARE NO HEADERS HERE
      if (upgradeHeader !== 'websocket') {
        console.log('NO upgrade HEADER', upgradeHeader)
        return c.text('Expected websocket', 400)
      }

      let currentValue = await this.state.storage?.get<number>('count') || 0
      currentValue = currentValue + 1
      await this.state.storage?.put('count', currentValue)

      const [client, server] = Object.values(new WebSocketPair())

      this.state.acceptWebSocket(server, ['signal'])
      return new Response(null, {
        status: 101,
        webSocket: client,
      })
    })

    this.app.get('/', async () => {
      return new Response('hello', { headers: { 'Content-Type': 'text/html;charset=UTF-8' } })
    })
    this.app.get('/rx', async () => {
      return new Response(RX, { headers: { 'Content-Type': 'text/html;charset=UTF-8' } })
    })
  }
  async fetch(request: Request) {
    return this.app.fetch(request)
  }
}

src/rx.html

RX

What is the expected behavior?
I would expect Hono V3 and V4 to be identical here and pass the headers through.
What do you see instead?
In Hono V4, the c.req.header() is empty on this.app.get('/ws', async (c) => ....
Additional information
No response

Hi @augustblack
I'll investigate it, but your reproducing code is a bit complex. So, could you provide a minimal example or GitHub project?

sorry for the long delay.
please see the repo at https://github.com/augustblack/hono_issue_2332
and specifically this line: https://github.com/augustblack/hono_issue_2332/blob/ba48f3ca61981e93947f84dfa9b300f2ead0063a/src/signalserver.ts#L68
In v3, all is fine.
In v4, there are no headers on the c.req  when making the inital websocket GET request.

Hi @augustblack
Thank you for creating the project. I've tried it. But it seems to work fine:

Or is my way wrong?

Hi  @yusukebe
Thanks for taking a look and thanks for the wonderful hono.js project.
the package.json uses Hono v3, which is working.
If you upgrade the package.json to use to hono v4, does it still work for you?

@augustblack

the package.json uses Hono v3, which is working.

Ah, thanks!
You can use c.req.raw for fetch in src/index.ts:
// src/index.ts

app.use('*', (c) => {
  const id = c.env.SIGNAL_SERVER.idFromName('A')
  const obj = c.env.SIGNAL_SERVER.get(id)
  return obj.fetch(c.req.url, c.req.raw) // use c.req.raw
})

okay, thank you.  It is working now.
it would be great to update the examples for version 4.

We can close this. Thanks!


Status?

What's the status of this? I'm building it from source(since I'm guessing that's the only option) but not sure if I'm doing it correctly. I know you have to add "config=cuda" if you're building for CUDA but not sure if there's a special config for OpenCL.  Also, I'm planning on using this with my Intel gfx GPU, will that be supported if I use beignet?

First, you need to download and install the compiler available at https://www.codeplay.com/products/computesuite/computecpp.
Then you need to call ./configure and make sure you answer YES when prompted for OpenCL support.
Last but not least, you need to call bazel with --config=sycl to compile the OpenCL kernels.


[macOS] Adding Swig

Description
PR with swig 4.0.2 installation. Script tests have been added, also packages are installed through the homebrew package manager.
Related issue:
https://github.com/actions/virtual-environments/issues/3342
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run macos1014, macos1015, macos110