Перейти к содержимому


Фото
- - - - -

Drweb-maild, падает в кору


  • Please log in to reply
38 ответов в этой теме

#1 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 30 Апрель 2009 - 16:00

Стабильно падает в кору, иногда несколько раз в минуту, в системных логах:
Apr 30 13:23:19 mail kernel: pid 33636 (drweb-maild), uid 426: exited on signal 11

В логах maild ничего странного:

Apr 30 13:23:07 mail drweb-maild: [4ab76030] maild INFO start processing msg 0001BDD2 ...
Apr 30 13:23:07 mail drweb-maild: [4b17dcf0] maild INFO msg 0001BDB3 is accepted: send it by filter
Apr 30 13:23:07 mail drweb-maild: [4ab76030] maild INFO Attach msg 0001BDD2 to plugin vaderetro...
Apr 30 13:23:07 mail drweb-maild: [4ab759d0] maild INFO Attach msg 0001BDD1 to plugin vaderetro...
Apr 30 13:23:07 mail drweb-maild: [4ab757b0] vaderetro INFO SpamState = 0; SpamScore = 0; Version=Vade Retro 01.282.03 AV+AS Profile: <none>; Bailout: 300; time=33 ms
Apr 30 13:23:07 mail drweb-maild: [4ab757b0] maild INFO Msg 0001BDCE was accepted by plugin vaderetro
Apr 30 13:23:07 mail drweb-maild: [4ab757b0] maild INFO msg 0001BDCE is accepted: send it by filter
[тут он упал]
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO configuration success loaded from agent interface local:/var/drweb/ipc/.agent
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO Key loaded; user number: 10811647 start: 2009-04-29 end: 2009-05-30
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO License for mail-servers: 30000 e-mail addresses.
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO Run plugin 'vaderetro'...
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO Plugin 'vaderetro' has been successfully launched
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO Plugins in BeforQueue = 1; plugins in AfterQueue=0
Apr 30 13:23:08 mail drweb-maild: [48801040] maild INFO Dr.Web ® maild v4.44.2.0805030 started (512/128 threads in pools)...
Apr 30 13:23:09 mail drweb-maild: [4b17d470] maild INFO start processing msg 0001BDE2 ...
Apr 30 13:23:09 mail drweb-maild: [4ab98560] maild INFO start processing msg 0001BDE7 ...

Пробовал разные варианты макс. количества тредов - падает при любом, что при 10, что при 1000. Нагрузка около 20 писем в секунду.
Куда выложить кору (11 Мб в архиве)?

Сообщение было изменено disassembler: 30 Апрель 2009 - 16:06


#2 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 30 Апрель 2009 - 17:09

что выводит ldd ./drweb-maild
?
какая сборка используется - для freebsd 7.0?
попробуйте сборку для 6.0 вместе с compat библиотеками.
кора о падениях с такими симптомами вряд ли может быть полезна.

#3 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 12 Май 2009 - 12:26

Сборка под 7.0.

{:content:}nbsp; ldd /usr/local/drweb/drweb-maild
/usr/local/drweb/drweb-maild:
libdwrules.so => /usr/local/drweb/lib/libdwrules.so (0x28265000)
libboost_thread.so => /usr/local/drweb/lib/libboost_thread.so (0x2830b000)
libboost_program_options.so => /usr/local/drweb/lib/libboost_program_options.so (0x28317000)
libgigabase_r.so.2.0 => /usr/local/drweb/lib/libgigabase_r.so.2.0 (0x2834f000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x283d1000)
libdwreports.so => /usr/local/drweb/lib/libdwreports.so (0x284c6000)
libthr.so.3 => /lib/libthr.so.3 (0x284e5000)
libstdc++.so.6 => /usr/local/drweb/lib/libstdc++.so.6 (0x284f9000)
libm.so.5 => /lib/libm.so.5 (0x285ee000)
libc.so.7 => /lib/libc.so.7 (0x28603000)
libboost_regex.so => /usr/local/drweb/lib/libboost_regex.so (0x286ff000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2878e000)

#4 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 13 Май 2009 - 10:17

Сборка под 7.0.


попробуйте сборку для 6.0 - у 7.0 вроде есть какие то проблемы для версий 7.1 и выше.

#5 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 13 Май 2009 - 13:52

Попробовал. Сборка под 6.x в кору не падает, но работает ОЧЕНЬ медленно, при этом сильно грузит систему. Одно письмо проверяет пять секунд и более (8-10):

May 13 13:38:16 mail drweb-maild: [b83e200] vaderetro INFO SpamState = 0; SpamScore = 0; Version=Vade Retro 01.282.13 AV+AS Profile: <none>; Bailout: N/A; time=5425 ms

С нашей загрузкой это недопустимо, быстро растет очередь необработанных сообщений. Если прописать в libmap.conf libpthread.so.2 => /usr/local/lib/compat/libthr.so.2, то работает быстро, но падает в кору несколько раз в минуту, как и семерочная сборка.
У нас в сервере стоит два четырёхъядерных процессора Intel Xeon, если это важно.

Дальше что? Стоит вопрос о целесообразности приобретении продукта, но в данный момент мы поставить его не можем: не работает. У нас в данный момент на этом же сервере стоит drwebd+drweb_cgp, никаких проблем не наблюдаем, работает хорошо.

#6 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 13 Май 2009 - 15:04

спасибо за информацию - она будет передана нашему тестовому отделу на воспроизведение и посик способа обойти проблему.

#7 ckotinko

ckotinko

    Newbie

  • Posters
  • 3 Сообщений:

Отправлено 14 Май 2009 - 13:19

Попробовал. Сборка под 6.x в кору не падает, но работает ОЧЕНЬ медленно, при этом сильно грузит систему. Одно письмо проверяет пять секунд и более (8-10):

May 13 13:38:16 mail drweb-maild: [b83e200] vaderetro INFO SpamState = 0; SpamScore = 0; Version=Vade Retro 01.282.13 AV+AS Profile: <none>; Bailout: N/A; time=5425 ms

С нашей загрузкой это недопустимо, быстро растет очередь необработанных сообщений. Если прописать в libmap.conf libpthread.so.2 => /usr/local/lib/compat/libthr.so.2, то работает быстро, но падает в кору несколько раз в минуту, как и семерочная сборка.
У нас в сервере стоит два четырёхъядерных процессора Intel Xeon, если это важно.

Дальше что? Стоит вопрос о целесообразности приобретении продукта, но в данный момент мы поставить его не можем: не работает. У нас в данный момент на этом же сервере стоит drwebd+drweb_cgp, никаких проблем не наблюдаем, работает хорошо.

Есть подозрение, что у вас используется сломанная ld.so. она повреждает данные некоторых библиотек(в зависимости от того, как они в памяти лягут). Попробуйте скомилировать и выполнить следующую программу:
#include <pthread.h>
   int main&#40;&#41;{
	   &#65279;try { throw 0; } catch &#40;int& e&#41; {}
	   pthread_t thr;   
	   if &#40;pthread_create&#40;&thr, 0, thr_func, 0&#41;&#41; { return 0;}
	   return 0;
  }
Симптомом сломанной ld.so является подвисание программы.

библиотека была сломана в 7.1 и последних релизах 7.0, возможно стоит попробовать установить библиотеку ld.so от более раннего релиза 7.0.

также, попробуйте выполнить обе программы, описанную по этой ссылке:
http://www.nabble.com/threads-128922:-thre...td20528848.html
можно попробовать вместо libthr использовать libkse, последняя - это userspace-часть планировщика от 6.0, а первая - обёртка типа libkse, но с иным планированием потоков. тогда как pthread полностью полагается(и видимо ошибочно) на средства операционной системы.

Сообщение было изменено ckotinko: 14 Май 2009 - 13:30


#8 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 14 Май 2009 - 14:08

попробуйте сборку для 6.0 - у 7.0 вроде есть какие то проблемы для версий 7.1 и выше.

