A little more info. I change couch to include an 'error' element when
this happens (see COUCHDB-662 for the patch), and bumped the log-level
to debug, then reproduced the problem.
My Python code which occasionally triggers this problem reports the
returned row as:
{u'value':
{u'_rev': u'1-6ace70202b3eba6f7a7190d4af65b918', ...},
u'error': u'not_found',
u'id':
u'rc!email.IjAwMTYzNjQ2Y2MyODI3OTBiMzA0NmZiYzJhYzdAZ29vZ2xlbWFpbC5jb20i!rd.msg.conversation',
u'key': [...],
u'doc': None
}
Note the new 'error' element. Immediately after this happens, I open
the doc in futon and see the document exists with a _rev of
1-6ace70202b3eba6f7a7190d4af65b918 (ie, exactly as above). It seems it
should be 'impossible' for things to get into this state - the doc
existed when the view was updated, and seems to exist in that same form now.
The couch log reports:
[Sat, 20 Feb 2010 03:56:18 GMT] [debug] [<0.2076.0>] Include Doc:
<<"rc!email.IjAwMTYzNjQ2Y2MyODI3OTBiMzA0NmZiYzJhYzdAZ29vZ2xlbWFpbC5jb20i!rd.msg.conversation">>
nil
So as we suspected, when couch is including the documents for a view, it
is asking for the latest revision - but as mentioned above, the latest
revision seems to be the same revision the view was created with.
Is there anything else I can do to help get to the bottom of this?
Thanks,
Mark