On Fri, 21 Mar 2025 09:46:02 GMT, Joachim Kern <jk...@openjdk.org> wrote:

>> The test `testEcoFriendly()` checks if the launcher pollutes the 
>> `LD_LIBRARY_PATH` environment variable.
>> Because aix and musl intentionally pollute the `LD_LIBRARY_PATH`, it does 
>> not make sense to make this test somehow passing with crude workarounds, 
>> which even do not work in any case. It only works when the test is executed 
>> by jtreg without explicitly setting `LD_LIBRARY_PATH`.
>> 
>> The problem occurs if the `LD_LIBRARY_PATH` is set from outside, so the test 
>> is called with an already set `LD_LIBRARY_PATH`. This means internally the 
>> `LD_LIBRARY_PATH` is polluted with the generic pollution on AIX/musl  
>> (called A) and the additional jtreg set `LD_LIBRARY_PATH` (called B).
>> The result is, the test has A:B in its `LD_LIBRARY_PATH`. Then the test 
>> launched a new VM also with an explicitly given `LD_LIBRARY_PATH` (called 
>> C). This VM has the resulting `LD_LIBRARY_PATH` A:C which is being reported 
>> to the calling Test.
>> Now the test compares the returned A:C against the A:B from the test adding 
>> the known C. `if (A:C == A:B:C)`.
>> Because the test neither knows A nor B, but only C there is now way to 
>> program a working comparison. It only works if B is empty meaning the test 
>> is not called by jtreg with a preset `LD_LIBRARY_PATH`
>> 
>> Unfortunately we now have to call all tests with a given runtime search path 
>> provided in `LD_LIBRARY_PATH`.
>> So my proposal is to skip this sub test for aix and musl.
>
> @vidmik @axel7born Can please someone take a look at this PR, because I want 
> to change something you implemented 5 years ago. Maybe @dholmes-ora @alanb 
> @erikj who did the review may also take a look.

Thanks for enhancing the PR description @JoKern65. So, the problem appears 
because in our test scenario we now pass a certain LD_LIBRARY_PATH option, 
which we didn't do before.

So, I agree that the test for AIX and MUSL could be skipped because the 
assumption of a pristine LD_LIBRARY_PATH doesn't hold there since the launcher 
sets an LD_LIBRARY_PATH on purpose. However, can't we construct exactly this 
path in the test with the information that we have, e.g. the java.home system 
property?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/24055#issuecomment-2743116596

Reply via email to