documentcloud / cloud-crowd

Parallel Processing for the Rest of Us
https://github.com/documentcloud/cloud-crowd/wiki
MIT License
851 stars 92 forks source link

Stopping node caused both node and server to crash #36

Open alexw668 opened 12 years ago

alexw668 commented 12 years ago

Hi,

We are evaluating cloud-crowd. We are able to set both server and node up via the crowd command (currently on the same server machine running Ubuntu 10.04) and run some actions. However, when stopping a node via Ctrl-C, I got the following errors on both node and server, and they both crashed. Current cloud-crowd version: 0.6.2.

Not sure if this is a bug or something I did not do right, and I'd appreciate it if you could shed some light on me.

Thanks, Alex

Exception on node (paths are shown as relative):

.rvm/gems/ruby-1.8.7-p357/gems/rest-client-1.6.7/lib/restclient/request.rb:182:in transmit': Server broke connection (RestClient::ServerBrokeConnection) from .rvm/gems/ruby-1.8.7-p357/gems/rest-client-1.6.7/lib/restclient/request.rb:64:inexecute' from .rvm/gems/ruby-1.8.7-p357/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in execute' from .rvm/gems/ruby-1.8.7-p357/gems/rest-client-1.6.7/lib/restclient/resource.rb:97:indelete' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:118:in check_out' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:194:inshut_down' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:185:in trap_signals' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:97:incall' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:97:in join' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:97:instart' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/node.rb:79:in initialize' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:923:innew' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:923:in new' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/command_line.rb:118:instart_node' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/command_line.rb:107:in run_node' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/command_line.rb:43:ininitialize'

Exception on server (paths are shown as relative):

.rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract_adapter.rb:227:in log': Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) LIMIT 25' at line 1: UPDATEwork_unitsSET reservation = 411389905 WHERE (reservation is null and node_record_id is null and status in (1,4,5) and action in ()) LIMIT 25 (ActiveRecord::StatementInvalid) from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/mysql_adapter.rb:324:inexecute' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/database_statements.rb:265:in update_sql' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/mysql_adapter.rb:339:inupdate_sql' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/database_statements.rb:49:in update_without_query_dirty' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/query_cache.rb:19:inupdate' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/base.rb:851:in update_all' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/work_unit.rb:82:inreserve_available' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/work_unit.rb:52:in distribute_to_nodes' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/work_unit.rb:42:inloop' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/work_unit.rb:42:in distribute_to_nodes' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/node_record.rb:109:inredistribute_work_units' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/node_record.rb:109:in initialize' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/node_record.rb:109:innew' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/models/node_record.rb:109:in redistribute_work_units' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:178:insend' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:178:in evaluate_method' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:166:incall' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:93:in run' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:92:ineach' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:92:in send' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:92:inrun' from .rvm/gems/ruby-1.8.7-p357/gems/activesupport-2.3.14/lib/active_support/callbacks.rb:276:in run_callbacks' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/callbacks.rb:344:incallback' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/callbacks.rb:338:in destroy_without_transactions' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/transactions.rb:229:insend' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/transactions.rb:229:in with_transaction_returning_status' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/connection_adapters/abstract/database_statements.rb:136:intransaction' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/transactions.rb:182:in transaction' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/transactions.rb:228:inwith_transaction_returning_status' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/transactions.rb:192:in destroy' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/base.rb:881:indestroy_all' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/base.rb:881:in each' from .rvm/gems/ruby-1.8.7-p357/gems/activerecord-2.3.14/lib/active_record/base.rb:881:indestroy_all' from .rvm/gems/ruby-1.8.7-p357/gems/cloud-crowd-0.6.2/lib/cloud_crowd/server.rb:105:in DELETE /node/:host' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:809:incall' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:809:in route' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:488:ininstance_eval' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:488:in route_eval' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:477:inroute!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:474:in catch' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:474:inroute!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:453:in each' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:453:inroute!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:569:in dispatch!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:388:incall!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:536:in instance_eval' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:536:ininvoke' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:536:in catch' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:536:ininvoke' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:388:in call!' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:377:incall' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/showexceptions.rb:24:in call' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:incall' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:928:in call' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:973:insynchronize' from .rvm/gems/ruby-1.8.7-p357/gems/sinatra-0.9.6/lib/sinatra/base.rb:928:in call' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/builder.rb:134:incall' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/urlmap.rb:64:in call' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/urlmap.rb:49:ineach' from .rvm/gems/ruby-1.8.7-p357/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in call' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/connection.rb:80:inpre_process' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/connection.rb:78:in catch' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/connection.rb:78:inpre_process' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/connection.rb:53:in process' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/connection.rb:38:inreceive_data' from .rvm/gems/ruby-1.8.7-p357/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in run_machine' from .rvm/gems/ruby-1.8.7-p357/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:inrun' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in start' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/server.rb:159:instart' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/controllers/controller.rb:86:in start' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/runner.rb:185:insend' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/runner.rb:185:in run_command' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/lib/thin/runner.rb:151:inrun!' from .rvm/gems/ruby-1.8.7-p357/gems/thin-1.3.1/bin/thin:6 from .rvm/gems/ruby-1.8.7-p357/bin/thin:19:in `load' from .rvm/gems/ruby-1.8.7-p357/bin/thin:19

forgotpw1 commented 12 years ago

Have you tried running the server and node as a daemons and killing the process? This might work better than running and killing with ctrl-c

crowd server -d restart crowd node -d restart