[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-jmx-dev
Subject: Re: jmx-dev RFR: 8316649: JMX connection timeout cannot be changed and uses the default of 0 (infini
From: Kevin Walls <kevinw () openjdk ! org>
Date: 2023-12-01 10:06:23
Message-ID: baGX3s5rPLTyXNZ8i98ydS-NKif5JtzEz3ILChMS6F8=.f195f8f1-bceb-4506-80fe-e922c7a173ab () github ! com
[Download RAW message or body]
On Tue, 28 Nov 2023 16:21:29 GMT, Kevin Walls <kevinw@openjdk.org> wrote:
> JMX RMI Connections should use a timeout on the Socket connect call by default.
>
> JMX Connections use RMI and some connection failures never terminate. The hang \
> described in 8316649 is hard to reproduce manually: the description says it can be \
> caused by a firewall that never returns a response.
> Changing the base RMI implementation may not be desirable at this time.
>
> JMX can use a new ClientSocketFactory for RMI which implements the connect timeout, \
> which can recognise a new JMX-specific property \
> `com.sun.management.jmxremote.rmi.tcpConnectTimeout` (named like the existing \
> com.sun.management.jmxremote... properties)
> Defaulting to a 1 minute timeout on connect has no effect on existing tests, and \
> should go unnoticed unless there really is a significant connection delay. \
> Specifying zero for the new System Property will use the old technique of a connect \
> with no timeout.
> This can be tested, but it is not realistically usable: although specifying a 1 \
> millisecond timeout will often fail (as expected/desired for the test), it will \
> very often pass as the connection happens immediately.
Thanks, that's right it is a bad interoperability problem!
The alternative SocketFactory needs to be available at all clients, so this is not \
workable.
The other possibility was use of RMISocketFactory::setSocketFactory on the JMX client \
end. This lets us substitute in a preferred socket factory before making a \
connection, and one which can implement its own timeout. This is awkward as it \
affects the whole process. For JMX apps such as JConsole etc this is fine, but in \
other situations it may have side-effects on other RMI activity. At the moment the \
demand for the timeout is not strong, and the behaviour is what it has been for many \
years, so I am going to close this without progressing it.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16856#issuecomment-1835810085
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic