Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 328341 - Invalid memory access of location 0x14 rip=[...] when lauching embedded tomcat in debug mode on OS X
Summary: Invalid memory access of location 0x14 rip=[...] when lauching embedded tomca...
Status: RESOLVED NOT_ECLIPSE
Alias: None
Product: WTP ServerTools
Classification: WebTools
Component: jst.server (show other bugs)
Version: unspecified   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Larry Isaacs CLA
QA Contact: Angel Vera CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-21 08:10 EDT by Davide Pozza CLA
Modified: 2010-10-22 14:04 EDT (History)
1 user (show)

See Also:


Attachments
Error on eclipse console (111.05 KB, image/png)
2010-10-22 03:31 EDT, Davide Pozza CLA
no flags Details
Crash dump file (37.00 KB, application/octet-stream)
2010-10-22 03:49 EDT, Davide Pozza CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Davide Pozza CLA 2010-10-21 08:10:54 EDT
Build Identifier: Mac OS X 10.6.4

Everytime I try to launch in debug mode a web application project on my Tomcat 6 embedded server I (instantly) get the following error:

Invalid memory access of location 0x14 rip=0x1005fad22

It happens both with GALILEO and HELIOS; I tried to switch between JRE 1.5 and 1.6 but nothing changed.

Please also note that if I try to RUN the embedded Tomcat server it starts up without any problem

Reproducible: Always

Steps to Reproduce:
1.Configure a new Tomcat 6 Server 
2.Create a new Dynamic Web Project
3.Right click on the newly created project and choose "Debug as => Debug on Server"
Comment 1 Angel Vera CLA 2010-10-21 10:23:06 EDT
Larry, 

Can you perhaps take a look at this one. It doesn't sound like a WTP Server tools problem, it most likely something related to the JVM and Mac OS. One idea is to setup traces to see if we can pinpoint at what point in time the error occurs. 

Davide, 

Setup the following traces and let us know and what point in time in the trace the error occurs. To do so, immediately after the error occurs take a look at the trace and identify the last line written, another ideas is to mark down the time when the error occur, that might help to identify in which piece of code the error is occurring. 

org.eclipse.wst.server.core/extension_point=true
org.eclipse.wst.server.core/resources=true
org.eclipse.wst.server.core/listeners=true
org.eclipse.wst.server.core/performance=false
org.eclipse.wst.server.ui/performance=false
org.eclipse.wst.server.ui/extension_point=true
org.eclipse.wst.server.core/debug=true
org.eclipse.wst.server.ui/debug=true
Comment 2 Larry Isaacs CLA 2010-10-21 10:46:10 EDT
Everything related to Tomcat in WTP is written in Java (i.e. no native DLLs, etc), so it wouldn't be resposible for this.  I would also assume the Tomcat configuration isn't attempting to using any of the "native" connectors, like tcnative-1.dll, which are not used by default.

The cause would seem to be in either the MAC JVM or in the Eclipse interface to that JVM.  There isn't enough information here to tell which.  What is needed here is a crash dump from when this occurs.  I don't enough about JVMs on the MAC to know if one is already being written somewhere, or if there are JVM arguments available to force one to be written.  Unfortunately, with the amount of information so far, not much can be done.
Comment 3 Davide Pozza CLA 2010-10-22 03:31:10 EDT
Created attachment 181470 [details]
Error on eclipse console
Comment 4 Davide Pozza CLA 2010-10-22 03:31:36 EDT
Hi Larry

Here's the trace after the "Debug As => Debug On Server" of my empty test web application:

