Release 8

Zeitrahmen: 15. April 2008

Prioritäten: Diese sind nun eng an die allgemein gültigen 6 Abstufungen angelehnt.

1 - Muss mit der aktuellen Release fertig werden, da dringend benötigt
2 - Soll mit der aktuellen Release fertig werden, aber (noch) nicht dringend
3 - Wünschenswert, da spürbare Erleichterung für Betrieb / Arbeit der Gruppe
4 - Ganz nett, nice to have
5 - Beruhigt irgendwen irgendwie, stört zumindest nicht
6 - Stört / behindert, besser gar nicht angehen

Beim Implementieren bitte wieder die Merkliste und die Windows-Merkliste beachten!

Umfang

Auf ergänzende Bemerkung wird mit MOVED TO... hingewiesen. Das Icon ist klickbar.
Erledigte Punkte sind mit DONE gekennzeichnet.

Nr. Name Prio Tage Projekt MOVED TO... DONE
1       Property-Beschreibung mit XML und Code-Generierung    
1.1 KHoe 2   Im Projekt uti/xml fehlt das Makefile. Was ist mit den .jar Files?   DONE
1.2 Alle 2   USR-Adapter: Klären, ob immer eine Exception geworfen werden soll, wenn zu wenig Daten in einer AccData-Variablen sind (siehe Email vom 21.1.08). IDEA! im Kurzmeeting. Weniger Daten sind möglich.   DONE
1.3 KHoe 1   Prüfen, ob gm-usrs.hh/cc von usrgen überschrieben werden. Das soll nicht sein.   DONE
1.4 KHoe 3   Dokumentation und Veröffentlichung des APIs der Adapter.    
1.5 KHoe 2   XML-Beschreibung für USRs um Arrays von Strukturen erweitern.    
2       Geräte-Software V09    
2.1 LH 1   Überlegen, wie man V09-USRs schreiben kann, die für VMS Daten schicken müssen, die einerseits mit denen der V08-USRs voll kompatibel und andererseits für Device-Access-Clients vernünftig strukturiert sind.   DONE
2.2 LH 1 8 Möglichkeit finden, das exitNoSend() unter Device Access nachzubilden und USRs lokale Daten zu erlauben. MOVED TO... DONE
2.3 LH 2   Zeitplan für weitere Umstellung von VME-Rahmen erarbeiten.   DONE
2.4 Kain 2 5 SWPZ-USRs umstellen.   DONE
2.5 Kain 2   SWPZ-USRs auf endgültige, aus XML generierte Adapter umstellen.    
3       Devman    
3.1 LH, Kain 3   ODA-E-DEVNOTFOUND ausdifferenzieren . MOVED TO...  
3.2 LH 6   Wie DMAN-USRs und NODAL comp_test aneinander anpassen? Mit Release 9.   DONE
3.3 Kain 2   DMAN-Property EMODLIST erst mit Release 9.   DONE
3.4 Kain 3   Wie merkt ein Client, wenn Konnektierungen verschwinden? MOVED TO... DONE
3.5 KHer 2   Notwendige ECM-Funktionalitäten für X86-Devman auflisten und implementieren.   DONE
3.6 UK 2   Python-Callbacks sollen auch die komplette ResponseID zurück liefern.    
3.7 Kain 3   Notwendige Systemerweiterungen wegen IPS-Besonderheiten erforschen. (siehe IPS auf PPC)   DONE
3.8 SMa 1   Im Projekt os die Signalhandler mind. von SIGTSTP wieder entfernen, da Strg+Z zum Absturz des devman fuehrt.   DONE
3.9 SMa 2   Access Pattern fuer jedes anzumeldene Geraet generieren MOVED TO... DONE
4       Nameservice and Access Rights    
4.1 UK 1   Integration Java-Client-API in HITRAP Anwendung (mit GF)   DONE
4.2 SMa 2   Servername aus einer Umgebungsvariablen holen. Angabe mehrerer Servernamen moeglich. MOVED TO... DONE
4.3 SMa 2   Signal-Handling fuer Nameserver analog zum devman. Explizites schliessen des Sockets bei Beendigung.   DONE
4.4 SMa 2   Umsetzen des Loglevels zur Laufzeit ermöglichen (analog Devman) MOVED TO... DONE
4.5 SMa 2   Nameserver inklusive Access Rights   DONE
4.5.1 SMa 2   Nameserver eingetragene Access Rights zurueck liefern lassen   DONE
4.5.2 SMa 2   Negierungen von einzelnen Geraeten und Geraetegruppen ueberpruefen. Derzeit darf jeder Geraetewerte lesen, auch wenn das Zugriffsrecht explizit nicht gegeben wurde.   DONE
4.6 SMa 2   Rechte-Datei nur beim Starten des Nameservers einlesen, sonst explizit mit Tool nameservercmd neu laden.   DONE
4.6.1 SMa 2   Tool nameservercmd in utiasl bereitstellen und dokumentieren   DONE
5       Userface    
5.1 GSch 3   UfcServer: Geräteobjektreferenzen cachen, um nicht bei jedem Gerätezugriff den Nameservice zu fragen.    
5.2 GSch 1   Anwendung auf AXP macht ein Ctrl-Y: Werden Konnektierungen (im Exithandler) richtig aufgeräumt?   DONE
5.3 GSch 1   Siehe Punkt 3.4 und die Bemerkung dazu. Methode Callback::exit() muss response an Anwendung schicken. MOVED TO... DONE
5.4 GSch 1   Clientseite sollte nicht nur mit einer Warning reagieren, wenn kein Memory für ein new mehr vorhanden ist.   DONE
5.5 GSch 1   Logausgaben mit Uhrzeit versehen.   DONE
5.6 GSch 1   Socket nicht über stdout erst in Release 9. MOVED TO... DONE
5.7 KHoe 3   UfcServer auf dediziertem Rechner (asl3xx oder Fileserver) laufen lassen (nicht auf asl7xx). MOVED TO...  
5.8 GSch 2   waitResponse fehlt immer noch    
6       Versionsverwaltung, Releases, Produktionsbibliotheken    
6.1 LH 1 5 Vorschlag für Bibliotheks-Directories (z.B. $libppc im Produktionszweig $PROOT) erarbeiten. MOVED TO... DONE
6.2 LH 1 20 Versionsnummern-Vergabe und Release-Strategie überdenken. MOVED TO...  
6.3 LH 1   Passende Scripte erstellen bzw. anpassen/erweitern.    
6.4 LH 1   'Systemfiles' sollen weitgehend keine Release- oder Versionsabhängigkeiten beinhalten.    
6.4.1 LH 1   Devman: .../ke3cg08/etc/init.d/devman, /etc/sysconfig/devman   DONE
6.4.2 KHoe 1   UfcServer: /etc/xinetd.d/ufcserver   DONE
6.4.3 KHoe 1   Nameserver: ...nameserver   DONE
6.5 KHoe 3   svntools.py und vmetools.py für V09 anpassen.    
6.6 LH 2 2 KTRCG07 auf Produktionsverzeichnisse umstellen.   DONE
7       Allgemeines & Kleinigkeiten    
7.1 KHoe 4   $Id$ und $HeadURL$ im SVN-Repository für alle Projekte freischalten.    
7.2 KHoe 2   Linux ins Flash erst in Release 9.   DONE
7.3 LH 3   Überlegen, wie APIs sprachübergreifend (C++, Java, Python) implementiert werden können. Betroffen: Alarme, Subscription Service, Nameservice, ... IDEA! nochmal Brainstorm mit AP.    
7.4 UK 2   Lösung für Dateien <gup>.dbs erarbeiten. Beachten: Behandlung der Polynome (mxmd_coeff, dbsgen, 'RDB' usw.). Perspektivisch besser <gup>-db.xml? MOVED TO... DONE
7.5 Alle 4   Beim UBOOT aktualisieren die Consolen auf 19200 Baud umstellen. Wie das geht, im Wiki beschreiben.    
7.6 Alle 1   Aussagefähige Namen für Umgebungsvariablen finden. IDEA! im Kurzmeeting. Siehe Email vom 10.03.2008.   DONE
7.7 Alle 3   Hat das Upgrade der asl7xx-Rechner auf RedHat 4.0 im Mai-Shutdown Konsequenzen für das PPC-Projekt?    
7.8 LH 2 15 Für die Klasse Dbs wurden eigene Exceptions erfunden (Error, ParseError, NotFoundError). Statt dessen AccDevException mit passender ODA-Message werfen. MOVED TO... DONE
7.9 LH 3   Behandlung der Spezial-Nomenklaturen >> und ?? klären (siehe UKs Email vom 6.2.08). IDEA! im Kurzmeeting. MOVED TO...  
7.10 Alle 3   Alle Exceptions sollen via Referenz gefangen werden! Also so: catch(const XyzException& e), wobei auf das & zu achten ist!   DONE
8       Eventuell zusätzlich noch    
8.1 KHoe 4   Umzug einiger Directories im asl-Cluster. Im nächsten Shutdown(?)   DONE
8.2 LH 2   Möglichkeit diskutieren, make-nightly.sh mit -Wall laufen zu lassen. Hinweis im Wiki soll genügen.   DONE

