Das Problem ist sicherlich selbst verursacht. Ich habe mir mit einem ESP32 ein BLE Gateway gebaut. Dieser sendet nun alle erkannten Bluetooth Geräte per MQTT zum Mosquitto. Dies sind inzwischen über 5000 Geräte. Nun scheint sich der MQTT Client daran zu verschlucken bei einem Neustart des System. Es laufen drei Prozesse mit 100% CPU Auslastung und irgendwann werden die Prozesse gekillt und iobroker hängt dann komplett. Irgendwann fängt es sich wieder, aber der MQTT Client ist immer noch "rot".
Im Log sind auch einige Fehler protokoliert:
Hauptsächlich wiederholt sich dies:
mqtt-client.0
2022-01-18 10:24:33.327 error this.autoSubscribe is not iterable
mqtt-client.0
2022-01-18 10:24:33.326 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
mqtt-client.0
2022-01-18 10:24:33.324 error this.autoSubscribe is not iterable
mqtt-client.0
2022-01-18 10:24:33.324 error TypeError: this.autoSubscribe is not iterable at MqttClient.subscribeForeignStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:7455:45) at runMicrotasks (<anonymous>) at runNextTicks (internal/process/task_queues.js:60:5) at processImmediate (internal/timers.js:437:9)
mqtt-client.0
2022-01-18 10:24:33.323 error unhandled promise rejection: this.autoSubscribe is not iterable
[Nachtrag]
Es sieht wohl so aus, dass der MQTT Client sich den gesamten Speicher schnappt (8GB RAM und 8GB swap) und danach geht nichts mehr.
Habe nun bevor ich den MQTT Client gestartet habe, den Baum unterhalb des BLE Gateway gelöscht. Es waren 12900 Objekte und etwa gleich viele Zustände. Nun startet der Client wieder.