AWS-Fehlermeldung: Gegen diese Ressource wird derzeit eine widersprüchliche bedingte Operation ausgeführt

Lesezeit: 6 Minuten

Benutzer-Avatar
Benutzer1172468

Ich bekomme diesen Fehler zeitweise.

Ich habe ein Programm, das das Java-AWS-SDK verwendet und über die Zehntausende von kleinen Dateien in S3 lädt. Ich sehe diesen Fehler zeitweise.

Konnte nach kurzer Recherche im Internet keine hilfreiche Antwort finden.

Beachten Sie, dass das aufrufende Programm Single-Thread ist. Das zugrunde liegende AWS-Java-SDK scheint Worker-Threads zu verwenden.

Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648)
    at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:578)
    at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:503)

  • Versuchen Sie, Objekte in S3 einzufügen und sie dann sofort zu lesen?

    – Jamieb

    16. Dezember 2012 um 2:31 Uhr

  • @jamieb, eigentlich nein, derzeit nicht.

    – Benutzer1172468

    16. Dezember 2012 um 3:27 Uhr

  • Ich wünschte, ich hätte eine Antwort für dich. Versuchen Sie, die gleichen Schlüssel in schneller Folge neu zu schreiben? S3 basiert auf einem “eventuell konsistenten” Modell, bei dem PUTs Zeit brauchen, um sich zu beruhigen.

    – Jamieb

    16. Dezember 2012 um 5:58 Uhr

  • @jamieb, danke, dass du Gehirnzyklen ausgegeben hast, aber die Antwort von Guy ist richtig, denke ich. Ich denke, in meinem Code versuche ich erneut, einen Bucket zu erstellen – in der Erwartung, dass er ordnungsgemäß fehlschlägt – es funktioniert in 99,99 % der Fälle und manchmal wird dieser Fehler ausgegeben. Nochmals vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen. Jubeln!

    – Benutzer1172468

    17. Dezember 2012 um 7:46 Uhr

  • Danke für die Nachverfolgung. Viel Glück!

    – Jamieb

    17. Dezember 2012 um 14:11 Uhr

Benutzer-Avatar
Jan Vlcinsky

Ich habe die gleiche Fehlermeldung erhalten, als ich Folgendes getan habe:

  1. einen Bucket erstellt – er ging standardmäßig in die US-Region (verwendetes AWSCLI)

  2. realisiert, soll der Bucket in die EU-Region gehen und gelöscht werden (genutzte AWS-Konsole)

  3. (wenige Minuten später) versuchte, den Bucket zu erstellen, wobei die EU-Region angegeben wurde

Bei Schritt 3 hat mir die AWS-Konsole die Fehlermeldung aus dem Titel Ihrer Frage angezeigt.

Ich vermute also, dass der Bucket in den USA gelöscht wurde, aber es gibt möglicherweise einige Synchronisierungsvorgänge, die einige Zeit in Anspruch nehmen. Und ich hoffe, dass ich nach ein paar Stunden Wartezeit den Bucket-Namen wieder für die Erstellung verfügbar finde – diesmal in der richtigen (EU-) Region.

FIX :- Bearbeiten: Ungefähr eine Stunde später war mein Versuch, den Bucket (in der EU-Region) zu erstellen, erfolgreich.

  • Ich bin gerade in die gleiche Situation geraten. Ich werde zurück posten, wenn ich meinen Bucket innerhalb der nächsten Stunde oder so erstellen kann.

    – AJB

    17. Mai 2014 um 19:42 Uhr

  • Das kann ich bestätigen. Es dauerte ungefähr 1,5 Stunden, und es gibt keine Garantie dafür, dass in der Zwischenzeit nicht jemand anderes den Bucket-Namen schöpft, aber Sie können ihn anscheinend innerhalb einer angemessenen Zeitspanne und mit etwas Glück zurückerhalten.

    – AJB

    17. Mai 2014 um 21:49 Uhr

  • Ich stimme @jan zu. Um dies zu lösen: Erstellen Sie einen neuen Bucket mit neuem Namen. Verwenden Sie nicht den Namen des gelöschten Buckets, wenn Sie Ihren neuen Bucket benennen.

    – Dinesh Sunny

    8. Mai 2016 um 20:01 Uhr


  • Bei mir hat es weniger als 70 Minuten gedauert.

    – offby1

    16. Juli 2016 um 19:54 Uhr

  • Laut Amazon kann es bis zu 10 Stunden dauern forums.aws.amazon.com/thread.jspa?threadID=37532

    – TomDotTom

    6. März 2017 um 15:59 Uhr

Für alle anderen, die bei Google auf diesen Thread stoßen, als 1. Ergebnis bei der Suche nach dieser Fehlermeldung:

