Bug 429092
Summary: | GFS: generic_file_write_nolock() called with opened journal transaction | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Monakhov Dmitriy <dmonakhov> |
Component: | gfs-kmod | Assignee: | Robert Peterson <rpeterso> |
Status: | CLOSED WONTFIX | QA Contact: | Cluster QE <mspqa-list> |
Severity: | high | Docs Contact: | |
Priority: | low | ||
Version: | 5.0 | CC: | adas, bmarzins, nstraz, rwheeler, swhiteho, vvs |
Target Milestone: | --- | ||
Target Release: | 5.5 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2009-09-30 14:33:52 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Monakhov Dmitriy
2008-01-17 08:10:40 UTC
Is this really RHEL 4? balance_dirty_pages_ratelimited_nr doesn't appear to exist in RHEL4, but only in RHEL-5. Can you confirm the kernel version? yes it was RHEL5 Well, gfs1 isn't part of the base kernel, so there should be no need to post the change to rhkernel-list. So no resistance. Dmitriy, I tried the dd command you recommended to recreate the problem, but GFS did not fail. We can see the problem and we're researching the best way to fix it. IMHO, there is not a "good" way to fix it because of the lock ordering required by GFS. So we are trying to find a viable alternative that will make it work properly. By the way, GFS2 does not have this problem. >We can see the problem and we're researching the best way to fix it. As a temporary solution gfs_writei() may be used for all cases. For example following trivial patch has fixed my issue, but with significant performance drawback, because gfs_writei() optimized for journaled mode. --- ./fs/gfs/ops_file.c~orig 2008-02-08 08:48:19.000000000 +0300 +++ ./fs/gfs/ops_file.c 2008-02-08 08:49:07.000000000 +0300 @@ -851,7 +851,7 @@ do_do_write_buf(struct file *file, char brelse(dibh); } - if (journaled || + if (1 || journaled || /* always use this branch */ (gfs_is_stuffed(ip) && !test_bit(GIF_PAGED, &ip->i_flags) && *offset + size <= sdp->sd_sb.sb_bsize - sizeof(struct gfs_dinode))) { >By the way, GFS2 does no thave this problem Yes, i do know about this, but unfortunately IMHO currently GFS2 is not ready for production. No one has complained about this problem and no one has been able to recreate it for a very long time. Changing the code to fix it would only put customers at risk. If the problem is recreatable, we can re-address the issue at that time. I'm closing as WONTFIX. |