SQL Logging problem
Ugo Bellavance
ugob at lubik.ca
Wed Dec 26 19:18:52 GMT 2007
Ryan Sweat wrote:
> I'm having a problem with the SQL logging functionality in MailScanner
> and hopefully someone can help me figure it out. After MailScanner
> starts, it works perfectly for a period of time, usually 30 minutes to
> an hour, then it stops logging incoming email to the MySQL database.
> The log shows "Logging message to SQL" but it never finishes with the
> usual "Logged message to SQL. When this happens, the queue builds
> incredibly fast and there are huge delays in delivering email -- often
> many hours of delay. Currently the MySQL database is local, but I had
> the same problem logging to a remote database where an older version of
> MailScanner is currently running (and logging) without problems. I put
> some custom debugging in the CustomFunctions/MailWat ch.pm and I can
> tell that the connection to the database is failing here and never seems
> to recover.
>
> # Failed to connect - kick off new child, wait, and try again
> InitMailWatchLogging();
>
> I ran strace on the MailWatch SQL process until the problem occurred and
> it doesn't really show any good info, other than it eventually gets
> stuck waiting for data.
>
> 24731 write(3, "<22>Dec 24 15:15:20 MailScanner[24731]: lBOGSJ16013580:
> Logged to MailWatch SQL\n\0", 81) = 81
> 24731 accept(7, {sa_family=AF_INET, sin_port=htons(57527),
> sin_addr=inet_addr(" 127.0.0.1 <http://127.0.0.1>")},
> [13249590112313933840]) = 10
> 24731 close(9) = 0
> 24731 ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffaedc7350) = -1
> EINVAL (Invalid argument)
> 24731 lseek(10, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
> 24731 ioctl(10, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffaedc7350) = -1
> EINVAL (Invalid argument)
> 24731 lseek(10, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
> 24731 fcntl(10, F_SETFD, FD_CLOEXEC) = 0
> 24731 alarm(9600) = 9600
> 24731 read(10,
>
> # ps auwx | grep Mail
> root 22372 0.0 0.0 152796 31408 ? Ss 14:58 0:00
> MailScanner: master waiting for children, sleeping
> root 22373 8.7 0.3 237232 104848 ? S 14:58 3:24
> MailScanner: finishing batch
> root 22387 7.8 0.3 242212 107484 ? S 14:58 3:02
> MailScanner: finishing batch
> root 22396 8.4 0.3 237400 104764 ? S 14:58 3:17
> MailScanner: finishing batch
> root 22409 3.9 0.3 234432 103984 ? S 14:58 1:33
> MailScanner: finishing batch
>
> Strace on these MailScanner processes all show the same thing...
>
> connect(8, {sa_family=AF_INET, sin_port=htons(11553),
> sin_addr=inet_addr("127.0.0.1 <http://127.0.0.1>")}, 16
>
> I check the port 11553 and it is indeed listening. Restarting
> MailScanner fixes the problem (for about 30 minutes). I installed
> MailScanner using the rpm packages/installation scripts on the download
> page " Version 4.65.3-1 for RedHat, Fedora and Mandrake Linux
> <http://www.mailscanner.info/files/4/rpm/MailScanner-4.65.3-1.rpm.tar.gz>".
> The OS is Linux RHEL 5 64-bit, 16 processors and 32 GB ram. Has anyone
> experienced this before or have any advice?
16 procs and 32GB ram ? What is your daily volume? I strongly suggest
having your MySQL server on a separte server, with the fastest disks or
array that you can find and maybe do your selects on a slave, while
inserting on the master.
Ugo
More information about the MailScanner
mailing list