Skip to content

Commit 36dceca

Browse files
authored
Storage - Blob Stress Package Error Cleanup (#49233)
* stageblocksmall scenario adjustment * wip * avoid depending on raw short baseName being available globally * dep pinning * reversion * adding back * wip * storageseekablebytechannel change * bare minimum changes * removing perf core change
1 parent 6c60dbc commit 36dceca

8 files changed

Lines changed: 59 additions & 14 deletions

File tree

sdk/storage/azure-storage-blob-stress/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121
<doclintMissingInclusion>-</doclintMissingInclusion>
2222
</properties>
2323

24+
<dependencyManagement>
25+
<dependencies>
26+
<dependency>
27+
<groupId>io.opentelemetry</groupId>
28+
<artifactId>opentelemetry-bom</artifactId>
29+
<version>1.58.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-bom;external_dependency} -->
30+
<type>pom</type>
31+
<scope>import</scope>
32+
</dependency>
33+
</dependencies>
34+
</dependencyManagement>
35+
2436
<dependencies>
2537
<dependency>
2638
<groupId>ch.qos.logback</groupId>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/sh
22
set -ex;
3-
dotnet dev-certs https --export-path /mnt/outputs/dev-cert.pfx;
4-
/root/.dotnet/tools/http-fault-injector;
3+
dotnet dev-certs https --export-path /mnt/outputs/dev-cert.crt --format PEM --no-password;
4+
/root/.dotnet/tools/http-fault-injector;
Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
11
#!/bin/sh
22
set -ex;
33
set -exa;
4-
keytool -import -alias test -file /mnt/outputs/dev-cert.pfx -keystore ${JAVA_HOME}/lib/security/cacerts -noprompt -keypass changeit -storepass changeit;
4+
attempts=0;
5+
while [ ! -s /mnt/outputs/dev-cert.crt ]; do
6+
attempts=$((attempts + 1));
7+
if [ "$attempts" -gt 60 ]; then
8+
echo "Timed out waiting for fault injector certificate" >&2;
9+
exit 1;
10+
fi;
11+
sleep 1;
12+
done;
13+
keytool -delete -alias HttpFaultInject -keystore "${JAVA_HOME}/lib/security/cacerts" -storepass changeit >/dev/null 2>&1 || true;
14+
keytool -importcert -trustcacerts -alias HttpFaultInject -file /mnt/outputs/dev-cert.crt -keystore "${JAVA_HOME}/lib/security/cacerts" -noprompt -storepass changeit;

sdk/storage/azure-storage-blob-stress/stress-test-resources.bicep

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
param baseName string
2-
param endpointSuffix string = 'core.windows.net'
2+
param endpointSuffix string = environment().suffixes.storage
33
param location string = resourceGroup().location
4-
param storageApiVersion string = '2022-09-01'
54

6-
var primaryAccountName = '${baseName}'
7-
var pageBlobStorageAccountName = '${baseName}pageblob'
5+
var uniqueSuffix = uniqueString(resourceGroup().id)
6+
var primaryAccountName = '${take(baseName, 11)}${uniqueSuffix}'
7+
var pageBlobStorageAccountName = '${take(baseName, 7)}${uniqueSuffix}page'
88

99
resource primaryAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
1010
name: primaryAccountName
@@ -26,5 +26,5 @@ resource pageBlobStorageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' =
2626
properties: {}
2727
}
2828

29-
output STORAGE_ENDPOINT_STRING string = '"https://${primaryAccountName}.blob.core.windows.net"'
30-
output PAGE_BLOB_STORAGE_ENDPOINT_STRING string = '"https://${pageBlobStorageAccountName}.blob.core.windows.net"'
29+
output STORAGE_ENDPOINT_STRING string = '"https://${primaryAccountName}.blob.${endpointSuffix}"'
30+
output PAGE_BLOB_STORAGE_ENDPOINT_STRING string = '"https://${pageBlobStorageAccountName}.blob.${endpointSuffix}"'

