Error when scaling out app service with Redis backplane

Howdy,
I'm having an issue when setting up a Redis backplane to back a couple web instances in Azure.
Attempt #1: Information: WebSocket connected to wss://signalrsandbox....azurewebsites.net/chat?id=e6648196-c140-48c4-bd8e-f89e184da69b
Attempt #2: signalr-client-1.0.0-alpha2-final.min.js:1 WebSocket connection to 'wss://signalrsandbox...azurewebsites.net/chat?id=c5a5efd0-fcd0-449a-a665-8a5f52fee316' failed: Error during WebSocket handshake: Unexpected response code: 404
What is really confusing me is that if I stand up two instances locally on different ports, then things work perfectly - I'll hammer on the refresh button and I'll only ever succeed. Any idea what would be difference between two local instances on my dev machine and two App Service instances deployed in Azure?
Client code:
<script<EMAIL_ADDRESS>    <script>
      let connection = new signalR.HubConnection('https://signalrsandbox....azurewebsites.net/chat');

      connection.on('send', data => {
          console.log(data);
      });

      connection.start()
          .then(() => connection.invoke('send', 'Hello world'));
    </script>

Server code
public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials() );
            });
            ConfigurationOptions config = new ConfigurationOptions
            {
                EndPoints =
                {
                    { "pub-redisxxxxxx.1.azure.garantiadata.com", 11915 },
                },
                KeepAlive = 180,
                Password = "xxxxxxxxxxxxx"
            };
            services.AddSignalR().AddRedis((opts) => {
                opts.Options = config;
            });
        }

I haven't seen much documentation about the redis backplane (awesome it's being baked in, btw!!!), so if this feature isn't ready, feel free to just close this ticket and I'll wait.
PS - total aside, but here's a pic of my BBQ I leveled-up with SignalR Core this weekend :)

Did you disable ARR affinity on your Azure Web App? That is required unless you connect with our client specifying the WebSockets transport explicitly.

The change to not require ARR affinity was merged post-alpha2 and has not shipped yet, so for now when using packages from NuGet ARR affinity is always required.

No, I didn't touch ARR Affinity in Application Settings. Only setting I touched was enabling web sockets.

I would start from enabling logging at the Trace level on both servers and looking at/posting them.

I set log level to trace, published to an App Service with two instances, and viewed the logs in Visual Studio's output window.
After I published, I opened up separate tabs and attempted to connect.
First attempt

WebSocket connection to 'ws://signalrsandbox20171111080435.azurewebsites.net/chat?id=effcc729-c400-4450-9404-4998ddb387f6' failed: Error during WebSocket handshake: Unexpected response code: 404

Second attempt

Information: WebSocket connected to ws://signalrsandbox20171111080435.azurewebsites.net/chat?id=86e6f976-6c89-42cb-ae3d-900f40aabaca

The second attempt succeeds and  in the logs I can see a message sent - "Hello Foo"
Logs
Application: 2017-11-12 12:59:41.980 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connecting to redis endpoints: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.021 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915,keepAlive=180,password=*****
Application: 2017-11-12 12:59:42.021 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager:
Application: 2017-11-12 12:59:42.031 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connecting pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915/Interactive...
Application: 2017-11-12 12:59:42.061 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: BeginConnect: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.062 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: 1 unique nodes specified
Application: 2017-11-12 12:59:42.071 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Requesting tie-break from pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 > __Booksleeve_TieBreak...
Application: 2017-11-12 12:59:42.071 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Allowing endpoints 00:00:05 to respond...
Application: 2017-11-12 12:59:42.143 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: EndConnect: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connected Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Server handshake
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Authenticating (password)
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Setting client name: RD00155D4B041A
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Auto-configure...
Application: 2017-11-12 12:59:42.144 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Sending critical tracer: Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.145 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: ECHO
Application: 2017-11-12 12:59:42.145 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Flushing outbound buffer
Application: 2017-11-12 12:59:42.145 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Starting read
Application: 2017-11-12 12:59:42.146 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connect complete: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.197 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / ECHO: BulkString: 16 bytes
Application: 2017-11-12 12:59:42.198 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: GET __Booksleeve_TieBreak
Application: 2017-11-12 12:59:42.198 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: PING
Application: 2017-11-12 12:59:42.240 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / GET __Booksleeve_TieBreak: (null)
Application: 2017-11-12 12:59:42.240 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / PING: SimpleString: PONG
Application: 2017-11-12 12:59:42.240 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 returned with success
Application: 2017-11-12 12:59:42.241 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: All tasks are already complete
Application: 2017-11-12 12:59:42.241 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 had no tiebreaker set
Application: 2017-11-12 12:59:42.241 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Single master detected: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 12:59:42.243 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: Standalone v3.0.3, master; keep-alive: 00:03:00; int: ConnectedEstablished; sub: ConnectedEstablished, 1 active
Application: 2017-11-12 12:59:42.243 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: int ops=12, qu=0, qs=0, qc=1, wr=0, sync=10, socks=1; sub ops=4, qu=0, qs=0, qc=0, wr=0, subs=1, sync=4, socks=1
Application: 2017-11-12 12:59:42.243 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Circular op-count snapshot; int: 0+12=12 (1.20 ops/s; spans 10s); sub: 0+4=4 (0.40 ops/s; spans 10s)
Application: 2017-11-12 12:59:42.243 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Sync timeouts: 0; fire and forget: 0; last heartbeat: -1s ago
Application: 2017-11-12 12:59:42.243 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Starting heartbeat...
Application: 2017-11-12 12:59:42.244 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connected to redis
Application: 2017-11-12 12:59:42.244 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Subscribing to channel: signalrsandbox.Chat
Application: 2017-11-12 12:59:42.296 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Subscribing to channel: signalrsandbox.Chat.AllExcept
Application: 2017-11-12 12:59:42.500 +00:00 [Debug] Microsoft.AspNetCore.SignalR.HubEndPoint: Hub method 'Send' is bound
Application: 2017-11-12 12:59:42.528 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Hosting starting
Application: 2017-11-12 12:59:42.635 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQK" started.
Application: 2017-11-12 12:59:42.694 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv: Connection id "0HL99PKUU7RQK" received FIN.
Application: 2017-11-12 12:59:42.694 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQK" disconnecting.
Application: 2017-11-12 12:59:42.694 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv: Connection id "0HL99PKUU7RQK" sending FIN.
Application: 2017-11-12 12:59:42.716 +00:00 [Warning] Microsoft.AspNetCore.Server.Kestrel: Unable to bind to http://localhost:12062 on the IPv6 loopback interface: 'Error -4090 EADDRNOTAVAIL address not available'.

Application: 2017-11-12 12:59:42.822 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQL" started.
Application: 2017-11-12 12:59:42.852 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 GET http://signalrsandbox20171111080435.azurewebsites.net/
Application: 2017-11-12 12:59:42.874 +00:00 [Debug] Microsoft.AspNetCore.Builder.RouterMiddleware: Request did not match any routes.
Application: 2017-11-12 12:59:42.882 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQL" completed keep alive response.
Application: 2017-11-12 12:59:42.882 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 30.4069ms 404
Application: 2017-11-12 13:00:00.362 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 OPTIONS http://signalrsandbox20171111080435.azurewebsites.net/chat
Application: 2017-11-12 13:00:00.362 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request is a preflight request.
Application: 2017-11-12 13:00:00.362 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:00.362 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:00.364 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQL" completed keep alive response.
Application: 2017-11-12 13:00:00.364 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 2.1256ms 204
Application: 2017-11-12 13:00:00.453 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 OPTIONS http://signalrsandbox20171111080435.azurewebsites.net/chat
Application: 2017-11-12 13:00:00.453 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:00.453 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:00.454 +00:00 [Debug] Microsoft.AspNetCore.Routing.RouteBase: Request successfully matched the route with name '(null)' and template 'chat'.
Application: 2017-11-12 13:00:00.485 +00:00 [Debug] Microsoft.AspNetCore.Sockets.ConnectionManager: 11/12/2017 13:00:00: ConnectionId 86e6f976-6c89-42cb-ae3d-900f40aabaca: New connection created.
Application: 2017-11-12 13:00:00.526 +00:00 [Debug] Microsoft.AspNetCore.Sockets.HttpConnectionDispatcher: 11/12/2017 13:00:00: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Sending negotiation response.
Application: 2017-11-12 13:00:00.527 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQL" completed keep alive response.
Application: 2017-11-12 13:00:00.527 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 74.6549ms 200 application/json
Application: 2017-11-12 13:00:00.698 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 GET http://signalrsandbox20171111080435.azurewebsites.net/chat?id=86e6f976-6c89-42cb-ae3d-900f40aabaca
Application: 2017-11-12 13:00:00.698 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:00.698 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:00.698 +00:00 [Debug] Microsoft.AspNetCore.Routing.RouteBase: Request successfully matched the route with name '(null)' and template 'chat'.
Application: 2017-11-12 13:00:00.749 +00:00 [Debug] Microsoft.AspNetCore.Sockets.HttpConnectionDispatcher: 11/12/2017 13:00:00: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca, Request Id 0HL99PKUU7RQL:00000004: Establishing new connection.
Application: 2017-11-12 13:00:00.789 +00:00 [Information] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:00: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Socket opened.
Application: 2017-11-12 13:00:00.960 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:00: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Message received. Type: Text, size: 20, EndOfMessage: True.
Application: 2017-11-12 13:00:00.962 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:00: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Passing message to application. Payload size: 20.
Application: 2017-11-12 13:00:01.163 +00:00 [Information] Microsoft.AspNetCore.SignalR.HubEndPoint: Using HubProtocol 'json'.
Application: 2017-11-12 13:00:01.175 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Subscribing to connection channel: signalrsandbox.Chat.86e6f976-6c89-42cb-ae3d-900f40aabaca
Application: 2017-11-12 13:00:00.245 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connecting to redis endpoints: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.295 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915,keepAlive=180,password=*****
Application: 2017-11-12 13:00:00.295 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager:
Application: 2017-11-12 13:00:00.305 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connecting pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915/Interactive...
Application: 2017-11-12 13:00:00.334 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: BeginConnect: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.335 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: 1 unique nodes specified
Application: 2017-11-12 13:00:00.344 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Requesting tie-break from pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 > __Booksleeve_TieBreak...
Application: 2017-11-12 13:00:00.344 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Allowing endpoints 00:00:05 to respond...
Application: 2017-11-12 13:00:00.405 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: EndConnect: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connected Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Server handshake
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Authenticating (password)
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Setting client name: RD00155D4B2914
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Auto-configure...
Application: 2017-11-12 13:00:00.406 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Sending critical tracer: Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.407 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: ECHO
Application: 2017-11-12 13:00:00.407 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Flushing outbound buffer
Application: 2017-11-12 13:00:00.407 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Starting read
Application: 2017-11-12 13:00:00.408 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connect complete: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.457 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / ECHO: BulkString: 16 bytes
Application: 2017-11-12 13:00:00.457 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: GET __Booksleeve_TieBreak
Application: 2017-11-12 13:00:00.457 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Writing to Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: PING
Application: 2017-11-12 13:00:00.495 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / GET __Booksleeve_TieBreak: (null)
Application: 2017-11-12 13:00:00.495 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Response from Interactive/pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 / PING: SimpleString: PONG
Application: 2017-11-12 13:00:00.495 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 returned with success
Application: 2017-11-12 13:00:00.496 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: All tasks are already complete
Application: 2017-11-12 13:00:00.496 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915 had no tiebreaker set
Application: 2017-11-12 13:00:00.496 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Single master detected: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915
Application: 2017-11-12 13:00:00.498 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: Standalone v3.0.3, master; keep-alive: 00:03:00; int: ConnectedEstablished; sub: ConnectedEstablished, 1 active
Application: 2017-11-12 13:00:00.498 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: pub-redis-11915.us-east-1.1.azure.garantiadata.com:11915: int ops=12, qu=0, qs=0, qc=1, wr=0, sync=10, socks=1; sub ops=4, qu=0, qs=0, qc=0, wr=0, subs=1, sync=4, socks=1
Application: 2017-11-12 13:00:00.498 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Circular op-count snapshot; int: 0+12=12 (1.20 ops/s; spans 10s); sub: 0+4=4 (0.40 ops/s; spans 10s)
Application: 2017-11-12 13:00:00.498 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Sync timeouts: 0; fire and forget: 0; last heartbeat: -1s ago
Application: 2017-11-12 13:00:01.187 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:01: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Message received. Type: Text, size: 92, EndOfMessage: True.
Application: 2017-11-12 13:00:01.187 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:01: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Passing message to application. Payload size: 92.
Application: 2017-11-12 13:00:01.301 +00:00 [Debug] Microsoft.AspNetCore.SignalR.HubEndPoint: Received hub invocation: Invocation { InvocationId: "0", NonBlocking: False, Target: "send", Arguments: [ Hello foo ] }
Application: 2017-11-12 13:00:01.410 +00:00 [Trace] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Publishing message to redis channel signalrsandbox.Chat
Application: 2017-11-12 13:00:01.474 +00:00 [Trace] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Received message from redis channel signalrsandbox.Chat.internal.group
Application: 2017-11-12 13:00:01.503 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:01: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Sending payload: 121 bytes.
Application: 2017-11-12 13:00:01.505 +00:00 [Trace] Microsoft.AspNetCore.SignalR.HubEndPoint: [86e6f976-6c89-42cb-ae3d-900f40aabaca/0] Sending result of type System.Threading.Tasks.Task
Application: 2017-11-12 13:00:01.513 +00:00 [Debug] Microsoft.AspNetCore.Sockets.Internal.Transports.WebSocketsTransport: 11/12/2017 13:00:01: Connection Id 86e6f976-6c89-42cb-ae3d-900f40aabaca: Sending payload: 44 bytes.
Application: 2017-11-12 13:00:01.874 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQM" started.
Application: 2017-11-12 13:00:01.875 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 GET http://signalrsandbox20171111080435.azurewebsites.net/chat?id=effcc729-c400-4450-9404-4998ddb387f6
Application: 2017-11-12 13:00:01.875 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:01.875 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:01.875 +00:00 [Debug] Microsoft.AspNetCore.Routing.RouteBase: Request successfully matched the route with name '(null)' and template 'chat'.
Application: 2017-11-12 13:00:01.876 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 1.2549ms 404
Application: 2017-11-12 13:00:01.876 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQM" disconnecting.
Application: 2017-11-12 13:00:01.876 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv: Connection id "0HL99PKUU7RQM" sending FIN.
Application: 2017-11-12 13:00:01.876 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PKUU7RQM" stopped.
Application: 2017-11-12 13:00:00.498 +00:00 [Debug] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Starting heartbeat...
Application: 2017-11-12 13:00:00.499 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Connected to redis
Application: 2017-11-12 13:00:00.499 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Subscribing to channel: signalrsandbox.Chat
Application: 2017-11-12 13:00:00.550 +00:00 [Information] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Subscribing to channel: signalrsandbox.Chat.AllExcept
Application: 2017-11-12 13:00:00.764 +00:00 [Debug] Microsoft.AspNetCore.SignalR.HubEndPoint: Hub method 'Send' is bound
Application: 2017-11-12 13:00:00.793 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Hosting starting
Application: 2017-11-12 13:00:00.895 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I5" started.
Application: 2017-11-12 13:00:00.963 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv: Connection id "0HL99PL4CC4I5" received FIN.
Application: 2017-11-12 13:00:00.963 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I5" disconnecting.
Application: 2017-11-12 13:00:00.963 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv: Connection id "0HL99PL4CC4I5" sending FIN.
Application: 2017-11-12 13:00:00.992 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I5" stopped.
Application: 2017-11-12 13:00:01.021 +00:00 [Warning] Microsoft.AspNetCore.Server.Kestrel: Unable to bind to http://localhost:26635 on the IPv6 loopback interface: 'Error -4090 EADDRNOTAVAIL address not available'.
Application: 2017-11-12 13:00:01.023 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Hosting started
Application: 2017-11-12 13:00:01.028 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Loaded hosting startup assembly signalrsandbox
Application: 2017-11-12 13:00:01.028 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Loaded hosting startup assembly Microsoft.AspNetCore.AzureAppServices.HostingStartup
Application: 2017-11-12 13:00:01.028 +00:00 [Debug] Microsoft.AspNetCore.Hosting.Internal.WebHost: Loaded hosting startup assembly Microsoft.AspNetCore.Server.IISIntegration
Application: 2017-11-12 13:00:01.074 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I6" started.
Application: 2017-11-12 13:00:01.108 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 OPTIONS http://signalrsandbox20171111080435.azurewebsites.net/chat
Application: 2017-11-12 13:00:01.122 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request is a preflight request.
Application: 2017-11-12 13:00:01.122 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:01.122 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:01.132 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I6" completed keep alive response.
Application: 2017-11-12 13:00:01.132 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 23.7778ms 204
Application: 2017-11-12 13:00:01.226 +00:00 [Trace] Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager: Received message from redis channel signalrsandbox.Chat.internal.group
Application: 2017-11-12 13:00:01.361 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request starting HTTP/1.1 OPTIONS http://signalrsandbox20171111080435.azurewebsites.net/chat
Application: 2017-11-12 13:00:01.361 +00:00 [Debug] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: The request has an origin header: 'http://localhost:5000'.
Application: 2017-11-12 13:00:01.361 +00:00 [Information] Microsoft.AspNetCore.Cors.Infrastructure.CorsService: Policy execution successful.
Application: 2017-11-12 13:00:01.371 +00:00 [Debug] Microsoft.AspNetCore.Routing.RouteBase: Request successfully matched the route with name '(null)' and template 'chat'.
Application: 2017-11-12 13:00:01.404 +00:00 [Debug] Microsoft.AspNetCore.Sockets.ConnectionManager: 11/12/2017 13:00:01: ConnectionId effcc729-c400-4450-9404-4998ddb387f6: New connection created.
Application: 2017-11-12 13:00:01.440 +00:00 [Debug] Microsoft.AspNetCore.Sockets.HttpConnectionDispatcher: 11/12/2017 13:00:01: Connection Id effcc729-c400-4450-9404-4998ddb387f6: Sending negotiation response.
Application: 2017-11-12 13:00:01.442 +00:00 [Debug] Microsoft.AspNetCore.Server.Kestrel: Connection id "0HL99PL4CC4I6" completed keep alive response.
Application: 2017-11-12 13:00:01.442 +00:00 [Information] Microsoft.AspNetCore.Hosting.Internal.WebHost: Request finished in 80.9395ms 200 application/json
Application: 2017-11-12 13:00:07.100 +00:00 [Debug] Microsoft.AspNetCore.Sockets.ConnectionManager: 11/12/2017 13:00:07: ConnectionId effcc729-c400-4450-9404-4998ddb387f6: Removing connection from the list of connections.

You can remove redis from your app temporarily since it most likely is not related to the issue.
From the logs it looks like the client sent negotiate but then didn't send the GET request with the connection id within 5 seconds. Did you look at the client side logs? Also if you look at the network tab in your browser was the GET ever sent for the failed connection?

