Skip to content

fix: correctly handle all empty HeadObject/HeadBucket responses #1378

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

Merged
merged 5 commits into from
Aug 13, 2024

Conversation

lauzadis
Copy link
Member

@lauzadis lauzadis commented Aug 5, 2024

Previously we only checked for empty bodies with HTTP 404, but it seems like S3 also returns empty bodies for HTTP 403. This PR expands the handler logic to catch all empty bodies rather than just 404's.

Issue #

Closes #1368

Description of changes

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@lauzadis lauzadis requested a review from a team as a code owner August 5, 2024 21:02
Copy link

github-actions bot commented Aug 5, 2024

A new generated diff is ready to view.

This comment has been minimized.

Copy link
Contributor

@0marperez 0marperez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: do S3s 403 responses frequently contain payloads? I think we would still fail with the same Failed to parse response as ... exception if that's the case

}

writer.withBlock("catch (ex: Exception) {", "}") {
withBlock("throw #T(#S).also {", "}", exceptionBaseSymbol, "Failed to parse response as ${ctx.protocol.name}") {
Copy link
Contributor

@0marperez 0marperez Aug 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: I would vote for keeping the part that mentions that we're parsing an error in the exception message. It's kind of useful for determining where the exception happened, i.e. Failed to parse response as '${ctx.protocol.name}' error

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah that was a miss while I was cleaning up the codegen, I'll add error back

@lauzadis
Copy link
Member Author

lauzadis commented Aug 6, 2024

question: do S3s 403 responses frequently contain payloads? I think we would still fail with the same Failed to parse response as ... exception if that's the case

HeadObject 403 never contains a payload. Here is a sample codegen:

private fun throwHeadObjectError(context: ExecutionContext, call: HttpCall, payload: ByteArray?): kotlin.Nothing {
    val wrappedResponse = call.response.withPayload(payload)
    val wrappedCall = call.copy(response = wrappedResponse)

    val errorDetails = try {
        if (payload == null) {
            if (call.response.status == HttpStatusCode.NotFound) {
                S3ErrorDetails(code = "NotFound")

            } else {
                S3ErrorDetails(code = call.response.status.toString())

            }
        } else {
            checkNotNull(payload) { "unable to parse error from empty response" }
            parseS3ErrorResponse(payload)

        }
    } catch (ex: Exception) {
        throw S3Exception("Failed to parse response as restXml").also {
            setS3ErrorMetadata(it, wrappedCall.response, null)
        }
    }
    val ex = when(errorDetails.code) {
        "NotFound" -> NotFoundDeserializer().deserialize(context, wrappedCall, payload)
        else -> S3Exception(errorDetails.message)
    }

    setS3ErrorMetadata(ex, wrappedResponse, errorDetails)
    throw ex
}

I'm not sure how a 403 with a non-null payload will get an Failed to parse response as restXml error exception thrown unless it's malformed.

Copy link

github-actions bot commented Aug 6, 2024

A new generated diff is ready to view.

Copy link
Contributor

@ianbotsf ianbotsf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correctness: Add E2E test(s) please.

Comment on lines +70 to 75
withInlineBlock("if (call.response.status == #T.NotFound) {", "} ", RuntimeTypes.Http.StatusCode) {
write("#T(code = #S)", s3ErrorDetails, "NotFound")
}
withInlineBlock("else {", "}") {
write("#T(code = #L)", s3ErrorDetails, "call.response.status.toString()")
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Isn't call.response.status.toString() also correct if the status code is NotFound? Do we need the special case for NotFound in this if block?

Copy link
Member Author

@lauzadis lauzadis Aug 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it would be Not Found for a 404 (space in the middle). We map it to "NotFound" which is how S3 models it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does code have to match an S3 error code? Because call.response.status.toString() won't necessarily.

Copy link
Member Author

@lauzadis lauzadis Aug 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No the code does not have to match an S3 error code, if it doesn't, it will just be thrown as a high-level S3Exception. For HeadObject this is what the error code mapping looks like:

    val ex = when(errorDetails.code) {
        "NotFound" -> NotFoundDeserializer().deserialize(context, wrappedCall, payload)
        else -> S3Exception(errorDetails.message)
    }

Only "NotFound" is defined as an error on the operation, so any other error will just get thrown as S3Exception

Comment on lines 78 to 81
withInlineBlock("else {", "}") {
write("checkNotNull(payload) { #S }", "unable to parse error from empty response")
write("#T(payload)", parseS3ErrorResponse)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Why does this else block still have a checkNotNull(payload) in it? The if condition was that payload == null so it should be impossible for payload to be null in this else block.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's probably not necessary, this was carried over from the previous codegen

This comment has been minimized.

Copy link

sonarqubecloud bot commented Aug 8, 2024

Copy link

github-actions bot commented Aug 8, 2024

A new generated diff is ready to view.

Copy link

github-actions bot commented Aug 8, 2024

Affected Artifacts

Changed in size
Artifact Pull Request (bytes) Latest Release (bytes) Delta (bytes) Delta (percentage)
glacier-jvm.jar 1,237,625 1,236,141 1,484 0.12%
route53-jvm.jar 2,952,572 2,951,554 1,018 0.03%
aws-config-jvm.jar 983,186 983,001 185 0.02%
glacier-jvm.jar closure 9,114,143 9,112,474 1,669 0.02%
route53-jvm.jar closure 10,829,090 10,827,887 1,203 0.01%
apigatewaymanagementapi-jvm.jar closure 8,018,577 8,018,391 186 0.00%
inspectorscan-jvm.jar closure 8,021,596 8,021,410 186 0.00%
sagemakermetrics-jvm.jar closure 7,980,341 7,980,156 185 0.00%
marketplacecommerceanalytics-jvm.jar closure 8,033,606 8,033,420 186 0.00%
cloudtraildata-jvm.jar closure 8,036,552 8,036,366 186 0.00%
sso-jvm.jar closure 8,082,833 8,082,646 187 0.00%
forecastquery-jvm.jar closure 8,040,821 8,040,635 186 0.00%
supplychain-jvm.jar closure 8,100,695 8,100,508 187 0.00%
marketplaceentitlementservice-jvm.jar closure 8,016,306 8,016,121 185 0.00%
eksauth-jvm.jar closure 8,067,797 8,067,611 186 0.00%
kinesisvideomedia-jvm.jar closure 8,029,731 8,029,546 185 0.00%
kinesisvideosignaling-jvm.jar closure 8,045,740 8,045,555 185 0.00%
freetier-jvm.jar closure 8,049,937 8,049,752 185 0.00%
connectcontactlens-jvm.jar closure 8,096,853 8,096,667 186 0.00%
iotdataplane-jvm.jar closure 8,187,603 8,187,415 188 0.00%
workmailmessageflow-jvm.jar closure 8,025,660 8,025,476 184 0.00%
personalizeruntime-jvm.jar closure 8,071,789 8,071,604 185 0.00%
personalizeevents-jvm.jar closure 8,118,643 8,118,457 186 0.00%
appconfigdata-jvm.jar closure 8,046,351 8,046,167 184 0.00%
marketplacedeployment-jvm.jar closure 8,093,858 8,093,673 185 0.00%
migrationhubconfig-jvm.jar closure 8,101,395 8,101,210 185 0.00%
sagemakeredge-jvm.jar closure 8,103,019 8,102,834 185 0.00%
qldbsession-jvm.jar closure 8,165,832 8,165,646 186 0.00%
cloudfrontkeyvaluestore-jvm.jar closure 8,172,254 8,172,068 186 0.00%
iotjobsdataplane-jvm.jar closure 8,132,292 8,132,107 185 0.00%
ec2instanceconnect-jvm.jar closure 8,088,727 8,088,543 184 0.00%
mediastoredata-jvm.jar closure 8,099,153 8,098,969 184 0.00%
sagemakerfeaturestoreruntime-jvm.jar closure 8,150,646 8,150,461 185 0.00%
sagemakera2iruntime-jvm.jar closure 8,153,156 8,152,971 185 0.00%
dynamodbstreams-jvm.jar closure 8,197,812 8,197,626 186 0.00%
route53recoverycluster-jvm.jar closure 8,155,105 8,154,920 185 0.00%
cloudsearchdomain-jvm.jar closure 8,113,081 8,112,897 184 0.00%
artifact-jvm.jar closure 8,204,305 8,204,119 186 0.00%
elasticinference-jvm.jar closure 8,161,199 8,161,014 185 0.00%
s3outposts-jvm.jar closure 8,171,545 8,171,360 185 0.00%
iotfleethub-jvm.jar closure 8,175,507 8,175,322 185 0.00%
sagemakerruntime-jvm.jar closure 8,180,905 8,180,720 185 0.00%
pricing-jvm.jar closure 8,192,003 8,191,818 185 0.00%
pinpointsmsvoice-jvm.jar closure 8,249,113 8,248,927 186 0.00%
iotsecuretunneling-jvm.jar closure 8,209,168 8,208,983 185 0.00%
ssooidc-jvm.jar closure 8,167,369 8,167,185 184 0.00%
costandusagereportservice-jvm.jar closure 8,257,616 8,257,430 186 0.00%
repostspace-jvm.jar closure 8,277,122 8,276,936 186 0.00%
marketplacemetering-jvm.jar closure 8,240,131 8,239,946 185 0.00%
rdsdata-jvm.jar closure 8,286,283 8,286,097 186 0.00%
ebs-jvm.jar closure 8,245,249 8,245,064 185 0.00%
marketplaceagreement-jvm.jar closure 8,392,544 8,392,356 188 0.00%
sts-jvm.jar closure 8,261,760 8,261,575 185 0.00%
applicationcostprofiler-jvm.jar closure 8,176,118 8,175,935 183 0.00%
kendraranking-jvm.jar closure 8,267,260 8,267,075 185 0.00%
controlcatalog-jvm.jar closure 8,238,839 8,238,655 184 0.00%
oam-jvm.jar closure 8,419,210 8,419,022 188 0.00%
resourcegroupstaggingapi-jvm.jar closure 8,292,382 8,292,197 185 0.00%
licensemanagerlinuxsubscriptions-jvm.jar closure 8,345,843 8,345,657 186 0.00%
iot1clickdevicesservice-jvm.jar closure 8,306,211 8,306,026 185 0.00%
networkmonitor-jvm.jar closure 8,355,262 8,355,076 186 0.00%
supportapp-jvm.jar closure 8,223,469 8,223,286 183 0.00%
rbin-jvm.jar closure 8,329,376 8,329,191 185 0.00%
ssmquicksetup-jvm.jar closure 8,344,174 8,343,989 185 0.00%
connectparticipant-jvm.jar closure 8,350,323 8,350,138 185 0.00%
account-jvm.jar closure 8,306,364 8,306,180 184 0.00%
lexruntimeservice-jvm.jar closure 8,327,979 8,327,795 184 0.00%
kinesisvideoarchivedmedia-jvm.jar closure 8,378,238 8,378,053 185 0.00%
iot1clickprojects-jvm.jar closure 8,379,311 8,379,126 185 0.00%
redshiftdata-jvm.jar closure 8,383,800 8,383,615 185 0.00%
cloud9-jvm.jar closure 8,399,335 8,399,150 185 0.00%
cloudcontrol-jvm.jar closure 8,399,509 8,399,324 185 0.00%
launchwizard-jvm.jar closure 8,405,664 8,405,479 185 0.00%
autoscalingplans-jvm.jar closure 8,411,435 8,411,250 185 0.00%
timestreaminfluxdb-jvm.jar closure 8,420,958 8,420,773 185 0.00%
pcaconnectorscep-jvm.jar closure 8,376,761 8,376,577 184 0.00%
iotdeviceadvisor-jvm.jar closure 8,428,316 8,428,131 185 0.00%
docdbelastic-jvm.jar closure 8,476,448 8,476,262 186 0.00%
cloudhsm-jvm.jar closure 8,431,793 8,431,608 185 0.00%
codestarnotifications-jvm.jar closure 8,436,244 8,436,059 185 0.00%
licensemanagerusersubscriptions-jvm.jar closure 8,412,719 8,412,535 184 0.00%
mwaa-jvm.jar closure 8,416,402 8,416,218 184 0.00%
workspacesthinclient-jvm.jar closure 8,560,539 8,560,352 187 0.00%
osis-jvm.jar closure 8,524,023 8,523,837 186 0.00%
mediastore-jvm.jar closure 8,479,259 8,479,074 185 0.00%
rum-jvm.jar closure 8,576,774 8,576,587 187 0.00%
bcmdataexports-jvm.jar closure 8,490,794 8,490,609 185 0.00%
route53profiles-jvm.jar closure 8,451,853 8,451,669 184 0.00%
simspaceweaver-jvm.jar closure 8,500,039 8,499,854 185 0.00%
cognitosync-jvm.jar closure 8,502,680 8,502,495 185 0.00%
savingsplans-jvm.jar closure 8,463,960 8,463,776 184 0.00%
serverlessapplicationrepository-jvm.jar closure 8,464,420 8,464,236 184 0.00%
codestar-jvm.jar closure 8,561,066 8,560,880 186 0.00%
opsworkscm-jvm.jar closure 8,562,355 8,562,169 186 0.00%
qldb-jvm.jar closure 8,565,330 8,565,144 186 0.00%
arczonalshift-jvm.jar closure 8,473,528 8,473,344 184 0.00%
codegurusecurity-jvm.jar closure 8,523,303 8,523,118 185 0.00%
healthlake-jvm.jar closure 8,489,824 8,489,640 184 0.00%
migrationhub-jvm.jar closure 8,536,531 8,536,346 185 0.00%
ivschat-jvm.jar closure 8,539,513 8,539,328 185 0.00%
internetmonitor-jvm.jar closure 8,678,712 8,678,524 188 0.00%
scheduler-jvm.jar closure 8,543,590 8,543,405 185 0.00%
polly-jvm.jar closure 8,552,166 8,551,981 185 0.00%
snowdevicemanagement-jvm.jar closure 8,510,623 8,510,439 184 0.00%
taxsettings-jvm.jar closure 8,605,015 8,604,829 186 0.00%
dlm-jvm.jar closure 8,570,828 8,570,643 185 0.00%
pi-jvm.jar closure 8,524,596 8,524,412 184 0.00%
support-jvm.jar closure 8,577,596 8,577,411 185 0.00%
trustedadvisor-jvm.jar closure 8,534,493 8,534,309 184 0.00%
transcribestreaming-jvm.jar closure 8,582,215 8,582,030 185 0.00%
acm-jvm.jar closure 8,675,254 8,675,067 187 0.00%
managedblockchainquery-jvm.jar closure 8,589,160 8,588,975 185 0.00%
datapipeline-jvm.jar closure 8,595,363 8,595,178 185 0.00%
health-jvm.jar closure 8,612,666 8,612,481 185 0.00%
cloudhsmv2-jvm.jar closure 8,519,818 8,519,635 183 0.00%
secretsmanager-jvm.jar closure 8,713,874 8,713,687 187 0.00%
keyspaces-jvm.jar closure 8,671,869 8,671,683 186 0.00%
identitystore-jvm.jar closure 8,631,647 8,631,462 185 0.00%
resourceexplorer2-jvm.jar closure 8,635,318 8,635,133 185 0.00%
resourcegroups-jvm.jar closure 8,637,442 8,637,257 185 0.00%
ioteventsdata-jvm.jar closure 8,604,278 8,604,094 184 0.00%
codeguruprofiler-jvm.jar closure 8,748,893 8,748,706 187 0.00%
codegurureviewer-jvm.jar closure 8,689,505 8,689,320 185 0.00%
connectcampaigns-jvm.jar closure 8,694,877 8,694,692 185 0.00%
timestreamquery-jvm.jar closure 8,742,648 8,742,462 186 0.00%
applicationautoscaling-jvm.jar closure 8,697,396 8,697,211 185 0.00%
route53recoverycontrolconfig-jvm.jar closure 8,698,179 8,697,994 185 0.00%
cognitoidentity-jvm.jar closure 8,702,835 8,702,650 185 0.00%
backupgateway-jvm.jar closure 8,704,580 8,704,395 185 0.00%
medicalimaging-jvm.jar closure 8,704,603 8,704,418 185 0.00%
worklink-jvm.jar closure 8,758,928 8,758,742 186 0.00%
chimesdkmeetings-jvm.jar closure 8,713,665 8,713,480 185 0.00%
elastictranscoder-jvm.jar closure 8,812,214 8,812,027 187 0.00%
servicequotas-jvm.jar closure 8,679,274 8,679,090 184 0.00%
signer-jvm.jar closure 8,683,844 8,683,660 184 0.00%
braket-jvm.jar closure 8,735,720 8,735,535 185 0.00%
applicationsignals-jvm.jar closure 8,689,602 8,689,418 184 0.00%
lexruntimev2-jvm.jar closure 8,744,648 8,744,463 185 0.00%
emrserverless-jvm.jar closure 8,752,281 8,752,096 185 0.00%
synthetics-jvm.jar closure 8,755,582 8,755,397 185 0.00%
mediapackagevod-jvm.jar closure 8,720,258 8,720,074 184 0.00%
servicecatalogappregistry-jvm.jar closure 8,729,802 8,729,618 184 0.00%
schemas-jvm.jar closure 8,788,053 8,787,868 185 0.00%
translate-jvm.jar closure 8,798,373 8,798,188 185 0.00%
paymentcryptography-jvm.jar closure 8,805,042 8,804,857 185 0.00%
mq-jvm.jar closure 8,805,982 8,805,797 185 0.00%
rolesanywhere-jvm.jar closure 8,819,435 8,819,250 185 0.00%
amp-jvm.jar closure 8,819,965 8,819,780 185 0.00%
lookoutvision-jvm.jar closure 8,826,009 8,825,824 185 0.00%
dax-jvm.jar closure 8,834,995 8,834,810 185 0.00%
ssmsap-jvm.jar closure 8,805,817 8,805,633 184 0.00%
cleanroomsml-jvm.jar closure 8,870,718 8,870,533 185 0.00%
ecrpublic-jvm.jar closure 8,877,807 8,877,622 185 0.00%
migrationhubrefactorspaces-jvm.jar closure 8,927,429 8,927,243 186 0.00%
appfabric-jvm.jar closure 8,882,724 8,882,539 185 0.00%
b2bi-jvm.jar closure 8,891,548 8,891,363 185 0.00%
kafkaconnect-jvm.jar closure 8,906,563 8,906,378 185 0.00%
codestarconnections-jvm.jar closure 8,910,309 8,910,124 185 0.00%
grafana-jvm.jar closure 8,915,394 8,915,209 185 0.00%
qapps-jvm.jar closure 8,872,882 8,872,698 184 0.00%
paymentcryptographydata-jvm.jar closure 8,882,432 8,882,248 184 0.00%
mediapackage-jvm.jar closure 8,883,321 8,883,137 184 0.00%
chimesdkidentity-jvm.jar closure 8,942,034 8,941,849 185 0.00%
codeconnections-jvm.jar closure 8,902,670 8,902,486 184 0.00%
sqs-jvm.jar closure 8,866,154 8,865,971 183 0.00%
timestreamwrite-jvm.jar closure 8,872,512 8,872,329 183 0.00%
kinesisanalytics-jvm.jar closure 9,024,358 9,024,172 186 0.00%
route53recoveryreadiness-jvm.jar closure 8,931,290 8,931,106 184 0.00%
emrcontainers-jvm.jar closure 8,983,429 8,983,244 185 0.00%
detective-jvm.jar closure 8,937,117 8,936,933 184 0.00%
machinelearning-jvm.jar closure 8,987,720 8,987,535 185 0.00%
applicationinsights-jvm.jar closure 8,991,176 8,990,991 185 0.00%
neptunegraph-jvm.jar closure 8,994,050 8,993,865 185 0.00%
fis-jvm.jar closure 8,996,935 8,996,750 185 0.00%
finspacedata-jvm.jar closure 9,046,424 9,046,238 186 0.00%
chatbot-jvm.jar closure 8,901,370 8,901,187 183 0.00%
acmpca-jvm.jar closure 9,047,361 9,047,175 186 0.00%
budgets-jvm.jar closure 9,062,209 9,062,023 186 0.00%
securitylake-jvm.jar closure 9,023,915 9,023,730 185 0.00%
privatenetworks-jvm.jar closure 8,927,032 8,926,849 183 0.00%
cloudsearch-jvm.jar closure 9,026,837 9,026,652 185 0.00%
migrationhuborchestrator-jvm.jar closure 9,076,762 9,076,576 186 0.00%
mediapackagev2-jvm.jar closure 9,050,157 9,049,972 185 0.00%
controltower-jvm.jar closure 8,955,874 8,955,691 183 0.00%
comprehendmedical-jvm.jar closure 9,072,727 9,072,542 185 0.00%
shield-jvm.jar closure 9,134,668 9,134,482 186 0.00%
managedblockchain-jvm.jar closure 9,087,498 9,087,313 185 0.00%
elasticloadbalancing-jvm.jar closure 9,088,151 9,087,966 185 0.00%
bedrockruntime-jvm.jar closure 9,041,885 9,041,701 184 0.00%
voiceid-jvm.jar closure 9,094,031 9,093,846 185 0.00%
mturk-jvm.jar closure 9,097,079 9,096,894 185 0.00%
outposts-jvm.jar closure 9,108,513 9,108,328 185 0.00%
kinesis-jvm.jar closure 9,162,253 9,162,067 186 0.00%
amplify-jvm.jar closure 9,116,866 9,116,681 185 0.00%
ivs-jvm.jar closure 9,130,335 9,130,150 185 0.00%
kinesisvideo-jvm.jar closure 9,130,751 9,130,566 185 0.00%
iotthingsgraph-jvm.jar closure 9,136,249 9,136,064 185 0.00%
ivsrealtime-jvm.jar closure 9,148,377 9,148,192 185 0.00%
applicationdiscoveryservice-jvm.jar closure 9,149,437 9,149,252 185 0.00%
servicediscovery-jvm.jar closure 9,154,536 9,154,351 185 0.00%
snowball-jvm.jar closure 9,178,242 9,178,057 185 0.00%
efs-jvm.jar closure 9,194,554 9,194,369 185 0.00%
tnb-jvm.jar closure 9,154,169 9,153,985 184 0.00%
amplifybackend-jvm.jar closure 9,227,245 9,227,060 185 0.00%
opensearchserverless-jvm.jar closure 9,229,001 9,228,816 185 0.00%
textract-jvm.jar closure 9,283,311 9,283,125 186 0.00%
ssmincidents-jvm.jar closure 9,244,051 9,243,866 185 0.00%
ssmcontacts-jvm.jar closure 9,308,913 9,308,727 186 0.00%
appconfig-jvm.jar closure 9,265,400 9,265,215 185 0.00%
xray-jvm.jar closure 9,316,891 9,316,705 186 0.00%
sms-jvm.jar closure 9,286,981 9,286,796 185 0.00%
ram-jvm.jar closure 9,248,188 9,248,004 184 0.00%
codecatalyst-jvm.jar closure 9,304,316 9,304,131 185 0.00%
pipes-jvm.jar closure 9,305,710 9,305,525 185 0.00%
pcaconnectorad-jvm.jar closure 9,307,731 9,307,546 185 0.00%
connectcases-jvm.jar closure 9,321,597 9,321,412 185 0.00%
sns-jvm.jar closure 9,328,817 9,328,632 185 0.00%
verifiedpermissions-jvm.jar closure 9,381,670 9,381,484 186 0.00%
sagemakergeospatial-jvm.jar closure 9,334,884 9,334,699 185 0.00%
pinpointemail-jvm.jar closure 9,337,206 9,337,021 185 0.00%
marketplacecatalog-jvm.jar closure 9,292,609 9,292,425 184 0.00%
greengrassv2-jvm.jar closure 9,294,258 9,294,074 184 0.00%
route53domains-jvm.jar closure 9,359,932 9,359,747 185 0.00%
m2-jvm.jar closure 9,372,105 9,371,920 185 0.00%
iotevents-jvm.jar closure 9,372,203 9,372,018 185 0.00%
apprunner-jvm.jar closure 9,376,381 9,376,196 185 0.00%
panorama-jvm.jar closure 9,388,042 9,387,857 185 0.00%
lookoutmetrics-jvm.jar closure 9,422,459 9,422,274 185 0.00%
billingconductor-jvm.jar closure 9,475,945 9,475,759 186 0.00%
groundstation-jvm.jar closure 9,491,019 9,490,833 186 0.00%
inspector-jvm.jar closure 9,472,533 9,472,348 185 0.00%
evidently-jvm.jar closure 9,490,272 9,490,087 185 0.00%
lexmodelbuildingservice-jvm.jar closure 9,544,131 9,543,945 186 0.00%
neptunedata-jvm.jar closure 9,546,006 9,545,820 186 0.00%
amplifyuibuilder-jvm.jar closure 9,667,481 9,667,293 188 0.00%
apptest-jvm.jar closure 9,462,210 9,462,026 184 0.00%
entityresolution-jvm.jar closure 9,474,770 9,474,586 184 0.00%
wisdom-jvm.jar closure 9,584,334 9,584,148 186 0.00%
bedrock-jvm.jar closure 9,586,139 9,585,953 186 0.00%
dataexchange-jvm.jar closure 9,544,783 9,544,598 185 0.00%
migrationhubstrategy-jvm.jar closure 9,493,419 9,493,235 184 0.00%
cloudwatch-jvm.jar closure 9,546,138 9,545,953 185 0.00%
codeartifact-jvm.jar closure 9,551,514 9,551,329 185 0.00%
workspacesweb-jvm.jar closure 9,567,232 9,567,047 185 0.00%
vpclattice-jvm.jar closure 9,668,321 9,668,135 186 0.00%
redshiftserverless-jvm.jar closure 9,671,018 9,670,832 186 0.00%
iotanalytics-jvm.jar closure 9,647,346 9,647,161 185 0.00%
chimesdkmessaging-jvm.jar closure 9,649,211 9,649,026 185 0.00%
mediatailor-jvm.jar closure 9,659,351 9,659,166 185 0.00%
firehose-jvm.jar closure 9,701,391 9,701,206 185 0.00%
lookoutequipment-jvm.jar closure 9,724,546 9,724,361 185 0.00%
workdocs-jvm.jar closure 9,738,584 9,738,399 185 0.00%
transcribe-jvm.jar closure 9,790,005 9,789,820 185 0.00%
sfn-jvm.jar closure 9,795,505 9,795,320 185 0.00%
memorydb-jvm.jar closure 9,798,161 9,797,976 185 0.00%
databrew-jvm.jar closure 9,807,082 9,806,897 185 0.00%
globalaccelerator-jvm.jar closure 9,843,914 9,843,729 185 0.00%
licensemanager-jvm.jar closure 9,915,135 9,914,949 186 0.00%
batch-jvm.jar closure 9,873,094 9,872,909 185 0.00%
finspace-jvm.jar closure 9,828,838 9,828,654 184 0.00%
nimble-jvm.jar closure 9,895,595 9,895,410 185 0.00%
devopsguru-jvm.jar closure 9,900,099 9,899,914 185 0.00%
directconnect-jvm.jar closure 9,954,078 9,953,892 186 0.00%
cloudwatchevents-jvm.jar closure 9,910,570 9,910,385 185 0.00%
kms-jvm.jar closure 9,992,576 9,992,390 186 0.00%
networkfirewall-jvm.jar closure 9,831,421 9,831,238 183 0.00%
qconnect-jvm.jar closure 9,995,188 9,995,003 185 0.00%
apigatewayv2-jvm.jar closure 10,003,190 10,003,005 185 0.00%
accessanalyzer-jvm.jar closure 9,959,931 9,959,747 184 0.00%
mailmanager-jvm.jar closure 10,020,432 10,020,247 185 0.00%
iottwinmaker-jvm.jar closure 10,023,123 10,022,938 185 0.00%
swf-jvm.jar closure 10,083,171 10,082,985 186 0.00%
organizations-jvm.jar closure 10,032,779 10,032,594 185 0.00%
fms-jvm.jar closure 10,047,437 10,047,252 185 0.00%
chimesdkmediapipelines-jvm.jar closure 10,001,526 10,001,342 184 0.00%
lakeformation-jvm.jar closure 10,057,752 10,057,567 185 0.00%
elasticbeanstalk-jvm.jar closure 10,009,898 10,009,714 184 0.00%
eventbridge-jvm.jar closure 10,164,906 10,164,721 185 0.00%
location-jvm.jar closure 10,165,219 10,165,034 185 0.00%
auditmanager-jvm.jar closure 10,110,295 10,110,111 184 0.00%
athena-jvm.jar closure 10,203,210 10,203,025 185 0.00%
docdb-jvm.jar closure 10,259,020 10,258,834 186 0.00%
ssoadmin-jvm.jar closure 10,259,817 10,259,631 186 0.00%
appsync-jvm.jar closure 10,211,211 10,211,026 185 0.00%
transfer-jvm.jar closure 10,224,047 10,223,862 185 0.00%
opsworks-jvm.jar closure 10,287,812 10,287,626 186 0.00%
iotfleetwise-jvm.jar closure 10,236,056 10,235,871 185 0.00%
drs-jvm.jar closure 10,240,697 10,240,512 185 0.00%
elasticloadbalancingv2-jvm.jar closure 10,246,181 10,245,996 185 0.00%
kinesisanalyticsv2-jvm.jar closure 10,258,300 10,258,115 185 0.00%
mediaconnect-jvm.jar closure 10,268,714 10,268,529 185 0.00%
ses-jvm.jar closure 10,278,651 10,278,466 185 0.00%
kafka-jvm.jar closure 10,278,895 10,278,710 185 0.00%
elasticsearchservice-jvm.jar closure 10,347,130 10,346,944 186 0.00%
cloudtrail-jvm.jar closure 10,296,903 10,296,718 185 0.00%
datasync-jvm.jar closure 10,297,649 10,297,464 185 0.00%
codebuild-jvm.jar closure 10,307,845 10,307,660 185 0.00%
workmail-jvm.jar closure 10,366,744 10,366,558 186 0.00%
costexplorer-jvm.jar closure 10,311,103 10,310,918 185 0.00%
route53resolver-jvm.jar closure 10,271,005 10,270,821 184 0.00%
customerprofiles-jvm.jar closure 10,274,138 10,273,954 184 0.00%
robomaker-jvm.jar closure 10,351,066 10,350,881 185 0.00%
frauddetector-jvm.jar closure 10,409,769 10,409,583 186 0.00%
resiliencehub-jvm.jar closure 10,373,679 10,373,494 185 0.00%
forecast-jvm.jar closure 10,385,069 10,384,884 185 0.00%
cloudwatchlogs-jvm.jar closure 10,405,918 10,405,733 185 0.00%
directoryservice-jvm.jar closure 10,429,871 10,429,686 185 0.00%
personalize-jvm.jar closure 10,499,617 10,499,432 185 0.00%
appstream-jvm.jar closure 10,500,773 10,500,588 185 0.00%
codepipeline-jvm.jar closure 10,655,243 10,655,056 187 0.00%
eks-jvm.jar closure 10,492,885 10,492,701 184 0.00%
wellarchitected-jvm.jar closure 10,554,429 10,554,244 185 0.00%
greengrass-jvm.jar closure 10,469,335 10,469,152 183 0.00%
computeoptimizer-jvm.jar closure 10,682,082 10,681,896 186 0.00%
storagegateway-jvm.jar closure 10,636,901 10,636,716 185 0.00%
devicefarm-jvm.jar closure 10,660,080 10,659,895 185 0.00%
autoscaling-jvm.jar closure 10,697,675 10,697,490 185 0.00%
waf-jvm.jar closure 10,703,619 10,703,434 185 0.00%
emr-jvm.jar closure 10,715,949 10,715,765 184 0.00%
chimesdkvoice-jvm.jar closure 10,721,343 10,721,159 184 0.00%
appflow-jvm.jar closure 10,839,808 10,839,622 186 0.00%
wafregional-jvm.jar closure 10,838,024 10,837,839 185 0.00%
qbusiness-jvm.jar closure 10,853,088 10,852,903 185 0.00%
clouddirectory-jvm.jar closure 10,983,917 10,983,730 187 0.00%
lambda-jvm.jar closure 10,876,718 10,876,533 185 0.00%
appmesh-jvm.jar closure 10,765,730 10,765,547 183 0.00%
servicecatalog-jvm.jar closure 10,956,020 10,955,834 186 0.00%
proton-jvm.jar closure 10,900,452 10,900,267 185 0.00%
backup-jvm.jar closure 10,905,504 10,905,319 185 0.00%
neptune-jvm.jar closure 10,924,362 10,924,177 185 0.00%
mgn-jvm.jar closure 10,877,126 10,876,943 183 0.00%
fsx-jvm.jar closure 11,012,655 11,012,470 185 0.00%
codedeploy-jvm.jar closure 11,021,823 11,021,638 185 0.00%
networkmanager-jvm.jar closure 11,079,560 11,079,375 185 0.00%
opensearch-jvm.jar closure 11,091,546 11,091,361 185 0.00%
omics-jvm.jar closure 11,146,497 11,146,313 184 0.00%
dynamodb-jvm.jar closure 11,262,339 11,262,154 185 0.00%
bedrockagent-jvm.jar closure 11,265,958 11,265,773 185 0.00%
sesv2-jvm.jar closure 11,210,642 11,210,458 184 0.00%
wafv2-jvm.jar closure 11,346,368 11,346,182 186 0.00%
imagebuilder-jvm.jar closure 11,312,580 11,312,395 185 0.00%
cleanrooms-jvm.jar closure 11,400,363 11,400,178 185 0.00%
ecs-jvm.jar closure 11,351,914 11,351,730 184 0.00%
apigateway-jvm.jar closure 11,437,802 11,437,617 185 0.00%
pinpointsmsvoicev2-jvm.jar closure 11,342,158 11,341,975 183 0.00%
comprehend-jvm.jar closure 11,565,837 11,565,652 185 0.00%
iotsitewise-jvm.jar closure 11,652,852 11,652,667 185 0.00%
elasticache-jvm.jar closure 11,657,133 11,656,948 185 0.00%
macie2-jvm.jar closure 11,671,971 11,671,786 185 0.00%
cloudformation-jvm.jar closure 11,687,369 11,687,184 185 0.00%
guardduty-jvm.jar closure 11,768,142 11,767,957 185 0.00%
rekognition-jvm.jar closure 11,820,810 11,820,625 185 0.00%
s3control-jvm.jar closure 11,915,854 11,915,669 185 0.00%
inspector2-jvm.jar closure 12,012,691 12,012,506 185 0.00%
iotwireless-jvm.jar closure 12,021,770 12,021,585 185 0.00%
kendra-jvm.jar closure 12,105,459 12,105,274 185 0.00%
deadline-jvm.jar closure 12,144,362 12,144,177 185 0.00%
gamelift-jvm.jar closure 12,215,423 12,215,238 185 0.00%
codecommit-jvm.jar closure 12,223,732 12,223,547 185 0.00%
databasemigrationservice-jvm.jar closure 12,343,436 12,343,252 184 0.00%
iam-jvm.jar closure 12,450,621 12,450,436 185 0.00%
configservice-jvm.jar closure 12,657,199 12,657,014 185 0.00%
pinpoint-jvm.jar closure 13,098,658 13,098,473 185 0.00%
chime-jvm.jar closure 13,451,528 13,451,344 184 0.00%
lightsail-jvm.jar closure 13,701,831 13,701,647 184 0.00%
redshift-jvm.jar closure 13,821,912 13,821,727 185 0.00%
cloudfront-jvm.jar closure 13,803,449 13,803,265 184 0.00%
lexmodelsv2-jvm.jar closure 14,235,714 14,235,529 185 0.00%
mediaconvert-jvm.jar closure 14,396,924 14,396,739 185 0.00%
rds-jvm.jar closure 15,273,583 15,273,398 185 0.00%
ssm-jvm.jar closure 15,424,933 15,424,747 186 0.00%
medialive-jvm.jar closure 15,685,115 15,684,930 185 0.00%
iot-jvm.jar closure 16,914,688 16,914,503 185 0.00%
connect-jvm.jar closure 18,380,519 18,380,334 185 0.00%
securityhub-jvm.jar closure 19,775,370 19,775,185 185 0.00%
quicksight-jvm.jar closure 25,557,286 25,557,101 185 0.00%
sagemaker-jvm.jar closure 26,474,497 26,474,312 185 0.00%
ec2-jvm.jar closure 35,582,170 35,581,985 185 0.00%
workspaces-jvm.jar closure 11,328,977 11,329,934 -957 -0.01%
workspaces-jvm.jar 3,452,459 3,453,601 -1,142 -0.03%
costoptimizationhub-jvm.jar closure 8,743,635 8,758,625 -14,990 -0.17%
s3-jvm.jar closure 12,212,147 12,233,764 -21,617 -0.18%
kinesisvideowebrtcstorage-jvm.jar closure 7,987,817 8,006,273 -18,456 -0.23%
cognitoidentityprovider-jvm.jar closure 11,903,779 11,939,374 -35,595 -0.30%
bedrockagentruntime-jvm.jar closure 9,501,512 9,534,893 -33,381 -0.35%
ecr-jvm.jar closure 10,020,510 10,061,565 -41,055 -0.41%
s3-jvm.jar 4,251,027 4,272,829 -21,802 -0.51%
cognitoidentityprovider-jvm.jar 4,027,261 4,063,041 -35,780 -0.88%
appintegrations-jvm.jar closure 8,659,085 8,760,491 -101,406 -1.16%
glue-jvm.jar closure 18,319,921 18,550,238 -230,317 -1.24%
costoptimizationhub-jvm.jar 867,117 882,292 -15,175 -1.72%
ecr-jvm.jar 2,143,992 2,185,232 -41,240 -1.89%
datazone-jvm.jar closure 13,032,517 13,298,328 -265,811 -2.00%
bedrockagentruntime-jvm.jar 1,540,392 1,573,958 -33,566 -2.13%
glue-jvm.jar 10,443,403 10,673,905 -230,502 -2.16%
datazone-jvm.jar 5,155,999 5,421,995 -265,996 -4.91%
appintegrations-jvm.jar 782,567 884,158 -101,591 -11.49%
kinesisvideowebrtcstorage-jvm.jar 111,299 129,940 -18,641 -14.35%

@lauzadis lauzadis merged commit 153bb11 into main Aug 13, 2024
17 checks passed
@lauzadis lauzadis deleted the fix-s3-head-object branch August 13, 2024 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

HeadObject 403 throws "Failed to parse response as 'restXml'"
3 participants