Re: Potential bug in openjdk-11 on mips64el

Tiago Daitx <[email protected]>
Newsgroups gmane.linux.debian.devel.java,gmane.linux.debian.ports.mips
Message-ID <CAC-Dh9-rCxUc1PkiJLaejXuNQo=+8F5AiC=EwTUV1jEENXO5bQ@mail.gmail.com>
Hi,

This particular exception is being thrown by the call to unlinkat [1]
which calls native unlinkat. Man page for unlinkat describes EISDIR
error [2] as:
"EISDIR pathname refers to a directory, and AT_REMOVEDIR was not
specified in flags."

Assuming unlinkat is telling the truth and this is indeed a directory,
it can be seen from the stacktrace that deleteRecursivelySecure is
calling deleteFile [3] instead of deleteDir (deleteDir does set
AT_REMOVERDIR).

This seems to indicate that the isDirectory call [4] is getting wrong
file attributes. Following the trail, those file attributes come from
a fstatat call [5] which ultimately come from the native stack in
UnixNativeDispatcher.c [6]. The actual way that fstatat is called
depends on the build flags and defines from the arch, so somebody with
better knowledge might want to take a look at UnixNativeDispatcher.c
[6] and tell if OpenJDK is picking the right function to call for
mips64el.

References:
[1] unlinkat call
https://sources.debian.org/src/openjdk-11/11.0.10+9-1/src/java.base/unix/classes/sun/nio/fs/UnixSecureDirectoryStream.java/#L200
[2] EISDIR in OpenJDK:
https://sources.debian.org/src/openjdk-11/11.0.10+9-1/src/hotspot/share/runtime/os.cpp/#L1504
[3] https://salsa.debian.org/java-team/guava-libraries/-/blob/master/guava/src/com/google/common/io/MoreFiles.java#L630
[4] https://salsa.debian.org/java-team/guava-libraries/-/blob/master/guava/src/com/google/common/io/MoreFiles.java#L335
[5] https://sources.debian.org/src/openjdk-11/11.0.10+9-1/src/java.base/unix/classes/sun/nio/fs/UnixFileAttributes.java/#L90


cheers,

-- 
Tiago Stürmer Daitx
Software Engineer
[email protected]

PGP Key: 4096R/F5B213BE (hkp://keyserver.ubuntu.com)
Fingerprint = 45D0 FE5A 8109 1E91 866E  8CA4 1931 8D5E F5B2 13BE
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.