On Apr 14, 2013, at 7:18 AM, Robert Newson <[email protected]> wrote:

> Hi Stephen,
> 
> Are you passing a since=N parameter when you reconnect to the changes
> feed? The feed=eventsource is, I think, only changing the format of
> our changes feed to suit the EventSource spec, it doesn't change the
> fundamentals.

I'll do some specific tests for all cases.  

But for what I was doing, no, I wasn't specifying since.  I would expect the 
fundamentals to be the same as well.  What I was see is that even without 
`since` given, no changes would come through until that second source was 
added.  Once the second source is added, then all sources periodically dump.

> B.
> 
> On 14 April 2013 00:53, Stephen Bartell <[email protected]> wrote:
>> I meant to post this in @dev...
>> 
>> Begin forwarded message:
>> 
>>> From: Stephen Bartell <[email protected]>
>>> Subject: EventSource periodically dumps db contents.
>>> Date: April 12, 2013 12:45:06 AM PDT
>>> To: "[email protected]" <[email protected]>
>>> 
>>> Hi all,  I've been playing around with EventSource _changes and theres 
>>> something that doesn't quite make sense.
>>> 
>>> I'm doing all this from Chrome console on OSX localhost [email protected].
>>> 
>>> 1)
>>> var connectionSource = new 
>>> EventSource('/cdb/connection/_changes?feed=eventsource')
>>> 
>>> 2)
>>> var connresults = []
>>> 
>>> 3)
>>> var connListener = function (e) {
>>>  connresults.push(JSON.parse(e.data))
>>> }
>>> 
>>> 4)
>>> connectionSource.addEventListener('message', connListener, false)
>>> 
>>> I make sure not to trigger any changes on connection database while I set 
>>> up a second source.
>>> `connresults` is empty at this point.  As I expect.
>>> 
>>> 5)
>>> var endpointsSource = new 
>>> EventSource('/cdb/endpoints/_changes?feed=eventsource')
>>> 
>>> 6)
>>> var epresults = []
>>> 
>>> 7)
>>> var epListener = function (e) {
>>>  epresults.push(JSON.parse(e.data))
>>> }
>>> 
>>> 8)
>>> endpointsSource.addEventListener('message', epListener, false)
>>> 
>>> Heres the bug.
>>> No changes were triggered on __either__ database.
>>> `connresults` is loaded with _all_docs of connection database.
>>> `epresults` is loaded with the _all_docs of the endpoints database.
>>> 
>>> And over time, these numbers multiply.  For example, connections db really 
>>> only 233 docs in it and endpoints database really only has 10 docs in it.  
>>> But over the course of writing this email, `connresults` has 1872 things in 
>>> it and `epresults` has 60 things in it.
>>> 
>>> It seems like right after I add that second source, something crashes and 
>>> both sources begin dumping periodically.
>>> 
>>> Thanks,
>>> Stephen
>> 

Reply via email to