-
Bug
-
Resolution: Fixed
-
P2
-
9, 10, 11, 12, 13, 14, 15
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8246686 | 13.0.4 | Man Cao | P2 | Resolved | Fixed | b04 |
JDK-8243385 | 11.0.8-oracle | Man Cao | P2 | Closed | Fixed | b04 |
JDK-8242503 | 11.0.8 | Man Cao | P2 | Resolved | Fixed | b01 |
There are two memory leaks on the DirectiveSet::DisableIntrinsicOption char array.
(1) DirectiveSet::clone() overwrites this->DisableIntrinsicOption without freeing the old array.
(2) If DisableIntrinsic is set inside -XX:CompileCommand, then compilecommand_compatibility_init() overwrites set->DisableIntrinsicOption without freeing the old array.
The memory leak only exhibits if any value for -XX:CompileCommand is set on command line. The first leak easily causes 200MB-500MB memory leak per instance in production servers.
Note that this leak happens even if -XX:DisableIntrinsic is not set. Because DirectiveSet::canonicalize_disableintrinsic() allocates one-byte empty string "\0" that still gets leaked.
(1) DirectiveSet::clone() overwrites this->DisableIntrinsicOption without freeing the old array.
(2) If DisableIntrinsic is set inside -XX:CompileCommand, then compilecommand_compatibility_init() overwrites set->DisableIntrinsicOption without freeing the old array.
The memory leak only exhibits if any value for -XX:CompileCommand is set on command line. The first leak easily causes 200MB-500MB memory leak per instance in production servers.
Note that this leak happens even if -XX:DisableIntrinsic is not set. Because DirectiveSet::canonicalize_disableintrinsic() allocates one-byte empty string "\0" that still gets leaked.
- backported by
-
JDK-8242503 Memory leak if -XX:CompileCommand is set
- Resolved
-
JDK-8246686 Memory leak if -XX:CompileCommand is set
- Resolved
-
JDK-8243385 Memory leak if -XX:CompileCommand is set
- Closed
- relates to
-
JDK-8241557 Avoid cloning DirectiveSet at runtime if -XX:CompileCommand is set
- Open
-
JDK-8046155 JEP 165: Compiler Control
- Closed