1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[CFT] bsda2

Dieses Thema im Forum "FreeBSD - Anwendungen und Ports" wurde erstellt von Kamikaze, 28 Januar 2017.

  1. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Hallo,

    wer meine alten bsdadminscripts noch kennt freut sich vielleicht. Ich suche Tester für mein Nachfolgeprojekt.

    Mitgeliefert werden nur noch buildflags, pkg_libchk und distviper. Alle anderen Skripte halte ich für obsolet.

    Die Sourcen bekommt man hier:
    https://github.com/lonkamikaze/bsda2/archive/0.0.999.tar.gz

    ACHTUNG
    Vorher auf jeden Fall die alten bsdadminscripts deinstallieren, da sonst Dateien in /usr/local/sbin überschrieben werden.


    Zur Installation einfach:
    Code:
    # fetch https://github.com/lonkamikaze/bsda2/archive/0.0.999.tar.gz
    # tar -xf bsda2-0.0.999.tar.gz
    # cd bsda2-0.0.999
    # ./install.sh
    
    Zur Deinstallation einfach:
    Code:
    # ./deinstall.sh
    
     
    Zuletzt bearbeitet: 31 Januar 2017
    h^2 und Elwood gefällt das.
  2. Athaba

    Athaba Libellenliebhaber Mitarbeiter

    Registriert seit:
    10 März 2005
    Beiträge:
    3.296
    Darg ich den Vorschlag machen einen bsdadminscripts-devel Port einzureichen?
     
  3. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    So weit wird das jetzt nicht fragmentieren, dass ich zwischen den Releases snapshots veröffentliche.
     
  4. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Inzwischen der 3. RC, ich hoffe damit gibt es jetzt keine Probleme mehr.
     
  5. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Ich habe gerade die aktuellste Version 0.1.1 getestet. Beim Ausführen von pkg_libchk -q erhalte ich folgende Fehlermeldung (nach einer gewissen Zeit):

    Was kann ich dir liefern, damit es dir hilft?
     
  6. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Ok.. Reproduzierbar ist das scheinbar nicht. Ich habe es jetzt nochmal laufen lassen und erhalte die Fehlermeldung nicht mehr. Merkwürdig finde ich, dass ich jetzt wieder sehr häufig die Meldung "ELF binary type "0" not known." erhalte. Ich dachte eigentlich, dass ich die Meldung bekomme, da linux.ko nicht geladen war. Nach einem "kldload linux" und einem anschließenden Aufruf von pkg_libchk -q kam die "eval" Meldung. Nach einem zweiten Aufruf, wie gesagt, nicht mehr.
     
  7. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Beim Aufruf von pkg_libchk ohne Parameter (auch nicht reproduzierbar):
     
  8. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Das ist schon ziemlich bizarr.

    Wenn ein Fehler reproduzierbar ist, kann man das mit sh -x ausführen und im Output nach der Fehlermeldung suchen.

    Außerdem kannst Du pkg_libchk mit dem -c Flag ausführen, damit solche Fehler nicht mit den Statusanzeigen kollidieren. Vorausgesetzt die Statusanzeige ich das Problem.
     
  9. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Das sieht so aus als hätte die named-Pipe Daten verloren. Da ich den File-Descriptor permanent offen halte, weiß ich aber nicht wie das passieren könnte.
     
  10. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Ich teste und berichte weiter... Aktuell baue ich einfach mal alle Ports neu, die pkg_libchk anmeckert. Für den Fall, dass es wichtig ist: Das ganze läuft auf einem 11.0-RELEASE-p7/amd64 in tmux.

    Ich habe nun alle Ports die betroffen waren, neu gebaut. Zusätzlich habe ich - weil ich den Fehler nicht wegbekommen habe - mal alle linux-c6-Ports gelöscht. Jetzt läuft das Programm sauber durch.

    Die Geschwindigkeit im Vergleich zur alten Version ist schon ziemlich beeindruckend! Danke für deine Arbeit!
     
  11. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    In den linux-c6 Ports fehlen schlicht einige Libraries. Aber alles was man braucht geht, also kannst Du die ruhig benutzen. Die Fehler sind aber richtige Fehler, deshalb baue ich da auch keine Ausnahmen für ein.
     
  12. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Moin,
    ich habe die linux-c6 Ports nicht wegen der fehlenden Libs deinstalliert sondern wegen der 100-fachen Meldung:
    Die Meldung kam so oft, dass pkg_libchk gar nicht angezeigt hat, welcher Port "betroffen" ist. Lass mich es laienhaft ausdrücken: pkg_libchk wollte linux-c6-foobar prüfen. Der Kernel konnte wegen nicht geladener Linuxunterstützung das aber gar nicht prüfen und hat nicht gesagt "die lib fehlt" (vielleicht fehlt ja gar keine) sondern "mit dieser ELF binary kann ich nichts anfangen". Die Fehlermeldung hat auch gar nichts mit pkg_libchk zu tun, ich hatte die auch bei der Deinstallation erhalten (weil keine Linuxunterstützung geladen war).

    Inzwischen weiß ich, dass ich wohl hätte linux64.ko laden müssen, ich hatte aber nur linux.ko geladen.
     
  13. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Ah, das hatte ich noch nicht gesehen. Mal sehen ob ich das irgendwie händeln kann.

    Update:
    Anscheinend wird der Fehler vom Kernel an der Shell vorbei direkt ins Terminal geschickt. Jetzt habe ich natürlich keine Ahnung, wie ich das umleite.
     
    Zuletzt bearbeitet: 8 Februar 2017
  14. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Die beiden Fehler sehen für mich wie ein IPC Problem aus. In den letzten Tagen hatte ich das auch 1 mal, konnte es aber nicht reproduzieren.

    pkg_libchk hat folgende Prozesse:

    - Die Session (der Hauptprozess)
    - Job Prozesse (die jeweils ein Paket abarbeiten)
    - Und ein Terminal Prozess, der für die Ausgabe, Statuszeilen etc. zuständig ist

    Die Job Prozesse liefern über ein Named-Pipe Daten an die Session, die Session liefert Daten über eine Named-Pipe an den Terminal Prozess.

    Meine These ist jetzt:

    - Mindestens 2 Jobprozesse schreiben gleichzeitig in die Pipe
    - Mindestens einer der Prozesse hat eine Nachricht, die länger als der output-Puffer (oder halt irgendein beteiligter Puffer) des Prozesses ist

    Dann rutscht eine Nachricht quasi zwischen 2 Fragmente einer anderen Nachricht.

    Ein Lösungsansatz den ich heute Abend mal testen werde ist write-Locking einzubauen. Die Idee ist eine 2. named-Pipe für das Locking zu verwenden:

    - In der Lock-Pipe liegt initial ein Byte zum Lesen
    - Wenn ein Prozess in die Msg-Pipe schreiben will:
    -- Liest er das Byte aus der Lock-Pipe
    -- Schreibt in die Msg-Pipe
    -- Schreibt ein neues Byte in die Lock-Pipe

    Da die Pipe das Byte nur 1 mal ausspuckt wird ein anderer Prozess der versucht das Byte aus der Lock-Pipe zu lesen schlafen gelegt bis der andere Prozess das neue Byte in die Pipe geschrieben hat. Das ganze basiert natürlich auf der Annahme, dass ein 1-Byte write atomar ist.
     
  15. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Gibt es hier eigentlich etwas neues? Ich sehe fast täglich nach, ob es in die Ports gekommen ist :)
     
  16. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Elwood und Columbo0815 gefällt das.
  17. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
  18. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
  19. Columbo0815

    Columbo0815 Kaffeemann

    Registriert seit:
    27 April 2007
    Beiträge:
    1.490
    Leicht OT:

    Auf den Rechnern, auf denen ich bsdadminscripts (V1) aus den Ports installiert hatte, bekomme ich bei einem pkg delete bsdadminscripts folgende Meldungen:

    Das ist jetzt natürlich nur ein Auszug. Ich bekomme es für jedes File. pkg nutze ich nur selten. Auf dem einen Rechner auf dem ich es nutze, bekam ich die Meldung nicht...

    Danke für deine Arbeit! Endlich ist V2 in den Ports! :)
     
  20. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.120
    Code:
         Since the possibility to run parallel jobs was introduced, output no
         longer is sorted. If you find that annoying you can run:
    
               pkg_libchk -j1
    
         Of course there is a heavy performance penalty especially on systems with
         several CPU cores.
    
         Another way around this is to pipe output into sort(1):
    
               pkg_libhck | sort
    
         This will run faster, but output will be printed after the script has
         terminated.
    pkg_libhck | sort

    Typo in der man gefunden :)
     
  21. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Muss die alte manual page sein. Das alte bsadminscripts ist ziemlich ranzig. Du willst bsdadminscripts2.
     
  22. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.120
    ahja, das kann natürlich sein. Ich sitze auf quarterly und habe das eine Paket installiert, das es da gab.
    Ich nutze vor allem distviper und pkg_libchk und eigentlich brauche ich da keine man page mehr dazu. Weil ich aber beide nicht sehr häufig nutzen muss (da ich quasi nur noch Pakete einsetze), schaue ich gerne zuvor nochmal nach. Bestimmt habe ich diesen Typo schon X-mal überlesen, aber heute hatte ich das per copy_n_paste benutzt und da ist mir das halt aufgefallen.
    Wenn du eine neue man page geschrieben hast, hat sich das ja erledigt.