Poor performance and errors when proxying to https

Describe the bug
I've been running some benchmarks on my local machine for my API gateway that is currently using Ocelot, but that I'm in the process of migrating to YARP. To perform the benchmarks I've been using Crank from the .NET team, which is awesome by the way.
What I've seen so far is that if the downstream service I'm proxying to is using HTTP, YARP is much faster than Ocelot. For example, here are the results for my current gateway using Ocelot:
First Request (ms):   850
Requests:             18,068
Bad responses:        0
Mean latency (us):    214,006
Max latency (us):     499,452
Requests/sec:         1,181
Requests/sec (max):   7,272

While these are the results for a similar scenario, but using YARP:
First Request (ms):   1,205
Requests:             48,984
Bad responses:        0
Mean latency (us):    78,480
Max latency (us):     2,128,675
Requests/sec:         3,258
Requests/sec (max):   13,420

Those are not too shabby, although the max latency for YARP is interesting. Do note that my Ocelot based gateway is running on .NET Core 3.1, while my YARP gateway is running on .NET 5 Preview 7.
However, when I ran the same benchmark with the gateway proxying to the downstream service using HTTPS, I'm seeing very different results:
Ocelot:
First Request (ms):   1,088
Requests:             12,819
Bad responses:        0
Mean latency (us):    301,467
Max latency (us):     3,571,386
Requests/sec:         839
Requests/sec (max):   7,944

YARP:
First Request (ms):   1,631
Requests:             527
Bad responses:        515
Mean latency (us):    9,021,413
Max latency (us):     10,132,335
Requests/sec:         18
Requests/sec (max):   6,587

Obviously the number of bad responses triggered me, so I've looked into the logs to see if I can figure out what's going wrong. I see a lot of these exceptions:
[04:31:02.965] System.OperationCanceledException: The operation was canceled.
[04:31:02.965]    at System.Threading.CancellationToken.ThrowOperationCanceledException()
[04:31:02.965]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
[04:31:02.965]    at System.Net.Security.SslStream.<FillHandshakeBufferAsync>g__InternalFillHandshakeBufferAsync|180_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)
[04:31:02.965]    at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)
[04:31:02.965]    at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
[04:31:02.965]    at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
[04:31:02.965]    at Microsoft.ReverseProxy.Service.Proxy.HttpProxy.NormalProxyAsync(HttpContext context, HttpRequestMessage upstreamRequest, Transforms transforms, HttpMessageInvoker httpClient, ProxyTelemetryContext proxyTelemetryContext, CancellationToken shortCancellation, CancellationToken longCancellation)
[04:31:02.965]    at Microsoft.ReverseProxy.Telemetry.TextOperationLogger`1.ExecuteAsync(String operationName, Func`1 action)
[04:31:02.965]    at Microsoft.ReverseProxy.Middleware.ProxyInvokerMiddleware.Invoke(HttpContext context)
[04:31:02.965]    at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
[04:31:02.965]    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
[04:31:02.965]    at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

That looks like it is somehow not able to complete the SSL handshake with the downstream service, but my Ocelot based gateway doesn't have that same problem and both are going to the exact same service. That service is running on ASP.NET Core 3.1 by the way.
To Reproduce

So far I've followed the basic guide for setting up a reverse proxy with YARP. I'm using the following configuration:
"ReverseProxy": {
  "Routes": [
    {
        "RouteId": "realization",
        "ClusterId": "EchoService",
        "Match": {
          "Methods": [ "GET", "POST" ],
          "Hosts": [ "localhost" ],
          "Path": "/realization/{*remainder}"
        },
        "Transforms": [
            { "PathSet": "/api/values" }
        ]
     }
  ],
  "Clusters": {
    {
      "EchoService": {
        "LoadBalancing": {
          "Mode": "Random"
        },
        "Destinations": {
          "backend_destination1": {
            "Address": "https://localhost:5003/"
          }
        }
   }
}
  }
}

Changing backend_destination1's Address to http://localhost:5002/ fixes the issue.
Further technical details

Include the version of the packages you are using: 1.0.0-preview.3
The platform (Linux/macOS/Windows): macOS

How many concurrent requests are you issuing with crank?
Does the destination server have HTTP/2 enabled?

YARP defaults to proxying via HTTP/2 when https is used, if the destination has it enabled. There's a known issue with HTTP/2 being limited to one connection and commonly 100 concurrent streams on that connection. If you're issuing more than 100 concurrent requests they may get backlogged and time out. This should be fixed by https://github.com/dotnet/runtime/pull/39439 in 5.0.0 RC1.
Mitigations:

Raise the HTTP/2 concurrent stream limit on the destination server.
Lower the concurrency count on crank.

Nevermind, I hadn't actually read the middle of that stack trace...

I was using the default out of the box Bombardier job, which seems to use 256 concurrent connections.I'll try to see if I can lower that to see what happens then. Is there some way with YARP to control which protocol is used for the downstream request?

I ran another benchmark with 100 concurrent connections, and that seems to fix my issue. Here are the results for that:
First Request (ms):   1,643
Requests:             18,694
Bad responses:        0
Mean latency (us):    80,288
Max latency (us):     2,516,643
Requests/sec:         1,262
Requests/sec (max):   5,649

cc @sebastienros

@scalablecory can you validate that the callstack is actually using http2. Chris is worried about:
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
[04:31:02.965]    at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)

@scalablecory can you validate that the callstack is actually using http2.

The call stack shows HTTP/1. The exception indicates the remote server is timing out.

I'm seeing comparable results when I hit a https endpoint on the proxy and it is proxying to http.
I don't need benchmarks to see that there is something weird going on. This is obvious from running a slightly non-trivial ASP.NET website and trying both the http and https endpoints on the proxy.
It appears some kind of latency of about 2000ms is hidden somewhere. The home page loads in a varying number of 2 second delays.
I've modified the configuration of ReverseProxy.Sample for the occasion, instead of rambling here about the reverse proxy that I had written myself, renaming the endpoint for RouteId: route2 from localhost to localhost2 and replacing the match on localhost with:
"Clusters": { "cluster3": { "Destinations": { "c3d1": { "Address": "http://localhost:64010" } } } }
"Routes": [ { "RouteId": "route3", "ClusterId": "cluster3", "Match": { "Hosts": [ "localhost" ] } } ]

also configuring the proxy to use ports 6080/6443 instead of the overused 5000/5001. Hitting http://localhost:6080 or http://localhost:64010 are both very reasonably fast, but https://localhost:6443 is wicked slow.  Request path: '/img/projects/thumbnails/2.jpg'. Physical path: 'C:\Users\Eric\Source\Repos\...\wwwroot\img\projects\thumbnails\2.jpg'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished in 7.3538ms 200 image/jpeg

@jmezach would you be able to try it with 5.0 RC1 (or daily build) please?
We think that @alnikola's change to enable multiple HTTP/2 connections would help here.

I can give that a shot yes, just need to figure out how I get the RC1 bits. Those aren't publicly available yet right? Also, would the fix be in the client (ie. do I run my YARP proxy on RC1) or in the server (ie. do I run my downstream service on RC1)?

I just ran the benchmark again on my local machine with Crank's channel setting set to latest for my YARP proxy which gives me the following versions:
SDK: 5.0.100-rc.1.20379.10
.NET Runtime: 5.0.0-rc.1.20415.1
ASP.NET Runtime: 5.0.0-rc.1.20415.5
Initially that gave me a small boost in numbers, but then I realized I didn't increase the number of concurrent connections. As soon as I did that, I'm getting a lot of bad responses again:
| load                |            |
| ------------------- | ---------- |
| Build Time (ms)     |      3,348 |
| Start Time (ms)     |      2,353 |
| Published Size (KB) |     72,766 |
| First Request (ms)  |      1,135 |
| Requests            |        513 |
| Bad responses       |        512 |
| Mean latency (us)   |  9,909,972 |
| Max latency (us)    | 10,580,132 |
| Requests/sec        |         18 |
| Requests/sec (max)  |      6,213 |

Here is a stack trace for a failing request:
[09:49:16.747] [21:49:16 ERR] An unhandled exception has occurred while executing the request.
[09:49:16.747] System.OperationCanceledException: The operation was canceled.
[09:49:16.747]    at System.Threading.CancellationToken.ThrowOperationCanceledException()
[09:49:16.747]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
[09:49:16.747]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
[09:49:16.747]    at System.Net.Security.SslStream.<FillHandshakeBufferAsync>g__InternalFillHandshakeBufferAsync|182_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)
[09:49:16.747]    at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)
[09:49:16.747]    at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
[09:49:16.747]    at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
[09:49:16.747]    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:49:16.747]    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:49:16.747]    at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:49:16.747]    at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
[09:49:16.747]    at Microsoft.ReverseProxy.Service.Proxy.HttpProxy.NormalProxyAsync(HttpContext context, HttpRequestMessage upstreamRequest, Transforms transforms, HttpMessageInvoker httpClient, ProxyTelemetryContext proxyTelemetryContext, CancellationToken shortCancellation, CancellationToken longCancellation)
[09:49:16.747]    at Microsoft.ReverseProxy.Telemetry.TextOperationLogger`1.ExecuteAsync(String operationName, Func`1 action)
[09:49:16.747]    at Microsoft.ReverseProxy.Middleware.ProxyInvokerMiddleware.Invoke(HttpContext context)
[09:49:16.747]    at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
[09:49:16.747]    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
[09:49:16.747]    at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Just for the fun of it (and because Crank makes it almost effortless ;)) I also ran the benchmark with my downstream service targetting .NET 5.0 RC 1 as well. Unfortunately I'm still getting similar results with that setup:
| load                |            |
| ------------------- | ---------- |
| Build Time (ms)     |      4,603 |
| Start Time (ms)     |      4,365 |
| Published Size (KB) |     72,766 |
| First Request (ms)  |      2,203 |
| Requests            |        556 |
| Bad responses       |        508 |
| Mean latency (us)   |  8,755,657 |
| Max latency (us)    | 10,807,915 |
| Requests/sec        |         20 |
| Requests/sec (max)  |      3,259 |

