RSS Feed

Posts Tagged ‘bug’

  1. Tcptrack i Debian Squeeze

    Maj 25, 2011 by 0verlord

    Można się zdziwić, że po upgrade do Squeeze’a tcptrack nie działa. Wyjaśnienie jest tu: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602232.

    Generalnie chodzi o to, że działająca wersja 1.4.x nie zdążyła wejść do Squeeze’a, a stara nie działa na nowym kernelu. Czyli grave bug i paczka wyleciała ze stabla. Czyli trzeba by sobie zbackportować nowszą wersję z SIDa, bo nawet na backports.debian.org jej nie ma.


  2. Backupninja 0.9.8, backup mysqla w vserverze i bug

    Kwiecień 27, 2011 by 0verlord

    Objawia się tak: mamy sobie głównego hosta, i kilka guestów (vserverów). Na jednym z nich chodzi mysql. Dodajemy akcję do backupninja przy pomocy helpera, żeby nam robił dumpa wszystkich baz. Konfiguracja z ninjahelperem jest banalna, więc ją pominę. Error w debugu wygląda np. tak dla losowej bazy:
    Debug: su root -c "/usr/sbin/vserver mysql exec /usr/bin/mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --lock-tables --complete-insert --add-drop-table --quick --quote-names sugarcrm -r '/home/vservers/mysql/var/backups/mysql/sqldump/sugarcrm.sql'"
    Warning: mysqldump: Can't create/write to file '/home/vservers/mysql/var/backups/mysql/sqldump/sugarcrm.sql' (Errcode: 2)
    Warning: Failed to dump mysql databases sugarcrm

    Teraz ocb? Skrypt wykonujący backup, konkretnie ten (na Debianie):
    /usr/share/backupninja/mysql
    wydaje się nie zauważać, że wykonuje polecenie w środku vservera, więc nie ma tam katalogu podanego jako parametr do polecenia. To co widać powyżej, szuka katalogu
    /home/vservers/mysql/var/backups/mysql/sqldump
    ale w środku vservera, czyli jak byśmy zrobili na gueście katalog taki:
    /home/vservers/mysql/var/backups/mysql/sqldump
    widziany z poziomu maina jako
    /home/vservers/home/vservers/mysql/var/backups/mysql/sqldump
    to by się backup zrobił, ale szukać by go trzeba gdzie indziej.

    Jak to naprawić? Generalnie bez zagłębiania się w logikę kodu, i zdając sobie sprawę, że mogę popsuć coś innego, hackujemy sobie na szybko
    /usr/share/backupninja/mysql,
    linijka 287 i okolice.

    # Test to make sure mysqld is running, if it is not sqldump will not work
    $VSERVER $vsname exec su $user -c "$MYSQLADMIN $defaultsfile ping 2>&1 >/dev/null"
    if [ $? -ne 0 ]; then
    fatal "mysqld doesn't appear to be running!"
    fi
    if [ "$compress" == "yes" ]; then
    execstr="$VSERVER $vsname exec $DUMP | $GZIP $GZIP_OPTS > '$vroot$dumpdir/${db}.sql.gz'"
    else
    execstr="$VSERVER $vsname exec $DUMP -r '$vroot$dumpdir/${db}.sql'"
    fi
    else

    usuwamy ‚$vroot’ z linijek zaczynających się na execstr, i zostaje samo ‚$dumpdir’. czyli tutaj ‚/var/backups/mysql/sqldump’ czyli tak, jak ma być.
    I to wszystko. W ten sposób usuwamy /home/vservers z argumentu do vserver exec i już polecenie widzi odpowiedni katalog.

    Ciekawe, że nikt tego nie znalazł do tej pory, bo buga poprawiam drugi raz, pierwszy raz trafiłem go w Lenny’m i się pojawił po upgrade do Squeeze’a.


  3. nagiosgraph,rrd, nan i brak wartości na grafie

    Styczeń 24, 2011 by 0verlord

    Ot takie coś trafiłem.

    on Jan 24 18:32:20 2011 p1.pl error RRDs::update ERR /var/spool/nagiosgraph/rrd/internal/HTTP___time.rrd: conversion of ‚0,000000’ to float not complete: tail ‚,000000’

    Efektem tego komunikatu jest wyświetlanie pustego wykresu z ostatnimi wartościami typu nan (not a number) czyli ogólnie nic nie wyświetlającego.
    Po dłuższej chwili dłubania wyszło i szukania, że jest to błąd spowodowany ustawieniem localesów (konkretnie wartości LC_NUMERIC) na coś innego niż „C”. U mnie jest pl_PL.UTF-8, ale niestety skrypty perlowe upychające perfdata do rrd niezbyt to rozumieją.

    Sam komunikat wbrew pozorom jest dość jasny – chodzi tutaj o skrypt p1.pl, który w domyślnej instalacji siedzi w /usr/lib/nagios3
    Dodajemy temu skryptu na początku coś w tym stylu:

    BEGIN {
     $ENV{LC_NUMERIC} = 'C';
    }
    

    albo cokolwiek innego ustawiającego LC_NUMERIC na ‚C’ i nagle nan już jest normalną wartością. Eh, uwielbiam takie akcje.

    W każdym razie, ten problem dotyczy wszystkich localesów, w których poprawną miejsce dziesiętne w liczbie jest oznaczane przecinkiem, a nie kropką.