-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
OpenShift platform with AzureFile storage class
similarly to JENKINS-52690
Jenkins makes uses of Files.setLastModifiedTime, which only works if the user creating the file actually owns the file.
CIFS storage class are mounted with dir_mode=0777 and gid=0 and uid=0, but the workload on OpenShift will run with a random uid (so user 1000001 will create a file, and the file will be owned by root:root and other+rwx rights. That user is able to read and write and create files but cannot change the time)
the first call that impacts us (but there are probably others)
Files.setLastModifiedTime errors should not be fatal
2023-12-21 08:04:34.922+0000 [id=29] SEVERE hudson.PluginManager#loadPluginsFromWar: Failed to extract the bundled plugin s.hpi java.nio.file.FileSystemException: /jenkins/plugins/s.jpi: Operation not permitted at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.setTimes(UnixFileAttributeViews.java:125) at java.base/java.nio.file.Files.setLastModifiedTime(Files.java:2355) at hudson.PluginManager.copyBundledPlugin(PluginManager.java:1083) at hudson.PluginManager.loadPluginsFromWar(PluginManager.java:674) at hudson.PluginManager.considerDetachedPlugin(PluginManager.java:622) at hudson.ClassicPluginStrategy.fix(ClassicPluginStrategy.java:263) at hudson.ClassicPluginStrategy.createPluginWrapper(ClassicPluginStrategy.java:236) at hudson.PluginManager$1$3$1.run(PluginManager.java:442) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:177) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1173) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)