Closed maxdoubt closed 7 years ago
This sounds like a duplicate of #269 which hasn't been merged yet due to the issues mentioned there. I'd be happy to re-review that, or review a new pull request to fix this as discussed in #269.
Thanks for using Jasmine!
So my colleague and I stumbled upon the same issue (jasmine with phantomjs in Docker container). We played around a little bit, maybe this is useful to the discussion at hand:
When you add a sleep(1)
before the call to wait_for_listener
(in ci_runnner.rb
around line 34) it works.
t = @thread.new do
server.start
end
t.abort_on_exception = true
sleep(1)
Jasmine::wait_for_listener(config.port(:ci), 'jasmine server')
Another way is to add Errno::EADDRNOTAVAIL
to the list of known, rescued exceptions in method self.server_is_listening_on(hostname, port)
in base.rb
:
def self.server_is_listening_on(hostname, port)
require 'socket'
begin
socket = TCPSocket.open(hostname, port)
rescue Errno::ECONNREFUSED, Errno::ENETUNREACH, Errno::EAFNOSUPPORT, Errno::EADDRNOTAVAIL
return false
end
socket.close
true
end
We would like to see the latter idea released as a hotfix.
@maxdoubt Do you have any idea if #286 will work for your problem as well?
@slackersoft Is is possible for you to please comment on #286 whether you are willing to release an official version any time soon. I hope this doesn't sound too annoying.
@ncreuschling I'll try and test when i get a free moment (within the week). This docker issue only appeared in our CI tool and I just threw a monkey patch at it to override localhost with 0.0.0.0, so i'll have to figure out how to recreate this locally... stay tuned
Thank you for your reply. This sound exactly like the issue we face (Docker, Jenkins, jasmine). I am looking forward to your experience.
i run jasmine in docker, and am having an issue where
localhost
returnsErrno::EADDRNOTAVAIL: Cannot assign requested address - connect(2) for "localhost" port 58000
.Would binding to
0.0.0.0
, or perhaps have this available as an instance variable that could be easily set, be an appropriate fix? See related code inlib/base.rb
below: