On Wed, 4 Aug 2021 13:35:59 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> We should not leak the handle to the jimage file (lib/modules) to childs.
>> 
>> JDK-8194734 did solve this for windows. We should use FD_CLOEXEC on Posix as 
>> well.
>> 
>> Note that this only poses a problem when a child process is spawned off not 
>> via `Runtime.exec` but via another route since the spawnhelper closes all 
>> file descriptors.
>> 
>> ---
>> test:
>> 
>> manually verified that lib/modules now has the FD_CLOEXEC flag set.
>
> src/java.base/unix/native/libjimage/osSupport_unix.cpp line 41:
> 
>> 39:  */
>> 40: jint osSupport::openReadOnly(const char *path) {
>> 41:     return ::open(path, O_CLOEXEC);
> 
> This is okay but I think it would be useful to know why this one place needs 
> O_CLOEXEC and not others.

Probably others too, if we care about inheriting read handles to child.

The background is that I am playing with a new test which checks that the VM 
has no open inheritable file descriptors. It is supposed to replace some 
specialized tests which are maintenance-intensive. I am still tuning the test, 
since at the moment it turns out too many false positives.

Anyway, this is the very first descriptor the VM opens, therefore it triggered 
my test. I thought since there is a sibling fix for windows, a similar fix for 
posix would be symmetric.

If you think this is not worth fixing, or we should fix all occurrences in one 
swoop, that is fine too.

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

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

Reply via email to