Netflix/hollow

Hollow 5.2.x won't consume delta properly

yonatang opened this issue · 2 comments

When trying to consume a delta with Hollow 5.2.x, it will fail with the following stacktrace, while it would work just fine with Hollow 5.1.x.
See full code to reproduce here, with a minimal entity (id and value only): https://github.com/yonatang/hollow-delta-bug .

Exception in thread "main" java.lang.RuntimeException: java.io.EOFException
	at com.netflix.hollow.api.consumer.HollowConsumer.triggerRefreshTo(HollowConsumer.java:297)
	at ConsumerKt.main(Consumer.kt:23)
	at ConsumerKt.main(Consumer.kt)
Caused by: java.io.EOFException
	at java.base/java.io.DataInputStream.readFully(DataInputStream.java:202)
	at java.base/java.io.DataInputStream.readLong(DataInputStream.java:421)
	at com.netflix.hollow.core.read.HollowBlobInput.readLong(HollowBlobInput.java:237)
	at com.netflix.hollow.core.read.engine.SnapshotPopulatedOrdinalsReader.readOrdinals(SnapshotPopulatedOrdinalsReader.java:38)
	at com.netflix.hollow.core.read.engine.object.HollowObjectTypeReadState.readSnapshot(HollowObjectTypeReadState.java:97)
	at com.netflix.hollow.core.read.engine.HollowBlobReader.populateTypeStateSnapshot(HollowBlobReader.java:360)
	at com.netflix.hollow.core.read.engine.HollowBlobReader.readTypeStateSnapshot(HollowBlobReader.java:333)
	at com.netflix.hollow.core.read.engine.HollowBlobReader.readSnapshot(HollowBlobReader.java:166)
	at com.netflix.hollow.core.read.engine.HollowBlobReader.readSnapshot(HollowBlobReader.java:143)
	at com.netflix.hollow.api.client.HollowDataHolder.applyStateEngineTransition(HollowDataHolder.java:164)
	at com.netflix.hollow.api.client.HollowDataHolder.applySnapshotTransition(HollowDataHolder.java:148)
	at com.netflix.hollow.api.client.HollowDataHolder.applySnapshotPlan(HollowDataHolder.java:129)
	at com.netflix.hollow.api.client.HollowDataHolder.update(HollowDataHolder.java:120)
	at com.netflix.hollow.api.client.HollowClientUpdater.updateTo(HollowClientUpdater.java:166)
	at com.netflix.hollow.api.consumer.HollowConsumer.triggerRefreshTo(HollowConsumer.java:293)
	... 2 more

@yonatang thanks for pointing this out so quickly and with such great detail. I have addressed the issue and am releasing v5.2.3 with the fix now.

@yonatang actually v5.2.4 -- Travis CI failed Maven push.