11 Replies Latest reply on Oct 26, 2010 10:13 AM by craigching

    Infinispan hanging at program end

    craigching

      Hi all,

       

      New to infinispan and trying diligently to ensure I have everything set right.  When I run the following code:

       

       

       

      try {
      System.out.println("Loading cache...");
      EmbeddedCacheManager cache_mgr = new DefaultCacheManager("repl-cache.xml");
      cache_mgr.start();
      Cache<String, User> cache = cache_mgr.getCache("Users");
      cache.start();
      QueryHelper helper = new QueryHelper(cache, new Properties(), User.class);
      System.out.println("Starting test.");
      long total_begin = System.currentTimeMillis();
      long begin = total_begin;
      cache.startBatch();
      for (int i = 0; i < 10000; ++i) {
      String username = "User" + i;
      User u = new User(username, (i%2==0), username + " full name", username + "@test.com", "mypassword");
      cache.put(u.getUsername(), u);
      if ((i + 1) % 1000 == 0) {
      cache.endBatch(true);
      System.out.println((i + 1) + " users in the cache.  " + (System.currentTimeMillis() - begin) + " ms.");
      begin = System.currentTimeMillis();
      cache.startBatch();
      }
      }
      System.out.println("Total time for test: " + (System.currentTimeMillis() - total_begin) + " ms.");
      System.out.println("Cache size: " + cache.size());
      cache.stop();
      cache_mgr.stop();
      System.out.println("Cache is stopped, exiting.");
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      {code}

      import java.io.IOException; import java.util.Properties; import org.infinispan.Cache; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.query.backend.QueryHelper; public class InfinispanTest {            static public void main(String [] args) {           try {                System.out.println("Loading cache...");                EmbeddedCacheManager cache_mgr = new DefaultCacheManager("repl-cache.xml");                cache_mgr.start();                Cache<String, User> cache = cache_mgr.getCache("Users");                cache.start();                QueryHelper helper = new QueryHelper(cache, new Properties(), User.class);                System.out.println("Starting test.");                long total_begin = System.currentTimeMillis();                long begin = total_begin;                cache.startBatch();                for (int i = 0; i < 10000; ++i) {                     String username = "User" + i;                     User u = new User(username, (i%2==0), username + " full name", username + "@test.com", "mypassword");                     cache.put(u.getUsername(), u);                     if ((i + 1) % 1000 == 0) {                          cache.endBatch(true);                          System.out.println((i + 1) + " users in the cache.  " + (System.currentTimeMillis() - begin) + " ms.");                          begin = System.currentTimeMillis();                          cache.startBatch();                     }                }                System.out.println("Total time for test: " + (System.currentTimeMillis() - total_begin) + " ms.");                System.out.println("Cache size: " + cache.size());                cache.stop();                cache_mgr.stop();                System.out.println("Cache is stopped, exiting.");           } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();           }      } }

      {code}

      and here is the User class:

      {code}

      import java.io.Serializable;

       

      import org.hibernate.search.annotations.Field;

      import org.hibernate.search.annotations.Indexed;

      import org.hibernate.search.annotations.ProvidedId;

      import org.hibernate.search.annotations.Store;

       

      @ProvidedId

      @Indexed(index="UsersIndex")

      public class User implements Serializable {

       

          /**

           *

           */

          private static final long serialVersionUID = 4513212371105525165L;

       

          @Field(store=Store.YES)

          private String username;

          @Field(store=Store.YES)

          private boolean enabled = false;

          @Field(store=Store.YES)

          private String fullName;

          @Field(store=Store.YES)

          private String email;

          private String password;

          private String storedPassword;

       

          public User(String username, boolean enabled, String fullName, String email, String password) {

              this.username = username;

              this.enabled = enabled;

              this.fullName = fullName;

              this.email = email;

              this.password = password;

          }

       

          public String getUsername() {

              return username;

          }

       

          public boolean isEnabled() {

              return enabled;

          }

       

          public String getFullName() {

              return fullName;

          }

       

          public String getEmail() {

              return email;

          }

       

          public String getPassword() {

              return password;

          }

       

          public String getStoredPassword() {

              return this.storedPassword;

          }

       

          public void setUsername(String username) {

              this.username = username;

          }

       

          public void setEnabled(boolean enabled) {

              this.enabled = enabled;

          }

       

          public void setFullName(String fullName) {

              this.fullName = fullName;

          }

       

          public void setEmail(String email) {

              this.email = email;

          }

       

          public void setPassword(String password) {

              this.password = password;

          }

       

          public void setStoredPassword(String password) {

              this.storedPassword = password;

          }

      }

      {code}

      See my configuration attached.
      I get the message "Cache is stopped, exiting." but the program just hangs.  Here's the thread dump:
      {quote}
      2010-10-11 13:22:46
      Full thread dump Java HotSpot(TM) Client VM (16.0-b13 mixed mode, sharing):
      "DestroyJavaVM" prio=6 tid=0x038d8000 nid=0x1a00 waiting on condition [0x00000000]
         java.lang.Thread.State: RUNNABLE
         Locked ownable synchronizers:
      - None
      "Hibernate Search: Directory writer-1" prio=6 tid=0x038d7800 nid=0x2700 waiting on condition [0x0494f000]
         java.lang.Thread.State: WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)
      - parking to wait for  <0x288e5ff8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
         Locked ownable synchronizers:
      - None
      "Scheduled-eviction-thread-0" daemon prio=2 tid=0x03899000 nid=0x2790 waiting on condition [0x0404f000]
         java.lang.Thread.State: WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)
      - parking to wait for  <0x28812a78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
      at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
         Locked ownable synchronizers:
      - None
      "Low Memory Detector" daemon prio=6 tid=0x0110d800 nid=0x21dc runnable [0x00000000]
         java.lang.Thread.State: RUNNABLE
         Locked ownable synchronizers:
      - None
      "CompilerThread0" daemon prio=10 tid=0x010f3400 nid=0x700 waiting on condition [0x00000000]
         java.lang.Thread.State: RUNNABLE
         Locked ownable synchronizers:
      - None
      "Attach Listener" daemon prio=10 tid=0x010f0c00 nid=0x2398 waiting on condition [0x00000000]
         java.lang.Thread.State: RUNNABLE
         Locked ownable synchronizers:
      - None
      "Signal Dispatcher" daemon prio=10 tid=0x010edc00 nid=0x26fc runnable [0x00000000]
         java.lang.Thread.State: RUNNABLE
         Locked ownable synchronizers:
      - None
      "Finalizer" daemon prio=8 tid=0x010e2800 nid=0x27f8 in Object.wait() [0x033cf000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x28710288> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
      - locked <0x28710288> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
      at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
         Locked ownable synchronizers:
      - None
      "Reference Handler" daemon prio=10 tid=0x010e1000 nid=0x222c in Object.wait() [0x0337f000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x28710310> (a java.lang.ref.Reference$Lock)
      at java.lang.Object.wait(Object.java:485)
      at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
      - locked <0x28710310> (a java.lang.ref.Reference$Lock)
         Locked ownable synchronizers:
      - None
      "VM Thread" prio=10 tid=0x010dfc00 nid=0x2520 runnable
      "VM Periodic Task Thread" prio=10 tid=0x01116400 nid=0x1330 waiting on condition
      JNI global references: 908
      {quote}
      I'm sure I'm doing something bone-headed in my configuration, but I'm not seeing it.  Anyone have any clues?

       

      Message was edited by: Craig Ching

        • 1. Re: Infinispan hanging at program end
          mircea.markus

          you don't seem to properly endBatch so a tyx might be pending. What transaction manager are you using? Can you please try again after with endBatch properly called?

          • 2. Re: Infinispan hanging at program end
            craigching

            Good catch, can't believe I missed that, but, adding a cache.endBatch(true); just before cache.stop() didn't help, I'm still hung.

             

            As for the transaction manager I'm using ... uh ... the default?   I'm not explicitly setting one at any rate.

            • 3. Re: Infinispan hanging at program end
              mircea.markus

              The non-deamon thread that seems to be causing the hang is Scheduled-eviction-thread-0. Can you create a UT and a Jira for this so that we can look at it in detail?

              • 4. Re: Infinispan hanging at program end
                craigching

                Thanks for looking at this Mircea, I appreciate the help.  I'm sorry for the formatting, I really tried my best, but these JBoss forums still own me for formatting ;-)

                 

                From what I can see, the eviction thread is a daemon thread, so I'm not sure that should be causing the type of hang that I think you're surmising.  The thread that I'm suspecting is:

                 

                "Hibernate Search: Directory writer-1" prio=6 tid=0x0121f400 nid=0x2388 waiting on condition [0x044ff000]
                   java.lang.Thread.State: WAITING (parking)
                at sun.misc.Unsafe.park(Native Method)
                - parking to wait for  <0x2889cf78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
                at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
                at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
                at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
                at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
                at java.lang.Thread.run(Thread.java:619)
                   Locked ownable synchronizers:
                - None

                "Hibernate Search: Directory writer-1" prio=6 tid=0x0121f400 nid=0x2388 waiting on condition [0x044ff000]

                   java.lang.Thread.State: WAITING (parking)

                at sun.misc.Unsafe.park(Native Method)

                - parking to wait for  <0x2889cf78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

                at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)

                at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)

                at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)

                at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)

                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)

                at java.lang.Thread.run(Thread.java:619)

                 

                   Locked ownable synchronizers:

                - None

                Although, that said, I do occasionally get a NPE in the eviction thread, I'll see if I can catch that one again.
                I'll open up a JIRA then if you think it's warranted.  Thanks!

                • 5. Re: Infinispan hanging at program end
                  craigching

                  Here's the NPE I was talking about:

                   

                  2010-10-11 14:35:36,833 ERROR [Scheduled-eviction-thread-0] (FileCacheStore.java:184) - Error while reading from file: C:\dev\workspace\infinispan-hang\.\store\Users\-202720274
                  java.lang.NullPointerException
                  at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)
                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:357)
                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:207)
                  at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:85)
                  at org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162)
                  at org.infinispan.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:179)
                  at org.infinispan.loaders.file.FileCacheStore.objectFromInputStreamInReentrantMode(FileCacheStore.java:262)
                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:181)
                  at org.infinispan.loaders.file.FileCacheStore.purgeInternal(FileCacheStore.java:161)
                  at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:84)
                  at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:47)
                  at org.infinispan.loaders.AbstractCacheStore.purgeExpired(AbstractCacheStore.java:81)
                  at org.infinispan.eviction.EvictionManagerImpl.processEviction(EvictionManagerImpl.java:115)
                  at org.infinispan.eviction.EvictionManagerImpl$ScheduledTask.run(EvictionManagerImpl.java:136)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
                  at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
                  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
                  at java.lang.Thread.run(Thread.java:619)
                  2010-10-11 14:35:36,837 ERROR [Scheduled-eviction-thread-0] (AbstractCacheStore.java:86) - Problems encountered while purging expired
                  org.infinispan.loaders.CacheLoaderException: Error while reading from file: C:\dev\workspace\infinispan-hang\.\store\Users\-202720274
                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:185)
                  at org.infinispan.loaders.file.FileCacheStore.purgeInternal(FileCacheStore.java:161)
                  at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:84)
                  at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:47)
                  at org.infinispan.loaders.AbstractCacheStore.purgeExpired(AbstractCacheStore.java:81)
                  at org.infinispan.eviction.EvictionManagerImpl.processEviction(EvictionManagerImpl.java:115)
                  at org.infinispan.eviction.EvictionManagerImpl$ScheduledTask.run(EvictionManagerImpl.java:136)
                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
                  at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
                  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
                  at java.lang.Thread.run(Thread.java:619)
                  Caused by: java.lang.NullPointerException
                  at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)
                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:357)
                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:207)
                  at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:85)
                  at org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162)
                  at org.infinispan.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:179)
                  at org.infinispan.loaders.file.FileCacheStore.objectFromInputStreamInReentrantMode(FileCacheStore.java:262)
                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:181)
                  ... 15 more

                  2010-10-11 14:35:36,833 ERROR [Scheduled-eviction-thread-0] (FileCacheStore.java:184) - Error while reading from file: C:\dev\workspace\infinispan-hang\.\store\Users\-202720274

                  java.lang.NullPointerException

                  at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)

                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:357)

                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:207)

                  at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:85)

                  at org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162)

                  at org.infinispan.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:179)

                  at org.infinispan.loaders.file.FileCacheStore.objectFromInputStreamInReentrantMode(FileCacheStore.java:262)

                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:181)

                  at org.infinispan.loaders.file.FileCacheStore.purgeInternal(FileCacheStore.java:161)

                  at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:84)

                  at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:47)

                  at org.infinispan.loaders.AbstractCacheStore.purgeExpired(AbstractCacheStore.java:81)

                  at org.infinispan.eviction.EvictionManagerImpl.processEviction(EvictionManagerImpl.java:115)

                  at org.infinispan.eviction.EvictionManagerImpl$ScheduledTask.run(EvictionManagerImpl.java:136)

                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

                  at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)

                  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)

                  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

                  at java.lang.Thread.run(Thread.java:619)

                  2010-10-11 14:35:36,837 ERROR [Scheduled-eviction-thread-0] (AbstractCacheStore.java:86) - Problems encountered while purging expired

                  org.infinispan.loaders.CacheLoaderException: Error while reading from file: C:\dev\workspace\infinispan-hang\.\store\Users\-202720274

                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:185)

                  at org.infinispan.loaders.file.FileCacheStore.purgeInternal(FileCacheStore.java:161)

                  at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:84)

                  at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:47)

                  at org.infinispan.loaders.AbstractCacheStore.purgeExpired(AbstractCacheStore.java:81)

                  at org.infinispan.eviction.EvictionManagerImpl.processEviction(EvictionManagerImpl.java:115)

                  at org.infinispan.eviction.EvictionManagerImpl$ScheduledTask.run(EvictionManagerImpl.java:136)

                  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

                  at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)

                  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)

                  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)

                  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

                  at java.lang.Thread.run(Thread.java:619)

                  Caused by: java.lang.NullPointerException

                  at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)

                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:357)

                  at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:207)

                  at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:85)

                  at org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162)

                  at org.infinispan.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:179)

                  at org.infinispan.loaders.file.FileCacheStore.objectFromInputStreamInReentrantMode(FileCacheStore.java:262)

                  at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:181)

                  ... 15 more

                  I'll open up a JIRA issue in a bit here.

                  • 6. Re: Infinispan hanging at program end
                    craigching
                    • 7. Re: Infinispan hanging at program end
                      mircea.markus

                      Thank you!

                      • 8. Re: Infinispan hanging at program end
                        galder.zamarreno

                        Craig, the NPE part of ISPN-697 has now been fixed. We separated that part into https://jira.jboss.org/browse/ISPN-699. The fix should be included in a new 4.2.x alpha release we'll be doing in the next day or so.

                        • 9. Re: Infinispan hanging at program end
                          craigching

                          I've been playing with the 4.2.x branch today and the NPE part of this does indeed seem to be fixed.  Thanks!  I'll keep my eyes out for the hanging hib search thread fix.

                          • 10. Re: Infinispan hanging at program end
                            sannegrinovero

                            Hi Craig, that one should also be fixed: https://jira.jboss.org/browse/ISPN-700

                            • 11. Re: Infinispan hanging at program end
                              craigching

                              Thanks Sanne, that does indeed seem to be fixed as well!