Периодические проблемы с ClamAV clamd INSTREAM на сокете
У меня есть функция AWS Lambda, выполняющая код NodeJS для потоковой передачи файлов из S3 в ClamAV, запущенный на экземпляре EC2.
Обычно (примерно в 75% случаев) система работает, но часто (особенно когда сканируются несколько файлов из разных контейнеров Lambda) clamd
темы застревает на INSTREAM
,
Как только поток был в INSTREAM
в течение 25-30 секунд, кажется, не может восстановиться. Когда это было QUEUEDSINCE
350 секунд это убито. Я не могу понять, как любое из этих чисел относится к какому-либо значению в моей конфигурации.
Я изо всех сил пытаюсь найти какой-либо признак ошибки в журналах - количество запросов INSTREAM совпадает с количеством полных проверок:
$ sudo grep -c "got command INSTREAM" /var/log/clamav/clamav.log
129
$ sudo grep -c "Chunks complete" /var/log/clamav/clamav.log
129
$ sudo grep -c "Scanthread: connection shut down" /var/log/clamav/clamav.log
129
... хорошо, теперь, когда я заглядываю немного глубже в журналы, некоторые сканируются гораздо дольше. Когда я делаю пакет из 16 файлов, а Lambda ограничен 7, первые 7 файлов сканируются в течение нескольких секунд. Следующий файл начинает сканирование вскоре после этого, доходит до "Чанки завершены" в течение секунды, но занимает 23 секунды, прежде чем "Scanthread: отключение соединения". С этого момента становится только хуже - 1:24, 1:45... и затем 3-й пакет из 7 файлов занимает более 3 минут для сканирования.
Если я дам системе несколько минут, чтобы успокоиться, все потоки исчезнут, те же файлы, которые заняли более 3 минут, теперь занимают около 5-7 секунд.
Если я выполню тот же тест на более быстрой машине, производительность улучшится, но проблема все еще остается:
Когда темы застревают INSTREAM
Я вижу, что файлы все еще там:
$ ls -al /tmp
drwx------ 2 clamav clamav 4096 Aug 29 16:52 clamav-493bdf893ce4d8d7763c00fee22d9d69.tmp
-rwx------ 1 clamav clamav 25683921 Aug 29 16:52 clamav-5cdefd83d5531a03c7cf22fda37d133f.tmp