What is the proper way to reconnect?

Since reconnect is gone, when using WebSocket as transport layer what is the advisable way for attempting to maintain a connection always on (by attempting reconnection when connection drop is detected)?
It is more like a documentation issue since I didn't find it in documentation.
On server side I have set a KeepAlive of 3 seconds. I have also seen a NegotiateTimeout property. What is it for?
services.AddSignalR(
                options =>
                {
                    options.KeepAliveInterval = TimeSpan.FromSeconds(3);
                    //What is this for?
                    //options.NegotiateTimeout
                });

On client side I have requested for WebSockets with KeepAlive 3 seconds.
 HubConnection = new HubConnectionBuilder()
                    .WithTransport(Microsoft.AspNetCore.Sockets.TransportType.WebSockets)
                    .WithWebSocketOptions(a => a.KeepAliveInterval = TimeSpan.FromSeconds(3))
                    .Build();

There is also ServerTimeout option. What is it for?
HubConnection.ServerTimeout = TimeSpan.FromSeconds(9);

I am currently handling the closing event and performing following actions:
await HubConnection.StopAsync();
await Task.Delay(2000);
 HubConnection = new HubConnectionBuilder()
                    .WithTransport(Microsoft.AspNetCore.Sockets.TransportType.WebSockets)
                    .WithWebSocketOptions(a => a.KeepAliveInterval = TimeSpan.FromSeconds(3))
                    .Build();
//subscribe to events
await HubConnection.StartAsync();

Is this the correct way to do it, by building a new HubConnection on closing?
Before StopAsync() and starting it again I placed a 2 seconds delay. Should I keep it?

I have also seen a NegotiateTimeout property.

After establishing the connection, the client is expected to send a message indicating the protocol it wishes to use. The NegotiateTimeout is how long the server will wait for that message to be sent. The default value should be totally fine for most, if not all, use cases.

There is also ServerTimeout option. What is it for?

If the client hasn't heard from the server within the ServerTimeout, it will close the connection and report an error indicating that the server is not present. This should always be significantly larger than the KeepAliveInterval on the server. The KeepAliveInterval on the server configures the server to send a keep-alive message within that interval if no other messages have been sent.

I am currently handling the closing event and performing following actions:

You actually don't have to re-create the HubConnection. You can simply call StartAsync on it again. The reason this flow is manual is that it is very likely you will want to write application logic for the interval between disconnect and reconnect, especially since SignalR no longer buffers messages for you. You could display a message to a user or disable some UI, for example.

Before StopAsync() and starting it again I placed a 2 seconds delay. Should I keep it?

This depends a lot on what you see in the wild. For example, if the server has 1000 clients connected and it goes down, when it comes back, it'll have 1000 clients immediately trying to reconnect (this was known as a "Reconnect Storm" in SignalR for ASP.NET). You should be prepared for this scenario and see if you can put in some diagnostics to understand client behavior when this happens. You could have clients pick a random delay between when the disconnect occurs and when reconnection happens to help mitigate this.

OK, now if I don't re-create the HubConnection I get the following behavior:
On Closed Event I get this:
Exception thrown: 'System.TimeoutException' in System.Private.CoreLib.dll
Server timeout (9000.00ms) elapsed without receiving a message from the server.

In the same Closed handler I attempt to reconnect like this:
 m_Logger.WriteLine<SignalRClient>("1");
await HubConnection.StopAsync();
m_Logger.WriteLine<SignalRClient>("2");
await Task.Delay(2000);
m_Logger.WriteLine<SignalRClient>("3");
await StartConnectionAsync();
m_Logger.WriteLine<SignalRClient>("4");

I only get logged:
1
4

Thank you for your time.
Regarding the StopAsync. OK, I'll remove it and see how it works.
Regarding the parameters:
I am just trying to use the same parameters i did with the previous version of SignalR and I was pleased with the results.
One more question. What are the differences between setting the KeepAlive parameter on client-side vs setting it on the server side?

The only Keep-Alive that SignalR provides is from Server-to-Client. That is, a SignalR server will ensure that at least one message is sent within the Keep-Alive interval, sending a Ping message if there are no user messages to send.
The "client" Keep-Alive you've configured is part of the options provided to the WebSocket and refers to sending WebSocket Ping frames. Those Ping frames are not visible to the server (they are handled at a lower level) so they have no impact on SignalR's behavior. Those frames only serve to ensure that HTTP proxies sitting in the middle of the connection don't terminate the connection, thinking the other side has timed out. Those frames are sent in both directions (by the server and by the client) automatically, and SignalR has no control over that except to expose the option to configure the duration. Honestly, I think there's very little value (and a cost of increased network traffic) to changing that value from it's default.

OK,
Not creating the HubConnection each time, I get eventually into this:
Cannot start a connection that is not in the Disconnected state.

I think when I get into this I should re-build the HubConnection. Is this correct?
If so, how can I know when should I rebuild the HubConnection and when not to? Can I query its state in some way?

Can you confirm what version of SignalR you are using? The preview 1 version should allow you to re-connect without requiring you to rebuild the HubConnection.

My version is: 1.0.0-preview1-final
So that message means that I should rebuild the HubConnection?
I'll try to reproduce and write you the steps.

So that message means that I should rebuild the HubConnection?

No, it should be working without rebuilding the HubConnection. Versions older than preview 1 did require that you rebuild the connection.

I'll try to reproduce and write you the steps.

That would help a lot. If you're able to narrow down a simple repro we can more easily identify the issue.

Looks like you're stackoverflowing
StartConnectionAsync -> OnConnectionExceptionAsync -> OnConnectionClosedAsync -> StartConnectionAsync -> OnConnectionExceptionAsync -> etc

It is indeed.
I have now changed it to
private async Task StartConnectionAsync()
        {
            try
            {
                if (m_ConnectionIsStarted == false)
{
                    CreateHubConnection();
                }
             await   HubConection.StartAsync();
                m_ConnectionIsStarted = true;
            }

            catch (Exception ex)
            {
                await OnConnectionExceptionAsync(ex);
            }
        }

        private async Task OnConnectionExceptionAsync(Exception exception)
        {
            m_ConnectionIsStarted = false;
            await CleanUpHubConnectionAsync();
            await OnConnectionClosedAsync(exception);
        }

 private async Task CleanUpHubConnectionAsync()
        {
            if (HubConnection != null)
            {
                try
                {
                    await HubConnection.StopAsync();
                }
                catch
                {
                }

                if (HubConnection != null
{
                    try
                    {
                        HubConnection.Closed -= HubConnection_Closed;
                        await HubConnection.DisposeAsync();
                    }
                    catch
                    {
                    }
                    HubConnection = null;
                }
            }
        }

and let it run.
Do you think should be better now?
I Debug Print on almost each line (removed in the code here) so hopefully will have something later.

Sorry! I now realize that updated approach is full of cycles again (theresuch I got into an OutOfMemoryException this time :-) )
So, back to my initial question: What is the proper way to reconnect?
I can try to set a timer and on Elapsed event to evaluate a variable set on ClosedHandler or on exception catch of the StartAsync. Upon evaluation to StartAsync or do nothing until next Elapsed event.
I think is a common scenario for the client to attempt reconnecting to server...

You should be able to simply call HubConnection.StartAsync() from inside the HubConnection.Closed event handler.
What is the primary problem you're seeing? From the looks of it, if you're seeing OutOfMemoryException or StackOverflowException errors in your code, it would appear that you are retrying indefinitely and continuing to encounter errors. What's the exception that's occurring during StartAsync to cause the retry loop? It's possible it's an unrecoverable error some kind.
In general, infinite retry is like an infinite loop, if a persistent error develops (network connectivity issues, etc.) you'll retry forever. You need to limit retries and at a certain point you have to give up and report the error to the user.

Stopped the server for the entire test sesssion - never restarted

I see that you're testing the behavior when the server is unavailable. We shouldn't be leaking memory using the pattern I described (calling StartAsync in the Closed event handler). If you see OutOfMemoryException errors there, we should loop at getting more information. If you're able to capture a process dump when the OutOfMemoryException is thrown, I can help identify what objects are filling up memory to help identify the source of the leak.

Unfortunately I've just stopped the debugging session.
It took me 4 hours to reproduce it so I think tommorow, maybe, I'll be able to provide you the process
dump.
But, at first, let's see if we are on the same wavelength.
It is not the Closed event handler that I am trying to connect when the exception fires.
The Closed event is fired when the server goes offline after the client has been connected (once).
For every one of the next connecting attemtps, I catch the exception thrown by StartAsync() method.
Now, in this catch i tried 2 ways of reconnecting with behaviors reported above:

Just reconnecting by calling StartAsync() - as described in post withoutCleanup eventually getting into

An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in System.Private.CoreLib.dll
External component has thrown an exception.

Attempt to clean the HubConnection object, rebuild it and afterwards calling StartAsync() - as described in post withCleanup eventually getting into

Exception thrown: 'System.OutOfMemoryException' in System.Private.CoreLib.dll

Just reconnecting by calling StartAsync() - as described in post withoutCleanup eventually getting into

If you are retrying from a failed StartAsync call, this is the right approach, you should just try calling StartAsync again. That exception message is very odd, do you have any other information about it? (Stack Trace, etc.) Could you capture a process dump from when the exception occurs?

Attempt to clean the HubConnection object, rebuild it and afterwards calling StartAsync()

This shouldn't be necessary, as I said earlier, but it also shouldn't be blowing out your memory. This is another place where a process dump would be useful.

OK,
I'm happy I was not doing it completely wrong then. @BrennanConroy's post  make sense anyway.
I'll get back with dumps, but for now I have saved some StackTraces of the exceptions I caught just before the crashes.
I have logged the StackTraces for both cases. They are a little bit long. I don't know how to post them elseways.

StackTrace for

Just reconnecting by calling StartAsync()

Server timeout (9000.00ms) elapsed without receiving a message from the server.

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Sockets.Client.HttpConnection.<StopAsyncCore>d__55.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Sockets.Client.HttpConnection.<StartAsync>d__40.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SignalR.Client.HubConnection.<StartAsyncCore>d__26.MoveNext()
... 1 340 times
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SignalR.Client.HubConnection.<StartAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at myApp.SignalRClient.<StartConnectionAsync>d__35.MoveNext()

