Open dldl-cmd opened 1 year ago
Sorry about taking so long on this, a lot going on!
I'm talking with the service team. I think the ideal behavior is for the service to cut off old HTTP connections as well. I don't think we want to do string matching on 401s.
I'll ping back when I have something to report.
Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @EldertGrootenboer @jfggdl.
@EldertGrootenboer , @jfggdl - I brought this up previously in the Service Bus office hours, so there should be some previous record of that discussion.
The fix here would be that when the service is rotated out that the old HTTP endpoint should probably close any active connections. Due to connection pooling, etc... it could take awhile for any connected clients to realize that the service they have a persistent connection to longer valid.
Thank you, we will assign an engineer to investigate this, and will report back in this thread once we have more information to share.
We have brought this item in our current planning. We don't have a specific date when development will start for this, once we have more information around this, we will update this thread.
Bug Report
When using the ServiceBus Admin client it does not automatically connect to the Premium namespace when a Standard Tier namespace is migrated to premium as documented here: https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-migrate-standard-premium#what-happens-when-the-migration-is-committed Instead it always runs into an unauthenticated error. Restarting the application does fix the issue, but according to the documentation it should not be necessary.
The problem was noticed with KEDA: kedacore/keda#4678.
The problem can be easily reproduced with running the following program:
Furthermore the Standard Tier ServiceBus namespace needs to have a topic: mytopic and a subscription: mysubscription. Then during the runtime of the program the namespace can be migrated to a Premium namespace through the Azure Portal. After the migration is completed (a few seconds/minutes later) the application will start to log, that it is not able to connect anymore.
As far as I was able to debug the problem already, it occurs because the connection is after the migration still to the standard namespace. Therefore restarting the application causes it to connect to the new premium namespace. Also doing a long pause in the debugger, so that the connection gets closed, causes it to work again.
go version
:go version go1.20.5 linux/amd64