----- On Feb 13, 2016, at 9:54 AM, David Haller dnh@opensuse.org wrote:
Hallo,
Am Fri, 12 Feb 2016, Lentes, Bernd schrieb:
ich habe ein Problem mit Umleitungen in Zusammenhang mit lvcreate. In einem skript lege ich einen snapshot für ein LV an:
echo "lvcreate:" >> /var/log/update.log 2>&1 /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1
Bei diesem Befehl bleibt das System (ist ne VM) stehen. Ich krieg sie nur noch mit Magic SysRq neu gestartet.
Das log wird genau bis hier geschrieben:
... lvcreate: [..] Suspending vg1-lv_root (252:0) with filesystem sync with device flush
Das ganze ist reproduzierbar. Der Hammer ist: Lass ich die Umleitung von stderr weg, läuft das skript durch und macht was es soll und die Maschine bleibt nicht stehen. Das ist auch reproduzierbar. Sprich: "/sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log" funktioniert. Ich kann die Umleitung von stderr natürlich weglassen, aber mich interessiert vor allem wieso das nicht funktioniert.
Seehr seltsam. Kannst du mal Varianten testen?:
lvcreate ... 2>&1 | tee /var/log/update.log unbuffer lvcreate ... >>/var/log/update.log 2>&1
Oder evtl. mal ein strace/ltrace drauf loslassen?
LANG=C ltrace -f -S -s 128 -o lvcreate.ltrace \ lvcreate ... >>/var/log/update.log 2>&1
Das lvcreate.ltrace wird sicher sehr groß, schick das NICHT an die Liste, sondern komprimiert als .gz/.bz2/.xz per PM an mich. Ich guck dann mal drüber und ggfs. kannst du's immer noch bei paste.opensuse.org raufladen ;)
Falls eine oder beide der obigen Varianten tun, wäre ein Vergleich interessant, also
LANG=C ltrace -f -S -s 128 -o lvcreate_tee.ltrace \ lvcreate ... 2>&1 | tee /var/log/update.log bzw.
LANG=C ltrace -f -S -s 128 -o lvcreate_unbuffer.ltrace \ unbuffer lvcreate ... >>/var/log/update.log 2>&1
BTW: strace/ltrace sind für mich unverzichbare Werkzeuge ;) Damit kann man scheinbar völlig unverständliches Verhalten eines Programmes aufklären ;)
Hallo David, mit unbuffer klappt das, das skript läuft dann durch. Mein Kommando sieht dann wie folgt aus: unbuffer /sbin/lvcreate -v -L 25G -n lv_root_snapshot -s vg1/lv_root >> /var/log/update.log 2>&1 Das mit dem tee habe ich nicht versucht. Das mit dem ltrace mach ich noch und schicke Dir das. Vielen Dank schon mal. Bernd Helmholtz Zentrum München Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Dr. Alfons Enhsen, Renate Schlusen (komm.) Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org