heroku / ruby-sample

22 stars 373 forks source link

No longer deploys to heroku out of the box #17

Open benalavi opened 9 years ago

benalavi commented 9 years ago

I had to change from ruby 2.1.0 to ruby 2.2.0 (2.1.0 is not supported on Cedar-14 apparently) and I (manually) changed eventmachine to 1.0.7 in the Gemfile.lock (1.0.3 failed to build).

Here are the errors:

w/ Ruby 2.1.0

remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rack
remote:  !
remote:  !     An error occurred while installing Ruby ruby-2.1.0
remote:  !     For supported Ruby versions see https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
remote:  !     Note: Only the most recent version of Ruby 2.1 is supported on Cedar-14
remote:  !     Command: 'set -o pipefail; curl --fail --retry 3 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/cedar-14/ruby-2.1.0.tgz -s -o - | tar zxf - ' failed unexpectedly
remote:  !     
remote:  !     gzip: stdin: unexpected end of file
remote:  !     tar: Child returned status 1
remote:  !     tar: Error is not recoverable: exiting now
remote:  !

w/ ruby 2.2.0 & eventmachine locked to 1.0.3

remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rack
remote: -----> Using Ruby version: ruby-2.2.0
remote: -----> Installing dependencies using 1.7.12
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Fetching gem metadata from https://rubygems.org/..........
remote:        Installing rack 1.5.2
remote:        Installing daemons 1.1.9
remote:        Using bundler 1.7.12
remote:        Installing rack-protection 1.5.2
remote:        Installing tilt 1.4.1
remote:        Installing sinatra 1.4.4
remote:        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:        /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/ruby-2.2.0/bin/ruby -r ./siteconf20150212-479-rndwnk.rb extconf.rb
remote:        checking for rb_trap_immediate in ruby.h,rubysig.h... no
remote:        checking for rb_thread_blocking_region()... no
remote:        checking for inotify_init() in sys/inotify.h... yes
remote:        checking for writev() in sys/uio.h... yes
remote:        checking for rb_wait_for_single_fd()... yes
remote:        checking for rb_enable_interrupt()... no
remote:        checking for rb_time_new()... yes
remote:        checking for sys/event.h... no
remote:        checking for epoll_create() in sys/epoll.h... yes
remote:        creating Makefile
remote:        make "DESTDIR=" clean
remote:        make "DESTDIR="
remote:        compiling pipe.cpp
remote:        compiling em.cpp
remote:        em.cpp: In member function ‘void EventMachine_t::_RunEpollOnce()’:
remote:        em.cpp:574:37: error: ‘rb_thread_select’ was not declared in this scope
remote:        EmSelect (0, NULL, NULL, NULL, &tv);
remote:        ^
remote:        em.cpp: In member function ‘int SelectData_t::_Select()’:
remote:        em.cpp:827:67: error: ‘rb_thread_select’ was not declared in this scope
remote:        return EmSelect (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
remote:        ^
remote:        em.cpp: In member function ‘void EventMachine_t::_RunSelectOnce()’:
remote:        em.cpp:946:40: error: ‘rb_thread_select’ was not declared in this scope
remote:        EmSelect (0, NULL, NULL, NULL, &tv);
remote:        ^
remote:        make: *** [em.o] Error 1
remote:        make failed, exit code 2
remote:        Gem files will remain installed in /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/bundle/ruby/2.2.0/gems/eventmachine-1.0.3 for inspection.
remote:        Results logged to /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/eventmachine-1.0.3/gem_make.out
remote:        An error occurred while installing eventmachine (1.0.3), and Bundler cannot
remote:        continue.
remote:        Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.
remote:        Bundler Output: Fetching gem metadata from https://rubygems.org/..........
remote:        Installing rack 1.5.2
remote:        Installing daemons 1.1.9
remote:        Using bundler 1.7.12
remote:        Installing rack-protection 1.5.2
remote:        Installing tilt 1.4.1
remote:        Installing sinatra 1.4.4
remote:        
remote:        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:        
remote:        /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/ruby-2.2.0/bin/ruby -r ./siteconf20150212-479-rndwnk.rb extconf.rb
remote:        checking for rb_trap_immediate in ruby.h,rubysig.h... no
remote:        checking for rb_thread_blocking_region()... no
remote:        checking for inotify_init() in sys/inotify.h... yes
remote:        checking for writev() in sys/uio.h... yes
remote:        checking for rb_wait_for_single_fd()... yes
remote:        checking for rb_enable_interrupt()... no
remote:        checking for rb_time_new()... yes
remote:        checking for sys/event.h... no
remote:        checking for epoll_create() in sys/epoll.h... yes
remote:        creating Makefile
remote:        
remote:        make "DESTDIR=" clean
remote:        
remote:        make "DESTDIR="
remote:        compiling pipe.cpp
remote:        compiling em.cpp
remote:        em.cpp: In member function ‘void EventMachine_t::_RunEpollOnce()’:
remote:        em.cpp:574:37: error: ‘rb_thread_select’ was not declared in this scope
remote:        EmSelect (0, NULL, NULL, NULL, &tv);
remote:        ^
remote:        em.cpp: In member function ‘int SelectData_t::_Select()’:
remote:        em.cpp:827:67: error: ‘rb_thread_select’ was not declared in this scope
remote:        return EmSelect (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
remote:        ^
remote:        em.cpp: In member function ‘void EventMachine_t::_RunSelectOnce()’:
remote:        em.cpp:946:40: error: ‘rb_thread_select’ was not declared in this scope
remote:        EmSelect (0, NULL, NULL, NULL, &tv);
remote:        ^
remote:        make: *** [em.o] Error 1
remote:        
remote:        make failed, exit code 2
remote:        
remote:        Gem files will remain installed in /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/bundle/ruby/2.2.0/gems/eventmachine-1.0.3 for inspection.
remote:        Results logged to /tmp/build_5d9693122d37a837676c43638edfff0b/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/eventmachine-1.0.3/gem_make.out
remote:        An error occurred while installing eventmachine (1.0.3), and Bundler cannot
remote:        continue.
remote:        Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote: 
remote:  !     Push rejected, failed to compile Ruby app
remote: 
Praveen-Invoscape commented 7 years ago

I am also have this same this how to solve it @benalavi

Praveen-Invoscape commented 7 years ago

fixed!! update your gem event machine version 1.0.3 to gem 1.0.7 .......