This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 231152 - IllegalStateException: Invalid thread state NEW for taking a stack trace
Summary: IllegalStateException: Invalid thread state NEW for taking a stack trace
Status: RESOLVED FIXED
Alias: None
Product: profiler
Classification: Unclassified
Component: Base (show other bugs)
Version: 7.3
Hardware: All All
: P3 normal (vote)
Assignee: Tomas Hurka
URL:
Keywords: VISUALVM
: 231193 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-06-12 14:13 UTC by Egor Ushakov
Modified: 2014-01-24 13:25 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter: 201356


Attachments
stacktrace (1.82 KB, text/plain)
2013-06-12 14:13 UTC, Egor Ushakov
Details
stacktrace (1.82 KB, text/plain)
2013-06-12 14:16 UTC, Egor Ushakov
Details
snapshot (327.61 KB, application/octet-stream)
2013-06-13 08:41 UTC, Egor Ushakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Egor Ushakov 2013-06-12 14:13:49 UTC
Build: NetBeans IDE Dev (Build 201306102301)
VM: Java HotSpot(TM) Client VM, 23.21-b01, Java(TM) SE Runtime Environment, 1.7.0_21-b11
OS: SunOS

User Comments:
gorrus: opened a snapshot




Stacktrace: 
java.lang.IllegalStateException: Invalid thread state NEW for taking a stack trace
   at org.netbeans.lib.profiler.results.cpu.StackTraceSnapshotBuilder.processDiffs(StackTraceSnapshotBuilder.java:385)
   at org.netbeans.lib.profiler.results.cpu.StackTraceSnapshotBuilder.processThreadDump(StackTraceSnapshotBuilder.java:350)
   at org.netbeans.lib.profiler.results.cpu.StackTraceSnapshotBuilder.addStacktrace(StackTraceSnapshotBuilder.java:319)
   at org.netbeans.modules.profiler.SampledCPUSnapshot.getTimestamp(SampledCPUSnapshot.java:116)
   at org.netbeans.modules.profiler.snaptracer.impl.IdeSnapshot.getTimestamp(IdeSnapshot.java:93)
   at org.netbeans.modules.profiler.snaptracer.impl.TracerModel.getTimestamp(TracerModel.java:120)
Comment 1 Egor Ushakov 2013-06-12 14:13:51 UTC
Created attachment 135696 [details]
stacktrace
Comment 2 Egor Ushakov 2013-06-12 14:16:36 UTC
Created attachment 135697 [details]
stacktrace

opening a snapshot
Comment 3 Tomas Hurka 2013-06-12 16:36:38 UTC
Please attach the snapshot, which caused this exception. How did you get this snapshot?
Comment 4 Egor Ushakov 2013-06-13 08:41:50 UTC
Created attachment 135739 [details]
snapshot

it was generated with self sampler in the IDE
Comment 5 Egor Ushakov 2013-06-13 09:10:59 UTC
*** Bug 231193 has been marked as a duplicate of this bug. ***
Comment 6 Tomas Hurka 2013-06-13 09:27:23 UTC
Thanks for the snapshot. I am able to reproduce it in NB 7.3
Comment 7 Tomas Hurka 2013-06-13 10:14:59 UTC
This is the stack trace, which caused trouble in sample 1260:

"Thread-2645" - Thread t@2707
    java.lang.Thread.State: NEW
	at java.lang.Thread.currentThread(Native Method)
	at java.lang.Thread.init(Thread.java:356)
	at java.lang.Thread.<init>(Thread.java:473)

The same thread in sample 1261:

"Thread-2646" - Thread t@2708
   java.lang.Thread.State: RUNNABLE
	at java.lang.Throwable.fillInStackTrace(Native Method)
	at java.lang.Throwable.fillInStackTrace(Throwable.java:782)
	at java.lang.Throwable.<init>(Throwable.java:265)
	at java.lang.Exception.<init>(Exception.java:66)
	at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:56)
	at java.lang.NoSuchFieldException.<init>(NoSuchFieldException.java:50)
	at java.lang.Class.getField(Class.java:1539)
	at com.sun.jna.Native.getLibraryOptions(Native.java:445)
	at com.sun.jna.Native.getStructureAlignment(Native.java:511)
	at com.sun.jna.Structure.setAlignType(Structure.java:237)
	at com.sun.jna.Structure.<init>(Structure.java:185)
	at com.sun.jna.Structure.<init>(Structure.java:181)
	at com.sun.jna.Structure.<init>(Structure.java:177)
	at com.sun.jna.Structure.<init>(Structure.java:168)
	at org.llvm.clang.CXCursor.<init>(CXCursor.java:22)
	at org.llvm.clang.CXCursor$ByValue.<init>(CXCursor.java:43)
	at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at java.lang.Class.newInstance0(Class.java:374)
	at java.lang.Class.newInstance(Class.java:327)
	at com.sun.jna.Structure.newInstance(Structure.java:1357)
	at com.sun.jna.Structure.initializeField(Structure.java:1011)
	at com.sun.jna.Structure.initializeFields(Structure.java:1002)
	at com.sun.jna.Structure.calculateSize(Structure.java:841)
	at com.sun.jna.Structure.calculateSize(Structure.java:813)
	at com.sun.jna.Structure.allocateMemory(Structure.java:330)
	at com.sun.jna.Structure.<init>(Structure.java:191)
	at com.sun.jna.Structure.<init>(Structure.java:181)
	at com.sun.jna.Structure.<init>(Structure.java:177)
	at com.sun.jna.Structure.<init>(Structure.java:168)
	at org.llvm.clang.CXIdxEntityInfo.<init>(CXIdxEntityInfo.java:39)
	at org.llvm.clang.CXIdxEntityInfo$ByReference.<init>(CXIdxEntityInfo.java:67)
	at sun.reflect.GeneratedConstructorAccessor34.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at java.lang.Class.newInstance0(Class.java:374)
	at java.lang.Class.newInstance(Class.java:327)
	at com.sun.jna.Structure.newInstance(Structure.java:1357)
	at com.sun.jna.Structure.updateStructureByReference(Structure.java:567)
	at com.sun.jna.Pointer.getValue(Pointer.java:366)
	at com.sun.jna.Structure.readField(Structure.java:600)
	at com.sun.jna.Structure.read(Structure.java:478)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.convertArgument(CallbackReference.java:512)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:436)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:474)

It looks like this happens when native thread is migrated to java thread (note that the top of the thread is "com.sun.jna.CallbackReference$DefaultCallbackProxy.callback()" and there is no "Runnable.run()" method. This is the reason, why this is so rare.
Comment 8 Tomas Hurka 2013-06-13 15:38:18 UTC
Fixed in profiler-main

changeset:   255791:ac880d76770f
user:        Tomas Hurka <thurka@netbeans.org>
date:        Thu Jun 13 17:36:42 2013 +0200
summary:     bugfix #231152, ignore threads, which has not yet started
Comment 9 Quality Engineering 2013-06-15 03:04:48 UTC
Integrated into 'main-golden', will be available in build *201306142301* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/ac880d76770f
User: Tomas Hurka <thurka@netbeans.org>
Log: bugfix #231152, ignore threads, which has not yet started