Improved warning in Native.loadByUrl
#127
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I spent a lot of time investigating an error shown in the console of a permanent Windows (10) Jenkins agent
which I thought was the cause of some problems using the agent. In fact this was a red herring: WinP was loaded successfully from a temp file and
ProcessTree
worked. TheUnsatisfiedLinkError
turned out to be because the agent was being launched directly from a terminal window, rather than via WinSW, and soWinswSlaveRestarter
was not active. If the agent connection is dropped and then reëstablished (for example after a controller restart), a new copy of WinP is loaded in a newRemoteClassLoader
in the same JVM and it needs to use this fallback logic to work. Since nothing is necessarily broken, the stack trace was misleading.It would of course be better to avoid native code in agents. Unfortunately I do not see a viable alternative to
ProcessTree.Windows
for now;ProcessHandle
lacks any ability to look up environment variables, and in practice it shows few commands and no arguments.