Bug 1479579
| Summary: | qpidd memory accumulation after ListenOnCandlepinEvents forgot to accept a message | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Pavel Moravec <pmoravec> | 
| Component: | Qpid | Assignee: | Mike Cressman <mcressma> | 
| Status: | CLOSED WONTFIX | QA Contact: | Katello QA List <katello-qa-list> | 
| Severity: | low | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.2.10 | CC: | andrew.schofield, cduryee, gsim, jross | 
| Target Milestone: | Unspecified | ||
| Target Release: | Unused | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-08-10 14:18:02 UTC | Type: | Bug | 
| Regression: | --- | Mount Type: | --- | 
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| 
 
        
          Description
        
        
          Pavel Moravec
        
        
        
        
        
          2017-08-08 21:03:13 UTC
        
       
      
      
      
    this is a result of the way queues are implemented. Basically they are deques, with the ability to define a cursor as an offset into that deque. When messages are deleted from the queue, they are marked as such, but are only deleted from the front of the deque (deleting from the middle would mess up the index). Therefore if a message remains unacknowledged, the deque will grow until it is acknowledged. We could introduce a new feature that prevents that acquired message getting stuck/forgotten. E.g. by releasing it (or DLQing it, or even just deleting it) after some time or when the gap in the sequence between acquired/available messages gets to some limit, which would let the message be consumed by another consumer. However, I don't think this is worth doing just as a solution to this bug. It would be better to just reject or release the messages in question (if rejecting you can set up a DLQ to collect the messages if necessary, but of course there needs to be then some process in place for managing those messages such that they do not build up).  |