[LU-507] Lustre sometimes return EPROTO instead of ENOSPC Created: 19/Jul/11  Updated: 26/Jul/11  Resolved: 26/Jul/11

Status: Closed
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Johann Lombardi (Inactive) Assignee: Johann Lombardi (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Story Points: 1
Severity: 3
Project: Orion
Rank (Obsolete): 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.



 Comments   
Comment by Johann Lombardi (Inactive) [ 22/Jul/11 ]

Patch landed on the orion branch. Waiting for approval for master.

Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,client,el5,ofa #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,client,el6,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,server,el6,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,client,el6,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,client,el5,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,server,el5,ofa #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,server,el6,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,client,sles11,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,server,el5,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,server,el5,ofa #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,server,el5,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » x86_64,client,ubuntu1004,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,client,el5,ofa #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Build Master (Inactive) [ 24/Jul/11 ]

Integrated in lustre-master » i686,client,el5,inkernel #224
LU-507 check_write_rcs() return -EPROTO instead of -ENOSPC

Oleg Drokin : 78bcd4ca7b31284194af8ee5a33cb6836edd6ca9
Files :

  • lustre/osc/osc_request.c
Comment by Johann Lombardi (Inactive) [ 26/Jul/11 ]

Patch landed.

Generated at Sat Feb 10 01:07:44 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.