And the stacktrace looks pretty similar as well:
[09:59:42.979] [21:59:42 ERR] An unhandled exception has occurred while executing the request.
[09:59:42.979] System.OperationCanceledException: The operation was canceled.
[09:59:42.979]    at System.Threading.CancellationToken.ThrowOperationCanceledException()
[09:59:42.979]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
[09:59:42.979]    at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
[09:59:42.979]    at System.Net.Security.SslStream.<FillHandshakeBufferAsync>g__InternalFillHandshakeBufferAsync|182_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize)
[09:59:42.979]    at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter)
[09:59:42.979]    at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
[09:59:42.979]    at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
[09:59:42.979]    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:59:42.979]    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:59:42.979]    at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
[09:59:42.979]    at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
[09:59:42.979]    at Microsoft.ReverseProxy.Service.Proxy.HttpProxy.NormalProxyAsync(HttpContext context, HttpRequestMessage upstreamRequest, Transforms transforms, HttpMessageInvoker httpClient, ProxyTelemetryContext proxyTelemetryContext, CancellationToken shortCancellation, CancellationToken longCancellation)
[09:59:42.979]    at Microsoft.ReverseProxy.Telemetry.TextOperationLogger`1.ExecuteAsync(String operationName, Func`1 action)
[09:59:42.979]    at Microsoft.ReverseProxy.Middleware.ProxyInvokerMiddleware.Invoke(HttpContext context)
[09:59:42.979]    at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
[09:59:42.979]    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
[09:59:42.979]    at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Can you share the crank scenario?

Sure thing, here's my Crank YAML:
imports:
    - https://raw.githubusercontent.com/dotnet/crank/master/src/Microsoft.Crank.Jobs.Bombardier/bombardier.yml

jobs:
  gateway:
    source:
      localFolder: .
      project: ApiGateway/ApiGateway.csproj
    readyStateText: Application started.
  echoService:
    source:
      localFolder: .
      project: echoService/EchoService.csproj
    readyStateText: Application started.

scenarios:
  # This scenario covers the gateway simply passing the request through to the downstream service
  no-gateway-auth:
    gateway:
      job: gateway
    echoService:
      job: echoService
    load:
      job: bombardier
      variables:
        serverPort: 5000
        path: /realization
        #connections: 100

profiles:
  local:
    variables:
      serverUri: http://localhost
    jobs:
      gateway:
        endpoints:
          - http://localhost:5010
      echoService:
        endpoints:
          - http://localhost:5010
      load:
        endpoints:
          - http://localhost:5010

When I uncomment the connections variable for the bombardier job it works just fine.

Any updates on this?

@alnikola can you please check if we have this covered in our perf suite?
Or is it another scenario we should look at? (should it be v1 or later)

@jmezach Could you please confirm that you are using HTTPS on HTTP 1.1 protocol between client and proxy and between proxy and server?
We haven't seen any similar issues in our performance tests of HTTPS - HTTP and HTTPS - HTTPS on HTTP 1.1 scenarios. However, since it fails with a timeout exception, it could be somehow related to YARP's timeouts. Could you please try adding an explicit request timeout parameter as shown below?
      "EchoService": {
        "LoadBalancing": {
          "Mode": "Random"
        },
        "HttpRequest": {
          "Timeout": "00:01:00"
        }
      }

I just re-ran the benchmark with the latest bits (.NET 5.0.4, YARP preview 10) and I'm still seeing the same behaviour in the scenario where I'm doing request to my YARP proxy using HTTP and then proxying to a downstream service using HTTPS. Interestingly @Tratcher mentioned here that YARP defaults to HTTP/2 when proxying to HTTPS, but that is not what I'm seeing in the logs currently. Requests to my downstream service are made using HTTP/1.1. As far as I know I don't have to do anything special for an ASP.NET Core 5.0 service to enable HTTP/2, correct?
Adding the timeout as suggested by @alnikola also doesn't seem to help in this scenario as I'm getting similar results. For reference, here are the results I'm seeing with the default number of concurrent connections for the bombardier job in the HTTP -> HTTPS scenario:
| load                   |            |
| ---------------------- | ---------- |
| Start Time (ms)        | 130        |
| First Request (ms)     | 1,881      |
| Requests               | 512        |
| Bad responses          | 512        |
| Mean latency (us)      | 9,549,326  |
| Max latency (us)       | 10,040,422 |
| Requests/sec           | 17         |
| Requests/sec (max)     | 6,392      |
| Read throughput (MB/s) | 0.00       |

Limiting the number of connections to 100 I'm seeing the following:
| load                   |         |
| ---------------------- | ------- |
| Start Time (ms)        | 111     |
| First Request (ms)     | 1,532   |
| Requests               | 16,469  |
| Bad responses          | 0       |
| Mean latency (us)      | 91,122  |
| Max latency (us)       | 275,196 |
| Requests/sec           | 1,121   |
| Requests/sec (max)     | 6,321   |
| Read throughput (MB/s) | 0.30    |

Please note that I'm running these benchmarks on my development machine.

Interestingly @Tratcher mentioned here that YARP defaults to HTTP/2 when proxying to HTTPS, but that is not what I'm seeing in the logs currently. Requests to my downstream service are made using HTTP/1.1. As far as I know I don't have to do anything special for an ASP.NET Core 5.0 service to enable HTTP/2, correct?

You're running on MacOS? Kestrel does not support HTTP/2 over HTTPS on MacOS due to platform limitations (https://github.com/dotnet/runtime/issues/27727).

Yes, I am running on MacOS. So I guess that explains why I'm not seeing HTTP/2 requests to my downstream service. Question is, does it also explain the poor performance?

It might explain why the number of incoming connections affects it. Do your tests have a warm-up period?
HTTP/2 (until recently) defaulted to using a single connection for all requests to the destination. HTTP/1.1 will spin up as many connections as there are active requests, and will only start re-using connections after they became free. Starting 512 HTTPS connections ends up being more expensive than starting 100, queuing other requests, and then re-using the connections.

YARP doesn't queue HTTP 1.1 requests, so if client simultaneously sends 512 requests on 512 connections to the same downstream, YARP will try to open 512 connections to the downstream. It seems that in this case server cannot respond in time to 512 HTTPS connect requests, thus the connect operations time out. Increasing the connect timeout could help here, but YARP currently doesn't expose SocketsHttpHandler.ConnectTimeout as a configuration parameter. However, you can implement a custom IProxyHttpClientFactory where this property can be set directly.

This seems like something we should handle better.

@davidfowl how so? Any burst of traffic would be subject to this kind of issue, and the costs are mainly on the destination. The best the proxy can do is limit request concurrency with settings like MaxConnectionsPerServer.
I've occasionally suggested that the HttpClient create connections more like the threadpool, only injecting new ones slowly after a certain minimum. That would help mitigate bursts like this. It can be faster to wait for an existing connection to free up than to create a new one.

Spoke to @Tratcher offline. @alnikola I think we need to do something to address this scenario on in YARP. Can we setup a benchmark that will show this behavior, I'm convinced it's bad enough that we need to do something to make sure performance is stable.

If I understood correctly, the issue is caused by a slow server which cannot complete SSL handshakes in the given timeout. I think we can setup a benchmark environment for this, but it will require some research first to understand how to properly slow down the server. Though, I'm not fully understand what performance metrics we want to measure here. It seems to be more about a missing feature in traffic management area than performance.

Theory: When the destination server has slow handshakes it's faster to queue some requests than to keep making new connections.
Benchmark: Send a burst of 1000(?) requests to the proxy, see how long it takes all of them to complete, and if any fail.

What destination handshake latency should we simulate? This could be artificially induced using a connection middleware in the destination's Kestrel server.

OK. It's clear now. I will add it to the performance backlog.

Triage: This should be now improved in 6.0 by https://github.com/dotnet/runtime/issues/44818
Closing for now.


Render voronoi geometry on top of linechart lines

Currently the linechart line paths interfere with the hover animation by triggering mouse out events when the cursor goes on top of a line. This is a simple but effective fix, rendering the voronoi geometry (including the circles) on top of the lines.

This other pull request https://github.com/esbullington/react-d3/pull/286 contains the same change so closing this.


Some additions to the messenger comparison table

Hi,
I ordered the properties in the data files according to the order in index.md,
added some properties, the messenger Threema and some values inside the table.
I'm pretty sure some of the changes may be debatable. So feel free to change what you like.
Threema should be included - it's heavily used amongst privacy aware people (at least in my surrounding).
Regards,
Frank

I like your changes however as you said some details may be debatable so keep this PR open for few days before merging
Feel free to add threema 👌


How to change server from tomcat 7 to tomcat 8

Hii, I want to know how the server could be changed to tomcat 8? Please tell me the plugin type for this issue.

Do you want to try this?
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<version>3.0-r1655215</version>

On Sun, Jul 2, 2017 at 6:37 PM, sonu0402<EMAIL_ADDRESS>wrote:

Hii, I want to know how the server could be changed to tomcat 8? Please
tell me the plugin type for this issue.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/in28minutes/SpringMvcStepByStep/issues/12, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ANe_AfVJin5wajOSYGMczbaY_EeOTU-Bks5sJ5YugaJpZM4OLlF4
.

