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

(osc_page.c:183:osc_page_delete()) LBUG: do not return error from mdc_io_fsync_start in case of CL_FSYNC_DISCARD

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Medium
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      "LU-16043 osc: allow error for write on CL_FSYNC_DISCARD" makes osc_io_fsync_start() to not error in case of CL_FSYNC_DISCARD:

      @@ -967,6 +967,13 @@ int osc_io_fsync_start(const struct lu_env *env,
      
              result = osc_cache_writeback_range(env, osc, start, end, 0,
                                                 fio->fi_mode == CL_FSYNC_DISCARD);
      +       if (result < 0 && fio->fi_mode == CL_FSYNC_DISCARD) {
      +               CDEBUG(D_CACHE,
      +                      "%s: ignore error %d on discarding "DFID":[%lu-%lu]\n",
      +                      cli_name(osc_cli(osc)), result, PFID(fio->fi_fid),
      +                      start, end);
      +               result = 0;
      +       }
              if (result > 0) {
                      fio->fi_nr_written += result;
                      result = 0;
      

      The same should be done in mdc_io_fsync_start():

      static int mdc_io_fsync_start(const struct lu_env *env,
                                    const struct cl_io_slice *slice)
      ..
              result = osc_cache_writeback_range(env, osc, 0, CL_PAGE_EOF, 0,
                                                 fio->fi_mode == CL_FSYNC_DISCARD);
              if (result > 0) {
                      fio->fi_nr_written += result;
                      result = 0;
              }
      

      If mdc_io_fsync_start() returned an error running for ll_delete_inode()->cl_sync_file_range(), that would cause the LBUG in osc_page_delete():

      [ 1647.787680] LustreError: lustre-MDT0000-mdc-ffff97980c315800: operation ost_write to node 192.168.176.171@tcp failed: rc = -3
      ..
      [ 1647.831003] LustreError: 14269:0:(osc_page.c:144:osc_page_delete()) Trying to teardown failed: -16
      [ 1647.834241] LustreError: 14269:0:(osc_page.c:146:osc_page_delete()) ASSERTION( 0 ) failed:
      
      
      

      Attachments

        Activity

          People

            wc-triage WC Triage
            vsaveliev Vladimir Saveliev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: