AWS त्रुटि संदेश: इस संसाधन के विरुद्ध वर्तमान में एक विरोधाभासी सशर्त कार्रवाई जारी है


181

मुझे यह त्रुटि रुक-रुक कर हो रही है।

मेरे पास एक प्रोग्राम है जो जावा aws sdk का उपयोग करता है और s3 में हजारों छोटी फाइलों के 10s पर लोड करता है। मैं इस त्रुटि को रुक-रुक कर देखता हूं।

इंटरनेट पर त्वरित खोज करने के बाद कोई उपयोगी उत्तर नहीं मिल सका।

ध्यान दें कि कॉलिंग प्रोग्राम सिंगल थ्रेडेड है। अंतर्निहित अर्स जावा sdk वर्कर थ्रेड्स का उपयोग करता प्रतीत होता है।

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
क्या आप वस्तुओं को S3 में डालने की कोशिश कर रहे हैं और फिर उन्हें तुरंत पढ़ें?
जामईब

@jamieb, वास्तव में नहीं, इस समय नहीं।
user1172468

1
काश मेरे पास आपके लिए एक उत्तर होता। क्या आप तेजी से उत्तराधिकार में उसी कुंजी को फिर से लिखने की कोशिश कर रहे हैं? S3 एक "अंततः सुसंगत" मॉडल पर बनाया गया है जहां PUTs को बसने के लिए समय चाहिए।
जामईब

@ जैमीब, मस्तिष्क चक्र खर्च करने के लिए धन्यवाद, लेकिन गाय द्वारा प्रदान किया गया उत्तर सही है, मुझे लगता है। मुझे लगता है कि मैं अपने कोड में एक बाल्टी बनाने के लिए फिर से प्रयास करता हूं - इनायत से असफल होने की उम्मीद - यह समय के 99.99% को पसंद करता है और कभी-कभी यह त्रुटि फेंकता है। फिर से वास्तव में मेरी मदद करने के लिए समय निकालकर आपकी सराहना करते हैं। चीयर!
user1172468

पालन ​​करने के लिए धन्यवाद। सौभाग्य!
जामईब

जवाबों:


463

मुझे एक ही त्रुटि संदेश मिला, जब मैंने निम्नलिखित किया:

  1. एक बाल्टी बनाई - यह अमेरिकी क्षेत्र में डिफ़ॉल्ट रूप से चला गया (AWSCLI का उपयोग किया गया)

  2. एहसास हुआ, बाल्टी यूरोपीय संघ के क्षेत्र में जाएगी और इसे हटा दिया (AWS कंसोल का उपयोग किया)

  3. (कुछ मिनट बाद) ने ईयू क्षेत्र को निर्दिष्ट करते हुए बाल्टी बनाने की कोशिश की

चरण 3 पर, AWS कंसोल ने मुझे आपके प्रश्न के शीर्षक से त्रुटि संदेश दिखाया है।

इसलिए मुझे लगता है, कि अमेरिका में बाल्टी को हटा दिया गया था, लेकिन संभवतः कुछ सिंक्रनाइज़ेशन प्रक्रियाएं हैं, जो समय ले रही हैं। और मुझे उम्मीद है, कि कुछ घंटों के इंतजार में मुझे फिर से निर्माण के लिए उपलब्ध बाल्टी नाम मिल जाएगा - इस बार उचित (ईयू) क्षेत्र में।

FIX: - संपादित करें: लगभग एक घंटे बाद, बाल्टी बनाने का मेरा प्रयास (ईयू क्षेत्र में) सफल रहा।


4
मैं बस उसी स्थिति में भाग गया। अगर मैं अगले घंटे के भीतर अपनी बाल्टी बना सकता हूं तो मैं वापस पोस्ट करूंगा।
एजेबी

27
मैं इसकी पुष्टि कर सकता हूं। इसमें लगभग 1.5hrs लगते हैं, और इस बात की कोई गारंटी नहीं है कि इस बीच किसी और को बाल्टी का नाम नहीं दिया जाएगा, लेकिन आप इसे वापस ले सकते हैं, यह समय की उचित अवधि के भीतर लगता है, और थोड़े से भाग्य के साथ।
एजेबी

1
मैं इसे सुलझाने के लिए @jan से सहमत हूं: नए नाम के साथ एक नई बाल्टी बनाएं, अपनी नई बाल्टी का नामकरण करते समय हटाए गए बाल्टी के नाम का उपयोग न करें।
दिनेश सनी

