JDK-8203026 : java.rmi.NoSuchObjectException: no such object in table
  • Type: Bug
  • Component: core-svc
  • Sub-Component: tools
  • Affected Version: 13
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2018-05-13
  • Updated: 2020-06-24
  • Resolved: 2019-03-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 13
11.0.9-oracleFixed 13 b14Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
Description
Failure encounted while running test/jdk/sun/tools/jstatd/TestJstatdPort.java:

Start jstat:
[/scratch/mesos/jib-master/install/2018-05-11-2230264.kim.barrett.jdk/macosx-x64-debug.jdk/jdk-11/fastdebug/bin/jstat -J-XX:+UsePerfData -J-Duser.language=en -gcutil 52512@sc14ia501.us.oracle.com:61885 250 5]
sun.jvmstat.monitor.MonitorException: Could not read data for remote JVM 52512
	at jdk.jstatd/sun.jvmstat.perfdata.monitor.protocol.rmi.PerfDataBuffer.<init>(PerfDataBuffer.java:68)
	at jdk.jstatd/sun.jvmstat.perfdata.monitor.protocol.rmi.RemoteMonitoredVm.<init>(RemoteMonitoredVm.java:71)
	at jdk.jstatd/sun.jvmstat.perfdata.monitor.protocol.rmi.MonitoredHostProvider.getMonitoredVm(MonitoredHostProvider.java:146)
	at jdk.jcmd/sun.tools.jstat.Jstat.logSamples(Jstat.java:107)
	at jdk.jcmd/sun.tools.jstat.Jstat.main(Jstat.java:70)
Caused by: java.rmi.NoSuchObjectException: no such object in table
	at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
	at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
	at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
	at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:209)
	at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:161)
	at jdk.proxy1/com.sun.proxy.jdk.proxy1.$Proxy1.getCapacity(Unknown Source)
	at jdk.jstatd/sun.jvmstat.perfdata.monitor.protocol.rmi.PerfDataBuffer.<init>(PerfDataBuffer.java:63)
	... 4 more

Looking at where the java.rmi.NoSuchObjectException is being thrown, it may indicate a WeakReference was cleared when the application didn't expect that to happen.  It's possible there is a bug in reference processing, but I think it's more likely either the test or the RMI infrastructure isn't properly ensuring the liveness of the referent, allowing it to be reclaimed by GC at a point where that isn't expected.

Comments
Fix request (11u) -- will label after testing completed. I would like to downport this for parity with 11.0.9-oracle. Applies clean.
22-06-2020