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)

Reply via email to