Looking at the network tab, I see a couple OPTIONS requests:
Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:204 No Content
Date:Sun, 12 Nov 2017 12:59:59 GMT

Followed by:
Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:200 OK
Date:Sun, 12 Nov 2017 12:59:59 GMT

For the failure, the networking tab reports:
Request URL:ws://signalrsandbox20171111080435.azurewebsites.net/chat?id=effcc729-c400-4450-9404-4998ddb387f6
Request Method:GET
Status Code:404 Not Found
Date:Sun, 12 Nov 2017 12:59:59 GMT

Let me see if I can get some client logs.

Ok, the problem is you're using http for the failing request. Azure Web Apps requires wss for websockets, and that means you must use https

Really? Here is my success case:
Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:204 No Content

Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:200 OK

Request URL:ws://signalrsandbox20171111080435.azurewebsites.net/chat?id=86e6f976-6c89-42cb-ae3d-900f40aabaca
Request Method:GET
Status Code:101 Switching Protocols

I appear to be using http and ws without issue. Am going to now test over https exclusively.

Huh, I thought Azure Web Apps didnt allow not secure ws

Still getting the same behaviour over https - only one instance is behaving as expected.
I'm not getting any additional logging on the client - I tried lifting the following from this recent blog, am I doing something wrong?
      var transportType = signalR.TransportType.WebSockets;
      //can also be ServerSentEvents or LongPolling
      var logger = new signalR.ConsoleLogger(signalR.LogLevel.Trace);
      var chatHub = new signalR.HttpConnection(`http://signalrsandbox20171111080435.azurewebsites.net/chat`, { transport: transportType, logger: logger });
      var connection = new signalR.HubConnection(chatHub, logger);

      connection.start()
          .then(() => connection.invoke('send', 'Hello Foo'))
          .catch(err => console.log(err));

And you are indeed about Redis not being part of the issue - deploying the solution without Redis manifests the same behaviour.
As soon as I scale back down to a single instance - no error occurs.

I guess next step is to look at the Set-Cookies header for the options and get request and make sure the ARR Affinity value is the same

Ah, interesting. In the failure case, the OPTIONS requests have different values for Set-Cookies. Presume that's not intended?
Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:204 No Content
Set-Cookie:ARRAffinity=110660acbfe3984415f37a02f142afdfd57785e9ba50aaccb52bd57cd6156232;Path=/;HttpOnly;Domain=signalrsandbox20171111080435.azurewebsites.net

Request URL:http://signalrsandbox20171111080435.azurewebsites.net/chat
Request Method:OPTIONS
Status Code:200 OK
Set-Cookie:ARRAffinity=46924d26a156f2513346647392bff9d626b628b61fe47171e284f9ef372c58f2;Path=/;HttpOnly;Domain=signalrsandbox20171111080435.azurewebsites.net

Request URL:ws://signalrsandbox20171111080435.azurewebsites.net/chat?id=ca383e58-11da-4ae6-a1a1-09d277ef8efc
Request Method:GET
Status Code:404 Not Found
Cookie:ARRAffinity=110660acbfe3984415f37a02f142afdfd57785e9ba50aaccb52bd57cd6156232

It was mentioned that the ARRAffinity cookie dependency is being removed, so this presumably a lot of this stuff is going to change. I'm happy to close this ticket given things are in flux, unless you feel there is any value in soldiering on with this.

The ARRAffinity cookie dependency is only being removed when you specify WebSockets explicitly in your client.
This shouldn't be happening, so we'll need to investigate why this happens.

This should be fixed in latest builds.

latest build of what? Redis, Signalr or .net core?

SignalR bits which haven't been released in any form besides the myget feed.

Just so I'm clear, we should explicitly set the transport as websocket in the client:
     var transportType = signalR.TransportType.WebSockets;
     var logger = new signalR.ConsoleLogger(signalR.LogLevel.Trace);
     let chatHub = new signalR.HttpConnection('http://signalrcoretest20180224073247.azurewebsites.net/chat', { transport: transportType, logger: logger });
     var connection = new signalR.HubConnection(chatHub, logger);

The above works with in 2.1.0-preview2-30183 - I can scale my web app out with no issue.
If I don't specify the websocket transport, which appears to be the default, then I get the 404 error I reported above:
    // This won't work when we scale out an Azure web app
    let connection = new signalR.HubConnection('http://signalrcoretest20180224073247.azurewebsites.net/chat');

    connection.on('send', data => {
        console.log(data);
    });
    ...

Thanks!!

@chrisahardie can you send your HAR file See https://github.com/aspnet/SignalR/issues/1483#issuecomment-367742626 for more details

Certainly, please find it attached.
localhost.txt

Are you using the CORS middleware?

Yes. If I scale out to 2 instances, I succeed half the time, and I receive 404 for the other half.

@chrisahardie can you explain how you have this setup so we can reproduce this? From the logs, it looks like you're running your site on localhost but running against a signalr application running on azure app service with CORS enabled. Is that correct?

@BrennanConroy I did not touch the ARRAffinity settings in my web app after deployment.
@davidfowl As you elaborated, I deployed my signalr app to azure with CORS enabled, and then spun up a client on localhost.
Please let me know if I can be of further assistance.

I think I know the problem @chrisahardie. It seems as though we need to set withCredentials to make sure cookies persist when doing xhr requests with CORS.

https://github.com/aspnet/SignalR/commit/473e578efc7b3ac2369537fa61e959c8affbb926


VDC Failed to Update

My VDC failed to update after briefly showing the progress bar, with: Error in updating the VDC, please contact support.
https://scott-kube.vdctest.grid.tf/vdc_dashboard/

JS-NG> j.tools.vdc.reporting.report_vdc_status("vdc_kube_scott")

Getting VDC information ...

Creation time: 25/03/2021, 20:23:14
Expiration time: 12/12/2021, 20:58:10
Flavor: silver
Grace Period:  No
Master IP:  <IP_ADDRESS>  --> State: Down
Threebot IP: <IP_ADDRESS>
Threebot Domain: https://scott-kube.vdctest.grid.tf  --> State Down

+Wallets--------------------------------------------+----------------------------------------------------------+----------------+
| Name                                              | Address                                                  | Balance        |
+---------------------------------------------------+----------------------------------------------------------+----------------+
| prepaid_wallet_349fe93e41674b80b7d24b45861d826f   | GBC7MYICFLASXRACSEDQ6EMSGX43UYRWYYZEZUX5PUOYTFKIK2JNCWWW | 0.0000000 TFT  |
| provision_wallet_349fe93e41674b80b7d24b45861d826f | GAKCFFSQIBZFIRVGJ2LZEFX6N32SI3X6GORIAY6ARU4JFHXEC2MHB4CI | 22.6027980 TFT |
+---------------------------------------------------+----------------------------------------------------------+----------------+

+Workloads--------------+---------+----------+--------+-----------+----------------------------------------------+---------+----------------------------------------------------------------------------------+
| Wid   | Type          | State   | Farm     | PoolID | IPv4Units | NodeID                                       | NState  | Message                                                                          |
+-------+---------------+---------+----------+--------+-----------+----------------------------------------------+---------+----------------------------------------------------------------------------------+
| 29081 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 26ZATmd3K1fjeQKQsi8Dr7bm9iSRa3ePsV8ubMcbZEuY | Up      |                                                                                |
| 29082 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 26ZATmd3K1fjeQKQsi8Dr7bm9iSRa3ePsV8ubMcbZEuY | Up      |                                                                                |
| 29083 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 3ksZcDF1yNH5S4ndEDXH3Jnp5cowh4ko8888jKepAD4a | Up      |                                                                                |
| 29084 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 3ksZcDF1yNH5S4ndEDXH3Jnp5cowh4ko8888jKepAD4a | Up      |                                                                                |
| 29085 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 85J3zEvcqDoPaN7qQHRQ2QgPVcYdCvp8JmRY5qAwzxfm | Up      |                                                                                |
| 29086 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 85J3zEvcqDoPaN7qQHRQ2QgPVcYdCvp8JmRY5qAwzxfm | Up      |                                                                                |
| 29087 | Zdb           | DELETED | freefarm | 15263  | 0.0       | DJoL9ZV53K5YQurmxor2BLWTPf3WA9dT3RsFWeDeAx1z | Up      | failed to create zdb namespace: failed to connect to 0-db:                       |
|       |               |         |          |        |           |                                              |         | zdb2628f916-815f-4994-bc70-a06c66ef0c07: read unix @->/socket/zdb.sock: i/o      |
|       |               |         |          |        |           |                                              |         | timeout                                                                          |
| 29088 | Zdb           | DELETED | freefarm | 15263  | 0.0       | DJoL9ZV53K5YQurmxor2BLWTPf3WA9dT3RsFWeDeAx1z | Up      | failed to create zdb namespace: failed to connect to 0-db:                       |
|       |               |         |          |        |           |                                              |         | zdb2628f916-815f-4994-bc70-a06c66ef0c07: read unix @->/socket/zdb.sock: i/o      |
|       |               |         |          |        |           |                                              |         | timeout                                                                          |
| 29089 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | APxTCEYX2YjF9dgDGwRrGsi6gNmQ1a1rzgXaHrAAdbST | Up      |                                                                                |
| 29090 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | APxTCEYX2YjF9dgDGwRrGsi6gNmQ1a1rzgXaHrAAdbST | Up      |                                                                                |
| 29095 | Zdb           | DELETED | freefarm | 15263  | 0.0       | 7e8iFD2inToLQzqTp855SpYf8LfVt9K3MUzrTWoqtvov | Up      | failed to ensure zdb containe running: failed to dial                            |
|       |               |         |          |        |           |                                              |         | "/run/containerd/containerd.sock": context deadline exceeded                     |
| 29096 | Zdb           | DELETED | freefarm | 15263  | 0.0       | 7e8iFD2inToLQzqTp855SpYf8LfVt9K3MUzrTWoqtvov | Up      | failed to ensure zdb containe running: failed to dial                            |
|       |               |         |          |        |           |                                              |         | "/run/containerd/containerd.sock": context deadline exceeded                     |
| 29098 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 3pRRo2s6h1XPSiNY5W98nPUUmWYN5NzrvyUCkpFugfL7 | Up      |                                                                                |
| 29099 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 3pRRo2s6h1XPSiNY5W98nPUUmWYN5NzrvyUCkpFugfL7 | Up      |                                                                                |
| 29100 | Kubernetes    | DELETED | freefarm | 15263  | 0.0       | DJoL9ZV53K5YQurmxor2BLWTPf3WA9dT3RsFWeDeAx1z | Up      | failed to install k3s: could not run vm: failed to create machine root           |
|       |               |         |          |        |           |                                              |         | '29100-1': mkdir /var/cache/modules/vmd/firecracker/29100-1: disk quota exceeded |
| 29108 | Kubernetes    | DEPLOY  | freefarm | 15263  | 0.0       | 3VBKrSTVieFzJ9Bv9MSzvQBQcTwnxgPhC9tMNsUsv5BH | Up      |                                                                                |
| 29109 | Kubernetes    | DELETED | freefarm | 15263  | 0.0       | DJoL9ZV53K5YQurmxor2BLWTPf3WA9dT3RsFWeDeAx1z | Up      | failed to install k3s: could not run vm: failed to create machine root           |
|       |               |         |          |        |           |                                              |         | '29109-1': mkdir /var/cache/modules/vmd/firecracker/29109-1: disk quota exceeded |
| 29118 | Kubernetes    | DEPLOY  | freefarm | 15263  | 0.0       | 3xhQQssbgsUxJtsGoDmnF77SyogsC71Q8UFMkAAUi3ki | Up      |                                                                                |
| 29120 | Subdomain     | DEPLOY  | Gateway  | 15265  | 0.0       | 9PdutHsdDSxcKUUyDg8ovS1KWh47qLT5R9h5uoFgRUH2 | Gateway |                                                                                |
| 29121 | Reverse_proxy | DEPLOY  | Gateway  | 15265  | 0.0       | 9PdutHsdDSxcKUUyDg8ovS1KWh47qLT5R9h5uoFgRUH2 | Gateway |                                                                                |
| 29122 | Container     | DELETED | freefarm | 15263  | 0.0       | DJoL9ZV53K5YQurmxor2BLWTPf3WA9dT3RsFWeDeAx1z | Up      | open /var/cache/modules/flistd/flist/052750919_flist_temp: disk quota exceeded   |
| 29133 | Container     | DELETED | freefarm | 15263  | 0.0       | 7e8iFD2inToLQzqTp855SpYf8LfVt9K3MUzrTWoqtvov | Up      | error starting container: failed to dial "/run/containerd/containerd.sock":      |
|       |               |         |          |        |           |                                              |         | context deadline exceeded                                                        |
| 29146 | Container     | DEPLOY  | freefarm | 15263  | 0.0       | HC1WPUg8GMsbcYakHbHZxeWB1dGhwyvdjGr59dfk7vwE | Up      |                                                                                |
| 31673 | Zdb           | DEPLOY  | freefarm | 15263  | 0.0       | 26ZATmd3K1fjeQKQsi8Dr7bm9iSRa3ePsV8ubMcbZEuY | Up      |                                                                                |
| 31674 | Zdb           | DELETED | freefarm | 15263  | 0.0       | 26ZATmd3K1fjeQKQsi8Dr7bm9iSRa3ePsV8ubMcbZEuY | Up      |                                                                                |
+-------+---------------+---------+----------+--------+-----------+----------------------------------------------+---------+----------------------------------------------------------------------------------+

Looks like the master was deleted and you ran out of IP units


fix(normalize): Accept partial data in lists

Fixes https://github.com/gql-dart/ferry/issues/498

https://user-images.githubusercontent.com/32538273/223689497-3564aff7-22de-4eb4-999a-a6d7d32b8989.mov
It fixes the example given in https://github.com/gql-dart/ferry/issues/498

Thanks for the PR!
I know I suggested this change myself, but I'm afraid I did not fully think this through.
I can see some some issues with this.
Example:
Let's say there's a query
query Pokemons {
  pokemons {
    id
    name
  }
}

which is executed with .CacheFirst FetchPolicy.
Then, another field is added to the query, so now it's:
query Pokemons {
  pokemons {
    id
    name
    weight
  }
}

In the current release, this would cause the query to be re-executed, since the missing weight fields in the cache cause a partial data exception.
With this change, this would just drop all the items from the list and it would return an empty list, but would not actually re-execute it on the network.

I'm afraid the real fix for this is not that easy. We should probably not check for any partial data, but really just for dangling references in child objects of lists.

What do you mean by that? That today's behavior of ferry is what we should keep?
Or I could try to add some parameters to denormalizeNode like allowPartialInList or create another exception MissingDanglingReference ?

I think we need to distinguish between two cases:
real partial data (like missing fields) -> keep the behaviour now and return null / throw a partial data exception (depending on config) so that clients can now if they need to execute another network request or if cached data is good.
dangling references in nested child objects -> In this case, I think it's fine if we remove child objects, since they were likely manually removed from the cache. I still think it should be configurable in order to not break existing users with this change.
So yes, I think additional config parameters or exceptions are the way to go.

@knaeckeKami I'm willing to give it a try if you give me some time :)

@knaeckeKami I pushed some new codes which adds allowDanglingReference to the config. Tell me if you want me to do something more

