существует не сильно нагруженный почтовый сервер FreeBSD 7.2 Exim+Vexim+Dovecot+Roundcube
Один из пользователей обнаружил проблему следующего содержания:
если в одно письмо прикрепить несколько файлов, то roundcube не проверяет максимальный размер письма.
При нажатии кнопки отправить письмо он достаточно долго думает и пользователю ничего не говорит, кнопка отправить становится неактивной и ни на что не реагирует.
Получается, что пользователь по факту превысил лимит размера сообщения, но сообщения об этом не получил и процесс отправки сообщения не дошел до exim, а вывалился еще при попытке отработать нажатие кнопки отправить в вебморде почты.
С точки зрения сервера ситуация выглядит как запись сообщения о превышении лимита памяти в файл
Код: Выделить всё
/usr/local/www/roundcube/logs/errors
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 28042757 bytes) in /usr/local/www/roundcube/program/lib/Mail/mimePart.php on line 289
Код: Выделить всё
cat /usr/local/www/roundcube/.htaccess
# AddDefaultCharset UTF-8
AddType text/x-component .htc
<IfModule mod_php5.c>
php_flag display_errors Off
php_flag log_errors On
# php_value error_log logs/errors
php_value upload_max_filesize 20M
php_value post_max_size 25M
php_value memory_limit 128M
php_flag zlib.output_compression Off
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag zend.ze1_compatibility_mode Off
php_flag suhosin.session.encrypt Off
#php_value session.cookie_path /
php_value session.auto_start 0
php_value session.gc_maxlifetime 21600
php_value session.gc_divisor 500
php_value session.gc_probability 1
# http://bugs.php.net/bug.php?id=30766
php_value mbstring.func_overload 0
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^favicon.ico$ skins/default/images/favicon.ico
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>
<IfModule mod_headers.c>
# replace 'append' with 'merge' for Apache version 2.2.9 and later
#Header append Cache-Control public env=!NO_CACHE
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</IfModule>
FileETag MTime Size
Код: Выделить всё
cat /usr/local/etc/php.ini
date.timezone =Europe/Moscow
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files. Меняем размер вложенного файла.
upload_max_filesize = 20M
; размер почтового файла
; Maximum size of POST data that PHP will accept. Меняем размер почтового файла.
post_max_size = 25M
Попытка прояснить ситуацию на баг трекере roundcube показала что такая проблема существовала но её уже решили, однако у меня самая последняя версия, и как видите все таки происходит.
Проверил какими патчами проблема решалась ранее , сравнил свои файлы и не нашел разницы.
Может кто сталкивался ?