Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Groovy Scripts use to many memory (out of memory) and don't release it (Bob Swift Scripting)

Steffen Stamprath
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 4, 2017

We use many groovy scripts in confluence. We updated to the new confluence version (from 2.10 to 5.9.8). After this update the old loading mechanic to load the sql connection in groovy script doesn't work. So we decided to use the class loader (See https://bobswift.atlassian.net/browse/SCRP-148)

But now we must restart the system two times a day. Because out of memory:

image.png

 

We tested many calls to a normal confluence page. Very less memory usage. The same when we use a simple groovy script without loading classes with the class loader. Only when we use the class loader it is an problem.

*What can we do to release the memory of groovy scripts?*

I tried this: https://bobswift.atlassian.net/browse/SCRP-134. But no improvement.

Here my code to load the oracle connection it:

URL[] jarFiles = new URL[1];
jarFiles[0] = new URL("jar:file:/opt/atlassian/confluence/lib/ojdbc6.jar!/");
//The following two lines needs many memory and don't release it (close or finalise doesn't helps)
def classLoader = URLClassLoader.newInstance(jarFiles, ClassLoader.getSystemClassLoader());
Driver driver = (Driver) Class.forName('oracle.jdbc.driver.OracleDriver', true, classLoader).newInstance()
def properties = new Properties()
properties.setProperty('user', userName)
properties.setProperty('password', password)
def connection = driver.connect(connectString, properties)
def result = Sql.newInstance(connection);
driver.finalize()
classLoader.finalize()
return result


Thank you!

1 answer

0 votes
Bob Swift OSS (Bob Swift Atlassian Apps)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 5, 2017

This is covered by SCRP-206.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events