All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Cameron <james.cameron@hp.com>
To: linux-ppp@vger.kernel.org
Subject: CVS 20040201, "Terminating on signal 2" loop
Date: Thu, 01 Jan 2004 22:53:59 +0000	[thread overview]
Message-ID: <20040101225359.GA31516@hp.com> (raw)

I was just giving PPP in CVS a test run, started a connection through a
pty, which established normally, and then pressed Control/C.  pppd then
reported "Terminating on signal 2." 10376 times and segfaulted.

Quite reproducible.  So I did an strace and looked at the source.  On
receipt of a SIGINT from Control/C, term() calls kill_my_pg() to signal the
process group.

It appears that despite kill_my_pg() calling sigaction() to ignore the
signal being resent to the process group, the kernel sends pppd a SIGINT
again.

667   --- SIGINT (Interrupt) @ 0 (0) ---
667   time([1072996209])                = 1072996209
667   getpid()                          = 667
667   rt_sigaction(SIGPIPE, {0x4013ebe0, [], SA_RESTORER, 0x40094498},
{SIG_IGN}
, 8) = 0
667   send(3, "<30>Jan  2 09:30:09 pppd[667]: T"..., 55, 0) = 55
667   rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
667   write(2, "Terminating on signal 2.", 24) = 24
667   write(2, "\n", 1)                 = 1
667   rt_sigaction(SIGINT, {SIG_IGN}, {0x8050290, [HUP INT USR2 TERM
CHLD], SA_R
ESTORER, 0x40094498}, 8) = 0
667   kill(0, SIGINT)                   = 0
667   rt_sigaction(SIGINT, {0x8050290, [HUP INT USR2 TERM CHLD],
SA_RESTORER, 0x
40094498}, NULL, 8) = 0
667   rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
667   --- SIGINT (Interrupt) @ 0 (0) ---
[...]
667   --- SIGINT (Interrupt) @ 0 (0) ---
667   --- SIGSEGV (Segmentation fault) @ 0 (0) ---
667   --- SIGSEGV (Segmentation fault) @ 0 (0) ---
667   +++ killed by SIGSEGV +++

Kernel is 2.4.23 from Debian sources, with MPPE patch applied from PPP
CVS.  The connection was using MPPE, but I doubt that relates.  Pentium
266MHz test machine.

If I try running under gdb, Control/C stops the program so gdb can take
over, and "continue" results in normal disconnection and exit.

Anyone know the cause?  It seems pppd is doing the right thing, but I
don't recall whether sigaction() has immediate effect or not.

-- 
James Cameron                         http://quozl.netrek.org/
HP Open Source, Volunteer             http://opensource.hp.com/
PPTP Client Project, Release Engineer http://pptpclient.sourceforge.net/

                 reply	other threads:[~2004-01-01 22:53 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040101225359.GA31516@hp.com \
    --to=james.cameron@hp.com \
    --cc=linux-ppp@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.