On 22-01-18 10:21, Stefan Michael Guenther via Users wrote:
Good morning,

on one of our client's server we are running Ciphermail Version: 3.2.7-5. 
Built: 2017-04-18-21:39.

The process crashes every 2-3 days with the following messages in 
james.wrapper.log:

22 Jan 2018 06:48:13 | INFO  Replacing Issuer: CN=VPS-CA-1, O=Bundesagentur 
fuer Arbeit, C=DE; CRL number: 98378; Thumbprint: 
3663997E3157C83F295546E6F84EEFDB0200489FFBE553978634A025715319179681806545A5E105D0E09
1F77EC6EDE4FA7005DFBEDCD53C2EE177A1BCD10CBE; SHA1: 
452DE5AA5EC1758AFC2F308C7D388FD1CADCBD96 with Issuer: CN=VPS-CA-1, 
O=Bundesagentur fuer Arbeit, C=DE; CRL number: 98379; Thumbprint: 
0A8290102A6ACD8B7E1EFA7B482
F96F7163A9B8D04F9317968B251036F409E16802863837BF8EF7B610E8015FD7F547A570F852907ABE74206AFDE13573EFBD1;
 SHA1: 03AE7FA2B4E7A503089EE29D35347A9D56DC650C    
(mitm.common.security.crl.CRLStoreMaintainerImpl) [CRL Updater thread]
22 Jan 2018 06:48:30 | ERROR Error in certificate request handler thread.    
(mitm.common.security.ca.CAImpl) [Certificate request handler thread]
java.lang.OutOfMemoryError: GC overhead limit exceeded
22 Jan 2018 06:48:31 | ERROR Error reading CRL. Skipping CRL    
(mitm.common.security.crl.CRLStoreMaintainerImpl) [CRL Updater thread]
mitm.common.security.crlstore.CRLStoreException: 
mitm.common.hibernate.DatabaseException: 
mitm.common.security.crlstore.CRLStoreException: java.lang.OutOfMemoryError: GC 
overhead limit exceeded
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer.internalAddCRL(TransactedCRLStoreMaintainer.java:124)
         at 
mitm.common.security.crl.CRLStoreMaintainerImpl.addCRLs(CRLStoreMaintainerImpl.java:406)
         at 
mitm.common.security.crl.CRLStoreUpdaterImpl.downloadCRLs(CRLStoreUpdaterImpl.java:337)
         at 
mitm.common.security.crl.CRLStoreUpdaterImpl.update(CRLStoreUpdaterImpl.java:413)
         at 
mitm.common.security.crl.ThreadedCRLStoreUpdaterImpl$Updater.updateCRLStore(ThreadedCRLStoreUpdaterImpl.java:161)
         at 
mitm.common.security.crl.ThreadedCRLStoreUpdaterImpl$Updater.access$200(ThreadedCRLStoreUpdaterImpl.java:98)
         at 
mitm.common.security.crl.ThreadedCRLStoreUpdaterImpl$Updater$1.doAction(ThreadedCRLStoreUpdaterImpl.java:130)
         at 
mitm.common.hibernate.DatabaseActionExecutorImpl$1.doAction(DatabaseActionExecutorImpl.java:164)
         at 
mitm.common.hibernate.DatabaseActionExecutorImpl.executeTransaction(DatabaseActionExecutorImpl.java:81)
         at 
mitm.common.hibernate.DatabaseActionExecutorImpl.executeTransaction(DatabaseActionExecutorImpl.java:158)
         at 
mitm.common.security.crl.ThreadedCRLStoreUpdaterImpl$Updater.run(ThreadedCRLStoreUpdaterImpl.java:118)
         at java.lang.Thread.run(Thread.java:748)
Caused by: mitm.common.hibernate.DatabaseException: 
mitm.common.security.crlstore.CRLStoreException: java.lang.OutOfMemoryError: GC 
overhead limit exceeded
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer$1.doAction(TransactedCRLStoreMaintainer.java:110)
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer$1.doAction(TransactedCRLStoreMaintainer.java:96)
         at 
mitm.common.hibernate.DatabaseActionExecutorImpl.executeTransaction(DatabaseActionExecutorImpl.java:81)
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer.internalAddCRL(TransactedCRLStoreMaintainer.java:94)
         ... 11 more
Caused by: mitm.common.security.crlstore.CRLStoreException: 
java.lang.OutOfMemoryError: GC overhead limit exceeded
         at 
mitm.common.security.crl.CRLStoreMaintainerImpl.internalAddCRL(CRLStoreMaintainerImpl.java:369)
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer.access$101(TransactedCRLStoreMaintainer.java:53)
         at 
mitm.common.security.crl.TransactedCRLStoreMaintainer$1.doAction(TransactedCRLStoreMaintainer.java:107)
         ... 14 more
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
22 Jan 2018 06:48:31 | INFO  Trying to download CRL from 
http://crl.globalsign.com/gspersonalsign2sha2g3.crl    
(mitm.common.security.crl.CRLDownloaderImpl) [CRL Updater thread]

When we start the process, information of the memory is missing:

* DJIGZO_HOME=/usr/local/djigzo
* Starting CipherMail
* Total memory:  MB
* JVM max memory:  MB

The system is a Ubuntu 16.04 64bit with 8 GB RAM and 4 GB SWAP. There is only 
Ciphermail running, together with nearly 20 IPSec VPNs.

Shall we fine tune the memory settings of Ciphermail? And if yes, what are 
recommended settings?

Hi Stefan,

This appears to be a low memory issue.

The total memory and JVM max memory is not displayed so this seem to suggest that this is not working on your system.

It looks like CipherMail was installed from the tar files and not with the deb files. The file /etc/default/djigzo might therefore be missing.

Can you check whether the file /etc/default/djigzo exists?

If not try the attached file and place it in /etc/default/djigzo.

Kind regards,

Martijn Brinkers


--
CipherMail email encryption

Email encryption with support for S/MIME, OpenPGP, PDF encryption and
secure webmail pull.

https://www.ciphermail.com

Twitter: http://twitter.com/CipherMail

# Defaults for CipherMail initscript
# sourced by /etc/init.d/djigzo
# installed at /etc/default/djigzo by the maintainer scripts

DJIGZO_HOME=/usr/local/djigzo
DJIGZO_GROUP=djigzo
DJIGZO_USER=djigzo

# 'dynamic' memory allocation
# set max memory based on the total available memory - while reserve some for 
other processes

# the percentage of total memory to allocate for the JVM
perc_allocate="0.6"

# the maximum memory to allocate. On 32 bits Linux, allowed max mem for JVM is 
little less than 2048.
max_allocate=2024

total_memory=$(free -m | grep "Mem:" | awk '{print $2}')

# localized version of free will use different output. Fallback to direct 
access to /pro/meminfo    
if [ ! $total_memory ]; then
    total_memory=$(cat /proc/meminfo | grep "MemTotal:" | awk '{print int($2 / 
1024)}')
fi

if [ $total_memory ]; then
    jvm_max_memory=$(awk 'BEGIN{allocate='$total_memory'*'$perc_allocate'; if 
(allocate > '$max_allocate') { allocate='$max_allocate' } {printf 
"%d",allocate}}')

    # Additional options that are passed to the Daemon. 
    WRAPPER_OPTS=$WRAPPER_OPTS" wrapper.java.maxmemory=$jvm_max_memory"   
else
    echo "Total memory could not be determined. Fallback to default."
fi

# the console should be set to UTF-8 in order to support multibyte characters
export LANG=en_US.UTF-8
export LC_CTYPE="en_US.UTF-8"
_______________________________________________
Users mailing list
[email protected]
https://lists.djigzo.com/lists/listinfo/users

Reply via email to