[LU-5250] OSSes with LU-4611: hitting J_ASSERT_JH(jh, handle->h_buffer_credits > 0) Created: 24/Jun/14 Updated: 10/Oct/21 Resolved: 10/Oct/21 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.6.0, Lustre 2.5.2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Patrick Farrell (Inactive) | Assignee: | WC Triage |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 14647 | ||||||||
| Description |
|
Since pulling This bug kills an OSS, then the OSS hits it on startup after that. If we back off to a version without We're hitting these problems down a setattr & quota related path: Looking in to /* optimistic optimization: LMA is set first and usually fit inode */ if (strcmp(name, XATTR_NAME_LMA) == 0) { if (dt_object_exists(dt)) credits = 0; else credits = 1; } else if (strcmp(name, XATTR_NAME_VERSION) == 0) { Specifically, the "credits = 0" optimization for XATTR_NAME_LMA. There doesn't appear to be any special handling for this, so I think this is the path that eventually ends at our assertion. If this is the problem, my question is, what's the correct number of credits here? Is it just 1, or some other number? One other note of concern here. Now that quota accounting is on by default, what does this mean and does it relate to this issue?
|
| Comments |
| Comment by Patrick Farrell (Inactive) [ 24/Jun/14 ] |
|
I can make a dump of this available if requested. |
| Comment by Patrick Farrell (Inactive) [ 24/Jun/14 ] |
|
Ah, it looks like I've misread here. The call from ofd_attr_set is done with XATTR_NAME_FID - XATTR_NAME_LMA seems to be limited to the local_storage case. The rest of the information above remains unchanged. |
| Comment by Alex Zhuravlev [ 25/Jun/14 ] |
|
LMA is supposed to be fitting the inode body (not external block). ofd_attr_set() calls into osd_declare_attr_set() which counts that inode with credit=1 (a single block). I don't think LMA is an issue here. I'd rather check credits to transfer the quota. |
| Comment by Ryan Haasken [ 25/Jun/14 ] |
|
ofd_attr_set calls ofd_trans_start, which calls dt_declare_record_write, which calls osd_declare_write. The patch for |
| Comment by Niu Yawei (Inactive) [ 28/Sep/14 ] |
|
see my comment from
|
| Comment by Ryan Haasken [ 23/Oct/14 ] |
|
Niu, your comment seems to suggest a potential sequence of steps to reproduce this problem.
Does that sound like it should reproduce the problem? I'll try it when I get a chance. Are you still thinking that this bug is different from |
| Comment by Ryan Haasken [ 29/Oct/14 ] |
|
Unfortunately, but not unexpectedly, the steps above do not reproduce the bug. Here's what I did on a freshly formatted file system. [root@centclient06 ~]# useradd test1 [root@centclient06 ~]# useradd test2 [root@centclient06 ~]# cd /mnt/centss08/ [root@centclient06 centss08]# su test1 [test1@centclient06 centss08]$ dd of=test1file if=/dev/zero count=16384 16384+0 records in 16384+0 records out 8388608 bytes (8.4 MB) copied, 0.246592 s, 34.0 MB/s [test1@centclient06 centss08]$ exit exit [root@centclient06 centss08]# ls -lh total 8.0M -rw-rw-r-- 1 test1 test1 8.0M Oct 29 05:17 test1file [root@centclient06 centss08]# chown test2:test2 test1file [root@centclient06 centss08]# ls -lh total 8.0M -rw-rw-r-- 1 test2 test2 8.0M Oct 29 05:17 test1file There was no OSS crash on this chown. [root@centclient06 testdir]# lfs quota -u test1 /mnt/centss06
Disk quotas for user test1 (uid 501):
Filesystem kbytes quota limit grace files quota limit grace
/mnt/centss06 0 0 0 - 0 0 0 -
[root@centclient06 testdir]# lfs quota -u test2 /mnt/centss07
open /mnt/centss07 failed: No such file or directory (2)
[root@centclient06 testdir]# lfs quota -u test2 /mnt/centss06
Disk quotas for user test2 (uid 502):
Filesystem kbytes quota limit grace files quota limit grace
/mnt/centss06 8196 0 0 - 1 0 0 -
|
| Comment by Ryan Haasken [ 01/Jul/15 ] |
|
Niu, is this now a duplicate of |
| Comment by Niu Yawei (Inactive) [ 02/Jul/15 ] |
Yes, it's likely a dup of |