Assertion error when connecting remotely to 64-bit machine

Questions about YourKit Java Profiler
Post Reply
Gibson
Posts: 181
Joined: Mon Apr 11, 2005 10:38 am

Assertion error when connecting remotely to 64-bit machine

Post by Gibson »

I'm running the profiler UI locally on a 64-bit machine.
I'm trying to connect remotely to a 64-bit machine running the 64-bit agent.

I get a nasty recurrent exception

Code: Select all

Picked up JAVA_TOOL_OPTIONS:
java.lang.IllegalArgumentException: assertion failed
        at com.yourkit.util.Asserts.assertTrue(a:25)
        at com.yourkit.ui.telemetry.b.a(a:43)
        at com.yourkit.ui.telemetry.PlotterView.a(a:397)
        at com.yourkit.ui.telemetry.PlotterView.new(a:190)
        at com.yourkit.ui.telemetry.ValueAxisComponent.getPreferredSize(a:27)
        at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:78)
        at java.awt.Container.preferredSize(Container.java:1558)
        at java.awt.Container.getPreferredSize(Container.java:1543)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1584)
        at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:717)
        at java.awt.Container.layout(Container.java:1401)
        at java.awt.Container.doLayout(Container.java:1390)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validate(Container.java:1448)
        at com.yourkit.ui.telemetry.Plotter$1.doLayout(a:2)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validate(Container.java:1448)
        at com.yourkit.ui.telemetry.Plotter.a(a:86)
        at com.yourkit.ui.telemetry.MemoryPanel.a(a:10)
        at com.yourkit.ui.telemetry.a.a(a:155)
        at com.yourkit.ui.telemetry.a.a(a:285)
        at com.yourkit.ui.telemetry.a$1$1.run(a:10)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at com.yourkit.b$b.dispatchEvent(a:20)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
java.lang.IllegalArgumentException: assertion failed
        at com.yourkit.util.Asserts.assertTrue(a:25)
        at com.yourkit.ui.telemetry.b.a(a:43)
        at com.yourkit.ui.telemetry.PlotterView.a(a:397)
        at com.yourkit.ui.telemetry.PlotterView.new(a:190)
        at com.yourkit.ui.telemetry.ValueAxisComponent.getPreferredSize(a:27)
        at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:78)
        at java.awt.Container.preferredSize(Container.java:1558)
        at java.awt.Container.getPreferredSize(Container.java:1543)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1584)
        at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:717)
        at java.awt.Container.layout(Container.java:1401)
        at java.awt.Container.doLayout(Container.java:1390)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validate(Container.java:1448)
        at com.yourkit.ui.telemetry.Plotter$1.doLayout(a:2)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validate(Container.java:1448)
        at com.yourkit.ui.telemetry.Plotter.a(a:86)
        at com.yourkit.ui.telemetry.MemoryPanel.a(a:10)
        at com.yourkit.ui.telemetry.a.a(a:155)
        at com.yourkit.ui.telemetry.a.a(a:285)
        at com.yourkit.ui.telemetry.a$1$1.run(a:10)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at com.yourkit.b$b.dispatchEvent(a:20)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
        at java.awt.Dialog$1.run(Dialog.java:515)
        at java.awt.Dialog.show(Dialog.java:536)
        at com.yourkit.ui.DialogFactory$MyDialog.show(a:9)
        at java.awt.Component.show(Component.java:1300)
        at java.awt.Component.setVisible(Component.java:1253)
        at com.yourkit.b$b$1.run(a:6)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at com.yourkit.b$b.dispatchEvent(a:20)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Gibson
Posts: 181
Joined: Mon Apr 11, 2005 10:38 am

Post by Gibson »

I get the same problem trying to run both the process and the UI on the 64-bit machine.
This is with build 626,

Code: Select all

[rgibson@frcalc64 ~]$ java -version
java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_02-b09, mixed mode)
[rgibson@frcalc64 ~]$ uname -a
Linux  2.6.11-1.27_FC3 #1 Tue May 17 20:24:57 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Thank you for the report. We're are trying to reproduce the issue.
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Hi,

We didn't manage to reproduce the problem. Is this always reproducible for you? Could you please provide step by step instructions and/or an example of program for that the problem is reproducible.

We don't understand how this assertion could fail, and hardly need to reproduce the problem here to be able to fix it.

Best regards,
Anton
Gibson
Posts: 181
Joined: Mon Apr 11, 2005 10:38 am

Post by Gibson »

I am connecting to an application with a big heap. it is 100% reproducible for me with the following code:

Code: Select all

import java.io.IOException;

public class Test {
	public static void main (String[] args) throws IOException {
		int SIZE = 1000000;
		byte[][] array = new byte[SIZE][];
		for (int i = 0; i < array.length; i++) {
			array[i] = new byte[1000];
		}
		System.out.println ("Waiting for connection");
		System.in.read (new byte[512]);
	}
}
Steps to reproduce are the following:

Code: Select all

$ uname -a
Linux xxx 2.6.11-1.27_FC3 #1 Tue May 17 20:24:57 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
$ java -version
java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_02-b09, mixed mode)
$ java -Xmx2500m -agentlib:yjpagent -ea Test
[YourKit Java Profiler 4.5 EAP build 626] Using JVMTI
[YourKit Java Profiler 4.5 EAP build 626] Listening on port 10001...
Waiting for connection
When you see the "Waiting for connection" message, start the YourKit UI and try to connect to the running process. You should get the assertion error.
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Thank you for the details.

Unfortunately we still cannot reproduce the problem.

Could you please try the latest build 628. It contains some changes that probably should solve the problem.
Gibson
Posts: 181
Joined: Mon Apr 11, 2005 10:38 am

Post by Gibson »

Yes, it's fixed in 628, thanks!
Vladimir Kondratyev
Posts: 1626
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

Great! :lol:
Post Reply