After upgrading to 2.5-serie, I've seen some error messages in my cache.log regarding to aufs. Here's one:

    storeAufsOpenDone: (2) No such file or directory
        /usr/squid/cache2/0C/62/000C62CB

I presume (after reading some source code) that this is reported because Squid couldn't find stored object on the disk with the name that it's stored with in the object pool (or whatever it's called).

IMO this shouldn't happen, because if Squid was shut down correctly, all objects stored on the disk should still exist there. Even if Squid was shut down incorrectly (killed or it crashed), Squid checks the object pool (disk swap) on startup and removes faulty objects (am I correct?).

Anyways, this error is reported in src/fs/aufs/store_io_aufs.c in function storeAufsOpenDone which is called "from" aioOpen after trying to open the object on the disk:

aioOpen(path, O_RDONLY | O_BINARY, 0644, storeAufsOpenDone, sio);

Then, in storeAufsOpenDone Squid checks if opening succeeded:

    if (errflag || fd < 0) {
        errno = errflag;
        debug(79, 0) ("storeAufsOpenDone: %s\n", xstrerror());
        debug(79, 1) ("\t%s\n",
            storeAufsDirFullPath(INDEXSD(sio->swap_dirn),
            sio->swap_filen, NULL));
        storeAufsIOCallback(sio, DISK_ERROR);
        return;
    }

The thing I'm concerned about here is that does storeAufsOpenDone (or some other function) remove this faulty object from the object pool so that it doesn't prevent caching it later?

I'm going to delete my current Squid's disk cache later to check if this behaviour continues.

--
Pauli Borodulin
[EMAIL PROTECTED]



Reply via email to