Bug 9382 - Crash with error_log big that 2Gb
: Crash with error_log big that 2Gb
Status: CLOSED WONTFIX
: Sisyphus
(All bugs in Sisyphus/apache)
: unstable
: all Linux
: P2 normal
Assigned To:
:
: http://issues.apache.org/bugzilla/sho...
:
:
:
  Show dependency tree
 
Reported: 2006-04-08 11:25 by
Modified: 2012-03-16 13:58 (History)


Attachments
apache-httpgw.spec (32.62 KB, text/plain)
2006-06-21 01:11, Sir Raorn
no flags Details
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE (57.73 KB, text/plain)
2006-10-17 19:49, Michael Shigorin
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-04-08 11:25:45
Когда error_log достигает 2Гб апач молча падает, после чего не запускается, но
init-скрипт при этом говорит OK... Убил 2 часа на то чтобы понять чего же у
меня
лег апач и почему скрипт говорит OK, но при этом ничерта не запускается...
------- Comment #1 From 2006-04-08 16:57:37 -------
Хорошо бы ещё твои конкретные соображения по исправлению, раз уж тебя поймало.

Пока нашлось:
http://mail-archives.apache.org/mod_mbox/httpd-dev/200208.mbox/%3CH00000be005f208e.1029264174.river.fscinternet.com@MHS%3E

Конец Треда (ТМ)
------- Comment #2 From 2006-04-10 12:20:36 -------
Я собрал апач с -D_FILE_OFFSET_BITS=64, две недели полёт нормальный.

А ещё была ситуация, когда access_log разросся до двух гиг за три-четыре дня и
это нормальная ситуация.  Пришлось ротейтить daily...

P.S. А ещё -DHARD_SERVER_LIMIT=1024 сделал.
------- Comment #3 From 2006-04-10 21:08:34 -------
Что из этого порекомендуешь в Sisyphus? (почти автоматически -- и в backports)
------- Comment #4 From 2006-04-10 21:44:38 -------
Раорн, а Раорн.  Спек брось, бо что-то у меня:

+ pushd /usr/src/tmp/apache-buildroot/usr/lib/apache
~/tmp/apache-buildroot/usr/lib/apache
~/RPM/BUILD/apache-1.3.34rusPL30.22-alt5/mod_perl-1.29
+ ldd -r libhttpd.so
error: Bad exit status from /usr/src/tmp/rpm-tmp.40741 (%install)

