Skip to content
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

vertx-sql-client core dump with wisp2 #216

Closed
yueliangwen opened this issue Mar 22, 2021 · 5 comments
Closed

vertx-sql-client core dump with wisp2 #216

yueliangwen opened this issue Mar 22, 2021 · 5 comments
Assignees
Labels
bug Something isn't working

Comments

@yueliangwen
Copy link

Description
vertx-sql-client based on netty.

Steps to Reproduce
Steps to reproduce the behavior:

  1. Download the dump.tar.gz
  2. Read the README.adoc
  3. Configure the PostgreSQL instance
  4. See core dump

dump.tar.gz
hs_err_pid4247.log
replay_pid4247.log

You may modify some configuration code to connect the PostgreSQL instance.
image

The README.adoc image
image

Expected behavior
The case should not be core dump.

JDK version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (Alibaba Dragonwell 8.6.5) (build 1.8.0_282-b1)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell 8.6.5) (build 25.282-b1, mixed mode)

Execution environment

@zhengxiaolinX zhengxiaolinX self-assigned this Mar 23, 2021
@zhengxiaolinX
Copy link
Contributor

zhengxiaolinX commented Mar 23, 2021

Thanks for opening this issue. You can simply add one JVM option -XX:CompileCommand=exclude,io.vertx.sqlclient.impl.SocketConnectionBase::lambda\$init\$0 to exclude this method from compilation or -XX:-TieredCompilation to disable the C1 compiler to work around with this issue in your case if needed. This problem happens because some dead locals in debug info of MonitorExit node in synchronized methods, compiled by the C1 compiler, don't get cleaned, and it is a somewhat rare case. I will file a patch afterward to fix this problem.

@yueliangwen
Copy link
Author

@zhengxiaolinX Thanks for your suggestion.

@zhengxiaolinX zhengxiaolinX added the bug Something isn't working label Mar 24, 2021
zhengxiaolinX added a commit to dragonwell-project/dragonwell8_hotspot that referenced this issue Mar 26, 2021
…erate debuginfo

Summary: MonitorExit introduces new 'State' to generate OopMaps and Debuginfo, yet dead locals on the 'State' doesn't get cleaned. We need to clean them because all locals are dead after the implicit monitorexit.

Test Plan: deopt/TestSynchronizedMethodC1Crash.java, which can reproduce this issue.

Reviewed-by: leiyul, sandlerwang, sanhong

Issue: dragonwell-project/dragonwell8#216
@zhengxiaolinX
Copy link
Contributor

Could you please have a try for the latest build, in which the fix for Wisp exists, when you are available? I hope everything goes well this time.
Release page: Dragonwell8.6.6
Thanks in advance.

@yueliangwen
Copy link
Author

@zhengxiaolinX Thanks, it worked as expected.

@zhengxiaolinX
Copy link
Contributor

Thanks again for providing us with this great test for reproducing this issue, which helps us solve it without any difficulty. I'll close this issue and please feel free to reopen it if needed.

yuleil pushed a commit to dragonwell-project/dragonwell11 that referenced this issue Sep 23, 2022
…erate debuginfo

Summary: MonitorExit introduces new 'State' to generate OopMaps and Debuginfo, yet dead locals on the 'State' doesn't get cleaned. We need to clean them because all locals are dead after the implicit monitorexit.

Test Plan: deopt/TestSynchronizedMethodC1Crash.java, which can reproduce this issue.

Reviewed-by: leiyul, sandlerwang, sanhong

Issue: dragonwell-project/dragonwell8#216
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants