Skip to content

Rails apps with puma on cluster mode not catching up flag changes when local evaluation is enabled #62

@Guilherme2112

Description

@Guilherme2112

Context

When the following conditions are met, the local environment of the rails server does not refresh the flag states...the environment document request actually happens, tough.

  • rails app
  • puma (on cluster mode - even with 1 worker 1 thread)
  • local evaluation enabled
  • booting with rails s command

Steps to reproduce

  • Create a new rails app
  • Configure puma with cluster mode (set a value above zero for workers on config/puma.rb)
  • Create an initializer, defining the global variable, just like the documentation shows. Local evaluation must be enabled
  • boot the server with rails s
  • check if the flagsmith client is responding to flag state changes on the flagsmith dashboard between every environment document request

Useful info

  • Works normally with puma on single mode
  • Puma worker and thread count does not matter to the issue
  • On puma cluster mode, it seems like there is something wrong with the puma boot using the bundle exec rails s command, since running bundle exec puma -t 1:1 -w 1:1 looks fine
  • Worth mentioning that the local evaluation on the rails c console, the normal behavior occurs
  • Tested on macOs Ventura 13.6.7 (M1 chip) and Ubuntu 22 (x64)

Example project

https://github.com/Guilherme2112/flagsmith-rails-example

(basic instructions at README)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions