EventStore error in console, should I be concerned?

Moving from v2.0 to v3.0 rc9 and I see the following error message in the event store console

[60292,18,21:01:09.329] Error while processing message EventStore.Projections.Core.Messages.ReaderSubscriptionMessage+CommittedEventDistributed in queued handler ‘Projection Core #1’. complete TF position required

Parameter name: committedEvent

This occurs when I have a projection that listens to more than one stream and either does an emit or linkTo. The projection appears to work, the output ends up in the destination stream. No such “error” message appears with v2.0.1 Sample projection below

fromStreams([‘TestStream1’, ‘TestStream2’])

// fromStream(‘TestStream1’)

// fromStream(‘TestStream2’)

.when({

    $init: function (s,e) {

return {

count1: 0,

count2: 0

};

},

    event_type1: function (s,e) {

       s.count1 +=1;

emit(‘outStream’, ‘out_type’, { ‘Count1’ : s.count1, ‘Count2’ : s.count2 });

//linkTo(‘outStream’, e);

return s;

    },

    event_type2: function (s,e) {

s.count2 += 1;

emit(‘outStream’, ‘out_type’, { ‘Count1’ : s.count1, ‘Count2’ : s.count2 });

//linkTo(‘outStream’, e);

return s;

}

});

Hi,

When upgrading versions did you stop the projections in v2 and restart them in v3?

Cheers,

James

Hi James
Yes, I did. It is a clean fresh install of v3. I started from scratch on each test with the included dummy projection. Like I said it appears to work so far, but eventstore appears to complain a little

Bernie

Thanks Bernie,

I’ll try to reproduce this today and get back to you on it

Cheers,

James

Seeing this in 3.0.1 as well, and I don’t get anything on subscriptions on these streams. Reading works fine, but I’m not notified when writing new events.

Complete error message:

[PID:03720:014 2015.03.08 14:38:00.233 ERROR QueuedHandlerMRES ] Error while processing message EventStore.Projections.Core.Messages.ReaderSubscriptionMessage+CommittedEventDistributed in queued handler ‘Projection Core #0’.

System.ArgumentException: complete TF position required

Parameternamn: committedEvent

vid EventStore.Projections.Core.Services.Processing.EventByTypeIndexPositionTagger.IsMessageAfterCheckpointTag(CheckpointTag previous, CommittedEventDistributed committedEvent) i c:\EventStore\src\EventStore.Projections.Core\Services\Processing\EventByTypeIndexPositionTagger.cs:rad 34

vid EventStore.Projections.Core.Services.Processing.ReaderSubscriptionBase.ProcessOne(CommittedEventDistributed message) i c:\EventStore\src\EventStore.Projections.Core\Services\Processing\ReaderSubscriptionBase.cs:rad 95

vid EventStore.Projections.Core.Services.Processing.HeadingEventReader.DistributeMessage(CommittedEventDistributed message) i c:\EventStore\src\EventStore.Projections.Core\Services\Processing\HeadingEventReader.cs:rad 205

vid EventStore.Projections.Core.Services.Processing.HeadingEventReader.Handle(CommittedEventDistributed message) i c:\EventStore\src\EventStore.Projections.Core\Services\Processing\HeadingEventReader.cs:rad 97

vid EventStore.Projections.Core.Services.Processing.EventReaderCoreService.Handle(CommittedEventDistributed message) i c:\EventStore\src\EventStore.Projections.Core\Services\Processing\EventReaderCoreService.cs:rad 156

vid EventStore.Core.Bus.MessageHandler`1.TryHandle(Message message) i c:\EventStore\src\EventStore.Core\Bus\MessageHandler.cs:rad 33

vid EventStore.Core.Bus.InMemoryBus.Publish(Message message) i c:\EventStore\src\EventStore.Core\Bus\InMemoryBus.cs:rad 324

vid EventStore.Core.Bus.QueuedHandlerMRES.ReadFromQueue(Object o) i c:\EventStore\src\EventStore.Core\Bus\QueuedHandlerMRES.cs:rad 121

Example projection:

fromStreams([’$et-Confidence.Ticket.Core.Stock.Events.Version1.ArticleKeepsStockEvent’

,’$et-Confidence.Ticket.Core.Stock.Events.Version1.WarningLevelSetEvent’

,’$et-Confidence.Ticket.Core.Stock.Events.Version1.DeliveryRegistredEvent’

,’$et-Confidence.Ticket.Core.Stock.Events.Version1.StockedArticleSoldEvent’

]).when({$any:function(_,e) { linkTo(‘StreamFor–Admin-ArticleStockStatus-1690810041’, e); }});

Normally that is a ,malformed position being passed In

“but I’m not notified when writing new events.”

Please post you code in particular if you are saving a checkpoint

Should be ore clear the position is correctly formed but wrong for data

Should be ore clear the position is correctly formed but wrong for data

Sorry, does not compute :slight_smile:

I managed to fry the $et-projection trying to do a repro, will start over with new eventstore.

Eg you pass a position to the catchupsubscription “from” normally the time you get this error is when that position is “correct” but the data does not match what you have passed up.

Eg 43,43 is a valid position but may be nonsense or are you only running projections? Projections should manage this for you.

Greg

This error actually surfaced when I moved from SubscribeAll to SubscribeToStreamFrom on a projected stream, so position is a simple int, don’t see how that can be wrong (unless it’s too high, but thats not the case).

I’m getting some different behaviour in my repro code and actual project, so I’ll try to sort that out to begin with.

Not entirely clear on how to get the first event in a projected stream either. My test currently has two events 0 & 1. StreamPosition.Start is 0. I’m only getting 1 back. Passing in -1 as lastProcessed throws exception.

/Peter

Seems to be unrelated, subscriptions work, if you subscribe to the right one …

(still need advice on event 0 though)

/Peter

Position.start iirc is the enum value

https://github.com/EventStore/EventStore/blob/dev/src/EventStore.ClientAPI/StreamPosition.cs

Ah, got it, the argument is nullable…