12474.12474 <SYSCALL> read (3,0xbfcf5db0,32)Exception in thread "Thread-1" java.lang.ArrayIndexOutOfBoundsException: 24 at frysk.proc.LinuxIa32Syscall.syscallByNum(ftrace) at frysk.proc.LinuxIa32$1.getSyscall(ftrace) at frysk.util.StracePrinter.handle(ftrace) at frysk.util.Ftrace$SyscallObserver.updateSyscallExit(ftrace) at frysk.proc.Task.notifySyscallExit(ftrace) at frysk.proc.LinuxPtraceTaskState$Running.handleSyscalledEvent(ftrace) at frysk.proc.Task.processSyscalledEvent(ftrace) at frysk.proc.LinuxPtraceHost$PollWaitOnSigChld$5.syscallEvent(ftrace) at frysk.sys.Wait.waitAllNoHang(ftrace) at frysk.proc.LinuxPtraceHost$PollWaitOnSigChld.execute(ftrace) at frysk.event.EventLoop.runEventLoop(ftrace) at frysk.event.EventLoop.run(ftrace)
This bug as been fix. It can be seen from the back trace that ftrace is trying retrieve the syscall number during an exit event. 2007-05-04 Sami Wagiaalla <swagiaal@redhat.com> * TestFtrace.java: New file. 2007-05-04 Sami Wagiaalla <swagiaal@redhat.com> * TestTaskSyscallObserver.java: Added a syscall cache. Replaced SyscallEventInfo.arg() with Syscall.getArguments(). Replaced SyscallEventInfo.returnCode() with Syscall.getReturnCode(). * SyscallEventInfo.java (arg): Removed. (returnCode): Removed. * Syscall.java: Changed all calls to SyscallEventInfo.args() to this.getArgument(). Changed all calls to SyscallEventInfo.returnCode() to this.getReturnCode(). * LinuxIa32Syscall.java: Changed second argument of write system call to a string. * LinuxX8664Syscall.java: Ditto. * LinuxPowerPCSyscall.java: Ditto. 2007-05-04 Sami Wagiaalla <swagiaal@redhat.com> * StracePrinter.java: Removed SyscallEventInfo argument. Removed when argument. Split the handle function into handleEnter and handleExit. * SyscallHandler.java: Ditto. * Ftrace.java: Added forkObserver for properly following forked children. Stoped use of Refresh for finding forked children. Added procObserver to newly added Procs. Added tasksObserver to procs executed by ftrace; fix for bz 2916. 2007-05-04 Sami Wagiaalla <swagiaal@redhat.com> * observers/SysCallUtilyInfo.java: Replaced use of SyscallEventInfo.arg() with Syscall.getArgument(). Replaced use of SyscallEventInfo.returnCode() with Syscall.getReturnCode().