The thread 0x634 has exited with code 0 (0x0).
The thread 0x1580 has exited with code 0 (0x0).

Exception thrown: 'System.Runtime.InteropServices.COMException' in System.Private.CoreLib.dll
WinRT information: A connection with the server could not be established

Exception thrown: 'System.Runtime.InteropServices.COMException' in System.Net.WebSockets.Client.dll
WinRT information: A connection with the server could not be established

Exception thrown: 'System.Runtime.InteropServices.COMException' in System.Private.CoreLib.dll
WinRT information: A connection with the server could not be established

An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in System.Private.CoreLib.dll
External component has thrown an exception.

StackTrace for

Attempt to clean the HubConnection object, rebuild it and afterwards calling StartAsync()
Although for the OutOfMemory the StackTrace I am not sure how relevant it is.

Unable to connect to the remote server

   at System.Net.WebSockets.WebSocketHandle.<ConnectAsyncCore>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.WebSockets.ClientWebSocket.<ConnectAsyncCore>d__16.MoveNext()
... 6 times
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.SignalR.Client.HubConnection.<StartAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at myApp.SignalRClient.<StartConnectionAsync>d__35.MoveNext()
Exception thrown: 'System.OutOfMemoryException' in System.Private.CoreLib.dll

An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in System.Private.CoreLib.dll
External component has thrown an exception.

This one is the most suspicious one. The others are all the connection failure exceptions I'd expect to see if you have the server off for this test. There's no stack trace or anything providing any more context on it.

If you can inspect the ErrorCode property of the SEHException that's being thrown, that would help. I believe you can probably get it from the UnhandledException event on Windows.UI.Xaml.Application

Have you been able to use the UnhandledException event to gather any more information on the issue? Figuring out where the exception is coming from will help us narrow down exactly what's wrong. It looks like you've got the necessary catch blocks in place, so I don't know why it would be escaping to the UnhandledException event.
 Those could throw these exceptions as well, if the connection is down and you try to send a message.

Status:
After I talked to you I tried to reproduce it for 2 days in a row.
1st day - did not reproduce
2nd day - got a System Out of Memory, but the scenario is not valid. HubConnection was rebuild each time it tried to connect WITHOUT prior HubConnection disposal/cleanup.
For the exception on the 2nd day I have the memory dump. It is about 200 MB in size.

UnhandledException - I will used that too. Currently I only set Handled on true. I will have the exception printed on that one too.

The SEHException. I will keep trying to reproduce it.

The OOM might be https://github.com/aspnet/SignalR/pull/1104.

Hi everyone.
I've got again the

Cannot start a connection that is not in the Disconnected state.

No UnhandledException caught.
Scenario:
I had online both the server and client for about 3 hours.
Then I took the server down for about 7 hours while client was running.
After the 7 hours, I started the server and the mentioned exception appeared.
I was using the code that was:

Just reconnecting by calling StartAsync()

and not the one that:

Attempt to clean the HubConnection object, rebuild it and afterwards calling StartAsync()

I did not stop any of the processes so if you want me to provide any additional info, hopefully I can do it.

Offer still available.

I got the System.Runtime.InteropServices.SEHException again. This time only after about 45 minutes of server downtime.
I was just reconnecting (not re-build the HubConnection).
I also save a process dump or it. How can I send it?
Some info (there is some info after the below table):
| Name | Value | Type
-- | -- | -- | --
◢ | $exception | {System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.} | System.Runtime.InteropServices.SEHException
  | ▶ Data | {System.Collections.ListDictionaryInternal} | System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
  | ErrorCode | 0x80004005 | int
  | HResult | 0x80004005 | int
  | HelpLink | null | string
  | ▶ IPForWatsonBuckets | {0} | System.UIntPtr
  | ▶ InnerException | null | System.Exception
  | IsTransient | false | bool
  | Message | "External component has thrown an exception." | string
  | RemoteStackTrace | null | string
  | Source | null | string
  | StackTrace | null | string
  | TargetSite | null | System.Reflection.MethodBase
  | WatsonBuckets | null | object
  | _HResult | 0x80004005 | int
  | _className | null | string
  | ▶ _data | {System.Collections.ListDictionaryInternal} | System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
  | _dynamicMethods | null | object
  | _exceptionMethod | null | System.Reflection.MethodBase
  | _exceptionMethodString | null | string
  | _helpURL | null | string
  | ▶ _innerException | null | System.Exception
  | ▶ _ipForWatsonBuckets | {0} | System.UIntPtr
  | _message | "External component has thrown an exception." | string
  | _remoteStackIndex | 0x00000000 | int
  | _remoteStackTraceString | null | string
  | _source | null | string
  | _stackTrace | null | object
  | _stackTraceString | null | string
  | _watsonBuckets | null | object
  | _xcode | 0xe0434352 | int
  | ▶ _xptrs | {0} | System.IntPtr
  | ▶ Static members |   |
Looking after that ErrorCode (0x80004005) on my saved error logs, I've seen it in the past in following shape:
Unable to connect to the remote server --> System.Net.WebSockets.WebSocketException (0x80004005): Unable to connect to the remote server ---> System.Exception: CannotConnect ---> System.Runtime.InteropServices.COMException: The text associated with this error code could not be found.

A connection with the server could not be established

I let processes running again so if you need any additional information, just ask.

The dump may be useful but given the lack of a stack trace in your exception I'm not sure how useful it will be. Since I'd imagine it's fairly large, you would need to upload it to some file sharing service (OneDrive, DropBox, etc.) and send me a link (preferably over email, I see you've already reached out over email).
The lack of a stack trace will make this very difficult to diagnose though. Can you verify that you have try...catch blocks wrapping all your StartAsync, InvokeAsync, SendAsync, etc. calls on HubConnection? In theory, any of them could throw this error if the server goes down, and if it goes unhandled, it appears UWP doesn't preserve the stack trace properly.

OK.
I've sent a link to dump.
They are all caught.
But I will try again maybe next time will have a proper stack trace.

Can you clarify if you are seeing these exceptions crashing your app or if they are just appearing in the Uncaught Exception event? These exceptions would likely be thrown from one of our background threads, but they shouldn't be crashing your application. I just want to get an idea of what you are looking to change here. If the server is offline, obviously SignalR will have failures connecting to the server.

The final exception, SEHException it is crashing the app.
I am not sure I mentioned that I am running the app on a Dragonboard 410C, if it makes any difference.

I am also having issues trying to reconnect.
@anurse Simply calling hubConnection.StartAsync() does not work. I tried using a timer to handle reconnection, but the behavior is very strange: it looks like parallel ghost connections are awaken on StartAsync. So, as I see it, recreating the connection is probably a must.
Would it be possible to make the HubConnection to cleanup its internal state during "StartAsync" call?

@icistrate can you file a new issue with a sample to reproduce the issue you're seeing? If you can show what you mean by ghost connections (memory traces, network statistics, etc.) that would help. We'd also need client logs as described by the Diagnostics Guide to see if we can track this down.

Would it be possible to make the HubConnection to cleanup its internal state during "StartAsync" call?

HubConnection cleans up it's internal state when stopped, either due to the connection being disconnected by the server, or when StopAsync is called. If you're seeing other behavior, we definitely want to know about that.

@alexiordan I manage to create working version. You can check out my blog post about it here:
https://www.radenkozec.com/net-core-signalr-automatic-reconnects/

@alexiordan Regarding Disposing I got tip from @anurse that I don't need to call dispose.
I test it only for few minutes and it works without a issue.
Did not done extensive testing.
I hope you and some other guys will also test it and leave me your feedback.

For minutes it works for me too :-)
I mainly do the same thing as your code does this is why I am curious.
But as soon as I will have any results I'll post them here.

In my implementation (using a simple timer below) I also had to DisposeAsync the connection, else I would have new set of callbacks listening on the connection each time StartAsync is executed.
@radenkozec Thanks for the tips of using Polly.. hope I will find the time to improve my code one day.

@alexiordan Did not seen that I don't need to recreate HubConnection. Might work need to test that.
@icistrate Here I got that I don't need to call DisposeAsync https://github.com/aspnet/SignalR/issues/2845

I remember trying to use StopAsync and still getting that strange behavior with the non-disposed increasing callbacks.

I assume you found that by using a memory profile? We don't see that behavior in our testing, can you provide a sample that reproduces the issue and post it in a new issue so we can investigate? Calling StopAsync should release all per-connection resources, so SignalR's memory consumption shouldn't be increasing with each restart.

@alexiordan @icistrate I updated my code to re-use HubConnection.

Why can't we just get some reasonable / simple built-in functionality to do this?
  hubConnectionBuilder.withReconnectStrategy({ reconnect: true, maxReconnectTime: 20, hardFailureCallback: () => ... });

Surely an option to HubConnectionBuilder with some simple options wouldn't take much and would lead to much better out of the box performance.
This is exactly the type of project where trusting people to do it right is going to backfire! Especially when using Azure SignalR I would have thought that some well considered heuristics would be essential to avoid a 'reconnect storm' or accidental infinite loops causing a 'reconnect tornado' from a single client.

@simeyla i really like that idea, frankly, of providing a strategy for reconnections. See issue #1057 as it is marked with a 3.0.0 milestone so we're considering it for our next iteration. I like your signature above, though, it is an interesting approach to solving the issue that's relatively consistent with the other methods that hang from hubConnectionBuilder.

Yes, we think it's important to implement something since this scenario is so common. We didn't want to rush the implementation in the first version since reconnect has been a large source of problems in the previous version of SignalR.


[FLINK-26193] Commit generated CRD into Git repo

adding the CRD into Git repo to better track the schema changes and enable helm installs without compiling the source
picked Method 1 from https://helm.sh/docs/chart_best_practices/custom_resource_definitions

cc @gyfora @tweise @wangyang0918


Shadow that follows you around.

a. Shadow started following me around after teleporting out of barrows.
b. Windows
Intel i9-9900k CPU
32 GB RAM
64 bit system
Nvidia GeForce RTX 2060 SUPER
c. rectangle shadow started following me around after teleporting out of barrows chest room. Turning the shadows setting off and on fixes it. From what I've seen so far there's an about 50% chance of it happening.

