2012-05-04 15 views
5

का उपयोग करते समय हम एक ऐसा एप्लिकेशन बना रहे हैं जो ऑफ़लाइन डेटा स्टोर करने के लिए फ़ायरफ़ॉक्स पर इंडेक्सड डीबी का व्यापक उपयोग करता है।त्रुटि "ऑपरेशन विफल हुआ क्योंकि अनुरोधित डेटाबेस ऑब्जेक्ट नहीं मिला ..." अनुक्रमणित डीबी

यह काम करता है अच्छी तरह से समय की सबसे लेकिन कभी-कभी की तरह त्रुटियों के साथ विफल रहता है निम्नलिखित:

Exception... "The operation failed because the requested database object could 
not be found. For example, an object store did not exist but was being opened." 
code: "3" nsresult: "0x80660003 (NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR)" 

यह कोड में विभिन्न स्थानों में विफल रहा है;

_writePage: (storeName, startIndex, endIndex, binder) -> 
    writeTransaction = @connection.transaction([storeName], @idbTransaction.READ_WRITE) 
    store = writeTransaction.objectStore(storeName) 
    for index in [startIndex...endIndex] when (item = binder.list[index])? 
    writeRequest = store.put(item) 
    writeRequest.onerror = binder.failCallback() 
    writeRequest.onsuccess = binder.successCallback() 
    if endIndex >= binder.list.length 
    binder.finishedRegisteringCallbacks() 
    return 
    setTimeout((=> @_writePage(storeName, endIndex, endIndex + @WRITE_EACH_PAGE_SIZE, binder)), @WRITE_EACH_PAGE_DELAY) 
    null 

बात यह है कि पहेली मुझे उस विफलताओं बार बार होते हैं, स्वचालित परीक्षण है कि आमतौर पर काम (हम फांसी के सैकड़ों प्रति इन विफलताओं में से एक को देख रहे हैं) के दौरान होता है: यहाँ अपराधियों में से एक है।

यह उल्लेखनीय है कि हम सैकड़ों मेगाबाइट्स के क्रम में भी बहुत सारे डेटा संग्रहित कर रहे हैं। स्वचालित परीक्षणों को केवल कुछ मेगाबाइट स्टोर करता है, इसलिए यह आकार का मामला नहीं है।

क्या किसी और ने अनुभव किया है (या बेहतर अभी तक, अनुभवी और तय!) इस समस्या?

उत्तर

1

यह फ़ायरफ़ॉक्स बग प्रतीत होता है। मैंने Bug 751802 - Intermittent IndexedDB write failures उठाया है और मेरे सहयोगी और मैं फ़ायरफ़ॉक्स लोगों के साथ काम करने में व्यस्त हूं ताकि इसे पुन: पेश किया जा सके।

उस समय के लिए कोई कामकाज या ठीक नहीं है।

0

यह देखने के लिए जांचें कि क्या होता है जब आपके पास एकाधिक टैब खुलते हैं। यदि उनमें से एक setVersion (पुरानी एपीआई) या onupgradedneeded (नई एपीआई) में है तो यह शायद दूसरे में समस्याएं पैदा करने जा रहा है।

डीबग करने के लिए, सुनिश्चित करें कि आप onblocked (बनाम onerror) डीबी खोलते समय ईवेंट की तलाश में हैं।

+0

धन्यवाद है - लेकिन यह केवल एक ही टैब के साथ prod में हुआ है एक ब्राउज़र उदाहरण में। –

संबंधित मुद्दे