Ну так на дворе уже 7.2-RELEASE, может стоит собрать всё-таки?

#9 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 14 Май 2009 - 14:15

Есть подозрение, что у вас используется сломанная ld.so.

Под "сломанной" ld.so у нас прекрасно работает CommuniGate и фильтр drweb_cgp, а также весь остальной софт.

#10 ckotinko

ckotinko

    Newbie

  • Posters
  • 3 Сообщений:

Отправлено 14 Май 2009 - 15:07

Есть подозрение, что у вас используется сломанная ld.so.

Под "сломанной" ld.so у нас прекрасно работает CommuniGate и фильтр drweb_cgp, а также весь остальной софт.

libthr тоже "работает":

http://www.freebsd.org/cgi/query-pr.cgi?pr=threads/127225
Category:threads
Synopsis:bug in lib/libthr/thread/thr_init.c
Severity:serious
Priority:high
Responsible:freebsd-threads@FreeBSD.org
State:open
Class:sw-bug
Arrival-Date:Mon Sep 08 22:50:01 UTC 2008
Closed-Date:
Last-Modified:Tue Sep 09 01:44:08 UTC 2008
Originator:comperr
Release:7.1-PRERELEASE; 7.0-STABLE

говоря суровым языком математики, проведение опыта О, и успешное истолкование его в рамках теории А не подтверждает теорию А, а лишь не опровергает её.


Наверно стоит локализовать проблему, прежде чем исправлять её. Симптому, что вы описываете:

но работает ОЧЕНЬ медленно, при этом сильно грузит систему

возникают, когда глючит не сама программа(её алгоритмическая сложность=const) а какие то библиотеки под ней. В них крутятся какие-нибудь дурные циклы, например вокруг lockов, live-lockи, в общем проц гоняется не по делу. Стоит поискать проблему там. Maild работает с потоками через цепочку maild->libboost-thread_1.34->{pthread или что бог на душу положит разработчикам буста}. Посему
а)пришлите пожалуйста ldd на прилагающиеся к maild библиотеки /usr/local/drweb/lib/libboost_thread.so
б)попробуйте заменить её на родную для вашей систему библиотеку той же версии(более новые несовместимы ни бинарно ни программно)

Сообщение было изменено ckotinko: 14 Май 2009 - 15:34


#11 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 15 Май 2009 - 09:36

Наверно стоит локализовать проблему, прежде чем исправлять её. Симптому, что вы описываете:

но работает ОЧЕНЬ медленно, при этом сильно грузит систему

возникают, когда глючит не сама программа(её алгоритмическая сложность=const) а какие то библиотеки под ней. В них крутятся какие-нибудь дурные циклы, например вокруг lockов, live-lockи, в общем проц гоняется не по делу. Стоит поискать проблему там. Maild работает с потоками через цепочку maild->libboost-thread_1.34->{pthread или что бог на душу положит разработчикам буста}. Посему
а)пришлите пожалуйста ldd на прилагающиеся к maild библиотеки /usr/local/drweb/lib/libboost_thread.so
б)попробуйте заменить её на родную для вашей систему библиотеку той же версии(более новые несовместимы ни бинарно ни программно)

а) $ ldd /usr/local/drweb/lib/libboost_thread.so
/usr/local/drweb/lib/libboost_thread.so:
libstdc++.so.5 => /usr/local/drweb/lib/libstdc++.so.5 (0x48300000)
libm.so.4 => /usr/local/lib/compat/libm.so.4 (0x4818f000)
libgcc_s.so.1 => /usr/local/drweb/lib/libgcc_s.so.1 (0x481a5000)
libc.so.6 => /usr/local/lib/compat/libc.so.6 (0x483b1000)

б) не понял. заменить /usr/local/drweb/lib/libboost_thread.so? На какую библиотеку?


Что делать с падениями в кору семерочной сборки? Почему падает, как лечить?

#12 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 15 Май 2009 - 09:55

говоря суровым языком математики, проведение опыта О, и успешное истолкование его в рамках теории А не подтверждает теорию А, а лишь не опровергает её.

