Fixed "ccb->active()" assertion related to the automatic write timeout.
We need to manually cancel writer's interest in select(2) before calling back
so that select() does not try to call the write handler when there is no
active callback anymore. Normally, select() cancels writer's interest when
calling the write handler, but in this case the call back is triggered not
from select() but from checkTimeouts().
From: 3p1-rock r9597
if (writeTimedOut(fd)) {
// We have an active write callback and we are timed out
+ debugs(5, 5, "checkTimeouts: FD " << fd << " auto write timeout");
+ commSetSelect(fd, COMM_SELECT_WRITE, NULL, NULL, 0);
commio_finish_callback(fd, COMMIO_FD_WRITECB(fd), COMM_ERROR, ETIMEDOUT);
} else if (AlreadyTimedOut(F))
continue;