It looks like there is an issue with melos configuration, the CI is failing with
Run melos bs
  melos bs
  shell: /usr/bin/bash -e {0}
  env:
    FLUTTER_ROOT: /opt/hostedtoolcache/flutter/beta-3.9.0-0.[2](https://github.com/gql-dart/ferry/actions/runs/4649666127/jobs/8228167917?pr=499#step:5:2).pre-x64
    PUB_CACHE: /opt/hostedtoolcache/flutter/beta-[3](https://github.com/gql-dart/ferry/actions/runs/4649666127/jobs/8228167917?pr=499#step:5:3).9.0-0.2.pre-x6[4](https://github.com/gql-dart/ferry/actions/runs/4649666127/jobs/8228167917?pr=499#step:5:4)/.pub-cache
Found a melos.yaml file in "/home/runner/work/ferry/ferry" but no local installation of Melos.

From version 3.0.0, the melos package must be installed in a pubspec.yaml file next to the melos.yaml file.

For more information on migrating to version 3.0.0, see: https://melos.invertase.dev/guides/migrations#200-to-300

To migrate at a later time, ensure you have version 2.[9](https://github.com/gql-dart/ferry/actions/runs/4649666127/jobs/8228167917?pr=499#step:5:10).0 or below installed: dart pub global activate melos 2.9.0
Error: Process completed with exit code 1.

I created a PR to set the version to 2.9.0 https://github.com/gql-dart/ferry/pull/506

Thanks for the update.
I think I spotted a change in behaviour; I added an integration test in test/client/partial_query_data_test.dart.
This tests the following scenario:

the client fetches a query and caches the result
in a newer version of the app, a new field is added to that query
the client executes the updated version of the query with FetchPolicy.CacheFirst
since the cached data is partial, the cache should return no data, and the terminal network link should execute the query

This tests succeeds in the current version on master, but I believe it fails with your changes.
I added a comment on where I think the issue is.

Thank you for the review @knaeckeKami ! I updated the code in bug: Only throw dangling reference exception when it is one to make your test pass

@knaeckeKami Is there anything else I should do on this PR ?

Sorry, I did not have time to check the updates, will do shortly

LGTM!


请问下能否给task加上类似grpc的拦截器，可以自定义的去写一些中间件（trace、metric等等）

如果有需要我可以提一个pr

如果有需要我可以提一个pr
Recently, we are preparing the fork library for secondary development, and your issue is in our plan

如果有需要我可以提一个pr

Recently, we are preparing the fork library for secondary development, and your issue is in our plan

its good

如果有需要我可以提一个pr

Recently, we are preparing the fork library for secondary development, and your issue is in our plan
its good

如果有需要我可以提一个pr

Recently, we are preparing the fork library for secondary development, and your issue is in our plan

its good

新版本已经支持中间件


⚠ Bofrost.lu has degraded performance

In 36246af, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1833 ms

Resolved: Bofrost.lu performance has improved in 4778b3d after 18 minutes.


Compatibility Issue with Latest Version of ChromaDB in ChromaViz Library

Dear mtybadger,
I am writing to bring to your attention an issue I encountered while using your ChromaViz library alongside the latest version of ChromaDB.
As you may be aware, ChromaDB has recently released an update that involves changes to its client construction and data persistence methods. After updating to this new version, I found that the visualize_collection function in ChromaViz is still using a deprecated configuration of ChromaDB, causing a ValueError to be thrown.
The error message suggests visiting the ChromaDB migration documentation (https://docs.trychroma.com/migration) to understand how to change the client construction. After following these guidelines, the issue still persists.
Here's a snippet of the code causing the issue:
from chromaviz import visualize_collection visualize_collection(chromadb.Collection)
And the error message:
ValueError: You are using a deprecated configuration of Chroma. ...
I would greatly appreciate it if you could look into this matter and possibly release an update to make ChromaViz compatible with the latest version of ChromaDB.
Thank you for your time and consideration. I look forward to your response.
Best regards, Ander

@zinojeng I think I know why this happens. The client was introduced by my change #1 and is not used anywhere.
I removed it in #5 and also added a testfile chromaviz-test.py which can be used for further reference (and manual testing).

while not merged you can test my change via
pip install git+https://github.com/selamanse/chromaviz@fix_chromadb_error


Curly braces cause SyntaxError in sap.m.ComboBox grouping

OpenUI5 version:
1.86.2
Browser/version (+device/version):
87.0.4280.88 (Official Build) (64-bit)
Any other tested browsers/devices(OK/FAIL):
No
URL (minimal example if possible):
jsfiddle: https://jsfiddle.net/Lhukm3fx/
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

Go to the link
Press 'Run'

What is the expected result?
ComboBox rendered properly, no SyntaxError in console
What happens instead?
No ComboBox  displayed, SyntaxError in console:
Uncaught (in promise) SyntaxError: no closing braces found in '{ ttt' after pos:0
at q (sap-ui-core.js:295)
at Function.a.complexParser [as bindingParser] (sap-ui-core.js:298)
at f.o.extractBindingInfo (sap-ui-core.js:399)
at f.o.applySettings (sap-ui-core.js:362)
at sap-ui-core.js:357
at f.constructor (sap-ui-core.js:357)
at f.constructor (sap-ui-core.js:996)
at f [as constructor] (sap-ui-core.js:581)
at new f (sap-ui-core.js:581)
at f.n.addItemGroup (library-preload.js:1318)

Any other information? (attach screenshot if possible)
It seems the issue is similar to other issues with curly braces, for example:
#2445
#2233
Thus the proposed solution is to use ManagedObject.ManagedObject.escapeSettingsValue in ComboBoxBase addItemGroup.
Please down port to 1.71.x and also for the sapui5 version

Hello @antonborisoff ,
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards,
Iliana

Hi @antonborisoff ,
The issue has been downported and should be available in version 1.71.33.
Best Regards,
Hristo


Add functional test coverage for LACP member telemetry.

* (M) feature/interface/aggregate/otg_tests/aggregate_test
   - Update README to reflect paths that are now covered.
   - Add test coverage for comparison between DUT and ATE values.

Pull Request Functional Test Report for #2414 / 584165a7a0fcde11d999ef719addbf67b2c0b380
Virtual Devices

Device
Test
Test Documentation
Job
Raw Log

Arista cEOS

RT-5.2: Aggregate Interfaces
ef4c4ee4
Log

Cisco 8000E

RT-5.2: Aggregate Interfaces
c46c75bd
Log

Cisco XRd

RT-5.2: Aggregate Interfaces
d93570af
Log

Juniper cPTX

RT-5.2: Aggregate Interfaces
4497c581
Log

Juniper ncPTX

RT-5.2: Aggregate Interfaces
117197c7
Log

Nokia SR Linux

RT-5.2: Aggregate Interfaces
a6844c4e
Log

Openconfig Lemming

RT-5.2: Aggregate Interfaces
22dc6a0b
Log

Hardware Devices

Device
Test
Test Documentation
Raw Log

Arista 7808

RT-5.2: Aggregate Interfaces

Cisco 8808

RT-5.2: Aggregate Interfaces

Juniper PTX10008

RT-5.2: Aggregate Interfaces

Nokia 7250 IXR-10e

RT-5.2: Aggregate Interfaces

Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1642

Relevant Lines:
3274

💛  - Coveralls


USDT withdraw funds missing

Withdrew USDT from Binance to Liqui
TransactionId from Binance stated: 7c1885d4fe187cca13ef425fb40841c0bbc5dd00fa628d8c3c57e032bea46e55
Still cant see nothing in OmniExplorer.info, but in blockchain.info or btc.com:
https://btc.com/7c1885d4fe187cca13ef425fb40841c0bbc5dd00fa628d8c3c57e032bea46e55
https://blockchain.info/tx/7c1885d4fe187cca13ef425fb40841c0bbc5dd00fa628d8c3c57e032bea46e55
Also I cant see the funds in my Liqui balance page.
Can you help me with this out ?
Thanks

The transaction is showing in omniexlorer now. Thanks


Add double quotes for rsyslog option

The rsyslog syntax needs to have double quotes here.

@javierbertoli thanks for reviewing, @wesleyarthur thanks for fixing this


Up-to-date usage of the latest Cloud Firestore for PHP package triggers deprecation warnings

Environment details

OS: Linux
PHP version: 8.2
Package name and version: google/cloud-firestore:v1.47.0

The issue seems unrelated to the OS or PHP version, though.
Steps to reproduce

Retrieve a document from Firestore
Set some field values
Deprecation notice is triggered for class Google\Cloud\Firestore\WriteBatch

Code example
use Google\Cloud\Firestore\FirestoreClient;

$firestore = new FirestoreClient();

$document = $firestore->document('users/john');

$document->set(
    [
        'foo' => 'bar',
    ],
    [
        'merge' => true,
    ],
);

Explanation
The deprecation notice is caused while checking for the existence of the deprecated Google\Cloud\Firestore\WriteBatch class within Google\Cloud\Firestore\DocumentReference::batchFactory(), before an attempt to set WriteBatch as an alias for the newer Google\Cloud\Firestore\BulkWriter class.
The class_exists() check triggers autoloading of the WriteBatch class, whose code in turn triggers the deprecation notice as soon as the file is loaded.
The WriteBatch class/file also attempts to configure the same alias, and that's probably the statement that actually has an effect, because it happens before the class_alias() call within DocumentReference occurs.
This generates a deprecation notice within any request/invocation that attempts to work with a document, which gets really spammy in logs.
Unfortunately, there's not much users can do to address this, as the deprecation notice is triggered by the code in the package. It would be possible to configure the alias by the user before the Firestore package is used, but that seems needlessly hacky.
Furthermore, the deprecation notice states that WriteBatch will be removed in the next major release - but considering the current v1.47.0 version of the package, a major release that removes the deprecation notice probably won't happen soon.
Solution
A possible solution would be to just pass false as the second argument to class_exists(), which will disable the autoloading attempt in case the class hasn't been defined/loaded yet.
It doesn't seem like this would have any negative effects, as the WriteBatch alias will be immediately created anyway.
The same issue probably exists in Google\Cloud\Firestore\FirestoreClient::batch(), though I haven't personally interacted with that method directly.

try using the latest release that went out today (v1.47.1).

Thanks for the quick reply!
Are you sure that's the right version, though? The link you shared states that this version was released on Nov 6:

I also can't find a newer version (in that repo, or on Packagist).

Unfortunately, I am not able to currently test this upgrade on the project affected by the issue (though I will in the near future).
The reason is that, even though upgrading from v1.47.0 to v1.47.2 should be a patch upgrade, these changes trigger upgrades of other dependencies, some of which should in practice be major - e.g. through a chain of these required dependency upgrades (google/gax -> google/auth), it turns out that the patch upgrade of google/cloud-firestore also requires me to upgrade from psr/log:^2 to psr/log:^3, which is then blocked by some other dependencies in my project.
Overall, it doesn't seem that these Google Cloud PHP packages strictly adhere to semantic versioning, despite the claim in the README. As a trivial example, upgrading google/auth from v1.37.0 to v1.38.0 drops support for PHP 7.4 which is definitely a major BC break - even though the package version only got a minor version bump.

Regardless though, by just reviewing the actual code changes between google/cloud-firestore:v1.47.0 and google/cloud-firestore:v1.47.2, it doesn't seem to me like the cause has been addressed at all - the same code that triggers the deprecation warnings is still present in the package, and hasn't been changed at all.
Could you perhaps review the actual solution I've proposed in the initial issue description, and maybe apply that change if it makes sense?

@levacic dropping support for versions of PHP are NOT considered a breaking change, and so our packages do adhere to semantic versioning. Here is a good article as to why that is
However, I see that the deprecation warnings you are referring to are not the ones which have been fixed in the latest version of this library... the fix in the latest version is for deprecation warnings when upgrading to PHP 8.4.
I'll take a look at the issue you've described and the solution you've recommended. I think the solution you've proposed (providing false to class_exists) will fix the issue. Thanks for helping us track down this issue!

@levacic dropping support for versions of PHP are NOT considered a breaking change, and so our packages do adhere to semantic versioning. Here is a good article as to why that is

That's an interesting take, and I'll have to think about it, although my gut feeling is that I don't totally agree with it, as I'd consider the advertised platform support (e.g. supported PHP versions in this case) a part of the package's public API. And my understanding of the intent of semantic versioning is that non-major upgrades should not require users to make changes (which is obviously not the case here).
On the other hand, the FAQ on the semver website itself seems to be in agreement with the blog post you've linked, so I'm not sure what to make of it.
Either way, appreciate the link!

However, I see that the deprecation warnings you are referring to are not the ones which have been fixed in the latest version of this library... the fix in the latest version is for deprecation warnings when upgrading to PHP 8.4.
I'll take a look at the issue you've described and the solution you've recommended. I think the solution you've proposed (providing false to class_exists) will fix the issue. Thanks for helping us track down this issue!

I saw you already made a PR to address this, thanks a lot! I believe the same change should be applied to FirestoreClient::batch() as well.

And my understanding of the intent of semantic versioning is that non-major upgrades should not require users to make changes (which is obviously not the case here).

The way I think of it is that defining trait of a major version bump is if there's a breaking change. Dropping support for a version of the language runtime is not breaking as long as it's handled as expected by the package manager. In the case of PHP, this is handled by Packagist/Composer.  Also, if dropping support for a requirement constituted a breaking change, then wouldn't removing / upgrading any dependencies also need to be considered a breaking change, following the same logic?
I suppose you could think of it like... for people on the previous version of PHP, there IS a major version bump - they have to upgrade to the next major version of the languagem, which could cause breaking changes. But for the other users of the library on the other version of PHP, there is no major version bump (as there were no breaking changes)

I believe the same change should be applied to FirestoreClient::batch() as well.

Thank you for catching that! I've added it to the PR as well.


fix: Correcting the run button loading state on cancel in API pane

Description
The run button status was updating to loading false by clicking on cancel button inside confirmation before running query pop up. So changed the apiPane and action loading to false when the request is cancelled.
Fixes #8457
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Steps to test
1. go to the query editor
2. click on the setting tab
3. enable Request confirmation before running query toggle
4. now click on run
5. inside the confirmation pop up click on cancel
6. Now the run button becomes active but previously it used to be in loading state even if the query editor was changed by switching queries.

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:red_circle: Total coverage has decreased
// Code coverage diff between base branch:release and head branch: fix/run-button-loading

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
total
55.04 (-0.01)
36.91 (-0.01)
33.9 (-0.01)
55.56 (-0.01)

:red_circle:
app/client/src/reducers/entityReducers/actionsReducer.tsx
6.14 (-0.22)
0 (0)
0 (0)
6.25 (-0.23)

:red_circle:
app/client/src/reducers/uiReducers/apiPaneReducer.ts
17.86 (-0.66)
100 (0)
0 (0)
19.23 (-0.77)

:red_circle:
app/client/src/utils/autocomplete/TernServer.ts
52.71 (-0.23)
40.83 (-0.84)
36.21 (0)
56.74 (-0.25)

Add a cypress test

/ok-to-test-sha= f6fd104

/ok-to-test sha=f6fd104

/ok-to-test sha=8a1627f


API backend and question

Hi, no issue here, just wanted to ask if there's a way to see all the available subreddits. And also could you explain how your API works a little? Do you scrape the site manually or what's going on here? Thanks

Hey @lukaIvanic,
There is no option in this API to do so. You can check this website if it helps redditlist.
I am directly interacting with the Reddit API through their oauth URL https://oauth.reddit.com/r/<subreddit> and parsing the results from the response.
You can take a look at it here get_post.go.


Add gettext for clap

Merged.
As general advice on cleanups:   For larger cleanups, it is preferred to paste a script that generates the cleanups into the PR, or simply file an issue + cleanup script.
A cleanup script is better for security reviews, ensuring that the cleanup script generates 100% match with PR's source code changes.
For small cleanups and just a few files, a script is not necessary.  A cleanups start to touch dozens or hundreds of files, a script will be a requirement.  It is a range.


Chat: Have some way to "pop out" to a separate window

Right now we have a chat client embedded on /compo/irc. Would be nice to have a way to pop it out to a separate window.

Currently there is no chat.


VSTS Tag source on release

On the automated build, there's a way to tag the commit on build, which is great but not enough, I need to tag source on Production Environment successful release using, now I can only do that manually with a commands:  I need to be able to do this as part of my Release tasks to production
##BUILD_SOURCEVERSION = CommitID
##BUILD_REPOSITORY_NAME = Repository
##BUILD_BUILDNUMBER = BuildNumber
git clone -q sh://username@domain.visualstudio.com:22/DefaultCollection/Repo/_git/$env:BUILD_REPOSITORY_NAME
cd $env:BUILD_REPOSITORY_NAME
git reset --hard $env:BUILD_SOURCEVERSION
git tag 'Prod-Release ' $env:BUILD_BUILDNUMBER
git push origin 'Prod - ' $env:BUILD_BUILDNUMBER
cd .
Remove-Item -Recurse -Force $env:BUILD_REPOSITORY_NAME

Thanks for your feedback. I have added it to our backlog and we will consider it for future releases.


range error

What are the steps to reproduce this issue?

look at AbstractIjkGridRepresentation::isColumnEdgeSplitted() function

What does happen?
range error
if (edge > 7)
	throw range_error("Edge is out of range.");

What were you expecting to happen?
I am expecting that edge must be < 4 as stated in function documentation
Any logs, error output, etc?
(If it’s long, please paste to https://ghostbin.com/ and insert the link here.)
Any other comments?
What versions of fesapi are you using?
master branch

Thanks Lionel.
You are definitely right. I am going to fix it.


Teensy LC: Pin wakeups on pins 2, 7, 9 not working

The README states that for Teensy LC, Digital pins: 2,6,7,9,10,11,16,21,22 should work as wakeup sources. However, having tested them, I found that pins 2, 7, and 9 don't wake the CPU either from deepSleep or hibernate.

@jacky4566 you can always give a pull request to fix things too. Thats how open source works.

I am just confuse where the original number set came from...
Working on a fix now.

Ok no problem I'm going to look at this over the weekend, I see you did a pull thanks! There are few more places that need to be touched also before merge your pull.

Fixed


Issue #189: Feature introduced - containerized deployment through Docker for contributors

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

Closes #189

The following PR introduces an option for contributors to test their changes locally through Docker.
Apart from solving the "it worked on my machine", containerization is "hot" in the industry with cloud computing and microservices and this will allow interested contributors to gain experience with the tooling.
Testing PR
The PR can be testing by first building the image with: docker build -t developer-quiz-site . followed by docker container run --rm -it -p 3000:3000 developer-quiz-site.
Visiting port 3000 on localhost should show the quiz site up-and-running. 🚀🐳

Thanks for the review and suggestions!
Incorporated the feedback in the latest commit.


Submisson of file

Submission of file keeps running for an 86 mb file. its been 30 mins, I am on single appliance through docker

Is the file stuck on a certain service in your appliance?

Are there any logs from those containers to indicate an issue?

I can see in dashboard, these two characterize and floss being red but only for a second in Q section i can characterize shows Q 22
and Floss Q 8
but APKAY is red since the installation.

If you'd like, you can join our Discord community (just a faster way of messaging and other members of the community might be able to help as well): https://discord.gg/GUAy9wErNu
You should be able to get the logs from the container using docker logs -f <container_name>

Closing issue. If the issue still persists, feel free to reopen the issue.


IPT extension updates for Audiovisual Core

Audiovisual Core (formerly Audubon Core) has had a number of label updates & term updates (including the name of the extension itself) in the past couple years, but it doesn't look like those updates are reflected in the current IPT yet -- e.g. the 2023-09-05 version
The AC working group was wondering if there's anything we should do on our end, &/or if that's on the GBIF end?
@edwbaker @baskaufs @danstowell

Thank you for contacting us
@MattBlissett


Make Hash's key and driver private and immutable

Re the discussion on #336:
I have made the key and driver properties of Hash both private and immutable. They are set at init() only.
Benefit: once initialised, it's impossible to accidentally change the parameters of an app's hasher which would cause all kinds of problems as alluded to in the documentation previously attributed to key.
Drawback: it's no longer possible to configure an app's hasher after Application.init(). Therefore, for configuration of an app's hasher, a code change will have to be made:
// Prior to this PR
let app = Application()
app.hash.key = "secretkey"
// With this PR
let app = Application(hash: Hash(withKey: "secretkey"))

NB 1. I have left default values for both driver and key, so that Hash can still be instantiated with no arguments, which means that anybody not using the hash system (or at least not setting a secret key) will have no code changes and can still simply use let app = Application(). This does mean that a hasher used with the default key value is unsafe, but at least this doesn't change any behaviour:
NB 2. I removed documentation comments from the private properties and applied them to the init method only, because I noticed this is how other classes with private properties were handled.

I have tried to update the example project and run into trouble.
The Development target in this project instantiates a Config object which contains the app's hash key, and then inits the Application, so it's easy enough to init the Application with the hash key.
However, in the example project, the Application instantiates the Config within its own init, loading the Config from a fixed file path. It's therefore impossible to provide the hash key to the Application's init since Config isn't loaded until init is called.
The obvious answer is to make the hash key part of the Config. Two things:

This project stores the key at "app" -> "hash" -> "key" within Config.json. The example project uses "app" -> "key". Which key path should be used?

The Hash driver can be set when the Hash is initialised. Going through Config, an optional key would need to be added for the hash driver (e.g. SHA2), and the hash driver variant (e.g. 256, 384, 512). Or, the driver could be specified only within code. I don't expect there is much need for changing the hash driver so I don't believe Config is the right route for this.

Related to #309


Feat: Support scalar comparison of range vectors

Explanation
Implemented  support for scalar comparison of range vectors in promql, extending binary operation.
Related Issue:
Enables #10399
Proposed Changes

Extended binary operation to support range vectors with scalars
Enabled comparison to both ways, i.e. when LHS: Range Vector and RHS: Scalar as well as vice-versa
Also added unit test case for the above mentioned functionality.

Proof Manifests

I am considering whether we should proceed with the current approach or incorporate the selector as an optional component of the matrix selector. This adjustment could yield two advantages: firstly, the functions would continue to accept matrix as an input, and secondly, we could transmit the comparison as a suggestion to remote read targets.

@roidelapluie if you can let me know how to proceed in case you want changes, that would help.

Thanks, however queries like rate(up[1m] > 0) panic.

Thank you @roidelapluie  for your response. I had implemented the range vector scalar comparisons for simple cases and have not yet gone ahead with complex / nested queries. If you could have a look into the current implementation and let me know if the way I approached the problem is correct then I would take it forward into the complex / nested query aspect of this proposal.

I think what I was considering was to incorporate into the lexer the ability for vector matches to include scalar comparisons, and then proceed to perform the comparison right after selecting the metric from storage, thus still retaining a matrix object.

cc @mabhi are you still willing to work on this pull request and address my last comment? Thanks!

We have looked at this pull request during our bug scrub.
We still want this, but the current approach is not a fit. Are you willing to give this another go ?
Thank you for your contribution.


Manage Partial Soft Credits - Deleting records from the top of the list and then adding new ones corrupts the list

When there are more than three soft credits on the manage partial soft credits page. And the user deletes one of the first two records and then adds a new record.  The last record in the list is overwritten with the 2nd to last record's contact info.

**lurch: attach W-031957

Tracking W-031957

Included in beta release 3.151 (Beta 12)

Included in production release 3.151


fixed IAM roles and code cleanup.

Signed-off-by: pgodithi<EMAIL_ADDRESS>Description

fixed IAM roles and code cleanup.
Removed unstable ECR repo creation code.
Fixed wildcard IAM policies.
Added Required IAM policy conditions
Added ECR public policy for agent nodes.
Added Optional flag agentAssumeRole for agent's to assume cross account role.
Added job-import-plugin and workflow-multibranch plugins.
Updated README document.
Added docker resources.
Added jenkins JENKIN_JAVA_OPTS to docker-compose file.
Added docker maintainer label.
Minor version bump 2.332.3-lts.

Issues Resolved
https://github.com/opensearch-project/opensearch-ci/issues/65
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Does this include the ECR fix where assume role should happen on agent not main node?
Since @zelinh latest PR on fixing TAG_LATEST is still running on main node.
Thanks.

Added a few comments.
Please also add unit tests to cover the new resources being created for agent node.

Hey @rishabh6788 I have pushed your suggestions and also added some unit tests for agents. Please check


Misspelling

Don't have time to submit a PR right now, but the word information is misspelled here:
https://github.com/linode/python-linode-api/blob/dcf22c4399daf9ada4872eb0c4af4d055b5aba34/linode/linode_client.py#L711

fix via https://github.com/linode/python-linode-api/commit/dbcb8044099ae3ea1a6cdfebba6cfdadb428c6a6


Added test for web socket compliance (maximum message size and maxmimum lifetime).

Added test for web socket compliance (maximum message size and maxmimum lifetime).

@NicoletaOita Done reviewing. Just one minor comment about a method name. Once you fix that and once the k3po PR is merged and release I will merge this. Are all the tests passing with @Anisotrop's fix for https://github.com/kaazing/gateway/issues/445?

@cmebarrow Done with the last changes, also fixed the scripts for default size, as suggested.

@NicoletaOita This looks good. I have merged your k3po PR (https://github.com/k3po/k3po/pull/316). Once that has built I will release k3po, then you can update the pom file to pick up that version and I wil be able to merge this PR.

@NicoletaOita I have scheduled k3po release build 3.0.0-alpha-24 on Jenkins. Once that is done, you will need to put that as the k3po version in the gateway pom.xml file. Then you should be held to build your  branch and it should pick up the new scripts (and scripts updates) that you did.

@NicoletaOita k3po 3.0.0-alpha-24 release has completed so you can go ahead and set that as the k3po version in properties near the start of the gateway pom.xml. Then I will be able to merge this PR.

@cmebarrow Thank you! I've modified the k3po version in the gateway pom file.

@cmebarrow Thanks for merging the k3po PR. I've updated the k3po version in the gateway pom file and rebuilt my branch, so I think now you should be able to merge this PR too.

@NicoletaOita  The Travis build failed in your new size exceeded tests because Costin's fix (https://github.com/kaazing/gateway/pull/445) was not yet in. Jitu has merged it now, so I have restarted the Travis build to see if it passes now.


Implement new Marker API

Implement a new Marker API in the BaseUiAutomation so workload can generate start and end markers with string name. Outputs to Logcat and an alternatively method for awkward Mate 8 type devices (config flag in the device file). Only UiAutomator will actually drive the creation of Markers.
The new start and end markers will be used to parse instrumentation logs in a result processor.

Basic implementation has been added here: https://github.com/ARM-software/workload-automation/blob/master/wlauto/external/uiauto/src/com/arm/wlauto/uiauto/BaseUiAutomation.java#L80


Delete function

Not able to delete records.

Did you mean all records or single? That example delete single record, may be helpful
db.Update(func(tx *buntdb.Tx) error {
	_, err := tx.Delete(key)
	return err
}

Single deletion. The feature is not added yet. Just the function exist.


Version requirements

Following today's discussion during sysadmin meeting
Update the requirement page
Not ready for review yet
cc @joshmoore @sbesson

Ice for 5.5 has no option which is not suboptimal?

that's a mistake when I was copying and pasting columns

Closing this PR for now
so file extension can go in
https://github.com/openmicroscopy/ome-documentation/pull/1729

I knew that there was some present issue somewhere within our CI with getting Ice 3.6 working but is there a bigger problem that requires us to officially offer the community support for Ice 3.5 for the duration of OMERO 5.4?

Travis is another problem, ice35 only is available and I hope that when issues with travis are fixed we can roll back the changes made in https://github.com/openmicroscopy/openmicroscopy/pull/5409 (similar on marshal)
Note that we have not yet been able to use the same approach for omego (See https://github.com/ome/omego/pull/110 and https://github.com/manics/omego/pull/1 for more info) so dropping ice 3.5 will imply removing travis from our validation process
We could certainly use 3.6 in some situations on travis but it might not always be possible

@jburel Custom build of ice 3.6 for travis as we did for 3.5?

It seems like difficulty with testing Ice 3.6 is causing us to decide to publicly support Ice 3.5 and Ice 3.6 which just commits us to keep testing Ice 3.5 even after CI is fixed? This is why I was thinking that maybe the problems with Ice 3.6 must have implications rather beyond the current state of our CI.
Why does dropping official support for Ice 3.5 imply removing travis from our validation process? If we officially support Ice 3.6 then that still needs testing somehow and if travis passes using Ice 3.5 then it's at least far more likely that Ice 3.6 is good so CI still brings much value.

I will avoid making custom build again if possible
When we indicate "dropped" in that document we usually remove any trace of it in the code => ice 3.5 won't work
Probably more suitable to move the discussion via voice

Ah, thank you, that is the missing puzzle piece for me: I hadn't realized the importance of being prompt in removing traces of dropped support.

What's the status of this? Is chat still needed?

No blockers from me.

I need to do a final check and will list it for review

Ice version was a point of discussion
After second though, keep it as "deprecated" for 5.4. Our download and doc encourage people to ice 3.6 but we have not done anything at all in the code so technically still functional and
tested via travis
Not marking it as "dropped" is to avoid confusion as we have seen in the past when we marked pg 9.1 as dropped even if omero was still working with that version.
The discussion is certainly a good start for min requirements for 5.5

adjustments made

The latest adjustments certainly look good. It might be worth someone with a fresh eye reading over this. If not, I'll give my eyes a day to uncross and then will give it another go.

Definitely easy to get lost in, I'd advise somebody else's eyes before this is approved.
Summary seems to be that for 5.4 we'll still tolerate CentOS 6, 32-bit clients, PostgreSQL 9.3, Ice 3.5.
There seems to be some inconsistency about if PostgreSQL 9.4 is deprecated for OMERO 5.4: compare the two tables.
The jump between versions and components as one reads across this table is kind of confusing, but it's not a blocker:

Thanks @mtbc i will review it.
We improved the readability of the page for 5.3 but still some improvements
When we "split" as discussed the web and server this will probably make things a bit clearer

@mtbc I have made few adjustments. I will relist it

seems to be some inconsistency

Now fixed, ta.

We now seem to have inconsistency among tables over how OMERO 5.3, 5.4 regard nginx 1.8. (I'm wondering if these duplicate tables are more trouble than they are worth!)

Worth including https://github.com/openmicroscopy/openmicroscopy/pull/5481#issuecomment-330764699 note?

now seem to have inconsistency

Looks to be fixed, ta.

@mtbc I added a note for pytables version already
This has never been on the version requirement page
see https://github.com/openmicroscopy/ome-documentation/pull/1739/files#diff-4f1690607b26288b56afc5164c52dce0

Anything else here or is this good to merge now @jburel ?

waiting for 3.6.4 to be tested since it is in the list

ice 3.6.4 PR has been merged
I think we are good now @hflynn


Feature Request:  sources attribute for proxy clients

I've been working with the proxy client and the source attribute in checks.  I am happy they exist, but I'm finding I have to create a check for each proxy client, which is fine, I just wish they provided a little more function.
I'd like to be able to aggregate the checks as well, which you cannot do(from my knowledge) in the current form.  I was thinking, it would be nice if we had a sources attribute, that had an array of proxy clients, similar to handlers?  Below is an example I was thinking of to illustrate my idea.  Not sure if this is possible or not.
Register clients:
curl -s -i -X POST -H 'Content-Type: application/json' -d '{"name":"switch-x","address":"<IP_ADDRESS>","environment": "infrastructure", "subscriptions":[],"keepalives":false,"}' http://sensu-server:4567/clients
same for switch-y, firewall-x, firewall-y, router-x, and router-y, etc...
Create the checks:
{
  "checks": {
    "check_ping_switch": {
      "handlers": ["default", "mailer"],
      "command": "check-ping.rb -h :::source.address:::",
      "sources": ["switch-x", "switch-y"],
      "subscribers": ["infrastructure"],
      "interval": 30,
      "aggregate": true
    },
    "check_ping_firewall": {
      "handlers": ["default", "mailer"],
      "command": "check-ping.rb -h :::source.address:::",
      "sources": ["firewall-x", "firewall-y"],
      "subscribers": ["infrastructure"],
      "interval": 30,
      "aggregate": true
    },
    "check_ping_router": {
      "handlers": ["default", "mailer"],
      "command": "check-ping.rb -h :::source.address:::",
      "sources": ["router-x", "router-y"],
      "subscribers": ["infrastructure"],
      "interval": 30,
      "aggregate": true
    }
  }
}

When the check runs it will look at each entry in source and the address attribute of that client and insert that into the host.  You would have one check/aggregate for each type rather than one for each proxy client, but you'd still have individual clients.

I would need :::source.name::: as well as as support for multiple source address families, e.g. a check for SSL using the IPv4 address of the source and a check for SSL using the IPv6 address of the source. Both of these would also require the name of the source to be able to verify the hostname on the certificate.

+1

@Craigeous @lp0  thanks for opening this issue and describing your use cases. I'm tagging this for
consideration as a future feature. We are definitely interested in reducing the overhead of configuration for checks like you've described here, but the implementation details are still under discussion.
As an aside, starting in Sensu 0.24 we added an origin attribute to Sensu event check attributes which provides the name of the client that generated the check event.

Funny, I just posted the something similar on Sensu-users (https://groups.google.com/forum/m/#!topic/sensu-users/lGczEs7YC4k).
This would be really handy as at the minute, each one of my devices requires a single, unique check. This can quickly become tiresome and cause clutter, and defies DRY.
Thanks for taking this into consideration!

Here is my usecase that seems related ot this issue
Let's say I have 100 webservers.
I want to check each http://webserverX/status answer HTTP 200 OK
I don't want the webserver subscribe to the http check and check itself because the traffic would remain local
I want an external poller to check the webserver so the whole network chain is validated.
I don't want to setup 100 check, each one a different webserver as source because it would display 100 checks that does the same thing in Uchiwa checks view.

In #1555 we're proposing to implement "proxy check requests", a new feature allowing a pubsub check definition to generate a unique check request for each client matching a defined set of client attributes.
Please have a look and share your thoughts?
cc: @Craigeous @lp0 @Samgarr @exeral

The proxy check requests feature is now available in the 0.28 release(s) :+1:
Closing this issue due to inactivity after @cwjohnston's update.


not working with dynamic selector

@ImmutableSelector() is not working when using dynamic selector with arguments.
See error below.
First argument to `createDraft` must be a plain object, an array, or an immerable object

repro on stackblitz: https://stackblitz.com/edit/ngxs-repro-hgjaa9?file=src/app/app.state.ts
What is the right way to guarantee immutability when using dynamic selectors?

The default primitives (String, Number, Boolean) are immutable, you don’t need then @ImmutableSelector

Hi @splincode
I'm not creating a counter in my app :) this was just the simplest way to make a repro. I could change the StateModel to an object or an array, the behavior is the same.

So, I will investigate


Editable electrode columns

This PR changes the Electrode Columns table from a BasicTable (read-only) to a SimpleTable (read/write)

Will save extensive testing for this after the generator demo is complepte


Add Style  for 'Coming Soon' Breweries

Create a new marker style for breweries that are planned, but not open yet.  The style should de-emphasize importance to indicate not open yet.

Implemented


How to programmatically create users and associate new connections?

Good congratulations for this great tool that some additions would be the best: save connections password for omnidb user, api to create omnidb users and connections, editable database diagram.
If I'm concrete, I'm more interested at the moment if there is a way to run an api to create omnidb users and associate existing or new connections. Is there a way through some resource in the current version (api, or plugin) or in next versions?

For what I need, all I have to do is use the command line tool "omnidb-config-server" available, and by passing it the appropriate parameters I will surely be able to execute it with an ansible role.
omnidb-config-server [options]
 --createuser=username password
-c username technology host port database dbuser, --createconnection=username technology host port database dbuser
                        create connection: -c username technology host port
                        database dbuser


jmeshpath filtering not working as expected

Describe the bug
Given that the command az account list  gives the following list
[
  {
    "cloudName": "AzureCloud",
    "id": "abcdefg",
    "isDefault": false,
    "name": "One Project",
    "state": "Enabled",
    "tenantId":<PHONE_NUMBER>",
    "user": {
      "name"<EMAIL_ADDRESS>      "type": "user"
      }
    },
 {
    "cloudName": "AzureCloud",
    "id": "abcdefflfjsdf",
    "isDefault": false,
    "name": "Another project",
    "state": "Enabled",
    "tenantId": "123455667",
    "user": {
      "name"<EMAIL_ADDRESS>      "type": "user"
    }
  }
]

Command Name
az account list --query [?state=='Enabled']
Errors:
Produces empty list when it should produce  a list of with all enabled elements.
To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

az account list --query [?state=='Enabled']

One can also run the following command:

az account list --query[?cloudName='AzureCloud']

Expected Behavior
A list with all entries where state is set to Enabled.
For the alternative command the expected result should be all entries with cloudName AzureCloud.
Environment Summary
Windows-10-10.0.17763-SP0
Python 3.6.6
Shell: powershell.exe
azure-cli 2.0.64
## Additional Context

<!--Please don't remove this:-->
<!--auto-generated-->

This worked for me:
az account list --query "[?state=='Enabled']"
The solution is to wrap the query argument in quotes. It also seems like the string value for the key you are matching must be quoted with single quotes.
This did not work:
az account list --query '[?state==Enabled]'
nor this:
az account list --query '[?state=="Enabled"]'
This also worked for me:
$ az account list --query "[?name== 'node']"
[
  {
    "cloudName": "AzureCloud",
    "id": "0000-0000-00000",
    "isDefault": true,
    "name": "node",
    "state": "Enabled",
    "tenantId": "1111-1111-1111",
    "user": {
      "name"<EMAIL_ADDRESS>      "type": "user"
    }
  }
]


⚠ ESPN has degraded performance

In 86b87fa, ESPN (https://espn.com) experienced degraded performance:

HTTP code: 200
Response time: 2197 ms

Resolved: ESPN performance has improved in 5e44b45.


cp-nav tables don't get removed after uninstalling / removing plugin after applying project-config changes on production

Description
cp-nav tables on the production database don't get removed after uninstalling / removing plugin and after applying project-config changes on production.
If I remove these tables manually I get a migration error so that's not an option too..
When I try to reinstall the plugin the old cp-nav tables don't get overwritten with the fresh installed ones, so if you could just help us out here what to undertake in order to remove all of the cp-nav stuff in our production database, that would be great :)
Steps to reproduce
Updated from Craft 3.3 to 3.5 and the plugin 2.X to 3.X
Additional info

Plugin version: updated to the latest 3.X
Craft version: <IP_ADDRESS>
Multi-site: Yes

Additional context

Just so I'm clear, are you uninstalling the plugin locally, and then pushing to production, to let project config take over? Or are you uninstalling the plugin on production directly?
In either case, does the plugin uninstall correctly without errors? As in - it shows as disabled on the plugins page.
If you have allowAdminChanges set to false on production, you won't be able to check the plugins page, so I might recommend you turn that on temporarily so you can double check on production everything is okay.
I'm not sure what you mean by a migration error when you remove the tables manually? If the plugin is uninstalled correctly, deleting the tables shouldn't be an issue. If it is, it sounds like the plugin isn't uninstalled correctly.

Yep I'm uninstalling / installing locally, then deploying to production and let project-config sync/apply the cp nav settings I setup locally, unfortunately without the desired result...
If I check with allowAdminChanges set to false, the plugin doesn't even get activated anymore, while locally it's definitely activated...

Screenshot of the tables locally / production => screenshot

Hmm, so just to confirm, the plugin on production is correctly uninstalled? I have just tested with this normal workflow setup, and can't reproduce (tables and project config get dropped correctly). I'll continue looking into it.

I have the same issue (Craft 3.6.17, CP Nav 3.0.16).  Control Panel Navigation plugin has been removed in production manually via the control panel. It no longer shows up the in the UI and is not present when querying select * from plugins.
However, the following DB tables are left behind:

cpnav_layout
cpnav_navigation
cpnav_pending_navigations

I've had a lot of issues with CP Nav and the same workflow @mdominguez describes:

install and configure nav items locally, which writes to config/project
deploy to production which runs project-config/apply
the plugin does not install or show items in production but I can see it under plugins

This flow is required, otherwise you wipe out your navigation on each deployment. My hunch is that a previous upgrade migration possibly failed?

Hmmm, I'm not sure how much more explicit I can get in the uninstall migration:
https://github.com/verbb/cp-nav/blob/ae3843c82779533a041e19653fd27b3b1baee334/src/migrations/Install.php#L74-L84
Which removed all database tables and project config data when uninstalling.
The project-config/apply on production should run that migration. I'm not sure what's going on, as testing on a few environments (staging/local/production) this is working correctly.
Thanks for confirming though, I'll have to keep digging. All I can think of is that somewhere along the line, your project config has gotten confused (which happens to me on projects a lot and has become out of sync).

@engram-design Thanks for the reply. No clue how I got it to this state but I got it sorted.
The uninstall code was never running but because the plugin wasn't actually installing (presumably due to the tables already existing). Since this was happening via Project Config I didn't get any insight.
Composer would add the package so it'd show up in the Control Panel, but only with the INSTALL and REMOVE options. REMOVE would get rid of the code package but wasn't running your removeTables and dropProjectConfig.
The fix for me in case anybody else does something similar (back everything up of course):

Drop tables (see SQL below)
Install CP Nav locally and configure links
Deploy and let the sweet magic of Project Config do the rest

# disable foreign keys so you can drop tables
SET FOREIGN_KEY_CHECKS = 0;

# drop zombie tables
DROP TABLES cpnav_layout;
DROP TABLES cpnav_navigation;
DROP TABLES cpnav_pending_navigations;

# enable foreign keys
SET FOREIGN_KEY_CHECKS = 1;

# check your work
SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Thanks @juddlyon

Should be fixed in 4.0.0-beta.2 for Craft 4.