Komunikat o błędzie AWS: obecnie trwa konfliktowa operacja warunkowa przeciwko temu zasobowi

Dostaję ten błąd sporadycznie.

Mam program, który używa java aws sdk i ładuje ponad 10 tysięcy małych plików do s3. Widzę ten błąd sporadycznie.

Nie można znaleźć żadnej pomocnej odpowiedzi po wykonaniu szybkiego wyszukiwania w Internecie.

Uwaga program wywołujący jest jednowątkowy. Bazowy zestaw aws java sdk zdaje się używać wątków roboczych.

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)
Author: Bhavik Ambani, 2012-12-16

5 answers

Otrzymałem ten sam komunikat o błędzie, gdy wykonałem następujące czynności:

  1. Utworzono wiadro - domyślnie poszło do US region (used AWSCLI)

  2. Zrealizowane, wiadro powinno przejść do regionu EU i usunąć go (używana konsola AWS)

  3. (kilka minut później) próbował utworzyć wiadro, określając region UE

W kroku 3 konsola AWS pokazała mi komunikat o błędzie z tytułu twojego pytania.

Więc chyba, że wiadro w nas zostało usunięte, ale możliwe, że są pewne procesy synchronizacji, które wymagają czasu. I mam nadzieję, że w oczekiwaniu na kilka godzin ponownie znajdę Nazwę wiadra do stworzenia - tym razem w odpowiednim (UE) regionie.

Poprawka: - Edycja: około godziny później moja próba stworzenia wiadra (w regionie UE) powiodła się.

 353
Author: Jan Vlcinsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-27 18:33:53

Żądanie w twoim przykładzie polega na utworzeniu wiadra. Jeśli próbujesz utworzyć zbyt wiele wiadra lub wymienić wiadra, nie jest to zdrowe.

Pamiętaj, że masz limit 100 wiader dla konta (Zobacz tutaj). EDIT: teraz ten limit jest "miękkim limitem" i możesz go zwiększyć w razie potrzeby.

Zauważ również, że tworzenie wiadra wymaga czasu i:

... nie jest właściwe aby bucket tworzył lub usuwał połączenia na ścieżka kodu wysokiej dostępności Twoje podanie...

Lepiej jest utworzyć raz wiadra, a następnie umieścić dowolną liczbę obiektów, które lubisz w istniejących wiadrach (lub nawet w jednym).

W każdym razie, podczas pracy z systemem, który od czasu do czasu może zawieść, powinieneś być w stanie obsłużyć błędy i spowolnić proces po otrzymaniu takiego błędu. Zobacz więcej szczegółów w AWS Docs .

 19
Author: Guy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-10 00:36:28

Dla wszystkich, którzy natkną się na ten wątek z google, jako pierwszy wynik w poszukiwaniu tego komunikatu o błędzie:

Jeśli usunąłeś bucket, aby odtworzyć go w nowym regionie, nie czekaj "ręcznie", aż synchronizacja w tle zostanie zakończona, zamiast tego Uruchom mały skrypt bash i spróbuj ponownie utworzyć potrzebne bucket co 5 sekund lub więcej.

Przykład:

#!/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!"

Powtórzy operację "Utwórz wiadro" dla ciebie, co kilka sekund (w zależności od "uśpienia") i tak szybko, jak jest to możliwe-stworzy go dla ciebie, więc nikt nie może ukraść nazwy wiadra przez pomyłkę :)

Mam nadzieję, że pomoże:)

 16
Author: Dmitry Shmakov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-07 08:45:10

Ten błąd występuje zwykle, gdy wiadro jest usuwane i tworzone jest nowe wiadro o tej samej nazwie, co stare wiadro.

Uważam, że musimy poczekać pewien czas, aż stworzymy nowe wiadro o tej samej nazwie.

 8
Author: Srivignesh KN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-03 21:55:55

Proste i proste: Zmień nową nazwę wiadra lub odczekaj 1 godzinę.

 5
Author: raphadko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 00:44:00