Это все чудесно, но нам программу нужно запустить, и принять решение о ее приобретении. В данный момент программа не работает. Если она не будет работать, мы ее не приобретем.
Всю необходимую диагностику мы готовы предоставить, но ответ вида "кора нам не нужна" как минимум удивляет.

#13 ckotinko

ckotinko

    Newbie

  • Posters
  • 3 Сообщений:

Отправлено 15 Май 2009 - 12:56

говоря суровым языком математики, проведение опыта О, и успешное истолкование его в рамках теории А не подтверждает теорию А, а лишь не опровергает её.

Это все чудесно, но нам программу нужно запустить, и принять решение о ее приобретении. В данный момент программа не работает. Если она не будет работать, мы ее не приобретем.
Всю необходимую диагностику мы готовы предоставить, но ответ вида "кора нам не нужна" как минимум удивляет.

Лично мне кора бы пригодилась. Можете метнуть её на d.leontiev@drweb.com. Хотя он неё толку не будет, это несовместимость библиотек. Потому есть предложение проверить, как поведёт себя maild с libpthread или libthr, но с заменённой библиотекой libboost-thread на такую же, версии 1.34, скомпилированной для вашей версии freebsd.

#14 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 16 Май 2009 - 09:17

boost не собирается что-то.

[root@mail 9:10 ~/work/boost_1_34_0]$ ./configure
Building Boost.Jam with toolset gcc... tools/jam/src/bin.freebsd/bjam
python: not found
Unicode/ICU support for Boost.Regex?... not found.
Backing up existing Boost.Build configuration in user-config.jam.2
Generating Boost.Build configuration in user-config.jam...
Generating Makefile...
[root@mail 9:10 ~/work/boost_1_34_0]$ make
./tools/jam/src/bin.freebsd/bjam --user-config=user-config.jam
Segmentation fault
Not all Boost libraries built properly.

#15 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 19 Май 2009 - 09:50

Потому есть предложение проверить, как поведёт себя maild с libpthread или libthr, но с заменённой библиотекой libboost-thread на такую же, версии 1.34, скомпилированной для вашей версии freebsd.

Собрал boost 1.34.1, libboost_thread.so.4, при попытке запуска drweb-maild (с libpthread) пишет:

Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)
Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)
Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)
Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)
Ошибка адресации на шине

При попытке запуска с libthr сразу падает в кору.

#16 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 19 Май 2009 - 09:53

Вопрос поддержке. Для нас собрать drweb-maild под FreeBSD 7.2 разработчики могут? А мы бы протестировали. Времени до принятия решения у нас остается критически мало: до 22 мая. Пока решение не в пользу drweb, сами понимаете.

#17 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 19 Май 2009 - 16:27

думаю сегодня/завтра билды должны быть - до тех пор пока они не протестированы у нас мы их выложим куда нибудь в район ftp://people.drweb.com

#18 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 19 Май 2009 - 17:15

можете попробовать эти билды (они пока без тестирования):
http://people.drweb.com/people/ai/maild/

#19 disassembler

disassembler

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 20 Май 2009 - 10:03

можете попробовать эти билды (они пока без тестирования):
http://people.drweb.com/people/ai/maild/


1. Неправильно либы слинкованы, например:
libboost_program_options-gcc34-1_34_1.so.1.34.1, а в поставке идет только
libboost_program_options-gcc34-1_34_1.so. Но это мелочи, исправил через libmap.conf.


2. Не запускается drweb-notifier, в результате ничего больше не запускается.

$ /usr/local/drweb/drweb-notifier
terminate called after throwing an instance of 'DrWeb::base::DwSystemError'
terminate called recursively
Аварийное завершение

Без него можно как-нибудь запустить maild? Оторвать его где-нибудь?

#20 Anton Ivanov

Anton Ivanov

    Advanced Member

  • Posters
  • 842 Сообщений:

Отправлено 20 Май 2009 - 10:07

по пункту 2 - это серьезно - надо пересобирать. как будет готово - сообщим.


Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых