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

server can do replays after recovery

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.1.0
    • Lustre 2.1.0
    • None
    • 3
    • 5046

    Description

      Niu has found in LU-128 that there is race possible in target_handle_connect(). The server sets RECOVERING flag in reply but right after that the recovery is ended, so client is evicted and new connection is established. The client will start replaying over established connection and server accepts them fully.

      We have two problems here:
      1) The race itself to be fixed so client shouldn't get RECOVERING flag for new connection.
      2) The server must deny replay requests during normal processing otherwise it is possible to break transaction flow by malformed client which will send replays without recovery.

      I am going to add patches in gerrit for both problems.

      Attachments

        Activity

          [LU-178] server can do replays after recovery

          There is no intention to backport the fix to b1_8. This can be closed.

          niu Niu Yawei (Inactive) added a comment - There is no intention to backport the fix to b1_8. This can be closed.

          Yes, I think so, at least current b1_8 has the same problem.

          niu Niu Yawei (Inactive) added a comment - Yes, I think so, at least current b1_8 has the same problem.
          pjones Peter Jones added a comment -

          Niu,

          Do I understand correctly that this is a long-standing issue with recovery on 1.8.x?

          Peter

          pjones Peter Jones added a comment - Niu, Do I understand correctly that this is a long-standing issue with recovery on 1.8.x? Peter

          Looks b1_8 has the same problem, we should port it to b1)8 as well.

          niu Niu Yawei (Inactive) added a comment - Looks b1_8 has the same problem, we should port it to b1)8 as well.
          pjones Peter Jones added a comment -

          Is any further work required or can this ticket be marked as resolved?

          pjones Peter Jones added a comment - Is any further work required or can this ticket be marked as resolved?

          Integrated in lustre-master » i686,server,el5,ofa #110
          LU-178 prevent replays after recovery on server

          Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8
          Files :

          • lustre/ptlrpc/client.c
          • lustre/include/obd_support.h
          • lustre/mdt/mdt_handler.c
          • lustre/ldlm/ldlm_lib.c
          • lustre/tests/replay-single.sh
          • lustre/ptlrpc/service.c
          hudson Build Master (Inactive) added a comment - Integrated in lustre-master » i686,server,el5,ofa #110 LU-178 prevent replays after recovery on server Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8 Files : lustre/ptlrpc/client.c lustre/include/obd_support.h lustre/mdt/mdt_handler.c lustre/ldlm/ldlm_lib.c lustre/tests/replay-single.sh lustre/ptlrpc/service.c

          Integrated in lustre-master » i686,server,el5,inkernel #110
          LU-178 prevent replays after recovery on server

          Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8
          Files :

          • lustre/tests/replay-single.sh
          • lustre/ptlrpc/client.c
          • lustre/mdt/mdt_handler.c
          • lustre/ldlm/ldlm_lib.c
          • lustre/include/obd_support.h
          • lustre/ptlrpc/service.c
          hudson Build Master (Inactive) added a comment - Integrated in lustre-master » i686,server,el5,inkernel #110 LU-178 prevent replays after recovery on server Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8 Files : lustre/tests/replay-single.sh lustre/ptlrpc/client.c lustre/mdt/mdt_handler.c lustre/ldlm/ldlm_lib.c lustre/include/obd_support.h lustre/ptlrpc/service.c

          Integrated in lustre-master » i686,server,el6,inkernel #110
          LU-178 prevent replays after recovery on server

          Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8
          Files :

          • lustre/include/obd_support.h
          • lustre/ptlrpc/service.c
          • lustre/mdt/mdt_handler.c
          • lustre/ldlm/ldlm_lib.c
          • lustre/tests/replay-single.sh
          • lustre/ptlrpc/client.c
          hudson Build Master (Inactive) added a comment - Integrated in lustre-master » i686,server,el6,inkernel #110 LU-178 prevent replays after recovery on server Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8 Files : lustre/include/obd_support.h lustre/ptlrpc/service.c lustre/mdt/mdt_handler.c lustre/ldlm/ldlm_lib.c lustre/tests/replay-single.sh lustre/ptlrpc/client.c

          Integrated in lustre-master » i686,client,el5,ofa #110
          LU-178 prevent replays after recovery on server

          Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8
          Files :

          • lustre/ldlm/ldlm_lib.c
          • lustre/mdt/mdt_handler.c
          • lustre/include/obd_support.h
          • lustre/ptlrpc/service.c
          • lustre/tests/replay-single.sh
          • lustre/ptlrpc/client.c
          hudson Build Master (Inactive) added a comment - Integrated in lustre-master » i686,client,el5,ofa #110 LU-178 prevent replays after recovery on server Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8 Files : lustre/ldlm/ldlm_lib.c lustre/mdt/mdt_handler.c lustre/include/obd_support.h lustre/ptlrpc/service.c lustre/tests/replay-single.sh lustre/ptlrpc/client.c

          Integrated in lustre-master » x86_64,server,el6,inkernel #110
          LU-178 prevent replays after recovery on server

          Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8
          Files :

          • lustre/include/obd_support.h
          • lustre/ldlm/ldlm_lib.c
          • lustre/ptlrpc/client.c
          • lustre/ptlrpc/service.c
          • lustre/mdt/mdt_handler.c
          • lustre/tests/replay-single.sh
          hudson Build Master (Inactive) added a comment - Integrated in lustre-master » x86_64,server,el6,inkernel #110 LU-178 prevent replays after recovery on server Oleg Drokin : 5d4ae6c905b8e8a38a6e4d3195f550a1e2b37ba8 Files : lustre/include/obd_support.h lustre/ldlm/ldlm_lib.c lustre/ptlrpc/client.c lustre/ptlrpc/service.c lustre/mdt/mdt_handler.c lustre/tests/replay-single.sh

          People

            niu Niu Yawei (Inactive)
            tappro Mikhail Pershin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: