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