Description
MemoryOffsetBackingStore creates an ExecutorService but MemoryOffsetBackingStore.stop() fails to call executor.shutdown(). This creates a zombie non-daemon thread which prevents clean shutdown when running a StandaloneHerder embedded in another application.
Note that FileOffsetBackingStore extends MemoryOffsetBackingStore so is also affected.