RFR: 8280684: JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.

Markus Grönlund mgronlun at openjdk.java.net
Wed Feb 16 10:28:12 UTC 2022


On Wed, 16 Feb 2022 07:54:26 GMT, KIRIYAMA Takuya <duke at openjdk.java.net> wrote:

>> src/hotspot/share/jfr/jni/jfrJavaSupport.hpp line 103:
>> 
>>> 101: 
>>> 102:   // critical
>>> 103:   static void abort(jstring errorMsg, TRAPS, bool dump_core=true);
>> 
>> Not sure this is necessary. The existing core dump logic already handles the case where a core file cannot be generated due to disk full.
>
> Thank you for your review.  
> 
> Whether or not hotspot generate a core file is determined by the argument of vm_abort(bool dump_core).  If the argument is "true", vm_abort(bool dump_core) calls os::abort(bool dump_core) to generate a core file. 
> See the following code:
> https://github.com/openjdk/jdk/blob/3c160ab5bec0c2364ec3f43c5a5789098d4699e5/src/hotspot/share/runtime/java.cpp#L625
> 
> I think JfrJavaSupport::abort() should pass "false" as an argument to vm_abort(bool dump_core).

Ok. My point was that the os won't be able to create a core file if there is no available space.

But this is indeed more succinct, if we don't want to create a core categorically from this location.

>> test/hotspot/jtreg/runtime/jfr/TestJFRDiskFull.java line 127:
>> 
>>> 125:         raf.close();
>>> 126:     }
>>> 127: }
>> 
>> I appreciate the effort, but we can't have a test that intentionally provokes a disk full situation. Instead, the updated error message will have to be manually verified.
>
> I use `@run main/manual` in TestJFRDiskFull.java. I think this label means manually test.  
> I mannually confirmed this test to pass with jtreg after this fix.

My apologies, I missed the @run main/manual decoration. I don't think we have any JFR tests that use it.

If you can ensure this test is excluded for automatic runs, then perhaps...but then I don't know who will get to run it, so the value of the test is questionable.

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

PR: https://git.openjdk.java.net/jdk/pull/7227


More information about the hotspot-jfr-dev mailing list