splitrb / split

:chart_with_upwards_trend: The Rack Based A/B testing framework
https://rubygems.org/gems/split
MIT License
2.71k stars 368 forks source link

ActionView::Template::Error (Unsupported command argument type: TrueClass) #699

Closed puneetpandey closed 1 year ago

puneetpandey commented 2 years ago

I am using split gem for my rails project and after performing below steps:

I am getting: ActionView::Template::Error (Unsupported command argument type: TrueClass)

I am using Memcache for datastore. So in my development.rb config file, I have config.cache_store = :mem_cache_store line. Even if I change it to use redis_cache_store nothing happens!

Here's my app info:

 % rails about
About your application's environment
Rails version             7.0.0
Ruby version              ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [arm64-darwin21]
RubyGems version          3.1.6
Rack version              2.2.3
JavaScript Runtime        Node.js (V8)
Middleware                Honeybadger::Rack::UserInformer, Honeybadger::Rack::UserFeedback, Honeybadger::Rack::ErrorNotifier, ActionDispatch::HostAuthorization, Rack::Sendfile, Rack::Cors, FontAssets::Middleware, ActionDispatch::Static, ActionDispatch::Executor, ActiveSupport::Cache::Strategy::LocalCache::Middleware, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, ActionDispatch::RemoteIp, Sprockets::Rails::QuietAssets, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::ActionableExceptions, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ContentSecurityPolicy::Middleware, ActionDispatch::PermissionsPolicy::Middleware, Rack::Head, Rack::ConditionalGet, Rack::ETag, Rack::TempfileReaper, Warden::Manager, Rack::Deflater, Rack::Maintenance, Rack::Tracker, Apipie::Extractor::Recorder::Middleware, JQuery::FileUpload::Rails::Middleware, Apipie::StaticDispatcher, ActionDispatch::Static
Application root          /Workspace/myApp
Environment               development
Database adapter          postgresql
Database schema version 
rjaus commented 2 years ago

I've just upgraded a rails 6.1 project to rails 7, and I am now getting this error.

split 4.0.1

andrehjr commented 2 years ago

Hi, which redis and redis-rb version are you using?

Can you post the full stacktrace?

rjaus commented 2 years ago

I remember now that I also updated sidekiq to v7, which uses redis-client. I also updated redis from v5 to 6.2.7

Redis server v=6.2.7 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=3813edd7c89460b6

redis (5.0.5, 4.2.5)
redis-client (0.11.2)
Trace of template inclusion: #<ActionView::Template app/views/home.html.erb locals=[]>

