Bogus out-of-space errors

Julien ÉLIE julien at trigofacile.com
Mon Apr 13 09:05:38 UTC 2009


Hi Jeff,

> Not sure if this is related to anything, but...
>
> Apr 12 16:45:50 puck innd: SERVER cant write log_start No space left on device

Very strange.  It is triggered in innd/art.c:


static void
ARTlog(const ARTDATA *data, char code, const char *text)
{
  const HDRCONTENT *hc = data->HdrContent;
  int i;
  bool Done;

  TMRstart(TMR_ARTLOG);
  /* We could be a bit faster by not dividing Now.usec by 1000,
   * but who really wants to log at the Microsec level? */
  Done = code == ART_ACCEPT || code == ART_JUNK;
  if (text)
    i = fprintf(Log, "%.15s.%03d %c %s %s %s%s",
      ctime(&Now.tv_sec) + 4, (int)(Now.tv_usec / 1000), code,
      data->Feedsite != NULL ? data->Feedsite : "(null)",
      HDR_FOUND(HDR__MESSAGE_ID) ? HDR(HDR__MESSAGE_ID) : "(null)",
      text, Done ? "" : "\n");
  else
    i = fprintf(Log, "%.15s.%03d %c %s %s%s",
      ctime(&Now.tv_sec) + 4, (int)(Now.tv_usec / 1000), code,
      data->Feedsite != NULL ? data->Feedsite : "(null)",
      HDR_FOUND(HDR__MESSAGE_ID) ? HDR(HDR__MESSAGE_ID) : "(null)",
      Done ? "" : "\n");
  if (i == EOF || (Done && !BufferedLogs && fflush(Log)) || ferror(Log)) {
    i = errno;
    syslog(L_ERROR, "%s cant write log_start %m", LogName);
    IOError("logging article", i);
    clearerr(Log);
  }
  TMRstop(TMR_ARTLOG);
}


Three possible cases then, to have this error.

-- 
Julien ÉLIE

« Et s'il n'en reste qu'un, je serai celui-là ! » (Victor Hugo)




More information about the inn-workers mailing list