RFR: 8336529: (fs) UnixFileAttributeViews setTimes() failing on armhf, Ubuntu noble
Alan Bateman
alanb at openjdk.org
Wed Jul 17 05:27:53 UTC 2024
On Wed, 17 Jul 2024 00:52:56 GMT, Vladimir Petko <vpetko at openjdk.org> wrote:
> time_t transition in Debian/Ubuntu left 32 bit time_t symbols in glibc.
>
> Looking up 'futimens' via dlsym returns 32 bit version of the function.
> This is causing failure to set last modified time (e.g. instead of year 2017 we get 1976 in the test).
> Using the function directly correctly calls 64 bit versions.
>
> When we lookup functions with time_t arguments through dlsym() calls we should use 64 bit versions.
>
> This MR adds a function to lookup 64 bit functions when time_t size is greater than 32 bit in line with the existing [time_t patch](https://evolvis.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=alioth/openjdk-8.git;a=blob;f=debian/patches/t64-dlsyms.diff;h=b2cc8f8a00244bc44900366ed08d7f246ad09904;hb=4c5085cd49fcdc04405e9039705935fde08644a7)
>
> Testing:
> `` sh configure --with-debug-level=fastdebug --enable-fallback-linker --with-jtreg=../jtreg/build/images/jtreg``
>
>
> ==============================
> Test summary
> ==============================
> TEST TOTAL PASS FAIL ERROR
> jtreg:test/jdk/jdk/nio/zipfs/CopyMoveTests.java 1 1 0 0
> jtreg:test/jdk/jdk/nio/zipfs/TestPosix.java 1 1 0 0
> jtreg:test/jdk/java/nio/file/attribute/BasicFileAttributeView/Basic.java
> 1 1 0 0
> jtreg:test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java
> 1 1 0 0
> jtreg:test/jdk/java/nio/file/Files/SetLastModifiedTime.java
> 1 1 0 0
> jtreg:test/jdk/java/nio/file/Files/SymlinkTime.java
> 1 1 0 0
> jtreg:test/langtools/tools/javac/modules/MOptionTest.java
> 1 1 0 0
> jtreg:test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicSharedSymbols.java
> 1 1 0 0
> jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java
> 1 1 0 0
> jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java
> 1 1 0 0
> jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java
> ...
Would it be possible to rename the title on the PR to match the JBS issue?
src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c line 253:
> 251: * Lookup time functions symbols, trying 64 bit version first
> 252: */
> 253: static void* lookup_time_function(const char* symbol64, const char* symbol) {
This function is not specific to "time functions" so will need to be renamed.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20208#issuecomment-2232441593
PR Review Comment: https://git.openjdk.org/jdk/pull/20208#discussion_r1680421661
More information about the nio-dev
mailing list