Ein Upgrade auf Notes 14.5.1 kann laut MSI-Log erfolgreich abgeschlossen werden und Ihnen trotzdem einen Client hinterlassen, der funktional unvollständig ist.

Wir sind kürzlich auf diese Situation gestoßen, als wir für mehrere Kunden Upgrades von HCL Notes 12.0.2 und älteren Versionen auf HCL Notes 14.5.1 vorbereitet haben. Die Installation schien korrekt zu funktionieren, doch nach dem Upgrade fehlten optionale Eclipse/RCP-Komponenten.Wir sind kürzlich bei der Vorbereitung von Upgrades von HCL Notes 12.0.2 und früheren Versionen auf HCL Notes 14.5.1 für mehrere Kunden auf diese Situation gestoßen. Die Installation schien ordnungsgemäß zu funktionieren, doch nach dem Upgrade fehlten optionale Eclipse/RCP-Komponenten.

Erst nach dem Start des aktualisierten Notes Clients wurde das eigentliche Problem sichtbar: Optionale Eclipse/RCP-Komponenten fehlten.

Das auffälligste Beispiel war das eingebettete Sametime, das Problem beschränkte sich jedoch nicht auf Sametime. Auch andere optionale Plugins, die über denselben Installationsmechanismus verwaltet werden, konnten entfernt werden – und hinterließen den Notes Client in einem Zustand, den kein Kunde nach einem scheinbar erfolgreichen Enterprise-Deployment erhalten sollte.

Die Ursachenfindung hat uns mehrere Tage gekostet.Es dauerte mehrere Tage, bis wir den Grund dafür herausfanden.

Wenn ein Upgrade auf Notes 14.5.1 erfolgreich erscheint

Die meisten Troubleshooting-Prozesse beginnen mit den naheliegenden Fragen:

  • Wurde das MSI erfolgreich abgeschlossen?
  • War die Kommandozeile der Installation korrekt?
  • Wurden die erwarteten Features ausgewählt?
  • Hat der RCP Launcher Fehler gemeldet?
  • Gab es ein Problem beim Extrahieren oder Registrieren der Eclipse-Komponenten?
  • Verfügte das Deployment-Konto über ausreichende Berechtigungen?

In unserem Fall wurde das MSI normal abgeschlossen. Genau das machte die Diagnose besonders schwierig.

Aus Sicht des Deployment-Systems war das Upgrade erfolgreich. Aus Sicht der resultierenden Notes Installation war jedoch etwas gravierend schiefgelaufen: Optionale Komponenten, die installiert hätten bleiben sollen, wurden in der Endphase des Installationsprozesses entfernt.

Für Enterprise-Deployments ist diese Unterscheidung wichtig. Ein erfolgreicher MSI Return Code bestätigt, dass der Installer seine Arbeit abgeschlossen hat. Er bestätigt nicht zwangsläufig, dass der fertige Notes Client alle Komponenten enthält, die Sie erwartet haben.

Warum wir das Problem zunächst nicht reproduzieren konnten

Das Problem trat bei mehr als einem Kunden auf, doch unsere ersten Labortests konnten es nicht reproduzieren.

Das war verwirrend. Wir verwendeten dieselben Notes Versionen, dieselben Installationspakete und vergleichbare Kommandozeilen. Dennoch funktionierte das Upgrade im Labor einwandfrei.

Der Grund stellte sich als etwas heraus, das viele von uns beim Testen von Software-Installationen ganz selbstverständlich tun: Wir starten mit einem sauberen System.

Wir haben alte Installationsdaten entfernt, temporäre Verzeichnisse bereinigt oder virtuelle Maschinen auf einen bekannten Stand zurückgesetzt. Das ist normalerweise Best Practice, in diesem Fall hat es jedoch genau die Bedingung entfernt, die zur Reproduktion des Defects erforderlich war.

Wir haben unseren Testansatz daher geändert. Anstatt perfekt saubere Maschinen vorzubereiten, haben wir virtuelle Maschinen erstellt, die bereits frühere Notes Installationen und Upgrades durchlaufen hatten. Wir haben bewusst aufgehört, temporäre Installationsdaten zu bereinigen, und begonnen, die Installationshistorie realitätsnäher nachzubilden.

Erst dann wurde das Muster endlich sichtbar.

Was verursacht das Notes 14.5.1 Upgrade-Problem?

Das Problem tritt auf, wenn das TEMP-Verzeichnis des Kontos, das den Notes 14.5.1 Installer ausführt, noch die folgende Datei aus einer früheren Notes Installation enthält:

rcpInstallerTemp.properties

Diese Unterscheidung ist wichtig: Es geht um das TEMP-Verzeichnis des ausführenden Sicherheitskontexts, nicht zwangsläufig um das TEMP-Verzeichnis des aktuell angemeldeten Benutzers.

