Bug 1417964
| Summary: | [GSS](6.4.z) RESTEASY-992 - Client gives out of memory error, if consuming a huge multipart form via POST | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Carsten Lichy-Bittendorf <clichybi> |
| Component: | RESTEasy | Assignee: | Radovan Netuka <rnetuka> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Peter Mackay <pmackay> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.4.11 | CC: | bmaxwell, dosoudil, iweiss, jbilek, mkopecky, pjurak, rnetuka, rsigal, weli, wsiqueir |
| Target Milestone: | CR3 | ||
| Target Release: | EAP 6.4.15 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-05-19 08:08:48 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1419353, 1425120 | ||
| Attachments: | |||
|
Description
Carsten Lichy-Bittendorf
2017-01-31 14:07:16 UTC
Created attachment 1246961 [details]
Reproducer for RESTEASY-992 bug - it only happens on 2.3.x client - it is not possible to reproduce it with a 3.x client or using a browser (not a server side problem) - instructions on README.md
Reproducer for RESTEASY-992 bug - it only happens on 2.3.x client - it is not possible to reproduce it with a 3.x client or using a browser (not a server side problem) - instructions on README.md.
Notice that on RESTEASY-992, Bill stated the following:
"""
Adam, if you are using the deprecated client API, then there's nothing you can do. If you switch to 3.0.6 and use the JAX-RS 2.0 client api, then SelfExpanding isn't used unless you set the buffer size to -1.
"""
Hence why customer would like to have it on 2.3.x/EAP 6.x. A woraround is package resteasy 3.x and make the classloading configuration on jboss-deployment-structure.xml.
Thanks!
Just to add one more note, if you reproduce the problem, you will see the same (almost) stack trace from RESTEASY-992: java.lang.OutOfMemoryError: Java heap space at java.io.BufferedInputStream.fill(BufferedInputStream.java:233) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at org.jboss.resteasy.client.core.SelfExpandingBufferredInputStream.read(SelfExpandingBufferredInputStream.java:57) at java.io.FilterInputStream.read(FilterInputStream.java:107) at org.jboss.resteasy.client.core.SelfExpandingBufferredInputStream.read(SelfExpandingBufferredInputStream.java:67) at com.redhat.gss.reproducer.LargeObjectClientTest.test(LargeObjectClientTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71) at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) Created attachment 1275824 [details]
Reproducer (old and new approach tests)
Verified with EAP 6.4.15.CP.CR3 Released on May 18 as part of EAP 6.4.15. |