On 12/05/2012 06:03 PM, [email protected] wrote:
>
> Zitat von Martijn Brinkers <[email protected]>:
>
>> On 12/05/2012 05:44 PM, [email protected] wrote:
>>>
>>>
>>> Is it possible that it is related to the CRL downloading. Most of the
>>> time we have something like this nearby:
>>>
>>> 05 Dez 2012 17:34:23 | WARN  IO Exception downloading CRL. URI:
>>> ldap://ldap.sbca.telesec.de/CN=Deutsche%20Telekom%20Root%20CA%202,OU=T-TeleSec%20Trust%20Center,O=Deutsche%20Telekom%20AG,C=DE?AuthorityRevocationList.
>>>
>>> Message: javax.naming.NamingException: LDAP response read timed out,
>>> timeout used:120000ms.    (mitm.common.security.crl.CRLStoreUpdaterImpl)
>>> [CRL Updater thread]
>>
>> Downloading of CRLs are done on a separate thread. The only think I can
>> think of is that downloading the CRL somehow uses all the CPU for some
>> time although that should not happen since all threads have the same
>> priority. Do you have the certificate that contains that CRL
>> distribution point so I can test whether I can download the CRL?
>>
>> Kind regards,
>>
>> Martijn
>
> There is more than one with crappy CRL download URL. I will try to pick
> them and send you in private mail. There is obviously something wrong
> with the CRLs anyway:
>
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: GC overhead limit exceeded
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.1:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.2.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: GC overhead limit exceeded
> /var/log/old/james.wrapper.log.2.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.2.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: GC overhead limit exceeded
> /var/log/old/james.wrapper.log.3.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.3.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.3.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.4.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
> /var/log/old/james.wrapper.log.4.gz:Exception in thread "CRL Updater
> thread" java.lang.OutOfMemoryError: Java heap space
>
> I have now raised the Memory Limit in wrapper.conf from 512MB to 700MB
> to see if this fixes at least the OutOfMemory :-(
> And yes, one CPU is at 100% load for the time of CRL updates but at
> least we have two of them :-)

That might explain it. Unfortunately CRLs can be large and memory 
consuming. I think 512 MB is too low for some large CRLs. For the 
Virtual Appliance I have enabled "dynamic memory allocation" which uses 
more memory if the system is configured with more memory. It's really 
simple but effective (see /etc/default/djigzo). This is not enabled by 
default since djigzo might be installed on systems that run other things 
as well.

 >java.lang.OutOfMemoryError: GC overhead limit exceeded

This is a warning from the JVM that the system spends more time on 
garbage collection then some max value. I think that the system is then 
restarted. Somehow you have a CA with a very large CRL. The system sets 
a max size of a downloaded CRL (see djigzo.properties parameter: 
system.cRLDownloadParameters.maxBytes). You can lower this value, but 
then it might be that a CRL is no longer downloaded since it's too big.

I'll need to spend time refactoring the CRL part. The problem is that 
Java tries to load the CRL in memory which can take a lot of memory. The 
thing I have been thinking of for some time is to make a database backed 
CRL. But this is not trivial to do.

Can you see which CRL is giving you grieve?

Kind regards,

Martijn

-- 
DJIGZO email encryption
_______________________________________________
Users mailing list
[email protected]
http://lists.djigzo.com/lists/listinfo/users

Reply via email to