Rails.root: /app
[Application Trace](http://localhost:3000/#) | [Framework Trace](http://localhost:3000/#) | [Full Trace](http://localhost:3000/#)
redis-client (0.11.2) lib/redis_client/command_builder.rb:75:in `block in generate'
redis-client (0.11.2) lib/redis_client/command_builder.rb:68:in `map!'
redis-client (0.11.2) lib/redis_client/command_builder.rb:68:in `generate'
redis-client (0.11.2) lib/redis_client.rb:218:in `call_v'
redis (5.0.5) lib/redis/client.rb:73:in `call_v'
redis (5.0.5) lib/redis.rb:167:in `block in send_command'
redis (5.0.5) lib/redis.rb:166:in `synchronize'
redis (5.0.5) lib/redis.rb:166:in `send_command'
redis (5.0.5) lib/redis/commands/hashes.rb:51:in `hmset'
split (4.0.1) lib/split/experiment.rb:90:in `save'
split (4.0.1) lib/split/helper.rb:13:in `ab_test'
app/views/shared/form/_form_card.html.erb:16
actionview (7.0.4) lib/action_view/base.rb:244:in `public_send'
actionview (7.0.4) lib/action_view/base.rb:244:in `_run'
actionview (7.0.4) lib/action_view/template.rb:157:in `block in render'
activesupport (7.0.4) lib/active_support/notifications.rb:208:in `instrument'
actionview (7.0.4) lib/action_view/template.rb:361:in `instrument_render_template'
actionview (7.0.4) lib/action_view/template.rb:155:in `render'
actionview (7.0.4) lib/action_view/renderer/partial_renderer.rb:251:in `block in render_partial_template'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `instrument'
actionview (7.0.4) lib/action_view/renderer/partial_renderer.rb:246:in `render_partial_template'
actionview (7.0.4) lib/action_view/renderer/partial_renderer.rb:237:in `render'
actionview (7.0.4) lib/action_view/renderer/renderer.rb:81:in `render_partial_to_object'
actionview (7.0.4) lib/action_view/renderer/renderer.rb:27:in `render_to_object'
actionview (7.0.4) lib/action_view/renderer/renderer.rb:22:in `render'
actionview (7.0.4) lib/action_view/helpers/rendering_helper.rb:37:in `block in render'
actionview (7.0.4) lib/action_view/base.rb:270:in `in_rendering_context'
actionview (7.0.4) lib/action_view/helpers/rendering_helper.rb:33:in `render'
app/views/home.html.erb:122
actionview (7.0.4) lib/action_view/base.rb:244:in `public_send'
actionview (7.0.4) lib/action_view/base.rb:244:in `_run'
actionview (7.0.4) lib/action_view/template.rb:157:in `block in render'
activesupport (7.0.4) lib/active_support/notifications.rb:208:in `instrument'
actionview (7.0.4) lib/action_view/template.rb:361:in `instrument_render_template'
actionview (7.0.4) lib/action_view/template.rb:155:in `render'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:65:in `block (2 levels) in render_template'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `instrument'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:60:in `block in render_template'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:75:in `block in render_with_layout'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `instrument'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:74:in `render_with_layout'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:59:in `render_template'
actionview (7.0.4) lib/action_view/renderer/template_renderer.rb:11:in `render'
actionview (7.0.4) lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
actionview (7.0.4) lib/action_view/renderer/renderer.rb:29:in `render_to_object'
actionview (7.0.4) lib/action_view/rendering.rb:117:in `block in _render_template'
actionview (7.0.4) lib/action_view/base.rb:270:in `in_rendering_context'
actionview (7.0.4) lib/action_view/rendering.rb:116:in `_render_template'
actionpack (7.0.4) lib/action_controller/metal/streaming.rb:216:in `_render_template'
actionview (7.0.4) lib/action_view/rendering.rb:103:in `render_to_body'
actionpack (7.0.4) lib/action_controller/metal/rendering.rb:46:in `render_to_body'
actionpack (7.0.4) lib/action_controller/metal/renderers.rb:141:in `render_to_body'
actionpack (7.0.4) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (7.0.4) lib/action_controller/metal/rendering.rb:30:in `render'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:22:in `block (2 levels) in render'
/usr/local/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
activesupport (7.0.4) lib/active_support/core_ext/benchmark.rb:14:in `ms'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:22:in `block in render'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:91:in `cleanup_view_runtime'
activerecord (7.0.4) lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:21:in `render'
meta-tags (2.18.0) lib/meta_tags/controller_helper.rb:22:in `render'
app/controllers/application_controller.rb:13:in `home'
actionpack (7.0.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.4) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.4) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.4) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
actiontext (7.0.4) lib/action_text/rendering.rb:20:in `with_renderer'
actiontext (7.0.4) lib/action_text/engine.rb:69:in `block (4 levels) in <class:Engine>'
activesupport (7.0.4) lib/active_support/callbacks.rb:127:in `instance_exec'
activesupport (7.0.4) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.4) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.4) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.4) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.4) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.4) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.4) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.4) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.4) lib/action_view/rendering.rb:39:in `process'
actionpack (7.0.4) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.4) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.4) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.4) lib/action_dispatch/routing/route_set.rb:852:in `call'
warden (1.2.9) lib/warden/manager.rb:36:in `block in call'
warden (1.2.9) lib/warden/manager.rb:34:in `catch'
warden (1.2.9) lib/warden/manager.rb:34:in `call'
rack (2.2.4) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.4) lib/rack/etag.rb:27:in `call'
rack (2.2.4) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.4) lib/rack/head.rb:12:in `call'
actionpack (7.0.4) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
actionpack (7.0.4) lib/action_dispatch/http/content_security_policy.rb:36:in `call'
rack (2.2.4) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.4) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/cookies.rb:696:in `call'
activerecord (7.0.4) lib/active_record/migration.rb:603:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.4) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.4) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
web-console (4.2.0) lib/web_console/middleware.rb:132:in `call_app'
web-console (4.2.0) lib/web_console/middleware.rb:19:in `block in call'
web-console (4.2.0) lib/web_console/middleware.rb:17:in `catch'
web-console (4.2.0) lib/web_console/middleware.rb:17:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
railties (7.0.4) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.4) lib/rails/rack/logger.rb:25:in `block in call'
activesupport (7.0.4) lib/active_support/tagged_logging.rb:99:in `block in tagged'
activesupport (7.0.4) lib/active_support/tagged_logging.rb:37:in `tagged'
activesupport (7.0.4) lib/active_support/tagged_logging.rb:99:in `tagged'
railties (7.0.4) lib/rails/rack/logger.rb:25:in `call'
sprockets-rails (3.4.2) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/request_id.rb:26:in `call'
rack (2.2.4) lib/rack/method_override.rb:24:in `call'
rack (2.2.4) lib/rack/runtime.rb:22:in `call'
activesupport (7.0.4) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/static.rb:23:in `call'
rack (2.2.4) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.4) lib/action_dispatch/middleware/host_authorization.rb:137:in `call'
rack-mini-profiler (2.3.4) lib/mini_profiler/profiler.rb:393:in `call'
honeybadger (4.12.2) lib/honeybadger/rack/error_notifier.rb:33:in `block in call'
honeybadger (4.12.2) lib/honeybadger/agent.rb:426:in `with_rack_env'
honeybadger (4.12.2) lib/honeybadger/rack/error_notifier.rb:30:in `call'
honeybadger (4.12.2) lib/honeybadger/rack/user_feedback.rb:31:in `call'
honeybadger (4.12.2) lib/honeybadger/rack/user_informer.rb:21:in `call'
rack-cors (1.1.1) lib/rack/cors.rb:100:in `call'
webpacker (5.4.3) lib/webpacker/dev_server_proxy.rb:25:in `perform_request'
rack-proxy (0.7.4) lib/rack/proxy.rb:78:in `call'
railties (7.0.4) lib/rails/engine.rb:530:in `call'
puma (5.6.5) lib/puma/configuration.rb:252:in `call'
puma (5.6.5) lib/puma/request.rb:77:in `block in handle_request'
puma (5.6.5) lib/puma/thread_pool.rb:340:in `with_force_shutdown'
puma (5.6.5) lib/puma/request.rb:76:in `handle_request'
puma (5.6.5) lib/puma/server.rb:443:in `process_client'
puma (5.6.5) lib/puma/thread_pool.rb:147:in `block in spawn_thread'
rjaus commented 2 years ago

I'm not sure if it's related, but here are the details on sidekiq & redis-client: https://github.com/mperham/sidekiq/blob/main/docs/7.0-Upgrade.md#redis-client

andrehjr commented 2 years ago

I see!

Ok, so actually, this was fixed on #696. I need to release a new version with it

rjaus commented 2 years ago

Ahhh awesome. Thanks! I'll use that.

testa19 commented 2 years ago

I see!

Ok, so actually, this was fixed on #696. I need to release a new version with it

Hi, please release)

puneetpandey commented 1 year ago

It's no longer an issue with latest split version 4.0.2. So I am marking it closed.