Gary-- Hmm.... definitely something in the runner. My guess is that the runner has a max memory on its "headless" runner dyno and you've hit against the max memory by trying to load a CSV file.
Did you try this using a rake task instead? What does Heroku support say? They should be able to tell you what is going on there. -Jason > On Apr 1, 2015, at 4:16 PM, Gary Tsai <[email protected]> wrote: > > I'm having issues importing a CSV using a rails runner command once my > application code is deployed to Heroku. > > The CSV gets started from the command line like this: > > heroku run rails runner scripts/import_csv.rb < lesley_grades.csv > which then gets initialized here > > CSVImporter.new.import!($stdin) > This is the code for the CVS import > > def import!(csv) > p "Before database transaction" > ActiveRecord::Base.transaction do > p "I'm here before CSV.parse!!!!!" > csv_reader = CSV.parse(csv, row_sep: "\r") do |row| > p header_row?(row) > p "Header row!?" > set_record_class_and_columns(row) if header_row?(row) > > if columns_mapping_defined? && record_class_defined? && > record_row?(row) > import_row(row) > end > end > if imports_failed? > puts 'Aborting importing and rolling back...' > show_errors > raise ActiveRecord::Rollback > end > end > end > Here is the log and the error message that gets printed after I control+c > from the stall. > > heroku run rails runner scripts/import_csv.rb < > ~/Desktop/utc_csv_export/lesley_grades.csv > Running `rails runner scripts/import_csv.rb` attached to terminal... up, > run.9179 > LesleyGrade,lesley_id,last,first,active,site,cohort,section,sections_title,faculty,completed_term_cred,term,sec_start_date,sec_end_date,grade,stc_cred,active_program,most_recent_program,intent_filed,stc_term_gpa,sta_cum_gpa,start_term,prog_status,last_change_date > ,1654038,John,Doe,TRUE,"Baltimore, MD",2012,14/FA_ERLIT_6999_U15AA,Directed > Independent Study,"McMackin Mary , Richardson > Kathleen",2,14/FA,9/3/14,12/17/14,S,2,EME.2270.TCBAL.01,EME.2270.TCBAL.01, > ,3.3,3.148,12/SU,A,9/2/14** [NewRelic][03/31/15 18:30:10 +0000 > faf23bac-4be0-4098-82e5-612003c543e6 (3)] INFO : Starting the New Relic agent > in "staging" environment. > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : To prevent agent startup add a NEWRELIC_AGENT_ENABLED=false > environment variable or modify the "staging" section of your newrelic.yml. > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Reading configuration from config/newrelic.yml > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Environment: staging > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : No known dispatcher detected. > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Application: My Application (Staging) > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing deferred Rack instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Rack::Builder middleware instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Net instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Rails 3+ middleware instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing middleware-based Excon instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing ActiveRecord 4 instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Rails 4 Controller instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Rails 4 Error instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Installing Rails 4 view instrumentation > ** [NewRelic][03/31/15 18:30:10 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Finished instrumentation > ** [NewRelic][03/31/15 18:30:11 +0000 faf23bac-4be0-4098-82e5-612003c543e6 > (3)] INFO : Reporting to: > https://rpm.newrelic.com/accounts/773165/applications/4986263 > "Before database transaction" > "I'm here before CSV.parse!!!!!" > ^C^C** [NewRelic][03/31/15 18:35:15 +0000 > faf23bac-4be0-4098-82e5-612003c543e6 (3)] INFO : Starting Agent shutdown > /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1778:in `gets': Interrupt > from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1778:in `block in shift' > from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1776:in `loop' > from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1776:in `shift' > from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1718:in `each' > from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/csv.rb:1296:in `parse' > from /app/lib/import/csv_importer.rb:14:in `block in import!' > from > /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in > `block in transaction' > from > /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:219:in > `within_new_transaction' > from > /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in > `transaction' > from > /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.1/lib/active_record/transactions.rb:208:in > `transaction' > from /app/lib/import/csv_importer.rb:12:in `import!' > from scripts/import_csv.rb:3:in `<top (required)>' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/runner.rb:60:in > `load' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/runner.rb:60:in > `<top (required)>' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:128:in > `require' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:128:in > `require_command!' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:95:in > `runner' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in > `run_command!' > from > /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands.rb:17:in > `<top (required)>' > from /app/bin/rails:4:in `require' > from /app/bin/rails:4:in `<main>' > As you can see from the console I can't get passed this line(14): > > csv_reader = CSV.parse(csv, row_sep: "\r") > Is this a Dyno's issue or even a New Relic issue? So far I'm running this on > a free heroku instance, and I only uploaded 2 rows just to test it, and it > still doesn't work. > > Anyone have any clues? Thanks! > > > -- > -- > You received this message because you are subscribed to the Google > Groups "Heroku" group. > > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/heroku?hl=en_US?hl=en > <http://groups.google.com/group/heroku?hl=en_US?hl=en> > > --- > You received this message because you are subscribed to the Google Groups > "Heroku Community" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. ---- Jason Fleetwood-Boldt [email protected] http://www.jasonfleetwoodboldt.com/writing -- -- You received this message because you are subscribed to the Google Groups "Heroku" group. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/heroku?hl=en_US?hl=en --- You received this message because you are subscribed to the Google Groups "Heroku Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
