From: Dave Chinner <david@fromorbit.com>
To: Dave Jones <davej@redhat.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
xfs@oss.sgi.com
Subject: Re: XFS assertion from truncate. (3.10-rc2)
Date: Thu, 23 May 2013 07:54:54 +1000 [thread overview]
Message-ID: <20130522215454.GL29466@dastard> (raw)
In-Reply-To: <20130522055147.GI29466@dastard>
On Wed, May 22, 2013 at 03:51:47PM +1000, Dave Chinner wrote:
> On Wed, May 22, 2013 at 01:29:38AM -0400, Dave Jones wrote:
> > On Wed, May 22, 2013 at 03:12:43PM +1000, Dave Chinner wrote:
> >
> > > > [ 36.339105] XFS (sda2): xfs_setattr_size: mask 0xa068 mismatch on file 0\xffffffb8\xffffffd3-\x02\xffffff88\xffffffff\xffffffff
> > >
> > > So, still the same strange mask. That just doesn't seem right.
> >
> > any idea what I screwed up in the filename printing part ?
>
> Nope.
>
> Right now, I have nothing for you but disappointment....
>
> > > > [ 36.350823] XFS: Assertion failed: 0, file: fs/xfs/xfs_iops.c, line: 730
> > > > [ 36.359459] ------------[ cut here ]------------
> > > > [ 36.365247] kernel BUG at fs/xfs/xfs_message.c:108!
> > > > [ 36.371360] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
> > > > [ 36.379091] Modules linked in: xfs libcrc32c snd_hda_codec_realtek snd_hda_codec_hdmi microcode(+) pcspkr snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm e1000e snd_page_alloc snd_timer ptp snd soundcore pps_core
> > > > [ 36.405431] CPU: 1 PID: 2887 Comm: cc1 Not tainted 3.10.0-rc2+ #4
> > >
> > > Your compiler is triggering this? That doesn't seem likely...
> >
> > yeah, though it seems pretty much anything that writes to that partition will cause it.
> > Here's fsx, which died instantly...
> >
> > [ 34.938367] XFS (sda2): xfs_setattr_size: mask 0x2068 mismatch on file \x02
> >
> > (Note, different mask this time)
>
> Which has ATTR_FORCE set but not ATTR_KILL_SUID or ATTR_KILL_SGID.
> And that, AFAICT, is impossible.
Gah, I've got not idea what the hell I was smoking yesterday
afternoon. 0x2000 is actually ATTR_FILE, and 0x8000 is ATTR_OPEN.
So a mask of 0xa068 is correct and valid from the open path, and
0x2068 is just file from the truncate path.
But, neither of those should trigger that assert. indeed, on a test
kernel (3.10-rc2 based):
# echo I need a new drug > /mnt/scr/bah/blah/black/sheep/foo
[ 296.742990] XFS (vdb): xfs_setattr_size: mask 0xa068, masked # 0x0 ii 0xffff88003e6297c0, d 0xffff88003e5b9cb0 path /bah/blah/black/sheep/foo
#
And there's not assert failure. Indeed, the "masked # 0x0" is what
the assert is checking.
And yeah, path output works. Trick for anyone who doesn't read the
code closely - the buffer is filled from the end backwards, and the
start of the path is the return variable. So, the above code is:
{
struct dentry *d = d_find_alias(VFS_I(ip));
char buf[MAXPATHLEN];
char *ptr;
memset(buf, 0, MAXPATHLEN);
ptr = dentry_path(d, buf, MAXPATHLEN);
xfs_warn(mp, "%s: mask 0x%x, masked 0x%x ii 0x%p, d 0x%p path %s",
__func__, mask,
(mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET|
ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID|
ATTR_KILL_PRIV|ATTR_TIMES_SET)),
ip, d, ptr);
dput(d);
}
Which I put just before the assert that is firing on your machine.
And, obviously, it isn't firing on mine and obviously shouldn't be firing on a
mask of 0xa068.
Gah, what a mess. Sorry for the run-around, Dave, my brain clearly
wasn't working yesterday afternoon.
-Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Dave Jones <davej@redhat.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
xfs@oss.sgi.com
Subject: Re: XFS assertion from truncate. (3.10-rc2)
Date: Thu, 23 May 2013 07:54:54 +1000 [thread overview]
Message-ID: <20130522215454.GL29466@dastard> (raw)
In-Reply-To: <20130522055147.GI29466@dastard>
On Wed, May 22, 2013 at 03:51:47PM +1000, Dave Chinner wrote:
> On Wed, May 22, 2013 at 01:29:38AM -0400, Dave Jones wrote:
> > On Wed, May 22, 2013 at 03:12:43PM +1000, Dave Chinner wrote:
> >
> > > > [ 36.339105] XFS (sda2): xfs_setattr_size: mask 0xa068 mismatch on file 0\xffffffb8\xffffffd3-\x02\xffffff88\xffffffff\xffffffff
> > >
> > > So, still the same strange mask. That just doesn't seem right.
> >
> > any idea what I screwed up in the filename printing part ?
>
> Nope.
>
> Right now, I have nothing for you but disappointment....
>
> > > > [ 36.350823] XFS: Assertion failed: 0, file: fs/xfs/xfs_iops.c, line: 730
> > > > [ 36.359459] ------------[ cut here ]------------
> > > > [ 36.365247] kernel BUG at fs/xfs/xfs_message.c:108!
> > > > [ 36.371360] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
> > > > [ 36.379091] Modules linked in: xfs libcrc32c snd_hda_codec_realtek snd_hda_codec_hdmi microcode(+) pcspkr snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm e1000e snd_page_alloc snd_timer ptp snd soundcore pps_core
> > > > [ 36.405431] CPU: 1 PID: 2887 Comm: cc1 Not tainted 3.10.0-rc2+ #4
> > >
> > > Your compiler is triggering this? That doesn't seem likely...
> >
> > yeah, though it seems pretty much anything that writes to that partition will cause it.
> > Here's fsx, which died instantly...
> >
> > [ 34.938367] XFS (sda2): xfs_setattr_size: mask 0x2068 mismatch on file \x02
> >
> > (Note, different mask this time)
>
> Which has ATTR_FORCE set but not ATTR_KILL_SUID or ATTR_KILL_SGID.
> And that, AFAICT, is impossible.
Gah, I've got not idea what the hell I was smoking yesterday
afternoon. 0x2000 is actually ATTR_FILE, and 0x8000 is ATTR_OPEN.
So a mask of 0xa068 is correct and valid from the open path, and
0x2068 is just file from the truncate path.
But, neither of those should trigger that assert. indeed, on a test
kernel (3.10-rc2 based):
# echo I need a new drug > /mnt/scr/bah/blah/black/sheep/foo
[ 296.742990] XFS (vdb): xfs_setattr_size: mask 0xa068, masked # 0x0 ii 0xffff88003e6297c0, d 0xffff88003e5b9cb0 path /bah/blah/black/sheep/foo
#
And there's not assert failure. Indeed, the "masked # 0x0" is what
the assert is checking.
And yeah, path output works. Trick for anyone who doesn't read the
code closely - the buffer is filled from the end backwards, and the
start of the path is the return variable. So, the above code is:
{
struct dentry *d = d_find_alias(VFS_I(ip));
char buf[MAXPATHLEN];
char *ptr;
memset(buf, 0, MAXPATHLEN);
ptr = dentry_path(d, buf, MAXPATHLEN);
xfs_warn(mp, "%s: mask 0x%x, masked 0x%x ii 0x%p, d 0x%p path %s",
__func__, mask,
(mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET|
ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID|
ATTR_KILL_PRIV|ATTR_TIMES_SET)),
ip, d, ptr);
dput(d);
}
Which I put just before the assert that is firing on your machine.
And, obviously, it isn't firing on mine and obviously shouldn't be firing on a
mask of 0xa068.
Gah, what a mess. Sorry for the run-around, Dave, my brain clearly
wasn't working yesterday afternoon.
-Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2013-05-22 21:54 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-21 22:52 XFS assertion from truncate. (3.10-rc2) Dave Jones
2013-05-21 22:52 ` Dave Jones
2013-05-21 23:34 ` Dave Chinner
2013-05-21 23:34 ` Dave Chinner
2013-05-21 23:40 ` Dave Jones
2013-05-21 23:40 ` Dave Jones
2013-05-21 23:54 ` Dave Chinner
2013-05-21 23:54 ` Dave Chinner
2013-05-22 0:08 ` Dave Jones
2013-05-22 0:08 ` Dave Jones
2013-05-22 0:16 ` Dave Chinner
2013-05-22 0:16 ` Dave Chinner
2013-05-22 2:56 ` Dave Jones
2013-05-22 2:56 ` Dave Jones
2013-05-22 4:03 ` Dave Chinner
2013-05-22 4:03 ` Dave Chinner
2013-05-22 4:15 ` Dave Jones
2013-05-22 4:15 ` Dave Jones
2013-05-22 5:12 ` Dave Chinner
2013-05-22 5:12 ` Dave Chinner
2013-05-22 5:29 ` Dave Jones
2013-05-22 5:29 ` Dave Jones
2013-05-22 5:51 ` Dave Chinner
2013-05-22 5:51 ` Dave Chinner
2013-05-22 14:22 ` Dave Jones
2013-05-22 14:22 ` Dave Jones
2013-05-22 16:19 ` Dave Jones
2013-05-22 16:19 ` Dave Jones
2013-05-22 22:09 ` Dave Chinner
2013-05-22 22:09 ` Dave Chinner
2013-05-22 23:53 ` Dave Jones
2013-05-22 23:53 ` Dave Jones
2013-05-23 15:17 ` Dave Jones
2013-05-23 15:17 ` Dave Jones
2013-05-23 18:13 ` Dave Jones
2013-05-23 18:13 ` Dave Jones
2013-05-22 21:54 ` Dave Chinner [this message]
2013-05-22 21:54 ` Dave Chinner
2013-05-23 18:49 ` Dave Jones
2013-05-23 18:49 ` Dave Jones
2013-05-23 22:30 ` Dave Chinner
2013-05-23 22:30 ` Dave Chinner
2013-05-24 0:49 ` Dave Jones
2013-05-24 0:49 ` Dave Jones
2013-05-24 1:26 ` Dave Chinner
2013-05-24 1:26 ` Dave Chinner
2013-05-24 1:36 ` Dave Jones
2013-05-24 1:36 ` Dave Jones
2013-05-24 1:52 ` Dave Jones
2013-05-24 1:52 ` Dave Jones
2013-05-24 3:03 ` Dave Jones
2013-05-24 3:03 ` Dave Jones
2013-05-24 8:03 ` Dave Chinner
2013-05-24 8:03 ` Dave Chinner
2013-05-24 20:16 ` Dave Jones
2013-05-24 20:16 ` Dave Jones
2013-05-25 4:58 ` Eric Sandeen
2013-05-25 4:58 ` Eric Sandeen
2013-05-25 6:39 ` Stan Hoeppner
2013-05-26 22:43 ` Dave Chinner
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=20130522215454.GL29466@dastard \
--to=david@fromorbit.com \
--cc=davej@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/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.