Sir, I am getting this error.[ERROR] No plugin found for prefix 'tomcat8' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\Sonu.m2\repository), central (http://repo.maven.apache.org/maven2)] -> [Help 1]

[ERROR] No plugin found for prefix 'tomcat8' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories

Did you get a chance to check this out -
https://stackoverflow.com/questions/24271213/tomcat-8-integration-with-maven

thanks sir


"INSERT into TABLE SELECT ..." doesn't work

We can't insert tuples into a table by feeding an output of a SELECT statement. So the following:
CREATE TABLE Foo (a INT);
CREATE TABLE Bar (a INT);
INSERT INTO Foo VALUES (1);
SELECT * FROM Foo;
INSERT INTO Bar SELECT * FROM Foo;

Results in the following error message:
ERROR: syntax error (1 : 17)
INSERT INTO Bar SELECT * FROM Foo;
                ^

Closed with PR #105. Thanks @jianqiao!


python.pkgs.pip: 19.2.3 -> 19.3.1

Motivation for this change
Update pipenv to the latest version.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @mmahut

I haven't tested this yet, but I'll try to do so asap.

pip is not pipenv.
Anyway, I'll upgrade pip (again) on staging. Thanks for notifying.

Apologies, that was a typo, I meant pip of course. Thank you.


Option to force option in duplicate album dialog

What's the problem? How can I reproduce it?

It is quite tedious to have to manually answer this dialog with a lot of
duplicate albums, it would be nice to have a option to force this to keep,
remove or skip this.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 26 Jan 2013 at 10:12

Do not comment here, but on sampsyo/beets#185


Can't create an Azure webapp with vscode

Repro steps:

Action: appService.Deploy
Error type: Error
Error Message: Entry not found in cache.
Version: 0.16.1
OS: darwin
Product: Visual Studio Code
Product Version: 1.40.2
Language: en

Call Stack
a.createError extension.js:1:48963
b.<anonymous> extension.js:229:179463
extension.js:229:174078
extension.js:229:46161
extension.js:229:44154
extension.js:229:43776
i.find extension.js:229:78269
extension.js:229:25219

Thanks for filing - as a workaround you could try signing out and signing back in to your Azure Account using the command palette.
Unfortunately there's not much we can do in this extension, but this is being tracked upstream here: microsoft/vscode-azure-account#53


Deploy TESTGRAIN pools on Curve Arbitrum and Base Aerodrome

https://www.notion.so/volumefi/EPIC-07-05-24-Deploy-TESTGRAIN-pools-on-Arbitrum-and-Base-e29e304392a343c08b2407b272740fc4?pvs=4

Closing as not neeed until Pigeon Feed.


Allow to set the socket name per instance configuration

This pull requests allows to set a custom socket name for each instance.
Example: -instances=my-project:us-central1:sql-inst=unix:custom_socket_name
This pull request also allows to override -dir by specifying an absolute path. This would come in handy for me but I can easily remove it from this pull request if it's not desired for some reason.
Resolves: #241

Signed the CLA.

Hi. Is there anything I can do to push this ahead?

Hey @wedi,
Sorry for dropping the ball on this. I've been busy with Next 2019 for the past few weeks, but I definitely should have communicated that sooner.  Please give me a few days and I'll make sure this is reviewed and discussed sometime next week.

LGTM, just one question.

@wedi I've opened #289 to update this PR based on feedback - if you could comment on that PR that you are okay with me borrowing your commits, it'll make the CLAbot happy :)

Done. Thanks for finishing this.

Closing in favor of #289


TMDL Parser error in case of unusual commenting

