Skip to content

Commit b97c0bd

Browse files
committed
backport 44d62c8e21fb09381f9f86a081f70549cc321b1e
1 parent d20a6ca commit b97c0bd

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import java.nio.file.Path;
3636
import java.nio.file.Paths;
3737

38+
import java.util.Optional;
39+
3840
import java.util.regex.Pattern;
3941

4042
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -368,7 +370,11 @@ private static boolean checkCatchesAndSendQuitTo(int pid, boolean throwIfNotRead
368370
if (okToSendQuit) {
369371
sendQuitTo(pid);
370372
} else if (throwIfNotReady) {
371-
final var cmdline = Files.lines(procPid.resolve("cmdline")).findFirst();
373+
Optional<String> cmdline = Optional.empty();
374+
375+
try (final var clf = Files.lines(procPid.resolve("cmdline"))) {
376+
cmdline = clf.findFirst();
377+
}
372378

373379
var cmd = "null"; // default
374380

test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
import java.io.IOException;
4444
import java.io.InputStreamReader;
4545
import java.nio.file.Paths;
46-
import java.util.Arrays;
4746
import java.util.ArrayList;
47+
import java.util.Arrays;
4848
import java.util.Collections;
4949
import java.util.EnumSet;
5050
import java.util.List;
@@ -53,7 +53,9 @@
5353
import java.util.function.Consumer;
5454
import java.util.regex.Pattern;
5555
import java.util.stream.Collectors;
56+
5657
import jdk.test.lib.Container;
58+
import jdk.test.lib.Platform;
5759
import jdk.test.lib.Utils;
5860
import jdk.test.lib.containers.docker.Common;
5961
import jdk.test.lib.containers.docker.DockerRunOptions;
@@ -109,6 +111,11 @@ public static void main(String[] args) throws Exception {
109111
mainContainer.waitForMainMethodStart(TIME_TO_WAIT_FOR_MAIN_METHOD_START);
110112

111113
for (AttachStrategy attachStrategy : EnumSet.allOf(AttachStrategy.class)) {
114+
if (attachStrategy == AttachStrategy.ACCESS_TMP_VIA_PROC_ROOT &&
115+
elevated && !Platform.isRoot()) {
116+
// Elevated attach via proc/root not yet supported.
117+
continue;
118+
}
112119
long mainProcPid = testCase01(attachStrategy, elevated);
113120

114121
// Excluding the test case below until JDK-8228850 is fixed

0 commit comments

Comments
 (0)