Zum Beispiel:

  • Eine interaktiv von einem Administrator gestartete Installation verwendet normalerweise das TEMP-Verzeichnis dieses Administrators.
  • Eine über ein langlebiges Deployment Service Account ausgeführte Installation verwendet das TEMP-Verzeichnis dieses Service Accounts.
  • Eine Installation, die als Windows SYSTEM läuft, verwendet in der Regel das System-TEMP-Verzeichnis, das häufig unterhalb von C:\Windows liegt.

Temporäre Verzeichnisse von administrativen Konten, Service Accounts oder Windows SYSTEM werden häufig nicht regelmäßig bereinigt. Eine Datei, die während einer früheren Notes Installation erstellt wurde, kann daher über Monate oder sogar Jahre bestehen bleiben.

Wenn der Notes 14.5.1 Installer auf diese veraltete Datei rcpInstallerTemp.properties trifft, interpretiert er die darin enthaltenen Informationen unter Umständen als gültigen State für die aktuelle Installation.

Nach unserer Analyse kann dieser veraltete Installer-State die abschließende Phase der Komponentenentfernung in der Notes 14.5.1 Installation beeinflussen. Der Installer kommt dann zu dem Schluss, dass optionale Eclipse/RCP-Komponenten entfernt werden sollen, obwohl dies nicht der beabsichtigten Konfiguration des aktuellen Upgrades entspricht.

Das Ergebnis ist eine Installation, die technisch abgeschlossen wird, aber die falsche Client-Konfiguration erzeugt.

Warum Notes 14.5.1 betroffen ist

Mit HCL Notes 14.5.1 hat sich der Windows-Installationsprozess deutlich verändert.

Ein wesentlicher Teil der bisherigen RCP-Installationslogik wurde neu konzipiert. Inhalte werden extrahiert und installiert, anschließend ermittelt der Installer anhand der ausgewählten Konfiguration, welche optionalen Komponenten beibehalten oder entfernt werden sollen.

An diesem Ansatz ist grundsätzlich nichts falsch. Das Problem ist, dass temporärer State aus einer früheren, unabhängigen Installation die Entscheidungen der aktuellen Installation nicht beeinflussen darf.

In früheren Installer-Generationen – einschließlich der von uns untersuchten Versionen aus den Streams Notes 12.0.x, 14.0.x und 14.5.0 – wurde die temporäre Properties-Datei früh im Installationsprozess entfernt bzw. bereinigt. Das hat verhindert, dass State aus einer älteren Installation versehentlich wiederverwendet wird.

Bei Notes 14.5.1 scheint dieses Cleanup zu fehlen. Der Installer kann daher eine veraltete Datei verwenden, die niemals dazu gedacht war, den vorherigen Installationslauf zu überdauern.

Auch deshalb ist das Problem so schwer zu identifizieren:

  • Es hängt von der Historie der Maschine und des Installationskontos ab.
  • Auf frisch aufgesetzten Testsystemen tritt es möglicherweise nicht auf.
  • Das MSI selbst schlägt nicht sichtbar fehl.
  • Das Problem wird erst erkennbar, wenn der resultierende Notes Client geprüft oder gestartet wird.
  • Unterschiedliche Installationskonten können auf derselben Maschine zu unterschiedlichen Ergebnissen führen.

Welche Umgebungen besonders aufmerksam sein sollten

In unseren Tests war das Problem nicht an ein bestimmtes Notes 12.0.2 Fix Pack gebunden. Es war ebenfalls unabhängig davon, ob die vorherige Notes Installation 32-Bit oder 64-Bit war.

Organisationen sollten besonders aufmerksam sein, wenn die folgenden Bedingungen zutreffen:

  1. Eine bestehende Installation von HCL Notes 12.0.2 oder älter wird auf HCL Notes 14.5.1 aktualisiert.
  2. Das Upgrade wird von einem administrativen Konto, einem Deployment Service oder Windows SYSTEM ausgeführt.
  3. Das TEMP-Verzeichnis dieses Kontos enthält noch rcpInstallerTemp.properties aus einer früheren Installation.

Damit ist das Problem besonders relevant für die Softwareverteilung im Enterprise-Umfeld.

Manuelle Testinstallationen werden häufig mit relativ sauberen Benutzerprofilen durchgeführt. Produktive Deployments laufen dagegen üblicherweise über Konten und Services, die bereits seit langer Zeit existieren. Deren temporäre Verzeichnisse können Artefakte aus zahlreichen früheren Installationsversuchen enthalten.

Die Bedingungen in einem produktiven Deployment können sich daher stark von denen in einer sauberen Testumgebung unterscheiden.

Workaround für das Notes 14.5.1 Upgrade-Problem

Bevor Sie mit dem Upgrade auf HCL Notes 14.5.1 beginnen, entfernen Sie bitte die folgende Datei aus dem TEMP-Verzeichnis des Kontos, unter dem die Installation durchgeführt wird:

