[ 
https://issues.apache.org/jira/browse/COUCHDB-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784043#action_12784043
 ] 

Roger Binns commented on COUCHDB-582:
-------------------------------------

The code I attached reproduces the problem.  The important thing is that not 
only should be there changes happening but those changes must also be part of 
the view and the view must be accessed.  The reproduction code includes 
comments at the top.  Briefly a background thread monitors the changes printing 
them out and posting to a message queue.  A foreground thread waits a few 
seconds for a message queue item - if there is one then it reads the view, else 
it makes a change.

Output is shown below.  If you comment out the two lines accessing the view at 
the bottom of the file then the output is always correct.  Each changes line 
shows what the changes call returned.  Since the filter always returns true and 
we made an appropriate change there should always be an item listed.  The bug 
is that some of the time no changed item is given (as though the filter 
returned false).  Here is one run where every alternate change did not give an 
item:

$ python bug582.py
+one
changes {'last_seq': 2, 'results': [{'changes': [{'rev': 
'1-cc2a517fa3e1a5b6ae9e3fbea460b9b8'}], 'id': 'one', 'seq': 2}]}
+two
changes {'last_seq': 3, 'results': []}
 two
changes {'last_seq': 4, 'results': [{'changes': [{'rev': 
'2-a197bfde810e37b0a88f74a4ae038565'}], 'id': 'two', 'seq': 4}]}
 two
changes {'last_seq': 5, 'results': []}
 one
changes {'last_seq': 6, 'results': [{'changes': [{'rev': 
'2-39ea5c560504b84520606003e3d991f6'}], 'id': 'one', 'seq': 6}]}
-one
changes {'last_seq': 7, 'results': []}
-two
changes {'last_seq': 8, 'results': [{'deleted': True, 'changes': [{'rev': 
'4-be0fbd62ef4241c2b45693002a808fbb'}], 'id': 'two', 'seq': 8}]}

I then did another run a few seconds later (exact same parameters) where there 
is only one "failure":

$ python bug582.py
+one
changes {'last_seq': 2, 'results': [{'changes': [{'rev': 
'1-cc2a517fa3e1a5b6ae9e3fbea460b9b8'}], 'id': 'one', 'seq': 2}]}
+two
changes {'last_seq': 3, 'results': [{'changes': [{'rev': 
'1-3ca2f01d11f16acffd9bfc740e4c963b'}], 'id': 'two', 'seq': 3}]}
 two
changes {'last_seq': 4, 'results': [{'changes': [{'rev': 
'2-7faeecd5faa47385c730933f13fb7872'}], 'id': 'two', 'seq': 4}]}
 two
changes {'last_seq': 5, 'results': []}
 one
changes {'last_seq': 6, 'results': [{'changes': [{'rev': 
'2-625ac20a7b3813db296c2e6cec6337bf'}], 'id': 'one', 'seq': 6}]}
-one
changes {'last_seq': 7, 'results': [{'deleted': True, 'changes': [{'rev': 
'3-4d6a3081511d2f8e7daec512afca1c11'}], 'id': 'one', 'seq': 7}]}
-two
changes {'last_seq': 8, 'results': [{'deleted': True, 'changes': [{'rev': 
'4-d47e864a9fbb905fdd86c84a04bacebb'}], 'id': 'two', 'seq': 8}]}

In general each run gives different results.

> _changes filter missing updates
> -------------------------------
>
>                 Key: COUCHDB-582
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-582
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>            Reporter: Chris Anderson
>            Assignee: Chris Anderson
>             Fix For: 0.11
>
>         Attachments: bug582.py
>
>
> reported on the user mailing list: 
> http://mail-archives.apache.org/mod_mbox/couchdb-user/200911.mbox/%[email protected]%3e
> I know there is work to be done on the filter mechanism (specifically around 
> process reuse and concurrency)
> The current implementation requires a process per connected user. This should 
> be not that hard to patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to