Hi Doug,
Core Dump caused by Reactor::poll_loop_interrupt() returned -1 at
void Reactor::poll_loop_interrupt() {
...
if ((n = FileUtils::send(m_interrupt_sd, "1", 1)) < 0) {
HT_ERRORF("send(interrupt_sd) failed - %s", strerror(errno));
exit(1); //
return from here
}
...
}
I stepped into FileUtils::send(...) and found there is something wrong:
ssize_t
FileUtils::sendto(int fd, const void *vptr, size_t n, const sockaddr *to,
socklen_t tolen) {
....
while (nleft > 0) {
if ((nsent = ::sendto(fd, ptr, nleft, 0, to, tolen)) <= 0) {
if (errno == EINTR)
nsent = 0; /* and call sendto() again */
if (errno == EAGAIN || errno == ENOBUFS) // keyword "else" missing
before "if". otherwise if the errno is EINTR, the function will return -1
break;
else {
return -1; /* error */
}
}
...
}
the same bug appears in other functions: FileUtils::write(...),
FileUtils::writev(...) and FileUtils::sendto(...).
Kind Regards.
Alen
--
You received this message because you are subscribed to the Google Groups
"Hypertable Development" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/hypertable-dev?hl=en.