7
votes

I am new to Ruby on rails. I've created two basic demo apps by tutorial learning by examples

and suddenly it stops working for my new sample app.

I have generated a controller Pages and two actions home and contact and nothing fancy.

Now, I am not able to open any pages, except the default index.html rails page at localhost:3000. The page at localhost:3000/pages/home and localhost:3000/pages/contact returns this error.

PG::Error

server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

and sometimes (usually when I restart postgresql),

PG::Error

server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. could not send startup packet: Broken pipe

This is my stack trace

activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in initialize' activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in new' activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in connect' activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:329:in initialize' activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:28:in new' activerecord (3.2.8) lib/active_record/connection_adapters/postgresql_adapter.rb:28:in postgresql_connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in new_connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in checkout_new_connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in block (2 levels) in checkout' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in loop' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in block in checkout' /home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in checkout' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in block in connection' /home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in retrieve_connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in retrieve_connection' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in connection' activerecord (3.2.8) lib/active_record/query_cache.rb:67:inrescue in call' activerecord (3.2.8) lib/active_record/query_cache.rb:61:in call' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in call' actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:28:in block in call' activesupport (3.2.8) lib/active_support/callbacks.rb:405:in run_3261957284442330683_call_599627944998934036__callbacks' activesupport (3.2.8) lib/active_support/callbacks.rb:405:in __run_callback' activesupport (3.2.8) lib/active_support/callbacks.rb:385:in_run_call_callbacks' activesupport (3.2.8) lib/active_support/callbacks.rb:81:in run_callbacks' actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:27:incall' actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:65:in call' actionpack (3.2.8) lib/action_dispatch/middleware/remote_ip.rb:31:in call' actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:16:in call' actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:incall' railties (3.2.8) lib/rails/rack/logger.rb:26:in call_app' railties (3.2.8) lib/rails/rack/logger.rb:16:incall' actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in call' rack (1.4.1) lib/rack/methodoverride.rb:21:incall' rack (1.4.1) lib/rack/runtime.rb:17:in call' activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:incall' rack (1.4.1) lib/rack/lock.rb:15:in call' actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:incall' railties (3.2.8) lib/rails/engine.rb:479:in call' railties (3.2.8) lib/rails/application.rb:223:incall' rack (1.4.1) lib/rack/content_length.rb:14:in call' railties (3.2.8) lib/rails/rack/log_tailer.rb:17:incall' rack (1.4.1) lib/rack/handler/webrick.rb:59:in service' /home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in service' /home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in run' /home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in block in start_thread'

I am not using database for now. I tried to do rake db:migrate but it returns the same error.

I am on Ubuntu 12.04 (as some bugs on google were related to ubuntu)

I have found similar questions on SO, but they are experiencing at some advance stage and thus involves some advance solutions.

1
Check the PostgreSQL error logs for more information.Craig Ringer
I've found the answer and specified the same below.Jashwant
Weird error for that problem. It should've been giving you "connection refused". "Closed the connection unexpectedly" suggests that you managed to get a connection which was then closed with a TCP RST or FIN. Weird.Craig Ringer

1 Answers

5
votes

Although, I am not using the database but specifying the port in configuration in database.yml solves the problem. By default, the rails new <app_name> --database=postgresql command does not put a port there.

Here's my config.

development:
  adapter: postgresql
  encoding: unicode
  database: sample_app_development
  pool: 5  
  port: 5433
  username: myusername
  password: mypassword
  reconnect: true