Open upya4ko opened 1 year ago
Have some problems when running server couple weeks, in last days it stop recording, i look output and found error:
rtl-sdr-scanner-cpp-sdr-broker-1 | 1677834164: New connection from 172.18.0.5:45259 on port 1883. rtl-sdr-scanner-cpp-sdr-broker-1 | 1677834164: New client connected from 172.18.0.5:45259 as auto-333333333-4444444-55555-666666-88888888888C63 (p2, c1, k60, u'admin'). rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | Traceback (most recent call last): rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/src/sdr-panel/manage.py", line 10, in <module> rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | Exception while running run() in 'scripts.mqtt_reader' rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | execute_from_command_line(sys.argv) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 419, in execute_from_command_line rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | utility.execute() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 413, in execute rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | self.fetch_command(subcommand).run_from_argv(self.argv) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django_extensions/management/email_notifications.py", line 65, in run_from_argv rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | super().run_from_argv(argv) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 354, in run_from_argv rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | self.execute(*args, **cmd_options) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django_extensions/management/email_notifications.py", line 77, in execute rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | super().execute(*args, **options) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 398, in execute rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | output = self.handle(*args, **options) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django_extensions/management/utils.py", line 62, in inner rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | ret = func(self, *args, **kwargs) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django_extensions/management/commands/runscript.py", line 281, in handle rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | run_script(script_mod, *script_args) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django_extensions/management/commands/runscript.py", line 159, in run_script rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | exit_code = mod.run(*script_args) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/src/sdr-panel/scripts/mqtt_reader.py", line 499, in run rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | paho.mqtt.subscribe.callback( rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/subscribe.py", line 183, in callback rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | client.loop_forever() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 1756, in loop_forever rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | rc = self._loop(timeout) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 1164, in _loop rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | rc = self.loop_read() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 1556, in loop_read rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | rc = self._packet_read() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 2439, in _packet_read rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | rc = self._packet_handle() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 3033, in _packet_handle rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | return self._handle_publish() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 3327, in _handle_publish rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | self._handle_on_message(message) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/client.py", line 3570, in _handle_on_message rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | on_message(self, self._userdata, message) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/paho/mqtt/subscribe.py", line 45, in _on_message_callback rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | userdata['callback'](client, userdata['userdata'], message) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/src/sdr-panel/scripts/mqtt_reader.py", line 456, in on_message rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | cleaner.clear() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/src/sdr-panel/scripts/mqtt_reader.py", line 415, in clear rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | self.__remove_spectrograms() rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/src/sdr-panel/scripts/mqtt_reader.py", line 424, in __remove_spectrograms rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | total_size += s.data_file.size rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/db/models/fields/files.py", line 71, in size rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | return self.storage.size(self.name) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/local/lib/python3.10/dist-packages/django/core/files/storage.py", line 341, in size rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | return os.path.getsize(self.path(name)) rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | File "/usr/lib/python3.10/genericpath.py", line 50, in getsize rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | return os.stat(filename).st_size rtl-sdr-scanner-cpp-sdr-monitor-reader-1 | FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/sdr-panel/public/media/device_2/spectrogram/2023-01-20/00_00_00_435000000.bin' rtl-sdr-scanner-cpp-sdr-broker-1 | 1677834165: Client auto-D4C8AF75-39EB-55E5-3A1D-3F0F8189FC63 closed its connection.
Ok, server have power loss, i try just give script what it need to start:
sudo touch /srv/docker/volumes/rtl-sdr-scanner-cpp_monitor_data/_data/device_2/spectrogram/2023-01-20/00_00_00_427000000.bin
restart service in foreground and after night server "stop" again on same error
My docker-compose.yml
version: '3.7' services: sdr-broker: image: eclipse-mosquitto:latest restart: on-failure command: - /bin/sh - -c - | echo "listener 1883" > /mosquitto/config/mosquitto.conf echo "allow_anonymous false" >> /mosquitto/config/mosquitto.conf echo "password_file /mosquitto/config/password.txt" >> /mosquitto/config/mosquitto.conf echo "admin:password" > /mosquitto/config/password.txt mosquitto_passwd -U /mosquitto/config/password.txt mosquitto -c /mosquitto/config/mosquitto.conf sdr-scanner: image: shajen/sdr-scanner:latest restart: on-failure depends_on: - sdr-broker volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - ./config.json:/config.json devices: - /dev/bus/usb:/dev/bus/usb sdr-monitor-setup: image: shajen/sdr-monitor:latest restart: on-failure depends_on: - sdr-broker volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" - "monitor_db:/usr/src/sdr-panel/db" - "monitor_data:/usr/src/sdr-panel/public/media" command: bash -c "python3 manage.py migrate && DJANGO_SUPERUSER_PASSWORD=password python3 manage.py createsuperuser --noinput --username admin --email admin@local.local || true" sdr-monitor-server: image: shajen/sdr-monitor:latest restart: on-failure depends_on: sdr-monitor-setup: condition: service_completed_successfully volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" - "monitor_db:/usr/src/sdr-panel/db" - "monitor_data:/usr/src/sdr-panel/public/media" command: python3 manage.py runserver 0.0.0.0:8000 ports: - 8000:8000 sdr-monitor-reader: image: shajen/sdr-monitor:latest restart: on-failure depends_on: sdr-monitor-setup: condition: service_completed_successfully volumes: - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" - "monitor_db:/usr/src/sdr-panel/db" - "monitor_data:/usr/src/sdr-panel/public/media" command: python3 manage.py runscript mqtt_reader volumes: monitor_db: monitor_data:
My config.json
{ "scanner_frequencies_ranges": [ { "device_serial": "auto", "ranges": [ { "start": 440000000, "stop": 441000000, "step": 1000, "sample_rate": 2048000 }, { "start": 441000000, "stop": 442000000, "step": 1000, "sample_rate": 2048000 }, { "start": 442000000, "stop": 443000000, "step": 1000, "sample_rate": 2048000 }, { "start": 443000000, "stop": 444000000, "step": 1000, "sample_rate": 2048000 }, { "start": 444000000, "stop": 445000000, "step": 1000, "sample_rate": 2048000 }, { "start": 445000000, "stop": 446000000, "step": 1000, "sample_rate": 2048000 }, { "start": 446000000, "stop": 447000000, "step": 1000, "sample_rate": 2048000 }, { "start": 447000000, "stop": 448000000, "step": 1000, "sample_rate": 2048000 }, { "start": 448000000, "stop": 449000000, "step": 1000, "sample_rate": 2048000 }, { "start": 449000000, "stop": 450000000, "step": 1000, "sample_rate": 2048000 }, { "start": 450000000, "stop": 451000000, "step": 1000, "sample_rate": 2048000 } , { "start": 451000000, "stop": 452000000, "step": 1000, "sample_rate": 2048000 }, { "start": 452000000, "stop": 453000000, "step": 1000, "sample_rate": 2048000 }, { "start": 453000000, "stop": 454000000, "step": 1000, "sample_rate": 2048000 }, { "start": 454000000, "stop": 455000000, "step": 1000, "sample_rate": 2048000 }, { "start": 455000000, "stop": 456000000, "step": 1000, "sample_rate": 2048000 }, { "start": 456000000, "stop": 457000000, "step": 1000, "sample_rate": 2048000 }, { "start": 457000000, "stop": 458000000, "step": 1000, "sample_rate": 2048000 }, { "start": 458000000, "stop": 459000000, "step": 1000, "sample_rate": 2048000 }, { "start": 459000000, "stop": 460000000, "step": 1000, "sample_rate": 2048000 }, { "start": 460000000, "stop": 461000000, "step": 1000, "sample_rate": 2048000 }, { "start": 461000000, "stop": 462000000, "step": 1000, "sample_rate": 2048000 }, { "start": 462000000, "stop": 463000000, "step": 1000, "sample_rate": 2048000 }, { "start": 463000000, "stop": 464000000, "step": 1000, "sample_rate": 2048000 }, { "start": 464000000, "stop": 465000000, "step": 1000, "sample_rate": 2048000 }, { "start": 465000000, "stop": 466000000, "step": 1000, "sample_rate": 2048000 }, { "start": 466000000, "stop": 467000000, "step": 1000, "sample_rate": 2048000 }, { "start": 467000000, "stop": 468000000, "step": 1000, "sample_rate": 2048000 }, { "start": 468000000, "stop": 469000000, "step": 1000, "sample_rate": 2048000 }, { "start": 469000000, "stop": 470000000, "step": 1000, "sample_rate": 2048000 }, { "start": 470000000, "stop": 471000000, "step": 1000, "sample_rate": 2048000 }, { "start": 471000000, "stop": 472000000, "step": 1000, "sample_rate": 2048000 }, { "start": 472000000, "stop": 473000000, "step": 1000, "sample_rate": 2048000 }, { "start": 473000000, "stop": 474000000, "step": 1000, "sample_rate": 2048000 }, { "start": 474000000, "stop": 475000000, "step": 1000, "sample_rate": 2048000 }, { "start": 475000000, "stop": 476000000, "step": 1000, "sample_rate": 2048000 }, { "start": 476000000, "stop": 477000000, "step": 1000, "sample_rate": 2048000 }, { "start": 477000000, "stop": 478000000, "step": 1000, "sample_rate": 2048000 }, { "start": 478000000, "stop": 479000000, "step": 1000, "sample_rate": 2048000 }, { "start": 479000000, "stop": 480000000, "step": 1000, "sample_rate": 2048000 }, { "start": 481000000, "stop": 482000000, "step": 1000, "sample_rate": 2048000 }, { "start": 482000000, "stop": 483000000, "step": 1000, "sample_rate": 2048000 }, { "start": 483000000, "stop": 484000000, "step": 1000, "sample_rate": 2048000 }, { "start": 484000000, "stop": 485000000, "step": 1000, "sample_rate": 2048000 }, { "start": 485000000, "stop": 486000000, "step": 1000, "sample_rate": 2048000 }, { "start": 486000000, "stop": 487000000, "step": 1000, "sample_rate": 2048000 }, { "start": 487000000, "stop": 488000000, "step": 1000, "sample_rate": 2048000 }, { "start": 488000000, "stop": 489000000, "step": 1000, "sample_rate": 2048000 }, { "start": 489000000, "stop": 490000000, "step": 1000, "sample_rate": 2048000 }, { "start": 491000000, "stop": 492000000, "step": 1000, "sample_rate": 2048000 }, { "start": 492000000, "stop": 493000000, "step": 1000, "sample_rate": 2048000 }, { "start": 493000000, "stop": 494000000, "step": 1000, "sample_rate": 2048000 }, { "start": 494000000, "stop": 495000000, "step": 1000, "sample_rate": 2048000 }, { "start": 495000000, "stop": 496000000, "step": 1000, "sample_rate": 2048000 }, { "start": 496000000, "stop": 497000000, "step": 1000, "sample_rate": 2048000 }, { "start": 497000000, "stop": 498000000, "step": 1000, "sample_rate": 2048000 }, { "start": 498000000, "stop": 499000000, "step": 1000, "sample_rate": 2048000 }, { "start": 499000000, "stop": 500000000, "step": 1000, "sample_rate": 2048000 } ] } ], "ignored_frequencies_ranges": [ { "comments": "Digital repeating strobe", "start": 442233000, "stop": 442241000 }, { "comments": "Digital repeating strobe", "start": 442333000, "stop": 442341000 }, { "start": 446133000, "stop": 446135000 }, { "start": 446133000, "stop": 446135000 }, { "start": 446175000, "stop": 446178000 }, { "start": 446021000, "stop": 446024000 } ], "devices": { "rtl_sdr": { "ppm_error": -2.429, "tuner_gain": 49.9, "offset": 0 }, "hack_rf": { "lna_gain": 0, "vga_gain": 0, "offset": 0 } }, "recording": { "max_noise_time_ms": 500, "min_time_ms": 2000, "min_sample_rate": 16000 }, "detection": { "frequency_grouping_size": 12500, "frequency_range_scanning_time_ms": 64, "noise_learning_time_seconds": 30, "noise_detection_margin": 10, "torn_transmission_learning_time_seconds": 60 }, "output": { "logs": "sdr/logs", "file_log_level": "info", "console_log_level": "info" }, "cores": 4, "memory_limit_mb": 0, "mqtt": { "hostname": "sdr-broker", "port": 1883, "username": "admin", "password": "password" } }
Maybe need add additional check "If file absent" in my opinion error appears when monitor-reader try access deleted spectrogramm (it over 10GB of default limit already and date of missing file is older than 30 days)
Thanks for work!
Have some problems when running server couple weeks, in last days it stop recording, i look output and found error:
Ok, server have power loss, i try just give script what it need to start:
restart service in foreground and after night server "stop" again on same error
My docker-compose.yml
My config.json
Maybe need add additional check "If file absent" in my opinion error appears when monitor-reader try access deleted spectrogramm (it over 10GB of default limit already and date of missing file is older than 30 days)
Thanks for work!