Open
Description
On Linux, #359 by @PhilipBAdams causes the SSDServingTest
TestSearchSSDIndexFloatL2BKTDEFAULTTXT
test to continously print this message over and over again:
1: [4] fid:0 channel 2, to submit:64, submitted:Operation not permitted
This message comes from the BatchReadFileAsync
function in AnnService/src/Helper/AsyncFileReader.cpp
and is printed when the io_submit
syscall fails:
int s = syscall(__NR_io_submit, handler->GetIOCP(channel), iocbs[i].size() - submitted[i], iocbs[i].data() + submitted[i]);
if (s > 0) {
submitted[i] += s;
totalSubmitted += s;
}
else {
SPTAGLIB_LOG(Helper::LogLevel::LL_Error, "fid:%d channel %d, to submit:%d, submitted:%s\n", i, channel, iocbs[i].size() - submitted[i], strerror(-s));
}
According to the io_submit
manual page, this indicates incorrectly setting the RT IO priority class:
EPERM The aio_reqprio field is set with the class IOPRIO_CLASS_RT, but the submitting context does not have the CAP_SYS_ADMIN capability.
However, the code does not set the IO priority class anywhere.
My conclusion is that maybe the iocb
structure being passed to io_submit
gets corrupted somehow, but I am not sure.
Thoughts and ideas for further debugging of this are welcome.
I also tried commenting out the contents of the Helper::SetThreadAffinity function but that didn't work.
Metadata
Metadata
Assignees
Labels
No labels