RFR 8164533: [TEST_BUG] sun/security/ssl/SSLSocketImpl/CloseSocket.java failed with "Error while cleaning up threads after test"
Artem Smotrakov
artem.smotrakov at oracle.com
Thu Aug 25 18:52:17 UTC 2016
Sure Xuelei, I read
https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#InstallationAndCustomization
If I understand correctly, the most settings can be done via
system/security properties. But there may be some other ways like
setDefaultHostnameVerifier(), setDefaultSSLSocketFactory() methods.
My point is that it's better to run tests which don't modify the default
JSSE configuration in agent VM. It would speed up test execution. I
don't think that it's too hard to identify those tests which modify the
default JSSE configuration. and run them in a separate JVM. I believe
most of test are fine now.
I rely on your expertise, and I'll let you decide about it.
Artem
On 08/25/2016 10:45 AM, Xuelei Fan wrote:
>> On Aug 26, 2016, at 1:33 AM, Artem Smotrakov <artem.smotrakov at oracle.com> wrote:
>>
>> Hi Xuelei,
>>
>>
>>> On 08/25/2016 10:26 AM, Xuelei Fan wrote:
>>>
>>>> On Aug 26, 2016, at 12:43 AM, Artem Smotrakov <artem.smotrakov at oracle.com> wrote:
>>>>
>>>> Hi Xuelei,
>>>>
>>>> I am not sure why you think it's too strong to follow to it. To me it's pretty easy to see if a test calls System.setProperty() or Security.setProperty() methods which modify default JSSE configuration.
>>>>
>>>> Is there any other way to modify default JSSE configuration, so that it can't be changes then?
>>> Yes.
>> Could you give an example?
> I will give some tomorrow. If you want to make a research by yourself, please read the jsse reference guides.
>
>
>>> And even it can only be set via explicit call to setProperty(), run it in agent vm is still not safe because we don't know where the set may be used other than this test case.
>> Those tests which modify default JSSE configuration should be run in othervm mode. This way they won't affect any other tests.
> "Should" is an assumption,but not the reality. And we do not always make it right even we want that.
>
>>> It is not only about this test, the impact need to consider all JDK test cases in a big picture, which is a huge number and we cannot actually evaluate so many test cases.
>> I think we just need to identify all tests that modify default JSSE configuration, and make them run in othervm mode. I believe that currently most of them run in othervm mode.
>>
> To be safe, all is needed, most is not enough. As I said, too much test case to make the evaluation and make all right. Reality is reality. I will try to find some out of the jsse components tomorrow. If you want to do by yourself you can search https or ocsp or ldaps on all JDK test, it may be able to find some hints.
>
> Xuelei
>
>> Artem
>>> I will reply more details when I have a PC tomorrow.
>>>
>>> Xuelei
>>>
>>>> Artem
>>>>
>>>>
>>>>>> On 08/25/2016 12:43 AM, Xuelei Fan wrote:
>>>>>> On 8/25/2016 2:06 PM, Weijun Wang wrote:
>>>>>> I think Artem is correct here.
>>>>>>
>>>>>> All those tests that modify static fields should run in othervm mode, so
>>>>>> that *each* runs in its *own* VM. All other tests, which make no such
>>>>>> modifications, can share the *same* VM using agentvm.
>>>>> It's too strong to follow. And it is not easy to know there is no static fields update in a test case.
>>>>>
>>>>> Xuelei
>>>>>
>>>>>>>> On 8/25/2016 13:31, Xuelei Fan wrote:
>>>>>>>> On 8/25/2016 12:31 PM, Artem Smotrakov wrote:
>>>>>>>> Those tests which modify default JSSE parameters should be run in
>>>>>>>> othervm mode. But other tests which don't do that can be safely run in
>>>>>>>> agent VM. This test doesn't seem to modify any default JSSE parameter.
>>>>>>> If this test get booted, other test that need to do more customization
>>>>>>> may not work any more.
>>>>>>>
>>>>>>> For example, boolean variable A is a singleton static field, default is
>>>>>>> true. If A get initialized in default mode, it is "true". It is not
>>>>>>> possible to customize it to "false" any more in other test in
>>>>>>> agentvm/samevm mode.
>>>>>> Shouldn't these "other" tests run in othervm mode?
>>>>>>
>>>>>> Or, do you mean that even if a JSSE test does not modify a static field
>>>>>> inside the test, it will modify some through innocent JSSE calls, so no
>>>>>> JSSE test should ever run in agentvm?
>>>>>>
>>>>>> I find this unnatural.
>>>>>>
>>>>>> Thanks
>>>>>> Max
>>>>>>
>>>>>>> This test has no impact in agentvm/samevm mode unless no test run in
>>>>>>> agentvm/samevm mode or all tests run in agentvm/samevm mode has the same
>>>>>>> configuration as this one. This assumption is too strong to follow.
>>>>>>>
>>>>>>> Xuelei
>>>>>>>
>>>>>>>> Artem
More information about the security-dev
mailing list