hyperstack icon indicating copy to clipboard operation
hyperstack copied to clipboard

QueuedMessages from unsent/expired Connections are getting left in the database

Open adamcreekroad opened this issue 5 years ago • 0 comments

Lately I've noticed poor performance in our production database for the Hyperstack tables, and noticed we had about 400K QueuedMessages in the table. Upon looking in the code, I found this:

# hyper-operation/lib/hyper-operation/transport/connection.rb:111
expired.delete_all

# hyper-operation/lib/hyper-operation/transport/connection.rb:173
inactive.delete_all

ActiveRecord delete_all does not run callbacks, so the dependent QueuedMessages are not being destroyed when the Connection is. This should be changed to destroy_all so that the QueuedMessages don't get left in the database and accumulate.

adamcreekroad avatar Sep 14 '20 12:09 adamcreekroad