Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High CPU usage and permission errors on Home Assistant OS #262

Closed
3 tasks done
sanderdw opened this issue Jan 18, 2022 · 50 comments
Closed
3 tasks done

High CPU usage and permission errors on Home Assistant OS #262

sanderdw opened this issue Jan 18, 2022 · 50 comments

Comments

@sanderdw
Copy link

Support guidelines

I've found an issue and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

Unfortunately i was a bit optimistic (#251 (comment)) and the new version is causing some weird cpu usage: sanderdw/hassio-addons#28

Also the mount option which worked correctly is causing permission problems now (map option in https://developers.home-assistant.io/docs/add-ons/configuration).

Expected behaviour

No high cpu usage and be able to write back to hassio folders

Actual behaviour

See description

Steps to reproduce

Docker info

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 16
  Running: 16
  Paused: 0
  Stopped: 0
 Images: 60
 Server Version: 20.10.9
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
  userxattr: false
 Logging Driver: journald
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version:
 runc version:
 init version:
 Security Options:
  apparmor
 Kernel Version: 5.10.88
 Operating System: Home Assistant OS 7.1
 OSType: linux
 Architecture: aarch64
 CPUs: 6
 Total Memory: 3.728GiB
 Name: homeassistant
 ID: TDYM:NYBM:6NEK:EOZI:ZP57:GQGR:VHY5:JYNB:MXTZ:BLGH:4QGM:3LN3
 Docker Root Dir: /mnt/data/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Version

  • Docker compose version (type docker-compose --version):
  • System info (type uname -a):

Docker compose

-

Container logs

sanderdw/hassio-addons#28

image

Additional info

No response

@sanderdw
Copy link
Author

Very strange:

Don't see the cpu in the container:
image

And also not on the HAOS itself:
image

@xirixiz
Copy link
Owner

xirixiz commented Jan 18, 2022

Hmm, vreemd. DSMR gebruikt juist minder CPU en MEM sinds de laatste release. Het lijkt idd gerelateerd aan een rechten issue. Wat heb je aangepast in 0.7.4 waardoor CPU gebruik omlaag is gegaan, dat is mij niet helemaal helder?

De opties die men heeft:

  • UID 803 en GID 1000 owner maken van de backup folder en files.
  • Kijken welke UID/GID er nu rechten heeft op/in de backup folder en die als DUID/DGID meegeven aan de container. Dan krijgt de user app in de container namelijk dat UID/GID.
  • De backup folder verwijderen en opnieuw aanmaken met voldoende rechten (dan is app met UID 803 en GID 1000 automatisch de nieuwe owner).

Ik denk dat het beste is daar eerst mee te testen. Het zetten van een UID/GID is een veelgevraagd en lang bestaand verzoek. Rechten issues zijn even lastig maar aan de andere kant ook weer eenvoudig op te lossen.

@sanderdw
Copy link
Author

Ja de UID/GID is al opgelost, dacht al dat dat het probleem zou zijn. Alleen hopen dat op elke HASSIO installatie deze het zelfde is.

CPU is nog even zoeken, post een update zodra ik meer weet.

@sanderdw
Copy link
Author

sanderdw commented Jan 18, 2022

Hoe werkt een proces als /etc/services.d/dsmr_datalogger/run? Wordt deze continu opnieuw afgetrapt?

Ik vermoed namelijk dat het hoge CPU gebruik komt door het steeds opnieuw aftrappen van alle jq commando's (nodig om de addon configuratie door te zetten naar env variabelen):
image
Hierboven zie je één regel van https://github.com/sanderdw/hassio-addons/blob/debug_cpu/dsmr_reader/rootfs/etc/cont-init.d/20-set-app-defaults#L260-L274 maar ze worden omstebeurt continu afgelopen lijkt het.

De env variabelen alleen laten zetten door /etc/cont-init.d/20-set-app-defaults is onvoldoende omdat (oa dsmr_datalogger/run) dan toch weer de default dsmrdb pakt (die uit de Docker file komt denk ik?).

En dat lijkt dus gelijk het probleem te zijn, de omgevings variabelen lijken continu overschreven te worden met de defaults?

@xirixiz
Copy link
Owner

xirixiz commented Jan 19, 2022

Ik denk dat ik begrijp wat je bedoeld, maar het is juist niet zo dat het process steeds gestopt en gestart wordt in de container. Tenminste, iig niet de bedoeling 😄.

Ik denk dat ik je het beste kan helpen wanneer ik de addon ook even in hass installeer zodat ik het kan simuleren en het beter kan begrijpen. Ik zal dat vanavond even doen. Kom ik er niet uit vind ik het ook prima om een keer in de avond er samen naar te kijken hoor.

@xirixiz
Copy link
Owner

xirixiz commented Jan 19, 2022

Ah, dat kan niet natuurlijk vanwege hassio....

@xirixiz
Copy link
Owner

xirixiz commented Jan 19, 2022

@xirixiz
Copy link
Owner

xirixiz commented Jan 19, 2022

Mogelijk is dit het issue:

S6_KEEP_ENV=1 \

https://github.com/just-containers/s6-overlay#customizing-s6-behaviour

@xirixiz
Copy link
Owner

xirixiz commented Jan 19, 2022

Please check the development release tag. I removed the S6_KEEP_ENV setting from the image.

@sanderdw
Copy link
Author

Thanks, can't do it tonight but will check asap.

@sanderdw
Copy link
Author

It's going to need a bit more time because I'm ill and undergoing surgery upcoming Tuesday. Can you make sure the currently used docker images stay on docker hub for a while? Thanks

@xirixiz
Copy link
Owner

xirixiz commented Jan 31, 2022

Any update?

@sanderdw
Copy link
Author

sanderdw commented Feb 1, 2022

I'm still in the hostpital, so unfortunately not 😕

@xirixiz
Copy link
Owner

xirixiz commented Feb 8, 2022

Ah sorry to hear @sanderdw, hope you'll be getting well soon.

@sanderdw
Copy link
Author

sanderdw commented Feb 8, 2022

I tested this a little bit a while back and still no luck, results are the same which i don't understand (sanderdw/hassio-addons@b4c76ba).

I also played a little bit changing "#!/usr/bin/with-contenv bash" to "#!/usr/bin/env bash" but not sure any more what to set.

Is the S6_KEEP_ENV setting still removed from the latest images? I need to test a 'fresh' setup i think.

@sanderdw
Copy link
Author

sanderdw commented Feb 8, 2022

Alles weer op #!/usr/bin/with-contenv bash gezet, en zoals je ziet 'onthoud' hij niet de gezette environment variables. Het zal wel echt en S6 ding zijn.

image

Het probleem is dat ik de env's vanuit script moet initialiseren (HA maakt de container automatisch aan bij starten en doet niets met ENV's). Configuratie in de addon komt als een /data/options.json object in de container runtime beschikbaar en kan dus pas na het draaien deze configuratie oppakken en de EXPORT's doen. Dit werkte voorheen dus prima maar S6 gooit (vermoed ik) roet in het eten (overigens is S6 natuurlijk wel een logische keuze voor DSMR gezien de vele processen).

Denk dat ik naar zoiets moet kijken ofzo: just-containers/s6-overlay#243
Ow zie nu dat je me daar gementioned heb 👍

@sanderdw
Copy link
Author

sanderdw commented Feb 8, 2022

Still no luck:

image

Met:
sanderdw/hassio-addons@5cc3554#diff-782414968e74963acc4f595e656049a4d364915e18bea63c67b716ed76a8ddaaR289-R305

hoewel er dus 77b2833f-timescaledb in /var/run/s6/container_environment/DJANGO_DATABASE_HOST staat 'luistert' "Starting DSMR Reader - backend..." er niet naar lijkt het.

@xirixiz
Copy link
Owner

xirixiz commented Feb 8, 2022

Ik zie in de build "oude" images staan. Heb je de build ook gestest met de laatste release?
https://github.com/sanderdw/hassio-addons/blob/debug_cpu/dsmr_reader/build.json

DOCKER BUILD: MANIFEST AMD64 - ***/dsmr-reader-docker:amd64-2022.02.02.
DOCKER BUILD: MANIFEST ARM32V6 - ***/dsmr-reader-docker:arm32v6-2022.02.02.
DOCKER BUILD: MANIFEST ARM32V7 - ***/dsmr-reader-docker:arm32v7-2022.02.02.
DOCKER BUILD: MANIFEST ARM64V8 - ***/dsmr-reader-docker:arm64v8-2022.02.02.

Vreemd dat je ook de hele tijd "ENV's being updated" voorbij ziet komen

@xirixiz
Copy link
Owner

xirixiz commented Feb 9, 2022

Ik clone de debug_cpu branch even en maak wel een PR. Kijken of het te fixen is.

@xirixiz
Copy link
Owner

xirixiz commented Feb 9, 2022

@sanderdw The vars were not initialized in a function and therefore overwritten when main was excuted. Added a separate function which runs as the last step before starting the services, but after the base variables have been set. So now the variables you specified for hassio should be set as default.

@sanderdw
Copy link
Author

sanderdw commented Feb 9, 2022

Ik zie in de build "oude" images staan. Heb je de build ook gestest met de laatste release? https://github.com/sanderdw/hassio-addons/blob/debug_cpu/dsmr_reader/build.json

DOCKER BUILD: MANIFEST AMD64 - ***/dsmr-reader-docker:amd64-2022.02.02. DOCKER BUILD: MANIFEST ARM32V6 - ***/dsmr-reader-docker:arm32v6-2022.02.02. DOCKER BUILD: MANIFEST ARM32V7 - ***/dsmr-reader-docker:arm32v7-2022.02.02. DOCKER BUILD: MANIFEST ARM64V8 - ***/dsmr-reader-docker:arm64v8-2022.02.02.

Vreemd dat je ook de hele tijd "ENV's being updated" voorbij ziet komen

Ja omdat de nieuwe release DSMR 5 bevat en volgens mij andere ENV benaming heeft? Dacht eerst even zeker weten dat alles werkt voordat ik naar de nieuwe release ga.

"ENV's being updated" is mijn eigen code https://github.com/sanderdw/hassio-addons/blob/debug_cpu/dsmr_reader/rootfs/etc/cont-init.d/20-set-app-defaults#L272, zodat ik duidelijk herken wat er gebeurt.

@sanderdw
Copy link
Author

sanderdw commented Feb 9, 2022

@sanderdw The vars were not initialized in a function and therefore overwritten when main was excuted. Added a separate function which runs as the last step before starting the services, but after the base variables have been set. So now the variables you specified for hassio should be set as default.

Heb je nieuwe branch geprobeerd maar dan komt hij niet bij de 30-set-hassio-vars
image

Dus ik heb het even overal geforceerd overal doorgevoerd: sanderdw/hassio-addons@2b7acfd

Maar toch lijkt hij ergens de oorspronkelijke dsmrdb vast te houden:
image

Kan het met https://github.com/xirixiz/dsmr-reader-docker/blob/master/rootfs/etc/cont-init.d/20-set-app-defaults#L76 te maken hebben? Wat doet die file? Het gekke is ook dat ik die niet meer zie op het moment dat de container draait?

@xirixiz
Copy link
Owner

xirixiz commented Feb 9, 2022

Probeer het nog eens op de branch in mijn forked repo. We kunnen dit ook samenvoegen in mijn code als je wilt.

https://github.com/xirixiz/hassio-addons.git

Als het goed is, dan is de code nu ook meteen v5 ready ;). We kunnen wel een keer naar de structuur kijken zodat ik misschien in mijn code een hassio argument opneem. Wanneer jij dat dan specificeert, dat dan alleen de waarden gezet worden zoals jij dat gedefenieerd hebt.

@sanderdw
Copy link
Author

sanderdw commented Feb 10, 2022

Running post configuration, dus in 20-set-app-defaults heeft hij nog de standaard dsmrdb

[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing... 
-------------------------
User UID: 0
User GID: 0
-------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-set-app-defaults: executing... 

[ INFO ] DSMR Reader release: 5.0.0

[ INFO ] DSMR Reader Docker release: 2022.02.02

[ INFO ] Ensure permissions...

[ INFO ] Setting architecture requirements...

[ INFO ] ARM Architecture

[ INFO ] Fixing /dev/ttyUSB* security...

[ INFO ] Running post configuration...
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
..................
  File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not translate host name "dsmrdb" to address: Name does not resolve
559 static files copied to '/var/www/dsmrreader/static'.

Hij gaat wel door zie ik en dan in 30-set-hassio-vars:

django.db.utils.OperationalError: could not translate host name "dsmrdb" to address: Name does not resolve

[ INFO ] Checking for NGINX SSL configuration...

[ INFO ] ENABLE_NGINX_SSL is disabled, nothing to see here. Continuing...

[ INFO ] Checking for HTTP AUTHENTICATION configuration...

[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Configuring DSMR in standlone datalogger mode....
[cont-init.d] 20-set-app-defaults: exited 0.
[cont-init.d] 30-set-hassio-vars: executing... 
/var/run/s6/etc/cont-init.d/30-set-hassio-vars: line 10: _info: command not found
/var/run/s6/etc/cont-init.d/30-set-hassio-vars: line 11: _info: command not found
...........
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not translate host name "77b2833f-timescaledb
" to address: Name does not resolve
Starting DSMR Reader - backend...
Starting DSMR Reader - datalogger...

could not translate host name is gek want 77b2833f-timescaledb is wel de goede.

@sanderdw
Copy link
Author

sanderdw commented Feb 10, 2022

😃

Heb even scratch even alles opnieuw gedaan en je laatste images + code gebruikt van de master en het lijkt nu te werken met deze branch:

https://github.com/sanderdw/hassio-addons/tree/debug_cpu

Moet nog wel even goed testen.

Ook heeft de (migratie) stap naar v5 nog wel impact geloof ik? Zie namelijk dit in de log staan:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing... 
-------------------------
User UID: 0
User GID: 0
-------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-set-app-defaults: executing... 

[ INFO ] dsmrdb

[ INFO ] ENV's being updated (20-set-app-defaults)

[ INFO ] DSMR Reader release: 5.0.0

[ INFO ] DSMR Reader Docker release: 2022.02.02

[ INFO ] Ensure permissions...

[ INFO ] Setting architecture requirements...

[ INFO ] ARM Architecture

[ INFO ] Enabling IFrame...

[ INFO ] Fixing /dev/ttyUSB* security...
chmod: changing permissions of '/dev/ttyUSB0': Read-only file system
chmod: changing permissions of '/dev/ttyUSB1': Read-only file system

[ INFO ] Verifying if the DSMR web credential variables have been set...

[ INFO ] Verifying database connectivity to host: 77b2833f-timescaledb with port: 5432...

[ INFO ] Database connectivity successfully verified!

[ INFO ] Running post configuration...
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_dropbox, dsmr_frontend, dsmr_influxdb, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions
Running migrations:
  Applying dsmr_backup.0014_dropbox_oauth... OK
  Applying dsmr_frontend.0044_v4_20_0_release... OK
  Applying dsmr_influxdb.0005_influxdb_v2_support... OK
  Applying dsmr_influxdb.0006_influxdb_settings_field_size... OK
559 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "admin"
Deactivating any other existing superusers

[ INFO ] Checking for NGINX SSL configuration...

[ INFO ] ENABLE_NGINX_SSL is disabled, nothing to see here. Continuing...

[ INFO ] Checking for HTTP AUTHENTICATION configuration...

[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Configuring DSMR in standlone datalogger mode....
[cont-init.d] 20-set-app-defaults: exited 0.
[cont-init.d] 30-set-hassio-vars: executing... 

[ INFO ] Home Assistant Add-on release: 0.7.5
[cont-init.d] 30-set-hassio-vars: exited 0.
[cont-init.d] done.
[services.d] starting services
Starting DSMR Reader - backend...
Starting DSMR Reader - webinterface...
Starting DSMR Reader - nginx...
Starting DSMR Reader - datalogger...
[services.d] done.
2022/02/10 12:28:13 [crit] 360#360: *1 connect() to unix:///tmp/gunicorn--dsmr_webinterface.socket failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: _, request: "GET /about HTTP/1.1", upstream: "http://unix:///tmp/gunicorn--dsmr_webinterface.socket:/about", host: "127.0.0.1"
127.0.0.1 - - [10/Feb/2022:12:28:13 +0100] "GET /about HTTP/1.1" 502 150 "-" "curl/7.79.1" "-"
[2022-02-10 12:28:13 +0100] [344] [INFO] Starting gunicorn 20.1.0
[2022-02-10 12:28:13 +0100] [344] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (344)
[2022-02-10 12:28:13 +0100] [344] [INFO] Using worker: sync
[2022-02-10 12:28:13 +0100] [379] [INFO] Booting worker with pid: 379
Current logging level set to "WARNING". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
Current logging level set to "WARNING". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
could not find a "pg_dump" to execute
pg_dump: warning: there are circular foreign-key constraints on this table:
pg_dump:   hypertable
pg_dump: You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints.
pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem.
pg_dump: warning: there are circular foreign-key constraints on this table:
pg_dump:   chunk
pg_dump: You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints.
pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem.
127.0.0.1 - - [10/Feb/2022:12:28:20 +0100] "GET /about HTTP/1.1" 200 17388 "-" "curl/7.79.1" "-"

Dus "could not find a "pg_dump" to execute" & de pg_dump warnings?

@xirixiz
Copy link
Owner

xirixiz commented Feb 10, 2022

Dit lijkt meer in relatie te staan met DSMR Reader. Weet jij hoe we dit op kunnen lossen @dennissiemensma ?

@dennissiemensma
Copy link
Contributor

Zonder het hele Issue door te lezen zie ik dit:

could not find a "pg_dump" to execute

Ik denk dat die binary wel eerst geinstalleerd moet worden. Alleen is het wel vreemd dat die daarna daaronder doodleuk een melding vanuit pg_dump zelf lijkt te geven.

Overigens zegt deze tabel mij niets:

pg_dump: warning: there are circular foreign-key constraints on this table:
pg_dump:   hypertable

@dennissiemensma
Copy link
Contributor

dennissiemensma commented Feb 10, 2022

Context van wat DSMR-reader doet overigens:

Ik krijg geen waarschuwing als ik het handmatig doe:

(.venv) dsmr@rpi4:~/dsmr-reader $ ./manage.py dsmr_backup_create --full
Created full backup: /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-backup-Thursday.sql.gz
(.venv) dsmr@rpi4:~/dsmr-reader $ ./manage.py dsmr_backup_create --compact
Created partial backup: /home/dsmr/dsmr-reader/backups/manually/dsmrreader-postgresql-partial-backup-2022-02-10.sql.gz

Maar misschien is dit hypertable wel iets buiten DSMR-reader. Zegt jullie dat wat?

@dennissiemensma
Copy link
Contributor

dennissiemensma commented Feb 10, 2022

Ik draai trouwens nog wel Postgres 11 zie ik, dus wellicht verschilt dat ook nog, als die van jullie bijvoorbeeld 13 is.

(.venv) dsmr@rpi4:~/dsmr-reader $ pg_dump --version
pg_dump (PostgreSQL) 11.14 (Raspbian 11.14-0+deb10u1)

@sanderdw
Copy link
Author

Heb even gekeken en het is Postgres 12 wanneer men de TimescaleDB addon gebruikt (ook een HA addon maar beheerd door iemand anders).

Hypertable is blijkbaar iets specifieks van TimescaleDB na een snelle search. Dus dat zal ik even verder moeten onderzoeken (alleen HA gebruikers gebruiken die TimescaleDB addon namelijk).

Het pg_dump verhaal staat hier wel weer los van denk ik.

@sanderdw
Copy link
Author

Het Timescaledb verhaal lijkt het volgende te zijn, dus niet zo belangrijk:
timescale/timescaledb#1581

@dennissiemensma, zou dit het probleem kunnen zijn wat betreft de pg_dump melding? https://stackoverflow.com/questions/65191779/pg-dump-error-in-docker-but-still-executes-successfully (zie overigens maar 1 pg_dump)

Dus het toevoegen van **os.environ aan:?
https://github.com/dsmrreader/dsmr-reader/blob/v5/dsmr_backup/services/backup.py#L92-L93

Na wat testen zie ik dat het 'probleem' zich ook voordoet (alleen versie installatie of upgrade) met de eerdere v4 en de vorige image opzet van @xirixiz (https://github.com/sanderdw/hassio-addons/blob/master/dsmr_reader/build.json).

Ik kan het eventueel ook wel testen hoor door die backup.py te overschrijven met een testversie.

@dennissiemensma
Copy link
Contributor

Ik krijg dezelfde fout in mn dev-docker setup. Bovenstaande fixt het niet, de PostgreSQL client mist gewoon, waar dat command bij zit als util.

Bij mij fixte het bouwen van de image met:

apt-get install postgresql-client

Waarbij de client-versie wel moet overeenkomen met server-versie, anders krijg je zoiets:

OSError: b'pg_dump: server version: 13.3 (Debian 13.3-1.pgdg100+1); pg_dump version: 11.14 (Debian 11.14-0+deb10u1)\npg_dump: aborting because of server version mismatch\n'

@dennissiemensma
Copy link
Contributor

Werkt deze overigens wel? which pg_dump

@dennissiemensma
Copy link
Contributor

Je zou namelijk kunnen checken of het PATH wel klopt. Hier is die vrij breed gespecificeerd, waardoor die ook pg_dump vindt:

 'PATH': '/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

Hier is het: /usr/bin/pg_dump

@xirixiz
Copy link
Owner

xirixiz commented Feb 11, 2022

pg_dump zit in de Docker image. De melding komt ergens anders vandaan inderdaad, en ik vermoed dat het inderdaad te maken heeft met de versie van PG.

-> docker exec -ti dsmr bash
root@dsmr_reader_docker:/app# which pg_dump
/usr/bin/pg_dump

De error komt denk ik door het zetten van de vars:
https://stackoverflow.com/questions/65191779/pg-dump-error-in-docker-but-still-executes-successfully

@sanderdw
Copy link
Author

Waarbij de client-versie wel moet overeenkomen met server-versie, anders krijg je zoiets:

Of gewoon een nieuwere versie, hij past zich dan automatisch aan de server versie, zie ook https://www.postgresql.org/docs/10/app-pgdump.html#:~:text=pg_dump%20can%20also%20dump%20from,risk%20making%20an%20invalid%20dump.

@xirixiz
Copy link
Owner

xirixiz commented Feb 11, 2022

Alleen is er geen nieuwere versie. Dit is de huidige versie in Docker.

pg_dump (PostgreSQL) 13.5

@dennissiemensma
Copy link
Contributor

dennissiemensma commented Feb 11, 2022 via email

@sanderdw
Copy link
Author

Idd, dus aan de software installatie ligt het niet.

Ben even aan het testen met: sanderdw/hassio-addons@c87fee0

Lijkt tot nu toe het probleem op te lossen. Moet nog even wat migratie dingen checken.

@sanderdw
Copy link
Author

Volgens mij is het probleem inderdaad opgelost hiermee:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing... 
-------------------------
User UID: 0
User GID: 0
-------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-set-app-defaults: executing... 

[ INFO ] HA Addon - ENV's being updated

[ INFO ] DSMR Reader release: 5.0.0

[ INFO ] DSMR Reader Docker release: 2022.02.02

[ INFO ] Ensure permissions...

[ INFO ] Setting architecture requirements...

[ INFO ] ARM Architecture

[ INFO ] Enabling IFrame...

[ INFO ] Fixing /dev/ttyUSB* security...
chmod: changing permissions of '/dev/ttyUSB0': Read-only file system
chmod: changing permissions of '/dev/ttyUSB1': Read-only file system

[ INFO ] Verifying if the DSMR web credential variables have been set...

[ INFO ] Verifying database connectivity to host: 77b2833f-timescaledb with port: 5432...

[ INFO ] Database connectivity successfully verified!

[ INFO ] Running post configuration...
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_dropbox, dsmr_frontend, dsmr_influxdb, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions
Running migrations:
  Applying dsmr_backup.0014_dropbox_oauth... OK
  Applying dsmr_frontend.0044_v4_20_0_release... OK
  Applying dsmr_influxdb.0005_influxdb_v2_support... OK
  Applying dsmr_influxdb.0006_influxdb_settings_field_size... OK
559 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "admin"
Deactivating any other existing superusers

[ INFO ] Checking for NGINX SSL configuration...

[ INFO ] ENABLE_NGINX_SSL is disabled, nothing to see here. Continuing...

[ INFO ] Checking for HTTP AUTHENTICATION configuration...

[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Configuring DSMR in standlone datalogger mode....
[cont-init.d] 20-set-app-defaults: exited 0.
[cont-init.d] 30-set-hassio-vars: executing... 

[ INFO ] Home Assistant Add-on release: 0.7.5
[cont-init.d] 30-set-hassio-vars: exited 0.
[cont-init.d] done.
[services.d] starting services
Starting DSMR Reader - webinterface...
Starting DSMR Reader - datalogger...
Starting DSMR Reader - backend...
Starting DSMR Reader - nginx...
2022/02/11 12:31:00 [crit] 352#352: *1 connect() to unix:///tmp/gunicorn--dsmr_webinterface.socket failed (2: No such file or directory) while connecting to upstream, client: 192.168.100.99, server: _, request: "GET /xhr/header HTTP/1.1", upstream: "http://unix:///tmp/gunicorn--dsmr_webinterface.socket:/xhr/header", host: "192.168.100.5:7777", referrer: "http://192.168.100.5:7777/"
192.168.100.99 - - [11/Feb/2022:12:31:00 +0100] "GET /xhr/header HTTP/1.1" 502 552 "http://192.168.100.5:7777/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" "-"
[services.d] done.
[2022-02-11 12:31:00 +0100] [339] [INFO] Starting gunicorn 20.1.0
[2022-02-11 12:31:00 +0100] [339] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (339)
[2022-02-11 12:31:00 +0100] [339] [INFO] Using worker: sync
[2022-02-11 12:31:00 +0100] [375] [INFO] Booting worker with pid: 375
Current logging level set to "WARNING". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
Current logging level set to "WARNING". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
127.0.0.1 - - [11/Feb/2022:12:31:05 +0100] "GET /about HTTP/1.1" 200 14926 "-" "curl/7.79.1" "-"
192.168.100.99 - - [11/Feb/2022:12:31:05 +0100] "GET /xhr/header HTTP/1.1" 200 144 "http://192.168.100.5:7777/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36" "-"

@sanderdw
Copy link
Author

sanderdw commented Feb 11, 2022

Ik heb een beta van de addon klaargezet om wat gebruikers te laten testen. @xirixiz, heb de opzet nog wat simpeler gemaakt, deze is hier te zien: https://github.com/sanderdw/hassio-addons/tree/v5/dsmr_reader

@dennissiemensma , ik heb nu dus https://github.com/sanderdw/hassio-addons/blob/v5/dsmr_reader/dsmrreader/backup.py als een override toegevoegd welke lijkt te werken. Zal ik een PR maken om dit toe te voegen in je code? Je zal nog wel even moeten checken of het niet breekt in andere omgevingen?

Bedankt voor de hulp heren, zonder jullie was het niet gelukt 👍

@dennissiemensma
Copy link
Contributor

dennissiemensma commented Feb 11, 2022 via email

@dennissiemensma
Copy link
Contributor

Volgens mij werkt het wel goed. Of laat ik het anders zeggen, ik kan nog steeds een backup maken.

Ik zal het onderdeel maken van DSMR-reader v5.1

@xirixiz
Copy link
Owner

xirixiz commented Feb 12, 2022

Ik heb een beta van de addon klaargezet om wat gebruikers te laten testen. @xirixiz, heb de opzet nog wat simpeler gemaakt, deze is hier te zien: https://github.com/sanderdw/hassio-addons/tree/v5/dsmr_reader

@dennissiemensma , ik heb nu dus https://github.com/sanderdw/hassio-addons/blob/v5/dsmr_reader/dsmrreader/backup.py als een override toegevoegd welke lijkt te werken. Zal ik een PR maken om dit toe te voegen in je code? Je zal nog wel even moeten checken of het niet breekt in andere omgevingen?

Bedankt voor de hulp heren, zonder jullie was het niet gelukt 👍

Dat matcht precies met wat ik wilde doen in een PR op jouw repo 👍

@xirixiz
Copy link
Owner

xirixiz commented Feb 12, 2022

@dennissiemensma verder overigens geen issues meer gevonden van gebruikers . Je vedient dus een 🥇!

@sanderdw
Copy link
Author

@dennissiemensma
Copy link
Contributor

Ik zal het onderdeel maken van DSMR-reader v5.1

De release is naar verwachting morgenavond.

@dennissiemensma
Copy link
Contributor

https://github.com/dsmrreader/dsmr-reader/releases/tag/v5.1.0

@xirixiz
Copy link
Owner

xirixiz commented Mar 1, 2022

Docker image released as well for 5.1.0.

@sanderdw
Copy link
Author

sanderdw commented Mar 3, 2022

HA addon 5.1.0 as well 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants