Hey Dan,
Re:
https://issues.jboss.org/browse/ISPN-5208
I've created a unit test based on Matej's feedback to replicate the issue [1].
Debugging through it, I've discovered that some topology updates are sent with
segments that have no owner, hence when the key is hashed to that segment, it finds no
owner for it.
Looking at the logs, I see:
2015-03-24 10:29:57,855 4405 TRACE [org.infinispan.topology.CacheTopology]
(remote-thread-main-NodeC-p15-t4:) Current consistent hash's routing table: 0: 0, 1:
0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15:
0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28:
0, 29: 0, 30: 1, 31: 1, 32: 1, 33: 1, 34: 1, 35: 1, 36: 1, 37: 1, 38: 1, 39: 1, 40: 1, 41:
1, 42: 1, 43: 1, 44: 1, 45: 1, 46: 1, 47: 1, 48: 1, 49: 1, 50: 1, 51: 1, 52: 1, 53: 1, 54:
1, 55: 1, 56: 1, 57: 1, 58: 1, 59: 1
If having a segment that has no owners is valid scenario, what should we do about it?
- Should the server avoid sending such topology unless all segments have owners?
- Or should the client use round-robin as fallback when segment for key has no owner?
- Or is this a bug?
Cheers,
[1]
https://gist.github.com/galderz/17f1c4f21b4e7856aa6b
--
Galder Zamarreño
galder(a)redhat.com