hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuri (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPASYNC-13) java.io.IOException: FileChannel.size() [13534] < position [130834]. Please grow the file before writing.
Date Sun, 05 Feb 2012 17:56:53 GMT

    [ https://issues.apache.org/jira/browse/HTTPASYNC-13?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13200814#comment-13200814
] 

Yuri commented on HTTPASYNC-13:
-------------------------------

It happens all the time here but I would need some time to create a testcase I can attach
here.

Another piece of info is that I am taking a 1 year interval command and executing as hundreds
of individual download executions, one for each trading day, in one shot on a dual-core CPU
(MacBook Pro) and let the httpasyncclient asynchronously catch up with the downloads. While
executing the batch of downloads I see many that work and many that fail with the above error.


                
> java.io.IOException: FileChannel.size() [13534] < position [130834].  Please grow
the file before writing.
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: HTTPASYNC-13
>                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-13
>             Project: HttpComponents HttpAsyncClient
>          Issue Type: Bug
>    Affects Versions: 4.0-alpha3
>         Environment: OSX Leopard 64 bits, Java 1.6.
>            Reporter: Yuri
>
> I am using httpasyncclient to download many files assynchronously. Each download get's
a unique temp file. For some of the download in the series this is what I see:
> 00:36:00.343 |-ERROR [I/O dispatcher 3] [   c.b.q.h.HttpDownloader] - Could not download
http://www.blah.com/files/file20110101.ex_
> java.io.IOException: FileChannel.size() [13534] < position [130834].  Please grow
the file before writing.
> 	at org.apache.http.impl.nio.codecs.LengthDelimitedDecoder.transfer(LengthDelimitedDecoder.java:145)
~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.nio.client.methods.ZeroCopyConsumer.onContentReceived(ZeroCopyConsumer.java:75)
~[httpasyncclient-4.0-alpha3.jar:4.0-alpha3]
> 	at org.apache.http.nio.protocol.AbstractAsyncResponseConsumer.consumeContent(AbstractAsyncResponseConsumer.java:67)
~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.client.DefaultAsyncRequestDirector.consumeContent(DefaultAsyncRequestDirector.java:329)
~[httpasyncclient-4.0-alpha3.jar:4.0-alpha3]
> 	at org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler.inputReady(HttpAsyncClientProtocolHandler.java:226)
~[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.client.LoggingClientProtocolHandler.inputReady(LoggingClientProtocolHandler.java:98)
[httpasyncclient-4.0-alpha3.jar:4.0-alpha3]
> 	at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:175)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.DefaultClientIODispatch.onInputReady(DefaultClientIODispatch.java:118)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.DefaultClientIODispatch.onInputReady(DefaultClientIODispatch.java:49)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.AbstractIODispatch.inputReady(AbstractIODispatch.java:113)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:160) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:320)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106) [httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:599)
[httpcore-nio-4.2-alpha2.jar:4.2-alpha2]
> 	at java.lang.Thread.run(Thread.java:680) [na:1.6.0_29]
> This is what I am doing:
> 		HttpAsyncRequestProducer download = HttpAsyncMethods.createGet(uri);
> 		getHttpClient().execute(download, new ZeroCopyConsumer<Void>(file) {
> 				// overridden failed() and process()
> 		}
> And the response is coming with an explicit Content-Length header, which seems to make
the framework select the LengthDelimitedDecoder to decode the response. Now even if the server
is reporting a wrong length in Content-Length, shouldnt the httpasyncclient simply produce
a file of that size (even if not the complete file)? 
> Could this be caused by the server reporting the wrong length? In any case, it seems
that the code should never throw an exception here. It should 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message