Bemerkungen

Ergänzende Bemerkungen, Hinweise usw. zu obiger Liste "Umfang".

Nr. Bemerkung
2.2 Im Zusammenhang mit USR- bzw. konnektierungs-spezifischen Daten auch noch mal über eine neue Konnektierungsart on change bzw. Monitor nachdenken. Siehe dazu auch einen Punkt in 'Allgemein' unter Zukünftige Releases. Implementierung erfordert eine IDL-Änderung! In diesem Zusammenhang auch das neue Timestamp-Format einführen?
3.1 ODA-E-DEVNOTFOUND wird an verschiedensten Stellen benutzt und bedeutet nicht immer dasselbe, mal "nicht im Nameserver gefunden", mal "nicht auf der SE gefunden" usw. Da sollte man noch weitere Messages erfinden, etwa ODA-E-DEVUNKNOWN, um dem User die Interpretation eines Fehler zu erleichtern. ODA-E-DEVNOTFOUND steckt in dprdevdef.hh, equinfo.hh, evtconn.hh, ec-device.cc, ecinfo-ppc.cc, nameservice-corba.cc, nameservice-gsi.cc, nameservice-impl.cc und vmedevice.cc.
3.4 Verschwinden meint, wenn z.B. der Devman abstürzt oder durch service devman stop angehalten wird. Im Normalfall sollte die Methode Callback::exit() der Anwendung aufgerufen werden. Das sollte noch mal getestet werden. Wie reicht Userface (auf AXP) diesen Fehler an die Anwendung weiter? (siehe Bug 2.4)
3.5 Wenn ein Gerät aus der Datenbank entfernt wird, dann wird es auf der SE, auf der es angemeldet ist, nicht offline. Und wenn es online ist, dann nimmt es weiterhin am Betrieb teil und ist nicht mehr kontrollierbar, ja sogar unsichtbar (ist das noch so?). Da soll noch was erfunden werden, sodass Geräteleichen automatisch entfernt werden. Damit sollte sich auch das Problem der double devices, wenn man mal den Devicebus verkehrt gesteckt hat, erledigen.
4.2 Servername(n) aus der Umgebungsvariablen NA_SERV_HOST holen. Zunaechst wird der Inhalt der Umgebungsvariablen NA_SERV_HOST ausgewertet, dann wird lokal nach dem Nameserver gesucht (127.0.0.1) und schliesslich auf der asl711
4.4 Umsetzen moeglich mit Kommandozeilentool nameservercmd, dieses befindet sich im SVN im Ordner nsrvtests und im Projekt utiasl
5.6 Die störenden Ausgaben über den Socket waren bisher immer Fehlermeldungen des ufcservers, ( z.B. wurde eine lib zur Laufzeit nicht gefunden). Weiterer Betrieb ist dann ohnehin nicht möglich. Diese Fehlermeldung wird jetzt von der VMS_Seite aus dem Socket gelesen und ausgegeben. Danach beendet sich Userface.
5.7 Was spricht eigentlich dagegen, auf jedem asl3xx bzw. asl7xx einen UfcServer laufen zu lassen? Die lokalen Anwendungen nutzen dann einfach ihren lokalen UfcServer - und haben womöglich noch einen Ausweich-UfcServer auf einem anderen Rechner.
6.1 Zum Beispiel würden unter $PROOT/asl/lib/v01 nur Produktions-Shared-Objects liegen, die explizit freigegeben wurden (siehe auch 3.4). Programme im täglichen Betrieb würden diese Shared-Objects benutzen und hätten keine (Kompatibilitäts-) Probleme mit upgedateten Shared-Objects auf $DROOT/lib/asl/v01. Aber auch die ...opt/acc/cpu, .../eqp und .../sys Directories bedenken.
6.2 Ist Unterscheidung 9.x.x / 1.x.x gut (doppeltes tagging!), oder besser eine generelle Systemversionsnummer für asl und ppc? Welche Nummer für welche Kompatibilität (asl/ppc, USRs/EQMs, ...)?
7.4 Front-End Datenbasis: Umzug der Datenbank mit den Magnetpolynomen auf Oracle; Bereitstellung eines dbsgen unter Linux, das aus den bisherigen .dbd-Files pro Rahmen ein Datenbasis-File in geeignetem Format (XML) erstellt. Devicemanager wertet dieses File nach ähnlichem Mechanismus wie bisher aus. Option für späteren Ausbau: Kein Zwischenfile erzeugen, sondern Front-End Datenbasis in Oracle-Datenbank schreiben und devman Oracle-Datenbank auslesen lassen.
7.8 Das erfordert eine Änderung aller Gerätemodelle, die Gerätekonstanten haben. Im XxxDevice -Konstruktor (<eqmod>-device.cc) wird zur Zeit eine Dbs::Error -Exception gefangen.
7.9 Bisherige Nomenklaturen '>>', '??': Es soll erkennbar sein, dass es Adressen am MIL-Bus gibt, die dort nicht vorgesehen sind (keine Nomenklatur vorhanden). Dabei unterscheiden von Adressen, denen kein nutzbares Gerät entspricht, die aber da sein müssen, (oft bei SD-Geräten, die einen ganzen Adressraum belegen).

