Re: Caught the first erroneous translated errorcode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20-6-2017 10:23, Willem Jan Withagen wrote:
> On 20-6-2017 04:35, Sage Weil wrote:
>> Try changing
>>
>>   int32_t rval;
>>
>> in OSDOp in osd_types.h to errorcode32_t.
> 
> Nice suggestion, and I think it is a correct one.
> But I'm still getting -125 as error code.

I think this is the suspect part?
  for (unsigned i = 0;
       p != out_ops.end() && pb != op->out_bl.end();
       ++i, ++p, ++pb, ++pr, ++ph) {
    ldout(cct, 10) << " op " << i << " rval " << p->rval
                   << " len " << p->outdata.length() << dendl;
    if (*pb)
      **pb = p->outdata;
    // set rval before running handlers so that handlers
    // can change it if e.g. decoding fails
    if (*pr) {
      **pr = ceph_to_hostos_errno(p->rval);
      ldout(cct, 10) << "after  ceph_to_hostos_errno **pr: " << **pr <<
dendl;
    }
    if (*ph) {
      ldout(cct, 10) << " op " << i << " handler " << *ph << dendl;
      (*ph)->complete(ceph_to_hostos_errno(p->rval));
      *ph = NULL;
    }
  }

where it generates:
116: 2017-06-20 11:20:15.365583 80fc18800 10
client.4115.objecter:handle_osd_op_reply(3461) op 0 rval -125 len 0
116: 2017-06-20 11:20:15.365591 80fc18800 10
client.4115.objecter:handle_osd_op_reply(3461) op 1 rval 0 len 0

So neither of the if(*pr) or if(*ph) cases is taken.
And thus the error is not translated.

Note that this part of the code is in the original code before I started
working on this.

--WjW

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux