Single linked event is not resolved


I’ve recently upgraded from ES 3.7.0 to 4.0.1 in our test environment and have just ran into something odd.

We use the system category projections and automatically resolve linked events. This has been running fine for a long time but we’ve now had a single example of an event that was not resolved. We see an instance of ResolvedEvent, but isResolved() is false, and the event property is null. This is using the Java ESJC client.

Inspecting this event in the UI shows nothing strange, it is available in the category projection and you can get the details for it.

Is there any known scenario where an individual event would silently not be resolved?



You mention it is in the client. Is it there if you use curl to the
uri that its in?? (Just thinking you might be seeing cached data)

sorry web api not client

You can issue a web request using the following.
curl -i http://localhost:2113/streams/{category-stream-id}/{event_number}/forward/1?embed=body -u admin:changeit


If you get data back in the body which resembles the original event then the resolving of the linked event worked.

Quick update if anyone else is seeing this.

Initial diagnosis was not quite correct, the event is consistently missing everywhere - from the category projection in the UI, when using curl etc.

I’ve been told this behaviour is consisent with hash colissions, we are using ES 4.0.1 but upgraded from 3.7.0 and have not re-created the indexes, and have previously seen a hash collission issue with a related stream.

I’ve tried to increase the max collission retries number from 100 to 256 and then 1024 but with no success - the event is still appearing as missing. As a next step, I will re-build indexes as 64 bit.

And finally, having rebuilt the index (as in, the event is restored - so everything described is consistent with the 32 bit has colission issue.