> jcmd uses 
> src/jdk.internal.jvmstat/linux/classes/sun/jvmstat/PlatformSupportImpl.java 
> to scan temporary directories to find out processes in the container. It 
> checks inode to ensure the temp directory is not conflicted. However inode 
> maybe same value between the container and others. Thus we should check 
> device id for that case.
> 
> For example I saw following case on [distroless 
> cc-debian11](https://github.com/GoogleContainerTools/distroless/blob/main/cc/README.md)
>  container. I started rescue:jdk19 container with sharing PID namespace. 
> `/proc/1/root/tmp` is different from `/tmp` on rescue:jdk19, but they are 
> same inode value. However we can see the differense in device id.
> 
> 
> $ podman run -it --rm --entrypoint=sh --pid=container:fa39662f7352 
> rescue:jdk19
> / #
> / # stat /tmp
>   File: /tmp
>   Size: 29              Blocks: 0          IO Block: 4096   directory
> Device: efh/239d        Inode: 135674931   Links: 1
> Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
> Access: 2022-04-05 08:51:37.000000000
> Modify: 2022-04-05 08:51:37.000000000
> Change: 2022-04-05 08:51:37.000000000
> 
> / # stat /proc/1/root/tmp
>   File: /proc/1/root/tmp
>   Size: 29              Blocks: 0          IO Block: 4096   directory
> Device: e1h/225d        Inode: 135674931   Links: 1
> Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
> Access: 2022-04-05 08:51:37.000000000
> Modify: 2022-04-05 08:50:42.000000000
> Change: 2022-04-05 08:50:42.000000000

Yasumasa Suenaga has updated the pull request incrementally with one additional 
commit since the last revision:

  Fix comments

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8103/files
  - new: https://git.openjdk.java.net/jdk/pull/8103/files/e5f76a60..0e0ccbe0

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8103&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8103&range=00-01

  Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8103.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8103/head:pull/8103

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

Reply via email to