org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.846 Task.init PublishTask[org.eclipse.jst.server.tomcat.core.publishTask]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.846 adapter= LaunchableAdapter[org.eclipse.jst.server.generic.web], launchable= null
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.846 adapter= LaunchableAdapter[org.eclipse.jst.server.preview], launchable= null
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.847 adapter= LaunchableAdapter[org.eclipse.jst.server.tomcat.web], launchable= HttpLaunchable[url=http://localhost:8080/test2/]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.847 client= Client[org.eclipse.wst.server.ui.web]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.847 client= Client[org.eclipse.jst.server.jndi]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.933 Task.init PublishTask[org.eclipse.jst.server.tomcat.core.publishTask]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.934 adapter= LaunchableAdapter[org.eclipse.jst.server.generic.web], launchable= null
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.934 adapter= LaunchableAdapter[org.eclipse.jst.server.preview], launchable= null
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.935 adapter= LaunchableAdapter[org.eclipse.jst.server.tomcat.web], launchable= HttpLaunchable[url=http://localhost:8080/test2/]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.935 client= Client[org.eclipse.wst.server.ui.web]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.35.935 client= Client[org.eclipse.jst.server.jndi]
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.085 Server: ServerWorkingCopy Tomcat v6.0 Server at localhost
org.eclipse.wst.server.ui FINER   22/10/10 09:22.36.116 Ready to launch
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.117 Adding server listener org.eclipse.wst.server.core.internal.Server$25@20c00612 to Tomcat v6.0 Server at localhost
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.118 ->- Adding server listener to notification manager: org.eclipse.wst.server.core.internal.Server$25@20c00612 65535 ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.118 synchronousStart 2
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.118 Starting server: Tomcat v6.0 Server at localhost, launchMode: debug
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.321 ->- Firing server state change event: Tomcat v6.0 Server at localhost, 1 ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322 ->- Broadcasting server event: <Server-Event id=1446913533 kind=17 server=Tomcat v6.0 Server at localhost module=null state=1 publishState=1 restartState=false> ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322   Server event kind: 17 ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322 ->- Firing server event to listener: org.eclipse.wst.server.ui.internal.ServerUIPlugin$2@513781e7 ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322   Firing server event to listener: org.eclipse.wst.server.ui.internal.ServerUIPlugin$2@513781e7
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322 ->- Firing server event to listener: org.eclipse.wst.server.ui.internal.cnf.ServersView2$8@ab5423f ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322   Firing server event to listener: org.eclipse.wst.server.ui.internal.cnf.ServersView2$8@ab5423f
org.eclipse.wst.server.ui FINER   22/10/10 09:22.36.322 Refreshing UI for server=Tomcat v6.0 Server at localhost
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322 ->- Firing server event to listener: org.eclipse.wst.server.core.internal.Server$25@20c00612 ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322   Firing server event to listener: org.eclipse.wst.server.core.internal.Server$25@20c00612
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.322 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.322 -<- Done broadcasting server event -<-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.983 ->- Firing server state change event: Tomcat v6.0 Server at localhost, 4 ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.984 ->- Broadcasting server event: <Server-Event id=1865058292 kind=17 server=Tomcat v6.0 Server at localhost module=null state=4 publishState=1 restartState=false> ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.984   Server event kind: 17 ->-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.984 ->- Firing server event to listener: org.eclipse.wst.server.ui.internal.ServerUIPlugin$2@513781e7 ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.984   Firing server event to listener: org.eclipse.wst.server.ui.internal.ServerUIPlugin$2@513781e7
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.984 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.984 ->- Firing server event to listener: org.eclipse.wst.server.ui.internal.cnf.ServersView2$8@ab5423f ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.985   Firing server event to listener: org.eclipse.wst.server.ui.internal.cnf.ServersView2$8@ab5423f
org.eclipse.wst.server.ui FINER   22/10/10 09:22.36.985 Refreshing UI for server=Tomcat v6.0 Server at localhost
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.985 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.985 ->- Firing server event to listener: org.eclipse.wst.server.core.internal.Server$25@20c00612 ->-
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.985   Firing server event to listener: org.eclipse.wst.server.core.internal.Server$25@20c00612
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.985 synchronousStart notify
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.985 -<- Done firing server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.985 -<- Done broadcasting server event -<-
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.986 Launch: org.eclipse.debug.core.Launch@2910d926
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.986 synchronousStart 3
org.eclipse.wst.server.core LISTENERS 22/10/10 09:22.36.986 Removing server listener org.eclipse.wst.server.core.internal.Server$25@20c00612 from Tomcat v6.0 Server at localhost
org.eclipse.wst.server.core FINEST    22/10/10 09:22.36.986 ->- Removing server listener from notification manager: org.eclipse.wst.server.core.internal.Server$25@20c00612 ->-
org.eclipse.wst.server.core RESOURCES 22/10/10 09:22.37.145 ->- ServerResourceChangeListener responding to resource change: 16 ->-
org.eclipse.wst.server.core RESOURCES 22/10/10 09:22.37.146 -<- Done ServerResourceChangeListener responding to resource change -<-

See also the attached screenshot showing what is shown on my eclipse console.

Davide

(In reply to comment #1)
> Larry, 
> 
> Can you perhaps take a look at this one. It doesn't sound like a WTP Server
> tools problem, it most likely something related to the JVM and Mac OS. One idea
> is to setup traces to see if we can pinpoint at what point in time the error
> occurs. 
> 
> Davide, 
> 
> Setup the following traces and let us know and what point in time in the trace
> the error occurs. To do so, immediately after the error occurs take a look at
> the trace and identify the last line written, another ideas is to mark down the
> time when the error occur, that might help to identify in which piece of code
> the error is occurring. 
> 
> org.eclipse.wst.server.core/extension_point=true
> org.eclipse.wst.server.core/resources=true
> org.eclipse.wst.server.core/listeners=true
> org.eclipse.wst.server.core/performance=false
> org.eclipse.wst.server.ui/performance=false
> org.eclipse.wst.server.ui/extension_point=true
> org.eclipse.wst.server.core/debug=true
> org.eclipse.wst.server.ui/debug=true
Comment 5 Davide Pozza CLA 2010-10-22 03:49:53 EDT
Created attachment 181472 [details]
Crash dump file
Comment 6 Davide Pozza CLA 2010-10-22 03:51:00 EDT
I've just found and attached the crash dump!

Here's also some additional details

!SESSION 2010-10-21 15:41:58.664
-----------------------------------------------
eclipse.buildId=M20100909-0800
java.version=1.6.0_22
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=it_IT
Framework arguments:  -product org.eclipse.epp.package.jee.product -keyring
/Users/davide/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86 -product
org.eclipse.epp.package.jee.product -keyring /Users/davide/.eclipse_keyring
-showlocation

!ENTRY org.eclipse.core.net 1 0 2010-10-21 15:42:16.408
!MESSAGE System property http.nonProxyHosts has been set to
local|*.local|169.254/16|*.169.254/16 by an external source. This value will be
overwritten using the values from the preferences

!ENTRY org.eclipse.wst.server.core 4 0 2010-10-21 15:43:03.265
!MESSAGE Server Tomcat v6.0 Server at localhost failed to start.


Any suggestion about generating the crash dump file?
Comment 7 Davide Pozza CLA 2010-10-22 04:06:16 EDT
Please ignore the question "Any suggestion about generating the crash dump file?" on my previous comment. It was due to a cut & paste error. Sorry

Davide
Comment 8 Larry Isaacs CLA 2010-10-22 09:25:36 EDT
The crash dump shows the crashing thread as:

Thread 1 Crashed:
0   libdt_socket.jnilib           	0x00000001017c1d22 jdwpTransport_OnLoad + 4316
1   libdt_socket.jnilib           	0x00000001017c0d8d jdwpTransport_OnLoad + 327
2   libjdwp.jnilib                	0x0000000100522467 Agent_OnUnload + 71685
3   libjdwp.jnilib                	0x0000000100510851 Agent_OnLoad + 7045
4   libjdwp.jnilib                	0x000000010050d2f0 0x100503000 + 41712
5   libjdwp.jnilib                	0x0000000100511752 Agent_OnUnload + 2800
6   libjdwp.jnilib                	0x0000000100510f01 Agent_OnUnload + 671
7   libclient64.dylib             	0x00000001010bc5b7 JVM_IsPrimitiveClass + 6995
8   libclient64.dylib             	0x00000001010026dd JNI_CreateJavaVM_Impl + 4731
9   libclient64.dylib             	0x00000001010014e1 JNI_CreateJavaVM_Impl + 127
10  java                          	0x0000000100002dc1 0x100000000 + 11713
11  libSystem.B.dylib             	0x00007fff8361d456 _pthread_start + 331
12  libSystem.B.dylib             	0x00007fff8361d309 thread_start + 13

At the bottom of the crash dump, it is shown that libdt_socket.jnilib, libjdwp.jnilib, and libclient64.dylib are all part of the JVM.  This shows the problem is in the "debugging" portion (as indicated by "jdwp") of your JVM and not Eclipse.  A simple test will likely confirm this.  After a failed attempt to start Tomcat, switch to the Debug perspective.  In the Debug view, right click on the terminated Java program and select Properties.  The dialog will show the Java command being executed to run Tomcat.  Copy that command to a terminal session and try to execute it.  You will likely encounter the same crash without Eclipse being involved.

If this is a 64bit JVM you are using, you might try a 32 bit one if possible.  I'm not at all familiar with the Mac or OS X, so I don't know what JVM alternatives might be available.

Since the crash dump shows this isn't the fault of WTP or Eclipse, I'm resolving this as NOT_ECLIPSE.  Unless the command surprisingly works in a terminal session, there isn't much more I can do to help.  If it happens to work, add the full command to this bug and I'll see if there are any clues as to why.
Comment 9 Davide Pozza CLA 2010-10-22 13:13:23 EDT
Hi Larry

thank you very much for your reply: it helped to discover the cause of the crash!

By analyzing the command from the terminal I discovered that the crash was caused by a missing "localhost" entry on my hosts file! The debugger was  unable to resolve it (address=localhost:58313) and this was causing the JVM to crash...

Davide


(In reply to comment #8)
> The crash dump shows the crashing thread as:
> 
> Thread 1 Crashed:
> 0   libdt_socket.jnilib               0x00000001017c1d22 jdwpTransport_OnLoad +
> 4316
> 1   libdt_socket.jnilib               0x00000001017c0d8d jdwpTransport_OnLoad +
> 327
> 2   libjdwp.jnilib                    0x0000000100522467 Agent_OnUnload + 71685
> 3   libjdwp.jnilib                    0x0000000100510851 Agent_OnLoad + 7045
> 4   libjdwp.jnilib                    0x000000010050d2f0 0x100503000 + 41712
> 5   libjdwp.jnilib                    0x0000000100511752 Agent_OnUnload + 2800
> 6   libjdwp.jnilib                    0x0000000100510f01 Agent_OnUnload + 671
> 7   libclient64.dylib                 0x00000001010bc5b7 JVM_IsPrimitiveClass +
> 6995
> 8   libclient64.dylib                 0x00000001010026dd JNI_CreateJavaVM_Impl
> + 4731
> 9   libclient64.dylib                 0x00000001010014e1 JNI_CreateJavaVM_Impl
> + 127
> 10  java                              0x0000000100002dc1 0x100000000 + 11713
> 11  libSystem.B.dylib                 0x00007fff8361d456 _pthread_start + 331
> 12  libSystem.B.dylib                 0x00007fff8361d309 thread_start + 13
> 
> At the bottom of the crash dump, it is shown that libdt_socket.jnilib,
> libjdwp.jnilib, and libclient64.dylib are all part of the JVM.  This shows the
> problem is in the "debugging" portion (as indicated by "jdwp") of your JVM and
> not Eclipse.  A simple test will likely confirm this.  After a failed attempt
> to start Tomcat, switch to the Debug perspective.  In the Debug view, right
> click on the terminated Java program and select Properties.  The dialog will
> show the Java command being executed to run Tomcat.  Copy that command to a
> terminal session and try to execute it.  You will likely encounter the same
> crash without Eclipse being involved.
> 
> If this is a 64bit JVM you are using, you might try a 32 bit one if possible. 
> I'm not at all familiar with the Mac or OS X, so I don't know what JVM
> alternatives might be available.
> 
> Since the crash dump shows this isn't the fault of WTP or Eclipse, I'm
> resolving this as NOT_ECLIPSE.  Unless the command surprisingly works in a
> terminal session, there isn't much more I can do to help.  If it happens to
> work, add the full command to this bug and I'll see if there are any clues as
> to why.
Comment 10 Larry Isaacs CLA 2010-10-22 14:04:08 EDT
Restoring resolution to avoid confusion, since nothing was actually fixed in Eclipse.  I'm glad you were able to resolve this.