The log file is not meant to be opened O_NONBLOCK. This is a bug.
The O_NONBLOCK flag is set by disk.c:file_open. It should be safe to
remove it from there I think.
-- Henrik Simon Morley wrote: > > Hi, > I have been working on a small application which is intended to sit on a > FIFO pipe that squid writes to, and compiles in memory 'x' minutes of logged > data, then to fork off and flush this information to a database. > > I am however running into problems with Squid-2.4.STABLE2 writing to a FIFO > pipe. > > I have created the pipe in the normal way using the "mkfifo" command and > assigned it the relevant permissions and ownership. > > When I run squid and a request is processed, squid then crashes. > > I did an strace of the crashing squid, and it appears the following section > is the most relevant, in that it shows squid failing to open the access.log > file (the pipe):- > > read(6, "<HTML><HEAD>\n<TITLE>ERROR: The r"..., 766) = 766 > close(6) = 0 > open("/usr/local/squid/logs/access.log", > O_WRONLY|O_NONBLOCK|O_APPEND|O_CREAT, 0644) = -1 ENXIO (Device not > configured) > open("/usr/share/locale/locale.alias", O_RDONLY) = 6 > > So the problem appears to be because squid is attempting to open the file > using non blocking io (the O_NONBLOCK flag). > > I had a quick look through the source to see if I could just do a quick and > dirty hack to get it working, however from what I can see it's not meant to > open the file using non blocking io? > > I'm afraid I am not familiar with squids source, so I might be looking in > completely the wrong place, but from what I could tell the following was the > relevant section of code:- > > In logfile.c in the function logfileOpen:- > > logfileOpen(const char *path, size_t bufsz, int fatal_flag) > { > int fd; > Logfile *lf; > fd = file_open(path, O_WRONLY | O_CREAT | O_TEXT); > > Which seems to indicate that it's not attempting to open the file with the > O_NONBLOCK flag ?!? > > Does anyone know how I can overcome this, be it a code or configuration > change ? > > I am aware of the potential problems if my application does not read the > data quick enough, and would block squid, but I am confident that I can > avoid that in my application. > > Any assistance would be greatly appreciated! > > -- > Simon Morley (simon@xaraonline.com) > Network Manager for Xara Online (http://www.xaraonline.com/) > > "Thou shalt not follow the Null Pointer, for at it's end Madness and Chaos > lie."Received on Mon Sep 17 2001 - 16:42:19 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:21 MST