Mysql2::Error: SAVEPOINT active_record_1 does not exist

Conor
2011-02-09T16:24:48Z

Hi,

I''m switching the database of a rails 3 app I have developed from
postgres to mysql so that I can avail of amazon''s rds. Before I make
the change I have been running my test code using mysql on my dev
machine with the mysql2 adaptor . My test code is throwing up some
errors that I haven''t quite been able to get to the bottom of yet.
Basically I have a model that is used to store large xml uploads. My
test code looks something like this

test "creates forest units all should be okay" do
    file = File.new("test/files/lib/upload_sample.xml")
    upload = XmlUpload.create(:xml_contents => contents = file.read)
    .....
    .....
end

The create line is throwing up the following error

ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT
active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/connection_adapters/abstract_adapter.rb:202:in `rescue
in log''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/connection_adapters/abstract_adapter.rb:194:in `log''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/
active_record/connection_adapters/mysql2_adapter.rb:314:in `execute''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/
active_record/connection_adapters/mysql2_adapter.rb:358:in
`rollback_to_savepoint''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/connection_adapters/abstract/database_statements.rb:
149:in `rescue in transaction''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/connection_adapters/abstract/database_statements.rb:
127:in `transaction''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/transactions.rb:204:in `transaction''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/transactions.rb:287:in
`with_transaction_returning_status''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/transactions.rb:237:in `block in save''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/transactions.rb:248:in `rollback_active_record_state!''
    /Users/conor/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/
active_record/transactions.rb:236:in `save''
    /Users/conor/Documents/treeMetrics/TreeMetricsFrontEnd/test/unit/
xml_upload_test.rb:42:in `block in <class:XmlUploadTest>''

I have been storing the file contents in a text field.  I realise that
I should seriously look at storing the files in s3 but this is the
setup that I have at the moment.  In postgres everything worked fine
but in order to get things to work with mysql I had to set the :limit
variable so that LONGTEXT was used instead of  the standard text
field. The files can be quite large but when I test using small files
there are no problems

I could be barking up the wrong tree entirely but I suspect that the
problem may be caused by the database connection being dropped based
on the errors thrown up when I try uploading a file in the development
mode.

Mysql2::Error: MySQL server has gone away: INSERT INTO
`xml_uploads`  ...................

My database.yaml settings are the following

development:
     adapter: mysql2
     encoding: utf8
     reconnect: true
     database: app_dev
     username: username
     password: password
     host: localhost

test:
     adapter: mysql2
     encoding: utf8
     reconnect: true
     database: app_test
     username: username
     password: password
     host: localhost

Does anyone have any clues as to what the problem is and how it can
fixed? Any help with this would be greatly appreciated

Conor

--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at