iron_mq_ruby icon indicating copy to clipboard operation
iron_mq_ruby copied to clipboard

RestClientExceptionWrapper: HTTP Error

Open perlun opened this issue 10 years ago • 7 comments

Hi,

Sometimes, our code runs into the exception noted above. Any ideas about what could be causing this? The code is basically something along these lines:

  def listen_on_queue(queue_name)
    ironmq = IronMQ::Client.new(
      host: IRONMQ_HOST,
      token: IRONMQ_TOKEN,
      project_id: IRONMQ_PROJECT_ID
    )

    @logger.debug "Listening on message queue '#{queue_name}'."
    queue = ironmq.queue(queue_name)

    # Slightly stupid to create a new thread, but the worker reloading malfunctions without it.
    Thread.new do
      begin
        queue.poll(wait: 30) do |m|
          handle_message(m.body)
        end
      rescue => e
        @logger.error 'Exception occurred:'
        @logger.error e
      end
    end
  end

The stack trace is as below:

2014-11-19T22:42:48.6397309Z ERROR [2014-11-19 23:42:48.639] Foo: Caught Rest::Wrappers::RestClientExceptionWrapper: HTTP  Error
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/rest-2.7.2/lib/rest/wrappers/rest_client_wrapper.rb:55:in `get'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/rest-2.7.2/lib/rest/client.rb:118:in `get'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/rest-2.7.2/lib/rest/client.rb:142:in `perform_op'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/rest-2.7.2/lib/rest/client.rb:117:in `get'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/iron_core-1.0.5/lib/iron_core/client.rb:187:in `get'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/iron_mq-5.0.1/lib/iron_mq/client.rb:68:in `get'
2014-11-19T22:42:48.6397309Z    D:/eCraft/uxFactory/PRD/server/gems/jruby/1.9/gems/iron_mq-5.0.1/lib/iron_mq/queues.rb:243:in `call_api_and_parse_response'

Any suggestions or ideas? This makes the thread crash, and no more messages gets processed. I guess I could make it slightly more resilient to this, but are there any other good options also?

perlun avatar Nov 19 '14 23:11 perlun

Hi, @perlun.

Which version of gem do you use?

pyeremenko avatar Nov 20 '14 07:11 pyeremenko

iron_mq (5.0.1)

Would it be better with bleeding edge (i.e. master from GitHub)?

perlun avatar Nov 20 '14 14:11 perlun

Strange there is no HTTP error code...

treeder avatar Nov 20 '14 20:11 treeder

This problem is unfortunately still active, with long-running IronMQ polling:

2015-01-27T18:11:52.1217063Z ERROR [2015-01-27 19:11:52.121] DeploymentWorker: Exception occurred:
2015-01-27T18:11:52.1217063Z ERROR [2015-01-27 19:11:52.121] DeploymentWorker: Caught Rest::Wrappers::RestClientExceptionWrapper: HTTP  Error
2015-01-27T19:50:34.2220423Z ERROR [2015-01-27 20:50:34.222] DeploymentWorker: Exception occurred:
2015-01-27T19:50:34.2220423Z ERROR [2015-01-27 20:50:34.222] DeploymentWorker: Caught Rest::Wrappers::RestClientExceptionWrapper: HTTP  Error

Any ideas/suggestions?

perlun avatar Jan 27 '15 20:01 perlun

@perlun do you using IronMQ v3 or v2 API?

featalion avatar Jan 27 '15 20:01 featalion

No idea, so I assume v2? I use the default settings AFAIK.

perlun avatar Jan 27 '15 20:01 perlun

I see in the log you posted above, that errors happen rare (1h40m in the example). Could you please check in your log how often it happens? Are errors like "service unreachable" happen nearby in time?

featalion avatar Jan 27 '15 20:01 featalion