Bug #818 (closed)
Opened 17 years ago
Closed 17 years ago
JBossLoginModule memory leak
Reported by: | jamoore | Owned by: | jamoore |
---|---|---|---|
Priority: | blocker | Cc: | cxallan, bwzloranger, jrswedlow, jburel |
Sprint: | n.a. | ||
Total Remaining Time: | n.a. |
Description
On every login, JBoss is creating a login module and related instances, which are then not being freed. One server instance had over 100K login modules and co. still floating around.
This is apparently a known issue (http://jira.jboss.com/jira/browse/JBAS-3012). A workaround is to call the flushAuthenticationCaches() method on the DynamicLoginConfig JMX bean with the name omero:service=LoginConfig. This, however, does NOT free the org.jboss.security.SecurityAssociation$SubjectContext instances. These may only be held by weak reference and I'll need to look into it.
For now, all servers can be "fixed" by using the JMX console but a thread will be put into place which periodically calls this.
Attachments (1)
Change History (2)
Changed 17 years ago by jmoore
comment:1 Changed 17 years ago by jmoore
- Resolution set to fixed
- Status changed from new to closed
r1890 adds a workaround which calls "IAdmin.synchronizeLoginCache()" every 30 minutes. Interesting, synchronizeLoginCache is called on any change to the authentication info (i.e. change password). This means there were 100K calls to the server without a password change.
Counts of instances after a 100-count loop to getServerTime() and a garbage collection