Build cvs head and find the problem when run frysk.proc.TestI386Regs as follows, [qiyao@GreenHouse frysk-core]$ LANGUAGE="en_US.UTF-8" ./TestRunner -l FINE frysk.proc.TestI386Regs Running testI386Regs(frysk.proc.TestI386Regs) ...17334.17334: argv[0]=/home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-child 17334.17334: argv[1]=--wait=suspend 17334.17334: argv[2]=10 17334.17334: argv[3]=17332 17334.17334: argv[4]=/home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-ia32-regs 17334.17334: starting 17334 17334.17334: new thread 17334.17334 17334.17334: notify 17332 with 10 (User defined signal 1) -- new thread 17334.17334 ERROR java.lang.RuntimeException: ptrace.PEEK: No such process (pid 17334 addr 0x2c) Time: 0.088 There was 1 error: 1) testI386Regs(frysk.proc.TestI386Regs)java.lang.RuntimeException: ptrace.PEEK: No such process (pid 17334 addr 0x2c) at inua.eio.PtraceByteBuffer.peek(TestRunner) at inua.eio.ByteBuffer.get(TestRunner) at frysk.proc.Register.get(TestRunner) at frysk.proc.LinuxIa32$1.number(TestRunner) at frysk.proc.Task.notifySyscallEnter(TestRunner) at frysk.proc.TaskState$SyscallRunning.handleSyscalledEvent(TestRunner) at frysk.proc.Task.processSyscalledEvent(TestRunner) at frysk.proc.LinuxHost$PollWaitOnSigChld$2.syscallEvent(TestRunner) at frysk.sys.Wait.waitAllNoHang(TestRunner) at frysk.proc.LinuxHost$PollWaitOnSigChld.execute(TestRunner) at frysk.event.EventLoop.runEventLoop(TestRunner) at frysk.event.EventLoop.runPolling(TestRunner) at frysk.proc.TestLib.assertRunUntilStop(TestRunner) at frysk.proc.TestLib.assertRunUntilStop(TestRunner) at frysk.proc.TestLib$AttachedDaemonProcess.<init>(TestRunner) at frysk.proc.TestI386Regs.testI386Regs(TestRunner) at frysk.junit.Runner.<init>(TestRunner) at TestRunner.main(TestRunner) FAILURES!!! Tests run: 1, Failures: 0, Errors: 1
Fixed in CVS.
Verify this bug after update my working copy from CVS and re-build frysk, [qiyao@GreenHouse frysk-core]$ LANGUAGE="en_US.UTF-8" ./TestRunner -l FINE frysk.proc.TestI386Regs Running testI386Regs(frysk.proc.TestI386Regs) ...19202.19202: argv[0]=/home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-child 19202.19202: argv[1]=--wait=suspend 19202.19202: argv[2]=10 19202.19202: argv[3]=19200 19202.19202: argv[4]=/home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-ia32-regs 19202.19202: starting 19202 19202.19202: new thread 19202.19202 19202.19202: notify 19200 with 10 (User defined signal 1) -- new thread 19202.19202 19202.19202: received signal 30 (Power failure) 19202.19202: exec 19202.19202: execing /home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-ia32-regs argv[0]=/home/qiyao/source/cvs/build-frysk/frysk-core/frysk/pkglibexecdir/funit-ia32-regs ... SyscallEnter PASS Time: 0.172 OK (1 test)
Log message: 2006-06-16 Mike Cvet <mcvet@redhat.com> * PtraceByteBuffer.java: Moved over to frysk/sys. * PtraceByteBuffer.cxx: Moved over to frysk/sys/cni; fixes to use the new ptrace thread implementation - fixes #2783. * funit-threadexit.c: Removed race condition. * TestTaskTerminatedObserver.java: TestTerm now stops when the task dies as opposed to timing out. * TestLib.Java: Added print statement if event loop is not stopped. * Ptrace.java: Added methods for peek() and poke(). * Ptrace.cxx: Added methods for peek() and poke(). * Makefile.am: Builds with headers from inua.