-
Notifications
You must be signed in to change notification settings - Fork 952
Closed
Description
Describe the bug
The Modbus connector is failing to disconnect devices, when there is a configuration change.
In the log below, we can see that, upon a connector config change, ThingsBoard IoT gateway tries to disconnect from the Modbus devices (aka, servers or slaves), but fails.
Connector name (If bug in the some connector):
Modbus Connector, over TCP.
Error traceback (If available):
2025-08-26 00:20:55 - |INFO| - [statistics_service.py] - statistics_service - __send_statistics - 234 - Collected regular statistics: {'machineStats': {'totalCpuUsage': 10.07, 'diskUsage': 37.9, 'freeMemory': 24.0, 'freeDisk': '16.6G', 'gwProcessCpuUsage': 27.5, 'gwMemory': 5.9, 'gwProcessMemoryFullInfo': {'rss': 114991104, 'vms': 2866573312, 'shared': 24735744, 'text': 4096, 'lib': 0, 'data': 734416896, 'dirty': 0, 'uss': 115859456, 'pss': 116467712, 'swap': 0}, 'msgsSentToPlatform': 543, 'msgsReceivedFromPlatform': 0}, 'serviceStats': {'storageMsgPulled': 543, 'storageMsgCount': 0, 'platformMsgPushed': 542, 'platformAttrProduced': 0, 'platformTsProduced': 3748}, 'connectorsStats': {'MODBUS_Conn': {'connectorMsgsReceived': 4796, 'connectorBytesReceived': 830877, 'storageMsgPushed': 1086}, 'MODBUS_Conn_converter': {'convertersMsgProcessed': 543, 'convertersAttrProduced': 0, 'convertersTsProduced': 3754}}}
2025-08-26 00:21:09 - |INFO| - [tb_gateway_remote_configurator.py] - tb_gateway_remote_configurator - _process_config_request - 255 - Remote configuration received, key: ['MODBUS_Conn']
2025-08-26 00:21:14 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device22R:
2025-08-26 00:21:19 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device22F:
2025-08-26 00:21:24 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device23:
2025-08-26 00:21:29 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device23L:
2025-08-26 00:21:34 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device23R:
2025-08-26 00:21:39 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device23F:
2025-08-26 00:21:44 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device24:
2025-08-26 00:21:49 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device24L:
2025-08-26 00:21:54 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device24R:
2025-08-26 00:21:55 - |INFO| - [statistics_service.py] - statistics_service - __send_statistics - 234 - Collected regular statistics: {'machineStats': {'totalCpuUsage': 9.78, 'diskUsage': 37.9, 'freeMemory': 24.1, 'freeDisk': '16.6G', 'gwProcessCpuUsage': 7.1, 'gwMemory': 6.0, 'gwProcessMemoryFullInfo': {'rss': 116867072, 'vms': 2418618368, 'shared': 24821760, 'text': 4096, 'lib': 0, 'data': 290136064, 'dirty': 0, 'uss': 116854784, 'pss': 117463040, 'swap': 0}, 'msgsSentToPlatform': 124, 'msgsReceivedFromPlatform': 2}, 'serviceStats': {'storageMsgPulled': 116, 'storageMsgCount': 3, 'platformMsgPushed': 117, 'platformAttrProduced': 0, 'platformTsProduced': 810}, 'connectorsStats': {'MODBUS_Conn_converter': {'convertersMsgProcessed': 119, 'convertersAttrProduced': 0, 'convertersTsProduced': 822}, 'MODBUS_Conn': {'storageMsgPushed': 238, 'connectorMsgsReceived': 1103, 'connectorBytesReceived': 190777, 'connectorsErrors': 9}}}
2025-08-26 00:21:59 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device24F:
2025-08-26 00:22:04 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device25:
2025-08-26 00:22:09 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device25L:
2025-08-26 00:22:14 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device25R:
2025-08-26 00:22:19 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device25F:
2025-08-26 00:22:24 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device26:
2025-08-26 00:22:29 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device26L:
2025-08-26 00:22:34 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device26R:
2025-08-26 00:22:39 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device26F:
2025-08-26 00:22:44 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device27:
2025-08-26 00:22:49 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device27L:
2025-08-26 00:22:54 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device27R:
2025-08-26 00:22:55 - |INFO| - [statistics_service.py] - statistics_service - __send_statistics - 234 - Collected regular statistics: {'machineStats': {'totalCpuUsage': 9.9, 'diskUsage': 37.9, 'freeMemory': 24.5, 'freeDisk': '16.6G', 'gwProcessCpuUsage': 1.9, 'gwMemory': 6.0, 'gwProcessMemoryFullInfo': {'rss': 116867072, 'vms': 2418618368, 'shared': 24821760, 'text': 4096, 'lib': 0, 'data': 290136064, 'dirty': 0, 'uss': 116862976, 'pss': 117471232, 'swap': 0}, 'msgsSentToPlatform': 11, 'msgsReceivedFromPlatform': 0}, 'serviceStats': {'storageMsgPulled': 0, 'storageMsgCount': 3, 'platformMsgPushed': 0, 'platformAttrProduced': 0, 'platformTsProduced': 0}, 'connectorsStats': {'MODBUS_Conn': {'connectorsErrors': 12}}}
2025-08-26 00:22:59 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device27F:
2025-08-26 00:23:04 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device28:
2025-08-26 00:23:09 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device28L:
2025-08-26 00:23:14 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device28R:
2025-08-26 00:23:19 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device28F:
2025-08-26 00:23:24 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device29:
2025-08-26 00:23:29 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device29L:
2025-08-26 00:23:34 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device29R:
2025-08-26 00:23:39 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device29F:
2025-08-26 00:23:44 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device30:
2025-08-26 00:23:49 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device30L:
2025-08-26 00:23:54 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device30R:
2025-08-26 00:23:55 - |INFO| - [statistics_service.py] - statistics_service - __send_statistics - 234 - Collected regular statistics: {'machineStats': {'totalCpuUsage': 9.31, 'diskUsage': 37.9, 'freeMemory': 24.4, 'freeDisk': '16.6G', 'gwProcessCpuUsage': 2.0, 'gwMemory': 6.0, 'gwProcessMemoryFullInfo': {'rss': 116867072, 'vms': 2418618368, 'shared': 24821760, 'text': 4096, 'lib': 0, 'data': 290136064, 'dirty': 0, 'uss': 116871168, 'pss': 117479424, 'swap': 0}, 'msgsSentToPlatform': 11, 'msgsReceivedFromPlatform': 0}, 'serviceStats': {'storageMsgPulled': 0, 'storageMsgCount': 3, 'platformMsgPushed': 0, 'platformAttrProduced': 0, 'platformTsProduced': 0}, 'connectorsStats': {'MODBUS_Conn': {'connectorsErrors': 12}}}
2025-08-26 00:23:59 - |ERROR| - [slave.py] - slave - close - 166 - Failed to disconnect from Device30F:
2025-08-26 00:23:59 - |INFO| - [modbus_connector.py] - modbus_connector - close - 133 - MODBUS_Conn has been stopped
2025-08-26 00:24:00 - |ERROR| - [tb_gateway_remote_configurator.py] - tb_gateway_remote_configurator - _handle_connector_configuration_update - 717 - Connector fc0d56a0-f1f0-47f7-adeb-de6e97e5b9fd not stopped in 5 seconds
2025-08-26 00:24:00 - |INFO| - [modbus_connector.py] - modbus_connector - __init__ - 95 - Starting Modbus Connector...
2025-08-26 00:24:00 - |INFO| - [tb_gateway_service.py] - tb_gateway_service - __init_and_start_regular_connector - 1060 - Cannot find separated report strategy for connector 'MODBUS_Conn'. The main report strategy will be used as a connector report strategy.
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device17
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device18
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device19
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device23
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device21
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device17L
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device18L
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device19L
2025-08-26 00:24:00 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device23L
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device21L
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device17R
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device18R
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device19R
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device23R
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device21R
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device25
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device29
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device30
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device27
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device17F
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device18F
2025-08-26 00:24:01 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device19F
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device23F
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device21F
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device25L
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device29L
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device30L
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device27L
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device20
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device24
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device22
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device25R
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device29R
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device30R
2025-08-26 00:24:02 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device27R
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device20L
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device24L
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device22L
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device25F
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device29F
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device30F
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device27F
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device20R
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device24R
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device22R
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device26
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device28
2025-08-26 00:24:03 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device20F
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device24F
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device22F
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device26L
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device28L
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device26R
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device28R
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device26F
2025-08-26 00:24:04 - |INFO| - [slave.py] - slave - connect - 230 - Connected to Device28F
2025-08-26 00:24:55 - |INFO| - [statistics_service.py] - statistics_service - __send_statistics - 234 - Collected regular statistics: {'machineStats': {'totalCpuUsage': 9.17, 'diskUsage': 37.9, 'freeMemory': 24.7, 'freeDisk': '16.6G', 'gwProcessCpuUsage': 21.2, 'gwMemory': 6.1, 'gwProcessMemoryFullInfo': {'rss': 117944320, 'vms': 2868670464, 'shared': 24821760, 'text': 4096, 'lib': 0, 'data': 737202176, 'dirty': 0, 'uss': 118734848, 'pss': 119343104, 'swap': 0}, 'msgsSentToPlatform': 367, 'msgsReceivedFromPlatform': 0}, 'serviceStats': {'storageMsgPulled': 307, 'storageMsgCount': 0, 'platformMsgPushed': 307, 'platformAttrProduced': 0, 'platformTsProduced': 2146}, 'connectorsStats': {'MODBUS_Conn': {'connectorsErrors': 1, 'connectorMsgsReceived': 2235, 'connectorBytesReceived': 385718, 'storageMsgPushed': 608}, 'MODBUS_Conn_converter': {'convertersMsgProcessed': 304, 'convertersAttrProduced': 0, 'convertersTsProduced': 2128}}}
Versions (please complete the following information):
- OS: ThingsBoard Cloud
- Thingsboard IoT Gateway version: 3.7.7
- Python version: NA, running in docker