7

When my application run . I got a message says :

Ping: Timed out waiting for signal from JVM.
The JVM was launched with debug options so this may be because the JVM
is currently suspended by a debugger.  Any future timeouts during this
JVM invocation will be silently ignored.

What does that mean? It seems it will block any web request from outside? because when I upload a file to it, it failed. help me .

Mariusz Jamro
  • 30,615
  • 24
  • 120
  • 162
Joe.wang
  • 11,537
  • 25
  • 103
  • 180

3 Answers3

4

When debugging code, one would usually set breakpoints in it in order to break the execution of the program at some point. When the JVM encounters such breakpoint it suspends execution, and waits for the debugger to go further (step into / step over / step out / etc).

If you have an UI Debugger (like Eclipse) attached to your process, you can control the execution flow from there, watch variable values etc.

The message you're seeing, simply says, that the timeout you got, may be simply the result of such situation, and is shown by the Java Service Wrapper, as described here:

The Wrapper will decide that the JVM is using a debugger if the wrapper.java.command property is set to "jdb" or "jdb.exe" or if one of the wrapper.java.additional.<n> properties is set to "-Xdebug".

So it seems you are starting your app using Java Service Wrapper in debug mode, and when some of the timeouts expire, it warns you with the attached message.

npe
  • 15,395
  • 1
  • 56
  • 55
  • That means any request head for this JVM will failed in this state? – Joe.wang Sep 18 '12 at 09:44
  • That means, one of the wrapper timeouts (described on the bottom of the page I linked to) expired, and the wrapper issued a warning. It's not about HTTP requests - it's about the wrapper pinging the JVM to check if it's still alive. Your app may function normally - it's natural for debug sessions to froze the JVM for a long periods, and the wrapper just signals, that it is aware of this _long period_, however it _thinks_, this may be caused by debug session, because it found some entries in the command string / parameters that would suggest so. – npe Sep 18 '12 at 09:50
1

JVM debug options allow you to connect to the JVM and step through the code (Google java remote debugging for more info). Basically this means that code execution can be paused remotely and controlled (execute one statement at a time, check variable values, etc.). While this is very useful it can of course interfere with normal operation of a piece of software. If you don't intend to run the JVM in debug mode, try to find out what's setting it and remove it (it might be in JAVA_OPTS (environment variable), or it could be in your start-up script or whatever you use to start the JVM. You're looking for a string that looks something like -Xdebug -Xrunjdwp:server=y, transport=dt_socket,address=#number#, suspend=n. Delete all of this, comment it out, or whatever is appropriate for where it's being set, then restart your JVM.

Vala
  • 5,628
  • 1
  • 29
  • 55
1

What does that mean?

The message is coming from Java Service Wrapper. The wrapper has tried to "ping" the JVM and gotten no response. It most likely means that you are debugging the JVM and have paused it. While the JVM is paused, it cannot respond to external requests of any kind. All threads are frozen ...

It seems it will block any web request from outside? because when I upload a file to it, it failed. help me

Yes, it would do that if you've paused the JVM. Unpause the JVM and it should start responding again.

Note that if you launch the application from an IDE in debug mode, the JVM may start in a paused state ... depending on your IDE settings / launch configurations.


The only other explanation I can think of is that you might have a problem with your network or virtual network configuration (e.g. packet filters or virtual network routing) that is causing large scale lossage of network packets.

Stephen C
  • 698,415
  • 94
  • 811
  • 1,216
  • Hi, It seems my app still working(I mean it can response to web request.) even the message shows up. because I verify this by posting a file in a certain test page at that time. What i said uploading file failed before is working with HttpWebRequest api. Are u sure about that ? – Joe.wang Sep 18 '12 at 13:21
  • No, I'm not sure, and my Answer reflects that. But are you sure I'm wrong? – Stephen C Sep 18 '12 at 15:19
  • OK,Based on my experiments. I think we can say that "It would do that". Maybe or Could be. right ? – Joe.wang Sep 19 '12 at 05:12
  • No ... if you DID pause the entire JVM using the debugger then it there is no doubt that it would stop listening to requests. The doubt is whether you've actually done that. – Stephen C Sep 19 '12 at 05:38
  • No . I did not set any breakpoint in my source code . I am sure about that .The service wrapper run in the debugger mode. – Joe.wang Sep 19 '12 at 12:40
  • You don't need to set a breakpoint for the application to be paused. – Stephen C Sep 19 '12 at 13:06
  • So. Can i just say it is better not run in the debugger mode for production environment ? – Joe.wang Sep 19 '12 at 13:56
  • Yes. You should not be running in debug mode in a production environment. – Stephen C Sep 19 '12 at 14:26