Puncte:1

Actualizarea pachetelor a cauzat blocarea bazei de date

drapel us

O confluență cu adevărat ciudată de dependențe a dus la o blocare ciudată a bazei de date. Context:

  • CentOS 7.9
  • LVM2-2.02
  • Postgresql 12, cu volum de date pe un volum LVM, formatat XFS
  • systemd
  • dbus

În timp ce sistemul era activ și stabil, iar baza de date rula normal, am efectuat a yum actualizare. În timpul actualizării, mai multe volume au fost demontate, inclusiv cel pe care a fost montată baza de date. Acest lucru a dus la mesajul de panică:

2021-08-12 21:12:35.418 CEST PANIC: Nu s-a putut deschide fișierul ""/var/lib/pgsql/current/data/global/pg_control"": Nu există un astfel de fișier sau director

Jurnalele jurnalului arată că câteva pachete au fost actualizate în minutele premergătoare acestui accident. Nu există mesaje de jurnal intermediare de la postgresql care ar putea să-l restrângă.

Aparent ceva în /etc/fstab este configurat incorect, dar următorul mesaj poate fi văzut cu mult înainte de actualizarea yum:

Aug 12 18:27:32 git.uibk.ac.at systemd-fstab-generator[19273]: Verificarea a fost solicitată pentru „none”, dar nu este un dispozitiv.

și frecvent în timpul actualizării. Așa că consider asta un hering roșu.

Systemd este actualizat și repornit:

12 august 21:11:46 git.uibk.ac.at systemd[1]: Reexecutarea.
12 august 21:11:46 git.uibk.ac.at systemd[1]: systemd 219 rulează în modul sistem. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)

Asta cu 45 de secunde înainte de accident. Imediat după aceasta, vedem:

12 august 21:11:46 git.uibk.ac.at systemd[1]: [/etc/systemd/system/rsyslog.service.d/partof-journald.conf:2] Atribuire în afara secțiunii. Ignorând.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Sistemele de fișiere la distanță țintă oprite.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Oprirea sistemelor de fișiere la distanță.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Unset automount mnt-git\x2drepodata.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Oprirea mnt-git\x2drepodata.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Configurați automount mnt-git\x2drepodata.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Sistemele de fișiere de la distanță țintă atinse.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Unset automount Formate de fișiere executabile arbitrare Sistem de fișiere Punct de montare automată.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Oprirea punctului de montare automată a sistemului de fișiere cu formate de fișiere executabile arbitrare.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Configurați punctul de montare automată a sistemului de fișiere cu formate de fișiere executabile arbitrare.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Sistemele de fișiere locale țintă oprite.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Oprirea sistemelor de fișiere locale.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Dezactivați montarea automată var-lib-pgsql.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Oprirea var-lib-pgsql.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: var-lib-pgsql.automount: Directorul /var/lib/pgsql de montat nu este gol, se montează oricum.

De ce de ce???? .... DE CEYYYYYYYYY!!!! În orice caz, se pare că nu a funcționat corect.

12 august 21:11:46 git.uibk.ac.at systemd[1]: Configurați montarea automată var-lib-pgsql.automount.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Se montează /var/lib/pgsql/current/pg_stat_tmp...
12 august 21:11:46 git.uibk.ac.at systemd[1]: Montat /var/lib/pgsql/current/pg_stat_tmp.
12 august 21:11:46 git.uibk.ac.at systemd[1]: Sistemele de fișiere locale țintă atinse.

De asemenea, acest volum nu a fost montat la scurt timp după aceea și a trebuit să fie remontat manual în timpul procesului de recuperare.

Alte câteva mesaje apar înainte de PANIC:

12 august 21:12:32 git.uibk.ac.at yum[12642]: Instalat: kernel-3.10.0-1160.36.2.el7.x86_64
12 august 21:12:33 git.uibk.ac.at yum[12642]: Actualizat: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
12 august 21:12:33 git.uibk.ac.at systemd[1]: Reîncărcare.
12 august 21:12:34 git.uibk.ac.at yum[12642]: Actualizat: 7:lvm2-2.02.187-6.el7_9.5.x86_64
12 august 21:12:34 git.uibk.ac.at yum[12642]: Actualizat: 1:nfs-utils-1.3.0-0.68.el7.1.x86_64

Și apoi acestea două, în mod ciudat, nu în ordinea corectă:

12 august 21:12:35 git.uibk.ac.at systemd[1]: postgresql-12.service: proces principal ieșit, cod=ieșit, stare=1/Eșec
12 august 21:12:35 git.uibk.ac.at kernel: XFS (dm-6): Demontarea sistemului de fișiere

dm-6 este în prezent (după repornire) volumul de schimb, deci...?

Iată o listă a volumelor, excluzând suspecții obișnuiți:

/dev/mapper/vgdata-git--db pe /var/lib/pgsql tip xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvroot pe / tip xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvtmp pe /tmp tip xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/vgroot-lvvar pe /var tip xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/vda1 pe /boot type ext4 (rw,relatime,seclabel,data=ordered)
nfsshare:/git/qt-gitlab pe /mnt/git-repodata tip nfs (rw,relatime,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec= sys,mountport=635,mountproto=udp,local_lock=none)
niciunul pe /var/lib/pgsql/12/pg_stat_tmp tip tmpfs (rw,relatime,seclabel,size=16384k,mode=770,uid=102,gid=26)
systemd-1 pe /mnt/git-repodata tip autofs (rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13188)
systemd-1 pe /proc/sys/fs/binfmt_misc tip autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13146)
systemd-1 pe /var/lib/pgsql tip autofs (rw,relatime,fd=41,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13753)

Nu am mai văzut așa ceva până acum pe niciun sistem Linux modern. Este acest „comportament așteptat” al systemd atunci când este actualizat sau re-executat?

Michael Hampton avatar
drapel cz
Demontarea și remontarea sistemelor de fișiere este _nu_ un comportament normal. Bănuiesc că ați omis o intrare de jurnal cu informații importante. Vă rugăm să postați jurnalul _complet_ care acoperă timpul în care actualizarea a rulat și a apărut problema.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.