RFR: 8332894: ubsan: vmError.cpp:2090:26: runtime error: division by zero [v2]

Matthias Baesken mbaesken at openjdk.org
Mon May 27 07:09:26 UTC 2024


> When running with ubsan enabled on Linux x86_64, I get in the HS :tier1 tests this error :
> 
> runtime/ErrorHandling/TestDwarf_dontCheckDecoder.jtr
> 
> /jdk/src/hotspot/share/utilities/vmError.cpp:2090:26: runtime error: division by zero
>     #0 0x7f16bc531f32 in crash_with_sigfpe /jdk/src/hotspot/share/utilities/vmError.cpp:2090
>     #1 0x7f16bc531f32 in VMError::controlled_crash(int) /jdk/src/hotspot/share/utilities/vmError.cpp:2137
>     #2 0x7f16bea2d8fd in JNI_CreateJavaVM_inner /jdk/src/hotspot/share/prims/jni.cpp:3621
>     #3 0x7f16bea2d8fd in JNI_CreateJavaVM /jdk/src/hotspot/share/prims/jni.cpp:3672
>     #4 0x7f16c5dbd0e5 in InitializeJVM /jdk/src/java.base/share/native/libjli/java.c:1550
>     #5 0x7f16c5dbd0e5 in JavaMain /jdk/src/java.base/share/native/libjli/java.c:491
>     #6 0x7f16c5dc6748 in ThreadJavaMain /jdk/src/java.base/unix/native/libjli/java_md.c:642
>     #7 0x7f16c5d756e9 in start_thread (/lib64/libpthread.so.0+0xa6e9) (BuildId: 2f8d3c2d0f4d7888c2598d2ff6356537f5708a73)
>     #8 0x7f16c531550e in clone (/lib64/libc.so.6+0x11850e) (BuildId: f732026552f6adff988b338e92d466bc81a01c37)
> 
> Reason is that we do a float division by zero to get a signal . This is desired by us so not really an error but ubsan cannot know this.
> So add an attribute to this function that it has undefined behavior.
> See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html   (division by zero) . "Floating point division by zero. This is undefined per the C and C++ standards"

Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:

  adjust comment

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/19394/files
  - new: https://git.openjdk.org/jdk/pull/19394/files/c747e0c3..b297f194

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=19394&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=19394&range=00-01

  Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19394.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19394/head:pull/19394

PR: https://git.openjdk.org/jdk/pull/19394


More information about the hotspot-dev mailing list