java.lang.OutOfMemoryError: Java heap space

german

#1

Einen schönen Tag!
Seit einigen Tagen bekomme ich in regelmässigen abständen folgende Systemmail:

Cron root@smail [ -x /usr/share/univention-ox/process-listener ] && /usr/share/univention-ox/process-listener

Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3436)
at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3243)
at java.io.ObjectInputStream.readString(ObjectInputStream.java:1627)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1337)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:324)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:173)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
at $Proxy0.getData(Unknown Source)
at com.openexchange.admin.console.user.List.maincall(List.java:86)
at com.openexchange.admin.console.user.ListCore.commonfunctions(ListCore.java:118)
at com.openexchange.admin.console.user.List.(List.java:77)
at com.openexchange.admin.console.user.List.main(List.java:70)

Kann mir jemand erklären was sie zu bedeuten hat und welche Massnahmen ich ergreifen muss??

Mit freundlichem Gruß
Henry


#2

[quote=“hotten”]Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Kann mir jemand erklären was sie zu bedeuten hat und welche Massnahmen ich ergreifen muss??[/quote]
Der OX-Prozess hat nicht genug Speicher um seine Tätigkeit durchzuführen. Es sollte helfen entweder “ox/java/mem” anzupassen und/oder mehr Speicher einzubauen.

Gruß
Daniel Tröder


#3

an welcher Stellen kann ich

“ox/java/mem”

denn anpassen??


#4

“ox/java/mem” ist eine Variable der Univention Configuration Registry: Link ins Handbuch

# ucr search ox/java/mem ox/java/mem: 1024 Java -Xmx in megabyte for the Open Xchange Groupware process

# ucr set ox/java/mem=2048 Setting ox/java/mem Script: /etc/univention/templates/scripts/ox-java-mem.sh Module: ox-config Module: oxguard-config

# invoke-rc.d open-xchange restart Restarting Open-Xchange: Stopping Open-Xchange: open-xchange. Starting Open-Xchange: open-xchange.


#5

[quote=“troeder”]“ox/java/mem” ist eine Variable der Univention Configuration Registry: Link ins Handbuch

# ucr search ox/java/mem ox/java/mem: 1024 Java -Xmx in megabyte for the Open Xchange Groupware process

# ucr set ox/java/mem=2048 Setting ox/java/mem Script: /etc/univention/templates/scripts/ox-java-mem.sh Module: ox-config Module: oxguard-config

# invoke-rc.d open-xchange restart Restarting Open-Xchange: Stopping Open-Xchange: open-xchange. Starting Open-Xchange: open-xchange.[/quote]

Danke für die Info


#6

[quote=“troeder”]“ox/java/mem” ist eine Variable der Univention Configuration Registry: Link ins Handbuch

# ucr search ox/java/mem ox/java/mem: 1024 Java -Xmx in megabyte for the Open Xchange Groupware process

# ucr set ox/java/mem=2048 Setting ox/java/mem Script: /etc/univention/templates/scripts/ox-java-mem.sh Module: ox-config Module: oxguard-config

# invoke-rc.d open-xchange restart Restarting Open-Xchange: Stopping Open-Xchange: open-xchange. Starting Open-Xchange: open-xchange.[/quote]

Habe über ucr set/ox/java/mem den wert auf 4096 geändert.

Leider hat das noch keine Besserung gebracht!


#7

Bitte in der Prozessliste überprüfen, ob der Parameter -Xmx bei der JVM auch mit dem richtigen Wert angekommen ist:
zB.
25014 ? Ssl 40:10 /usr/bin/java -Dfile.encoding=UTF-8 -Dsun.net.inetaddr.ttl=3600 -Dnetworkaddress.cache.ttl=3600 -Dnetworkaddress.cache.negative.ttl=10 -serv
er -Djava.awt.headless=true -Xmx1024M -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupanc
yOnly -XX:NewRatio=3 -XX:+UseTLAB -XX:+DisableExplicitGC -Dosgi.compatibility.bootdelegation=false -XX:-OmitStackTraceInFastThrow -Dlogback.threadlocal.put.duplicate=f
alse -Djava.awt.headless=true -Dopenexchange.propdir=/opt/open-xchange/etc -jar /opt/open-xchange/bundles/org.eclipse.osgi_3.10.1.v20140909-1633.jar -configuration fil
e:/opt/open-xchange/osgi

Wenn da nicht grad tausend Benutzer drauf sind, müssten 4GB auch relativ weit reichen.


#8

Hatte mich bei 4 GB versehen.
Es sind sogar 6 GB bereitgestellt

Es handelt sich bei unserem System um eine virtuelle vmware maschine mit 16GB Hauptspeicher

00:39:14 /usr/bin/java -XX:+UseConcMarkSweepGC -Dsun.net.inetaddr.ttl=3600 -Dnetworkaddress.cache.ttl=3600 -Dnetworkaddress.cache.negative.ttl=10 -XX:+DisableExplicitGC -server -Djava.awt.headless=true -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:NewRatio=3 -XX:+UseTLAB -XX:-OmitStackTraceInFastThrow -Dlogback.threadlocal.put.duplicate=false -Xmx6144m -Djava.awt.headless=true -Dopenexchange.propdir=/opt/open-xchange/etc -jar /opt/open-xchange/bundles/org.eclipse.osgi_3.9.1.v20140110-1610.jar -configuration file:/opt/open-xchange/osgi


#9

Wir haben gerade gesehen, dass im Stacktrace eine Referenz zu Admin-Operationen auftaucht.

D.h. offenbar bekommt die JVM für für die command line Tools zu wenig Speicher.
Dann bitte -Xmx1024M (oder höher falls nicht ausreichend) in JAVA_OXCMD_OPTS in /opt/open-xchange/etc/ox-scriptconf.sh eintragen. Den anderen Wert vielleicht wieder etwas runtersetzen, je nachdem, was da sonst noch laufen soll.


#10

habe den Wert angepasst.
Er lag aktuell bei 50M

Werde am Montag ox neu durchstarten.

Gruß H. Otten