Does anybody remember why QueryProcessor is started before CacheProcessor? With this order cache processor can be stopped at the moment when query request is processed, and this causes sporadic errors like NPE (I see this from time to time in IgniteCacheQueryNodeRestartSelfTest).
Looks like cache processor does not depend on query processor so start order should be changed.