-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser on heap dump #40
Comments
Hi @dhuygu. The |
Hi Mattias,
SEVERE: Exception processing: 762 org.apache.logging.log4j.core.async.
On heap dump I found extra leaks also: [image: Inline image 2] [image: Inline image 3] [image: Inline image 4] All these screenshots are from the same heap dump. I am unable to |
I have created separate issues for log4j2 and LMAX Disruptor. It would be helpful if you could supply your log4j configuration and some info on how you use LMAX Disruptor in the respective issues. As for this issue, unfortunately your heap dump images did not make it into the GitHub issue. Could you give it another try to add them to this issue? |
Regarding log4j2, have you tried registering a If I use the shutdown mechanism in a test case, I cannot reproduce the problem. |
Regarding In your snapshot, can you list outgoing references from the |
same problem, guys
|
@nikolaikopernik, maybe you could answer my questions from February 17? |
After undeploy web app I still have BlockReleaser: @mjiderhamn here is my AccessControlContext, as you asked |
Note: I do not use I'm having similar problem with ojdbc7 driver's |
We have seen the same issue with ojdbc10 https://stackoverflow.com/questions/62657400/oracle-leaks-threads-on-when-closing-hibernate-sessions-with-oracle-jdbc-driver |
@gkorland Replied in SO thread. |
@quaff Thanks! but I was looking for a more generic solution, the users might use another DB or another driver. Is that the only way to force Oracle driver to close these threads? |
@gkorland Oracle close other resources except try {
if (ClassUtils.isPresent("oracle.jdbc.OracleDriver", cl)) {
if (Thread.getAllStackTraces().keySet().stream().anyMatch(t -> t.getName().equals("InterruptTimer"))) {
// oracle driver started
try {
String className = "oracle.jdbc.driver.NoSupportHAManager";
Object noSupportHAManager = Class.forName(className).getMethod("getInstance").invoke(null);
if (noSupportHAManager != null) {
Field f = Class.forName("oracle.jdbc.driver.HAManager").getDeclaredField("timer");
f.setAccessible(true);
Timer timer = (Timer) f.get(noSupportHAManager);
if (timer != null)
timer.cancel();
}
} catch (NoClassDefFoundError err) {
// java.lang.NoClassDefFoundError: Loracle/simplefan/FanManager;
}
}
}
} catch (Throwable e) {
e.printStackTrace();
} |
I have an application deployed to weblogic 12c R2(12.2.1). jdk is 1.8. I've placed ojdbc6(11.2.0.4) and than also ojdbc7(12.1.0.2). OutOfMemoryError error is thrown after a few redeployments. jconsole shows that "oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser" is not killing until the server is restarted. I have created a new class that extends ClassLoaderLeakPreventor to solve my memory leak problem but still having leak problem. What can be the problem?
The text was updated successfully, but these errors were encountered: