Aleksey Plekhanov created IGNITE-23578:
------------------------------------------
Summary: Affinity cache for lastAffinityChangedTopologyVersion is
cleared
Key: IGNITE-23578
URL: https://issues.apache.org/jira/browse/IGNITE-23578
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
Assignee: Aleksey Plekhanov
Map {{GridCachePartitionExchangeManager.lastAffTopVers}} stores mapping from
all topology versions to corresponding last affinity change topology versions.
Some topology versions do not change affinity (for example client node
left/join). After IGNITE-21478 we can store affinity assignment as non-shallow
instance for events caused by client node join/left. This change allows to
delete affinity assignment in cache for {{lastAffinityChangedTopologyVersion}}
and breaks some functionality. For example:
{code:java}
@Override protected IgniteConfiguration getConfiguration(String
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setCacheConfiguration(new CacheConfiguration<>(DEFAULT_CACHE_NAME)
.setIndexedTypes(Integer.class, String.class));
}
@Test
public void testAffinityCache() throws Exception {
startGrid(0);
for (int i = 0; i < 300; i++) {
startClientGrid(1);
stopGrid(1);
}
IgniteCache<Integer, String> cache = grid(0).cache(DEFAULT_CACHE_NAME);
cache.put(0, "0");
assertEquals(1, cache.query(new SqlFieldsQuery("SELECT * FROM
String")).getAll().size());
}
{code}
This test fails with the exception:
{noformat}
java.lang.IllegalStateException: Getting affinity for too old topology version
that is already out of history (try to increase 'IGNITE_AFFINITY_HISTORY_SIZE'
system property) [locNode=TcpDiscoveryNode
[id=37e9600b-0e6d-4d1b-a3f3-05897eb00000, consistentId=127.0.0.1:47500,
addrs=ArrayList [127.0.0.1], sockAddrs=HashSet [/127.0.0.1:47500],
discPort=47500, order=1, intOrder=1, loc=true,
ver=2.17.0#20241030-sha1:00000000, isClient=false], grp=default,
topVer=AffinityTopologyVersion [topVer=1, minorTopVer=0],
lastAffChangeTopVer=AffinityTopologyVersion [topVer=1, minorTopVer=0],
head=AffinityTopologyVersion [topVer=601, minorTopVer=0],
history=[AffinityTopologyVersion [topVer=503, minorTopVer=0],
AffinityTopologyVersion [topVer=504, minorTopVer=0], AffinityTopologyVersion
[topVer=505, minorTopVer=0], AffinityTopologyVersion [topVer=506,
minorTopVer=0], AffinityTopologyVersion [topVer=507, minorTopVer=0],
AffinityTopologyVersion [topVer=508, minorTopVer=0], AffinityTopologyVersion
[topVer=509, minorTopVer=0], AffinityTopologyVersion [topVer=510,
minorTopVer=0], AffinityTopologyVersion [topVer=511, minorTopVer=0],
AffinityTopologyVersion [topVer=512, minorTopVer=0], AffinityTopologyVersion
[topVer=513, minorTopVer=0], AffinityTopologyVersion [topVer=514,
minorTopVer=0], AffinityTopologyVersion [topVer=515, minorTopVer=0],
AffinityTopologyVersion [topVer=516, minorTopVer=0], AffinityTopologyVersion
[topVer=517, minorTopVer=0], AffinityTopologyVersion [topVer=518,
minorTopVer=0], AffinityTopologyVersion [topVer=519, minorTopVer=0],
AffinityTopologyVersion [topVer=520, minorTopVer=0], AffinityTopologyVersion
[topVer=521, minorTopVer=0], AffinityTopologyVersion [topVer=522,
minorTopVer=0], AffinityTopologyVersion [topVer=523, minorTopVer=0],
AffinityTopologyVersion [topVer=524, minorTopVer=0], AffinityTopologyVersion
[topVer=525, minorTopVer=0], AffinityTopologyVersion [topVer=526,
minorTopVer=0], AffinityTopologyVersion [topVer=527, minorTopVer=0],
AffinityTopologyVersion [topVer=528, minorTopVer=0], AffinityTopologyVersion
[topVer=529, minorTopVer=0], AffinityTopologyVersion [topVer=530,
minorTopVer=0], AffinityTopologyVersion [topVer=531, minorTopVer=0],
AffinityTopologyVersion [topVer=532, minorTopVer=0], AffinityTopologyVersion
[topVer=533, minorTopVer=0], AffinityTopologyVersion [topVer=534,
minorTopVer=0], AffinityTopologyVersion [topVer=535, minorTopVer=0],
AffinityTopologyVersion [topVer=536, minorTopVer=0], AffinityTopologyVersion
[topVer=537, minorTopVer=0], AffinityTopologyVersion [topVer=538,
minorTopVer=0], AffinityTopologyVersion [topVer=539, minorTopVer=0],
AffinityTopologyVersion [topVer=540, minorTopVer=0], AffinityTopologyVersion
[topVer=541, minorTopVer=0], AffinityTopologyVersion [topVer=542,
minorTopVer=0], AffinityTopologyVersion [topVer=543, minorTopVer=0],
AffinityTopologyVersion [topVer=544, minorTopVer=0], AffinityTopologyVersion
[topVer=545, minorTopVer=0], AffinityTopologyVersion [topVer=546,
minorTopVer=0], AffinityTopologyVersion [topVer=547, minorTopVer=0],
AffinityTopologyVersion [topVer=548, minorTopVer=0], AffinityTopologyVersion
[topVer=549, minorTopVer=0], AffinityTopologyVersion [topVer=550,
minorTopVer=0], AffinityTopologyVersion [topVer=551, minorTopVer=0],
AffinityTopologyVersion [topVer=552, minorTopVer=0], AffinityTopologyVersion
[topVer=553, minorTopVer=0], AffinityTopologyVersion [topVer=554,
minorTopVer=0], AffinityTopologyVersion [topVer=555, minorTopVer=0],
AffinityTopologyVersion [topVer=556, minorTopVer=0], AffinityTopologyVersion
[topVer=557, minorTopVer=0], AffinityTopologyVersion [topVer=558,
minorTopVer=0], AffinityTopologyVersion [topVer=559, minorTopVer=0],
AffinityTopologyVersion [topVer=560, minorTopVer=0], AffinityTopologyVersion
[topVer=561, minorTopVer=0], AffinityTopologyVersion [topVer=562,
minorTopVer=0], AffinityTopologyVersion [topVer=563, minorTopVer=0],
AffinityTopologyVersion [topVer=564, minorTopVer=0], AffinityTopologyVersion
[topVer=565, minorTopVer=0], AffinityTopologyVersion [topVer=566,
minorTopVer=0], AffinityTopologyVersion [topVer=567, minorTopVer=0],
AffinityTopologyVersion [topVer=568, minorTopVer=0], AffinityTopologyVersion
[topVer=569, minorTopVer=0], AffinityTopologyVersion [topVer=570,
minorTopVer=0], AffinityTopologyVersion [topVer=571, minorTopVer=0],
AffinityTopologyVersion [topVer=572, minorTopVer=0], AffinityTopologyVersion
[topVer=573, minorTopVer=0], AffinityTopologyVersion [topVer=574,
minorTopVer=0], AffinityTopologyVersion [topVer=575, minorTopVer=0],
AffinityTopologyVersion [topVer=576, minorTopVer=0], AffinityTopologyVersion
[topVer=577, minorTopVer=0], AffinityTopologyVersion [topVer=578,
minorTopVer=0], AffinityTopologyVersion [topVer=579, minorTopVer=0],
AffinityTopologyVersion [topVer=580, minorTopVer=0], AffinityTopologyVersion
[topVer=581, minorTopVer=0], AffinityTopologyVersion [topVer=582,
minorTopVer=0], AffinityTopologyVersion [topVer=583, minorTopVer=0],
AffinityTopologyVersion [topVer=584, minorTopVer=0], AffinityTopologyVersion
[topVer=585, minorTopVer=0], AffinityTopologyVersion [topVer=586,
minorTopVer=0], AffinityTopologyVersion [topVer=587, minorTopVer=0],
AffinityTopologyVersion [topVer=588, minorTopVer=0], AffinityTopologyVersion
[topVer=589, minorTopVer=0], AffinityTopologyVersion [topVer=590,
minorTopVer=0], AffinityTopologyVersion [topVer=591, minorTopVer=0],
AffinityTopologyVersion [topVer=592, minorTopVer=0], AffinityTopologyVersion
[topVer=593, minorTopVer=0], AffinityTopologyVersion [topVer=594,
minorTopVer=0], AffinityTopologyVersion [topVer=595, minorTopVer=0],
AffinityTopologyVersion [topVer=596, minorTopVer=0], AffinityTopologyVersion
[topVer=597, minorTopVer=0], AffinityTopologyVersion [topVer=598,
minorTopVer=0], AffinityTopologyVersion [topVer=599, minorTopVer=0],
AffinityTopologyVersion [topVer=600, minorTopVer=0], AffinityTopologyVersion
[topVer=601, minorTopVer=0]], maxNonShallowHistorySize=25]
at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:841)
~[classes/:?]
at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:783)
~[classes/:?]
at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.primaryPartitions(GridAffinityAssignmentCache.java:704)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.primaryPartitions(GridCacheAffinityManager.java:362)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.h2.twostep.PartitionReservationManager.reservePartitions(PartitionReservationManager.java:205)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest0(GridMapQueryExecutor.java:374)
[classes/:?]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest(GridMapQueryExecutor.java:281)
[classes/:?]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.onMessage(IgniteH2Indexing.java:1668)
[classes/:?]
...
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)