Страница 1 из 2
failed to write to main log: errno=9
Добавлено: 2009-02-21 17:35:51
Dr_Web
Exim cтал выдавать ошибку, отбрасывая при этом почту, но ошибка не постоянная, а время отвремени, может 3 письма пропустить на четвертом выдать.
exim-panic.log:
Код: Выделить всё
2009-02-21 16:57:32 1LasMG-000G6n-2G sp-exim: error 53 sending envelope data
2009-02-21 16:57:32 1LasMG-000G6n-2G failed to write to main log: length=77 result=-1 errno=9 (Bad file descriptor)
exim-main-*.log
Код: Выделить всё
2009-02-21 16:57:32 1LasMG-000G6n-2G server did not confirm, answ=
часть configure где указваем что писать в логи:
Код: Выделить всё
log_selector = +all_parents +connection_reject +incoming_interface +lost_incoming_connection +received_sender +received_recipients +smtp_confirmation +smtp_syntax_error +smtp_protocol_error -queue_run
Машинка довольно слабенькая(266Mhz, 64Mb RAM), но все работало без проблем раньше и с большей нагрузкой.
exim 4.69_3 cобран с local_scan.c
Re: failed to write to main log: errno=9
Добавлено: 2009-02-21 20:11:31
Alex Keda
диск сыпется?
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 8:15:49
Dr_Web
Да не должен, получается проблема с железом? но никто кроме экзима не ругается так, правда он и больше всех пишет. Что можете посоветовать? кроме замены диска потому как нет физической возможности его заменить.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 8:25:57
zingel
ну ка запусти под башем
Код: Выделить всё
#!/usr/local/bin/bash
#Пути и лимиты
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
ech="\033[1m###########################################\033[0m"
LANG="ru_RU.KOI8-R"
export LANG
MM_CHARSET="KOI8-R"
ulimit -c 10000
export MM_CHARSET
H_DIR=/root
UNAME=/usr/bin/uname
ROOT_UID=0
LINES=50
E_XCD=66
E_NOTROOT=67
MM=/dev/mem
DMSG=/sbin/dmesg
DMD=/usr/local/sbin/dmidecode
SCT=/sbin/sysctl
ATC=/sbin/atacontrol
CCT=/sbin/camcontrol
DFO=/usr/sbin/diskinfo
DVF=/usr/sbin/devinfo
RUT=`df -h | grep /root| awk '{print $5}' | grep 100`
ntd=" /usr/sbin/ntpdate "
timesrv=" ntp0.masterhost.ru "
#проверка приложений
for application in ${cat} ${awk} ${echo} ${grep} ${pw} ${rm} ${mkdir} \
${chown} ${cp} ${wc} ${cut} ${md5} ${tail} \
${ls} ${chflags} ${tr} ${gzip} ${rm} ${mv} \
${basename} ${uname} ${dd}
do
if [ ! -s ${application} ]; then
echo "Приложение \`\`${application}'' не найдено! Проверьте путь!"
exit
fi
done
#Проверка места в руте.
if [ ! -z $RUT ];
then echo "упс (pid $RUT)! Exiting...";
exit
fi
#Проверка на фряхововсть и рутовые права
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Для работы сценария требуются права root."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
cd $H_DIR
if [ `pwd` != "$H_DIR" ]
then
echo "Невозможно перейти в каталог $H_DIR."
exit $E_XCD
fi
echo ""
if [ `uname` != "FreeBSD" ]
then
echo "Запускать только на фре"
exit 1
fi
#Синхроинизируем время
$ntd -u -q $timesrv > /dev/null || echo "Внимание!Не могу синхронизировать время"
#Начало
echo -e $ech
echo -e "\033[1m#Программа тестирования серверных платформ#\033[0m"
echo -e $ech
echo "" && echo ""
echo -e "\033[1m:проверка устройств и серийных номеров:\033[0m"
echo -en '\E[40;32m'"\033[1m"ПРОДОЛЖИТЬ y/n?"\033[0m"
read ans
echo ""
echo ""
if [ "$ans" = "n" ]; then
echo "Прервано."
exit 0
fi
echo -e '\E[32;41m'"\033[1mBIOS\033[0m"
$DMD -d $MM | sed '9q;d' || echo "no bios version"
$DMD -d $MM | sed '10q;d' || echo "no bios release date"
echo -e '\E[32;41m'"\033[1mPorcessor\033[0m"
$DMSG -a| grep CPU| grep -v cpu | awk '{print $2, $6, $7, $8}' || echo "error"
$DMD | grep Socket | sed q | awk '{print $3,$4}' || echo "socket is unknown"
$DMD -d $MM | sed '77q;d' || echo "no processor ID found"
echo -e '\E[32;41m'"\033[1mMainboard\033[0m"
$DMD -d $MM | sed '53q;d'|| echo "mainboard no name"
$DMD -d $MM | grep "UUID" || echo "mainboard no serial number"
echo -e '\E[32;41m'"\033[1mRAM(Kb)\033[0m"
$SCT -a| grep hw | grep mem | grep real | awk '{print $2}'
echo -e '\E[32;41m'"\033[1mHDD models\033[0m"
$ATC list | awk '{print $3}' | grep "<" || $CCT devlist | awk '{print $1}'
echo -e '\E[32;41m'"\033[1mHDD Serials\033[0m"
for i in $(ls /dev/| grep ad );
do diskinfo -v $i | grep Di | awk '{print $1}';
done;
for i in $(ls /dev/| grep da );
do diskinfo -v $i | grep Di | awk '{print $1}';
done;
echo ""
#Поиск ошибок перед тестирование
echo -e "\033[1m:поиск ошибок перед тестированием:\033[0m"
echo ""
echo -en '\E[40;32m'"\033[1m"ПРОДОЛЖИТЬ y/n?"\033[0m"
read ans
echo "" && echo ""
if [ "$ans" = "n" ]; then
echo "Прервано."
exit 0
fi
echo "" && echo ""
echo -e "\033[1m:поиск ошибок dmesg:\033[0m"
$DMSG -a | grep error || echo "Явных ошибок не найдено"
echo ""
echo -e "\033[1m:поиск ошибок аппаратной конфигурации:\033[0m"
echo ""
$DMSG -a | grep reset || echo "Ошибок конфигурирования - нет"
echo ""
echo -e "\033[1m:поиск устройств без драйверов:\033[0m"
echo ""
$DMSG -a | grep "no driver attached" || echo "Все драйверы - работоспособны"
#Тест чтения
echo ""
echo -e "\033[1mТестирование чтения с HDD:\033[0m"
echo ""
echo -en '\E[40;32m'"\033[1m"Продолжить y/n?"\033[0m"
read ans
echo "" && echo ""
if [ "$ans" = "n" ]; then
echo "########."
exit 0
fi
echo "" && echo ""
$ATC list | grep ad| awk '{print $2}' | xargs -o $DFO -vt || echo "error read disk abort"
это кусочек, всю не дам, этого хватит....
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 12:48:35
Dr_Web
Забыл добавить что это VDS
Код: Выделить всё
/dev/vd0 on / (vdsfs, local, with quotas, noclusterw)
Видимо по этому такой неважный отчет по скрипту:
Код: Выделить всё
###########################################
#Программа тестирования серверных платформ#
###########################################
:проверка устройств и серийных номеров:
ПРОДОЛЖИТЬ y/n?y
BIOS
./te.sh: line 86: /usr/local/sbin/dmidecode: No such file or directory
./te.sh: line 87: /usr/local/sbin/dmidecode: No such file or directory
Porcessor
dmesg: sysctl kern.msgbuf: Operation not permitted
./te.sh: line 90: /usr/local/sbin/dmidecode: No such file or directory
./te.sh: line 91: /usr/local/sbin/dmidecode: No such file or directory
Mainboard
./te.sh: line 93: /usr/local/sbin/dmidecode: No such file or directory
./te.sh: line 94: /usr/local/sbin/dmidecode: No such file or directory
mainboard no serial number
RAM(Kb)
HDD models
atacontrol: control device not found: No such file or directory
camcontrol: couldn't open /dev/xpt0: No such file or directory
HDD Serials
:поиск ошибок перед тестированием:
ПРОДОЛЖИТЬ y/n?y
:поиск ошибок dmesg:
dmesg: sysctl kern.msgbuf: Operation not permitted
Явных ошибок не найдено
:поиск ошибок аппаратной конфигурации:
dmesg: sysctl kern.msgbuf: Operation not permitted
Ошибок конфигурирования - нет
:поиск устройств без драйверов:
dmesg: sysctl kern.msgbuf: Operation not permitted
Все драйверы - работоспособны
Тестирование чтения с HDD:
Продолжить y/n?y
atacontrol: control device not found: No such file or directory
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 12:50:33
zingel
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 13:15:37
Dr_Web
uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 15:59:52
zingel
Re: failed to write to main log: errno=9
Добавлено: 2009-02-22 16:46:20
Dr_Web
Место есть свободное:
Код: Выделить всё
Filesystem Size Used Avail Capacity Mounted on
/dev/vd0 1.0G 684M 316M 68% /
Вот еще
Вообщем ресурсов хватает.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:10:50
RexaleX
Dr_Web писал(а):Exim cтал выдавать ошибку, отбрасывая при этом почту, но ошибка не постоянная, а время отвремени, может 3 письма пропустить на четвертом выдать.
Такая же кака на 2х серверах, отключил спамоборону, все заработало, будем разбираться.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:13:35
Dr_Web
exim выдает ошибку(в тот момент когда и errno=9) при отправке письма(ошибка через раз или через 2 проявляется):
Вот еще что нашел, возможно local_scan.c виноват (spamooborona1024):
Код: Выделить всё
2009-02-23 13:56:38 1LbYUI-000EyE-6P F=wnfheolcns@bodyfit.com H=host2.vat.lt [195.182.80.253] I=[82.146.41.246]:25 P=esmtp temporarily rejected by local_scan(): Temporary local problem
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:19:44
zingel
Код: Выделить всё
root@zingel [/usr/ports]# cat /usr/src/sys/*/NOTES | grep vd
root@zingel [/usr/ports]#
а чего это за девайс? это 1 диск или какой-то хитрющий рейд?
а я туплю....это vps
но всеравно
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:36:14
RexaleX
Вот еще что нашел, возможно local_scan.c виноват (spamooborona1024):
Код: Выделить всё
2009-02-23 13:56:38 1LbYUI-000EyE-6P F=wnfheolcns@bodyfit.com H=host2.vat.lt [195.182.80.253] I=[82.146.41.246]:25 P=esmtp temporarily rejected by local_scan(): Temporary local problem
ага, он самый (спамоборона не причем).. пересобрал временно без него на боевом почтовике, буду опыты ставить.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:37:44
zingel
оборона обороной, а диски на волю судьбы оставлять нельзя....
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:42:30
RexaleX
zingel писал(а):оборона обороной, а диски на волю судьбы оставлять нельзя....
Господин хороший, при чем тут диски? У меня рейд 10 на одном из серверов, на другом просто 1.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 14:48:45
zingel
Код: Выделить всё
root@zingel [/usr/ports]# grep EBADF /usr/include/errno.h
#define EBADF 9 /* Bad file descriptor */
Код: Выделить всё
9 EBADF Bad file descriptor. A file descriptor argument was out of
range, referred to no open file, or a read (write) request was
made to a file that was only open for writing (reading).
да хоть 60 у Вас рейд....
чекать диск, или проверить те файлы что оборона открывает на rw-права.
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:14:24
Dr_Web
zingel писал(а):uname -a && cat /etc/fstab
Код: Выделить всё
FreeBSD skylot.ru 6.3-STABLE FreeBSD 6.3-STABLE #3: Sun Oct 26 05:11:53 CET 2008 root@dione.ispsystem.net:/root/src/sys/i386/compile/ISPSYSTEM_PAED i386
/dev/vd0 / ufs rw,noauto,userquota,groupquota 0 0
писал в саппорт vps'а, говорят: причем тут диск?
яндексовцы вообще ничего не ответили
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:22:25
zingel
саппорт? ну тогда Вы ничего не сделаете, а сапорту своему скажите прочитать errno.h и
или сюда ссылку дайте, я популярно поясню когда бывает EBADF на кривых дисках...и когда кончаются HN-ноды на vps, ещё передайте ему, что
не работает в 6.3, а только в 8.0....
p.s. проверьте, доступны ли обороне файлы, в которые она лезет и выложите сюда тот кусок кода, в котором ошибка, по-вашему...
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:26:09
RexaleX
zingel писал(а):Код: Выделить всё
root@zingel [/usr/ports]# grep EBADF /usr/include/errno.h
#define EBADF 9 /* Bad file descriptor */
И причем тут это?) Хоть почитали бы внимательно ВЕСЬ приводимый товарищем лог. Ну не пишет он что-то в дополнительный лог и что теперь? У меня вообще этот лог не пишется, мне и без него хорошо.
Как это влияет на остальную работу?
Код: Выделить всё
Feb 23 15:18:16 *** exim[35904]: 1LbZlI-0009L6-6d server did not confirm, answ=
Feb 23 15:18:16 *** exim[35904]: 1LbZlI-0009L6-6d sp-exim: error 53 sending envelope data
вот где надо смотреть. и на сколько моего мозга хватает кто-то кому-то не то посылает, т.е. нет согласования в данных. А Вы все дисками и железом пугаете

Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:27:54
zingel
на vps такая ошибка за милую душу и очень просто, а насчет ошибки, мы сейчас увидим что она и куда пишет, давайте сюда этот код...
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:37:18
RexaleX
zingel писал(а):на vps такая ошибка за милую душу и очень просто, а насчет ошибки, мы сейчас увидим что она и куда пишет, давайте сюда этот код...
Не совсем понял что требуется, вот
спамооборона1024
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 15:56:06
Dr_Web
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 16:04:06
zingel
Код: Выделить всё
umask ((mode_t) 0);
if ((iFd = open (pszPath, O_RDWR | O_EXCL | O_CREAT, 0666)) > 0) break;
if (errno != EEXIST) return -1; /* Unexpected error */
есть у обороны chown в
?
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 16:12:06
RexaleX
Код: Выделить всё
# ll /var/spool/ | grep spamo
drwxr-xr-x 2 mailnull mail 512 23 фев 16:04 spamooborona
Re: failed to write to main log: errno=9
Добавлено: 2009-02-23 16:16:15
Dr_Web
Код: Выделить всё
drwxr-xr-x 2 mailnull mail 512 23 фев 16:13 spamooborona
configure: