-
Bug
-
Resolution: Fixed
-
P4
-
18
-
b12
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8312091 | 17.0.9-oracle | David Buck | P4 | Resolved | Fixed | b03 |
JDK-8285864 | 17.0.4 | Jaroslav Bachorík | P4 | Resolved | Fixed | b01 |
JDK-8291709 | 15.0.9 | Ekaterina Vergizova | P4 | Resolved | Fixed | b03 |
JDK-8291708 | 13.0.13 | Ekaterina Vergizova | P4 | Resolved | Fixed | b03 |
JDK-8312107 | 11.0.21-oracle | David Buck | P4 | Resolved | Fixed | b03 |
JDK-8286999 | 11.0.16 | Jaroslav Bachorík | P4 | Resolved | Fixed | b04 |
JfrRecorderService failes to write records and becomes Internal Error when no space left on device.
Environment:
Red Hat Enterprise Linux Server release 7.9 (Maipo)
Intel(R) Xeon(R) Platinum 8260 CPU @ 2.40GHz
4GB Memory
openjdk version "18-ea" 2022-03-22
OpenJDK Runtime Environment (build 18-ea+31-2049)
OpenJDK 64-Bit Server VM (build 18-ea+31-2049, mixed mode, sharing)
Actual output:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (jfrStreamWriterHost.inline.hpp:80), pid=16941, tid=16961
# guarantee(num_written > 0) failed: Nothing got written, or os::write() failed
#
# JRE version: OpenJDK Runtime Environment (18.0+31) (build 18-ea+31-2049)
# Java VM: OpenJDK 64-Bit Server VM (18-ea+31-2049, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x874a8a] void JfrLinkedList<JfrBuffer, JfrCHeapObj>::iterate<PredicatedConcurrentWriteOp<UnBufferedWriteToChunk<JfrBuffer>, Excluded<JfrBuffer, true> > >(PredicatedConcurrentWriteOp<UnBufferedWriteToChunk<JfrBuffer>, Excluded<JfrBuffer, true> >&)+0x19a
#
# Core dump will be written. Default location: /work/core.16941
#
Expected output:
JFR should report an appropriate message.
How to reproduce :
1. Run out of the disk
$ dd if=/dev/zero of=largefile_200G.dat bs=1G count=200
$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/rhel-root 47285700 47013032 268 100% /
2. Execute an application and start JFR with -XX:FlightRecorderOptions=maxchunksize=1M
---------- BEGIN SOURCE ----------
Configuration profConfig = Configuration.getConfiguration("profile");
Recording recording = new Recording(profConfig);
recording.setName("TestJFR");
recording.start();
while (true) {
try {
new Object();
Thread.sleep(1);
} catch (Exception ex) {
}
}
recording.stop();
---------- END SOURCE ---------
3. Watch jfr files and the disk size.
$ cd /tmp/2022_01_13_20_56_16_32501
$ watch -n 3 "ls -l ; df -k"
$ ls -l ; df -k
total 1256
-rw-rw-r--. 1 isadmin isadmin 1091928 Jan 13 21:05 2022_01_13_20_56_16.jfr
-rw-rw-r--. 1 isadmin isadmin 192512 Jan 13 21:05 2022_01_13_21_05_17.jfr
tmpfs 1940260 0 1940260 0% /sys/fs/cgroup
/dev/mapper/rhel-root 47285700 47285680 20 100% /
- backported by
-
JDK-8285864 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
-
JDK-8286999 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
-
JDK-8291708 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
-
JDK-8291709 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
-
JDK-8312091 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
-
JDK-8312107 JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/4f29d1ec
-
Commit openjdk/jdk13u-dev/0a6b1a08
-
Commit openjdk/jdk15u-dev/ed0200ad
-
Commit openjdk/jdk17u-dev/ae9b3344
-
Commit openjdk/jdk/9471f24c
-
Review openjdk/jdk11u-dev/1044
-
Review openjdk/jdk13u-dev/386
-
Review openjdk/jdk15u-dev/250
-
Review openjdk/jdk17u-dev/357
-
Review openjdk/jdk/7227