Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 14:44:21 -0300 (ART)
From:      Fernando Schapachnik <fpscha@ns1.via-net-works.net.ar>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/21424: Blocking issue while regenerating aliases on 4.1-RELEASE
Message-ID:  <200009201744.OAA10111@ns1.via-net-works.net.ar>

next in thread | raw e-mail | index | archive | help

>Number:         21424
>Category:       kern
>Synopsis:       Blocking issue while regenerating aliases on 4.1-RELEASE
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 20 10:50:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Fernando Schapachnik
>Release:        FreeBSD 4.1-RELEASE i386
>Organization:
VIA NET.WORKS ARGENTINA
>Environment:

SMP 4.1-RELEASE:

CPU: Pentium III/Pentium III Xeon/Celeron (731.02-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA
,CMOV,PAT,PSE36,MMX,FXSR,XMM>
real memory  = 536854528 (524272K bytes)

Busy mail server running the stock sendmail system.

>Description:

        First thing I noticed was that newaliases was getting hung.
Further investigation showed the problem was
~majordom/aliases.majordom.db

        Running makemap hash ~majordom/aliases.majordom <
~majordom/aliases.majordom hunged also.

        A fstat showed only sendmail has this file open, and for
reading only.

        A ktrace shows:
 [...]
 87185 makemap  CALL  open(0xbfbff658,0x622,0x1a4)
 87185 makemap  NAMI  "aliases.majordomo.db"
 [a lot of time... sent kill]
 87185 makemap  PSIG  SIGINT SIG_DFL

        aliases.majordom.db ends with 0 bytes. Removing the file
solves the problem.

        Sometimes same thing happens with virtusertable and similar
aliases-related files.

        Today the same happened with access.db. Lsof showed
sendmail 52975 root 7rR VREG 109,196608 0 35980 /etc/mail/access.db

        which means sendmail has the whole file locked for reading.

        Doing a ps -axl shows lockfs state and a sleeping process
(waiting for a lock, I guess). 

>How-To-Repeat:

  Run newaliases during busy hours. 

>Fix:

        Workaround: Remove the .db file and run newaliases/makemap
acordingly.

        To avoing concurrency problems, I'm using this script:

#!/bin/sh
dir=/usr/local/sendmail_aliases

# Copy actual alias file to fake dir.
cp /usr/local/majordomo/aliases.majordomo $dir/usr/local/majordomo/aliases.ma
jordomo
cp /etc/mail/alias-de-clientes $dir/etc/mail/alias-de-clientes
cp /etc/mail/aliases $dir/etc/mail/aliases
cp /etc/mail/usertable $dir/etc/mail/usertable

# Regenerate aliases inside the cage.
/usr/sbin/chroot $dir /usr/sbin/sendmail -bi
/usr/sbin/chroot $dir /usr/sbin/makemap hash /etc/mail/usertable < /etc/mail/
usertable

# Put aliases files in its proper place.
cp $dir/usr/local/majordomo/aliases.majordomo.db /usr/local/majordomo/aliases
.majordomo.db  
cp $dir/etc/mail/alias-de-clientes.db /etc/mail/alias-de-clientes.db
cp $dir/etc/mail/aliases.db /etc/mail/aliases.db
cp $dir/etc/mail/usertable.db /etc/mail/usertable.db

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200009201744.OAA10111>