Skip to content

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

Open
@adamcreekroad

Description

@adamcreekroad

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceNo effect on functionality, just on memory or speed performance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions