Hi Donald

I've just updated TS so it will not raise errors when updating indexes - only 
when searching. And if you don't want the errors when searching, then you'll 
need to do two things:

* Add a 'rescue Riddle::ConnectionError' to any actions that search.
* Add the :populate => true option to your search calls.

Normally, Thinking Sphinx lazily loads search results (allowing for sphinx 
scopes and such) - but if you want the rescue to take effect, then you'll need 
to force the results to load immediately - hence the :populate option.

Hopefully this sorts it all out.

Cheers

-- 
Pat

On 31/12/2010, at 6:25 PM, Donald Piret wrote:

> I'm working on a setup where my sphinx server is separate from the
> application servers.
> However in the event the sphinx server is down I'm getting a lot of
> the following Hoptoad notification for failed requests:
> 
> Error Message:
> Riddle::ConnectionError: Connection to domU-12-31-39-16-84-
> D2.compute-1.internal on 9312 failed. Connection refused - connect(2)
> 
> Where:
> host/inquiries#update
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb, line 562
> 
> Backtrace Summary:
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:562:in `rescue in
> initialise_socket'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:550:in
> `initialise_socket'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/0.9.9/client.rb:8:in
> `initialise_connection'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:485:in `open_socket'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:521:in `connect'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:581:in `request'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:220:in `run'
> [GEM_ROOT]/gems/riddle-1.2.1/lib/riddle/client.rb:327:in `query'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:391:in `block (2 levels) in populate'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/
> notifications.rb:52:in `block in instrument'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/notifications/
> instrumenter.rb:21:in `instrument'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/
> notifications.rb:52:in `instrument'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:463:in `log'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:472:in `log'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:390:in `block in populate'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:511:in `call'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:511:in `retry_on_stale_index'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:388:in `populate'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search.rb:176:in `method_missing'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/search_methods.rb:395:in `search_for_id'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/active_record/attribute_updates.rb:46:in
> `update_index'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/active_record/attribute_updates.rb:23:in `block in
> update_attribute_values'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/active_record/attribute_updates.rb:16:in `each'
> [GEM_ROOT]/bundler/gems/thinking-sphinx-5a6dc22fd1ae/lib/
> thinking_sphinx/active_record/attribute_updates.rb:16:in
> `update_attribute_values'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:
> 463:in `_run_save_callbacks'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/callbacks.rb:
> 277:in `create_or_update'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 1524:in `block (3 levels) in define_action_helpers'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:149:in `block in run_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:169:in `catch_exceptions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:147:in `run_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:132:in `run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:222:in `run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:127:in `block in run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 356:in `before'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 188:in `block in run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 279:in `block in pausable'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 279:in `catch'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 279:in `pausable'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 188:in `run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:126:in `run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:211:in `run_callbacks'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:63:in `block (2 levels) in perform'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:63:in `catch'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:63:in `block in perform'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:185:in `within_transaction'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:62:in `perform'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 1524:in `block (2 levels) in define_action_helpers'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/persistence.rb:
> 39:in `save'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/validations.rb:
> 43:in `save'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/attribute_methods/
> dirty.rb:21:in `save'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 237:in `block (2 levels) in save'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 289:in `block in with_transaction_returning_status'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/
> connection_adapters/abstract/database_statements.rb:139:in
> `transaction'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 204:in `transaction'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> method_tracer.rb:319:in `block in
> transaction_with_trace_ActiveRecord_self_name_transaction'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> method_tracer.rb:141:in `trace_execution_scoped'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> method_tracer.rb:314:in
> `transaction_with_trace_ActiveRecord_self_name_transaction'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 287:in `with_transaction_returning_status'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 237:in `block in save'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 248:in `rollback_active_record_state!'
> [GEM_ROOT]/gems/activerecord-3.0.3/lib/active_record/transactions.rb:
> 236:in `save'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:153:in `block (2 levels) in run_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:153:in `each'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:153:in `block in run_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:169:in `catch_exceptions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:147:in `run_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/
> transition_collection.rb:60:in `perform'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/transition.rb:
> 162:in `perform'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/event.rb:207:in
> `fire'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/event.rb:258:in
> `block in add_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 537:in `call'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 537:in `block (2 levels) in define_instance_method'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/event.rb:263:in
> `block in add_actions'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 537:in `call'
> [GEM_ROOT]/gems/state_machine-0.9.4/lib/state_machine/machine.rb:
> 537:in `block (2 levels) in define_instance_method'
> [PROJECT_ROOT]/app/controllers/host/inquiries_controller.rb:227:in
> `process_inquiry_action'
> [PROJECT_ROOT]/app/controllers/host/inquiries_controller.rb:52:in
> `update'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/
> implicit_render.rb:4:in `send_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/abstract_controller/base.rb:
> 151:in `process_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/
> rendering.rb:11:in `process_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/abstract_controller/callbacks.rb:
> 18:in `block in process_action'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:
> 470:in `_run__264061087__process_action__898590983__callbacks'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:
> 409:in `_run_process_action_callbacks'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:
> 93:in `run_callbacks'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/abstract_controller/callbacks.rb:
> 17:in `process_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/
> instrumentation.rb:30:in `block in process_action'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/
> notifications.rb:52:in `block in instrument'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/notifications/
> instrumenter.rb:21:in `instrument'
> [GEM_ROOT]/gems/activesupport-3.0.3/lib/active_support/
> notifications.rb:52:in `instrument'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/
> instrumentation.rb:29:in `process_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/rescue.rb:
> 17:in `process_action'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> instrumentation/rails3/action_controller.rb:34:in `block in
> process_action'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> instrumentation/controller_instrumentation.rb:252:in `block in
> perform_action_with_newrelic_trace'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> method_tracer.rb:141:in `trace_execution_scoped'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> instrumentation/controller_instrumentation.rb:247:in
> `perform_action_with_newrelic_trace'
> [GEM_ROOT]/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/
> instrumentation/rails3/action_controller.rb:33:in `process_action'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/abstract_controller/base.rb:
> 120:in `process'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/abstract_controller/rendering.rb:
> 40:in `process'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal.rb:138:in
> `dispatch'
> [GEM_ROOT]/gems/actionpack-3.0.3/lib/action_controller/metal/
> rack_delegation.rb:14:in `dispatch'
> 
> 
> Is it possible to somehow have the application not error out when the
> sphinx server is unavailable or the config file not present for
> whatever reason?
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/thinking-sphinx?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to