Guru Meditation Error during 1st BLE scan with OpenMQTTGateway v1.7.0


On startup i get a crash in the middle of the first scan with a dump looking at the serial console. Something like this

N: Scan begin
N: Device detected: CF:80:EC:10:6B:06
N: Device detected: B0:38:29:7B:F0:04
N: Device detected: 28:36:62:22:26:71
N: Device detected: FC:C3:E6:D5:42:9A
N: Device detected: CF:7B:C6:F3:01:14
N: Device detected: 70:5D:66:DE:8F:4C
N: Device detected: 7F:FB:F0:DF:65:4B
N: Device detected: 4E:BA:06:B5:5D:BB
N: Send on /BTtoMQTT/CF80EC106B06 msg {"id":"CF:80:EC:10:6B:06","name":"Mi Smart Band 6","rssi":-93,"brand":"Xiaomi/Amazfit","model":"Mi Band/Smart Watch","model_id":"MB/SW","type":"BODY","device":"Xiaomi/Amazfit Tracker","mac":"CF:80:EC:10:6B:06"}N: Device detected: C4:AE:44:4B:50:CF

N: Device detected: CE:D3:AB:53:6E:4F
N: FouNnd : Device detected: 11DF:02:7A:58:1C:6A devices, scan number 2 end

Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

More or less randomly it will crash during that first run and it’s not tied around that Xiaomi/Amazfit thing (pbl my neighbour’s). It can easily just be one of the Ruuvi tags, some iBeacon or some other trinket I have lying around. But it always crashes during the first run. Also notice two messages printed somewhat mixed in the same line right before it freaks out.

I have flashed 1.7.0 on different devices like an old Olimex ESP32-GATEWAY, some spare WiPy v2. And also the Theengs Bridge which arrived just the other day (my support to the project, love it). All show the same behaviour.

There’s a way around this crash by pushing out a config'{"enabled":false}' to MQTT. If you time it just before it will go into its scanning routine. It will still see the neighbouring devices, but it will not do anything. In this passive state I can set a '{"white-list": ["aa:bb:cc:dd:ee:ff", "etc"]}' and then enable the scanning. From there it will work flawlessly for days on end.

The strange thing though is that I have gathered all the BLE macs for a couple of days and built an extensive address-list and pushed those in the white-list. I thought it might freak out on some device/parser combination. but nothing will cause the gateway to crash while scanning.

Can I get some hints how to chase the culprit further? I might be onto something here.



Thanks for your support! I appreciate it.

One operation that we are doing at the start that may consume memory is to check for updates on Github. Does this operation return a result properly on your serial console (you should see “Update check” in the logs)?

Also, It would be interesting to activate the trace log level on one of the boards; the Theengs Bridge firmware does not have the web UI, but the esp32dev-ble firmware has it, and with it, you can easily change the log level.
You can use it with any of the ESP32 boards.

From the WebUI-> Configuration → Configure Logging → Select Trace → Save
Go to your serial monitor; from this, it would be interesting to see your logs.
If you are not comfortable sharing them here feel free to PM them to me.