[typo] error in api when caching enabled

Kevin Williams kevwil at gmail.com
Mon Dec 31 12:12:49 EST 2007


I'm not sure if I have something messed up with my install or if this
is actually a bug. I have Rails fragment caching enabled with the
memcache store, and it speeds up my blog rendering in browsers quite a
lot. I'm not sure if this is a Rails issue, a Memcache client issue,
or a Typo issue. (The memcache client plugin in Typo is quite
outdated, but the latest one doesn't have a 'delete_if' method
either.) Can anyone comment on it?



Processing BackendController#xmlrpc (for 67.41.118.40 at 2007-12-31
11:47:49) [POST]
  Parameters: {"action"=>"xmlrpc", "controller"=>"backend",
"methodCall"=>{"methodName"=>"metaWeblog.newPost",
"params"=>{"param"=>[{"value"=>{"string"=>"0"}},
{"value"=>{"string"=>"username"}}, {"value"=>{"string"=>"password"}},
{"value"=>{"struct"=>{"member"=>[{"name"=>"mt_keywords",
"value"=>{"string"=>"test"}}, {"name"=>"mt_convert_breaks",
"value"=>{"string"=>"textile"}}, {"name"=>"title",
"value"=>{"string"=>"Testing, Testing"}}, {"name"=>"categories",
"value"=>{"array"=>{"data"=>{"value"=>{"string"=>"General"}}}}},
{"name"=>"description", "value"=>{"string"=>"test from
TextMate\n\n"}}, {"name"=>"mt_text_more", "value"=>{"string"=>"\nif
you can read this, the API is working"}}]}}},
{"value"=>{"boolean"=>"1"}}]}}}
Casting of method parameters failed
HTTP-Error: 405 Method Not Allowed
HTTP-Error: 302 Found
Expiring #<Article:0x2aec802a7500>, with controller:
#<BackendController:0x2aec8031ee98>


NoMethodError (undefined method `delete_if' for <MemCache: 1 servers,
0 buckets, ns: nil, ro: false>:MemCache):
    /vendor/rails/actionpack/lib/action_controller/caching.rb:454:in
`delete_matched'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:426:in
`expire_fragment'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:30:in
`benchmark'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:425:in
`expire_fragment'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:664:in `send!'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:664:in
`method_missing'
    /app/models/blog_sweeper.rb:63:in `sweep_articles'
    /app/models/blog_sweeper.rb:41:in `expire_for'
    /app/models/blog_sweeper.rb:27:in `after_save'
    /vendor/rails/activerecord/lib/active_record/observer.rb:157:in `send'
    /vendor/rails/activerecord/lib/active_record/observer.rb:157:in `update'
    /usr/local/lib/ruby/1.8/observer.rb:185:in `notify_observers'
    /usr/local/lib/ruby/1.8/observer.rb:184:in `each'
    /usr/local/lib/ruby/1.8/observer.rb:184:in `notify_observers'
    /vendor/rails/activerecord/lib/active_record/callbacks.rb:338:in `notify'
    /vendor/rails/activerecord/lib/active_record/callbacks.rb:302:in `callback'
    /vendor/rails/activerecord/lib/active_record/callbacks.rb:214:in
`create_or_update'
    /vendor/rails/activerecord/lib/active_record/base.rb:1972:in
`save_without_validation'
    /vendor/rails/activerecord/lib/active_record/validations.rb:934:in
`save_without_transactions'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:108:in `save'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in
`transaction'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:80:in
`transaction'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:100:in
`transaction'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:108:in `save'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:120:in
`rollback_active_record_state!'
    /vendor/rails/activerecord/lib/active_record/transactions.rb:108:in `save'
    /app/apis/meta_weblog_service.rb:101:in `newPost'
    /vendor/actionwebservice/lib/action_web_service/invocation.rb:141:in `send'
    /vendor/actionwebservice/lib/action_web_service/invocation.rb:141:in
`perform_invocation_without_interception'
    /vendor/actionwebservice/lib/action_web_service/invocation.rb:135:in
`perform_invocation'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/abstract.rb:46:in
`web_service_filtered_invoke'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/abstract.rb:41:in
`web_service_delegated_invoke'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/abstract.rb:60:in
`web_service_invoke'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/abstract.rb:25:in
`invoke_web_service_request'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:58:in
`dispatch_web_service_request'
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
    /vendor/actionwebservice/lib/action_web_service/dispatcher/action_controller_dispatcher.rb:56:in
`dispatch_web_service_request'
    (eval):1:in `xmlrpc'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1158:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:1158:in
`perform_action_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:697:in
`call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:725:in
`run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:664:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:664:in
`proxy_before_and_after_filter'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:483:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:483:in `call'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:722:in
`run_before_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:695:in
`call_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:689:in
`perform_action_without_benchmark'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
    /vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
    /vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in
`perform_action_without_caching'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:678:in
`perform_action'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in
`cache'
    /vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
    /vendor/rails/actionpack/lib/action_controller/caching.rb:677:in
`perform_action'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in `send'
    /vendor/rails/actionpack/lib/action_controller/base.rb:524:in
`process_without_filters'
    /vendor/rails/actionpack/lib/action_controller/filters.rb:685:in
`process_without_session_management_support'
    /vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in
`process'
    /vendor/rails/actionpack/lib/action_controller/base.rb:388:in `process'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in
`handle_request'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in
`dispatch'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in
`dispatch_cgi'
    /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/rails.rb:76:in
`process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/rails.rb:74:in
`synchronize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/rails.rb:74:in
`process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:159:in
`process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:158:in `each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:158:in
`process_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:285:in
`initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:285:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:285:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:268:in
`initialize'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:268:in `new'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel.rb:268:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/configurator.rb:282:in
`run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/configurator.rb:281:in
`each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/configurator.rb:281:in
`run'
    /usr/local/lib/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails:136:in
`run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.3/lib/mongrel/command.rb:212:in
`run'
    /usr/local/lib/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails:252
    /usr/local/bin/mongrel_rails:19:in `load'
    /usr/local/bin/mongrel_rails:19

Sending data
Completed in 0.98284 (1 reqs/sec) | Rendering: 0.00008 (0%) | DB:
0.00000 (0%) | 200 OK [http://www.almostserio.us/backend/xmlrpc]


More information about the Typo-list mailing list