sdk/storage/azure-storage-blob-stress/templates/stress-test-job.yaml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
args:
1717
- |
1818
set -ex;
19-
dotnet dev-certs https --export-path /mnt/outputs/dev-cert.pfx;
19+
dotnet dev-certs https --export-path /mnt/outputs/dev-cert.crt --format PEM --no-password;
2020
/root/.dotnet/tools/http-fault-injector;
2121
resources:
2222
limits:
@@ -30,7 +30,17 @@ spec:
3030
- |
3131
set -xa;
3232
set -o pipefail;
33-
keytool -import -alias test -file /mnt/outputs/dev-cert.pfx -keystore ${JAVA_HOME}/lib/security/cacerts -noprompt -keypass changeit -storepass changeit;
33+
attempts=0;
34+
while [ ! -s /mnt/outputs/dev-cert.crt ]; do
35+
attempts=$((attempts + 1));
36+
if [ "$attempts" -gt 60 ]; then
37+
echo "Timed out waiting for fault injector certificate" >&2;
38+
exit 1;
39+
fi;
40+
sleep 1;
41+
done;
42+
keytool -delete -alias HttpFaultInject -keystore "${JAVA_HOME}/lib/security/cacerts" -storepass changeit >/dev/null 2>&1 || true;
43+
keytool -importcert -trustcacerts -alias HttpFaultInject -file /mnt/outputs/dev-cert.crt -keystore "${JAVA_HOME}/lib/security/cacerts" -noprompt -storepass changeit || exit 1;
3444
mkdir -p "$DEBUG_SHARE";
3545
. /mnt/outputs/.env;
3646
export AZURE_HTTP_CLIENT_IMPLEMENTATION=com.azure.core.http.netty.NettyAsyncHttpClientProvider;
@@ -67,4 +77,4 @@ spec:
6777
cpu: "0.7"
6878
{{- include "stress-test-addons.container-env" . | nindent 6 }}
6979

70-
{{- end -}}
80+
{{- end -}}

sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/specialized/StorageSeekableByteChannelBlobReadBehavior.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.azure.storage.blob.models.BlobRange;
1212
import com.azure.storage.blob.models.BlobRequestConditions;
1313
import com.azure.storage.blob.models.BlobStorageException;
14+
import com.azure.storage.blob.models.DownloadRetryOptions;
1415
import com.azure.storage.common.implementation.StorageSeekableByteChannel;
1516

1617
import java.io.IOException;
@@ -75,7 +76,7 @@ public int read(ByteBuffer dst, long sourceOffset) throws IOException {
7576
try (ByteBufferBackedOutputStreamUtil dstStream = new ByteBufferBackedOutputStreamUtil(dst)) {
7677
BlobDownloadResponse response
7778
= client.downloadStreamWithResponse(dstStream, new BlobRange(sourceOffset, (long) dst.remaining()),
78-
null /*downloadRetryOptions*/, requestConditions, false, null, null);
79+
new DownloadRetryOptions(), requestConditions, false, null, null);
7980
resourceLength = CoreUtils.extractSizeFromContentRange(response.getDeserializedHeaders().getContentRange());
8081
return dst.position() - initialPosition;
8182
} catch (BlobStorageException e) {

sdk/storage/azure-storage-stress/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121
<doclintMissingInclusion>-</doclintMissingInclusion>
2222
</properties>
2323

24+
<dependencyManagement>
25+
<dependencies>
26+
<dependency>
27+
<groupId>io.opentelemetry</groupId>
28+
<artifactId>opentelemetry-bom</artifactId>
29+
<version>1.58.0</version> <!-- {x-version-update;io.opentelemetry:opentelemetry-bom;external_dependency} -->
30+
<type>pom</type>
31+
<scope>import</scope>
32+
</dependency>
33+
</dependencies>
34+
</dependencyManagement>
35+
2436
<dependencies>
2537
<dependency>
2638
<groupId>ch.qos.logback</groupId>

sdk/storage/azure-storage-stress/src/main/java/com/azure/storage/stress/TelemetryHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public String getDescription() {
124124
Cpu.registerObservers(otel);
125125
MemoryPools.registerObservers(otel);
126126
Threads.registerObservers(otel);
127-
GarbageCollector.registerObservers(otel);
127+
GarbageCollector.registerObservers(otel, true);
128128
OpenTelemetryAppender.install(otel);
129129
return otel;
130130
}

0 commit comments

Comments
 (0)