Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.1.5
    • Lustre 2.1.3
    • None
    • server-2.1.3-1nas (centos6.3)
      client 2.1.3-1nas Suse11-1
    • 3
    • 5443

    Description

      1. ldd a.out
        /usr/bin/ldd: line 118: ./a.out: Text file busy

      see attached client and server debug traces.

      Attachments

        1. client.inode.dlmtrace.debug
          0.2 kB
        2. debug.duringcompile.gz
          0.2 kB
        3. debug.duringldd.gz
          0.2 kB
        4. mds.inode.dlmtrace.debug
          765 kB
        5. simple-2277.c
          1 kB

        Issue Links

          Activity

            [LU-2277] Text file busy
            adilger Andreas Dilger made changes -
            Link New: This issue duplicates LU-1571 [ LU-1571 ]
            adilger Andreas Dilger made changes -
            Link New: This issue duplicates LU-971 [ LU-971 ]
            adilger Andreas Dilger made changes -
            Fix Version/s New: Lustre 2.1.5 [ 10203 ]
            pjones Peter Jones made changes -
            Fix Version/s Original: Lustre 2.1.5 [ 10203 ]
            utopiabound Nathaniel Clark made changes -
            Fix Version/s New: Lustre 2.1.5 [ 10203 ]
            Resolution New: Fixed [ 1 ]
            Status Original: In Progress [ 3 ] New: Resolved [ 5 ]
            utopiabound Nathaniel Clark added a comment - - edited

            Patches picked to branch

            utopiabound Nathaniel Clark added a comment - - edited Patches picked to branch

            Original Commit is now just testing updates:

            Following are cherry-picked commits that are dependent on 4848, 5002 is unchanged, 5003 needed a merge conflict resolved.
            http://review.whamcloud.com/5002
            http://review.whamcloud.com/5003

            utopiabound Nathaniel Clark added a comment - Original Commit is now just testing updates: Following are cherry-picked commits that are dependent on 4848, 5002 is unchanged, 5003 needed a merge conflict resolved. http://review.whamcloud.com/5002 http://review.whamcloud.com/5003
            utopiabound Nathaniel Clark added a comment - http://review.whamcloud.com/4848

            Client seems to be re-sending open create because response data is large and reply_in_callback() registers it as truncated and resends. So the solution I'm going to look to implement is to correctly handle the replay of the open/create for write/exec in mdt_mfd_open().

            utopiabound Nathaniel Clark added a comment - Client seems to be re-sending open create because response data is large and reply_in_callback() registers it as truncated and resends. So the solution I'm going to look to implement is to correctly handle the replay of the open/create for write/exec in mdt_mfd_open().

            Note on what goes over the wire:
            Items listed are wireshark dump of traffic, all items are requests client -> mds, all items are replied to prior to the next item being sent.

            For stripe sizes 50-53: (example is stripe 50)
            1) LDLM_ENQUEUE request [Concurrent Write][ intent : open create ] filename : a2
            2) MDS_CLOSE [REINT_SETATTR]
            3) LDLM_ENQUEUE request [Concurrent Read][ intent : lookup ] filename : 50
            4) LDLM_ENQUEUE request [Concurrent Read][ intent : open ][REINT_OPEN] filename : a2
            5) MDS_CLOSE [REINT_SETATTR]

            For stripe sizes 54-59: (example is stripe 54)
            1) LDLM_ENQUEUE request [Concurrent Write][ intent : open create ] filename : a2
            2) LDLM_ENQUEUE request [Concurrent Write][ intent : open create ] filename : a2
            3) MDS_CLOSE [REINT_SETATTR]
            4) LDLM_ENQUEUE request [Concurrent Read][ intent : lookup ] filename : 54
            5) LDLM_ENQUEUE request [Concurrent Read][ intent : open ] filename : a2
            6) LDLM_ENQUEUE request [Concurrent Read][ intent : open ] filename : a2
            7) MDS_CLOSE [REINT_SETATTR]

            utopiabound Nathaniel Clark added a comment - Note on what goes over the wire: Items listed are wireshark dump of traffic, all items are requests client -> mds, all items are replied to prior to the next item being sent. For stripe sizes 50-53: (example is stripe 50) 1) LDLM_ENQUEUE request [Concurrent Write] [ intent : open create ] filename : a2 2) MDS_CLOSE [REINT_SETATTR] 3) LDLM_ENQUEUE request [Concurrent Read] [ intent : lookup ] filename : 50 4) LDLM_ENQUEUE request [Concurrent Read] [ intent : open ] [REINT_OPEN] filename : a2 5) MDS_CLOSE [REINT_SETATTR] For stripe sizes 54-59: (example is stripe 54) 1) LDLM_ENQUEUE request [Concurrent Write] [ intent : open create ] filename : a2 2) LDLM_ENQUEUE request [Concurrent Write] [ intent : open create ] filename : a2 3) MDS_CLOSE [REINT_SETATTR] 4) LDLM_ENQUEUE request [Concurrent Read] [ intent : lookup ] filename : 54 5) LDLM_ENQUEUE request [Concurrent Read] [ intent : open ] filename : a2 6) LDLM_ENQUEUE request [Concurrent Read] [ intent : open ] filename : a2 7) MDS_CLOSE [REINT_SETATTR]

            People

              utopiabound Nathaniel Clark
              mhanafi Mahmoud Hanafi
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: