Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Бесконечное колесо #112

Open
e2cru opened this issue Jan 26, 2016 · 1 comment
Open

Бесконечное колесо #112

e2cru opened this issue Jan 26, 2016 · 1 comment

Comments

@e2cru
Copy link

e2cru commented Jan 26, 2016

Добрый день!
Как в #96 - жмем кнопку, и все.
Колесо крутится (оставлял на сутки).
В директории tmp происходит следующее:
-rw-r--r-- 1 www-data www-data 83M Янв 26 12:48 ajax_scnnr_tbnj.manul.tmp
-rw-r--r-- 1 www-data www-data 0 Янв 26 12:48 dirlist.manul.tmp.txt
-rw-r--r-- 1 user user 31 Авг 10 15:35 .htaccess
-rw-r--r-- 1 www-data www-data 91 Янв 20 13:14 password_hash.php
-rw-r--r-- 1 www-data www-data 33M Янв 26 12:48 scan_queue.manul.tmp.txt
Все.
После того как он постепенно обнулил dirlist.manul.tmp.txt - даты модификации файлов меняться перестают.

phpinfo.txt

@kolyandula
Copy link

В ajax_scnnr_tbnj.manul.tmp содержатся записи такого вида

<file>
    <path>./wp-admin/css/colors/ectoplasm/colors-rtl.min.css</path>
    <size>40965</size>
    <ctime>1392903651</ctime>
    <mtime>1390501511</mtime>
    <owner>www-data</owner>
    <group>www-data</group>
    <access>0664</access>
    <md5>d148388c28a8d4c3b25b4c669849067f</md5>
</file>

Т.е. по 10 строчек каждый файл или папку.

Для чтения ajax_scnnr_tbnj.manul.tmp используется file() https://github.com/antimalware/manul/blob/master/src/scanner/classes/FileList.inc.php#L76-L77
Файл в 83 МБ содержит несколько миллионов строк.
Массив таких размеров расходует много памяти https://habrahabr.ru/post/141093/
Если скрипт из-за нехватки памяти завершается на строке 76, то не будет вызова cleanUp() и получится бесконечное колесо.

Предлагаю для начала исправить на

$result = file_get_contents($this->AJAX_TMP_FILE);

А вообще нужно подумать, как не тянуть его целиком в память, а обрабатывать частями.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants