EHC ❯ vm does not exit when running with overflowToDisk=true
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
-
-
hsingh
-
Reporter: asingh
-
May 15, 2010
-
0
-
Watchers: 1
-
January 17, 2013
-
June 17, 2010
Description
When running unclustered ehcache and overflowToDisk=true, the app vm refuses to exit. Seems like threads for executing disk writer tasks are not started in daemon mode. In DiskStorageFactory constructor: diskWriter = new ScheduledThreadPoolExecutor(1, new ThreadFactory() { public Thread newThread(Runnable r) { return new Thread(r, file.getName()); } });
Comments
Chris Dennis 2010-05-17
Abhishek Singh 2010-05-18
I don’t remember if i was using diskPersistent true or false, was running an app with auto-generated config. The app refused to exit, and making overflowToDisk=false fixed it. I don’t think I was doing any op on the cache, even if it was persistent, so probably not sure when/how/who created the thread. Will try to post a reproducable sample here.
Steve Harris 2010-05-18
It seems odd to rely on the threads not being daemon to solve that flush problem
Chris Dennis 2010-06-17
Non-persistent disk stores now have daemon writer threads.
Himadri Singh 2010-07-06
Not able to reproduce in ehcache-core 2.2.0
The original does seem to declare the disk writing thread as a daemon. In the case of a non-persistent cache I can see how this could be a good idea. In the case of a persistent cache however you really want the thread to wait until it terminates normally otherwise the persistent cache will almost certainly be corrupt.