Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-1070

Inconsistent CLIO lock state maybe cause cl_lock cannot be cached

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.2.0, Lustre 2.3.0
    • Lustre 2.2.0
    • None
    • 2
    • 3
    • 4689

    Description

      According to current CLIO lock state machine rules, the last "unuse()" maybe changes the cl_lock state to CLS_CACHED or CLS_NEW, and only the CLS_HELD cl_lock can be changed to CLS_CACHED.

      On the other hand, with AGL introduced, the AGL RPC sponsor maybe exits the cl_lock processing without "wait()" called before corresponding OSC lock "upcall()", then it is the last "unuse()" duty to update the cl_lock state according to the low layer osc_lock state. To make the cl_lock interface clean, "wait()" should be called when the last "unuse()" called. Currently, it is done in "lov_lock_unuse()" against toplock. But OSC lock "upcall()" is against sublock. So the sublock state maybe un-updated, and inconsistent with low layer osc_lock state, then when the last "unuse()", its state cannot be changed to CLS_CACHED as expectation.

      Attachments

        Issue Links

          Activity

            [LU-1070] Inconsistent CLIO lock state maybe cause cl_lock cannot be cached

            Integrated in lustre-dev » x86_64,client,el6,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » x86_64,client,el6,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            Integrated in lustre-dev » x86_64,server,el5,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » x86_64,server,el5,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            Integrated in lustre-dev » i686,client,el5,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » i686,client,el5,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            Integrated in lustre-dev » x86_64,server,el6,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » x86_64,server,el6,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            Integrated in lustre-dev » i686,server,el5,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            • lustre/osc/osc_lock.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » i686,server,el5,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/lov/lov_lock.c lustre/include/cl_object.h lustre/osc/osc_lock.c

            Integrated in lustre-dev » i686,client,el6,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » i686,client,el6,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            Integrated in lustre-dev » x86_64,client,el5,inkernel #340
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            • lustre/osc/osc_lock.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-dev » x86_64,client,el5,inkernel #340 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/lov/lov_lock.c lustre/include/cl_object.h lustre/osc/osc_lock.c

            Integrated in lustre-b2_2 » i686,server,el5,inkernel #13
            LU-1070 agl: update lock state when AGL upcall (Revision f7523b9151a0e9321d1e369a68ff1a48bbf60d30)

            Result = SUCCESS
            Oleg Drokin : f7523b9151a0e9321d1e369a68ff1a48bbf60d30
            Files :

            • lustre/osc/osc_lock.c
            • lustre/include/cl_object.h
            • lustre/lov/lov_lock.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b2_2 » i686,server,el5,inkernel #13 LU-1070 agl: update lock state when AGL upcall (Revision f7523b9151a0e9321d1e369a68ff1a48bbf60d30) Result = SUCCESS Oleg Drokin : f7523b9151a0e9321d1e369a68ff1a48bbf60d30 Files : lustre/osc/osc_lock.c lustre/include/cl_object.h lustre/lov/lov_lock.c

            Integrated in lustre-b2_2 » i686,server,el6,inkernel #12
            LU-1070 agl: update lock state when AGL upcall (Revision f7523b9151a0e9321d1e369a68ff1a48bbf60d30)

            Result = SUCCESS
            Oleg Drokin : f7523b9151a0e9321d1e369a68ff1a48bbf60d30
            Files :

            • lustre/include/cl_object.h
            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            hudson Build Master (Inactive) added a comment - Integrated in lustre-b2_2 » i686,server,el6,inkernel #12 LU-1070 agl: update lock state when AGL upcall (Revision f7523b9151a0e9321d1e369a68ff1a48bbf60d30) Result = SUCCESS Oleg Drokin : f7523b9151a0e9321d1e369a68ff1a48bbf60d30 Files : lustre/include/cl_object.h lustre/osc/osc_lock.c lustre/lov/lov_lock.c

            Integrated in lustre-master » i686,server,el5,inkernel #518
            LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8)

            Result = SUCCESS
            Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8
            Files :

            • lustre/osc/osc_lock.c
            • lustre/lov/lov_lock.c
            • lustre/include/cl_object.h
            hudson Build Master (Inactive) added a comment - Integrated in lustre-master » i686,server,el5,inkernel #518 LU-1070 agl: update lock state when AGL upcall (Revision 0125d830821f08854adc587f831d06bf30ccbfe8) Result = SUCCESS Oleg Drokin : 0125d830821f08854adc587f831d06bf30ccbfe8 Files : lustre/osc/osc_lock.c lustre/lov/lov_lock.c lustre/include/cl_object.h

            People

              yong.fan nasf (Inactive)
              yong.fan nasf (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: