[LU-16612] cl_page_state_set0() LBUG Created: 02/Mar/23  Updated: 01/Aug/23  Resolved: 21/Mar/23

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.16.0

Type: Bug Priority: Major
Reporter: Zhenyu Xu Assignee: Zhenyu Xu
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

Got 2 cases about cl_page_state_set0()) LBUG.

  • (cl_page_state_set0()) allowed_transitions[old][state]
    cl_page_state_set0+0x504/0x8f0 [obdclass]
    cl_page_assume+0x130/0x4a0 [obdclass]
    ll_read_ahead_page+0x5cc/0x730 [lustre]

And the cl_page cp_state is 2 (CPS_PAGEOUT) cp_owner has value. The page is meant to transit from CACHED to OWNED, but it already has been in PAGEOUT state.

  • (cl_page.c:346:cl_page_state_set0()) equi(state == CPS_OWNED, page->cp_owner != NULL)
    cl_page_state_set0+0x3ef/0x3f0 [obdclass]
    cl_page_io_start+0x46/0x110 [obdclass]
    cl_page_prep+0x170/0x190 [obdclass]
    osc_io_submit+0x1e8/0x730 [osc]

And the cl_page cp_state is 1 (CPS_OWNED) cp_onwer has value. The page is meant to transit from OWNED to PAGEOUT, but cl_page_io_start() should has cleared its cp_owner.



 Comments   
Comment by Gerrit Updater [ 02/Mar/23 ]

"Zhenyu Xu <bobijam@hotmail.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/50180
Subject: LU-16612 llite: protect cp_state with vmpage lock
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: c883bd30d373ff2733b63f1f1a42d3735b5d66e0

Comment by Gerrit Updater [ 21/Mar/23 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50180/
Subject: LU-16612 llite: protect cp_state with vmpage lock
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: d03b038d0dd8360dc896ceb7f3cee99245551cb8

Comment by Peter Jones [ 21/Mar/23 ]

Landed for 2.16

Generated at Sat Feb 10 03:28:30 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.