2003-05-08 22:36:55

by Udo A. Steinberg

[permalink] [raw]
Subject: ptrace Issues


Hi all,

I have discovered that recently I can no longer attach via strace to
already running processes for a long time. Specifically I have a daemon which
sleeps in select and periodically wakes up from SIGALRM signals. As soon as a
signal hits, strace quits on 2.5.69, however, it works fine on 2.4.21-rc.
Can someone shed some light on what's going on?

root@Corona:~> strace -p 527
--- SIGSTOP (Stopped (signal)) ---
--- SIGSTOP (Stopped (signal)) ---
select(7, [0 3 6], [], NULL, NULL) = ? ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) ---
root@Corona:~> echo $?
0

-Udo.


Attachments:
(No filename) (189.00 B)

2003-06-21 19:41:46

by Daniel Jacobowitz

[permalink] [raw]
Subject: Re: ptrace Issues

On Fri, May 09, 2003 at 12:47:59AM +0200, Udo A. Steinberg wrote:
>
> Hi all,
>
> I have discovered that recently I can no longer attach via strace to
> already running processes for a long time. Specifically I have a daemon which
> sleeps in select and periodically wakes up from SIGALRM signals. As soon as a
> signal hits, strace quits on 2.5.69, however, it works fine on 2.4.21-rc.
> Can someone shed some light on what's going on?

Sorry it took so long...

> root@Corona:~> strace -p 527
> --- SIGSTOP (Stopped (signal)) ---
> --- SIGSTOP (Stopped (signal)) ---
> select(7, [0 3 6], [], NULL, NULL) = ? ERESTARTNOHAND (To be restarted)
> --- SIGALRM (Alarm clock) ---
> root@Corona:~> echo $?
> 0

I can't explain why it works for you on 2.4.21-rc. Were they the same
system and strace version?

The short answer appears to be: this is a bug in strace, not a bug in
the kernel. If you get 4.4.98, it'll work. There was an off-by-one
bug in parsing /proc/%d/status for the list of signals.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer