On Mon, Apr 12, 2004 at 02:35:48PM +0400, Maxime Zakharov wrote:
>
> Привет,
>
> пишу свой модуль, юзающий библиотеку. Библиотека сама работает с памятью
> (в смысле не через Apache API).
> Если мой модуль прописать в конфиг, то apactl configtest проходит
> нормально, говорит OK, однако если запускать апач (apactl start), то
> происходит трап httpd:
> (gdb) bt
> #0 0x2817eda4 in .cerror () from /usr/lib/libc.so.4
> #1 0x28553af9 in _thread_fd_table_init () from /usr/lib/libc_r.so.4
> #2 0x28553c16 in _thread_fd_lock_debug () from /usr/lib/libc_r.so.4
А какой апач ? Если 1.3, то он по-умолчанию собирается без threads
(и соответственно с libc.so, а не c libc_r). Соответственно, начинать
надо с пересборки апача с -pthread в CFLAGS. Или, если threads
не нужны - то и модуль собирать без threads
А сейчас у вас вообще путаница - .cerror() зовется из libc, остальное
из libc_r, ужас просто.
> ЗЫ2: если подключить mod_perl, то падает внутри mod_perl при обработке
> первой же директивы из конфига, относящейся к mod_perl.
А perl небось не thread-safe вообще ни копейки :)
Пахнет тут multithreaded сервером, который юзает библиотеку и
single-threaded-клиентом, в модуле.
Алексей Тутубалин
mailto: lexa@xxxxxxx
Web: http://www.lexa.ru/lexa