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

error: get_param: /proc/{fs,sys}/{lnet,lustre}/obdfilter/*/mds_sync: Found no match

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.4.0
    • Lustre 2.4.0
    • Lustre Branch: master
    • 3
    • 5849

    Description

      The following error message occurred in many tests which call wait_mds_ost_sync:

      CMD: fat-intel-3vm8 /usr/sbin/lctl get_param -n obdfilter.*.mds_sync
      fat-intel-3vm8: error: get_param: /proc/{fs,sys}/{lnet,lustre}/obdfilter/*/mds_sync: Found no match
      

      https://maloo.whamcloud.com/test_sets/b9a24768-44a8-11e2-8c8b-52540035b04c
      https://maloo.whamcloud.com/test_sets/5419a010-44aa-11e2-8c8b-52540035b04c
      https://maloo.whamcloud.com/test_sets/c923effc-44ad-11e2-8c8b-52540035b04c
      https://maloo.whamcloud.com/test_sets/34f7f994-44ae-11e2-8c8b-52540035b04c
      https://maloo.whamcloud.com/test_sets/d0434e5c-44af-11e2-8c8b-52540035b04c

      Attachments

        Issue Links

          Activity

            [LU-2494] error: get_param: /proc/{fs,sys}/{lnet,lustre}/obdfilter/*/mds_sync: Found no match

            Patch landed to master.

            jlevi Jodi Levi (Inactive) added a comment - Patch landed to master.
            bogl Bob Glossman (Inactive) added a comment - interop support added http://review.whamcloud.com/5021

            Bob,
            while it is good to fix the test-framework.sh to check for the new parameter, but this parameter does not exist on older servers. Since the test-framework.sh runs from the client (which may be newer or older than the server), it needs to be able to work with the old-style /proc parameters as well.

            Could you please make another patch that adds a check for the old mds_sync file if old_sync_processed does not exist.

            adilger Andreas Dilger added a comment - Bob, while it is good to fix the test-framework.sh to check for the new parameter, but this parameter does not exist on older servers. Since the test-framework.sh runs from the client (which may be newer or older than the server), it needs to be able to work with the old-style /proc parameters as well. Could you please make another patch that adds a check for the old mds_sync file if old_sync_processed does not exist.

            change framework to look at old_sync_processed
            http://review.whamcloud.com/4885

            bogl Bob Glossman (Inactive) added a comment - change framework to look at old_sync_processed http://review.whamcloud.com/4885

            right, because OSS does not drive recovery any more. it's all done on MDS and from OSS point of view this is a regular request.
            so, instead of looking for signs on OSS side, we should watch for all OSPs to get old_sync_processed=1

            bzzz Alex Zhuravlev added a comment - right, because OSS does not drive recovery any more. it's all done on MDS and from OSS point of view this is a regular request. so, instead of looking for signs on OSS side, we should watch for all OSPs to get old_sync_processed=1
            pjones Peter Jones added a comment -

            Alex could you please comment on this? Thanks Peter

            pjones Peter Jones added a comment - Alex could you please comment on this? Thanks Peter

            This /proc var seems to have been entirely done away with in the conversion to osd. In previous revs there was an entry in lprocfs_filter_obd_vars[]

                    { "mds_sync",     lprocfs_filter_rd_mds_sync, 0, 0},
            

            This read out the value of obd->u.filter.fo_mds_ost_sync

            In current code it looks like obd->u.filter.fo_mds_ost_sync still exists, but nobody ever sets or clears it.

            There is no "mds_sync" entry in the closest equivalent I can find to lprocfs_filter_obd_vars[], namely lprocfs_osd_obd_vars[].

            Is there some other proc var now someplace else in /proc that fetches similar info from some new layer? The function seems to be lost from obdfilter entirely.

            bogl Bob Glossman (Inactive) added a comment - This /proc var seems to have been entirely done away with in the conversion to osd. In previous revs there was an entry in lprocfs_filter_obd_vars[] { "mds_sync", lprocfs_filter_rd_mds_sync, 0, 0}, This read out the value of obd->u.filter.fo_mds_ost_sync In current code it looks like obd->u.filter.fo_mds_ost_sync still exists, but nobody ever sets or clears it. There is no "mds_sync" entry in the closest equivalent I can find to lprocfs_filter_obd_vars[], namely lprocfs_osd_obd_vars[]. Is there some other proc var now someplace else in /proc that fetches similar info from some new layer? The function seems to be lost from obdfilter entirely.
            pjones Peter Jones added a comment -

            Bob

            Could you please look into this one?

            Thanks

            Peter

            pjones Peter Jones added a comment - Bob Could you please look into this one? Thanks Peter

            People

              bogl Bob Glossman (Inactive)
              yujian Jian Yu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: