Archiv der Kategorie: mac

mac os mavericks langsamer Zugriff auf Sambafreigabe

Ein Kollege arbeitet seit Jahren mit Mac OS und für seine Bildablage etc nutzt er Sambafreigaben, die er auf einem Linux(Ubuntu) eingerichtet hat.

Bisher hat er die Verbindung über smb://192.168.1.10 aufgebaut und hatte an der Zugriffsgeschwindigkeit nichts auszusetzen. Seit dem Update auf Mavericks wird die Verbindung zur Sambafreigabe nur langsam aufgebaut und Inhalte der Freigabe werden meistens nicht dargestellt.

Das Problem liegt bei der Implementierung des SMB2 Protokolls bei Mavericks, es gibt hier einen Unterschied zu Linux und Windows. Wenn die Freigabe über cifs://192.168.1.10 eingebunden wird, kann die Freigabe mit der gewohnten Zugriffsgeschwindigkeit genutzt werden.

Festplatte aus einem Mac unter Linux mounten

Beim mounten einer Festplatte die mit hfsplus formatiert war, erhielt ich die folgende Meldung in der /var/log/syslog.

hfs: unable to find HFS+ superblock

Damit Ubuntu die Festplatte überhaupt erkannte, musste ich zuvor die hfsprogs(apt-get install hfsprogs) installieren.

Mit Hilfe von fdisk /dev/sde fand ich heraus, das die Festplatte anscheinend nur eine Partition hat. Diese versuchte ich mit mount -t hfsplus /dev/sde1 /media/temp zu mounten, jedoch ohne Erfolg. Im Internet fand ich die verschiedensten Optionen die ich mit angeben konnte, die Lösung war aber die zweite Partition zu mounten.

Das Problem ist, das fdisk in diesem Fall nur die mbr Tabelle anzeigen kann und es sich bei der sde1 um die EFI Partition gehandelt hat. Die sde2 Partition läßt sich dann mit mount -t hfsplus /dev/sde2 /media/temp als read only mounten. Der Grund für das read only ist, das unter Mac das journaling aktiviert wurde. Um die Festplatte auch schreibbar zu mounten, muss vorher das journaling deaktiviert werden. Dieses geht jedoch leider nur unter einem Mac mit dem Befehl:

diskutil disableJournal Volume Name

[gerrit] ist sehr langsam bzw Verbindungen brechen ab

Ein Kollege wies mich auf etwas beim gerrit hin, was ich nun versuche hier wiederzugeben.

Der Gerrit Server macht bei einer SSH Verbindung einen Thread auf, in diesem Threadpool werden die Verbindungen abgearbeitet. Pro Thread werden nur x Verbindungen zugelassen und alle weiteren landen in einer Warteschleife. Nun kann es vorkommen das die Verbindungen nicht rechtzeitig abgearbeitet werden und einige Verbindungen nicht sauber geschlossen werden bzw brechen ab.
Die Anzahl der Threads ist unter anderem Abhängig von der Anzahl der CPU Kerne, mehr Kerne also mehr mögliche Verbindungen.

Werden Jenkins Server verwendet die auf den git Server zugreifen, verursachen diese ebenfalls Threads (Verbindungen).
Damit sich die Verbindungen der Jenkins Server und der Benutzer nicht in die quere können, kann für die Server ein Non-Interactive Users erstellt werden.

Dieser wird wie folgt erstellt, der Befehl muss von einem Benutzer mit Adminrechten ausgeführt werden.

cat /home/jenkins-user/.ssh/id_rsa.pub | ssh -p 29418 git.itbasic.de gerrit create-account –ssh-key – jenkins-user

Ein Non-Interactive kann sich nicht an der Weboberfläche anmelden, somit kann man weitere SSH Keys nur über die Datenbank hinzufügen. Hierfür müssen in der Tabelle account_ssh_keys die Felder ssh_public_key,valid,account_id und seq befüllt werden. Nur zu Info, die Spalte seq muss manuell hochgezählt werden.

Wenn ein neuer SSH Key hinzugefügt wurde muss noch das nachfolgende Kommando ausgeführt werden, da ansonsten ein Zugriff nicht möglich ist.

ssh -p29418 benutzer@git.itbasic.de gerrit flush-caches –cache=sshkeys

Auch hier muss der Benutzer Adminrechte haben.

[gerrit] aktuelle Verbindungen anzeigen

Falls man wissen möchte wie viele Verbindungen gerade zu einem gerrit Server offen sind, hilft folgendes Kommando:

ssh -p29418 git.itbasic.de gerrit show-connections

Der Benutzer der das Script ausführt muss in der Gruppe Administrators sein.

Als Ausgabe bekommt man die Werte: Session,Start,Idle,User,Remote Host

[gerrit] Provider is not supported, or was incorrectly entered

Bei der Anmeldung am Gerrit kam es zu der Meldung Provider is not supported, or was incorrectly entered.
In der error_log Datei kamen Meldungen wie

java.net.URISyntaxException: Illegal character in authority at….
….
ERROR com.google.gerrit.httpd.auth.openid.OpenIdServiceImpl : Cannot discover OpenID…

Auf den ersten Blick war die eingegebene URL für die Anmeldung korrekt, auf den zweiten Blick stellte sich heraus das vor der URL ein Leerzeichen war. Nachdem das Leerzeichen entfernt wurde, funktionierte auch die Anmeldung.