Knot Resolver crashes on too many similar host definitions
In !1854 it was introduced that multiple records of local data could be pointing at the same IP address. This works well until around 18 or 20 records have been added pointing to the same IP address.
The rationale to do this is to return an invalid IP address (e.g. 127.0.0.1) for names that should not be resolvable and block clients from accessing these sites.
Once the limit is being hit, an assertion hits and kills the process immediately which results in Knot Resolver not coming up. The full error message is as follows:
```
Jul 20 20:27:29 ipfireTest kresd[1832]: [cache ] Cache top initialized using existing data (AVX2).
Jul 20 20:27:29 ipfireTest kresd[1832]: [rules ] LMDB error: MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size
Jul 20 20:27:29 ipfireTest kresd[1832]: [system] assertion "(ret == 0 || ret == kr_error(28))" failed in local_data_ins@../lib/rules/api.c:639
Jul 20 20:27:29 ipfireTest supervisord: exited: policy-loader (terminated by SIGABRT; not expected)
Jul 20 20:27:30 ipfireTest knot_resolver.manager.server: Initial config verification failed with error: kresd 'policy-loader' process exited unexpectedly. The configuration may be invalid. Please check the log.
Jul 20 20:27:30 ipfireTest supervisord: exited: manager (exit status 1; not expected)
```
The relevant code is here: https://gitlab.nic.cz/knot/knot-resolver/-/blob/master/lib/rules/api.c#L639
I don't know enough about how LMDB is used internally, but it seems that the page is basically running out of space. In that case, either more space for more data needs to be created or the command should return an error instead of killing the entire application.
issue