[prev in list] [next in list] [prev in thread] [next in thread] 

List:       clamav-users
Subject:    Re: [clamav-users] strange "Can't create temporary directory ERROR"
From:       Philipp Schwaha <philipp () schwaha ! net>
Date:       2012-11-13 10:12:24
Message-ID: 50A21D08.1040809 () schwaha ! net
[Download RAW message or body]

On 11/07/2012 03:53 PM, David Raynor wrote:
> On Wed, Nov 7, 2012 at 3:20 AM, Philipp Schwaha <philipp@schwaha.net> wrote:
> 
>> hi everybody!
>>
>> I recently set up a combination of exim and clamav which was working
>> very nicely until clamav seemingly started to choke. Switching
>> debugging on I obtained the following:
>>
>> Wed Nov  7 01:52:06 2012 -> Received POLLIN|POLLHUP on fd 4
>> Wed Nov  7 01:52:06 2012 -> Got new connection, FD 9
>> Wed Nov  7 01:52:06 2012 -> Received POLLIN|POLLHUP on fd 5
>> Wed Nov  7 01:52:06 2012 -> fds_poll_recv: timeout after 5 seconds
>> Wed Nov  7 01:52:06 2012 -> Received POLLIN|POLLHUP on fd 9
>> Wed Nov  7 01:52:06 2012 -> got command SCAN
>> /var/spool/exim/scan/1TVtsE-0006lJ-9m/1TVtsE-0006lJ-9m.eml (63, 5),
>> argument: /var/spool/exim/scan/1TVtsE-0006lJ-9m/1TVtsE-0006lJ-9m.eml
>> Wed Nov  7 01:52:06 2012 -> mode -> MODE_WAITREPLY
>> Wed Nov  7 01:52:06 2012 -> Breaking command loop, mode is no longer
>> MODE_COMMAND
>> Wed Nov  7 01:52:06 2012 -> Consumed entire command
>> Wed Nov  7 01:52:06 2012 -> THRMGR: queue (single) crossed low
>> threshold -> signaling
>> Wed Nov  7 01:52:06 2012 -> THRMGR: queue (bulk) crossed low threshold
>> -> signaling
>> Wed Nov  7 01:52:06 2012 -> Number of file descriptors polled: 1 fds
>> Wed Nov  7 01:52:06 2012 -> fds_poll_recv: timeout after 600 seconds
>> Wed Nov  7 01:52:06 2012 ->
>> /var/spool/exim/scan/1TVtsE-0006lJ-9m/1TVtsE-0006lJ-9m.eml: Can't
>> create temporary directory ERROR
>> Wed Nov  7 01:52:06 2012 -> Finished scanthread
>> Wed Nov  7 01:52:06 2012 -> Scanthread: connection shut down (FD 9)
>> Wed Nov  7 01:52:06 2012 -> THRMGR: queue (single) crossed low
>> threshold -> signaling
>> Wed Nov  7 01:52:06 2012 -> THRMGR: queue (bulk) crossed low threshold
>> -> signaling
>>
>> This seems very odd, since it seems that it wants to create a
>> temporary file which has exactly the same name as the input file and
>> hence little probability of success. Am I interpreting the error
>> message incorrectly?
>> Or is this maybe some other issue?
>>
>> I have now tried with clamav versions 0.97.4, 0.97.5 and 0.97.6. Exim
>> is at version 4.80. Its log file contains the corresponding message:
>>
>> 1TVtsE-0006lJ-9m malware acl condition: clamd: ClamAV returned:
>> /var/spool/exim/scan/1TVtsE-0006lJ-9m/1TVtsE-0006lJ-9m.eml: Can't
>> create temporary directory ERROR
>>
>> Of note is that it happens for all mails, even the most simplistic
>> ones (e.g., generated by swaks), where there is nothing to unpack. The
>> description I found here:
>> http://lurker.clamav.net/message/20120618.182545.25960b6a.en.html lets
>> me think that the error message might not be quite ok?
>>
>> I have also tried with different settings of 'TemporaryDirectory'
>> going through several useful settings such as /tmp or /var/tmp and
>> also obviously broken directories, just in order to see if anything
>> changes. So far I have not had any luck to change clamav's behaviour
>> at all.
>>
>> Do you have any suggestions how to further track down and hopefully
>> fix this issue?
>>
>> cheers
>>         Philipp
>>
>>
>> _______________________________________________
>> Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
>> http://www.clamav.net/support/ml
>>
> 
> This a result message. It is starting with the file it was asked to scan,
> not the directory it is trying to create. The message it is printing is
> because the scanning result has a value of CL_ETMPDIR somewhere within the
> scanning attempt and that bubbled up to be the final result. One of the
> first things ClamAV does within the mail scanning is create a folder to
> dump attachments to as temporary files for scanning. That is probably where
> it is happening.
> 
> But it looks as if you only have debug level logging for the server thread
> and not for the actual scanning thread. The scanning library should be
> printing out a line that will tell you what directory it failed to create.
> Everywhere that the CL_ETMPDIR return code is initially returned, it is
> printing a message (frequently at debug level) to say what directory it
> could not create. In the case of the mail message related failure I am
> guessing above [inside function cli_scanmail()] it will look like this:
> Mail: Can't create temporary directory /dir/name/goes/here
> 
> That would tell you what folder it failed to create. So you need to get
> that message printed, which means checking the config. Can you share your
> clamd.conf file?
Thank you very much!
Sorry for misunderstanding the error message. After enabling more output
(and browsing through the code a bit) I found the problem and could fix
it (a bad set of default acls were set for / which then got propagated
to all the temporary files).

thank you very much
	Philipp
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic