2011-12-08 15 views
5

ये त्रुटियां तब नहीं होती जब कोई भी व्यक्ति सिस्टम का परीक्षण करता है। लेकिन एक JMeter परीक्षण के साथ, मैं बहुत मज़बूती से कुछ त्रुटियों की तर्ज पर पुन: पेश कर सकते हैं:रेल 3/jruby में, इस त्रुटि को अंतःस्थापित करने का कारण क्या हो सकता है? SAVEPOINT active_record_1 मौजूद नहीं है

ActiveRecord::JDBCError: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1 

Stack: 

    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:207:in `log' 
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:200:in `log' 
    gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/jdbc/adapter.rb:208:in `execute' 
    gems/gems/activerecord-jdbc-adapter-1.2.1/lib/arjdbc/mysql/adapter.rb:156:in `rollback_to_savepoint' 
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:179:in `transaction' 
    gems/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:171:in `transaction' 
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:207:in `transaction' 
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:290:in `with_transaction_returning_status' 
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:240:in `save' 
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:251:in `rollback_active_record_state!' 
    gems/gems/activerecord-3.0.10/lib/active_record/transactions.rb:239:in `save' 
    ...(our code that simply calls save on a new instance of a model class)... 

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

हम रेल 3.0.10, JRuby 1.6.5, ActiveRecord-jdbcmysql-एडाप्टर का उपयोग, वार्बलर 1.3.2 के साथ warbled और एक एकल Mysql उदाहरण, v5 के साथ लचीला बीनस्टॉक के माध्यम से तैनात किए गए पर 64-बिट बिलाव 7/अमेज़न आरडीएस। 1.57। हम config.threadsafe के लिए सेट हैं! - और यह ActiveRecord के आंतों में किसी तरह की दौड़ की तरह लगता है - लेकिन ActiveRecord थ्रेडसेफ में काम करना चाहिए, नहीं?

एक अंतिम नोट: मुझे डर है कि यह एक जेआरबी या वारबलर समस्या है, क्योंकि अगर हम जेआरबी से एमआरआई रुबी 1.9 में स्विच करते हैं तो हम इस समस्या को पुन: पेश नहीं कर सकते हैं।

+0

यह बेवकूफ लगता है, लेकिन जब डिस्क डिस्क से बाहर निकला तो मुझे यह त्रुटि हुई। test.log ने 'SAVEPOINT active_record_1' दिखाया,' INSERT INTO ... '=> 'SQLite3 :: FullException: डेटाबेस या डिस्क पूर्ण है,' सक्रिय करने के लिए रोलबैक सक्रिय_record_1' =>' SQLite3 :: SQLException: ऐसा कोई सहेजना नहीं है। (कारण सेलिनियम डेटा/tmp में जमा हुआ था।) –

उत्तर

1

यह this commit से संबंधित हो सकता है, जो 1.2.1 में पेश किया गया था। क्या 1.2.0 आपको एक ही मुद्दा देता है?

शायद मुझे लेनदेन समर्थित बनाम असफल लेनदेन के लिए कुछ त्रुटि जांच पुन: प्रस्तुत करने की आवश्यकता है। https://github.com/jruby/activerecord-jdbc-adapter/issues पर एक बग फाइल करने की देखभाल करें? धन्यवाद।

+0

रिकॉर्ड के लिए: https://github.com/jruby/activerecord-jdbc-adapter/issues/145 - और धन्यवाद! –

+1

दुर्भाग्यवश, हालांकि यह एक अस्पष्ट रूप से लंबे समय तक ले गया, मैंने इसे 1.2.0 activerecord-jdbc-adapter के साथ भी पुन: उत्पन्न किया है। मैं बग अपडेट करूंगा। मुझे अंततः यह परिणाम प्राप्त हुआ हैरान नहीं है - मैं अस्पष्ट हैंडलिंग में परिवर्तन के परिणामस्वरूप सेवपॉइंट्स बनने के परिणामस्वरूप अस्पष्ट था। –

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