ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Chugunov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-7330) When client connects during cluster activation process it hangs on obtaining cache proxy
Date Thu, 28 Dec 2017 12:48:02 GMT
Sergey Chugunov created IGNITE-7330:
---------------------------------------

             Summary: When client connects during cluster activation process it hangs on obtaining
cache proxy
                 Key: IGNITE-7330
                 URL: https://issues.apache.org/jira/browse/IGNITE-7330
             Project: Ignite
          Issue Type: Bug
            Reporter: Sergey Chugunov
            Priority: Critical
             Fix For: 2.4


The test below reproduces the issue:

{noformat}
    public void testClientJoinWhenActivationInProgress() throws Exception {
        Ignite srv = startGrids(5);

        srv.active(true);

        srv.createCaches(Arrays.asList(cacheConfigurations1()));

        Map<Integer, Integer> cacheData = new LinkedHashMap<>();

        for (int i = 1; i <= 100; i++) {
            for (CacheConfiguration ccfg : cacheConfigurations1()) {
                srv.cache(ccfg.getName()).put(-i, i);

                cacheData.put(-i, i);
            }
        }

        stopAllGrids();

        srv = startGrids(5);

        final CountDownLatch clientStartLatch = new CountDownLatch(1);

        IgniteInternalFuture clStartFut = GridTestUtils.runAsync(new Runnable() {
            @Override public void run() {
                try {
                    clientStartLatch.await();

                    Thread.sleep(10);

                    client = true;

                    Ignite cl = startGrid("client0");

                    IgniteCache<Object, Object> atomicCache = cl.cache(CACHE_NAME_PREFIX
+ '0');
                    IgniteCache<Object, Object> txCache = cl.cache(CACHE_NAME_PREFIX
+ '1');

                    assertEquals(100, atomicCache.size());
                    assertEquals(100, txCache.size());
                }
                catch (Exception e) {
                    log.error("Error occurred", e);
                }
            }
        }, "client-starter-thread");

        clientStartLatch.countDown();
        srv.active(true);

        clStartFut.get();
    }
{noformat}

Expected behavior: test finishes successfully.

Actual behavior: test hangs on waiting for client start future to complete while "client-started-thread"
will be hanging on obtaining a reference to the first cache.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message