Log the shaded form of native workdir system property (#8867)
Motivation: When users' /tmp is noexec, NativeLibraryLoader logs a message informing them how to fix the problem by setting a system property. However, if Netty has been shaded that message will tell them to set the un-shaded system property name, which won't work. Modifications: Change the code to let shading tools rename the native.workdir property name reference within user-visible log messages. Notably, debug logs were _not_ changed, as there's many debug statements including a variety of property names. Fixing them would be a much more invasive change and have limited benefit. Result: The users will see the correctly-named system property to set if they are using a noexec /tmp.
This commit is contained in:
parent
1bc7c4900c
commit
23190bd787
@ -218,10 +218,13 @@ public final class NativeLibraryLoader {
|
||||
try {
|
||||
if (tmpFile != null && tmpFile.isFile() && tmpFile.canRead() &&
|
||||
!NoexecVolumeDetector.canExecuteExecutable(tmpFile)) {
|
||||
// Pass "io.netty.native.workdir" as an argument to allow shading tools to see
|
||||
// the string. Since this is printed out to users to tell them what to do next,
|
||||
// we want the value to be correct even when shading.
|
||||
logger.info("{} exists but cannot be executed even when execute permissions set; " +
|
||||
"check volume for \"noexec\" flag; use -Dio.netty.native.workdir=[path] " +
|
||||
"check volume for \"noexec\" flag; use -D{}=[path] " +
|
||||
"to set native working directory separately.",
|
||||
tmpFile.getPath());
|
||||
tmpFile.getPath(), "io.netty.native.workdir");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
suppressed.add(t);
|
||||
|
Loading…
Reference in New Issue
Block a user