Hi All, I think I've found the real cause of those error messages.
The peer socket functions give out those errors, and it all boils down to one function: select(2). The timeout value passed to select(2) in one case is 3 and in the other is 10 seconds. Even though these values seem large enough, under relatively high load (e.g. 120 web page requests using firefox, or when there are many dante instances), I get 3-4 such errors. When I raise both of these timeouts to 30 seconds, and under the same test conditions, I get no errors at all. To verify my theory, if I reduce both of them to just 1 second, I get 6-7 such errors, as I expected. So, I'm almost sure that select(2) timeout is the cause of such errors. The fact that DG 2.9.7.5 cannot handle such errors (they are not ignorable in my case) is another subject for discussion perhaps, but I'm trying to find a way to improve the performance of select(2). What are the factors effecting its performance? The machines I'm using are in the ranks of P4 3.2GHz, DDR400 1GB RAM, 7200rpm 80GB SATA HD. How should one choose timeout values for select(2)? How can I performance tune OpenBSD in this case? Should I run DG at a higher priority? (I'll submit these findings to DG also, but it seems these timeout values are OK with Linux. Or perhaps, the only processes running on their Linux are DG. I have many other processes too. So I wanted to ask misc@ first.) Thanks, On Sat, 2006-08-19 at 13:53 +0300, Soner Tari wrote: > Hi All, > > I think that this problem is related with DG (or its interactions with > OpenBSD), and I have already posted the following emails to the DG > maillist, but I could not receive any replies. So I assume that most DG > 2.9.7.5 users run it on Linux, and they don't have this problem. > Therefore, I hope there are people on this list running DG 2.9.7.5 on > OpenBSD 3.9. > > The summary of the issue is that I get the following errors in messages: > > dansguardian: Error accepting. (Ignorable) > dansguardian: Error reading ipc. (Ignorable) > > When these errors occur for all the child processes (max 120 in config > file), DG stops all web access. Apparently, they are not "ignorable."