Pesan Kesalahan AWS: Operasi bersyarat yang bertentangan saat ini sedang berlangsung terhadap sumber daya ini

181

Saya mendapatkan kesalahan ini sewaktu-waktu.

Saya punya program yang menggunakan java aws sdk dan memuat lebih dari 10s dari ribuan file kecil ke s3. Saya melihat kesalahan ini sebentar-sebentar.

Tidak dapat menemukan jawaban yang membantu setelah melakukan pencarian cepat di internet.

Perhatikan bahwa program panggilan adalah utas tunggal. Aws java sdk yang mendasari tampaknya menggunakan utas pekerja.

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)
pengguna1172468
sumber
1
Apakah Anda mencoba memasukkan benda ke S3 dan kemudian segera membacanya?
jamieb
@ Janamieb, sebenarnya tidak, tidak saat ini.
user1172468
1
Saya berharap saya punya jawaban untuk Anda. Apakah Anda mencoba menulis ulang kunci yang sama secara berurutan? S3 dibangun pada model "akhirnya konsisten" di mana PUT membutuhkan waktu untuk menyelesaikannya.
jamieb
@jamieb, terima kasih telah menghabiskan siklus otak tetapi jawaban yang diberikan oleh Guy benar saya pikir. Saya pikir dalam kode saya saya coba lagi untuk membuat ember - berharap untuk gagal dengan anggun - itu seperti 99,99% dari waktu dan kadang-kadang melempar kesalahan ini. Sekali lagi sangat menghargai Anda meluangkan waktu untuk membantu saya. Bersorak!
user1172468
Terima kasih atas tindak lanjutnya. Semoga berhasil!
jamieb

Jawaban:

464

Saya mendapat pesan kesalahan yang sama, ketika saya melakukan hal berikut:

  1. membuat ember - secara default masuk ke wilayah AS (digunakan AWSCLI)

  2. menyadari, ember harus pergi ke wilayah UE dan menghapusnya (digunakan konsol AWS)

  3. (beberapa menit kemudian) mencoba membuat ember, menentukan wilayah UE

Pada langkah 3, konsol AWS telah menunjukkan kepada saya pesan kesalahan dari judul pertanyaan Anda.

Jadi saya kira, bahwa ember di AS telah dihapus, tetapi mungkin ada beberapa proses sinkronisasi, yang membutuhkan waktu. Dan saya berharap, bahwa menunggu beberapa jam saya akan menemukan nama ember lagi tersedia untuk pembuatan - kali ini di wilayah yang tepat (UE).

PERBAIKI: - Edit: Sekitar satu jam kemudian, upaya saya untuk membuat ember (di kawasan UE) berhasil.

Jan Vlcinsky
sumber
4
Saya hanya mengalami situasi yang sama. Saya akan mengirim kembali jika saya dapat membuat ember saya dalam satu jam berikutnya.
AJB
27
Saya dapat mengkonfirmasi ini. Butuh waktu sekitar 1,5 jam, dan tidak ada jaminan orang lain tidak akan mengambil nama ember sementara itu, tetapi Anda bisa mendapatkannya kembali sepertinya dalam jangka waktu yang wajar, dan dengan sedikit keberuntungan.
AJB
1
Saya setuju dengan @jan Untuk mengatasi ini: Buat ember baru dengan nama baru, Jangan gunakan nama ember yang dihapus saat memberi nama ember baru Anda.
Dinesh Sunny
5
Bagi saya butuh kurang dari 70 menit.
offby1
4
Amazon mengatakan bahwa itu bisa memakan waktu hingga 10 jam forums.aws.amazon.com/thread.jspa?threadID=37532
TomDotTom
37

Untuk semua orang lain yang menemukan utas ini dari google, sebagai hasil pertama dalam mencari pesan kesalahan ini:

Jika Anda menghapus bucket, untuk membuat ulang di wilayah baru, jangan tunggu "secara manual" sampai sinkronisasi latar belakang ini selesai , alih-alih letakkan skrip bash kecil untuk menjalankan dan coba lagi pembuatan bucket yang Anda butuhkan setiap 5 detik atau lebih.

Contoh:

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

itu akan mencoba kembali operasi "buat ember" untuk Anda, setiap beberapa detik (bergantung pada 'tidur') dan secepatnya memungkinkan - akan membuatnya untuk Anda, jadi tidak ada yang dapat mencuri nama ember Anda tanpa sengaja :)

semoga membantu :)

Dmitry Shmakov
sumber
1
Terima kasih untuk ini! Dalam contoh saya, saya sudah memiliki wilayah yang ditetapkan dalam konfigurasi AWS dan menjalankan script seperti yang mengakibatkan kesalahan berikut: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128). Solusinya adalah menghapus --regionbendera.
MagentoAaron
23

Permintaan dalam contoh Anda adalah membuat ember. Jika Anda mencoba membuat terlalu banyak ember atau mengganti ember, itu tidak sehat.

Perhatikan bahwa Anda memiliki batas 100 ember untuk akun (lihat di sini ). EDIT: Sekarang batas ini adalah "batas lunak" dan Anda dapat meningkatkannya jika diperlukan.

Perhatikan juga bahwa pembuatan ember membutuhkan waktu dan:

... tidak tepat untuk membuat bucket membuat atau menghapus panggilan di jalur kode ketersediaan tinggi aplikasi Anda ...

Lebih baik untuk membuat ember sekali dan kemudian, Anda dapat meletakkan sebanyak mungkin objek yang Anda suka di ember yang ada (atau bahkan satu).

Bagaimanapun, ketika bekerja dengan sistem yang pasti gagal setiap saat, Anda harus dapat menangani kesalahan dan memperlambat proses Anda saat menerima kesalahan seperti itu. Lihat lebih detail di AWS Documents .

Orang
sumber
11

Kesalahan ini biasanya terjadi ketika Bucket dihapus dan ember baru dibuat dengan nama yang sama dengan ember lama.

Saya yakin kami perlu menunggu beberapa saat sampai kami dapat membuat ember baru dengan nama yang sama.

Srivignesh KN
sumber
8

Sederhana dan mudah: Ubah nama bucket baru atau tunggu 1 jam.

raphadko
sumber
0

Anda juga mendapatkan pesan ini saat Anda sudah memiliki lebih dari 100 ember di akun. Ada batas lunak 100 ember.

John Mee
sumber
-1

Ubah nama ember Anda atau tunggu. Saya menunggu kurang dari 30 menit untuk milik saya. Saya tidak perlu mengubah nama dan saya tidak bisa mengubahnya karena sudah ditentukan - itu harus cocok dengan nama domain saya yang sudah ada untuk situs web statis yang saya cari host. Bagaimanapun, dalam waktu kurang dari 30 menit itu dibuat secara otomatis.

vel12171
sumber