Hm, I just ran this test another couple of times, but am still unable to reproduce it. I noticed that your EverythingIT test run takes almost twice as much time than mine, which might hint at some timing-related problem.
Berofe adding some logging output to the server to find out what causes this problem, may I ask you to try the following: comment line 72 in oak-mk's HttpProcessor.java: 72: socket.setSoTimeout(INITIAL_SO_TIMEOUT); and re-run the test? This is just a wild guess, but perhaps the initial socket timeout of 1 second is too aggressive for the transfer of 32MB-sized blob. Dominique On May 24, 2012, at 12:14 PM, Michael Dürig wrote: > > > On 24.5.12 10:59, Dominique Pfister wrote: >> Hi Michi, >> >> And you're sure you built and installed the latest oak-mk package, and are >> not accidentally refering to an old one that doesn't contain the fix made in >> OAK-12, namely to BoundaryInputStream? > > I think so. I did svn up and mvn clean install -PintegrationTesting just > a couple of hours ago. > > Michael > >> >> Cheers >> Dominique >> >> On May 24, 2012, at 11:43 AM, Michael Dürig wrote: >> >>> >>> Hi Dominique, >>> >>> On 23.5.12 13:45, Dominique Pfister wrote: >>>> Hi Michi, >>>> >>>> On May 23, 2012, at 1:38 PM, Michael Dürig wrote: >>>> >>>>> Didn't see it again up to now. I'll keep an eye on it. Is there any log >>>>> data that would be helpful if this occurs again? >>>> >>>> Unfortunately not (yet), if it reappears, I'll add a logger to the mk >>>> subproject and log messages in the server. >>> >>> This just happens again. The output form the Maven build is >>> >>> ------------------------------------------------------- >>> T E S T S >>> ------------------------------------------------------- >>> Running org.apache.jackrabbit.mk.test.EverythingIT >>> java.io.IOException: Bad HTTP request line: 9?)c??:O?+?w >>> >>> ?c9???'td???>????a"Y??#0??ˀ??+??4¨?:?0?1 >>> >>> #`# >>> at org.apache.jackrabbit.mk.server.Request.parse(Request.java:72) >>> at >>> org.apache.jackrabbit.mk.server.HttpProcessor.process(HttpProcessor.java:100) >>> at >>> org.apache.jackrabbit.mk.server.HttpProcessor.process(HttpProcessor.java:75) >>> at org.apache.jackrabbit.mk.server.Server.process(Server.java:169) >>> at org.apache.jackrabbit.mk.server.Server$2.run(Server.java:131) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>> at java.lang.Thread.run(Thread.java:680) >>> Tests run: 72, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 15.639 >>> sec<<< FAILURE! >>> >>> Results : >>> >>> Tests in error: >>> testBlobs[1](org.apache.jackrabbit.mk.test.MicroKernelIT): >>> java.net.SocketException: Broken pipe >>> >>> Tests run: 72, Failures: 0, Errors: 1, Skipped: 0 >>> >>> >>> Stack trace from the logs: >>> >>> ------------------------------------------------------------------------------- >>> Test set: org.apache.jackrabbit.mk.test.EverythingIT >>> ------------------------------------------------------------------------------- >>> Tests run: 72, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 15.64 >>> sec<<< FAILURE! >>> testBlobs[1](org.apache.jackrabbit.mk.test.MicroKernelIT) Time elapsed: >>> 4.259 sec<<< ERROR! >>> org.apache.jackrabbit.mk.api.MicroKernelException: >>> java.net.SocketException: Broken pipe >>> at >>> org.apache.jackrabbit.mk.client.Client.toMicroKernelException(Client.java:372) >>> at org.apache.jackrabbit.mk.client.Client.write(Client.java:353) >>> at >>> org.apache.jackrabbit.mk.test.MicroKernelIT.testBlobs(MicroKernelIT.java:855) >>> at >>> org.apache.jackrabbit.mk.test.MicroKernelIT.testBlobs(MicroKernelIT.java:843) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> at >>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) >>> at >>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >>> at >>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) >>> at >>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >>> at >>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) >>> at >>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30) >>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) >>> at >>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) >>> at >>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) >>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) >>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) >>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) >>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) >>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) >>> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) >>> at org.junit.runners.Suite.runChild(Suite.java:128) >>> at org.junit.runners.Suite.runChild(Suite.java:24) >>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) >>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) >>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) >>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) >>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) >>> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) >>> at org.junit.runners.Suite.runChild(Suite.java:128) >>> at org.junit.runners.Suite.runChild(Suite.java:24) >>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) >>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) >>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) >>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) >>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) >>> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) >>> at org.junit.runners.Suite.runChild(Suite.java:128) >>> at org.junit.runners.Suite.runChild(Suite.java:24) >>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) >>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) >>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) >>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) >>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) >>> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) >>> at >>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:236) >>> at >>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:134) >>> at >>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:113) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> 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:103) >>> at >>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) >>> Caused by: java.net.SocketException: Broken pipe >>> at java.net.SocketOutputStream.socketWrite0(Native Method) >>> at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) >>> at java.net.SocketOutputStream.write(SocketOutputStream.java:136) >>> at >>> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) >>> at java.io.BufferedOutputStream.write(BufferedOutputStream.java:104) >>> at >>> org.apache.jackrabbit.mk.util.ChunkedOutputStream.writeChunk(ChunkedOutputStream.java:119) >>> at >>> org.apache.jackrabbit.mk.util.ChunkedOutputStream.write(ChunkedOutputStream.java:100) >>> at org.apache.jackrabbit.mk.util.IOUtils.copy(IOUtils.java:325) >>> at >>> org.apache.jackrabbit.mk.client.HttpExecutor.execute(HttpExecutor.java:112) >>> at org.apache.jackrabbit.mk.client.Request.execute(Request.java:118) >>> at org.apache.jackrabbit.mk.client.Request.getString(Request.java:139) >>> at org.apache.jackrabbit.mk.client.Client.write(Client.java:351) >>> ... 57 more >>> >>> >>> Michael >>