Wenn Sie den Bucket gelöscht haben, um ihn in einer neuen Region neu zu erstellen, Warten Sie nicht “manuell”, bis diese Hintergrundsynchronisierung abgeschlossen istführen Sie stattdessen ein kleines Bash-Skript aus und wiederholen Sie die erforderliche Bucket-Erstellung etwa alle 5 Sekunden.

Beispiel:

#!/bin/bash 
RESULT=2 
until [  $RESULT -eq 0 ]; do
    aws s3 mb s3://your.bucket.name --region us-west-2
    RESULT=$?
    sleep 5 
done 
echo "Bucket created!"

Es wird die Operation “Bucket erstellen” alle paar Sekunden (abhängig von “sleep”) und sobald es möglich ist – für Sie erstellen, damit niemand Ihren Bucket-Namen versehentlich stehlen kann 🙂

ich hoffe es hilft 🙂

  • Danke dafür! In meiner Instanz hatte ich die Region bereits in der aws-Konfiguration definiert und das Ausführen des Skripts führte zu folgendem Fehler: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128). Die Lösung bestand darin, die zu entfernen --region Flagge.

    – MagentoAaron

    10. April 2019 um 14:17 Uhr


  • Horosho!!!!!!!!!

    – Kaguei Nakueka

    15. Dezember 2021 um 16:43 Uhr

  • Einfacher 🙂 until aws s3 mb aws s3 mb s3://your.bucket.name --region us-west-2; do echo "Trying again.."; sleep 5; done

    – James Andrés

    15. März um 11:51 Uhr

Benutzer-Avatar
Kerl

Die Anforderung in Ihrem Beispiel besteht darin, einen Bucket zu erstellen. Wenn Sie versuchen, zu viele Buckets zu erstellen oder Buckets zu ersetzen, ist dies nicht gesund.

Beachten Sie, dass Sie ein Limit von 100 Buckets für ein Konto haben (siehe hier). BEARBEITEN: Jetzt ist dieses Limit ein “weiches Limit” und Sie können es bei Bedarf erhöhen.

Beachten Sie auch, dass die Erstellung eines Buckets einige Zeit in Anspruch nimmt und:

…es ist nicht angebracht, Aufrufe zum Erstellen oder Löschen von Buckets im Hochverfügbarkeits-Codepfad Ihrer Anwendung vorzunehmen…

Es ist besser, Ihre Buckets einmal zu erstellen und dann können Sie so viele Objekte, wie Sie möchten, in Ihre vorhandenen Buckets (oder sogar in ein einzelnes) legen.

Wie auch immer, wenn Sie mit einem System arbeiten, das hin und wieder ausfallen wird, sollten Sie in der Lage sein, mit Fehlern umzugehen und Ihren Prozess zu verlangsamen, wenn Sie einen solchen Fehler erhalten. Weitere Einzelheiten finden Sie in AWS-Dokumente.

Dieser Fehler tritt normalerweise auf, wenn ein Bucket gelöscht und ein neuer Bucket mit demselben Namen wie der alte Bucket erstellt wird.

Ich glaube, wir müssten eine gewisse Zeit warten, bis wir einen neuen Bucket mit demselben Namen erstellen können.

Benutzer-Avatar
Sigmaxf

Einfach und unkompliziert: Ändern Sie den neuen Bucket-Namen oder warten Sie eine Stunde.

Schließlich hat AWS jetzt eine klare Antwort im eigenen Wissenszentrum, siehe https://aws.amazon.com/premiumsupport/knowledge-center/s3-conflicting-conditional-operation/.

Ich habe gerade einen Bucket gelöscht (da S3-Bucket-Namen global eindeutig sind und ich denselben Bucket in einem anderen AWS-Konto erstellen muss) und mein Skript, das einen Bucket mit demselben Namen erstellt, schlägt mit demselben Fehler fehl. Ich muss mich also gedulden und eine Stunde warten.

Nur als Bestätigung: Nach etwa einer Stunde kann ich erfolgreich einen Bucket mit demselben Namen wie der gelöschte Bucket erstellen.

Benutzer-Avatar
vel12171

Ändern Sie Ihren Bucket-Namen oder warten Sie. Ich habe weniger als 30 Minuten auf meine gewartet. Ich musste den Namen nicht ändern und ich konnte ihn nicht ändern, da ich darauf eingestellt war – er musste mit meinem bereits bestehenden Domainnamen für eine statische Website übereinstimmen, die ich hosten wollte. Wie auch immer, in weniger als 30 Minuten wurde es automatisch erstellt.

1352800cookie-checkAWS-Fehlermeldung: Gegen diese Ressource wird derzeit eine widersprüchliche bedingte Operation ausgeführt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy