Hi. I do not fully understand your problem, but you probably encountered morphing. If you call apr_bucket_read on a file bucket, it turns into two buckets. A heap bucket, that holds the buffer you read and a file bucket that has a different start offset.
You may find this helpful http://www.cs.virginia.edu/~jcw5q/talks/apache/bucketbrigades.ac2002.pdf Sincerely, Joachim
