[
https://issues.apache.org/jira/browse/COUCHDB-887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13139993#comment-13139993
]
Nuutti Kotivuori commented on COUCHDB-887:
------------------------------------------
Even your explanation is not really exact. What it does is (abstractly):
- start reading from the end
- seek `bytes` backwards from the end
- seek `offset` bytes forward into the file
- read until a maximum of `bytes` bytes is returned
- stop
The result is that:
- bytes=10000&offset=1000 -> returns last 9000 bytes of log file
- bytes=9000 -> returns last 9000 bytes of log file
Like I said in the bug report, the results are 100% equivalent of just doing
'bytes - offset' on the clientside before making the request, except for the
case of 'offset => bytes', in which case EOF is returned because of the attempt
to read past file end.
In general, I'm having trouble figuring out what the original motivation behind
offset is... I mean, *if* it would seek backwards, you could theoretically get
the last 100kB of log in 1kB chunks by doing repeated queries with bytes=1024
and incrementing offset by 1024 each time - but in practice the log file grows
between each request, so there'll be lots of repeated lines and such.
> _log handler has very odd semantics for bytes/offset, probably a bug
> --------------------------------------------------------------------
>
> Key: COUCHDB-887
> URL: https://issues.apache.org/jira/browse/COUCHDB-887
> Project: CouchDB
> Issue Type: Bug
> Components: HTTP Interface
> Affects Versions: 0.11, 0.11.1, 0.11.2, 1.0, 1.0.1
> Reporter: Nuutti Kotivuori
> Priority: Trivial
> Attachments: couch_log.erl.diff
>
>
> The _log method for couchdb servers has query arguments "bytes" and "offset",
> but they seem to behave really weirdly. If offset >= bytes, an eof error is
> returned - otherwise offset is just substracted from bytes and the request
> behaves identically otherwise.
> A simple fix to the expected behaviour is included - offset counts backwards
> from bytes.
--
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