AdoptOpenJDK / IcedTea-Web

The new home for IcedTea-Web
Other
225 stars 87 forks source link

Add Java Option to the whitelist #938

Closed WeierE1 closed 2 months ago

WeierE1 commented 7 months ago

I have the following java option which i got from yourkit to enable remote profiling. -agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll=delay=10000,listen=all

I added the property in the Arguement but get always the message Ignoring java-vm-args due to illegal Property -agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll=delay=10000,listen=all

I tried to add it to the whitelist like this deployment.jvm.arguments.whitelist=-agentpath but it did not work. Can you help me? We are using OpenWebstart 1.9.1

sclassen commented 7 months ago

The error message gives the exact string you need to pass to the whitelist in order for it to be allowed in your JNLP

WeierE1 commented 7 months ago

I have also tried this, but get the same message deployment.jvm.arguments.whitelist=-agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll=delay=10000,listen=all

But what makes me wonder is that the documentation says the following: Note: The whitelist should only contain the name of the JVM argument and not the value, as can be seen in the example above.

Because the parameter at the whitelist is the complete parameter that i get from yourkit with all values.

sclassen commented 7 months ago

You are right, I took a too quick look at the code:


    // Arguments that are specified in deployment.jvm.arguments.whitelist in deployment.config
    private static boolean isValidConfigArgument(final String argument) {
        final String[] argParts = argument.split("=");
        return getConfigJvmArgsWhitelist().contains(argParts[0]);
    }

So the correct value is everything before the first equals sign -> -agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll

WeierE1 commented 7 months ago

I'm using now that value but i got the same error:

What could also be interesting, when i open the settings and press the "Apply" button. The definded value for the whitelist is changed: -agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll to -agentpath\:C\:ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll

and -agentpath:C:\ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll to-agentpath\:C\:ProgramData\YourKit\2023.9.107\windows-x86-64\F80927D3\yjpagent.dll

means for the character ":" is as "\" added and if only a single "\" is written and the next character is not a ":" it will be removed.

WeierE1 commented 2 months ago

I look again by it and found the solution i had to to add like this to the whitelist deployment.jvm.arguments.whitelist=-agentpath\:C\:\ProgramData\YourKit\2024.3.148\windows-x86-64\D1401CA2\yjpagent.dll