Nightly builds wie in portable Version einspielen?

Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

So meine Fragen haben mich nun selbst auf die Lösung gebracht. Ich konnte den Bug so weit eingrenzen.

Thunderbird liest beim Start Einträge aus der Registry unter folgenden drei Schlüsseln aus:

* HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
* HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
* HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension

nicht aber unter

* HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension

Insofern macht MPE alles korrekt, bis auf den Zeitpunkt, an dem der Registry-Eintrag geschrieben und gelöscht wird. Das darf nicht direkt vor dem Sync sein. Ist Thunderbird erstmal gestartet, hat er den Pfad zu dem JSON-Manifest bereits gelesen oder auch nicht. Ob danach ein Eintrag in die Registry erfolgt oder dort gelöscht wird, ist Thunderbird dann egal.

Offensichtlich ist es so, dass bei der Installation des MPE-Thunderbird-Addons die Einträge (wie Du bereits gesagt hast) korrekt gesetzt werden. Deswegen klappt (bis auf das Timeout-Problem) der Sync nach der Installation oder dem Update des MPE-Thunderbird-Addons bis Thunderbird geschlossen wird.

Die korrekte Konfiguration wird dann aber nach der ersten Synchronisation aus der Registry (nachdem Sie zuerst nochmal korrekt überschrieben wird) gelöscht. Das führt dazu, dass beim erneuten Start von Thunderbird, diesem den Pfad zum JSON-Manifest fehlt und die weitere Synchronisation fehlschlägt.

Das Problem kann also entscheidend verbessert werden, indem FJ MPE bereits beim Start den Eintrag HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension setzen lässt und diesen dann erst beim Beenden von MPE löschen lässt. Dieses Vorgehen entspricht auch dem eines klassischen portable Starters (wie Dein kleines Skript). Mit dieser Lösung müsste MPE immer vor Thunderbird gestartet werden, damit es funktioniert. Das Timeout-Problem bleibt dabei ungelöst. (Man könnte auch eine optionale Einstellung „Stealth-Modus deaktivieren“ hinzufügen, indem der Registry-Schlüssel einfach nicht gelöscht wird. Dann wäre es egal wann Thunderbird gestartet wird, allerdings hinterlässt man dann verwaiste Einträge auf den Host-System, was nicht ganz im Sinne von portable Apps ist. Daher sollte es, wenn optional sein).

Ich hoffe, Du und FJ können das so bestätigen. Aber ich bin mir nun doch sehr sicher, dass es das ist und es doch nicht an Mozilla liegt.

Frohe Weihnachten!
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bernd.W hat geschrieben:Wo werden die Einträge genau gesetzt? In HKLM etwa?
Bei der MPE-Installation / Update Nightly werden, wie schon erwähnt, beide HKLM-Schlüssel...
1. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
2. HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
...mit dem Pfad "C:\Program Files(x86)\MyPhoneExplorer\DLL\myphoneexplorer.extension.json" gesetzt.
Dieser Eintrag ist ja auch nicht für die portable Version gedacht, sondert für die Standardversion von TB.
Der Eintrag für die portable Version ist und bleibt natürlich nur ein Workaround.

Ich glaube Dein erster Vorschlag, mittels optionalen Setzen eines TimeOuts, das Problem zu lösen, wäre wohl die beste Lösung ?!

Aber das entscheidet letztendlich FJ :wink:
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Ich denke erst muss die Korrektur des Zeitpunkts des HKCU Eintrags in der portablen Version erfolgen. Wenn dann das Timeout-Problem beim ersten Sync weiterhin besteht - ich denke vieles spricht dafür - dann wäre vermutlich ein zweiter und ggf. dritter Versuch im Hintergrund sinnvoll, bevor der Anwender eine Fehlermeldung erhält.

Ursprünglich hatte ich ja gedacht, dass es primär an der portable Version liegt, da diese oft (und so auch bei mir) mit längeren Zugriffszeiten verbunden ist (Speichermedium , USB-Verbindung). Allerdings kann das nicht die alleinige Ursache sein. Nachdem wir ausgeschlossen haben, dass Thunderbird durch/nach MPE gestartet werden muss, kann man ja Thunderbird auch zuerst starten, sodass dieser genug Zeit hat um alles zu laden. Trotzdem tritt bei mir beim ersten Sync-Versuch immer der Fehler auf (auch mit vorherigem 10 Min. warten). Das kann also nicht die alleinige Ursache sein.

Mir fallen spontan zwei mögliche Ursachen ein:

1. Der erste Verbindungsaufbau der native Messages Schnittstelle beansprucht mehr Zeit. Ist diese etabliert erfolgt der weitere Zugriff zügiger. => Mögliche Lösung => a) Timeout beim ersten Verbindungsaufbau erhöhen und/oder b) beim Scheitern der Synchronisation einen oder zwei weitere Versuche etablieren, um die Verbindung aufzubauen und um zu synchronisieren.

2. Je nach externem Speichermedium und Schnittstelle kann die Zugriffszeit der Anwender stark variieren. Im besten Falle mit externer SSD und über USB 3 oder Thunderbolt ist der Zugriff schneller als bei langesamen internen Festplatten. Bei langsamen Speichermedien verschärft sich obiger Punkt 1 hingegen. Da man nicht weiß, wie performant das System der portablen App Anwender ist, ist hier Lösung b) von oben wohl die beste.

Ich denke FJ wird das - wenn sich alle Annahmen so bestätigen - wie auch immer gut lösen.
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Hallo Icke,

ich will nochmal kurz nachfragen, ob FJ das Problem bestätigen konnte. Reine Neugier, ich kann mit dem Workaround erstmal gut arbeiten.

Danke!
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Nein, ich habe z.Z. diesbezüglich nicht mehr Informationen als Du.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bitte teste mal die neuste portable Version von 1.9.0 => https://www.fjsoft.at/files/MyPhoneExpl ... _1.9.0.zip
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Danke für die neue Version! Leider treten bei mir alle Probleme wie gehabt auf. Konkret:
Bernd.W hat geschrieben: 1.
Der Registry Schlüssel wird weiterhin nicht zu Beginn gesetzt, sondern erst mit dem ersten Sync oder mit Änderungen im Einstellungsdialog.

Das führt dazu, dass beim allersten Start, wenn
a) MPE als erstes manuell gestartet wird,
b) dann TB manuell gestartet wird,
c) alle Synchronisierungen fehlschlagen (Beim MPE-TB-Addons haben die Menu-Einträge keine Funktion) bis Thunderbird ein zweites Mal gestartet wird. Ab dann hat TB Zugriff auf den Eintrag, denn der Registry-Eintrag wird gar nicht mehr gelöscht. (Ruft man TB über den Sync-Button aus MPE auf, wird der Registry-Eintrag noch rechtzeitig gesetzt und es funktioniert).

2.
Der erste Synchronisationsversuch schlägt immer fehl, Fehlermeldung: "Fehler... - Einträge konnten nicht aus Thunderbird gelesen werden!". Dies erfolgt unabhängig davon, ob ich den ersten Synchronisationsversuch aus MPE oder aus Thunderbird heraus anstoße.
Debug hatte ich per Email an FJ gesendet. Wenn ich noch was tun kann, gebt gerne Bescheid.
Antworten