Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-1244

Data loss possible during state transfer when numOwners == 1

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.0.0.CR8, 5.0.0.FINAL
    • 5.0.0.CR7
    • Core
    • None

      I have a test (below) which creates a CacheManager and Cache, sets a value, waits a bit, creates another CacheManager and Cache, then tries to get the value from the first cache. Only it gets null instead – from both caches!

      Am new to Infinispan but discussed with Sanne who recommended to file as a bug.

      Originally discussed in community forum here.

          public void bug() throws InterruptedException {
              EmbeddedCacheManager cm1 = newCM();
              Cache c1 = cm1.getCache("x");
              c1.put("key", "value");
              Thread.sleep(3000);
              EmbeddedCacheManager cm2 = newCM();
              System.out.println(c1.get("key"));  //always says "value"
              Cache c2 = cm2.getCache("x");
              System.out.println(c1.get("key"));  //says null sometimes
              assert c1.get("key") != null : "value at cache 1 was lost";        
              cm1.stop();
              cm2.stop();
          }
      
          public EmbeddedCacheManager newCM() {
              GlobalConfiguration gc = GlobalConfiguration.getClusteredDefault();
              Configuration cfg = new Configuration().fluent()
                  .mode(Configuration.CacheMode.DIST_SYNC)
                  .hash().numOwners(1)
                  .clustering().l1().disable()
                  .build();
              return new DefaultCacheManager(gc, cfg);
          }        
      

      (BTW changing to REPL_SYNC, or numOwners(2), it works fine.)

              manik_jira Manik Surtani (Inactive)
              alex.heneveld Alex Heneveld (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: