[ https://issues.apache.org/jira/browse/GEODE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kenneth Howe updated GEODE-6228: -------------------------------- Description: Gfsh tests of {{netstat --with-lsof}} create a large String object that contains the complete output from {{lsof}}. On smaller JVM's that are typical of those used in CI test environment, the large object causes OutOfMemoryExceptions when preparing the string for streaming from the server to the locator. This is a long standing problem that has existed from the beginning of the project. We need to have a solution for streaming large Strings between members in the cluster. Following is a typical stack trace from a test failure. {code} org.apache.geode.management.internal.cli.NetstatDUnitTest > testOutputToConsoleWithLsofForOneMember FAILED java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3332) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:649) at java.lang.StringBuilder.append(StringBuilder.java:202) at org.json.JSONStringer.string(JSONStringer.java:369) at org.json.JSONStringer.value(JSONStringer.java:262) at org.json.JSONArray.writeTo(JSONArray.java:732) at org.json.JSONStringer.value(JSONStringer.java:231) at org.json.JSONObject.writeTo(JSONObject.java:882) at org.json.JSONStringer.value(JSONStringer.java:235) at org.json.JSONObject.writeTo(JSONObject.java:882) at org.json.JSONObject.toString(JSONObject.java:849) at org.apache.geode.management.internal.cli.json.GfJsonObject.toString(GfJsonObject.java:292) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at org.apache.geode.management.internal.cli.result.LegacyCommandResult.toString(LegacyCommandResult.java:501) at org.apache.geode.management.internal.cli.NetstatDUnitTest.testOutputToConsoleWithLsofForOneMember(NetstatDUnitTest.java:111) {code} was: Gfsh tests of {{netstat --with-lsof}} create a large String object that contains the complete output from {{lsof}}. On smaller JVM's that are typical of those used in CI test environment, the large object causes OutOfMemoryExceptions when preparing the string for streaming from the server to the locator. We need to have a solution for streaming large Strings between members in the cluster. Following is a typical stack trace from a test failure. {code} org.apache.geode.management.internal.cli.NetstatDUnitTest > testOutputToConsoleWithLsofForOneMember FAILED java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3332) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:649) at java.lang.StringBuilder.append(StringBuilder.java:202) at org.json.JSONStringer.string(JSONStringer.java:369) at org.json.JSONStringer.value(JSONStringer.java:262) at org.json.JSONArray.writeTo(JSONArray.java:732) at org.json.JSONStringer.value(JSONStringer.java:231) at org.json.JSONObject.writeTo(JSONObject.java:882) at org.json.JSONStringer.value(JSONStringer.java:235) at org.json.JSONObject.writeTo(JSONObject.java:882) at org.json.JSONObject.toString(JSONObject.java:849) at org.apache.geode.management.internal.cli.json.GfJsonObject.toString(GfJsonObject.java:292) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:131) at org.apache.geode.management.internal.cli.result.LegacyCommandResult.toString(LegacyCommandResult.java:501) at org.apache.geode.management.internal.cli.NetstatDUnitTest.testOutputToConsoleWithLsofForOneMember(NetstatDUnitTest.java:111) {code} > LSOF output causes out of memory exceptions in tests > ---------------------------------------------------- > > Key: GEODE-6228 > URL: https://issues.apache.org/jira/browse/GEODE-6228 > Project: Geode > Issue Type: Bug > Components: gfsh > Affects Versions: 1.1.0 > Reporter: Kenneth Howe > Priority: Major > > Gfsh tests of {{netstat --with-lsof}} create a large String object that > contains the complete output from {{lsof}}. On smaller JVM's that are typical > of those used in CI test environment, the large object causes > OutOfMemoryExceptions when preparing the string for streaming from the server > to the locator. > This is a long standing problem that has existed from the beginning of the > project. > We need to have a solution for streaming large Strings between members in the > cluster. > Following is a typical stack trace from a test failure. > {code} > org.apache.geode.management.internal.cli.NetstatDUnitTest > > testOutputToConsoleWithLsofForOneMember FAILED > > java.lang.OutOfMemoryError: Java heap space > > at java.util.Arrays.copyOf(Arrays.java:3332) > > at > java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) > > at > java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:649) > > at java.lang.StringBuilder.append(StringBuilder.java:202) > > at org.json.JSONStringer.string(JSONStringer.java:369) > > at org.json.JSONStringer.value(JSONStringer.java:262) > > at org.json.JSONArray.writeTo(JSONArray.java:732) > > at org.json.JSONStringer.value(JSONStringer.java:231) > > at org.json.JSONObject.writeTo(JSONObject.java:882) > > at org.json.JSONStringer.value(JSONStringer.java:235) > > at org.json.JSONObject.writeTo(JSONObject.java:882) > > at org.json.JSONObject.toString(JSONObject.java:849) > > at > org.apache.geode.management.internal.cli.json.GfJsonObject.toString(GfJsonObject.java:292) > > at java.lang.String.valueOf(String.java:2994) > > at java.lang.StringBuilder.append(StringBuilder.java:131) > > at > org.apache.geode.management.internal.cli.result.LegacyCommandResult.toString(LegacyCommandResult.java:501) > > at > org.apache.geode.management.internal.cli.NetstatDUnitTest.testOutputToConsoleWithLsofForOneMember(NetstatDUnitTest.java:111) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)