rcpInstallerTemp.properties

Entscheidend ist dabei, den korrekten Ausführungskontext zu identifizieren.

Die Datei aus dem eigenen Benutzerprofil zu löschen, löst das Problem nicht, wenn die Installation tatsächlich von Windows SYSTEM oder von einem separaten Deployment-Konto ausgeführt wird.

Am sichersten ist es, im Deployment-Prozess einen Pre-Installation-Schritt vorzusehen, der:

  1. das TEMP-Verzeichnis in demselben Sicherheitskontext auflöst, in dem der Installer ausgeführt wird,
  2. auf rcpInstallerTemp.properties prüft,
  3. die Datei entfernt, bevor die Notes 14.5.1 Installation gestartet wird.

Nach dem Entfernen der veralteten Datei konnten wir das unerwünschte Entfernen der optionalen Eclipse/RCP-Komponenten nicht mehr reproduzieren.

Vom Support Case zum offiziellen HCL Defect Article

Nachdem wir das Problem isoliert und reproduziert hatten, habe ich einen Support Case bei HCL eröffnet und die technischen Erkenntnisse, die betroffenen Szenarien, die vermutete Root Cause und den vorgeschlagenen Workaround übermittelt.

Ich habe HCL außerdem ausdrücklich gebeten, ein öffentliches Defect Article zu veröffentlichen. Das war uns wichtig, weil die Installation nicht sichtbar fehlschlägt und es für andere Kunden und Partner dadurch extrem schwierig ist, die Ursache eigenständig zu erkennen.

HCL hat inzwischen den folgenden Artikel veröffentlicht:
Hinweise 14.5.1: Upgrade entfernt Sametime-Plugin – HCL-Fehlerartikel KB0132505

Auch wenn sich der Titel des Artikels ausdrücklich auf Sametime bezieht, sollten Administratoren im Hinterkopf behalten, dass Sametime lediglich das sichtbarste Beispiel für ein breiteres Problem rund um optionale Eclipse/RCP-Komponenten ist.

Die Veröffentlichung des Artikels macht das Problem auffindbar, gibt Kunden eine offizielle Referenz und dokumentiert den erforderlichen Workaround. Wir haben HCL zudem gebeten, das zugrunde liegende Verhalten in einem künftigen Release des Notes Installers zu beheben.

Zum Zeitpunkt der Veröffentlichung hoffen wir, dass eine dauerhafte Korrektur mit HCL Notes 14.5.2 ausgeliefert wird. Idealerweise werden künftige Installer-Versionen veralteten State entweder zuverlässig beim Start entfernen oder für jeden Installationsprozess ein eindeutiges temporäres Verzeichnis verwenden.

MarvelClient Upgrade Kunden sind bereits geschützt

Kunden, die die aktuelle Version von MarvelClient Upgrade 14.5.22 oder höher einsetzen, sind gegen dieses Notes 14.5.1 Upgrade-Szenario geschützt.

Wir haben MarvelClient Upgrade bereits so angepasst, dass dieses Szenario automatisch behandelt wird. Vor der Ausführung der HCL Notes 14.5.1 Installation entfernt bzw. umgeht MarvelClient Upgrade den veralteten temporären Installer-State, der das Problem auslöst.

Das in diesem Artikel beschriebene Problem kann daher nicht auftreten, wenn das Upgrade mit der aktuellen Version von MarvelClient Upgrade durchgeführt wird.

Wie immer sollten Kunden sicherstellen, dass sie ein aktuelles MarvelClient Release einsetzen, bevor sie ein größeres Upgrade des Notes Clients beginnen.

Weitere Informationen finden Sie auf der MarvelClient Upgrade Release Notes Seite.

Fazit

Dieser Fall ist eine gute Erinnerung daran, dass Installationsprobleme nicht immer Installationsfehler erzeugen.

Die schwierigsten Defects entstehen häufig durch unsichtbaren State: eine alte Datei, ein dauerhaft bestehendes Service Account, ein temporäres Verzeichnis, das gar nicht wirklich temporär ist, oder eine frühere Installation, die die nächste weiterhin beeinflusst.

Saubere Laborumgebungen bleiben unverzichtbar, aber sie bilden nicht immer die Historie und Komplexität realer Enterprise-Endpoints ab. Manchmal besteht der entscheidende Troubleshooting-Schritt darin, die Testumgebung eben nicht zu bereinigen und stattdessen die Unzulänglichkeiten der Produktion nachzustellen.

Organisationen, die HCL Notes 14.5.1 ohne MarvelClient Upgrade ausrollen, sollten das Entfernen von rcpInstallerTemp.properties in ihre Pre-Installation-Prüfungen aufnehmen.

Für MarvelClient Upgrade Kunden übernimmt das die aktuelle Version 14.5.22 oder höher bereits.