Hi,
I'm testing Chronon in order to test my application that runs on Weblogic 11 Application server.
The Chronon Recording server is deployed on tomcat and is up and running.
As per the documentation, I have added bellow VM arguments,
-Xms512M -Xmx1g -javaagent:D:/Recorder/recorder.jar=D:/Recorder/config.txt -agentpath:D:/Recorder/recorderagent64-1.0.0.dll
We are using 64 bit JVM and 64 bit Windows 7 OS. If I take out the above two arguments, my application server starts fine... however we get bellow mentioned error when we add the above VM arguments.
Can you please help??
Thanks in Advance, Rahul.
--------------------------------------------Error Log-----------------------------------------------
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006daa5e26, pid=5472, tid=6084
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode windows-amd64 )
# Problematic frame:
# V [jvm.dll+0x215e26]
#
# If you would like to submit a bug report, please visit:
#
#
--------------- T H R E A D ---------------
Current thread (0x000000000032b000): JavaThread "main" [_thread_in_vm, id=6084, stack(0x00000000023b0000,0x00000000024b0000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
Registers:
EAX=0x0000000000000000, EBX=0x000000000032b000, ECX=0x000000000032b000, EDX=0x00000000005bfe48
ESP=0x00000000024aee30, EBP=0x00000000024aef48, ESI=0x0000000000000000, EDI=0x000000000032b1b8
EIP=0x000000006daa5e26, EFLAGS=0x0000000000010246
Top of Stack: (sp=0x00000000024aee30)
0x00000000024aee30: 00000000003e1a60 00000000024aef48
0x00000000024aee40: 000000000032b000 000000000032b1b8
0x00000000024aee50: 00000000005bfe48 000000006daa8b3e
0x00000000024aee60: 000000000032b000 000000000032b1b8
0x00000000024aee70: 00000000003e1a60 00000000024aeec0
0x00000000024aee80: 000000000032b000 00000000005bfe40
0x00000000024aee90: 00000000000004bb 000000006dd9b308
0x00000000024aeea0: 000000000032b000 00000000005bfe40
0x00000000024aeeb0: 000007fe000004bb 000000006dd9b308
0x00000000024aeec0: 000000006dd9b390 00000000005bfe48
0x00000000024aeed0: 000000000032b000 000000000032b1b8
0x00000000024aeee0: 00000000003e1a58 000000004b4bba90
0x00000000024aeef0: 000000004b464700 000007fefb52104c
0x00000000024aef00: 000000004b464700 000000004b4bba90
0x00000000024aef10: 00000000003e1a58 000000000032b1b8
0x00000000024aef20: 0000000005856180 000007fefb521164
Instructions: (pc=0x000000006daa5e26)
0x000000006daa5e16: 00 00 00 00 74 0a 48 8d 4c 24 50 e8 3a 72 1a 00
0x000000006daa5e26: 4c 8b 06 c7 44 24 40 0e 00 00 00 48 8b d3 49 8b
Stack: [0x00000000023b0000,0x00000000024b0000], sp=0x00000000024aee30, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x215e26]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+39
j java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+23
j sun.misc.Launcher$AppClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+41
j java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;+3
j sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+8
j sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Ljava/lang/String;Ljava/lang/String;)V+5
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x000000004b4b4000 JavaThread "Attach Listener" daemon [_thread_blocked, id=7440, stack(0x000000004b9c0000,0x000000004bac0000)]
0x000000004b4b3000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=216, stack(0x000000004b8c0000,0x000000004b9c0000)]
0x000000004b465800 JavaThread "Finalizer" daemon [_thread_blocked, id=11868, stack(0x000000004b7c0000,0x000000004b8c0000)]
0x00000000003e5000 JavaThread "Reference Handler" daemon [_thread_blocked, id=10864, stack(0x000000004b6c0000,0x000000004b7c0000)]
=>0x000000000032b000 JavaThread "main" [_thread_in_vm, id=6084, stack(0x00000000023b0000,0x00000000024b0000)]
Other Threads:
0x000000004b461800 VMThread [stack: 0x000000004b5c0000,0x000000004b6c0000] [id=7176]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
PSYoungGen total 152896K, used 2621K [0x00000000356e0000, 0x0000000040180000, 0x000000004ac30000)
eden space 131072K, 2% used [0x00000000356e0000,0x000000003596f5d8,0x000000003d6e0000)
from space 21824K, 0% used [0x000000003ec30000,0x000000003ec30000,0x0000000040180000)
to space 21824K, 0% used [0x000000003d6e0000,0x000000003d6e0000,0x000000003ec30000)
PSOldGen total 349568K, used 0K [0x000000000ac30000, 0x0000000020190000, 0x00000000356e0000)
object space 349568K, 0% used [0x000000000ac30000,0x000000000ac30000,0x0000000020190000)
PSPermGen total 21248K, used 2215K [0x0000000005830000, 0x0000000006cf0000, 0x000000000ac30000)
object space 21248K, 10% used [0x0000000005830000,0x0000000005a59c60,0x0000000006cf0000)
Dynamic libraries:
0x0000000000400000 - 0x000000000042e000 D:\Java_64\jdk1.6.0_16\bin\java.exe
0x00000000778e0000 - 0x0000000077a89000 C:\Windows\SYSTEM32\ntdll.dll
0x00000000776c0000 - 0x00000000777df000 C:\Windows\system32\kernel32.dll
0x000007fefdb70000 - 0x000007fefdbdc000 C:\Windows\system32\KERNELBASE.dll
0x000007feff050000 - 0x000007feff12b000 C:\Windows\system32\ADVAPI32.dll
0x000007fefdf00000 - 0x000007fefdf9f000 C:\Windows\system32\msvcrt.dll
0x000007feffab0000 - 0x000007feffacf000 C:\Windows\SYSTEM32\sechost.dll
0x000007feff770000 - 0x000007feff89d000 C:\Windows\system32\RPCRT4.dll
0x000000006d890000 - 0x000000006deed000 D:\Java_64\jdk1.6.0_16\jre\bin\server\jvm.dll
0x00000000777e0000 - 0x00000000778da000 C:\Windows\system32\USER32.dll
0x000007fefeee0000 - 0x000007fefef47000 C:\Windows\system32\GDI32.dll
0x000007fefe030000 - 0x000007fefe03e000 C:\Windows\system32\LPK.dll
0x000007feffb20000 - 0x000007feffbe9000 C:\Windows\system32\USP10.dll
0x000007fefb280000 - 0x000007fefb2bb000 C:\Windows\system32\WINMM.dll
0x000007fefe040000 - 0x000007fefe06e000 C:\Windows\system32\IMM32.DLL
0x000007feff310000 - 0x000007feff419000 C:\Windows\system32\MSCTF.dll
0x000000006d800000 - 0x000000006d80e000 D:\Java_64\jdk1.6.0_16\jre\bin\verify.dll
0x000000006d450000 - 0x000000006d477000 D:\Java_64\jdk1.6.0_16\jre\bin\java.dll
0x000000006d3b0000 - 0x000000006d3ba000 D:\Java_64\jdk1.6.0_16\jre\bin\hpi.dll
0x0000000077aa0000 - 0x0000000077aa7000 C:\Windows\system32\PSAPI.DLL
0x000000006d400000 - 0x000000006d420000 D:\Java_64\jdk1.6.0_16\jre\bin\instrument.dll
0x000007fefb520000 - 0x000007fefb52f000 D:\Recorder\recorderagent64-1.0.0.dll
0x000000006d850000 - 0x000000006d862000 D:\Java_64\jdk1.6.0_16\jre\bin\zip.dll
VM Arguments:
jvm_args: -Dsun.lang.ClassLoader.allowArraySyntax=true -Djava.library.path=D:\oracle\product\10.2.0\client_1\jdbc\lib;D:\oracle\product\10.2.0\client_1\bin;D:\oracle\product\10.2.0\client_1\lib;D:\oracle\product\10.2.0\client_1\lib32;D:\oracle\product\10.2.0\client_1\dll;D:\beaWL11;D:\beaWL11\wlserver_10.3\server\bin;D:\beaWL11\wlserver_10.3\server\lib;D:\beaWL11\wlserver_10.3\server\native\win\x64;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;C:\TIBCO\TIBRV\8.2\lib;C:\TIBCO\TIBRV\8.2\bin -Dweblogic.Domain=XLDomain -Dweblogic.Name=XLServer -Dbea.home=D:\beaWL11 -Dweblogic.management.username=system -Dweblogic.management.password=password -Dweblogic.ProductionModeEnabled=true -Dweblogic.ListenPort=7001 -Dweblogic.ssl.ListenPort=7002 -Dweblogic.management.allowClearTextPasswords=true -Dsoap.env.prefix=SOAP-ENV -Xms512M -Xmx1g -javaagent:D:/Recorder/recorder.jar=D:/Recorder/config.txt -agentpath:D:/Recorder/recorderagent64-1.0.0.dll -Djava.security.policy=D:\beaWL11/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ThreadPoolSize=150 -Dweblogic.SelfTuningThreadPoolSizeMin=150 -Xmx1024m -DNLS_LANG=${env.NLS_LANG} -DORACLE_HOME=D:\oracle\product\10.2.0\client_1 -DLOG_PATH=D:/CXL_Deployments\XL_7_00_WL11/XL_7_00/logs/ -DSERVER_NAME=controller -DSERVER_NUM=
java_command: weblogic.Server
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=D:\Java_64\jdk1.6.0_16
PATH=D:\oracle\product\10.2.0\client_1;D:\oracle\product\10.2.0\client_1\bin;D:\oracle\product\10.2.0\client_1\lib;D:\Java_64\jdk1.6.0_16\bin;.;C:/TIBCO/TIBRV/8.2\bin;D:\beaWL11/wlserver_10.3/server\bin;D:\beaWL11/wlserver_10.3/server\bin\;D:\CXL_Deployments\XL_7_00_WL11\ant\bin;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;D:\CXL_Deployments\XL_7_00_WL11\ant\bin;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;D:\oracle\product\10.2.0\client_1;D:\oracle\product\10.2.0\client_1\bin;D:\oracle\product\10.2.0\client_1\lib;D:\Java_64\jdk1.6.0_16\bin;.;C:/TIBCO/TIBRV/8.2\bin;D:\beaWL11/wlserver_10.3/server\bin;D:\beaWL11/wlserver_10.3/server\bin\;D:\CXL_Deployments\XL_7_00_WL11\ant\bin;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;D:\CXL_Deployments\XL_7_00_WL11\ant\bin;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;D:\oracle\product\10.2.0\client_1\bin;C:\tibco\tibrv\8.2\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Borland\StarTeam SDK 10.4\Lib;C:\Program Files (x86)\Borland\StarTeam SDK 10.4\Bin;C:\Program Files (x86)\Shoreline Communications\ShoreWare Client\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;;D:\CXL_Deployments\XL_7_00_WL11\XL_7_00\common\dlls;
USERNAME=rahul.bhagat
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 7 Build 7601 Service Pack 1
CPU:total 4 (8 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, ht
Memory: 4k page, physical 8283076k(5047836k free), swap 16564304k(10715908k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (14.2-b01) for windows-amd64 JRE (1.6.0_16-b01), built on Jul 31 2009 05:24:11 by "java_re" with MS VC++ 8.0
time: Tue Dec 13 15:41:17 2011
elapsed time: 0 seconds
-
EMPLOYEE
1Try running without the -agentpath:D:/Recorder/recorderagent64-1.0.0.dll argument.
The native agent is currently just used to record exceptions, so you should be able to record (and thus evaluate) without it. The only difference will be you wont see anything in the 'Exceptions' view when you open the recording in the debugger.
Once you are satisfied with the rest, we will send you the source and compilation instructions for the native agent so you can compile it on your machine and thus make sure it works too. -
-
Thanks a lot Prashant for your prompt response. with
I have tried running it without the -agentpath:D:/Recorder/recorderagent64-1.0.0.dll argument and My application started sucessfully. However When I'm trying to start the recording, I'm getting bellow OutOfMemoryError.
I have given memory as 5512M. attached is the recording server console image.
Can you please help ??
Thanks,
Rahul.
--------------------------------------------Error Log-----------------------------------------------
2011-12-13 16:51:05,474 [weblogic.GCMonitor] ERROR SystemOut - Exception in thread "weblogic.GCMonitor"
2011-12-13 16:51:07,160 [weblogic.GCMonitor] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:51:10,696 [ExecuteThread: '97' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '97' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:51:10,696 [ExecuteThread: '97' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:51:34,214 [Chronon - Controller Connection] ERROR SystemOut - Exception in thread "Chronon - Controller Connection"
2011-12-13 16:51:34,214 [Chronon - Controller Connection] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:52:27,243 [ExecuteThread: '88' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '88' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:52:27,244 [ExecuteThread: '99' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '99' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:52:30,601 [ExecuteThread: '99' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:52:30,601 [ExecuteThread: '96' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '96' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:52:30,601 [ExecuteThread: '96' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:52:30,601 [ExecuteThread: '88' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:52:47,365 [ExecuteThread: '92' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '92' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:52:47,365 [ExecuteThread: '92' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:53:00,823 [RMI RenewClean-[192.168.9.89:64977]] ERROR SystemOut - Exception in thread "RMI RenewClean-[192.168.9.89:64977]"
2011-12-13 16:53:02,520 [RMI RenewClean-[192.168.9.89:64977]] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:53:02,520 [ExecuteThread: '83' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '83' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:53:02,520 [ExecuteThread: '83' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 16:53:17,129 [ExecuteThread: '86' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - Exception in thread "ExecuteThread: '86' for queue: 'weblogic.kernel.Default'"
2011-12-13 16:53:17,129 [ExecuteThread: '86' for queue: 'weblogic.kernel.Default'] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space -
-
EMPLOYEE
1You may need to exclude some classes.
I hope you have already read our performance guide:
We are also coming out with a new version soon with dramatic improvements in memory usage. -
-
Thanks Prashant.
After going through above link, I have modified my VM argument to use compressed pointer as ,
-XX:+UseCompressedOops -Xms128M -Xmx5512m -javaagent:D:/Recorder/recorder.jar=D:/Recorder/config.txt
however after it startes recording for a while I'm getting an OutOfMemoryError.
Can you please help?
--------------------------------------ErrorLog-------------------------------------------
2011-12-13 17:11:48,767 [Chronon: Client handler executor] ERROR SystemOut - Exception in thread "Chronon: Client handler executor"
2011-12-13 17:11:48,767 [Chronon: Client handler executor] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Class.getName0(Native Method)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Class.getName(Class.java:552)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.b(SourceFile:170)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.a(SourceFile:124)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.e.run(SourceFile:156)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 17:11:48,768 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-13 17:16:10,981 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 17:16:10,987 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 17:16:10,987 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 17:16:10,987 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 17:16:10,987 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 17:16:10,987 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 17:16:10,988 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-13 17:17:11,481 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 17:17:11,481 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 17:17:11,481 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 17:17:11,481 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 17:17:11,481 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 17:17:11,482 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 17:17:11,482 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-13 17:19:12,483 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 17:19:12,483 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 17:19:12,483 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 17:19:12,484 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 17:19:12,484 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 17:19:12,484 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 17:19:12,484 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
-
-
you need to exclude classes which are highly CPU bound from your recording
-
-
Hi Prashant,
I have included a pattern that has only one class. PFA screen shots.
However I'm still facing the OutOfMemoryError. .
----------------------Error Log------------------------------------------------------------------
011-12-13 19:26:36,302 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 19:26:36,303 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 19:27:36,805 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-13 19:29:37,808 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-13 19:29:37,808 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-13 19:29:37,808 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-13 19:29:37,809 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-13 19:29:37,809 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-13 19:29:37,809 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-13 19:29:37,809 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619) -
-
hmm... the screenshot shows you are using only 450mb of your 5gb allocated memory.
Btw, in case I forgot to mention, every time you change the recording configuration, you have to manually stop and start recording again for the new configuration to be applied. -
-
Yes, but interestingly there is around 4974MB of free usable memory..
I have been restarting the recording after every configuration change.
Additionally looking at the logs, there are two problems...
1. OutOfMemoryError
It's pointing at PermGen space... Do we have to add some more memory?
----------Logs---------------------------------------
2011-12-14 11:46:10,984 [Chronon: Client handler executor] ERROR SystemOut - Exception in thread "Chronon: Client handler executor"
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - java.lang.OutOfMemoryError: PermGen space
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Class.getName0(Native Method)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Class.getName(Class.java:552)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.b(SourceFile:170)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.a(SourceFile:124)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at com.chronon.sb.recorder.b.e.run(SourceFile:156)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-14 11:46:10,985 [Chronon: Client handler executor] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2. NoClassDefFoundError
We have added -javaagent:D:/Recorder/recorder.jar=D:/Recorder/config.txt
as VM argument.. and I assume the class that it's not able to find is included in the recorder.jar. Do we need to add some additional Jars?
----------Logs---------------------------------------
2011-12-14 11:48:05,818 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-14 11:48:05,819 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2 -
-
1. Permgen is different from heap.
Try adding the argument -XX:MaxPermSize=600m to your application and everything should work now.
I have added this to the performance guide as well.
2. The first error is probably causing this too.
Without the permgen space, the classloader cannot load additional classes.
Btw, can you tell me the exact version of recorder.jar you are using? -
-
Thanks Prashant.!
With -XX:MaxPermSize=600m i was able to record and recording was started successfully.. However when I tried to stop the recording, It gave me bellow error
looks like again it encountered a NoClassDefFoundError ....
I'm using controller-windows-2.1.3.309 version of recorder.jar ...
2011-12-14 13:10:44,381 [Chronon - Logger Thread] INFO SystemOut - Chronon: Shutting down...
2011-12-14 13:10:44,383 [Chronon - Logger Thread] INFO SystemOut - Chronon: Please wait while runtime data is processed...
2011-12-14 13:10:44,383 [Chronon - Logger Thread] INFO SystemOut - Chronon: Compressing Data ...
2011-12-14 13:10:44,468 [Recorder Data Persistor] ERROR SystemOut - Exception in thread "Recorder Data Persistor"
2011-12-14 13:10:44,493 [Recorder Data Persistor] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-14 13:10:44,493 [Recorder Data Persistor] ERROR SystemOut - at java.lang.reflect.Field.setInt(Field.java:803)
2011-12-14 13:10:44,493 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.transform.PrimitiveTypeStructure$IntStruct.a(Unknown Source)
2011-12-14 13:10:44,493 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.c.a.k$d.a(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.c.a.k.a(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.transform.ClassStructure.b(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.c.a.f.a(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.c.o.a(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.db.c.o.c(Unknown Source)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.recorder.persistance.a.a.a(SourceFile:92)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.recorder.persistance.b.a(SourceFile:117)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at com.chronon.sb.recorder.persistance.b.run(SourceFile:70)
2011-12-14 13:10:44,494 [Recorder Data Persistor] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-14 13:10:44,524 [Chronon - Logger Thread] INFO SystemOut - Chronon: Saving to disk ...
2011-12-14 13:11:14,308 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-14 13:11:14,308 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-14 13:11:14,309 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-14 13:11:14,309 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-14 13:11:14,309 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-14 13:11:14,309 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-14 13:11:14,309 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619)
2011-12-14 13:14:04,630 [RMI TCP Connection(idle)] ERROR SystemOut - Exception in thread "RMI TCP Connection(idle)"
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - java.lang.NoClassDefFoundError: com/chronon/sb/recorder/instrument/InstrumentationCode
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.setName(Thread.java:1052)
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:651)
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
2011-12-14 13:14:04,631 [RMI TCP Connection(idle)] ERROR SystemOut - at java.lang.Thread.run(Thread.java:619) -
-
hmm assuming you havent referenced the recorder.jar elsewhere in your application, this could be a jvm bug or something restricting the classloader.
to ensure its not a jvm bug, you can update your jvm.
You might also want to update the version of recorder.jar to 2.2 which was released yesterday.
as for classloader issues, it is possible that since you included only 1 class,you are not even executing the code you included for recording, so you need to include more classes to ensure that some code that is included for recording is being executed.
Currently you are getting an error when a chronon tries to record a thread name change. It should work since the recorder.jar is set to put itself on the bootclasspath, but we wont know if this is specifically a bootclasspath issue until you try to record application classes. -
-
Hi Prashant,
I was able to test (record and then replay ) a basic log in case in my application after I switched to recorder.jar 2.2.
However, I'm getting few errors such as
1. The recording server UI shows some random code after recording is started /stopped.
2. After I download the recording and then try to replay it back in eclipse , the java file which was being recorded automatically opens with notepad application. (Or any editor which is set to open the .java files)
-
-
1. Refresh your browser window and the error should go away. If it still doesnt, clear the cache. This is a problem with the Vaadin framework that we use.
2. When you replay, Chronon just tells eclipse to use the 'default editor' to open the java file. It might be opening in notepad because eclipse is not detecting it as part of 'source code.
I think specify a 'source lookup path' when opening the recording should solve the issue:
-
-
Hi Prashant,
For #1, correct , a refresh solves the issue.
for #2, I added source lookup path, however it is still opening the source file in notepad. I followed the steps mentioned here..
however it is still opening the file in the notepad application. -
-
can you show a screenshot of your package explorer showing the file in question?
-
-
-
-
ok go to window>preference>general>editos>file associations
Select *.java and remove notepad from the 'associated editors' list if it is present.
you might also want to remove any other editor that is *not* 'Java Editor' -
-
Rajiv,
We have found the root cause of the 'EXCEPTION_ACCESS_VIOLATION' error.
It happened because you renamed the recorder-.jar file to recorder.jar.
Please read the instructions here to properly rename the .jar file or leave out renaming entirely.
Once done, you can go back to including the '-agentpath' argument -