Bugs

Nr. Name Prio Tage Projekt DONE
1       Scripte  
1.1 LH 1   Verschiedene Scripte, z.B. relusrs, schreiben Logfiles, die nur der Owner ändern darf. Die Gruppe muss das auch können! DONE
1.2 LH 1   relusrs kann kein neues cpu-Directory anlegen: permission denied. Da noch weitere, u.a. auch Linux-, Directories für einen neuen GuP angelegt werden müssen, wird das nicht mehr in relusrs gemacht. DONE
1.3 KHoe 2   Makefile.nightly muss auch bei Warnings des Linkers sofort abbrechen.  
1.4 KHoe 2   Makefile.copy: warning: overriding commands for target 'python' DONE
1.5 KHoe 3   gsinaming.so wird bei einem Makefile.nightly immer gebaut, auch wenn sich gar nix geändert hat. DONE
2       Devman  
2.1 Kain 1   Ein ecload mit Init der SE nach dem Laden (ohne --noinit) führt manchmal dazu, dass der Devman anschließend im unguten Zustand defunct ist. Aber nur bei option -d (file direkt laden) DONE
2.2 NN 2   writeCommand() liefert öfter Timeouts, weil es keine freien CmdComAreas gibt. Siehe Email vom 13.Feb.2008. Scheint behoben, trotzdem mal weiter beobachten. DONE
2.3 LH 2   Stürzt der Devman während der Startphase ab und schreibt einen 'core dump', dann dauert das länger als 5s. Wurde mit "service devman [re]start" gestartet, dann meldet der Service "Starting devman [ OK ]", obwohl der Devman nicht läuft. Hinweis für Rufbereitschaft im Wiki soll genügen. DONE
2.4 LH 1   Ein Client (der UfcServer) stürzt ab, wenn ein RequestThread genau in dem Moment antwortet (via readResponse()), wenn das Callback-Objekt des Clients bereits gelöscht ist, das CorbaCallback-Objekt aber das des Clients noch aufrufen will (z.B. via _userCallback->response()). Beim Löschen des Client-Callbacks muss also das CorbaCallback angewiesen werden, diesen Pointer zu löschen. Außerdem muss er immer auf ungleich Null überprüft werden! Muss auch das cancelRequest() implementiert werden?
Das kann so jetzt beim ufcserver nicht mehr pasieren, da jetzt beim Schliessen das Kanals ein cancelRequest() geschickt und auf eine Bestätigung gewartet wird. (GSch)
Erst in Release 9.
DONE
2.5 LH 1   Die Methode Callback::exit() der Anwendung wird bei Abstürzen des devman nicht (nicht immer?) aufgerufen. DONE
2.6 LH 1   In accdevice.cc die Variable static omni_mutex mu ersetzten durch eine device-spezifische Variable. Die jetzige gilt für alle Threads eines Devman! DONE
3       Allgemein  
3.1 KHoe 1   Die PPC-Boards, zumindest KP1CG05 (auch KE3CG08?), stellen sich mal auf full duplex, mal auf half duplex ein, wenn der Port am Switch auf auto steht. PPC-Boards müssen immer auf full duplex stehen!
Kontakt mit MicroSys bzw. Denx aufnehmen.
 
3.2 Alle 2   In diversen Headerfiles (usr.hh, device.hh, ...) fehlt nach wie vor die Kennzeichnung, dass eine AccDevException geworfen wird (z.B. VmeDevice::read(...) throw (AccDevException);).
Alle throw-Deklarationen raus.
DONE
3.3 KHoe 1   Singletons müssen im Allgemeinen thread-save sein! Das ist noch nicht überall so. Siehe Email von Udo vom 06.12.2007.  
4       Userface  
4.1 GSch 1   Exithandler ist nach einer Konnektierung schon weg, wenn er vom Devman aufgerufen wird. DONE
4.2 GSch 2   Release (Tag) 1.7.5 lässt sich nicht linken, weil in x86.mk das -los fehlt. Release 1.7.5 lief zur Entstehungszeit ohne das -los. Die zur Zeit laufende production_release ist 1.7.6, die war leider noch nicht eingeckeckt. DONE
4.3 GSch 1   In ufcserver.cc die setEFICD() korrigieren. Siehe Email vom 26.03. DONE
4.4 GSch 1   Dateinamen unter Linux immer klein schreiben. Also ufsLog... in ufslog... umbenamsen. Vielleicht noch besser ufcserver.log.1.7.6.4711? DONE
5       Dbs  
5.1 KHoe 1   Wirft Dbs::parse() eine Exception, dann wird diese nicht korrekt durchgereicht. Statt dessen stürzt der Devman, oder auch eine einfache Test-Anwendung, ab. Das trifft anscheinend auf alle Exceptions aus parse() zu, nicht nur auf die von Temp2DeviceDataHelper geworfene! DONE
Topic revision: r58 - 18 Aug 2011, UnknownUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback