Von: Alex Winzer <alex.e-mail@gmx.de> Gesendet: Freitag, 13. Mai 2016 09:55 An: opensuse-de@opensuse.org Betreff: Samba und FindFirstFile
Hallo,
ich beobachte seit einiger Zeit ein Problem mit meinen Windows-Rechnern am Fileserver (4.1.1-1.ga46abf6-desktop; Samba 4.4.2-4.1-3643-SUSE-oS13.1-x86_64; ich verwende das Modul/Plugin dirsort).
Und zwar werden - möglicher Weise in Abhängigkeit von der Zeichenlänge - nach einer bestimmten Anzahl von Dateien keine weiteren Dateien mehr "gefunden". Wenn ich also mit der Funktion FindFirstFile() aus der Windows-API ein Verzeichnis durchforste, und Änderungen vornehme (z.B. Löschen, Umbenennen) ist im Schnitt nach 120 Dateien Schluss; selbst wenn das Verzeichnis z.B. 150 Dateien enthält. Dasselbe Phänomen gibt es übrigens auch bei Software, die nach meiner Vermutung in C++ geschrieben ist (z.B. [1]) und bei alternativen API-Funktionen.
Dieses Problem tritt nicht auf, wenn ich mit derselben API-Funktion einfach nur die Datei(nam)en anzeigen lassen. Oder wenn die Windowsen untereinander mit Dateifreigaben arbeiten. Es tritt auch nicht auf, wenn ich dirsort nicht verwende.
Kurzum: ich vermute also Samba/Dirsort dahinter. Allerdings habe ich bislang keinen Bugreport aufgemacht, weil ich bei google dazu nichts finden kann. Was mich bei der Problematik wiederum verwundert.
Kann bitte mal jemand dieses Verhalten prüfen? Ich stelle per PM auch gern Quellcode, exe-Dateien zur Verfügung.
Ich würde dann nämlich dochmal mein ganzes Englisch zusammen kehren und einen Bugreport bei Samba aufmachen.
Gruß, Alex
[1] http://silk.apana.org.au/fc2development.html -- 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
Am 13.05.2016 um 11:11 schrieb Handwerker, Jan (IMK):
Hallo Alex,
zur Lösung kann ich überhaupt nicht beitragen. Aber ich beobachte ein ähnliches Verhalten, wenn ich Matlab unter OS 13.1 verwende. Wenn ich aus Matlab heraus ein system('find ...') absetze, fehlt manchmal ein Teil der zu findenden Dateien. Ich habe auch schon zum Test Dateien mit system('cat ...') "eingelesen" und bei größeren Dateien auch nur einen Teil erhalten.
Wenn ich gleich darauf den gleichen Befehl noch einmal absetze, bekomme ich den fehlenden Rest vom letzten Systemaufruf und erst dahinter den Output des aktuellen Aufrufs.
In der Zwischenzeit befürchte ich, dass es sich um einen Fehler auf der Linuxseite handelt, nicht um einen von Matlab. Aber dazu kann ich nicht tief genug in die Vorgänge hineinschauen.
BTW: Die Dateien, die "find" finden soll, liegen bei mir auf der lokalen Platte.
Gruß Jan ________________________________________
Hi, zu Alex' Frage kann ich auch nix sagen (obwohl, könnte das gleiche Phänomen sein). Bei Jans Mathlab-Problemen könnte ich mir jedenfalls gut eine begrenzte Länge des Speicherplatzes für die Variable, die das Ergebnis des Systemrufs enthält, vorstellen. Ich glaube nicht, das ein find oder cat unter Linux nur Teile zurückgibt. Aber irgendwo müssen die Rückgabewerte des Systems ja landen, und ob da genug Platz reserviert ist oder dynamisch zugewiesen werden kann...? cu jth -- www.teddylinx.de -- 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