Hallo, Am Dienstag, 1. Februar 2005 21:02 schrieb David Haller:
Am Tue, 01 Feb 2005, Wolfgang Hinsch schrieb:
Am Dienstag, 1. Februar 2005 15:10 schrieb David Haller:
Ich habe jetzt nochmal nachgeschaut, der eigentliche Fehler war ja, dass md5sum eine zu lange Kommandozeile uebergeben wurde und somit nicht ausgefuehrt werden konnte. Kannst du evtl. mal den Returncode ueberpruefen, der muesste eigentlich 'E2BIG' "Argument list too long" sein.
126 Argument list too long
*g*
Was die Begrenzung angeht: das muesste man eigentlich vorher machen, denn der Fehler kommt _wegen_ der Begrenzung. Woher kommen eigentlich diese pervers langen Dateinamen?
Die sind eigentlich gar nicht so lang, nur so um die 180 Zeichen. Aber er will 1423 (!) Filenamen gleichzeitig übergeben. Und dann streikt md5sum.
Achso. Das ist dann ein Fehler von StoreBackup.
Die Begrenzung wollte ich eigentlich so angeben, dass storeBackup sich mäßigt. Wo hat der Bengel eigentlich diesen riesigen Wert für die Zeilenlänge oder Argumentliste her??
Keine Ahnung. Normal wird die von configure abgefragt, aber viele Programme verwenden die wohl nicht. Da muesste man sich mal SB selber anschauen, wie md5sum aufgerufen wird.
Ausserdem ist das eh eigenartig, denn perl bringt Digest::MD5 mit. Und SB ist doch in perl, oder?
So, ich hab mir jetzt storeBackup mal runtergeladen. Du kannst die Parameterlaenge in StoreBackup.pl aendern. Schau bitte mal in die Logdatei, wenn du dort einen Infostring in der Art:
setting ARG_MAX to <WERT>
und die Ausgabe von 'uname' "Linux" ist, dann kannst du in Zeile 125 den Wert hinter "'Linux' => " anpassen:
my (%execParamLength) = ('AIX' => 22 * 1024, 'Linux' => 124 * 1024);
Ich wuerde mal '120 * 1024' probieren, und dann '60 * 1024'.
Treffer, versenkt! Ich habe ihn auf 62 * 1024 gesetzt, die Länge war nach vi-Test um Faktor 2 zu groß. Jetzt läuft es! Ich vermute mal, dass das ganze irgendwo mit einem Faktor 2 zusammenhängt, der die maximale Größe von char beschreibt und bisher durch 8 Bit immer auf 1 stand, jetzt aber für UTF-8 auf 2 steht. An 32/64-Bit liegt es nicht, denn eine Parallelinstallation eines 9.2 mit 32 Bit bringt denselben Fehler. Möglicherweise gibt es da in anderen Funktionen auch noch Wirkungen, denn ein Kollege berichtete von ähnlichen Problemen in einem anderen Script, aber dafür melde ich mit ggf. nochmal. Vielen Dank allen die geholfen haben, insbesondere auch an David. Gruß und schönen Abend, Wolfgang