Can you confirm if this is still happening to you as of the latest update?

It is not happening anymore. Thank you for your hard work
On Sat, 12 Feb 2022, 08:54 Kyle, @.***> wrote:

Can you confirm if this is still happening to you as of the latest update?
—
Reply to this email directly, view it on GitHub
https://github.com/RS117/RLHD/issues/30#issuecomment-1037051762, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AVTS2AG6PVZDZHIOVRDJQXLU2YG3XANCNFSM5D6QNNSA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


JSON of multiple plan for a single service

Hi,
I want to add JSON of multiple plans for a single service in abacus-cf-services manifest under "SERVICES"
Example: service name: Redis, plan name: shared-vm and dedicated-vm.
Please suggest me the syntax for its successful execution.
Right now I am using the following syntax:
"Redis": {
"plans": ["shared-vm", "dedicated-vm"]
},
Thanks and Regards,
Aarti K.

Hi
I have tried it for mysql service same as you suggested for redis
SERVICES: '{
"redis":{"plans":["shared-vm","dedicated-vm"]},
"mysql":{"plans":["super-basic","100mb","1gb"]},
"cassandra":{"plans":["developer","production"]}
}'
But getting error:
Apr 2018 06:09:05 GMT","etag":"W/"4ae-CLaZnlJAsK0YkrpukIvsqpTwQK0"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-usage-collector","x-app-version":"1.0.0","x-instance-id":"5c7e8827-2fad-4fe9-77cb-399b","x-insta
nce-index":"0","x-powered-by":"Express","x-process-id":"106","x-response-time":"115.857ms","x-uptime":"611.023","x-vcap-request-id":"fc650796-ff46-4620-61cc-a5f78c20d725","connection":"keep-alive"},"body":{"message":{"statusCode":404,"he
aders":{"date":"Thu, 19 Apr 2018 06:09:05 GMT","etag":"W/"de-Otw/6lHvxcZzZSV+99V7ILusugk"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-provisioning-plugin","x-app-version":"1.0.0","x-instance-id":"4b02f344-8a
49-44c7-575f-331e","x-instance-index":"0","x-powered-by":"Express","x-process-id":"85","x-response-time":"3.580ms","x-uptime":"696.367","x-vcap-request-id":"274fde49-4846-459a-42c1-964aa0791a1e","connection":"keep-alive"}},"statusCode":4
04,"headers":{"date":"Thu, 19 Apr 2018 06:09:05 GMT","etag":"W/"de-Otw/6lHvxcZzZSV+99V7ILusugk"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-provisioning-plugin","x-app-version":"1.0.0","x-instance-id":"4b02f
344-8a49-44c7-575f-331e","x-instance-index":"0","x-powered-by":"Express","x-process-id":"85","x-response-time":"3.580ms","x-uptime":"696.367","x-vcap-request-id":"274fde49-4846-459a-42c1-964aa0791a1e","connection":"keep-alive"}}}
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.054Z abacus-perf 81 Received message [ 'metrics', 'call' ]
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.054Z abacus-perf 81 Accumulating stats for function usage
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.054Z abacus-perf 81 latency 225, err Error: Error reporting usage; error: Error: Failed reporting usage. Consecutive failures: 2; response: {"statusCode":404,"header
s":{"date":"Thu, 19 Apr 2018 06:09:05 GMT","etag":"W/"4ae-CLaZnlJAsK0YkrpukIvsqpTwQK0"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-usage-collector","x-app-version":"1.0.0","x-instance-id":"5c7e8827-2fad-4fe9
-77cb-399b","x-instance-index":"0","x-powered-by":"Express","x-process-id":"106","x-response-time":"115.857ms","x-uptime":"611.023","x-vcap-request-id":"fc650796-ff46-4620-61cc-a5f78c20d725","connection":"keep-alive"},"body":{"message":{
"statusCode":404,"headers":{"date":"Thu, 19 Apr 2018 06:09:05 GMT","etag":"W/"de-Otw/6lHvxcZzZSV+99V7ILusugk"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-provisioning-plugin","x-app-version":"1.0.0","x-insta
nce-id":"4b02f344-8a49-44c7-575f-331e","x-instance-index":"0","x-powered-by":"Express","x-process-id":"85","x-response-time":"3.580ms","x-uptime":"696.367","x-vcap-request-id":"274fde49-4846-459a-42c1-964aa0791a1e","connection":"keep-ali
ve"}},"statusCode":404,"headers":{"date":"Thu, 19 Apr 2018 06:09:05 GMT","etag":"W/"de-Otw/6lHvxcZzZSV+99V7ILusugk"","vary":"X-HTTP-Method-Override","x-app-index":"0","x-app-name":"abacus-provisioning-plugin","x-app-version":"1.0.0","x
-instance-id":"4b02f344-8a49-44c7-575f-331e","x-instance-index":"0","x-powered-by":"Express","x-process-id":"85","x-response-time":"3.580ms","x-uptime":"696.367","x-vcap-request-id":"274fde49-4846-459a-42c1-964aa0791a1e","connection":"ke
ep-alive"}}}, timeout 0, reject false, circuit closed
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.054Z abacus-perf 81 0 ok, 1 errors, 0 timeouts, 0 rejects, 4 count buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z abacus-perf 81 2 ok, 2 errors, 1 health buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z abacus-perf 81 Emitting stats for function usage
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z e-abacus-paging 81 Processing resource {"metadata":{"guid":"ecbde178-5f31-4ddc-aed4-ec2d9ef8b9c0","url":"/v2/service_usage_events/ecbde178-5f31-4ddc-aed4-ec2d9e
f8b9c0","created_at":"2018-04-19T06:02:48Z"},"entity":{"state":"CREATED","org_guid":"ebf96e18-6c27-4e60-accc-15356112af5e","space_guid":"66d7a626-1ff6-442c-88de-4c279a288026","space_name":"testing","service_instance_guid":"ecbde178-5f31-
4ddc-aed4-ec2d9ef8b9c0","service_instance_name":"mysqlapp1","service_instance_type":"managed_service_instance","service_plan_guid":"52787228-9f9b-45b1-bff0-afecf697955c","service_plan_name":"100mb","service_guid":"9cc14ad4-138c-4803-930a
-ebcc3f71f216","service_label":"mysql"}} failed
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z abacus-perf 81 Received message [ 'metrics', 'call' ]
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z abacus-perf 81 Accumulating stats for function paging.resources
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.055Z abacus-perf 81 latency 226, err Error: Processing resource {"metadata":{"guid":"ecbde178-5f31-4ddc-aed4-ec2d9ef8b9c0","url":"/v2/service_usage_events/ecbde178-5
f31-4ddc-aed4-ec2d9ef8b9c0","created_at":"2018-04-19T06:02:48Z"},"entity":{"state":"CREATED","org_guid":"ebf96e18-6c27-4e60-accc-15356112af5e","space_guid":"66d7a626-1ff6-442c-88de-4c279a288026","space_name":"testing","service_instance_g
uid":"ecbde178-5f31-4ddc-aed4-ec2d9ef8b9c0","service_instance_name":"mysqlapp1","service_instance_type":"managed_service_instance","service_plan_guid":"52787228-9f9b-45b1-bff0-afecf697955c","service_plan_name":"100mb","service_guid":"9cc
14ad4-138c-4803-930a-ebcc3f71f216","service_label":"mysql"}} failed, timeout 0, reject false, circuit closed
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 0 ok, 1 errors, 0 timeouts, 0 rejects, 4 count buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 2 ok, 2 errors, 1 health buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 Emitting stats for function paging.resources
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 Received message [ 'metrics', 'call' ]
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 Accumulating stats for function paging.pages
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.057Z abacus-perf 81 latency NaN, err undefined, timeout 0, reject false, circuit closed
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.058Z abacus-perf 81 1 ok, 0 errors, 0 timeouts, 0 rejects, 2 count buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.058Z abacus-perf 81 1 latencies, 3 latencies buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.058Z abacus-perf 81 2 ok, 0 errors, 1 health buckets
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.058Z abacus-perf 81 Emitting stats for function paging.pages
2018-04-19T06:08:41.05+0000 [APP/PROC/WEB/0] OUT 2018-04-19T06:08:41.058Z abacus-cf-services 81 Reporting interval set to 5001 ms

Can you turn on the abacus-request logs with DEBUG=e-abacus*,abacus-request?

Yes, It was already turned on
DEBUG: e-abacus-,abacus-,e-*

Attaching recent logs screenshot of abacus-cf-services

Services bridge maps the info in SERVICES to the service-hours plan. Which one of Failed to store mappings or Service mappings have been imported messages appear in the logs?
This should determine if the map was successful or not.

Another thing that comes to mind is that you need to restart the services bridge after the SERVICES change to trigger this mapping import.

I did not find "Failed to store mappings or Service mappings have been imported" logs
but abacus-cf-services tried to send JSON data to collector, I think It is getting failed

We merged abacus broker into the repo recently. What's the version (commit SHA) of Abacus you are using?

tag V1.0.0

The specific issue you see means that provisioning plugin does not know about the SERVICES configuration you are using.
We did a rewrite of the bridge and squashed lots of bugs in 1.1.0. On master service bridge now supports service update events (from plan A to plan B) and we merged cf-abacus-broker in.
I would recommend trying out master and as a minimum please deploy latest plugins + bridges.

We recently released v1.1.3
Closing, but feel free to reopen if you have more questions or issues.


Cannon open light editor

Opened a pre-existing level that had been resized over it's time...

Opened a brand new leveland tried to open light editor:

It is important to note that my level editor projects is through a symlink, it worked fine before the update but this may be what caused the issue or it might just not work.
Also the RWE+ says that it crashed even though it still is running?
Traceback (most recent call last):
File "widgets.py", line 160, in blit
TypeError: MN.LE() takes 1 positional argument but 2 were given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "LevelProcess.py", line 122, in mainprocessupdate
File "LevelProcess.py", line 554, in update
File "MN.py", line 20, in blit
File "menuclass.py", line 841, in blit
File "menuclass.py", line 438, in blit
File "widgets.py", line 162, in blit
File "MN.py", line 36, in LE
File "menuclass.py", line 80, in sendtoowner
File "LevelProcess.py", line 340, in recievemessage
File "LE.py", line 42, in init
TypeError: unsupported operand type(s) for +: 'WindowsPath' and 'str'
This is why RWE+ crashed^^^
Sorry
I hope this is all the needed information
Everything else still works perfectly

The hotkeys menu is also broken

The light editor is infact fixed for me, so thank super duper very much!

no problem but that's something i should've found out before making previous release


build(fly): build before deploy

includes the changes of KCD from https://github.com/remix-run/remix/pull/930
from: https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type
from: https://www.conventionalcommits.org/en/v1.0.0/
from: https://cheatography.com/albelop/cheat-sheets/conventional-commits/
from: https://gist.github.com/lisawolderiksen/a7b99d94c92c6671181611be1641c733

Yea sorry I was kinda distracted by making my first PR via gh-cli and forgot to add my reasoning
And for the branch, there isn't a way to move this right? So I close this one and make a new one on the other branch right?

That would be an easier way, yeah

Alright, before opening the new one I thought it might be better to check in, as we already have this discussion, sharing my thinking.
So, to me it was quite confusing, that running npm run deploy wouldn't update my website 😳 I know it's kinda my fault not properly checking what the npm scripts are doing, but there's also no mention of ever running npm run build in the Readme.
Therefore I propose either adding it to the readme or running it automatically before deploy.
Personally I prefer the latter as I don't have much reason to deploy without building, but there might be other preferences I guess.
As for what other templates are doing, the Workers one builds already before deploying and others don't require builds or deploys, as far as I can tell.
So closing this one, awaiting feedback on if and how to make a new PR to dev

Thanks for the feedback. I agree we should make a change. I just want to make sure we're the same in every template. Could you open an issue about it so it can be discussed and a decision can be made?


Make connection errors nicer.

Only recommend --accept-invalid-certificates if not already set.
Exit gracefully instead of panicking: this means also the user's
application is terminated, not just mirrord's layer.
Wrap graceful_exit code in a block so that it can be used as a
whole match arm, add (unreachable) panic at the end, so that it
can be used where the return type is !.

bors r+


Removing must-gather image from makefile

Discarding the build and push of NMO must-gather image.

/test 4.15-openshift-e2e

/retest


Update 00_Server_Requirements.md

Add NGINX installation tutorial

Thanks for your contribution, however this is too specific to a certain OS for the purposes of this documentation.


logging shows timestamp on each (control) character

/kind bug
Description
Warning about a not-wellformed tag when parsing language.
Steps to reproduce the issue:
1st window: podman --log-level debug run -it --rm --read-only busybox sh (returns af49b446cf34...)
2nd window: podman logs -ft af49b446cf34
Describe the results you received:
019-03-01T04:53:12.517290493Z / # 2019-03-01T04:53:33.565339544Z 2019-03-01T04:53:33.626659047Z 2019-03-01T04:53:33.687523235Z 2019-03-01T04:53:33.708198635Z 2019-03-01T04:53:33.767723803Z 2019-03-01T04:53:33.827842903Z 2019-03-01T04:53:33.8487504Z 2019-03-01T04:53:33.908428489Z 2019-03-01T04:53:33.967692938Z 2019-03-01T04:53:33.991472119Z 2019-03-01T04:53:34.051359604Z 2019-03-01T04:53:34.111670887Z 2019-03-01T04:53:34.132360549Z 2019-03-01T04:53:34.192956436Z 2019-03-01T04:53:34.252802312Z 2019-03-01T04:53:34.334168968Z 2019-03-01T04:53:34.393670188Z 2019-03-01T04:53:34.487301865Z 2019-03-01T04:53:34.546584874Z 2019-03-01T04:54:08.993315313Z 2019-03-01T04:54:12.025890929Z 2019-03-01T04:54:16.420445Z 2019-03-01T04:54:16.947456176Z 2019-03-01T04:54:17.006923129Z 2019-03-01T04:54:17.139674739Z 2019-03-01T04:54:17.668521897Z 2019-03-01T04:54:17.728321548Z 2019-03-01T04:54:17.788493409Z 2019-03-01T04:54:17.849062338Z 2019-03-01T04:54:17.909409104Z 2019-03-01T04:54:17.969603528Z 2019-03-01T04:54:18.028831379Z 2019-03-01T04:54:18.087902127Z 2019-03-01T04:54:18.147525757Z 2019-03-01T04:55:03.98441397Z
While typing interactively inside the container, a timestamp get pasted on each keystroke.
Describe the results you expected:
One timestamp at each new line.
Additional information you deem important (e.g. issue happens only occasionally):
# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Output of podman version:
podman version 1.2.0-dev

Output of podman info --debug:
debug:
  compiler: gc
  git commit:<PHONE_NUMBER>5a84c5b78dbe46362cb678807d7509
  go version: go1.11.5
  podman version: 1.2.0-dev
host:
  BuildahVersion: 1.7.1
  Conmon:
    package: Unknown
    path: /usr/libexec/podman/conmon
    version: 'conmon version 1.14.0-dev, commit: 8de2ffc9e0809e98a72b93e35b74b8e5d4b0c29c'
  Distribution:
    distribution: debian
    version: "9"
  MemFree:<PHONE_NUMBER>0
  MemTotal:<PHONE_NUMBER>0
  OCIRuntime:
    package: Unknown
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc6+dev
      commit: f79e211b1d5763d25fb8debda70a764ca86a0f23
      spec: 1.0.1-dev
  SwapFree:<PHONE_NUMBER>
  SwapTotal:<PHONE_NUMBER>
  arch: amd64
  cpus: 8
  hostname: pgsql
  kernel: 4.19.0-0.bpo.2-amd64
  os: linux
  rootless: false
  uptime: 26h 48m 2.64s (Approximately 1.08 days)
insecure registries:
  registries: []
registries:
  registries:
  - docker.io
  - registry.fedoraproject.org
  - registry.access.redhat.com
store:
  ConfigFile: /etc/containers/storage.conf
  ContainerStore:
    number: 0
  GraphDriverName: overlay
  GraphOptions: null
  GraphRoot: /var/lib/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 0
  RunRoot: /var/run/containers/storage
  VolumePath: /var/lib/containers/storage/volumes

Additional environment details (AWS, VirtualBox, physical, etc.):
VirtualBox 6 on Windows 10, running Debian 9 (stable)

I think this may be related to our handling of control characters with logs, but not certain yet.

Not control characters.
We seem to print each character as it comes in, with full timestamp, when timestamps are requested.
Probably an artifact of how we read from conmon?
It doesn't help that there are seemingly no newlines being printed, either.

Partial fix in #2513 - will greatly improve readability by ensuring that each timestamp is on a separate line. Does not deal with user input appearing one character at a time, a timestamp for each, though.

@mheon Sorry for asking this, but could you right pad with zeros?
See the hashtag
2019-03-03T21:11:29.460432834-05:00 [root@d5003ddef6a5 /]#
2019-03-03T21:11:29.60151061#-05:00
2019-03-03T21:11:29.602178337-05:00

This might it even more readable, since the columns won't jump - or does this degrade performance too much?

@tobwen Went ahead and fixed the actual issue (the entire line should now appear under a single timestamp), so we should be good

@mheon But can you right-pad the timestamp please? I hate jumping columns :D

Alternative question: why are some timestamps missing a digit? Is it omitting zeroes, or is there something else going on here?
I'll take a look

From the Go documentation: The RFC3339Nano format removes trailing zeros from the seconds field and thus may not sort correctly once formatted.
And that, there, explains our missing zeroes.

https://stackoverflow.com/questions/25637440/how-to-pad-a-number-with-zeros-when-printing

#2522 with the final formatting fix

Thanks @-->-->----


Use kubefed

It looks like kubefed (beta as of 1.6) eliminates and simplifies a lot of the steps described in this tutorial. Should this repo move to using kubefed instead or is the intent to keep is as is to explain the inner workings of how Federation works?

kubefed hides the details people need to know. So the goal is to document all the things that kubefed does under the covers.


Remove V1 related warnings from V1 Rest API docs 3.1.0

Description:
As per the offline discussion held with @bhathiya, it was decided to remove the V1 warnings from V1 REST APIs from 3.1.0 doc space.
Suggested Labels:

Suggested Assignees:

Affected Product Version: 3.1.0
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Fixed with https://github.com/wso2/docs-apim/pull/1151


Rethinking stateful time APIs to avoid surprising behaviors

Status quo
Logging to a recording is controlled by RecordingStreams.
RecordingStream are Send & Sync, i.e. they can be shallow-cloned (refcounted) and sent to other threads where they can then be used concurrently.
re_sdk provides facilities to help keep track of per-process and per-thread RecordingStreams.
Those facilities are mostly used by the Python bindings, though nothing prevents using them in Rust & C++ too.
Independently of recording streams, we also have per-thread clocks.
These clocks keep track of one time per-Timeline per-RecordingStreamId per-ThreadId: i.e. something along the lines of HashMap<(ThreadId, RecordingStreamId, Timeline), Time>.
These times can be set in a stateful manner using the RecordingStream::set_time_* family of methods.
When it's time to log something, a recording stream will query the clock in thread-local storage and ask for the time on all timelines for the current (ThreadId, RecordingStreamId) pair.
Problems
This implicit relationship between threads and RecordingStreams can lead to confusion and/or surprising behavior.
Example:

You call rec.set_time_sequence("frame", 42) on your main thread.
You send a bunch of data as well as a copy of rec to another thread where the data gets pre-processed then logged to rec.
You get confused: the data doesn't have a "frame" timestamp associated with it (the thread-local clock on your post-processing thread doesn't know about it!).

You can imagine all kinds of scenarios like the above. The root cause is always the same though: thread-local clocks vs. recording streams vs. the interaction between those.
In Rust & C++, you generally always work directly with RecordingStream handles of some kind, so at least the confusion stops there.
But in Python, it can actually gets worse:

You generally use the global recording-stream, which is implicitly set when calling rr.init().
Although sometimes you may be using a thread-local recording-stream (via the with syntax).
And nothing prevents you to just use a recording stream handle, like you'd do in Rust/C++!

Finally, each RecordingStream keeps track of its internal, process-global tick: i.e. the log_tick timeline is always global no matter what!
Proposal
My proposal would be to get rid of thread-local clocks altogether, and instead put a clock in each and every RecordingStream.
Furthermore, clocks would not be refcounted:
#[derive(Clone)]
pub struct RecordingStream {
    clock: Clock,
    inner: Arc<Option<RecordingStreamInner>>,
}

That way, cloning a RecordingStream would still be relatively cheap (and more importantly, wouldn't clone the underlying batching and I/O pipelines) but would now behave more like a fork: the clone recording-stream just starts where its parent state left off.

This proposal makes sense to me. Something else worth considering: we eventually want to provide an API in which users can explicitly control the timepoint associated with their data instead of grabbing it from the stream context.
Pretty sure this proposal moves us in a direction that helps with that goal. (Probably a stetch, but you could even imagine implementing it as a special way of creating a RecordingStream with a static clock). Either way, just figured it would be helpful to keep in mind while implementing this.

This proposal makes sense to me. Something else worth considering: we eventually want to provide an API in which users can explicitly control the timepoint associated with their data instead of grabbing it from the stream context.
Pretty sure this proposal moves us in a direction that helps with that goal. (Probably a stetch, but you could even imagine implementing it as a special way of creating a RecordingStream with a static clock). Either way, just figured it would be helpful to keep in mind while implementing this.

https://github.com/rerun-io/rerun/issues/3841


Relax upper bounds so we are stack-compatible

aeson-0.10
hoauth2-0.5
http-types-0.9

Fixes #48

Saw a successful build with
stack build --resolver nightly-2016-01-08

Cool. This looks good to me.


Unreadable on light theme

TUI is almost unreadable with light color theme in terminal

Hi! Thanks for flagging. We just pushed a branch with basic support for light backgrounds.

Thanks again for the heads up! The fix has has been merged into main and will be available in the next release.


Remove circular JSON references for error debugging

Closes #158
Towards:

#158

Debugging errors is a nice idea, but not helpful for HttpErrors that contain circular references that make the action throw an error instead. 😅
Let's just remove it for cleanliness. 🧹

Is it possible to put this fix on v1.x? My enterprise version doesn't support v2 as of yet


nostr zap shows pending, then disappears

Nostr zap shows pending, then disappears from Activity. No change in available balance. No explanation or error message.
mutiny-logs.txt

Looks like the payment is timing out. We have been having some payment issues to alby which it seems where the payment was going.


1360 admins can add delete promote and demote members in an organization on the organizations member page

Changes

Implements changes from PR(change permission groups hr_group, primary_group -> admin_group, member_group)
Add mutation to delete membership

Current problem: Clientside doesnt get updated when changes are made. (i.e when user is deleted or added). Not sure how to fix this


.NET Core 3.1 - Kestrel HTTP/2 performance issue with FDD on Ubuntu 18.04

Describe the bug
Download speed is too low when HTTP/2 is used with FDD.
I'm not sure but I think this happened after dotnet-sdk-3.1 was installed - revert of TargetFramework to netcoreapp3.0 didn't help.
SCD publish works well.
To Reproduce
dotnet publish -c Release -r ubuntu.18.04-x64 --self-contained=false
webBuilder.UseKestrel((host, options) =>
{
    var port = host.Configuration.GetValue<int>("KestrelSettings:port");
    var filename = host.Configuration.GetValue<string>("KestrelSettings:certfilename");
    var password = host.Configuration.GetValue<string>("KestrelSettings:certpassword");
    options.Listen(IPAddress.Any, port, listenOptions =>
    {
        listenOptions.Protocols = HttpProtocols.Http1AndHttp2;
        listenOptions.UseHttps(filename, password);
    });
});

[HttpGet]
public IActionResult DownloadZipFile(string fileName)
{
    var path = Path.Combine("/home/user/files", fileName);
    return PhysicalFile(path, MediaTypeNames.Application.Zip, fileName, true);
}

Further technical details

ASP.NET Core 3.1
Azure Pipelines build with .NET Core 3.1 SDK
dotnet --info:

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/3.1.100/

Host (useful for support):
  Version: 3.1.0
  Commit:  157910edee

.NET Core SDKs installed:
  2.2.402 [/usr/share/dotnet/sdk]
  3.0.101 [/usr/share/dotnet/sdk]
  3.1.100 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.                                                                  All]
  Microsoft.AspNetCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.                                                                  App]
  Microsoft.AspNetCore.App 3.0.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.                                                                  App]
  Microsoft.AspNetCore.App 3.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.                                                                  App]
  Microsoft.NETCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Haha classic...
Problem suddenly gone after I played with ExecStart value of systemd unit.
I changed it from calling an executable to /usr/bin/dotnet dll call and download speed is restored to normal value.
But when I returned old value speed didn't decrease. Also it affected running production version of API which wasn't even restarted.
I have no clue what's going on.

Can you provide a runnable sample that repros the issue? We can't think of any issue that would cause the download speed to differ in these cases. The start-up time might change, but as long as you were specifically measuring the stable-state download speed I can't think of what would be different.

@anurse I couldn't reproduce this behavior again and now everything works good. Most likely it was some problem with Ubuntu, because it was affecting all apps using HTTP/2, so I am closing this


Bind Error?

Error: bind EADDRNOTAVAIL <IP_ADDRESS>:1910
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at dgram.js:221:18
at _combinedTickCallback (internal/process/next_tick.js:77:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
Any known ways to solve this one?

Can you post your code or provide us with a sample that can reproduce your issue? What version of node are you using on what platform?
What seems to be the root problem is that you cannot bind to that IP address.

I am using Node version 6.9.4
I am trying to run the code in the Examples folder of this repo. This is my code in my index.js file, so I feel like it should be working. I recognize that it isn't able to bind the IP address at the point in the library code where it's trying to create an SSDP server (I THINK), but no matter what IP I put into the original source code (for starting the SSDP server) it says its not available or it's in use.
index.js:
`var express = require('express');
var router = express.Router();
var upnp = require('upnp-device');
var myDevice = require('./MyDevice');
var device = upnp.createMyDevice(myDevice, 'My Device');
device.on('ready', function() {
device.Announce();
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;`

I was able to reproduce this with node v4 and v6. Node v0.10 did not have the problem yet. I nailed it down to a call to bind. I made a fix and this seems to work on node v4 and v6. The fix is included in a new version that was published to npm just now (v0.1.9).


Exception after dotnet electronize start

Linux, fedora 27
$ dotnet --version
2.0.2

$ node --version
v8.6.0

$ which electron-packager
/usr/bin/electron-packager

$ touch ./Properties/launchSettings.json
$  dotnet electronize init
Adding our config file to your project...
Search your .csproj to add the needed electron.manifest.json...
Found your .csproj: /home/ilya/edn/edn.csproj - check for existing config or update it.
electron.manifest.json will be added to csproj.
electron.manifest.json added in csproj!
Search your .launchSettings to add our electron debug profile...
Debug profile added!
Everything done - happy electronizing!

$ dotnet electronize start
Start Electron Desktop Application...
Microsoft (R) Build Engine версии <IP_ADDRESS>001 для .NET Core
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

  edn -> /home/ilya/edn/bin/Debug/netcoreapp2.0/win10-x64/edn.dll
  edn -> /home/ilya/edn/obj/Host/bin/

Start npm install...

><EMAIL_ADDRESS>install /home/ilya/edn/obj/Host/node_modules/uws
> node-gyp rebuild > build_log.txt 2>&1 || exit 0

><EMAIL_ADDRESS>postinstall /home/ilya/edn/obj/Host/node_modules/electron
> node install.js

npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

added 195 packages in 5.628s

Invoke electron.cmd - in dir: /home/ilya/edn/obj/Host/node_modules/.bin
bash: строка 1: electron.cmd: команда не найдена

electron.cmd ? Is it a windows batch script?

Ah - this is indeed a bug. The start command ist in the current version Windows only. I try to fix it this weekend.
I only tried Ubuntu in a VM, cloud you maybe do a "dotnet electronize build" and check if you can start the application under /ElectronNET.WebApp/bin/desktop/..." ?

dotnet electronize start fails on Ubuntu the same way that is shown above for Fedora.
I tried "sudo dotnet electronize build" and it fails with the log below.
FWIW, I have node 8.9.0, could it be a part of the problem?
electron -> /home/fuy/learning/netcore/electron/bin/Debug/netcoreapp2.0/ubuntu-x64/electron.dll
electron -> /home/fuy/learning/netcore/electron/obj/desktop/linux/bin/
Start npm install...

<EMAIL_ADDRESS>install /home/fuy/learning/netcore/electron/obj/desktop/linux/node_modules/uws
node-gyp rebuild > build_log.txt 2>&1 || exit 0

sh: 1: cannot create build_log.txt: Permission denied

<EMAIL_ADDRESS>postinstall /home/fuy/learning/netcore/electron/obj/desktop/linux/node_modules/electron
node install.js

/home/fuy/learning/netcore/electron/obj/desktop/linux/node_modules/electron/install.js:48
throw err
^
Error: EACCES: permission denied, mkdir '/home/fuy/learning/netcore/electron/obj/desktop/linux/node_modules/electron/dist'
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: node install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!
Electron Packager - make sure you invoke 'sudo npm install electron-packager --global' at /home/fuy/learning/netcore/electron/obj/desktop/linux manually. Sry.
Build Electron Desktop Application...
Executing electron magic in this directory: /home/fuy/learning/netcore/electron/bin/desktop
Package Electron App for Platform linux...
Cannot find module 'electron' from '/home/fuy/learning/netcore/electron/obj/desktop/linux'

Be aweare that dotnet electonize build require that the electron packer is installed globally via npm.

Electron comes with this electron.cmd, unfortunately we forgot to invoke the "electron" bash script when we are not on Windows. My commit should resolve this and this will be part of v0.0.6.

Ups - the start command still has some windows specifics in it.

Ok - the same "logic" that I use in the build command is now part of the start command as well. With 0.0.6 you (or when you refresh your local sources and clean the NuGet cache (e.g. via th devCleanup inside the CLI project)) it should hopefully work.

I released Version 0.0.6.

You say

"Be aweare that dotnet electonize build require that the electron packer is installed globally via npm."
Using of global node modules is not very good idea. User should not be able to run commands as root.
For what purpose u use global node modules? Just because u can do it?
Can u just use node_modules folder from project?

I opened a new issue regarding the global electron packer - TBH: I don't know if it would also work without the globally installed package. If yes, then I would prefer it as well, but I tried it once and failed, but I can't remember why 😃


Run service first, then wait for the given interval

Change the serviceScript behavior from wait-then-run to run-then-wait.
For long interval, such as several hours, the wait-then-run style will cause a significant delay for running the service, change it to run-then-wait style will let the service run ASAP.
Signed-off-by: Tao Wang<EMAIL_ADDRESS>

If we run all the services first it could cause a lag on startup, especially for users with lots of plugins.
Maybe we could add a new attribute like firstRun that plugins could configure. For instance the package manager has a service that does not need to run on startup, the first time it's used it'll fetch if it doesn't exist, and the interval is just to make sure the cache isn't stale.
We could default it to interval so it's not a major change.
What do you think?

You are right, if a lot of services start at the same time, it might cause a lag.
How about we delay the call of .start() for a random period time at the first? For example, we can call the .start() at the first time by setTimeOut(xxxx, Math.floor(Math.random() * 30000)), then those services will not be started at the same time, they will be started at a random point in that 30 secs period. If we spread the load in the time period, then it shouldn't cause much lag.

I'm not sure random is great either. I can't think of a great use case, but I feel like giving the control to the plugin developer is the correct solution.

@twang2218 any movement on this? Thanks!


Approximated disk quantity in list

🎥 Demo
Before

After

why is the size rounded to 33Gi instead of ~33.59Gi like it would have shown on the disks list after VM creation?

right I'll add a precision parameter to the function

/approve


InstanceGroupManager forces targetSize to 3 despite yaml not setting it

What happened?
        apiVersion: compute.gcp.upbound.io/v1beta1
        kind: InstanceGroupManager
        metadata:
          name: my-igm
        spec:
          forProvider:
            namedPort:
              - name: bird-port
                port: 8888
              - name: goose-port
                port: 8443
              - name: coredns-port
                port: 53
            baseInstanceName: my
            zone: us-central1-a
            #targetSize: 3
            version:
              - instanceTemplateRef:
                  name: my-template
                name: primary
            #        targetSize:
            #          - percent: 100
            updatePolicy:
              - type: PROACTIVE
                minimalAction: REPLACE
                mostDisruptiveAllowedAction: REPLACE
                #maxSurgePercent: 20
                maxUnavailableFixed: 3
                #minReadySec: 50
                #replacementMethod: RECREATE

This still results in an igm with targetSize 3... despite it not being in the yaml.
and it is interfering with the autoscaling. autoscaler wants to bring in more instances, and this object via terraform wants to set it back to 3 (as confirmed through gke logs).  very frustrating. how do we force igm to not set the targetSize and not fight autoscaling?
How can we reproduce it?
see above
What environment did it happen in?

Crossplane Version: crossplane 1.10.2
Provider Version: xpkg.upbound.io/upbound/provider-gcp:v0.21.0
Kubernetes Version: v1.24.9-gke.3200
Kubernetes Distribution: GKE

Hi @shanproofpoint !
If you created InstanceGroupManager with targetSize: 3 and need to avoid from this value seems the best way update it with targetSize: 0 and then apply changed example.
Please try it(targetSize: 0) and let me know if the issue will still affect you.

the igm yaml started out without targetSize: 3 and after the autoscaler yaml finalized, it seems to have influenced the igm yaml to have targetSize: 3

at no point did i update the values after submitting the yaml

is putting minReplicas in the Autoscaler and using ci/cd against the Autoscaler yaml fighting the real autoscaler in gcp?

is this a limitation of terraform where they are 2 objects assembled into one object on gcp??

Hi @shanproofpoint ! Seems targetSize depend here from minReplicas: 3.
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance_group_manager#target_size

I am sorry @svscheg , but that documentation does not explain why the autoscaler resource results in a change in the igm yaml.   yes we do not want to set the targetSize in the igm yaml.

Thank you so much @svscheg for your reply!

crossplane is used with argo to fullfull a ci/cd declarative infrastructure, so what is in git should be what is live
crossplane gcp provider reflects the value outside of targetSize given terraform reflecting it from gcp
the targetSize value is written back to InstanceGroupManager causing ci/cd to revert this and to fight gcp.

unfortunately your suggestion wont work because it entirely disabled the autoscaling behavior.
I think i will have to ask argocd to ignore this field as it is written back to the kubernetes resource outside the status field.

I apologize that the previous version of this comment was incorrect in saying argocd reverted the InstanceGroupManager, but it has no hand in resources generated by crossplane.  It is in fact crossplane reverting the change done by the gcp provider.

Hi @shanproofpoint !
We have a late-initialization concept in crossplane. For this case - cloud provider fills this value. Here is document: https://docs.crossplane.io/v1.12/concepts/managed-resources/#late-initialization
So after the InstanceGroupManager created we will create the Autoscaler which will set the targetSize for the InstanceGroupManager, so after this - will work late-initialization and it will fill targetSize.
Seems it is expected behaviour, @sergenyalcin could you please confirm it?


ModuleNotFoundError upon attempting to activate addon

Hey folks,
After following the documentation for configuring and compiling the renderer, I'm now at the stage of setting up the addon for Blender to be able to use it. However, each time I try to activate the addon, it keeps throwing this:

This is effectively stopping my progress for the time being. Is there something I need to modify perhaps?
This is on a Windows 10 x64 machine, used Python 3.7x. I had the same situation happen on my Windows 7 x64 machine that used Miniconda (pretty much an exact duplicate of the documentation's process except for the operating system)

Solved it. I replaced the "." between 0 and 1 in the version number section of the folder's name with a "-" and it works fine.

Interesting! did you add this "0.1" yourself? If not, this is something we need to take care of.

I did have to manually change the numbers, yes.

From: Baptiste Nicolet<EMAIL_ADDRESS>Sent: Wednesday, June 24, 2020 3:55 AM
To: mitsuba-renderer/mitsuba2-blender<EMAIL_ADDRESS>Cc: Lights-and-Shadows<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [mitsuba-renderer/mitsuba2-blender] ModuleNotFoundError upon attempting to activate addon (#5)
Interesting! did you add this "0.1" yourself? If not, this is something we need to take care of.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/mitsuba-renderer/mitsuba2-blender/issues/5#issuecomment-648659953, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AIUINEMWJWLFDMQUE6QR66TRYGWO3ANCNFSM4OD5R4XQ.

@bathal1
When downloading the .zip file from the release list the naming of the zip is "mitsuba2-blender-0.1.zip" by default, which leads to the error of this issue.
When downloading the zip file from master branch the naming is different so no errors occur.
In order to avoid this issue in future, the releases should have a different version naming (without dot in between).

Thanks for bringing this up! There is now a zip file with the proper name in the release file.


Handle error code HTTP_1_1_REQUIRED on RST_STREAM frame properly

We faced errors from client com.linecorp.armeria.common.stream.ClosedStreamException: received a RST_STREAM frame: HTTP_1_1_REQUIRED.
However, Armeria will not downgrade its connection and can’t connect to this endpoint.
I’m not sure how HTTP_1_1_REQUIRED should be handled, but it should not be error.
HTTP/2 doesn’t have downgrade feature, so it should be reconnected with HTTP/1.1?
I know it’s strange server response, because they accept HTTP/2 once but it returns HTTP_1_1_REQUIRED afterwards.
However, actually it's defined in RFC and may occur in some case.
Related: https://github.com/icing/mod_h2/issues/172

That's a peculiar behavior but I agree that Armeria client has to reconnect like it does when it talks to HTTP/1-only servers.

That's a peculiar behavior but I agree that Armeria client has to reconnect like it does when it talks to HTTP/1-only servers.

One thing to consider is when we received the RST_STREAM frame. If Armeria ever subscribed to the request stream, there's no way for Armeria to send the request again, because an Armeria request stream is not repeatable.

One thing to consider is when we received the RST_STREAM frame. If Armeria ever subscribed to the request stream, there's no way for Armeria to send the request again, because an Armeria request stream is not repeatable.


Bot: Slash commands

Discord just added support for slash commands, giving users a preview window in which bot commands are easily accessed and can be autocompleted even with a mouse: https://discord.com/developers/docs/interactions/slash-commands

Sick, we should implement.

Specifically slash commands for bots themselves were added.
I believe this is relevant documentation:
https://discord.com/developers/docs/interactions/slash-commands

Seems like a great thing to implement for user experience.


Send open_contexts to StatsD

In ES open_contexts is a long representing the number of concurrent searches happening "right now" looks like it was added a while ago:
https://github.com/elastic/elasticsearch/commit/271305d5ebe74fbca3348f4c5f482c240d76457c
So it should be safe to send this metric in all versions of the plugin. Graphing this stat would be useful to know how loaded a cluster is with search requests as well as which indices are responsible.

@anandnalya what do you think about this change? Also how have you been testing this plugin across versions do you have a VM for this handy?

LGTM.
I don't have a VM for testing across ES versions, but we can probably create one starting with https://github.com/hopsoft/docker-graphite-statsd

Backported this up to ES 2.3.0


Lab 5 Test case 5_1

Need some help with this test case. When I test it in jshell locally, it runs fine
What's missing? Thanks :)

see #412, try changing
Log flatMap(Function<? super T, Log> f)
to
Log flatMap(Function<? super T, ? extends Log<? extends R>> f)

I think these issues were quite common, my TAs advised my class to check the flatMap()

Did you solve it @serweiq? If so, you can close the issue. Thanks.


Objects overwrite feature

Hi, would be nice to add a new feature where we can send overwrite=True in case we want to overwrite an object that's already exists.
I have kind of created my own functions for it, cuz I want "idempotency" in my automation, so if someone has already created a network-object group, I want to overwrite it, or later, that network-object changed it's value, i want to overwrite it,
I am not proficient enough in python to create a PR but would love to do it.
def create_network_object(fdm_object: object, name: str, value: str, type: str) -> dict:
    """
    Create a network object in FDM, overwrite if already exists.
    """
    try:
        network_object = fdm_object.create_network(type=type, name=name, value=value)
        return network_object
    except FirepyerError as e:
        if "duplicate name" in str(e):
            existing_network_object = fdm_object.get_net_objects(name)
            pprint(existing_network_object)
            print(f"Network object {name} already exists")
            print("Updating network object")
            existing_network_object["value"] = value
            existing_network_object[
                "subType"
            ] = (
                type.upper()
            )  # Capitalization needed since we're sending directly to api
            pprint(existing_network_object)
            put_it = fdm_object.put_api(
                f"/object/networks/{existing_network_object['id']}",
                json.dumps(existing_network_object),
            )
            if put_it.status_code == 200 or put_it.status_code == 204:
                print("Network object updated")
                return existing_network_object
            else:
                raise FirepyerError(
                    f"Failed to update network object {name} with status code {put_it.status_code}\n{put_it.text}"
                )
        else:
            raise e

Thanks for the request and example 👍 I agree there should be a way to update objects. I'll try to get something added in over the Christmas break.
It may just be some separate update_ methods for now, but could look at some create_or_update logic. Either way I'll get the docs updated to show.


Add a hero section

@maniyaom please assign me this task I will create the best hero section suited for this website in accordance with the color theme

@nishtha-902 This appears to be a duplicate of an existing issue. Before raising a new issue, please make sure to check the issue section to avoid duplicates.
Reference: Issue #71


[SPARK-20577][DOC][CORE]Add REST API Documentation in Cluster Mode.

What changes were proposed in this pull request?
Add REST API Documentation in Cluster Mode.
Include:
Submit an application to the Master with parameters specified in the request.The request is assumed to be a [[SubmitRestProtocolRequest]] in the form of JSON.If the request is successfully processed, return an appropriate response to the client indicating so.
If a submission ID is specified in the URL, have the Master kill the corresponding
Driver and return an appropriate response to the client.
If a submission ID is specified in the URL, request the status of the corresponding
Driver from the Master and include it in the response.
How was this patch tested?
manual tests
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

I remember these REST APIs are not public APIs, it is only used for SparkSubmit internally. shall we add the docs about them?

@jerryshao
Yes, we now have the need to use REST APIs to submit SPARK jobs.
We submit the task of submitting a application to a WEB system, which is designed to manage the functions of the submitted job and set specific parameters and related configurations for different jobs. The WEB management system interacts with the spark cluster. The REST interface is The most convenient.
We have now used these REST APIS to meet our needs. But the current lack of official documents related description, I have learned through their own research and research to understand these interfaces.

He is saying you are not intended to call this API.

@srowen
I'm sorry, I did not understand what you meant. Can you give me a detailed analysis? Thank you.

It is not documented because it is not something you should call. You do so at your own risk. Documentation is appropriate for supported APIs only.

In fact, the three api is three servlets, submitRequestServlet, killRequestServlet, statusRequestServlet. Theoretically should be open to enhance the function of spark.
As for why not open, I still difficult to understand.

@jerryshao
I said that the use of the scene is real, do you agree?

I think @srowen already clarified it very clearly, you can use it at your own risk, but to make it public and add to the doc should be well considered.

Where is the risk? High concurrency? Transaction processing? This is where I am puzzled.

Nobody is suggesting it doesn't work. It is at least only known to work to support internal callers. It is subject to changes in the API. A public API in contrast needs to retain compatibility over longer periods. This is not something it seems the project wants to guarantee. Only public APIs need docs and this isn't.

Unless somebody says this isn't a private API, let's close this PR

ok,thanks.


test-branch/execute-job/comment-from-wrong-user-on-pr/d0ba760e-091d-4efb-8e72-68b6ddf38178

PR for testing d20dd7c06c0ac3400a785ea1f06370ec7f7f541a

/canonical/self-hosted-runners/run-workflows d20dd7c06c0ac3400a785ea1f06370ec7f7f541a


MissingPDFException if the file or folder has a hash (#)

Configuration

Web browser and its version: electron v25.9.8
Operating system and its version: Ubuntu 22.04
PDF.js version: pdfjs-dist v4.0.379

Steps to reproduce the problem:
The steps are simple, just add a hash (#) to the pdf file or folder, I don't know if it happens with other characters.
await unpdf.getDocument({url: 'example/path/#name/file.pdf'}).promise;

What is the expected behavior?
pdf.js should correctly load the file.
A temporary solution I have found is to use encodeURIComponent, I don't know if this is already the expected behavior.
await unpdf.getDocument({url: encodeURIComponent('example/path/#name/file.pdf').replace(/\%2F/g,'/')}).promise;

Duplicate of #10632


Add fred (second attempt)

Fred is an experimental functional reactive engine on top of DOT.  Note that this is a "weakly typed" setup (where the dynamically created expressions are typeless and interpreted).  A strongly typed setup will very likely approach from the language side rather than ground up but this is easier and useful in its own right. The plan is to learn from this and then figure out how to properly divide boundaries and get type safety.

A Def holds something that can be computed (these have an Eval method)
A Val expresses a fixed computed value
Env captures the environment needed for a single Def computation

A resolver which resolves references (needed for computation)
A cache holds cached results to make shared sub-expressions evaluate faster
A recursion checker to help detect recursive evaluations

There are other helpers defined (such as Scope for managing scopes etc)
TODO:
[ ] Add simple types and type conversion heuristics
[ ] Add Refs, Filter, Map, Reduce
[ ] Add streaming ability to get the next value of a computation without recomputing everything
[ ] Add provenance of parts of derived values (check where a particular value comes from)
[ ] Add edit of parts of derived values

Codecov Report

Merging #307 into master will increase coverage by 0.07%.
The diff coverage is 100%.

Impacted Files
Coverage Δ

fred/fixed.go
100% <100%> (ø)

fred/error.go
100% <100%> (ø)

fred/nil.go
100% <100%> (ø)

fred/valmap.go
100% <100%> (ø)

fred/scope.go
100% <100%> (ø)

fred/environ.go
100% <100%> (ø)

fred/vals.go
100% <100%> (ø)

fred/pure.go
100% <100%> (ø)

fred/cache.go
100% <100%> (ø)

fred/defs.go
100% <100%> (ø)

... and 14 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #307 into master will increase coverage by 0.07%.
The diff coverage is 100%.

Impacted Files
Coverage Δ

fred/fixed.go
100% <100%> (ø)

fred/error.go
100% <100%> (ø)

fred/nil.go
100% <100%> (ø)

fred/valmap.go
100% <100%> (ø)

fred/scope.go
100% <100%> (ø)

fred/environ.go
100% <100%> (ø)

fred/vals.go
100% <100%> (ø)

fred/pure.go
100% <100%> (ø)

fred/cache.go
100% <100%> (ø)

fred/defs.go
100% <100%> (ø)

... and 14 more

Continue to review full report at Codecov.

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

Not really happy with this.  Going  to close this, will re-open with a different flavor..


initial approle support

Let me know how this looks. This covers the basic use case of authentication with app role, with a test to match. I updated the tests to account for two new-ish Vault behaviors.

auth backends can't create root tokens
some errors changed from unexpected to forbidden

Hey, thanks for the PR! This looks really good. Anything left you're wanting to do or is it ready to merge?

I'll add the property functions in a different PR, this is all I need for right now 🎉

Please let me know when you've pushed a new version to pypi 💖


Can't find promiseList.js.

TableOfContents.js requires "esri/promiseList" (promistList.js) but I can't find that file. I'm using a locally hosted copy of the api (v3.12) but I have also tested against the CDN versions 3.12 and 3.13 with no luck.
Any thoughts what I might be missing?

hey @spatialbits. Yes, promiseList is going to be added in 3.14. It acts like dojo/promise/all but still functions if one or more of the layers fails to load. You could replace it with dojo/promise/all if you would like but then if one layer doesn't load then it won't work correctly.
I'll see if I can post the code here. Otherwise, you can use dojo/promise/all or take the code from here: http://jsdev.arcgis.com/3.14/esri/promiseList.js

You can also point to the dev 3.14 temporarily
    <script src="http://jsdev.arcgis.com/3.14/"></script>
    <!-- <script src="http://js.arcgis.com/3.13/"></script>-->

Thanks for the quick replies guys. I've added promiseList.js to my local copy of the api.
Didn't know about jsdev, very handy,


Issue with file upload over 50MB

Hello!
I'm trying to upload videos bigger than 50MB so I'm using telegram local server and python-telegram-bot library
But when I try to upload a video let's say 80Mb in size I get httpx read error in PTB
and
500 internal server error couldn't upload the file

In the telegram-bot-api logs
Python version : 3.11.2
Bot api version : 8.1
note that the video is playable and downloadable directly from the host.

This doesn't look like an error from the Bot API server.
You need to check logs of the Bot API server.

Really sorry for sharing the logs like this but this terminal doesn't support copying for some reason

Log level 2 would be enough. You need the error from the last line, which is truncated on the screenshot.

It is likely that you have no enough disk space in the temp directory of the server.

Are you suggesting that I change the temp directory? Because the host has like 10Gb of free storage

Changing the temp directory fixed this issue.
Thanks dude


Integration with Neo4j

Wondering if you've done any integration with Neo4j.  I'd be interested in replacing their graph with something faster.

Thanks for your interest in Argo Lite! We are always interested in exploring how Argo Lite can help with visualizing and exploring graph databases. Could you share more of what you have in mind about your use cases?

We are looking for a graphing library to build off of, that specifically supports webgl like this for increased performance, as opposed to d3, cytoscape-js, and other solutions. If possible, we'd like to implement it at a level where we can control the data being visualized via requests being passed to a from a web server, connected to a previously populated neo4j backend database. Users will need to be able to do all of the typical functionality available in something like the Neo4j Browser, where they can double click nodes to expand neighbors, enter queries in a console, and so on, and then we'd like to include functionality like argo already provides, where visuals and properties are available on click, right click menus for specific functionality, etc.

Thank you for elaborating on your ideas! Argo lite currently doesn't support requests; I'm afraid it may not meet the needs of your use cases at this time.


Side stepping and move around while aiming

Describe the feature you'd like to see added
RE Tweaks open up new possibilities for modding.  I have been working on a patch to use A,D key to side-step and use A,W,S,D to moving around while weapon aiming.  Basically detect key press and change player position. For aiming moves I put check in 'PlWepLockCtrlPitchClamp:: '. Does this function get called in fix frequency or in some time delta that I can detect? I want to know whether I need to scale the moving distance by time delta. Same question go for ' pl_R1_Turn_left' for side stepping.

AFAIK it should pretty much be called in a fixed frequency unless the framerate drops, but you should multiply any distance/angle changes by GlobalPtr()->deltaTime_70 to handle 30/60FPS difference.
(this isn't actually a deltaTime value since last frame though, should probably rename it really, it's more like a game speed variable - at 60FPS the game sets it to 0.5 while 30FPS would be 1)

Thanks for the pointers. I notice the frame time was saved in deltaTime_70 too, I should try to factor that in.  I am not good at reading assembly code so I doubt I can figure out how the original aiming work. And also I don't have IDA Pro so I cannot read the .ida database provided. For now I rolled my own movement code and fake the walking bobble in first person view without t he time delta. Its seems to work okay with my laptop. thanks.  Here is a short clip to show my progress https://youtu.be/uDFVV8LqxLQ

Wow impressive! That works a lot better than I thought it could, I guess strafing-only movement might take some work though since there's not really any strafing anim afaik (that's whats shown at 0:40 right?), but aim-mode looks pretty good there, being able to strafe while aiming is probably one of the more requested things too.
If you need to look into games code for anything I did add a hex-rays decompiled .c source file in my last IDA database upload, not as easy as the IDA database itself to work with since it's like a 20+MB text file, but could maybe come in useful: https://github.com/emoose/re4-research/issues/3#issuecomment-1250220969

Thank you. and thank you for the c source. Will take a look when I get some free time.  You are right that there was not any strafing animation. the video shows strafing interrupted the turning animation of "mouse turning". I have since make strafing take on the turning animation and avoids interruption from mouse turning. Turning animation does not fit strafing that well but it is better than sliding around with a static post. I posted my changes to my fork of RE4 tweaks. if you want to try it out, See   https://github.com/aman-11111/re4_tweaks
Just a few notes

first use F1 config menu , under "Mouse" category enable Mouse Turning , type B, which make mouse turn player like RE5
Then go to "Keyboard" category and enable "Strafing" or "AimAndMove" or both. save the setting if you want.
Only support A,W,S,D key.   Totally not working with gamepad
I need a way to detect when aiming happen with a throwing weapon, Since throw aiming zoom out and reveal the full body. There is no animation for that pose and moving around with a static pose is just wrong.

Ah cool, nice job!

Hi again. Maybe someone can help with this problem. If I aim left with mouse and strafing right at the same time, the camera is very responsive and move right to keep Leon's head on the left of the targeting spot. I can see what I am aiming at the whole time. But using controller aiming left , the camera response slower and Leon's head is blocking the target.  Where can I change the controller aiming camera position delay or disable the delay all together?

https://youtu.be/ogTKb1f1zkU


Update init.py

Code added to allow operation of the poke button while on USB power.

My PR https://github.com/pimoroni/enviro/issues/24 isn't relevant to this.
Poke works fine when attached to USB power source.
My board does not work at all (just solid red LED) when connected to JST-PH power source. The board does not appear to wake up and nothing is written to log.txt

Thanks! There have been a lot of other changes that mean this should no longer be an issue. To avoid excess power use we only connect to WiFi when needed.


Remove Whitespace from README [Do Not Merge]

Description

Motivation and Context

Fixes #
How Has This Been Tested?

Checklist:

[] I have added a Signed-off-by
[] Either no new documentation is required by this change, OR I added new documentation
[] Either no new tests are required by this change, OR I added new tests
[] I have run goimports, go vet, and golint. I have cleaned up all valid errors and warnings in code I have added or modified. These tools may generate false positives.  The goal is clean, consistent, and readable code.

Signed-off-by: Trevor Bramwell<EMAIL_ADDRESS>Testing Jenkins Integration

reverify

reverify

reverify

reverify

reverify

reverify

reverify jenkins

Closing as there has been no activity for a while. Please reopen if still needed.


Add result relevance information

For testing, and probably for features in the future, you might want to attach some metadata to a result that contextualised it within the set of results.
An example of this would be score (for testing, I need to compare) where we might want to flag how relevant we think something is. While order is an indicator of this, if you have say 5 results, 2 might be highly relevant, while the other three might be loosely relevant.
Another piece of information might be what we matched (the title, publisher etc), the highlighted piece of content etc.
This draft PR starts with the model and if it feels like that is the right direction?
The rendering might unpack this into something along the lines of:
GET /works?include=results.relevance&query=spain
{
  "results": [
    {
      "type": "Work",
      "title": "The rain in Maine is plainly not in Spain",
      "description": "This is not really a rhymme from Spain",
      "relevance": {
        "matched": ["title" ,"description"],
        "score": {
          "value": "1.6",
          "label": "Highly relevant"
        }
      }
    },
    {
      "type": "Work",
      "title": "The rain in spain",
      "description": "Fell mainly on the plain",
      "relevance": {
        "matched": ["title"],
        "score": {
          "value": "1.2",
          "label": "Relevant"
        }
      }
    }
  ]
}

Only immediate thought is that the range and distribution of scores is likely to change as we tweak the query, so setting a threshold for those labels (anything above 1.5 is "highly relevant", etc) could quickly fall out of date. Would be nice to have those thresholds inferred from some known results (eg we know that these results are highly relevant for these queries, what's a good lower limit on their scores according to the current query)

@harrisonpim interesting problem!
The labels are mainly there for us to display more than just a score to users, so I suppose we could look at it as "Something could be 10000 relevant, and this is 9090, so it's highly relevant", but that is quite hard to codify.
Perhaps sticking to why something is relevant might be more useful.

Perhaps sticking to why something is relevant might be more useful.

That sounds hard.

That sounds hard.

If the user search matches a part of the query that is written to an intention, not so much.
Thinking super simple, "We've matched using our title search, so that's why we've made it relevant". We have something similar already.
This combined with highlighting will help us build trust, especially as researchers have so many contexts of search. If we tell them why we've matched, they can then decided if our reason for relevance is in line with theirs.

This is great, I love this. Even to be able to say your search terms were found in: title, notes, etc. would be valuable, even if we can't make a 'highly relevant' vs 'less relevant' statement. Refers back to https://github.com/wellcomecollection/wellcomecollection.org/issues/4363


fix: publish action

What kind of change does this PR introduce?
Fixing the publish pg_upgrade scripts aspect of gh actions, to unblock pg_upgrade testing and to resolve these working for ami release
Resolved in this PR:

Handling of version across matrix
a fix for supabase wrappers pkg to cease fetching cargo deps at install time via git, which broke the upgrade scripts + removal of git install/remove from build process for this package

Testing criteria:

running an upgrade from 15.6 series, to the staging 15.8 released from this PR on local infra

Once this is approved, I will do a rebase, and fix all of the temporary values before merging


2.0.0rc3 and KivyMD

Software Versions

Python:  3.8.2
OS:  Windows 10
Kivy: 2.0.0rc3
Kivy installation method:  pip

Describe the bug
Using KivyMD 1.104.1
2.0.0rc2  the example below gives:
[WARNING] [ColorParser ] Invalid color format for '#'
2.0.0rc3 the example below gives:
Traceback (most recent call last):
  File "C:\Users\Bobf\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\lang\builder.py", line 701, in _apply_rule
    setattr(widget_set, key, value)
  File "kivy\weakproxy.pyx", line 35, in kivy.weakproxy.WeakProxy.__setattr__
  File "kivy\properties.pyx", line 498, in kivy.properties.Property.__set__
  File "kivy\properties.pyx", line 527, in kivy.properties.Property.set
  File "kivy\properties.pyx", line 2023, in kivy.properties.ColorProperty.convert
ValueError: MDTabsLabel.color must have 3 or 4 components (got [])

Expected behavior
To Reproduce
Use KivyMD 1.104.1
Code and Logs and screenshots
from kivymd.app import MDApp
from kivymd.uix.tab import MDTabs,MDTabsBase
from kivymd.uix.boxlayout import MDBoxLayout

class Tab(MDBoxLayout, MDTabsBase):
    def __init__(self, **kwargs):
        super(Tab, self).__init__(**kwargs)
        pass

class MyApp(MDApp):

    def build(self):
        t = MDTabs()
        b = Tab(text='foo')
        return t

if __name__ == '__main__':
    MyApp().run()

Additional context
Add any other context about the problem here.

Also filed here https://github.com/HeaTTheatR/KivyMD/issues/359

We don't support KivyMD as it is a independent project and the bug seems to be in that code.


[stable/elasticsearch] add podAffinity to deployments

What this PR does / why we need it:
Adds ability to set podAffinity for Elasticsearch deployments
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test

Sorry, elasticsearch chart has been deprecated in favor of elastic/charts.git.
It is still possible to fork this chart and manage it if needed.


Update README.textile

Website link removed ;)

See #41 - Good luck getting this accepted...

yo I'm curious, are you guys using Recess? Is your interest in Recess related to new development or maintenance of an existing project?

I came across recess on a stackoverflow answer.
Looks interesting. I wanted to explore the framework but saw that the
website was down :(
Sunny R Gupta
Lead Web Engineer
Wooplr Bangalore Development Team
+91<PHONE_NUMBER> / +91<PHONE_NUMBER>
http://www.linkedin.com/in/sunnykgupta http://facebook.com/sunnykgupta
http://twitter.com/sunnykgupta http://google.com/+SunnyKumarGupta [image:
skype:sunnykgupta]
All information contained in this mail is confidential and proprietary
unless otherwise specified. If you have received this email in error,
please reply back with 'unsubscribe' in the subject to be removed from
out database.The information and views reflected in the mail above are
solely those of the sender. The sender is not liable to any information
sent out using the email communication channel outside their network.
Unless absolutely necessary refrain from taking a printout of this email,
save the planet.
On Wed, Apr 27, 2016 at 8:12 PM, Kevin Burns<EMAIL_ADDRESS>wrote:

yo I'm curious, are you guys using Recess? Is your interest in Recess
related to new development or maintenance of an existing project?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/recess/recess/pull/42#issuecomment-215105582