Thông báo lỗi AWS: Một hoạt động có điều kiện xung đột hiện đang được tiến hành đối với tài nguyên này


181

Tôi nhận được lỗi này không liên tục.

Tôi có một chương trình sử dụng java aws sdk và tải hơn 10 ngàn tệp nhỏ vào s3. Tôi thấy lỗi này không liên tục.

Không thể tìm thấy bất kỳ câu trả lời hữu ích sau khi thực hiện tìm kiếm nhanh trên internet.

Lưu ý chương trình gọi là luồng đơn. Các sdk java aws cơ bản dường như sử dụng các luồng worker.

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)

1
Bạn đang cố gắng đưa các đối tượng vào S3 và sau đó đọc chúng ngay lập tức?
jamieb

@jamieb, thực ra là không, không phải lúc này.
dùng1172468

1
Tôi ước tôi có một câu trả lời cho bạn. Bạn đang cố gắng viết lại các khóa tương tự liên tiếp? S3 được xây dựng theo mô hình "cuối cùng nhất quán" trong đó PUT cần thời gian để giải quyết.
jamieb

@jamieb, cảm ơn vì đã dành chu kỳ não nhưng câu trả lời do Guy cung cấp là chính xác tôi nghĩ vậy. Tôi nghĩ trong mã của mình, tôi đã thử lại để tạo một nhóm - hy vọng sẽ thất bại một cách duyên dáng - nó giống như 99,99% thời gian và đôi khi nó ném lỗi này. Một lần nữa thực sự đánh giá cao bạn dành thời gian để giúp tôi ra ngoài. Vui lên!
dùng1172468

Cảm ơn đã theo lên. Chúc may mắn!
jamieb

Câu trả lời:


464

Tôi đã nhận được thông báo lỗi tương tự, khi tôi đã làm như sau:

  1. đã tạo một nhóm - nó được mặc định chuyển sang khu vực Hoa Kỳ (đã sử dụng AWSCLI)

  2. nhận ra, thùng sẽ đi đến khu vực EU và xóa nó (bảng điều khiển AWS đã sử dụng)

  3. (vài phút sau) đã cố gắng tạo thùng, chỉ định khu vực EU

Ở bước 3, bảng điều khiển AWS đã hiển thị cho tôi thông báo lỗi từ tiêu đề câu hỏi của bạn.

Vì vậy, tôi đoán rằng, cái xô ở Mỹ đã bị xóa, nhưng có thể có một số quy trình đồng bộ hóa, đang mất thời gian. Và tôi hy vọng, chờ vài giờ tôi sẽ tìm thấy tên xô một lần nữa để tạo - lần này là ở khu vực (EU) thích hợp.

CỐ ĐỊNH: - Chỉnh sửa: Khoảng một giờ sau, nỗ lực tạo thùng của tôi (ở khu vực EU) đã thành công.


4
Tôi chỉ gặp tình huống tương tự. Tôi sẽ gửi lại nếu tôi có thể tạo thùng của mình trong vòng một giờ tới.
AJB

27
Tôi có thể xác nhận điều này. Mất khoảng 1,5 giờ và không có gì đảm bảo người khác sẽ không sử dụng tên xô trong khi đó, nhưng bạn có thể lấy lại tên trong một khoảng thời gian hợp lý và với một chút may mắn.
AJB

1
Tôi đồng ý với @jan Để giải quyết vấn đề này: Tạo một nhóm mới với tên mới, Đừng sử dụng tên của nhóm đã xóa trong khi đặt tên cho nhóm mới của bạn.
Dinesh Nắng

5
Đối với tôi chỉ mất chưa đến 70 phút.
off1

4
Amazon nói rằng nó có thể mất tới 10hrs forum.aws.amazon.com/thread.jspa?threadID=37532
TomDotTom

37

Đối với tất cả những người khác vấp phải chủ đề này từ google, là kết quả đầu tiên trong tìm kiếm thông báo lỗi này:

Nếu bạn đã xóa nhóm, để tạo lại trong khu vực mới, đừng đợi "thủ công" cho đến khi hoàn tất đồng bộ hóa nền này , thay vào đó hãy đặt một tập lệnh bash nhỏ để chạy và thử lại việc tạo nhóm cần thiết của bạn sau mỗi 5 giây.

Thí dụ:

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

nó sẽ thử lại thao tác "tạo thùng" cho bạn, cứ sau vài giây (tùy thuộc vào 'ngủ') và ngay khi có thể - sẽ tạo ra nó cho bạn, vì vậy không ai có thể đánh cắp tên xô của bạn do nhầm lẫn :)

hy vọng nó giúp :)


1
Cảm ơn vì điều đó! Trong trường hợp của tôi, tôi đã có khu vực được xác định trong cấu hình aws và chạy tập lệnh như vậy dẫn đến lỗi sau : UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128). Giải pháp là gỡ --regioncờ.
MagentoAaron

23

Yêu cầu trong ví dụ của bạn là tạo một cái xô. Nếu bạn đang cố gắng tạo quá nhiều xô hoặc thay thế xô, điều đó không có lợi cho sức khỏe.

Lưu ý rằng bạn có giới hạn 100 thùng cho một tài khoản (xem tại đây ). EDIT: Bây giờ giới hạn này là "giới hạn mềm" và bạn có thể tăng nó nếu cần.

Cũng lưu ý rằng việc tạo một cái xô cần có thời gian và:

... không phù hợp để tạo nhóm tạo hoặc xóa các cuộc gọi trên đường dẫn mã khả dụng cao của ứng dụng của bạn ...

Tốt hơn là tạo các thùng của bạn một lần và sau đó, bạn có thể đặt bao nhiêu đối tượng mà bạn thích vào các thùng hiện có của bạn (hoặc thậm chí là một đối tượng duy nhất).

Dù sao, khi làm việc với một hệ thống chắc chắn sẽ bị lỗi ngay bây giờ và sau đó, bạn sẽ có thể xử lý lỗi và làm chậm quá trình của bạn khi nhận được một lỗi như vậy. Xem thêm chi tiết trong AWS Docs .


11

Lỗi này thường xảy ra khi một nhóm bị xóa và một nhóm mới được tạo cùng tên với nhóm cũ.

Tôi tin rằng chúng ta sẽ cần đợi một khoảng thời gian nhất định cho đến khi chúng ta có thể tạo một nhóm mới có cùng tên.


8

Đơn giản và dễ hiểu: Thay đổi tên nhóm mới hoặc đợi 1 giờ.


0

Bạn cũng nhận được thông báo này khi bạn có hơn 100 thùng trong tài khoản. Có giới hạn mềm là 100 thùng.


-1

Thay đổi tên xô của bạn hoặc chờ đợi. Tôi đợi tôi chưa đầy 30 phút. Tôi không cần thay đổi tên và tôi không thể thay đổi tên như tôi đã đặt trên nó - nó phải khớp với tên miền đã có của tôi cho một trang web tĩnh mà tôi đang muốn lưu trữ. Dù sao, trong vòng chưa đầy 30 phút, nó đã được tạo tự động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.