The method jdk.management.jfr.RemoteRecordingStream::start() takas a lock that is needed to close the stream. This means the stream can't be shutdown from another thread. This doesn't happen with startAsync() as the method returns after the stream has started,
This is a regression introduced with "8263332: JFR: Dump recording from a recording stream" and should be backported to JDK 17. Technically it doesn't break the specification, but it's expected behavior, and should work like JDK 16.
This is a regression introduced with "8263332: JFR: Dump recording from a recording stream" and should be backported to JDK 17. Technically it doesn't break the specification, but it's expected behavior, and should work like JDK 16.