motor-admin / motor-admin-rails

Low-code Admin panel and Business intelligence Rails engine. No DSL - configurable from the UI. Rails Admin, Active Admin, Blazer modern alternative.
https://app.getmotoradmin.com/demo/
MIT License
761 stars 77 forks source link

0.4.6 : memory leak #108

Closed albandum closed 1 year ago

albandum commented 1 year ago

Hello guys,

Thanks for the work on motoradmin, it's been of great help so far ! I'm trying to upgrade to 0.4.6 and it seems to be fine, the migration works fine (compared to version between 0.4.0 and 0.4.3 which had failing migrations) but when I reach the motoradmin panel, on some of my pages I run into memory leaks :

Processing by Motor::DataController#index as HTML
  Parameters: {"fields"=>{"category"=>"id,name,color,slug"}, "page"=>{"limit"=>"0"}, "sort"=>"-id", "meta"=>"count", "resource"=>"categories"}
  Motor::Resource Maximum (0.9ms)  SELECT MAX("motor_resources"."updated_at") FROM "motor_resources"
Processing by Motor::DataController#index as HTML
  Parameters: {"fields"=>{"category"=>"id,name,color,slug"}, "page"=>{"limit"=>"20", "offset"=>"0"}, "sort"=>"-id", "resource"=>"categories"}
  Motor::Resource Maximum (2.6ms)  SELECT MAX("motor_resources"."updated_at") FROM "motor_resources"
Completed 500 Internal Server Error in 1349ms (ActiveRecord: 0.9ms | Allocations: 1886421)

Not notifying due to notify_release_stages :["production", "staging"]

SystemStackError (stack level too deep):

/Users/alban/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/mutex_m.rb:110:in `new'
/Users/alban/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/mutex_m.rb:110:in `mu_initialize'
/Users/alban/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/mutex_m.rb:114:in `initialize'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:50:in `new'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:50:in `generated_relation_methods'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:45:in `include_relation_methods'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:24:in `block in initialize_relation_delegate_cache'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:20:in `each'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:20:in `initialize_relation_delegate_cache'
activerecord (7.0.4) lib/active_record/relation/delegation.rb:34:in `inherited'
activerecord (7.0.4) lib/active_record/core.rb:265:in `inherited'
activerecord (7.0.4) lib/active_record/model_schema.rb:553:in `inherited'
activerecord (7.0.4) lib/active_record/inheritance.rb:216:in `inherited'
activemodel (7.0.4) lib/active_model/validations.rb:278:in `inherited'
activerecord (7.0.4) lib/active_record/attribute_methods.rb:44:in `inherited'
kaminari-activerecord (1.2.2) lib/kaminari/activerecord/active_record_extension.rb:12:in `inherited'
motor-admin (0.4.6) lib/motor/active_record_utils/defined_scopes_extension.rb:7:in `inherited'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:27:in `initialize'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:27:in `new'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:27:in `build_configured_model'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:245:in `build_configured_model_from_configs'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:21:in `block in call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:233:in `maybe_fetch_from_cache'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:18:in `call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:183:in `block in configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `each'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:22:in `block in call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:237:in `maybe_fetch_from_cache'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:18:in `call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:183:in `block in configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `each'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:22:in `block in call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:237:in `maybe_fetch_from_cache'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:18:in `call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:183:in `block in configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `each'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:22:in `block in call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:237:in `maybe_fetch_from_cache'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:18:in `call'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:183:in `block in configure_reflection_classes'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `each'
motor-admin (0.4.6) lib/motor/resources/fetch_configured_model.rb:175:in `configure_reflection_classes'
[... this goes forever, CPU usage to the max]

Rollbing back to 0.3.13 fixes the issue.

Thanks !

albandum commented 1 year ago

Not on motoradmin's side, my bad.