EdgePi-Cloud / edgepi-python-sdk

Python SDK to control EdgePi, an industrial PC/PLC/IoT device powered by Raspberry Pi CM4
MIT License
5 stars 3 forks source link

Opening I2C device: Too many open files #379

Closed farzadpanahi closed 1 year ago

farzadpanahi commented 1 year ago

we are opening I2C device files without closing them.

Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,188 INFO [device_shadow.py:449] Applying shadow state to device DAC
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,188 INFO [edgepi_dac.py:57] Initializing DAC Bus
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,189 INFO [edgepi_eeprom.py:40] Initializing EEPROM Access
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,189 ERROR [device_shadow.py:491] Could not apply state to DAC
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,189 ERROR [device_shadow.py:492] [Errno 24] Opening I2C device: Too many open files
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: Traceback (most recent call last):
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/i2c.py", line 72, in _open
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: OSError: [Errno 24] Too many open files: '/dev/i2c-10'
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: During handling of the above exception, another exception occurred:
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: Traceback (most recent call last):
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/device_shadow/device_shadow.py", line 467, in __apply_shadow_state
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/device_shadow/device_shadow.py", line 243, in __get_update_handler
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_factory.py", line 111, in get
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_factory.py", line 298, in __get_update_handler_outputs_module
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_dac.py", line 79, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/dac/edgepi_dac.py", line 61, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/eeprom/edgepi_eeprom.py", line 45, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/peripherals/i2c.py", line 21, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/i2c.py", line 58, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/i2c.py", line 74, in _open
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: periphery.i2c.I2CError: [Errno 24] Opening I2C device: Too many open files

similar issue on spi:

Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,234 INFO [device_shadow.py:449] Applying shadow state to device DOUT
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,235 INFO [edgepi_gpio.py:26] GPIO initializing
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,236 INFO [edgepi_dac.py:57] Initializing DAC Bus
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,236 ERROR [device_shadow.py:491] Could not apply state to DOUT
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:  2023-08-08 10:37:52,237 ERROR [device_shadow.py:492] [Errno 24] Opening SPI device: Too many open files
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: Traceback (most recent call last):
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/spi.py", line 109, in _open
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: OSError: [Errno 24] Too many open files: '/dev/spidev6.3'
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: During handling of the above exception, another exception occurred:
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: Traceback (most recent call last):
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/device_shadow/device_shadow.py", line 467, in __apply_shadow_state
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/device_shadow/device_shadow.py", line 243, in __get_update_handler
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_factory.py", line 111, in get
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_factory.py", line 298, in __get_update_handler_outputs_module
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/module/update_handlers/update_handler_dout.py", line 79, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/digital_output/edgepi_digital_output.py", line 41, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/dac/edgepi_dac.py", line 58, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/edgepi/peripherals/spi.py", line 34, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/spi.py", line 75, in __init__
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]:   File "/opt/edgepi/edgepi-device-manager/periphery/spi.py", line 111, in _open
Aug 08 10:37:52 edgepi-r4p87y edgepi_device_manager[609]: periphery.spi.SPIError: [Errno 24] Opening SPI device: Too many open files

pwm issue might be because of the same problem.