-
Notifications
You must be signed in to change notification settings - Fork 281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Azure blobstore error instantiating AzureClient #1298
Fix Azure blobstore error instantiating AzureClient #1298
Conversation
commit 72ce566 "Avoid infinite number of calls to listBlobs when doing prefix removals (e..g, gridset or layer removals)" changed the gwc `AzureClient` check for container existence from an attemp to create it to an attempt to get its properties before creating it. When the container doesn't exist, the blocking call throws `com.microsoft.azure.storage.blob.StorageException`, which contains the status code. Wrap that call in a try-catch block and get the status code from the exception.
Disable until the fix in GeoWebCache/geowebcache#1298 is merged onto gwc 1.26-SNAPSHOT
@@ -93,8 +93,13 @@ public AzureClient(AzureBlobStoreData configuration) throws StorageException { | |||
this.container = serviceURL.createContainerURL(containerName); | |||
// no way to see if the containerURL already exists, try to create and see if | |||
// we get a 409 CONFLICT | |||
int status; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested interactively, I can't get the code to throw an exception? Different azure container setup maybe? Or a difference in dependencies?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My first thought was it would be a difference in dependencies, tried everything I could think of, but the only thing that worked was reverting gwc 1.26-SNAPSHOT to 1.25-SNAPSHOT.
So I debugged both and saw the difference, the patch is not in the 1.25.x branch.
BTW the exception happens against the Azurite test container when running integration tests in gscloud
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok so you confirm the issue is not happening against an actual Azure storage, but the Azurite test container. Would be nice if the title was clear about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, I actually confirm the issue happens both with Azure and Azurite. The only difference is you may be always running the tests against an Azure container that already exists, whereas the Azurite test has to create it.
If you try a container name that does not exist in Azure you should get the same error.
commit 72ce566 "Avoid infinite number of calls to listBlobs when doing prefix removals (e..g, gridset or layer removals)" changed the gwc
AzureClient
check for container existence from an attemp to create it to an attempt to get its properties before creating it.When the container doesn't exist, the blocking call throws
com.microsoft.azure.storage.blob.StorageException
, which contains the status code.Wrap that call in a try-catch block and get the status code from the exception.