🐣 Ewa wydana na kanale stabilnym

Połącz się z putty do Jolki i zobacz w logi: “pm2 logs ais”
Poprawki w recorders mogą trwać długo.

Spoko, spoko przecież monitoruję logi :wink: Inaczej bym tego nie napisał.
Długo ale godzina to za długo… Mam bazę na QNapie. Właśnie diagnozuję.

Chyba mamy przyczynę:

2|ais | 2021-04-02 17:59:52 WARNING (Recorder) [homeassistant.components.recorder.migration] Database is about to upgrade. Schema version: 11
2|ais | 2021-04-02 17:59:52 INFO (Recorder) [homeassistant.components.recorder.migration] Upgrading recorder db schema to version 12
2|ais | 2021-04-02 17:59:52 WARNING (Recorder) [homeassistant.components.recorder.migration] Modifying columns event_data in table events. Note: this can take several minutes on large databases and slow computers. Please be patient!
2|ais | 2021-04-02 17:59:52 WARNING (Recorder) [homeassistant.components.recorder.migration] Modifying columns attributes in table states. Note: this can take several minutes on large databases and slow computers. Please be patient!

Faktycznie może się to przedłużyć do kilku godzin przy dużej bazie. O sukcesie napiszę :slight_smile:

Dalej trwa już 3 godzinę: baza jest od 12.02.2021 co będzie po roku :wink:
ais-dom.xxxxx:40632 AIS Query 9832 Repair with keycache 50.000 ALTER TABLE states MODIFY attributes LONGTEXT

Ufff po 4 godzinach HA uruchomił się…

1 polubienie

No i teraz pytanie jak sobie z tym radzić przy większej, starszej bazie?

Baza MariaDB jest na szybkim QNapie po interfejsie 1GBps, switch też 1GBps więc jedyne wąskie gardło to interfejs 100 Mbps w AIS albo kwestia zapytań do bazy.

IMHO w tym jest problem - MySQL (i zakładam że Maria tak samo) nie ogarnia zbyt dużych baz, tak na oko powyżej miliona rekordów w tabeli generalnie lubi sobie “klęknąć” przy insertach lub update’ach, w tym sensie że każdy insert lub update trwa baaardzo długo.

U mnie aktualizacja robiła się całą noc i nadal niby się aktualizuje

Edit:

Po wyłączeniu bramki z prądu zaktualizował się jeszcze pakiet Pythona i już bramka działa.

Uzbrojony w wiedzę i cierpliwość oraz w podgląd logów wg tego poradnika >>> postanowiłem zaktualizować z Darka do Ewy i owszem - udało się, ale za drugim razem…

Za pierwszym razem bramka (wg logów na dalszym etapie pobierania plików) po prostu zrestartowała się samoistnie i to by było na tyle; dodatkowo wstała bez dostępu do sieci a dostęp do niej miałem tylko lokalnie za pomocą pilota i monitora via hdmi. Androidowe połączenie WiFI nie dało się uaktywnić. Logi, które widziałem lokalnie, wskazywały, że bramka już nic nie robi w kwestii aktualizacji (i dalej wskazywała Darka) więc zrestartowałem ją ponownie, sieć wróciła, wywołałem aktualizację i dopiero wtedy proces przeszedł do końca bez problemów (jakieś 20 minut).

Piszę po to bo być może jest jakieś wytłumaczenie, które zdiagnozowane pozwoli uniknąć tego typu problemów na przyszłość. W logach nie widziałem żadnych błędów .

Dzięki za nową aktualizacje - szczególnie zigbee2mqtt mi się podoba w nowym interfejsie, Spotify wydaje się działać od razu a Supla się uspokoiła (ale to już obserwowałem ostatnio na Darku). :+1: :slight_smile:

2 polubienia

A ja zauważyłem że nie idzie robić kopi konfiguracj. Naciskam sprawdzanie konfiguracji i monit o hasło nie pokazuje się.

Witam. A u mnie dziś bramka stanęła i się zbuntowała. Zdalny dostęp brak. Dopiero po podłączeniu do tv zobaczyłem logi.
Dałem "uruchom ponownie i wstała ale bez historii i bazy danych.
Poniżej logi.

Logger: homeassistant.setup

Source: /data/data/pl.sviete.dom/files/usr/lib/python3.9/asyncio/events.py:80
First occurred: 6:26:57 (8 occurrences)
Last logged: 6:27:06

Setup of timer is taking over 10 seconds.
Setup of ais_drives_service is taking over 10 seconds.
Setup of input_boolean is taking over 10 seconds.
Setup of ais_knowledge_service is taking over 10 seconds.
Setup of recorder is taking over 10 seconds.

Logger: homeassistant.components.mqtt.cover

Source: components/mqtt/cover.py:130
Integration: MQTT (documentation, issues)
First occurred: 6:27:08 (7 occurrences)
Last logged: 6:27:08

using ‘value_template’ for ‘position_topic’ is deprecated and will be removed from Home Assistant in version 2021.6, please replace it with ‘position_template’

Logger: homeassistant.components.recorder.util

Source: components/recorder/util.py:222
Integration: recorder (documentation, issues)
First occurred: 6:26:55 (10 occurrences)
Last logged: 6:27:24

The system will rename the corrupt database file ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db to ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:12.389271+00:00 in order to allow startup to proceed
The system will rename the corrupt database file ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db to ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:15.423926+00:00 in order to allow startup to proceed
The system will rename the corrupt database file ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db to ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:18.444130+00:00 in order to allow startup to proceed
The system will rename the corrupt database file ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db to ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:21.464010+00:00 in order to allow startup to proceed
The system will rename the corrupt database file ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db to ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:24.492777+00:00 in order to allow startup to proceed

Logger: homeassistant.components.recorder

Source: components/recorder/init.py:437
Integration: recorder (documentation, issues)
First occurred: 6:26:55 (10 occurrences)
Last logged: 6:27:24

Error during connection setup to sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db: [Errno 22] Invalid argument: ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db’ → ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:12.389271+00:00’ (retrying in 3 seconds)
Error during connection setup to sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db: [Errno 22] Invalid argument: ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db’ → ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:15.423926+00:00’ (retrying in 3 seconds)
Error during connection setup to sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db: [Errno 22] Invalid argument: ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db’ → ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:18.444130+00:00’ (retrying in 3 seconds)
Error during connection setup to sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db: [Errno 22] Invalid argument: ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db’ → ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:21.464010+00:00’ (retrying in 3 seconds)
Error during connection setup to sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db: [Errno 22] Invalid argument: ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db’ → ‘///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_05E0-C7FD/ais.db.corrupt.2021-04-05T04:27:24.492777+00:00’ (retrying in 3 seconds)

Logger: homeassistant.setup

Source: setup.py:118
First occurred: 6:27:27 (1 occurrences)
Last logged: 6:27:27

Unable to set up dependencies of history. Setup failed for dependencies: recorder

Logger: homeassistant.setup

Source: setup.py:118
First occurred: 6:27:27 (1 occurrences)
Last logged: 6:27:27

Unable to set up dependencies of history. Setup failed for dependencies: recorder

Logger: homeassistant

Source: /data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/runner.py:93
First occurred: 7:51:01 (118449 occurrences)
Last logged: 8:07:51

Error doing job: Exception in callback BaseSelectorEventLoop.accept_connection(<aiohttp.web…at 0xa454fb68>, <socket.socke…0.115’, 8060)>, None, <Server socke…15’, 8060)>,)>, 128, None)
Traceback (most recent call last):
File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/asyncio/events.py”, line 80, in _run
self._context.run(self._callback, *self._args)
File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/asyncio/selector_events.py”, line 164, in _accept_connection
conn, addr = sock.accept()
File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/socket.py”, line 293, in accept
fd, addr = self._accept()
OSError: [Errno 22] Invalid argument

Ktoś ma jakiś pomysł?
Zbędne encje wyłączone tak żeby nie pchać do bazy śmieci.
Rotacja logów ustawiona na 1 dzień.
Karta sd sprawna. Bramka pracowała około 36 godzin

Gdzieś już ktoś pisał podomnie. Czy to nie jest kwestia jakości tej karty? Może sprawdź na innym nośniku.

Nośnik ok jest ale faktem że nie jest to najwyższa półka.
Dziś włożę szybsza kartę 32gb i przy okazji zobaczę co się zapisało ja starej.
Ile macie sensorów które zapisują się do bazy ?
I jak macie ustawiona ilość dni ? :slightly_smiling_face:
@sdsi jaki masz format karty? NTFS czy fat32?

Pisaliście o tym w tym wątku

@sdsi znam ten wątek ale jestem skazany na kartę pamięci z względu na brak wolnego USB w bramce. :slightly_smiling_face:

To może lepsza karta lub jakiś zgrabny usb Hub z pendrive.

Myślę o tym właśnie.
Zastanawiam się jeszcze nad formatem karty.
@Stravi lub @Celina macie jakieś przemyślenia w tym temacie ? :slightly_smiling_face:

Przykro mi nie doradzę - używam MariaDB.
Karty SD z reguły są odradzane do ciągłego zapisu, właśnie ze względu na ich różną jakość. Mam kartę w widerejestratorze w samochodzie i śmiga od ponad 2 lat w ciągłym zapisie 24h na dobę (tak sprawdzałem nagrania), ale nie była tania i w teorii dedykowana do takiego użytku.

Moim zdaniem żadna karta SD nie da rady. Próbowałem kilku i za każdym razem po pewnym czasie karta się sypała co prowadziło do zawieszania bramki. Problem rozwiązał dysk SSD pod USB. Co ciekawe te same karty w innych zastosowania chodzą miesiącami bez najmniejszych problemów.

A dedykowanych kart pod takie rozwiązania? np. kart SD Class A2? Poczytaj Karty SD Class A2 – lepsze nośniki danych dla Raspbiana? • FORBOT.

1 polubienie

Zrobiłem właśnie aktualizację i niby poszła bez problemu. Uruchomiłem ponownie bramkę i nie wstaje, a w logach coś takiego. Co to za dziwny błąd?

2|ais | File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/helpers/entity.py”, line 277, in async_update_ha_state
2|ais | await self.async_device_update()
2|ais | File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/helpers/entity.py”, line 460, in async_device_update
2|ais | task = self.hass.async_add_executor_job(self.update) # type: ignore
2|ais | File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/core.py”, line 405, in async_add_executor_job
2|ais | task = self.loop.run_in_executor(None, target, *args)
2|ais | File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/asyncio/base_events.py”, line 807, in run_in_executor
2|ais | self._check_default_executor()
2|ais | File “/data/data/pl.sviete.dom/files/usr/lib/python3.9/asyncio/base_events.py”, line 514, in _check_default_executor
2|ais | raise RuntimeError(‘Executor shutdown has been called’)
2|ais | RuntimeError: Executor shutdown has been called

u mnie znowu recorder szaleje…

kolejna godzina na upgrade recordera…

AIS Query 10620 Repair with keycache 50.000 ALTER TABLE states MODIFY last_changed DATETIME(6), MODIFY last_updated DATETIME(6), MODIFY created

Znowu aktualizacja zajęła 4 godziny… ale zakończyła się sukcesem…