Evening
So I setup a dump for the next time it happened however it failed with
permissions on the folder I used.
First error
21:10:19.472 [http-nio-8080-exec-6] ERROR o.a.g.rest.RESTExceptionWrapper -
Unexpected internal error:
### Error querying database. Cause:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'AND user_id = 19
AND permission = 'READ';
SELECT primary_co' at line 15
### The error may exist in
org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT guacamole_connection.connection_id,
connection_name, parent_id, protocol,
max_connections, max_connections_per_user,
proxy_hostname, proxy_port, proxy_encryption_method
FROM guacamole_connection JOIN guacamole_connection_permission ON
guacamole_connection_permission.connection_id =
guacamole_connection.connection_id WHERE
guacamole_connection.connection_id IN AND user_id = ?
AND permission = 'READ'; SELECT primary_connection_id,
guacamole_sharing_profile.sharing_profile_id FROM
guacamole_sharing_profile JOIN guacamole_sharing_profile_permission ON
guacamole_sharing_profile_permission.sharing_profile_id =
guacamole_sharing_profile.sharing_profile_id WHERE
primary_connection_id IN AND user_id = ?
AND permission = 'READ';
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'AND user_id = 19
AND permission = 'READ';
Second Error
java.lang.OutOfMemoryError: Java heap space
Dumping heap to /home/NOTREALUSER/java_pid15204.hprof ...
Unable to create /home/NOTREALUSER/java_pid15204.hprof: Permission denied
Aug 07, 2017 9:05:07 PM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor
doRun
SEVERE:
java.lang.OutOfMemoryError: Java heap space
at sun.util.resources.TimeZoneNames.getContents(TimeZoneNames.java:285)
at
sun.util.resources.OpenListResourceBundle.loadLookup(OpenListResourceBundle.java:137)
at
sun.util.resources.OpenListResourceBundle.loadLookupTablesIfNecessary(OpenListResourceBundle.java:128)
at
sun.util.resources.OpenListResourceBundle.handleKeySet(OpenListResourceBundle.java:96)
at java.util.ResourceBundle.containsKey(ResourceBundle.java:1807)
at
sun.util.locale.provider.LocaleResources.getTimeZoneNames(LocaleResources.java:263)
at
sun.util.locale.provider.TimeZoneNameProviderImpl.getDisplayNameArray(TimeZoneNameProviderImpl.java:124)
at
sun.util.locale.provider.TimeZoneNameProviderImpl.getDisplayName(TimeZoneNameProviderImpl.java:99)
at
sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getName(TimeZoneNameUtility.java:240)
at
sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getObject(TimeZoneNameUtility.java:198)
at
sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getObject(TimeZoneNameUtility.java:184)
at
sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObjectImpl(LocaleServiceProviderPool.java:281)
at
sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObject(LocaleServiceProviderPool.java:265)
at
sun.util.locale.provider.TimeZoneNameUtility.retrieveDisplayNamesImpl(TimeZoneNameUtility.java:166)
at
sun.util.locale.provider.TimeZoneNameUtility.retrieveDisplayName(TimeZoneNameUtility.java:137)
at java.util.TimeZone.getDisplayName(TimeZone.java:400)
at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1271)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:966)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
at java.text.DateFormat.format(DateFormat.java:345)
at
org.apache.tomcat.util.http.FastHttpDateFormat.getCurrentDate(FastHttpDateFormat.java:117)
at
org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:1534)
at
org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739)
at org.apache.coyote.Response.action(Response.java:179)
at org.apache.coyote.Response.sendHeaders(Response.java:350)
at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:335)
at
org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:317)
at
org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:110)
at
com.sun.jersey.spi.container.servlet.WebComponent$Writer.flush(WebComponent.java:315)
at
com.sun.jersey.spi.container.ContainerResponse$CommittingOutputStream.flush(ContainerResponse.java:145)
at
org.codehaus.jackson.impl.Utf8Generator.flush(Utf8Generator.java:1085)
at
org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1606)
Followed by
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
I will adjust the dump for next time.
As noted the machine has 4GB of ram and around 7 users with 3-4 concurrent
connections.
In 4 months on 0.9.12 I experienced an issue once which required blipping
tomcat but did not delve into it so cannot confirm if the issue was related.
Looking at the glaring error it appears to be JDBC/MYSQL related.
To give some knowledge I did upgrade the database schema and also downloaded
the 5.1.43 JDBC driver.
Anyway it is late here in Australia and I need to get some sleep.
Will update tomorrow with MYSQL version etc if requested.
Cheers
JAMES FRASER • MICROSOFT SYSTEMS ENGINEER
-----Original Message-----
From: Mike Jumper [mailto:[email protected]]
Sent: Friday, 4 August 2017 12:05 PM
To: [email protected]
Subject: Re: Server Out Of Memory
On Thu, Aug 3, 2017 at 6:54 PM, Mike Jumper <[email protected]> wrote:
> On Thu, Aug 3, 2017 at 6:50 PM, James Fraser
> <[email protected]> wrote:
>> Hi Nick
>>
>> Thanks for your response.
>>
>> After sending off this message I did some digging.
>>
>> I am using JDBC and LDAP auth together.
>>
>> I was digging around the Server Heap error and think that you are on
>> the right track with Xmx value.
>>
>> It was out of the box (from apt-get) set to -Xmx128m, I have adjusted
>> this to 1024m for now and will monitor
>>
>> We concurrently have around 7 users, each user may be accessing 4-5
>> VM’s at once.
>>
>
> Would you be able to take a heap dump to see what is using up so much space?
>
> 7 users is relatively light, and having to manually increase the heap
> shouldn't be necessary in practice. In past versions of Java, they can
> cause more problems than they solve (lengthy GCs), and recent versions
> of Java will ignore these options.
>
Correction: it's permgen that vanished in recent versions of Java, not heap
limits.
My other points still stand though. ;)