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

Lustre sometimes return EPROTO instead of ENOSPC

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • None
    • None
    • None
    • 1
    • 3
    • Orion
    • 4947

    Description

      Seen while running acc-sm:

      == sanity test 64b: check out-of-space detection on client =========================================== 03:50:40 (1311072640)
      STRIPECOUNT=2 ORIGFREE=292008 MAXFREE=800000
      BEFORE dd started
      lustre-OST0000 avl=146676 grnt=38592 diff=108084
      lustre-OST0001 avl=145332 grnt=9804 diff=135528
      ERROR: dd not return ENOSPC
      LOG: dd: writing `/mnt/lustre/oosfile': Protocol error
      LOG: 291009+0 records in
      LOG: 291008+0 records out
      LOG: 297992192 bytes (298 MB) copied, 38.9363 seconds, 7.7 MB/s
      AFTER dd
      lustre-OST0000 avl=1580 grnt=1332 diff=248 FULL
      lustre-OST0001 avl=32 grnt=0 diff=32 FULL
      LOG file
      dd: writing `/mnt/lustre/oosfile': Protocol error
      

      The problem lies in check_write_rcs():

      static int check_write_rcs(struct ptlrpc_request *req,
                                 int requested_nob, int niocount,
                                 obd_count page_count, struct brw_page **pga)
      {
              int     i;   
              __u32   *remote_rcs;
      ...
              if (remote_rcs[i] < 0) 
                      return(remote_rcs[i]);
              if (remote_rcs[i] != 0) { 
                      CDEBUG(D_INFO, "rc[%d] invalid (%d) req %p\n",
                              i, remote_rcs[i], req);
                      return(-EPROTO);
              } 
      

      The check remote_rcs[i] < 0 is always false since remote_rcs[i] is unsigned.

      Attachments

        Activity

          People

            johann Johann Lombardi (Inactive)
            johann Johann Lombardi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: