Skip to main content

uncaught exception address already in use bind(2) in rails

uncaught exception address already in use bind(2) ?

You might came across uncaught exception address already in use bind(2) error while trying to start TCP Server for starting your Rails Application. We will see why Address already in use error is thrown by programs while execution. This is most common error that you will come across while developing Rails Application and solution for this is very simple.
Root Cause

Basically the error is self explanatory. It means that server is already started and you are trying to start it again or the some other application is already running on the specific port on TCP server. Thus your program is not able to gain access to that specific port on TCP server.
Finding Process which Process is running

We can find which process is using the address which Rails app tries to run on by using following command:

lsof -i tcp:3000

The above command basically finds process which is using TCP server and 3000 as port address.

The result of above process will be something like:
COMMAND     PID     USER     FD     TYPE     DEVICE     SIZE/OFF     NODE     NAME
ruby     4662     username     12u     IPv4     0x7bc22ecf743faec3     0t0     TCP     *:hbci

Then you will have to kill the process that is using the TCP server with specified source in given command.
Eliminating(Killing) the Process

The process can be killed by using following command:

kill -9 process_id

e.g.

kill -9 4662


(or)
ps aux | grep rails















 kill -9 processor_id



The option -9 is passed to killing the process forcefully.
Re-Running Your Program

Now, you can try running your Rails/Other application and it will start without throwing error: Uncaught exception: Address already in use - bind(2).

Comments

Popular posts from this blog

Gem::LoadError (Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).?

Gem::LoadError (Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).) In rails?


1)change the gemfile in mysql version
 gem 'mysql2'

2)Change to mysql2 version
 gem 'mysql2','0.3.20'

Get user accessing ip address in rails?

Get user accessing ip address rails?

request.ip ->returns the ip, whether is is a local proxy ip (localhost address) or not.
*request.remote_ip -> is smarter and gets the ip address of the client outside of local proxies.
3)If you are using apache in front of a mongrel, then remote_ip will return the source address of the request, which in this case will be local host because the Apache web server is making the request, so instead put this in your controller:

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

PayUMoney Integration in Ruby on Rails

PayUMoney Integration in Ruby on Rails


Generating Cheksum in Payu
   Hash or Checksum
= sha512(key|txnid|amount|productinfo|firstname|email|u
df1|udf2|udf3|udf4|udf5||||||salt)



Controller Code Will be
def payumoney
  @key = "gtKFFx"
  @salt =  "eCwWELxi"
  val = "#{key|txnid|amount|productinfo|firstname|email|u
df1|udf2|udf3|udf4|udf5||||||#{@salt}"
 @checksum = Digest::SHA512.hexdigest("#{val}")
end

<form action="https://test.payu.in/_payment" method='post' id='sub'  >
    <input type="hidden" name="key" value="<%=@key%>">
    <input type="hidden" name="hash" value="<%=@checksum%>">
    <input type="hidden" name="txnid" value="TXN1234">
    <input type="hidden" name="amount" value="200">
    <input type="hidden" name="firstname" value=&quo…