Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
servicemix-eip-2008.01
-
None
-
Fuse ESB 3.3.1.8-fuse
Description
Currently the org.apache.servicemix.locks.LockManager interface only has a single method getLock() associated with it. As a result this can cause excessive memory leaks in any component that uses it. I noticed this problem after upgrading our ServiceMix version (from 3.2.1 to 3.3.1.8-fuse) when using the ServiceMix EIP. There was a change made for SM-1444 to start using the lockManager instance in the base EIPEndpoint class to store a lock for each exchange correlation id. As a result a new lock is being leaked for each unique correlation id. In our particular use case we see a 1-to-1 correlation of one object in the lockManager for each message sent to the static recipient list. After some period of time our ServiceMix crashes with an OutOfMemoryError. I provided a link to the changeset as reference.
Class that use LockManager and may be affected:
FtpPollerEndpoint.java
FilePollerEndpoint.java
TrueZipPollerEndpoint.java
AbstractAggregator.java
EIPEndpoint.java
Attachments
Attachments
1.
|
Memory leak while using eip component (wiretab, static recipient) | Open | Unassigned |