Very subtle bug...

0 views
Skip to first unread message

Ed W

unread,
May 29, 2007, 4:59:01 PM5/29/07
to actives...@googlegroups.com
Can someone please confirm this subtle little bug on their system

- Create a has_one relationship, eg U has_one S. Ensure that the u_id
foreign key field in the S table is marked "NOT NULL"
- Scaffold this thing and put both U and S on the edit form (ie you do
U/edit and the S record shows as a nested form)
- Creating a new U record - everything is fine
- Edit that new record and save it - S is saved twice, once without a
foreign key pointing back to U and then immediately afterwards with the
key set.

This has been driving me nuts trying to trace. The additional problem
was that one of my (identical version) mysql databases lets this go by
silently (converts the NULL to a 0 silently), whereas the other one
throws an error about trying to insert a NULL value into a non-null
field. Can't figure out why one server does this and not the other
though - both using innodb tables built by scripting the other database
- no significant changes in server config...

Anyway, the root problem is the double save, first with the foreign key
NULL and then with the foreign key set. I think it's an AS issue which
is tickled by active records desire to save records when assigning to a
belongs_to relation.... (perhaps), but I can't get my head around it
completely

Grateful for any help...


Log snippets below:


SettingsEmail Load (0.000189) SELECT * FROM settings_email WHERE
(settings_email.user_id = 9) LIMIT 1
SettingsEmail Columns (0.001851) SHOW FIELDS FROM settings_email
SettingsEmail Update (0.000576) UPDATE settings_email SET
`email_forward` = '', `attachment_size_max` = 0, `user_id` = NULL,
`updated_at` = '2007-05-29 21:03:22' WHERE `id` = 14
SettingsEmail Update (0.000594) UPDATE settings_email SET
`email_forward` = '', `attachment_size_max` = 0, `user_id` = 9,
`updated_at` = '2007-05-29 21:03:22' WHERE `id` = 14


SettingsEmail Load (0.000000) SELECT * FROM settings_email WHERE
(settings_email.user_id = 715) LIMIT 1
SettingsEmail Columns (0.000000) SHOW FIELDS FROM settings_email
SettingsEmail Update (0.000000) Mysql::Error: #22004Column was set
to data type implicit default; NULL supplied for NOT NULL column
'user_id' at r
ow 1: UPDATE settings_email SET `email_forward` = '',
`attachment_size_max` = 0, `user_id` = NULL, `updated_at` = '2007-05-29 2
1:14:57' WHERE `id` = 9
SQL (0.000000) ROLLBACK


ActiveRecord::StatementInvalid (Mysql::Error: #22004Column was set to
data type implicit default; NULL supplied for NOT NULL column 'user_id'
at row 1: UPDATE settings_email SET `email_forward` = '',
`attachment_size_max` = 0, `user_id` = NULL, `updated_at` = '2007-05-29
21:14:57' WHERE `id` = 9):

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract_adapter.rb:128:in
`log'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/mysql_adapter.rb:243:in
`execute'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/mysql_adapter.rb:258:in
`update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1796:in
`update_without_lock'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/locking/optimistic.rb:60:in
`update_without_callbacks'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/callbacks.rb:267:in
`update_without_timestamps'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/timestamp.rb:48:in
`update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1789:in
`create_or_update_without_callbacks'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/callbacks.rb:242:in
`create_or_update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1545:in
`save_without_validation'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/validations.rb:752:in
`save_without_transactions'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/transactions.rb:129:in
`save_without_unsaved_flag'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract/database_statements.rb:59:in
`transaction'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/transactions.rb:95:in
`transaction'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/transactions.rb:121:in
`transaction'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/transactions.rb:129:in
`save_without_unsaved_flag'

/vendor/plugins/active_scaffold/lib/extensions/unsaved_record.rb:15:in
`save'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/has_one_association.rb:37:in
`replace'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations.rb:908:in
`settings_email='
/vendor/plugins/active_scaffold/lib/attribute_params.rb:85:in `send'
/vendor/plugins/active_scaffold/lib/attribute_params.rb:85:in
`update_record_from_params'

/vendor/plugins/active_scaffold/lib/data_structures/action_columns.rb:68:in
`each'

/vendor/plugins/active_scaffold/lib/data_structures/action_columns.rb:55:in
`each'
/vendor/plugins/active_scaffold/lib/attribute_params.rb:39:in
`update_record_from_params'
/vendor/plugins/active_scaffold/lib/actions/update.rb:72:in `do_update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract/database_statements.rb:59:in
`transaction'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/transactions.rb:95:in
`transaction'
/vendor/plugins/active_scaffold/lib/actions/update.rb:71:in `do_update'
/vendor/plugins/active_scaffold/lib/actions/update.rb:28:in `update'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:1095:in
`send'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:1095:in
`perform_action_without_filters'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:632:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:634:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:634:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:438:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:449:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:638:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:449:in
`call'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:637:in
`call_filter'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:619:in
`perform_action_without_benchmark'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'
C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/rescue.rb:83:in
`perform_action'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:430:in
`send'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:430:in
`process_without_filters'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:624:in
`process_without_session_management_support'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/session_management.rb:114:in
`process'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:330:in
`process'
C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:41:in
`dispatch'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:78:in
`process'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:76:in
`synchronize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:76:in
`process'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:618:in
`process_client'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:617:in
`each'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:617:in
`process_client'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`initialize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`new'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:720:in
`initialize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:720:in
`new'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:720:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:271:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:270:in
`each'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:270:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/bin/mongrel_rails:127:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/command.rb:211:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/bin/mongrel_rails:243

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:488:in
`load'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:488:in
`load'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:342:in
`new_constants_in'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:488:in
`load'

C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/servers/mongrel.rb:60
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in
`require'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:342:in
`new_constants_in'

C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in
`require'
C:/ruby/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/server.rb:39
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'
script/server:3


Rendering
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/templates/rescues/layout.rhtml
(500 Internal Error)


Lance Ivy

unread,
Jun 27, 2007, 8:19:10 PM6/27/07
to actives...@googlegroups.com
Hey Ed, I realize this is probably a bit late, but I'm cleaning up my inbox and just started taking a look at this bug. I'd actually describe the situation in reverse, though: this looks like an ActiveRecord bug being "tickled" by ActiveScaffold. The problem appears to be that ActiveRecord doesn't handle replacing a has_one association with the *same record*.

So, for example, assume the following models (and no, I wasn't smoking anything):

class Unicorn < ActiveRecord::Base
  # if magical_horn.unicorn_id is NOT NULL, then :dependent => :destroy *must* be configured
  has_one :magical_horn, :dependent => :destroy
end

class MagicalHorn < ActiveRecord::Base
  belongs_to :unicorn
end

You can recreate this problem without ActiveScaffold at all, using script/console:

> u = Unicorn.new
> u.magical_horn = MagicalHorn.new
> u.save
> u.reload
> u.magical_horn = u.magical_horn

So I guess the workaround is to either monkey patch it or avoid re-assigning the same record. I've implemented the workaround in trunk revision 562.

What I really don't get is why this problem didn't surface earlier?

  SettingsEmail Update (0.000576 )   UPDATE settings_email SET

`email_forward` = '', `attachment_size_max` = 0, `user_id` = NULL,
`updated_at` = '2007-05-29 21:03:22' WHERE `id` = 14
  SettingsEmail Update (0.000594)   UPDATE settings_email SET
`email_forward` = '', `attachment_size_max` = 0, `user_id` = 9,
`updated_at` = '2007-05-29 21:03:22' WHERE `id` = 14


  SettingsEmail Load (0.000000)   SELECT * FROM settings_email WHERE
(settings_email.user_id = 715) LIMIT 1
  SettingsEmail Columns (0.000000)   SHOW FIELDS FROM settings_email
  SettingsEmail Update (0.000000)   Mysql::Error: #22004Column was set
to data type implicit default; NULL supplied for NOT NULL column
'user_id' at r
ow 1: UPDATE settings_email SET `email_forward` = '',
`attachment_size_max` = 0, `user_id` = NULL, `updated_at` = '2007-05-29 2
1:14:57' WHERE `id` = 9
  SQL (0.000000 )   ROLLBACK



ActiveRecord::StatementInvalid (Mysql::Error: #22004Column was set to
data type implicit default; NULL supplied for NOT NULL column 'user_id'
at row 1: UPDATE settings_email SET `email_forward` = '',
`attachment_size_max` = 0, `user_id` = NULL, `updated_at` = '2007-05-29
21:14:57' WHERE `id` = 9):

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract_adapter.rb:128:in
`log'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/mysql_adapter.rb:243:in
`execute'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/mysql_adapter.rb:258:in
`update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1796:in
`update_without_lock'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/locking/optimistic.rb:60:in
`update_without_callbacks'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/callbacks.rb:267:in
`update_without_timestamps'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3 /lib/active_record/timestamp.rb:48:in

`update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1789:in
`create_or_update_without_callbacks'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord- 1.15.3/lib/active_record/callbacks.rb:242:in

`create_or_update'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1545:in
`save_without_validation'

C:/ruby/lib/ruby/gems/1.8/gems/activerecord- 1.15.3/lib/active_record/validations.rb:752:in
C:/ruby/lib/ruby/gems/1.8/gems/activerecord- 1.15.3/lib/active_record/connection_adapters/abstract/database_statements.rb:59:in
C:/ruby/lib/ruby/gems/1.8/gems/actionpack- 1.13.3/lib/action_controller/session_management.rb:114:in

`process'

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:330:in
`process'
    C:/ruby/lib/ruby/gems/1.8/gems/rails- 1.2.3/lib/dispatcher.rb:41:in

`dispatch'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:78:in
`process'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:76:in
`synchronize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/rails.rb:76:in
`process'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:618:in
`process_client'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:617:in
`each'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:617:in
`process_client'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel- 1.0.1-mswin32/lib/mongrel.rb:736:in

`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`initialize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`new'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:736:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:720:in
`initialize'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel- 1.0.1-mswin32/lib/mongrel.rb:720:in

`new'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel.rb:720:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:271:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:270:in
`each'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/configurator.rb:270:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/bin/mongrel_rails:127:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1-mswin32/lib/mongrel/command.rb:211:in
`run'

C:/ruby/lib/ruby/gems/1.8/gems/mongrel- 1.0.1-mswin32/bin/mongrel_rails:243
Reply all
Reply to author
Forward
0 new messages