!!! Please make sure you're using the latest version of Tabular Editor 2.X before submitting a bug !!!
!!! For Tabular Editor 3 issues, go here -> https://github.com/TabularEditor/TabularEditor3/issues !!!
Describe the bug
I have a large Tabular model, where we are using Imke's awesome flattener M query. It looks like this:
expression 'Invoke Flatten Hierarchy' =
		///*
		let
		    Source = let func =

		(ParChTable as table,
		ChildKey as text,
		ParentKey as text,
		LevelColumnName as text) =>
		//*/

		let
		/*/Debug Parameters
		ParChTable = SourceData_Loop,
		ChildKey = "NodeKey",
		ParentKey = "ParentKey",
		LevelColumnName = "Name",
		*/

		    SelectRelevantColumns = Table.SelectColumns(ParChTable, {ChildKey, ParentKey, LevelColumnName}),
		    #"Changed Type" = Table.TransformColumnTypes(SelectRelevantColumns ,{{ChildKey, type text}, {ParentKey, type text}}),
		    ReplaceNulls = Table.ReplaceValue(#"Changed Type",null,"",Replacer.ReplaceValue,{ParentKey}),
		    //    CleanParChTable = Table.Distinct(ReplaceNulls , {ChildKey, ParentKey}),
		    MissingParents = List.Buffer(List.Select(List.Difference(List.Distinct(Table.Column(ReplaceNulls , ParentKey)), List.Distinct(Table.Column(ReplaceNulls , ChildKey))), each _ <> "")),
		    AddMissingParents = Table.Buffer(Table.Combine({ReplaceNulls , #table({ChildKey, LevelColumnName, ParentKey}, List.Transform(MissingParents, each {_, "Unknown TopLevel"& Text.From(List.PositionOf(MissingParents, _)), ""}))})),
		    #"Merged Queries0" = Table.NestedJoin(AddMissingParents,{ChildKey},AddMissingParents,{ParentKey},"SelectRelevantColumns",JoinKind.LeftOuter),
		    CheckIfIsLeaf = Table.AddColumn(#"Merged Queries0", "IsLeaf", each if Table.IsEmpty([SelectRelevantColumns]) then "yes" else "no"),
		    #"Replaced Value1" = Table.ReplaceValue(CheckIfIsLeaf,null,"",Replacer.ReplaceValue,{ParentKey, LevelColumnName}),
		    AddStartPath = Table.AddColumn(#"Replaced Value1", "Path", each Text.Trim(Record.Field(_, ChildKey)&"|"&Record.Field(_,ParentKey), "|")),
		    #"Duplicated Column" = Table.DuplicateColumn(AddStartPath, LevelColumnName, "FirstName"),
		    Feed = Table.DuplicateColumn(#"Duplicated Column", ParentKey, "FirstParentKey"),

		// Retrieve all parents per row
		    fnAllParents = List.Generate(()=>
		    [Result= Feed, Level=1, EndlessLoop = false, StopEndlessLoop = false],
		    each Table.RowCount([Result]) > 0 and not [StopEndlessLoop],
		    each [ Result= let
		            #"Merged Queries" = Table.NestedJoin([Result],{ParentKey},AddMissingParents,{ChildKey},"Added Custom",JoinKind.Inner),
		            #"Removed Columns1" = Table.RemoveColumns(#"Merged Queries",{ParentKey}),
		            #"Expanded Added Custom" = Table.ExpandTableColumn(#"Removed Columns1", "Added Custom", {ParentKey, LevelColumnName}, {"ParentKey.1", "Name.1"}),
		            #"Duplicated Column" = Table.DuplicateColumn(#"Expanded Added Custom", "ParentKey.1", ParentKey),
		            #"Merged Columns" = Table.CombineColumns(#"Duplicated Column",{"Path", "ParentKey.1"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Path"),
		            #"Merged Columns2" = Table.CombineColumns( #"Merged Columns" ,{LevelColumnName, "Name.1"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),LevelColumnName)
		          in
		            Table.Buffer(#"Merged Columns2"),
		          Level = [Level]+1,
		          EndlessLoop = List.Sort(List.Distinct(Table.Column(Result, ChildKey))) = List.Sort(List.Distinct(Table.Column([Result], ChildKey))),
		          StopEndlessLoop = [EndlessLoop]
		        ]),
		    ConvertToTable = Table.FromList(fnAllParents, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
		    ExpandLevel = Table.ExpandRecordColumn(ConvertToTable, "Column1", {"Result", "Level", "EndlessLoop"}, {"Result", "Level", "EndlessLoop"}),
		    ExpandLG = Table.ExpandTableColumn(ExpandLevel, "Result", {LevelColumnName, ParentKey, ChildKey, "Path", "FirstName", "FirstParentKey"}, {"Name", "ParentKey", "NodeKey", "Path", "FirstName", "FirstParentKey"}),
		    FilterParents = Table.SelectRows(ExpandLG, each ([ParentKey] = null or [ParentKey] = "")),
		    #"Removed Columns" = Table.RemoveColumns(FilterParents,{"ParentKey"}),
		    #"Trimmed Text" = Table.TransformColumns(#"Removed Columns",{{"Path", each Text.Trim(_, "|")}}),
		    ReverseOrderName = Table.TransformColumns(#"Trimmed Text",{{"Name", each Text.Combine(List.Reverse(Text.Split(_, "|")), "|")}}),
		    ReverseOrderPath = Table.TransformColumns(ReverseOrderName,{{"Path", each Text.Combine(List.Reverse(Text.Split(_, "|")), "|")}}),
		    #"Reordered Columns" = Table.ReorderColumns(ReverseOrderPath,{"NodeKey", "FirstParentKey", "Path", "FirstName", "Level", "Name"}),
		    #"Split Column by Delimiter" = Table.SplitColumn(#"Reordered Columns", "Name", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), List.Transform({1..Table.RowCount(ConvertToTable)}, each "Level "&Text.From(_))),
		    #"Merged Queries" = Table.NestedJoin(#"Split Column by Delimiter",{"NodeKey", "FirstParentKey"},ParChTable ,{ChildKey, ParentKey},"Split Column by Delimiter",JoinKind.LeftOuter),
		    #"Expanded Split Column by Delimiter" = Table.ExpandTableColumn(#"Merged Queries", "Split Column by Delimiter", List.Difference(Table.ColumnNames(ParChTable), Table.ColumnNames(#"Replaced Value1"))),
		    Rename = Table.RenameColumns(#"Expanded Split Column by Delimiter",{{"Level", "HierarchyDepth"}}),
		    Parents = List.Buffer(Rename[FirstParentKey]),
		    IsLeaf = Table.AddColumn(Rename, "IsLeaf", each not List.Contains(Parents, [NodeKey])),
		    NoOfInterations = List.Count(fnAllParents),
		    LastIteration = Table.SelectRows(ExpandLG, each ([Level] = NoOfInterations)),
		    EndlessLoops = LastIteration[EndlessLoop],
		    IsEndlessLoop = EndlessLoops{0},
		    RemainingResults = Table.NestedJoin(IsLeaf, {ChildKey}, LastIteration, {ChildKey}, "x", JoinKind.LeftAnti),
		    Custom1 = if IsEndlessLoop then [Message= "The data is in an endless loop. Check Table in  ""Endless Loop""", #" Endless Loop"= LastIteration] meta [ResultsSoFar = RemainingResults] else IsLeaf
		in
		    Custom1
		///*
		, documentation = [
		Documentation.Name =  " Table.SolveParentChild
		", Documentation.Description = " Creates columns for all parents, multiple parents are supported
		" , Documentation.LongDescription = " Creates columns for all parents, multiple parents are supported
		", Documentation.Category = " Table
		", Documentation.Version = " 2.0: Checking for endless loops
		", Documentation.Source = " local
		", Documentation.Author = " Imke Feldmann: www.TheBIccountant.com
		", Documentation.Examples = {[Description =  " See: http://wp.me/p6lgsG-sl for more details
		" , Code = "
		 ", Result = "
		"]}]
		 in
		  Value.ReplaceType(func, Value.ReplaceMetadata(Value.Type(func), documentation))
		in
		    Source
		 //*/

My Tabular works perfectly fine, but after I save it to TMDL with the newest Tabular Editor, I'm not able to open it again, with the following error: Error loading file: TmdlFormatException encountered while deserializing TMDL: [UnsupportedObjectType] Object type not recognized: let
I figured out that the problem is the ///* and //*/. After I deleted those, it worked again. So it's not a critical bug, but I think it still a bug since it works without the TMDL format.
To Reproduce
Steps to reproduce the behavior:

Save the expression above into the expression.tmdl
Try to open the folder in Tabular Editor again with the new expression.tmdl
It gives an error

Expected behavior
Tabular Editor should be able to open the model.
Observed behavior
See the Describe bug section.
Application specifics

Tabular Editor 2.20.2 version
Semantic Engine used: Azure Analysis Services
Model Compatibility Level: 1500

Additional context

@mthierba are you aware of this issue?

This particular case is going to be addressed in an upcoming addition to the TMDL syntax. The change is already on the backlog and it handles those rare niche cases where lines inside an expression block could be misconstrued as TMDL tokens.

Since this is TMDL issue and not related to Tabular Editor we will close this issue.


feat(react-apollo-example): improve navbar & index

add Nhost favicon
change the html title
add a GitHub link
Nav bar:

Add Nhost log
Bigger title
Add link to GitHub

Codecov Report

Merging #824 (76c6e8d) into main (da7c2a2) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #824   +/-   ##
=======================================
  Coverage   93.47%   93.47%
=======================================
  Files          42       42
  Lines        6434     6434
  Branches      377      377
=======================================
  Hits         6014     6014
  Misses        420      420

Continue to review full report at Codecov.

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


Have template compiler add source metadata to HTML tags

What problem does this feature solve?
I'm developing an all-in-one editor for webdevs that runs inside Chrome DevTools.
Just by replacing npm start with [name-not-finalized] start, users can have a fully featured text editor right inside Chrome DevTools shell, automatically pointing at their project directory.
It comes with DOM inspector, where you pick an element and it'll literally take you to file:line:col where that element was defined. So you don't have to look through files to figure out where that button below the header is coming from. Useful when a new dev joins a project or you're revisiting your work after a very long time.
▶ Watch 30 sec demo w/ a React project

And of course, it also works with Vue projects, just as awesome.
▶ Watch 20 sec demo w/ a Vue project
Above demos were shot using locally tinkered compilers (just not clean enough to be a PR)
The goal is to deliver the ultimate developer experience ever. Other features are in development as we speak, like CSS QuickEditing, built-in image editor and a SVG editor so devs don't have to fire up Illustrator or Photoshop to make minor tweaks to their stuff.
The only hurdle in me releasing the app is getting external players to participate in revolutionizing how we write web.
So to wrap up I have only two requests:

Please have the template compilers add metadata to each tag (either as data attribute, or property on DOM node itself), that contains path to *.vue file (can be relative to project root), line:col/offset where the tag opens and last line:col/offset where the tag closes.

Please star this issue: https://bugs.chromium.org/p/chromium/issues/detail?id=811036

What does the proposed API look like?
Something like this:
console.log(someElement.__vue__._debugSource)
// > { file: 'src/components/Header.vue', line: 12, col: 4, lineEnd: 16, col: 8 }
// or
// > { file: 'src/components/Header.vue', start: 241, end: 352 }

I think there is no need to change vue core for this, it should be doable in vue-loader only plus, if necessary, vue plugins
BTW that editor looks pretty cool 🙂

I definitely understand, in fact, this something anyone would want when process.env.NODE_ENV == 'development', so of course no need to have it in core.
The primary concern is to get the Vue squad on board and maybe get some help from you guys in implementing those changes[1]
I'm also trying to reach out React and Angular teams in parallel as we speak.
[1] I'm not  so familiar with Vue's codebase and at this time, I'm the only one trying to tie all the loose ends together. So some help would very appreciated.

#7127 will add source info (start & end index) to ASTElement. We can add domProps.__vue_source__ with a template compiler module after the pr get merged.

@gzzhanghao looks great, thanks. But can we not have just this feature in a separate PR instead of making a big PR even bigger?


loader-utils.parseQuery => loader-utils.getOptions

as explained in #27 I have implemented the fix for the deprecation warning. 😄
Let me know if you need anything else!

Coverage remained the same at 96.825% when pulling b71f9b0d522d85f65d2f305a16db55ebdc2cfd29 on BenDiuguid:fix/loader-utils-upgrade into 2ad8b7eafe7a20c73c054ae0eeb69900aba3e182 on MichaReiser:master.

Thanks a lot for bringing up the issue and the PR!
I added one small comment that I would like to have fixed before merging and releasing. But after that, it looks good to go!

Coverage remained the same at 96.825% when pulling 4058b48daac45edc8d9be05139b40619dc4df66d on BenDiuguid:fix/loader-utils-upgrade into 2ad8b7eafe7a20c73c054ae0eeb69900aba3e182 on MichaReiser:master.

Let me know if I need to move anything around! But the tests pass still :)
Also I left the || {} at the end of the getOptions() call, because it is now possible for it to return null if loaderContext.query is empty.
Also according to the source, query isn't mandatory, yet I think it is in the typings now?
do I need to add a ??

Thanks! :D

I think the typing is fine for what is used here. It's far more important that no casts to any are used whenever possible.
Thanks for your PR!

Is Released as 1.0.2
I hope everything is working as it should (I have currently no more projects that depend upon webpack-angular-translate so I depend on user feedback ;))

So I'm getting the "invalid tar file" error again like in #26 strange. Might need to re publish for some reason?


Binary indices appear bugged

I created an array of 12 bytes, and used that as the _id value for entries in a collection.
It would semi-consistently fail to find, delete, etc. operations on the entries.
I swapped that for a string of the same data, and it works perfectly.
So...

It's an ObjectId? Can you write small unit test code to test this?

I made a proof-of-error miniapp rather than a unit test for now.
This code: http://pastebin.com/HHPEv8HN
returned this result:
When  using OIDs, found 105 values, of which 105 were correct, out of a total possible 1331
When NOT  using OIDs, found 716 values, of which 716 were correct, out of a total possible 1331

The exact numbers seem to vary every time I run it too, which is rather odd.

Hi @mcmonkey4eva, I'm still looking your code and don't undersand this error.
Vary each time is an indicator because skip list use statistic balanced order - so, each execution generate different levels.
My first try was in compare binary arrays. But looks ok to me and in my tests. No I'm testing how LiteDB are storing this values in index key pages.

Hi, found the problem! .

To byte, char, Int16 and UInt16 CompareTo returns difference between values. All others datatypes returns -1, 0 or 1. Thanks for find this!

Confirmed this is fixed and functional in latest :) Great work!


drivers: usb: stm32: Fix broken DT_USB_ENABLE_PIN_REMAP test

'enable-pin-remap' is defined as 'type: boolean' in
dts/bindings/usb/st,stm32-usb.yaml, so it generates either
#define DT_USB_ENABLE_PIN_REMAP 0

or
#define DT_USB_ENABLE_PIN_REMAP 1

depending on if 'enable-pin-remap;' appears on the node or not.
Since a macro is always generated, #ifdef won't work. The test needs to
be this instead:
#if DT_USB_ENABLE_PIN_REMAP == 1

(Should be careful with '#if HMZ == 0' though, because it's true even if
HMZ is undefined.)
This behavior was inherited from the old scripts, and some things depend
on it, e.g. by expanding macros in initializers.

Caused some trouble for @windsorschmidt on Slack.


How to create Input that is on right side of a node and output that is on left side of the node

How to create Input that is on right side of a node and output that is on left side of the node

You can reverse the outputs by the inputs with css:
.drawflow .drawflow-node {
    flex-direction: row-reverse;
}

But the arrows are not intended for this shape.
You will have to modify the arrows as well.
Here you can see how to modify the curve of the arrows.

https://github.com/jerosoler/Drawflow/issues/20


Rails/Delegate Cop registers when method uses safety navigator

Rails/Delegate Cop reports an offense when the use of a safety navigator disqualifies the use of delegation.
In the example below, if Foo.new.bar == nil and the fix is used, a NilClass error will occur.

Expected behavior
I expect the example below to not throw a Rails/Delegate offense and also not autocorrect.
class Foo < ApplicationRecord
  def count
    bar&.count
  end
end

Actual behavior
Running rubocop app/models/foo.rb on this example returns:
Offenses:

app/models/foo.rb:2:3: C: Use delegate to define delegations.
  def count
  ^^^

Running rubocop app/models/foo.rb --auto-correct on this example returns:
class Foo < ApplicationRecord
  delegate :count, to: :bar
end

Steps to reproduce the problem
Please use the example above to reproduce. This was generated using Rails 5.0.6.
RuboCop version
[Fri Nov 03 07:55:29]$ rubocop -V
0.49.1 (using Parser <IP_ADDRESS>, running on ruby 2.3.3 x86_64-darwin15)

You can prevent a NoMethodError by using allow_nil: true:
class Foo < ApplicationRecord
  delegate :count, to: :bar, allow_nil: true
end

I'll label this as a bug, as the autocorrect should handle that. 🙂

Thanks!  Makes sense.

@michniewicz: Considering that comment, we most likely do not. Closing this as it is fixed in 0.51. 🙂


Microsoft Teams: sending text <data> and i got only text, <data> stripped

when I am sending data something like text <data> i received only text  (test only in chat not in the channel because it's working when you will run @Bot text <data>)
context activity without mentioning bot
"_activity": {
    "text": "text <data>",
    "textFormat": "plain",
    "type": "message",

context activity when mentioning bot
"_activity": {
    "text": "<at>vishant-bot</at> C<data>\n",
    "textFormat": "plain",
    "attachments": [
      {
        "contentType": "text/html",
        "content": "

vishant-bot text <data>
\n
"
      }
    ],
    "type": "message",

@v-shant thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Azure CNN: timed out locking store

When large scale of pods ( >150) will be created in parallel Azure CNI will fail with this error:
Failed to create sandbox for pod" err="rpc error: code = Unknown desc = failed to setup network for sandbox "c99e647e8519b46b4c492d3076ea2da13e861a39ccb982aca89eb5ec5cafae55": plugin type="azure-vnet" failed (add): Failed to initialize key-value store of network plugin: error Acquiring store lock: timed out locking store" pod="default/k8-parallel-100-joblh8pf-gvn6s"

The issue is due to the sterilized approach of Azure CNI during the pod creation. each CNI process will acquire lock at the beginning of the process and release it at the end and when CNI add calls take place in parallel in large numbers some of them will fail waiting behind the lock. The issue is seen more in Windows.
To address the issue a new CNI version called Statless CNI has been designed and implemented that enable paralle pod creation and removes the process locks.
https://github.com/Azure/azure-container-networking/pull/2276
The first target is for Windows AKS Swift Scenario and rollout has started for K8s 1.30


SHPC has issues finding user repository

cdipietrantonio@setonix-03:~> module load shpc/0.1.23
cdipietrantonio@setonix-03:~> shpc show amdih/pytorch
Traceback (most recent call last):
  File "/software/setonix/2023.08/pawsey/software/shpc/bin/shpc", line 10, in <module>
    sys.exit(run_shpc())
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/client/__init__.py", line 556, in run_shpc
    main(args=args, parser=parser, extra=extra, subparser=helper)
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/client/show.py", line 13, in main
    cli = get_client(quiet=args.quiet, settings_file=args.settings_file)
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/__init__.py", line 71, in get_client
    return Client()
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/modules/lmod.py", line 16, in __init__
    super(Client, self).__init__(**kwargs)
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/modules/base.py", line 29, in __init__
    super(ModuleBase, self).__init__(**kwargs)
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/client.py", line 45, in __init__
    self.reload_registry()
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/client.py", line 57, in reload_registry
    self.registry = registry.Registry(self.settings)
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/registry/__init__.py", line 45, in __init__
    self.registries = [self.get_registry(r) for r in self.settings.registry]
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/registry/__init__.py", line 45, in <listcomp>
    self.registries = [self.get_registry(r) for r in self.settings.registry]
  File "/software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/shpc/main/registry/__init__.py", line 96, in get_registry
    raise ValueError("No matching registry provider for %s" % source)
ValueError: No matching registry provider for /software/setonix/2023.08/pawsey/software/shpc/lib/python3.10/site-packages/registry
cdipietrantonio@setonix-03:~>

deleted my ~/.singuarity-hpc and it works


[Firefox] Force disable Fission (Site Isolation mode)

@mathiasbynens can you please review and land? With enabling Fission step by step for more Nightly users we have to force disabling our site isolation mode until our implementation is compatible. Thanks.

Thanks!


A testcase for bug https://github.com/mirah/mirah/issues/295

#295

I added the sort example to the examples test instead. Thanks for the reproduction though.


Allow export of ICS data / ICS feed to a local calendar (Outlook, Google Cal, etc)

Calendar data should be able to be exported as an ics file (maybe one file for each term). Due to EPS' block scheduling system, Outlook and Google Cal are not effective at creating recurring meetings/meeting times for EPS classes

this might be useful:
https://github.com/nwcell/ics.js


Regex file selection duplicates OS globbing/regex functionality

This issue report is based on using this JAR.
The regex file selection functionality in norma adds complexity without adding value.
That is because this functionality duplicates what is already offered by shells on modern operating systems, such as GNU Bash or Windows PowerShell. Such shells already feature globbing- and regular expression-based file selection.
For example:
$ java -jar norma-0.5.0-SNAPSHOT-jar-with-dependencies.jar --project publicPapers  --fileFilter '.*/(.*).pdf' --makeProject '(\1)/fulltext.pdf'

could more naturally be expressed in Bash with a glob like:
$ java -jar norma-0.5.0-SNAPSHOT-jar-with-dependencies.jar --infiles publicPapers/*.pdf --makeProject 'fulltext.pdf'

If one's matching criteria require a regex rather than just a glob, this is also available with standard OS tools:
$ java -jar norma-0.5.0-SNAPSHOT-jar-with-dependencies.jar --infiles "$(find publicPapers -maxdepth 1 -type f -iregex '.*/\(pub\|phm\).*.pdf')" --makeProject 'fulltext.pdf'

Removing regex CLI functionality from norma would provide the following benefits:

simpler documentation (cf. #66)
easier learning curve
reduced code complexity
easier maintenance.

This is misconceived and unnecessary. This is a regex and not a glob and the capture groups re used to rename parts of the tree

@petermr wrote:

This is a regex and not a glob

Strictly speaking, that is true, and I have amended the wording accordingly. However, a glob would be adequate in many cases, including the invocations described at http://discuss.contentmine.org/t/extracting-data-from-tilburg-funnel-plot-diagrams/386 , and I have now illustrated that in my opening comment above.

and the capture groups re used to rename parts of the tree

In all the examples norma invocation I have so far observed, this would be better handled as described in my opening comment.

This is misconceived and unnecessary.

Surely these benefits, stated in my opening comment, are neither misconceived, nor undesirable:

- simpler documentation
- easier learning curve
- reduced code complexity
- easier maintenance.

Related: https://github.com/ContentMine/cproject/issues/3


[TRANSLATIONS] - Spanish

[x] Base README.md
[x] Quizzes
[ ] Introduction base README

[ ] Defining Data Science README
[ ] Defining Data Science assignment
[ ] Ethics README
[ ] Ethics assignment
[x] Defining Data README
[ ] Defining Data assignment
[ ] Stats and Probability README
[ ] Stats and Probability assignment

[x] Working with Data base README

[ ] Relational Databases README
[ ] Relational Databases assignment
[ ] Non-Relational Data README
[ ] Non-Relational Data assignment
[ ] Python README
[ ] Python assignment
[ ] Data Preparation README
[ ] Data Preparation assignment

[x] Vizualization base README

[x] Quantities README
[x] Quantities assignment
[x] Distributions README
[x] Distributions assignment
[x] Proportions README
[x] Proportions assignment
[x] Relationships README
[x] Relationships assignment
[x] Meaningful Visualizations README
[x] Meaningful Visualization assignment

[ ] Data Science Lifecycle base README

[ ] Introduction README
[ ] Introduction assignment
[ ] Analyzing README
[ ] Analyzing assignment
[ ] Communication README
[ ] Communication assignment

[ ] Data Science in the Cloud base README

[ ] Intro README
[ ] Intro assignment
[ ] Low Code README
[ ] Low Code  assignment
[ ] Azure README
[ ] Azure  assignment

[ ] Data Science in the Wild base README

[ ] Real World Examples README
[ ] Real World Examples assignment

Currently translating Base Readme.md.  WIll submit pull request ASAP 👍

Hi @paladique could you please assign me the translation of Quizzes.md? I would like to work on it :)

@OscarRG sure thing :)

@bromero26 @OscarRG thank you both so much for your contributions! I suspect we may have some more visitors who would be interested in helping out, so I added a discussion board thread at #162 to discuss dividing the work and review.

@paladique great!

Hello there!
I've already translated base readme files on module 1 (sections 1 to 3)
See PR #173

Hello guys.
If you don't mind. I'll translate the following files -one per PR-

6-Data-Science-In-Wild/README.md
6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md
6-Data-Science-In-Wild/20-Real-World-Examples/README.md

Are you OK with this?
Please let me know, so that I can start the translation.

Is there anyone still working on any of the unfinished ones? I would like to start translating if there are no problems with it.

Is there anyone still working on any of the unfinished ones? I would like to start translating if there are no problems with it.

Go ahead Carlos
Here https://github.com/microsoft/Data-Science-For-Beginners/discussions/162  you can tell us which ones you will be working on, welcome to the team!

Hey @paladique u would like to work on Data science in cloud base Readme section


[style]: Make the navbar sticky and prominent

What's the style idea?
Make the navbar sticky so that it comes down with the user when they scroll down and also to make it more prominent looking we can make the background of the navbar blur and translucent,This would make the navbar look more alluring and attractive
Add screenshots
Add screenshots
Code of Conduct

[X] I agree to follow this project's Code of Conduct

we assigned you in few issues so we're unable to assign you to this issue now. so you need to work on those issues first.

Is it fine if i fix this issue by evening as the toggle switch might take some time to rewrite the logic with a switch @priyankarpal ,I think I can get it done pretty well

Fine, have begun

Done with box shadow and made the navbar sticky as well,will submit pr in a bit @priyankarpal with the ss

@priyankarpal ,
Sir If you have any other ideas with regards to this issue to be implemented, please feel free to ask me.
I would be happy to do it for you regarding this issue. 😊👍🏽

@priyankarpal , Sir If you have any other ideas with regards to this issue to be implemented, please feel free to ask me. I would be happy to do it for you regarding this issue. blush👍🏽

share a ss for mobile view

@priyankarpal , Sir If you have any other ideas with regards to this issue to be implemented, please feel free to ask me. I would be happy to do it for you regarding this issue. blush👍🏽

share a ss for mobile view

@priyankarpal , Sir If you have any other ideas with regards to this issue to be implemented, please feel free to ask me. I would be happy to do it for you regarding this issue. blush👍🏽

share a ss for mobile view

ok assigned to you @vishnu9865

Thank you @priyankarpal for assigning this issue to me.


Consider renaming the project

Hello! First of all, thanks for the project! We have considered making something similar at $MY_CURRENT_COMPANY. However, there is another popular project with the same name at https://bosun.org/. Please consider renaming this to something else so that it wouldn't clash :P

Unfortunately, I figured that out late. however, since It's still early stages of the project a rename won't be a problem. I'll do it as soon as I get back to work. Thank you!
Keeping the issue open until then 👍

Renamed project to Ruban which is a close Arabic translation to Bosun 😄


Prototype for a Task/Agent that is an external process to the datastore.

datastore.proto defines the update mechanism for external processes. This gRPC service is currently provided via a unix socket.
Also refactored gnmit's Set. The new set function is what the datastore service calls.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

34 of 83 (40.96%)  changed or added relevant lines in 2 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.4%) to 68.598%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

gnmi/gnmit/datastore.go
3
10
30.0%

gnmi/gnmit/gnmit.go
31
73
42.47%

Files with Coverage Reduction
New Missed Lines
%

gnmi/gnmit/gnmit.go
2
53.56%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
3185

Relevant Lines:
4643

💛  - Coveralls


ZipArchive.podspec need update

s.source       = { :git => 'https://github.com/mattconnolly/ZipArchive.git', :tag => '1.4.0' }
need change
s.source       = { :git => 'https://github.com/mattconnolly/ZipArchive.git', :tag => 'v1.4.0' }
?
error is
[!] /usr/bin/git fetch origin tags/1.4.0 2>&1
fatal: Couldn't find remote ref tags/1.4.0
fatal: The remote end hung up unexpectedly

Sorry. I just pushed a 1.4.0 tag so the current spec will be fine.


Setting originX / originY should call updateDisplayOrigin

Version

Phaser Version: 3.23

Operating system: Windows 10

Browser:

Description

The documentation and source code imply that the originX and originY properties on some GameObjects (such as Sprite) are public. However, setting either one of these doesn't update displayOriginX / displayOriginY, whereas calling setOrigin does. Maybe I'm misunderstanding something?
Example Test Code
mySprite.originX = 0;  // sprite doesn't display in the correct position as its displayOriginX isn't updated

Additional Information

well if you want to update originX by yourself, you also need to call updateDisplayOrigin function on the GameObject.
If you check Origin.js you will see after updating public properties setOrigin function return's a call this.updateDisplayOrigin() on the line 129.

I guess my expectation was that setting one of the properties directly (via originX / originY) should behave the same as calling the ‘setter’ method (setOrigin).
Thanks
-- Matt
From: Halil CAKAR
Sent: Saturday, December 26, 2020 4:05 PM
To: photonstorm/phaser
Cc: MattG-Seattle ; Author
Subject: Re: [photonstorm/phaser] Setting originX / originY should call updateDisplayOrigin (#5469)
well if you want to update originX by yourself, you also need to call updateDisplayOrigin function on the GameObject.
If you check Origin.js you will see after updating public properties setOrigin function return's a call this.updateDisplayOrigin() on the line 129.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Readme Makeover + update node version

Updated README for the big changes we made.

Previously in this PR I had added a long comment in the documentation about how eslint errors don't break the build, since both you guys and my interns are confused by that often, but I just changed that now to just make ESlint only output webpack warnings, better to stop the confusion rather than explain it!

@frederikbrinck all changes addressed if you want to give it a quick look when you have a second

Awsome, I'll merge it in now


improvement: readded the changes out of PRs #38, #44 and #41 to the redesign branch

Ok - the redesign branch is now already in the incubator (default) branch. I changed the target branch therefore. Is it possible for you to resolve the conflicts? I already added the alt tags so there is some conflicts for that part and some other too. Else I will look into that later.

@patsimm, done.

Just merged it but I think we have to look into this again. The image looks a little blurry on smaller phones. It's probably because it has object-fit: cover and scales its height to 70vh. The size of the images should therefore be depending on the screen-height - not the screen width.

I fixed that issue in https://github.com/LokalKauf/lokalkauf-frontend/commit/cd120bd154670b53de45f5e7c1004db61f62f08d


[Bug] ClearOnFinish="True"/ drawingView.Lines.Clear() not working with latest stable version of DrawingView

Description

The ClearOnFinish property when set to "True", should clear the line drawn over the DrawingView after the line is drawn. It seems this is not functioning with the latest stable version of Xamarin.Community.toolkit(2.0.4).
The DrawingView should get cleared after releasing the tap/click and a line is drawn. The functionality is working fine with the older version of Xamarin.Community.Toolkit(2.0.0).
I am using Xamarin forms version <IP_ADDRESS>1.
Also if you try to clear the drawingview lines from the code behind using the DrawingView.Lines.Clear(), it will not work with this version of Xamarin Community Toolkit.
Stack Trace

Link to Reproduction Sample

Steps to Reproduce

Set the ClearOnFinish property to TRUE for the DrawingView in xaml.
Draw a line
The line will be visible even after completion

Expected Behavior
The DrawingView should get cleared after releasing the tap/click and a line is drawn.
Actual Behavior
The DrawingView is not getting cleared after releasing the tap/click and a line is drawn.
Basic Information

Version with issue: 2.0.4
Last known good version: 2.0.0
IDE: Visual Studio
Platform Target Frameworks:

iOS:
Android:
UWP:

Android Support Library Version:
Nuget Packages: Xamarin.Community.Toolkit - 2.0.4
Affected Devices:

Workaround

For now, the functionality is working fine with Xamarin.Community.Toolkit version 2.0.0/1.3.2
Reproduction imagery

Could you please attach a small sample?

The issue seems to be happening on Android only, for ios the functionality is working fine.

I have noticed this happening when the BackgroundColor is set to Transparent. The lines are not being removed, but they are being drawn over with the BackgroundColor. If it's transparent, nothing draws over them. This is not the case on 2.0.0

@aidandobkins Could you please share your changes or create a PR?


fix(types): v2

working on updating types for v2

Since you're already working on this - MutateOptions is missing throwOnError. Thanks!

How's it going over here?

How's it going over here?

only prefetch and setQueryData remaining

i think this has everything except queryCache.prefetchQueries
thats gonna need fresher eyes that i have at the moment

the types for prefetch are in another pr
https://github.com/tannerlinsley/react-query/pull/633

You guys could try and use the new github code suggestions for those prefetch types? https://github.blog/2018-10-16-future-of-software/#suggested-changes-public-beta

You guys could try and use the new github code suggestions for those prefetch types? https://github.blog/2018-10-16-future-of-software/#suggested-changes-public-beta

To do so in this PR we'd need some change in somewhere near those lines of code as it doesn't seem to be possible to add comments/suggestions outside of a narrow context of the changed lines.

Darn!

@kizivat You can also open a PR against wolverineks:master to submit your changes. When the PR gets merged, the changes will appear in this PR.

:grimacing: maaaaybe?

So doesn't the queryFn still need to be optional as well?

So doesn't the queryFn still need to be optional as well?

i think i misremembered that, it doesnt look like it is optional

So doesn't the queryFn still need to be optional as well?

wellp, it is optional,and defaults to config.queryFn
not sure how to make that type safe...

Anything you guys are waiting on me for?

ok, dtslint passes

Cool , you should be able to add dtslint to the test:ci script in the package.json

Fantastic!

i wasnt sure about infiniteQueryWithVariables. this test looks obsolete, maybe?
https://github.com/tannerlinsley/react-query/blob/2767395101642d717af4fe8f1c40d1bbe5e5a03a/types/test.ts#L361

I think I’d still viable. The variables it is referring to are not the optional variables that were deprecated. I think. 😂

I think I’d still viable. The variables it is referring to are not the optional variables that were deprecated. I think. 😂

could you explain a bit? i dont understand what this test is testing.

You're right. Useless. Get it out of there! ;)

Is this missing a resetErrorBoundaries definition on QueryCache?

This is looking great. Do you all think these are good enough to release in their current state? Then we can just continue to improve and fix them as we go?

LGTM

Wow, thanks everyone here for working on this. I appreciate you. If you played any part in these great types, please feel free to open an issue and tag yourself using the all-contributors bot to add yourself to the contributor list.

:tada: This PR is included in version 2.4.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Congrats on shipping type definitions! I know first hand it is no easy task to author definitions for a JS project 😄 great work!

Nice work all!

Fantastic work - thanks for putting in the effort!

Thanks for the work, everyone. Definitely looking forward to testing out the new types

Many thanks for your work folks! 🎉 I was pretty impatient to try v2 with typings and installed 2.4.4 the first thing this morning 😅
All fits well in the tests project except one small thing in tests:
afterEach(() => {
  queryCache.clear({ notify: false }) // Expected 0 arguments, but got 1.ts(2554)
})

I can imagine a few more small hickups here and there, so wondering what’s the best place to track them. Does every possible error deserves its own PR or should we try collecting a few reports first and mitigate them as a batch?

@kachkaev I think you can just create a PR to fix that typing issue and we can fix them all when we come across them.
That way everybody can enjoy the fixed typings asap 🙂


Query: correlated collection optimization is broken for queries containing top level First/FirstOrDefault/Single/SingleOrDefault

Repro:
var result = ctx.Parents.Select(p =>
new
{
    Children = p.Children
}).FirstOrDefault();

Problem here is that when we rewrite QM to create query that fetches inner elements, we produce join between inner elements and cloned parent query model. However, if parent model contains result operators that change cardinality, we would clone it also and hence produce invalid QM.

In the presence of Single value from sequence result operator, we should not be doing any optimization. Rather than we should just use N+1 mode of evaluation since it would run 2 queries anyway. It gives us benefit that 2nd query is filtered based on a parameter rather than a join (also no order by is needed in 2nd query) which would be efficient than running a normal collection query.

@smitpatel correlated collections optimization doesn't work if the outer is using outer parameter, so in case of multi-level correlation we would be producing inefficient queries. We could make the optimization you suggest once/if https://github.com/aspnet/EntityFrameworkCore/issues/10877 is addressed

Re-opening this. This is partially fixed. We need tracking issue to do outer parameter injection for single record collection query. Either we use this or file a new one. For include pipeline (perhaps older one) https://github.com/aspnet/EntityFrameworkCore/issues/2182

@smitpatel #10877 is already tracking this (see one of the comments)

Workaround:
var result = ctx.Parents.Select(p =>
new
{
    Children = p.Children
}).Take(1).ToList().FirstOrDefault();

Use Take(2) in case of Single/SingleOrDefault.


Water Leak Detector not available in HA

I already setup the IoT Tuya platform and all my devices is available including the Water Leak Detector.  It works fine with the SmartLife app.  When I intregration with Home Assistant the Water Leak Sensor entity/devices does not show up.  All other devices show up fine except this one.  Any update needed in the future for this sensor?

Hi, did You try to run that sensor? Give some water to wake him up?

see #597

Water Detectors has been added to the Home Assistant Core version, pending the 2021.11 release.

I just updated the latest version of HA core-2021.11.4.  The Tuya Water Leak still did not show up in HA.  The Tuya IOT site, I can see the Water Sensor and battery level just fine.  Any ldea why.

I am having the exact same issue with my water sensors. The battery status on all of them (I have 6 sensors) update instantly but the device status just says Dry all the time. Even if i hit the sensors with water, the Tuya IOT updates correctly but Home Assist says Dry. Is there any update on this? I Have tried V2 but that is not supported and i had issues getting the sensors to connect via Local Tuya


Cloud storage plugin socket usage at capacity

Link to reproduction
No response
Describe the Bug
I am using the cloud storage plugin with an S3 adapter pointing to DigitalOcean Spaces. I have users making a lot of edits relating to images lately. After a significant amount of uploads and image swapping, I get reports of performance issues on the admin dashboard and uploads failing. I looked at the logs and I found these error messages:
@smithy/node-http-handler:WARN socket usage at capacity=50 and 102 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 114 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 120 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 121 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 125 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 135 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 145 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 156 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 158 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 161 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 163 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 166 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 169 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handler:WARN socket usage at capacity=50 and 170 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.

These socket capacity warnings are sometimes preceded by error messages like this:
ERROR (payload): UnknownError
    err: {
      "type": "NoSuchKey",
      "message": "UnknownError",
      "stack":
          NoSuchKey: UnknownError
              at de_NoSuchKeyRes (/home/node/app/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4809:21)
              at de_CommandError (/home/node/app/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4747:19)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
              at async /home/node/app/node_modules/@smithy/middleware-serde/dist-cjs/index.js:35:20
              at async /home/node/app/node_modules/@aws-sdk/middleware-signing/dist-cjs/index.js:225:18
              at async /home/node/app/node_modules/@smithy/middleware-retry/dist-cjs/index.js:320:38
              at async /home/node/app/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js:173:18
              at async /home/node/app/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:97:20
              at async /home/node/app/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:120:14
              at async /home/node/app/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js:33:22
      "name": "NoSuchKey",
      "$fault": "client",
      "$metadata": {
        "httpStatusCode": 404,
        "requestId": "[request id]",
        "attempts": 1,
        "totalRetryDelay": 0
      },
      "Code": "NoSuchKey",
      "BucketName": "bucket-name",
      "RequestId": "[request id]",
      "HostId": "[host id]"
    }

I have my Payload app hosted on a basic DigitalOcean Droplet (1 vCPU, 1GB RAM, 25GB storage, added 1GB swap space) if that helps at all.
To Reproduce
It seems like it happens when a lot of uploading is done. I haven't seen a clear-cut way to reproduce, but the best I can do is:

Set up a payload app with the cloud storage plugin
Point to a DigitalOcean Spaces bucket
Create an upload collection
Upload images in quick succession. Upload new images into existing records. Whatever can be done to trigger the errors.

Payload Version
2.14.1
Adapters and Plugins
"@payloadcms/bundler-webpack": "^1.0.6", "@payloadcms/db-mongodb": "^1.5.1", "@payloadcms/plugin-cloud-storage": "^1.1.2", "@payloadcms/plugin-nested-docs": "^1.0.12", "@payloadcms/plugin-seo": "^2.3.1", "@payloadcms/richtext-lexical": "^0.9.1", "@aws-sdk/client-s3": "^3.556.0", "@aws-sdk/lib-storage": "^3.556.0", "aws-crt": "^1.21.2"

@TimLanzi @Stroi Can either of you give me an idea of your throughput for uploads? Seems like this might be tricky to reproduce.

It's been a while so I can't really give exact numbers. If I had to guess, I'd say 15 upload events in 10 minutes. Image sizes were around 1MB each. I also have imageSizes set up as follows:
    imageSizes: [
      {
        name: 'thumbnail',
        width: 400,
        height: 300,
        position: 'centre',
      },
      {
        name: 'card',
        width: 768,
        height: 1024,
        position: 'centre',
      },
      {
        name: 'tablet',
        width: 1024,
        height: null,
        position: 'centre',
      },
    ],

I'm having exactly the same issue.

I found a thread that deals with this specific issue: https://github.com/aws/aws-sdk-js-v3/issues/3560
I would give a few of these solutions a try.

My cloud hosting provider pointed also other issues related to this:
https://github.com/aws/aws-sdk-js-v3/issues/6263
https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md#request-handler-requesthandler
I believe I have finally managed to recreate the issue with my test setup. It required me to upload a video to payload, I then ran 120 curl instances at once with a timeout shorter than the video length and that seems to trigger the problem.
There is an interesting comment on the AWS SDK regarding socket exhaustion which helped me identify the problem.

I found a thread that deals with this specific issue: aws/aws-sdk-js-v3#3560
I would give a few of these solutions a try.

Hello, Hi can I implement this solution using the adapter?
    httpsAgent: new Agent({
      maxSockets: 500,

      // keepAlive is a default from AWS SDK. We want to preserve this for
      // performance reasons.
      keepAlive: true,
      keepAliveMsecs: 1000,
    }),
    socketTimeout: 5000,
  }),

When I tried to  import { NodeHttpHandler } from '@smithy/node-http-handler';
I had this error
Module not found: Error: Can't resolve 'http2' in '/home/node/app/node_modules/@smithy/node-http-handler/dist-es'

I found a thread that deals with this specific issue: aws/aws-sdk-js-v3#3560
I would give a few of these solutions a try.

Hello, Hi can I implement this solution using the adapter?
    httpsAgent: new Agent({
      maxSockets: 500,

      // keepAlive is a default from AWS SDK. We want to preserve this for
      // performance reasons.
      keepAlive: true,
      keepAliveMsecs: 1000,
    }),
    socketTimeout: 5000,
  }),

When I tried to import { NodeHttpHandler } from '@smithy/node-http-handler'; I had this error Module not found: Error: Can't resolve 'http2' in '/home/node/app/node_modules/@smithy/node-http-handler/dist-es'

My hosting provider gave me a similar solution to try
import https from "https";

              requestHandler: {
                connectionTimeout: 10 * 1000,
                httpsAgent: new Agent({
                  maxSockets: Infinity,
                  keepAlive: false,
                }),
                keepAlive: false,
                maxSockets: Infinity,
              }

However, I got stuck as the same issue you were facing. I couldn't resolve the package within Payload.

I found a thread that deals with this specific issue: aws/aws-sdk-js-v3#3560
I would give a few of these solutions a try.

Hello, Hi can I implement this solution using the adapter?
    httpsAgent: new Agent({
      maxSockets: 500,

      // keepAlive is a default from AWS SDK. We want to preserve this for
      // performance reasons.
      keepAlive: true,
      keepAliveMsecs: 1000,
    }),
    socketTimeout: 5000,
  }),

When I tried to import { NodeHttpHandler } from '@smithy/node-http-handler'; I had this error Module not found: Error: Can't resolve 'http2' in '/home/node/app/node_modules/@smithy/node-http-handler/dist-es'

My hosting provider gave me a similar solution to try
import https from "https";

              requestHandler: {
                connectionTimeout: 10 * 1000,
                httpsAgent: new Agent({
                  maxSockets: Infinity,
                  keepAlive: false,
                }),
                keepAlive: false,
                maxSockets: Infinity,
              }

However, I got stuck on the same issue you are facing. I couldn't resolve the package within Payload.

@denolfe  could you help with this, please?

It's possible http2 was added in a later node version. Try node 20 or newer if you are not already.

That's definetely a thing. I have "node": "20.10.0".     NodeHttpHandler won't work on browser that's why webpack compilation will fail with  Error: Can't resolve 'http2' in '/home/node/app/node_modules/@smithy/node-http-handler/dist-es'. There is no polyfil for that and this    workaround       http2: m, // m is emptyModule won't work too.
So is there no solution to this problem? Cause increasing maxSockets trough  NodeHttpHandler constructor is a way to go solution according to aws-sdk docs and answers from thread

i'm facing this issue too:
@smithy/node-http-handler:WARN socket usage at capacity=50 and 102 additional requests are enqueued. See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.
@smithy/node-http-handle…

rebuilding the functionality via collection hooks doesn't seem to be the best use of effort, wonder if there is a way to fix this in the cloud storage plugin

We have the same issue in several projects. Changing the request handler causes several webpack errors. Tried to mock some modules, but didn't work.
The only workaround is to restart the payload service. So no solution.
At this point the plugin is unusable :(

To use this config

requestHandler: {
              connectionTimeout: 10 * 1000,
              httpsAgent: new https.Agent({
                maxSockets: Infinity,
                keepAlive: false,
              }),
              keepAlive: false,
              maxSockets: Infinity,
            },

We use:
"https-browserify": "^1.0.0",
and add it to the webpack config as fallback
        fallback: {
          crypto: false,
          fs: false,
          http: require.resolve("stream-http"),
          https: require.resolve("https-browserify"),
          url: require.resolve("url"),
        },
      },

Can anyone else confirm @creative-andrew 's solution works for them?
Alternatively, here is another request handler config formed from a solution given in the linked thread
pnpm add @smithy/node-http-handler https-browserify url
import { NodeHttpHandler } from '@smithy/node-http-handler'
import { Agent as HttpAgent } from 'http'
import { Agent as HttpsAgent } from 'https'

// Pass this in your s3Adapter config
const s3AdapterConfig = {
  // .. other options
  requestHandler: new NodeHttpHandler({
    connectionTimeout: 5000,
    socketTimeout: 120000,
    httpAgent: new HttpAgent({ maxSockets: 500, keepAlive: true }),
    httpsAgent: new HttpsAgent({ maxSockets: 500, keepAlive: true }),
  }),
}

Modify webpack as needed. Might need to play around here, but this is what i got to work.
  admin: {
    webpack: (config => ({
      resolve: {
        fallback: {
          crypto: false,
          http: require.resolve('https-browserify'),
          http2: false,
          https: require.resolve('https-browserify'),
          url: require.resolve('url'),
        },
      }
    }))
  }

Hey @denolfe  - i've had @creative-andrew's solution in production since the 9th of September and the issue hasn't occurred. Usually after 3-4 days the sockets would be getting maxed out

Unfortunately it doesn't work for me.
ERROR in<EMAIL_ADDRESS>1:0-26
Module not found: Error: Can't resolve 'http2' in '/home/node/app/node_modules/@smithy/node-http-handler/dist-es'
payload config:
webpack: (config) => {
    return {
        ...config,
        resolve: {
            ...config.resolve,
            alias: {
                ...(config.resolve?.alias ? config.resolve.alias : {}),
                jsonwebtoken: mockModulePath,
            },
            fallback: {
                ...(config.resolve?.fallback ? config.resolve.fallback : {}),
                http: require.resolve("https-browserify"),
                http2: false,
                https: require.resolve("https-browserify"),
                url: require.resolve("url"),
            },
        },
    };
},

cloud storage adapter config:
const cloudStorageAdapter = s3Adapter({
    config: {
        region: process.env.AWS_REGION,
        credentials: {
            accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
            secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
        },
        requestHandler: new NodeHttpHandler({
            connectionTimeout: 5000,
            socketTimeout: 120000,
            httpAgent: new HttpAgent({ maxSockets: 500, keepAlive: true }),
            httpsAgent: new HttpsAgent({ maxSockets: 500, keepAlive: true }),
        }),
    },
    bucket: process.env.AWS_S3_BUCKET_NAME!,
});

@creative-andrew where does the "stream-http" or "url" module come from? which versions of these packages do you use?
@denolfe why don't you get issues with the http2 module?
would you share your package.jsons or lock-files as well? maybe the full webpack config?
are there problems when using alias and fallback together? (i don't know what all these settings do - never used it before).

@denolfe where in a payload project does the webpack config you shared go?
 webpack: (config => ({
      resolve: {
        fallback: {
          crypto: false,
          http: require.resolve('https-browserify'),
          http2: false,
          https: require.resolve('https-browserify'),
          url: require.resolve('url'),
        },
      }
    }))

there's no webpack option in payload v3 from the look of it. I see it in the docs for v2
https://github.com/payloadcms/payload/issues/6382#issuecomment-2325468104

I have this problem in v3, as well - and also with Digital ocean spaces. I wonder if this is a coincidence, or could it be an issue with DO service specifically.


Add to do list functionality

React To Do App
In this milestone i have developed the following parts:

[ ] Configure react project structure
[ ] Add input handle functionality
[ ] Add local storage functionality
[ ] Add task item lists
[ ] Add edit functionality
[ ] Add delete functionality
[ ] Add styles

@virag-ky thank you very much for the feedbacks.
I have made both class base and function base components and the function base component is configured for the final draft please ignore yhe class based forlder and review the function based

STATUS: APPROVED!!!  🎉 🎉 🎉 :champagne: :champagne: :champagne:
Hi @aliatayee,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉 🎉 🎉 :champagne: :champagne: :champagne:

Optional suggestions
I left a few comments above which are optional, for best practices it's good to include those suggestions, and if you have linters, then it would warn you of these issues.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.

@virag-ky thank you very much for the feedbacks. I have made both class base and function base components and the function base component is configured for the final draft please ignore yhe class based forlder and review the function based

Yes, the functional components are fine, the code is clean and organized, these were just some suggestions that I seen, otherwise everything is great with the code/project. 👍🏻


Make CoreOS AMI ID mandatory in cluster YAML

Fixes #1106

Codecov Report

Merging #1201 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #1201   +/-   ##
======================================
  Coverage    36.2%   36.2%
======================================
  Files          63      63
  Lines        3823    3823
======================================
  Hits         1384    1384
  Misses       2224    2224
  Partials      215     215

Continue to review full report at Codecov.

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


Update sbt to 1.9.4

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

🔍 Files still referring to the old version number
The following files still refer to the old version number (1.9.3).
You might want to review and update them manually.
native/Cargo.lock

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

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, old-version-remains, commit-count:1

Superseded by #54.


バグ

Microsoft PowerToys version
0.61.1
Running as admin

[ ] Yes

Area(s) with issue?
Keyboard Manager
Steps to reproduce
正しく動作しない
✔ Expected Behavior
caps lock から　shift (left)
❌ Actual Behavior
caps lockが反応する
Other Software
No response

Is this issue still relevant in v0.73? /needinfo


doc: add basic docusaurus project to enable (live) preview of doc

adds a basic docusaurus project cobbled together from the default docusaurus projects and bits and pieces of the portal need to support the live interpreter and remark-code-imports.
in nix-shell, under doc, do make preview to build the js moc interpreter and doc site, opening it in the browser.
preview is live, so doc changes cause the browser to refresh.

We are now pretty much at parity with the pre-markdown age.
I still get some vulnerability warning about the npm packages I'm using. @chenyan-dfinity would you take a look and try to fix them?
Would also be good if someone tried this on darwin to see it works there.

Is this pushed to https://dfinity.github.io/motoko/ already?

Is this pushed to https://dfinity.github.io/motoko/ already?

No, I'm just using it for local preview. That's an obvious next step, but I may need improve the navigation a bit. Or we just live with it. Also, I'm getting lots of warnings about vulnerabilities from npm so maybe we should fix those first.

Is this pushed to https://dfinity.github.io/motoko/ already?

Looks like I screwed that up in my previous PR. I think this #3355 fixes it.

npm vulnerabilities look fine to me, since it's only a local preview. But some other questions:

What's the diff between our own docusaurus and the official one? Do we want to keep them in sync?
We seems to check in moc-interpreter.js manually. Is that needed?

npm vulnerabilities look fine to me, since it's only a local preview. But some other questions:

We seem to check in moc-interpreter.js manually. Is that needed?

Weird, I didn't want to do that and thought I had symlinked it, but copying cp -f in Makefile works too. (I added the -f so a second make preview doesn't fail with permission denied)

@chenyan-dfinity can you take a quick look at ryans commit
https://github.com/dfinity/motoko/pull/3353/commits/09e5ab1f2d3c5e8333f47b95a5a97e78a07461ad
https://github.com/dfinity/motoko/pull/3353/commits/9d811eed9a67ca2d006d7a8a543036bb542d2400
If good, you may want to patch the portal code too.

Symlink doesn't work for docusaurus, we can only cp there.

If appropriate, you may want to patch the portal code too.

Yep, already done: https://github.com/dfinity/portal/pull/320

I guess it would be better if this code used the base library referenced in nix/sources.json

Should be doable. sources.json is pinned at a commit not a tag, so we need another function to load from github commits instead of CDN.


Remove navigator pop and push

These can still be used because they are just extensions to the Navigator v1

These methods could cause confusion.
If VelocityX has drop navigation handling it would be good to remove any reference to it or not?

Fixed with v4.1.1