с моим вариантом...
------- Comment #5 From 2006-04-11 09:28:34 -------
(In reply to comment #3)
> Что из этого порекомендуешь в Sisyphus? (почти автоматически -- и в backports)

Да вот даже не знаю...  С одной стороны падения по SIGXFSZ трудно
диагностируются, с другой - двухгиговый error_log это уже повод задуматься...

HARD_SERVER_LIMIT имеет смысл включать, потому как вниз он зажимается через
MaxClients, а вверх - только пересборкой что не всегда удобно.
------- Comment #6 From 2006-04-11 09:31:40 -------
(In reply to comment #4)
> Раорн, а Раорн.  Спек брось, бо что-то у меня:

Er...  У меня очень специализированая сборка.  Статикой, только с mod_rewrite,
mod_proxy и log_*, а mod_perl не собирал вообще.  Флаги добавлял в OPTIM.
------- Comment #7 From 2006-04-21 17:56:33 -------
1.3.34rusPL30.22-alt5:

# you can build --with/--without:
# - M22 or Sisyphus [auto]
# - mod_deflate [with]
# - acl_support [without]
# - largefile_support [with]
# - hardlimit1024 [without]

По части последнего -- Миша/Витя, можете подвесить патч для ручки вместо
тумблера, чтоб число задавалось -- я сейчас притормаживаю.
------- Comment #8 From 2006-04-21 18:16:09 -------
[Fri Apr 21 17:11:09 2006] [notice] child pid 13604 exit signal Segmentation
fault (11)
------- Comment #9 From 2006-04-21 18:16:56 -------
Лёш, дай спек pls.  Я, наверное, тупой...
------- Comment #10 From 2006-06-20 22:43:21 -------
Нароод! (raorn)
Бросьте своих спеков или идеально -- патчей к моих спеков :)
Допинаем 1.3.36 до победного.
------- Comment #11 From 2006-06-21 01:07:55 -------
(In reply to comment #10)
> Бросьте своих спеков или идеально -- патчей к моих спеков :)

Ещё раз - у меня очень спецательная сборка apache.  Статикой, включены _только_
mod_rewrite и mod_proxy.  Всё остальное (включая mod_perl) выкинуто напрочь.  Ну
и экспериментальным методом починил фигню с gdbm.

Если поможет - сейчас приаттачу.
------- Comment #12 From 2006-06-21 01:11:19 -------
Created an attachment (id=1525) [details]
apache-httpgw.spec

Статика.  Включены _только_ log_agent, log_config, log_referer, proxy и
rewrite.  HARD_SERVER_LIMIT=1024, _FILE_OFFSET_BITS=64.  Починено использование
gdbm в mod_rewrite.

Специализированая сборка для одной задачи - reverse proxy для N хостов с
хитрыми rewrite'ами.
------- Comment #13 From 2006-10-15 01:47:27 -------
(In reply to comment #12)
> HARD_SERVER_LIMIT=1024, _FILE_OFFSET_BITS=64.
Гы, а я-то apache-1.3.33-alt-hardlimit.patch держал :]  Омакрено.
Проверил, работает.

> Починено использование gdbm в mod_rewrite.
Затянул (пришлось ещё -I%_includedir/db4, заодно оказалось, что libdb1-devel уже
можно выкинуть).

http://old.linux.kiev.ua/~mike/RPM/SRPMS/apache-1.3.37rusPL30.22-alt6.src.rpm

Проверь по возможности, а то уже глаза sleep()аются, да и не готовил я
mod_rewrite с gdbm до сих пор.
------- Comment #14 From 2006-10-17 18:04:40 -------
сегфолтается с php :( [или это к тому, что уехало ABI и надо пересобрать все
модули, если вливать такого апача?]
------- Comment #15 From 2006-10-17 18:27:23 -------
[pid 17837] stat64("/var/www/html", {st_mode=S_IFDIR|S_ISGID|0775, st_size=1312,
...}) = 0
[pid 17837] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 17837] chdir("/etc/httpd")         = 0
[pid 17837] rt_sigaction(SIGSEGV, {SIG_DFL}, {SIG_DFL}, 8) = 0
[pid 17837] kill(17837, SIGSEGV)        = 0
[pid 17837] sigreturn()                 = ? (mask now [])
[pid 17837] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
------- Comment #16 From 2006-10-17 19:22:43 -------
http://www.redhat.com/archives/fedora-list/2004-November/msg07550.html -- также
нашлось:

# Apache 1.3.37

    * Older versions of Apache 1.3.x had in the file
src/include/ap_config_auto.h a flag:
      #define _LARGEFILE_SOURCE 0
      that you could change to:
      #define _LARGEFILE_SOURCE 1
      Newer versions have a changed source tree, and I don't know how to fix
this!
    * Therefore, the old way of forcing (in extremis) ./configure
CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" will not work with the
current Apache 1.3.37!
    * NOTE: In the past, various distros like Debian, Mandrake or SuSE used to
add unofficial patches to Apache 1.3 to support files >2 GB.

В общем, на основании apache bugs #17453, #36417 придётся закопать как WONTFIX
-- похоже, апстриме задля продвижения горбатого 2.0 добили возможность включить
LFS в 1.3 :-(

Жень, если ещё есть желание -- можешь попробовать проверить, только обязательно
проверь с apache-mod_php.  Непересобранное [с -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE=1?] явно не ожидает такой подставы и сегфолтит деток.
------- Comment #17 From 2006-10-17 19:27:31 -------
Мне уже не актуально, а на будущее я буду помнить что у нас ограницение лога в
2Г :)
------- Comment #18 From 2006-10-17 19:46:50 -------
Hacked up versions of 1.3 can serve >2Gb files, some people use that. 
If you build 2.0 with special compiler flags (-DFILE_OFFSET_BITS=64)
that works too, modulo a few bugs - we can't do that in Fedora since it
breaks the binary module interface.

Поэтому raorn@ свой спек выложил, если тебя угораздило нуждаться именно в апаче,
но с такими логами -- собери себе его вариант.  nginx большую статику показывает
и отдаёт на ура; думаю, и с большими логами не должно быть проблем.

PS: в итоге эксперимента, спек от которого сейчас приложу -- оно таки работает,
но после пересборки (без изменений) также php и apache-mod_php (начинаем с
rpm-build-php) или, видимо, других требуемых модулей.  Выкатывать такое
изменение в стабильной ветке всё-таки неосмысленно; если кому когда всё-таки
понадобится и apache-2.2 до той поры себя успеет плохо проявить по части
безопасности, то потребуется синхронизировать пересборку всех модулей apache в
сизифе.
------- Comment #19 From 2006-10-17 19:49:54 -------
Created an attachment (id=1663) [details]
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE

WARNING: apache built with this spec is BINARY INCOMPATIBLE with non-LFS module
builds!  you will have to rebuild mod_* against it