Bug 130691
| Summary: | filesystem gets hung if a node holding the listlock expires | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Retired] Red Hat Cluster Suite | Reporter: | Adam "mantis" Manthei <amanthei> | ||||||
| Component: | gfs | Assignee: | Brian Stevens <bstevens> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 3 | ||||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2010-10-29 21:49:09 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: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 137219 | ||||||||
| Attachments: |
|
||||||||
|
Description
Adam "mantis" Manthei
2004-08-23 18:59:52 UTC
Created attachment 102993 [details]
insert a couple breakpoints into lock_gulm.o for testing
The attached patch creates some breakpoints for reproducing the bug. Two
reproduce the bug with this patch:
1. Mount GFS on Node1
2. Load lock_gulm.o with the breakpoint number on Node2
`insmod gulm_breakpoint=1 lock_gulm.o`
3. Crash Node1
4. Node2 will now panic when trying to recover Node1. Once this happens, no
new nodes can mount (any other node that may have been mounted at the time
will not be able to replay the journal for Node1 or Node2 either)
Created attachment 103002 [details]
make jid mappings ignore expired state of locks
The attached patch makes the jid mapping requests use the
lg_lock_flag_IgnoreExp (ignore expired flag) when aquiring the listlock and
journal locks. I've done some rather basic testing and it seems to work. I'm
waiting for Mike Tilstra to review the code once he returns back from vacation.
(Does this need to also be set when dealing with unlock requests? I don't
think it does since it means that the holder of the lock is trying to unlock
it's locks while expired, which is just not allowed)
Unlocks always work. The only thing that will block an unlock request is a state update to the slave servers. Which happen pretty quick. looking at patch now...... looks ok to me. This bugzilla is reported to have been fixed years ago. |