[
https://issues.apache.org/jira/browse/COUCHDB-1289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157464#comment-13157464
]
Filipe Manana commented on COUCHDB-1289:
----------------------------------------
Looks good Bob, only a small regression compared to the previous versions,
which is:
The last time a row was sent is never reset to "now()" once the filter function
returns true. Basically the maybe_timeout(true, ...) function clause is never
used in this new version.
This could cause unnecessary timeouts when the filter functions returns false
several times in a row, then returns true (1 or more times in a row) and then
starts returning false again. Here's what I mean:
https://github.com/fdmanana/couchdb/commit/31c80e34875932969716791b4b8adf374d240821
A test for this case would be awesome :)
Thanks for working on this, this has been affecting many users for a long time
(when doing filtered replications).
> heartbeats skipped when continuous changes feed filter function produces no
> results
> -----------------------------------------------------------------------------------
>
> Key: COUCHDB-1289
> URL: https://issues.apache.org/jira/browse/COUCHDB-1289
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core
> Reporter: Bob Dionne
> Assignee: Bob Dionne
> Priority: Minor
> Attachments: 0001-Ensure-heartbeats-are-not-skipped.patch,
> 0002-Failing-etap-for-heartbeats-skipped.patch
>
>
> if the changes feed has a filter function that produces no results,
> db_updated messages will still be sent and the heartbeat timeout will never
> be reached.
--
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