Re: 1.3, kernel 2.6, signals

2004-03-17 Thread nicole

No, I haven't tried the IBM JVM. That's a good idea.

At 12:13 on Mar 16, Tony Reix shook the earth with:

> Hi Nicole,
>
> { ...
> { I will be constructing a basic application that just does the signal
> { handling similar to my application so I can use it to test.
>
> Seems your problem is not easy to understand ...
> Let us know when you have built such a basic application. At that
> time we'll try to reproduce it there, probably with the Sun or IBM JVMs.
> Did you try with IBM JVM ?
>
> Thanks for helping stabilizing NPTL.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: 1.3, kernel 2.6, signals

2004-03-17 Thread nicole
The IBM JRE did not appear to catch the signals at all, they get passed
right through and kill the application.

Once I have something that tests the signals exclusively, hopefully I can
test all three of the JVMs and see what happens.

At 12:13 on Mar 16, Tony Reix shook the earth with:

> Hi Nicole,
>
> { ...
> { I will be constructing a basic application that just does the signal
> { handling similar to my application so I can use it to test.
>
> Seems your problem is not easy to understand ...
> Let us know when you have built such a basic application. At that
> time we'll try to reproduce it there, probably with the Sun or IBM JVMs.
> Did you try with IBM JVM ?
>
> Thanks for helping stabilizing NPTL.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: 1.3, kernel 2.6, signals

2004-03-17 Thread nicole

Ah, the IBM JDK was holding the signals for the JVM, that explains why
that didn't work (had to use -Xrs).

Works with 2.6:
IBM 1.3.1-6 (with -Xrs)
Sun 1.4.2_03 (no -Xrs)

Does Not Work with 2.6:
Blackdown 1.3.1
Sun 1.3.1_10
Sun 1.3.1_11

Untested:
Blackdown 1.4.x
IBM 1.4.x

Everything tested works fine on a 2.4 kernel.

Attached is the test code that I am using to test the signals.

Feedback welcome... otherwise I am most likely going to test and switch to
the IBM 1.3.1-6 JRE.

Thanks!
-nicole

At 16:52 on Mar 17, nicole shook the earth with:

> The IBM JRE did not appear to catch the signals at all, they get passed
> right through and kill the application.
>
> Once I have something that tests the signals exclusively, hopefully I can
> test all three of the JVMs and see what happens.
>
> At 12:13 on Mar 16, Tony Reix shook the earth with:
>
> > Hi Nicole,
> >
> > { ...
> > { I will be constructing a basic application that just does the signal
> > { handling similar to my application so I can use it to test.
> >
> > Seems your problem is not easy to understand ...
> > Let us know when you have built such a basic application. At that
> > time we'll try to reproduce it there, probably with the Sun or IBM JVMs.
> > Did you try with IBM JVM ?
> >
> > Thanks for helping stabilizing NPTL.
package test;
import sun.misc.Signal;
import sun.misc.SignalHandler;
import java.io.*;

public class SignalTest implements SignalHandler
{
  public SignalTest()
  {
  }
  public static void main(String[] args)
  {
SignalTest st = new SignalTest();
st.run();
  }

  public void run()
  {
System.out.println("Initializing Signals...");
initSignals();
System.out.println("Signals Initialized.");
System.out.println("I'm going to sit here now while you try to kill me"
  + " (type exit to force quit)");

BufferedReader _input = new BufferedReader(new InputStreamReader(System.in));
String s = "foo";

while(!(s.equals("exit")))
{
  try
  {
  s = _input.readLine();
  s = s.trim();
  }
  catch(java.io.IOException e)
  {
   System.out.println("oops, I didn't expect that: " + e.toString());
  }
}

System.out.println("Exiting on user request.");
System.exit(0);
  }

  protected void initSignals()
  {
try
{
  System.out.println("Initializing sig INT");
  Signal.handle(new Signal("INT"), this);
}
catch(IllegalArgumentException e)
{
  // failed
  System.out.println("Signals Caught:" + e.toString());
}

try
{
  System.out.println("Initializing sig HUP");
  Signal.handle(new Signal("HUP"), this);
}
catch(IllegalArgumentException e)
{
  // failed
  System.out.println("Signals Caught:" + e.toString());
}
try
{
  System.out.println("Initializing sig TERM");
  Signal.handle(new Signal("TERM"), this);
}
catch(IllegalArgumentException e)
{
  // failed
  System.out.println("Signals Caught: " + e.toString());
}

try
{
  System.out.println("Initializing sig USR1");
  Signal.handle(new Signal("USR1"), this);
}
catch(IllegalArgumentException e)
{
  // failed
  System.out.println("Signals Caught: " + e.toString());
}
  }

  public void handle(Signal sig)
  {
System.out.println("Caught " + sig.toString() + " ("+sig.getNumber()+")");
if(sig.toString().equals("SIGTERM"))
{
  System.out.println("Caught sig TERM, exiting");
  System.exit(-1);
}
  }
}