From: Jens Axboe <jens.axboe@oracle.com>
To: Erwan Velu <erwan@seanodes.com>
Cc: fio@vger.kernel.org
Subject: Re: fio 1.22 segfaults when pressing ctrl-c
Date: Tue, 18 Nov 2008 19:08:34 +0100 [thread overview]
Message-ID: <20081118180833.GE26308@kernel.dk> (raw)
In-Reply-To: <20081118175833.GC26308@kernel.dk>
On Tue, Nov 18 2008, Jens Axboe wrote:
> On Tue, Nov 18 2008, Erwan Velu wrote:
> > I'm running fio with the surface scan example, and it just segfault and
> > generate a core if I'm pressing CTRL-C during the test.
> >
> > [root@max5 examples]# fio surface-scan
> > write-phase: (g=0): rw=write, bs=64K-64K/64K-64K, ioengine=sync, iodepth=1
> > verify-phase: (g=1): rw=read, bs=64K-64K/64K-64K, ioengine=sync, iodepth=1
> > Starting 2 threads
> > **** I'm pressing CTRL-C ****
> > fio: terminating on signal 2
> > Quit (core dumped)
> > [root@max5 examples]#
> >
> >
> > Then same from gdb:
> >
> > [root@max5 examples]# gdb --args fio surface-scan
> > GNU gdb Red Hat Linux (6.5-25.el5_1.1rh)
> > Copyright (C) 2006 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain
> > conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show warranty" for details.
> > This GDB was configured as "x86_64-redhat-linux-gnu"...Using host
> > libthread_db library "/lib64/libthread_db.so.1".
> >
> > (gdb) run
> > Starting program: /usr/bin/fio surface-scan
> > [Thread debugging using libthread_db enabled]
> > [New Thread 46912498286832 (LWP 2158)]
> > write-phase: (g=0): rw=write, bs=64K-64K/64K-64K, ioengine=sync, iodepth=1
> > verify-phase: (g=1): rw=read, bs=64K-64K/64K-64K, ioengine=sync, iodepth=1
> > Starting 2 threads
> > [New Thread 1084229952 (LWP 2161)]
> > Jobs: 1 (f=1): [WP] [-.-% done] [ 0/ 57822 kb/s] [eta 00m:00s]
> >
> > **** I'm pressing CTRL-C ****
> >
> > Program received signal SIGINT, Interrupt.
> > [Switching to Thread 46912498286832 (LWP 2158)]
> > 0x0000003c23495511 in nanosleep () from /lib64/libc.so.6
> > (gdb) bt
> > #0 0x0000003c23495511 in nanosleep () from /lib64/libc.so.6
> > #1 0x0000003c234c8554 in usleep () from /lib64/libc.so.6
> > #2 0x0000000000408448 in main (argc=<value optimized out>, argv=<value
> > optimized out>) at fio.c:1394
> > (gdb)
>
> Can you recreate with the -O2 removed in the Makefile? That'll get us
> some better debug information. You probably also want to inspect the
> thread that crashed, you are looking at the main process and that just
> mainly sleeps and does status dumps every few seconds.
OK nevermind, it's because of that main thread getting its own SIGQUIT
and not handling it. The below should fix it, I'll release a new version
soon.
diff --git a/fio.c b/fio.c
index 08011c9..2aa8b40 100644
--- a/fio.c
+++ b/fio.c
@@ -116,6 +116,13 @@ static void sig_alrm(int fio_unused sig)
}
}
+/*
+ * Happens on thread runs with ctrl-c, ignore our own SIGQUIT
+ */
+static void sig_quit(int sig)
+{
+}
+
static void sig_int(int sig)
{
if (threads) {
@@ -154,6 +161,11 @@ static void set_sig_handlers(void)
act.sa_handler = sig_ill;
act.sa_flags = SA_RESTART;
sigaction(SIGILL, &act, NULL);
+
+ memset(&act, 0, sizeof(act));
+ act.sa_handler = sig_quit;
+ act.sa_flags = SA_RESTART;
+ sigaction(SIGQUIT, &act, NULL);
}
static inline int should_check_rate(struct thread_data *td)
--
Jens Axboe
prev parent reply other threads:[~2008-11-18 18:10 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-18 15:24 fio 1.22 segfaults when pressing ctrl-c Erwan Velu
2008-11-18 17:58 ` Jens Axboe
2008-11-18 18:08 ` Jens Axboe [this message]
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=20081118180833.GE26308@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=erwan@seanodes.com \
--cc=fio@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.