5
मेरे लिए 70 मिनट से भी कम समय लगा।
offby1

4
अमेज़न का कहना है कि यह 10hrs तक कहीं भी ले जा सकता है ।aws.amazon.com
thread.jspa

37

Google से इस थ्रेड पर ठोकर खाने वाले अन्य सभी लोगों के लिए, इस त्रुटि संदेश की खोज में 1 परिणाम के रूप में:

यदि आपने बाल्टी को हटा दिया है, तो नए क्षेत्र में फिर से बनाने के लिए, "मैन्युअल रूप से" प्रतीक्षा न करें जब तक कि यह पृष्ठभूमि सिंक पूरा नहीं हो जाता है , इसके बजाय हर 5 सेकंड या तो अपनी आवश्यक बाल्टी निर्माण को चलाने और पुन: प्रयास करने के लिए एक छोटी सी बैश स्क्रिप्ट डालें।

उदाहरण:

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

यह आपके लिए, हर कुछ सेकंड ('नींद' पर निर्भर करता है) के लिए "बाल्टी बनाएँ" ऑपरेशन को फिर से करेगा और जैसे ही यह संभव होगा - यह आपके लिए बना देगा, इसलिए कोई भी गलती से आपका बाल्टी नाम नहीं चुरा सकता है :)

आशा करता हूँ की ये काम करेगा :)


1
इसके लिए धन्यवाद! मेरे उदाहरण में, मेरे पास पहले से ही अंपर्स कॉन्फ़िगरेशन में परिभाषित क्षेत्र है और स्क्रिप्ट को चलाना निम्न त्रुटि के परिणामस्वरूप है UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 17: ordinal not in range(128):। इसका समाधान --regionझंडा हटाना था ।
MagentoAaron

23

आपके उदाहरण में अनुरोध एक बाल्टी बनाना है। यदि आप बहुत अधिक बाल्टी बनाने या बाल्टी को बदलने की कोशिश कर रहे हैं, तो यह स्वस्थ नहीं है।

ध्यान दें कि आपके पास एक खाते के लिए 100 बाल्टी की सीमा है ( यहां देखें )। EDIT: अब यह सीमा एक "सॉफ्ट लिमिट" है और जरूरत पड़ने पर आप इसे बढ़ा सकते हैं।

यह भी ध्यान दें कि एक बाल्टी के निर्माण में समय लगता है और:

... आपके आवेदन की उच्च उपलब्धता कोड पथ पर बाल्टी बनाने या कॉल हटाने के लिए उपयुक्त नहीं है ...

एक बार फिर अपनी बाल्टियाँ बनाना बेहतर होता है, आप अपनी मौजूदा बाल्टियों (या एक एकल) में जितनी चाहें उतनी वस्तुएँ रख सकते हैं।

वैसे भी, जब एक ऐसी प्रणाली के साथ काम करना जो किसी भी समय विफल होना तय है, तो आपको त्रुटियों को संभालने में सक्षम होना चाहिए और इस तरह की त्रुटि प्राप्त होने पर अपनी प्रक्रिया को धीमा करना चाहिए। AWS डॉक्स में अधिक विवरण देखें ।


11

यह त्रुटि आमतौर पर तब होती है जब एक बाल्टी को हटा दिया जाता है और एक पुरानी बाल्टी के नाम से एक नई बाल्टी बनाई जाती है।

मेरा मानना ​​है कि जब तक हम उसी नाम से एक नई बाल्टी नहीं बना सकते, तब तक हमें कुछ समय के लिए इंतजार करना होगा।


8

सरल और सीधा: नया बाल्टी नाम बदलें या 1 घंटा प्रतीक्षा करें।


0

आपको यह संदेश तब भी मिलता है जब आपके पास पहले से ही 100 से अधिक बाल्टी हैं। 100 बाल्टियों की नरम सीमा है।


-1

अपना बकेट नाम बदलें या प्रतीक्षा करें। मैंने 30 मिनट से कम समय तक इंतजार किया। मुझे नाम बदलने की आवश्यकता नहीं थी और मैं इसे बदल नहीं सकता था क्योंकि मैं इस पर सेट था - यह मेरे पहले से ही मौजूद डोमेन नाम को स्थिर वेबसाइट के लिए मैच करना था जिसे मैं होस्ट करना चाहता था। वैसे भी, 30 मिनट से भी कम समय में यह अपने आप बन गया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.