Consider the following case:
1) Execute SQL: TABLE Person ...}}
2) Then again: TABLE Person ...}}
Second call will lead to exception in exchange thread and will hang the whole cluster.
We need to add validation of CacheConfiguration.queryEntities wrt to other caches. This check should be performed in discovery thread. Note that we cannot rely on GridQueryProcessor or IgniteH2Indexing state, as some cache start requests may already be enqueued to exchange worker. Instead, we should perform cross-cache validation base only on two things:
That is, we should resolve cache schema name from configuration, tables and indexes from schema, and then cross-validate them with other caches.