Skip to main content

EXCEPTION_ACCESS_VIOLATION while running Eclipse

7 replies [Last post]
frankgrimes97
Offline
Joined: 2006-09-13
Points: 0

Hi All,

I have been running 6uN EA for a few days now and had Eclipse crash a few times with the following error. (see attached error log file for details)

Regards!

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
frankgrimes97
Offline
Joined: 2006-09-13
Points: 0

Here's a brief follow-up...

I first hit this error on my 32-bit Windows XP machine at work using Eclipse-3.1.2 and Eclipse-3.3.1

In doing some more testing at home on my Windows XP 64-bit machine I was able to trigger the exact same bug with the 64-bit server VM running Eclipse-3.4-M2 for Windows x86-64.

I believe that the Eclipse code in question that is triggering this error in the Server Hotspot compiler is the following:

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.core.resources/src/...

Specifically:

[code]
/**
* Returns an array of delta nodes representing the forward delta between
* the given two lists of nodes.
* The given nodes must all be complete nodes.
*/
protected static AbstractDataTreeNode[] forwardDeltaWith(AbstractDataTreeNode[] oldNodes, AbstractDataTreeNode[] newNodes, IComparator comparer) {
if (oldNodes.length == 0 && newNodes.length == 0) {
return NO_CHILDREN;
}

AbstractDataTreeNode[] childDeltas = null;
int numChildDeltas = 0;
int childDeltaMax = 0;

// do a merge
int oldIndex = 0;
int newIndex = 0;
while (oldIndex < oldNodes.length && newIndex < newNodes.length) {
String oldName = oldNodes[oldIndex].name;
String newName = newNodes[newIndex].name;
int compare = oldName.compareTo(newName);
if (compare == 0) {
AbstractDataTreeNode deltaNode = forwardDeltaWithOrNullIfEqual(oldNodes[oldIndex++], newNodes[newIndex++], comparer);
if (deltaNode != null) {
if (numChildDeltas >= childDeltaMax) {
if (childDeltas == null)
childDeltas = new AbstractDataTreeNode[childDeltaMax = 5];
else
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[childDeltaMax = childDeltaMax * 2 + 1], 0, numChildDeltas);
}
childDeltas[numChildDeltas++] = deltaNode;
}
} else if (compare < 0) {
if (numChildDeltas >= childDeltaMax) {
if (childDeltas == null)
childDeltas = new AbstractDataTreeNode[childDeltaMax = 5];
else
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[childDeltaMax = childDeltaMax * 2 + 1], 0, numChildDeltas);
}
childDeltas[numChildDeltas++] = new DeletedNode(oldName);
oldIndex++;
} else {
if (numChildDeltas >= childDeltaMax) {
if (childDeltas == null)
childDeltas = new AbstractDataTreeNode[childDeltaMax = 5];
else
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[childDeltaMax = childDeltaMax * 2 + 1], 0, numChildDeltas);
}
childDeltas[numChildDeltas++] = newNodes[newIndex++];
}
}
while (oldIndex < oldNodes.length) {
if (numChildDeltas >= childDeltaMax) {
if (childDeltas == null)
childDeltas = new AbstractDataTreeNode[childDeltaMax = 5];
else
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[childDeltaMax = childDeltaMax * 2 + 1], 0, numChildDeltas);
}
childDeltas[numChildDeltas++] = new DeletedNode(oldNodes[oldIndex++].name);
}
while (newIndex < newNodes.length) {
if (numChildDeltas >= childDeltaMax) {
if (childDeltas == null)
childDeltas = new AbstractDataTreeNode[childDeltaMax = 5];
else
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[childDeltaMax = childDeltaMax * 2 + 1], 0, numChildDeltas);
}
childDeltas[numChildDeltas++] = newNodes[newIndex++];
}

// trim size of result
if (numChildDeltas == 0) {
return NO_CHILDREN;
}
if (numChildDeltas < childDeltaMax) {
System.arraycopy(childDeltas, 0, childDeltas = new AbstractDataTreeNode[numChildDeltas], 0, numChildDeltas);
}
return childDeltas;
}
[/code]

So far today, running with the Client VM hasn't triggered the crash bug.

Regards,

frankgrimes97

ndcosta
Offline
Joined: 2004-05-21
Points: 0

Hi frankgrimes97,

Thanks for providing these details, we have entered the bug into our internal bug tracking system under Bug Id: 6614100. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6614100.

We will investigate this further but if you do come across a testcase that reproduces this behavior, please let us know.

Thanks,
Nelson

alanb
Offline
Joined: 2005-08-08
Points: 0

From the error log it looks like the crash happens when compiling a method. Can you submit a bug [1] with the steps required to duplicate it.

[1] http://bugreport.sun.com/bugreport/index.jsp

frankgrimes97
Offline
Joined: 2006-09-13
Points: 0

I submitted a bug report to the above-mentioned URL, it has been assigned an internal review ID of 1080140.

bilal_el_uneis
Offline
Joined: 2006-12-10
Points: 0

when does it crash ? because im using eclipse 3.3 and i dont have this issue.

frankgrimes97
Offline
Joined: 2006-09-13
Points: 0

I had it crash with the same error on both Eclipse-3.1.2 and Eclipse-3.3, but not while I was doing anything in particular. (it happened sporadically... i.e. running for hours without crash, then suddenly it happens)

Note that I was running with the -server option, and that in all cases the current running thread is the C2 compiler trying to compile the following Eclipse class:

Current CompileTask:
C2:882 org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith([Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;Lorg/eclipse/core/internal/dtree/IComparator;)[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode; (469 bytes)

bilal_el_uneis
Offline
Joined: 2006-12-10
Points: 0

yeah i use eclipse europa jee dist..for web apps , i dont use it often.. but i didnt get the crash u had.. weird. what about netbeans do u use it ? did u have problems with it?