fix(cli,core,fuse,gui): say why the mount keeps failing, and back off

A mount that failed on every try retried every 5 s forever, and the
reason was only in the journal: the app and the tray said Connecting...
for days (B263, issue #40). The retry now doubles to a 2-minute ceiling,
and the last failure is kept in mount-failure.json for the app, the
tray, pdfs diagnose and systemctl status.

The early returns in mount left the workers they had started running
beside the next attempt (B264). They are now stopped on every error
path, without telling systemd the daemon is stopping.
This commit is contained in:
nvrl committed 2026-10-31 10:49:01 +01:00
1 parent 9460c93b50
commit e9577f953f
18 files changed
+714 -311

No files matched your search

+45 -29
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-26 22:26+0100\n"
"POT-Creation-Date: 2026-10-31 10:37+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: French\n"
@@ -424,14 +424,25 @@ msgstr "Non connecté"
msgid "The Proton Drive service isn't running."
msgstr "Le service Proton Drive n’est pas en cours d’exécution."
#: crates/pdfs-gui/src/app/main.rs:1803
#: crates/pdfs-gui/src/app/main.rs:1813
msgid "Can't open your Drive"
msgstr "Impossible d’ouvrir Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1816
#, rust-format
msgid ""
"The Proton Drive service keeps failing to start and tries again on its own. "
"The last error was: {error}"
msgstr "Le service Proton Drive n’arrive pas à démarrer et réessaie de lui-même. Dernière erreur : {error}"
#: crates/pdfs-gui/src/app/main.rs:1824
#: crates/pdfs-gui/src/app/pages/status.rs:355
#: crates/pdfs-gui/src/hud/mod.rs:269 crates/pdfs-gui/src/hud/mod.rs:579
#: crates/pdfs-gui/src/main.rs:475 crates/pdfs-gui/src/main.rs:517
#: crates/pdfs-gui/src/main.rs:493 crates/pdfs-gui/src/main.rs:535
msgid "Connecting…"
msgstr "Connexion…"
#: crates/pdfs-gui/src/app/main.rs:1804
#: crates/pdfs-gui/src/app/main.rs:1825
msgid "Waiting for the Proton Drive service to start."
msgstr "En attente du démarrage du service Proton Drive."
@@ -2908,7 +2919,7 @@ msgid "Sync paused until you resume"
msgstr "Synchronisation en pause jusqu’à la reprise"
#: crates/pdfs-gui/src/app/pages/locations.rs:570
#: crates/pdfs-gui/src/app/pages/status.rs:1445 crates/pdfs-gui/src/main.rs:290
#: crates/pdfs-gui/src/app/pages/status.rs:1445 crates/pdfs-gui/src/main.rs:308
msgid "Sync paused"
msgstr "Synchronisation en pause"
@@ -5138,7 +5149,7 @@ msgstr "Reprise {time}"
msgid "Until you resume"
msgstr "Jusqu’à la reprise"
#: crates/pdfs-gui/src/app/pages/status.rs:1464 crates/pdfs-gui/src/main.rs:292
#: crates/pdfs-gui/src/app/pages/status.rs:1464 crates/pdfs-gui/src/main.rs:310
#, rust-format
msgid "{n} change needs attention"
msgid_plural "{n} changes need attention"
@@ -6375,52 +6386,57 @@ msgstr "Proton Drive ne répond pas"
msgid "Signed in as {username} — locked"
msgstr "Connecté en tant que {username} — verrouillé"
#: crates/pdfs-gui/src/main.rs:200
#: crates/pdfs-gui/src/main.rs:209
#, rust-format
msgid "Signed in as {username} — can't open your Drive"
msgstr "Connecté en tant que {username} — impossible d’ouvrir Proton Drive"
#: crates/pdfs-gui/src/main.rs:218
#, rust-format
msgid "Signed in as {username} — not connected"
msgstr "Connecté en tant que {username} — non connecté"
#: crates/pdfs-gui/src/main.rs:205
#: crates/pdfs-gui/src/main.rs:223
msgid "Not signed in"
msgstr "Non connecté"
#. Translators: {error} is an error message, in English.
#: crates/pdfs-gui/src/main.rs:208
#: crates/pdfs-gui/src/main.rs:226
#, rust-format
msgid "Error: {error}"
msgstr "Erreur : {error}"
#: crates/pdfs-gui/src/main.rs:230
#: crates/pdfs-gui/src/main.rs:248
msgid "Proton Drive sent an unexpected reply"
msgstr "Proton Drive a envoyé une réponse inattendue"
#: crates/pdfs-gui/src/main.rs:284
#: crates/pdfs-gui/src/main.rs:302
msgid "Session expired — sign in again"
msgstr "Session expirée — reconnectez-vous"
#: crates/pdfs-gui/src/main.rs:286
#: crates/pdfs-gui/src/main.rs:304
msgid "Sign-in not saved — unlock your keyring"
msgstr "Connexion non enregistrée — déverrouillez votre trousseau"
#: crates/pdfs-gui/src/main.rs:289
#: crates/pdfs-gui/src/main.rs:307
msgid "Update not finished — restart Proton Drive"
msgstr "Mise à jour inachevée — redémarrez Proton Drive"
#: crates/pdfs-gui/src/main.rs:299
#: crates/pdfs-gui/src/main.rs:317
#, rust-format
msgid "Up to date in {mountpoint} ({n} pinned)"
msgid_plural "Up to date in {mountpoint} ({n} pinned)"
msgstr[0] "À jour dans {mountpoint} ({n} épinglé)"
msgstr[1] "À jour dans {mountpoint} ({n} épinglés)"
#: crates/pdfs-gui/src/main.rs:306
#: crates/pdfs-gui/src/main.rs:324
#, rust-format
msgid "Syncing — {queued} ({n} pinned)"
msgid_plural "Syncing — {queued} ({n} pinned)"
msgstr[0] "Synchronisation — {queued} ({n} épinglé)"
msgstr[1] "Synchronisation — {queued} ({n} épinglés)"
#: crates/pdfs-gui/src/main.rs:313
#: crates/pdfs-gui/src/main.rs:331
#, rust-format
msgid "Offline — cached files only ({n} pinned)"
msgid_plural "Offline — cached files only ({n} pinned)"
@@ -6428,60 +6444,60 @@ msgstr[0] "Hors ligne — fichiers en cache uniquement ({n} épinglé)"
msgstr[1] "Hors ligne — fichiers en cache uniquement ({n} épinglés)"
#. Translators: {queued} is a queue summary such as "3 uploads queued".
#: crates/pdfs-gui/src/main.rs:319
#: crates/pdfs-gui/src/main.rs:337
#, rust-format
msgid "Offline — {queued}"
msgstr "Hors ligne — {queued}"
#. Translators: a menu item that opens the list of failing changes.
#: crates/pdfs-gui/src/main.rs:358
#: crates/pdfs-gui/src/main.rs:376
#, rust-format
msgid "{n} issue — View"
msgid_plural "{n} issues — View"
msgstr[0] "{n} problème — Afficher"
msgstr[1] "{n} problèmes — Afficher"
#: crates/pdfs-gui/src/main.rs:465
#: crates/pdfs-gui/src/main.rs:483
msgid "Sign In…"
msgstr "Se connecter…"
#: crates/pdfs-gui/src/main.rs:466
#: crates/pdfs-gui/src/main.rs:484
msgid "Sign In Again…"
msgstr "Se reconnecter…"
#: crates/pdfs-gui/src/main.rs:469
#: crates/pdfs-gui/src/main.rs:487
msgid "Open Proton Drive"
msgstr "Ouvrir Proton Drive"
#: crates/pdfs-gui/src/main.rs:473
#: crates/pdfs-gui/src/main.rs:491
msgid "Restart Proton Drive"
msgstr "Redémarrer Proton Drive"
#: crates/pdfs-gui/src/main.rs:482
#: crates/pdfs-gui/src/main.rs:500
msgid "Open Folder"
msgstr "Ouvrir le dossier"
#: crates/pdfs-gui/src/main.rs:494
#: crates/pdfs-gui/src/main.rs:512
msgid "Resume Sync"
msgstr "Reprendre la synchronisation"
#: crates/pdfs-gui/src/main.rs:496
#: crates/pdfs-gui/src/main.rs:514
msgid "Pause Sync"
msgstr "Mettre en pause la synchronisation"
#: crates/pdfs-gui/src/main.rs:515
#: crates/pdfs-gui/src/main.rs:533
msgid "Connect"
msgstr "Connecter"
#: crates/pdfs-gui/src/main.rs:522
#: crates/pdfs-gui/src/main.rs:540
msgid "Hide Tray Icon"
msgstr "Masquer l’icône de la zone de notification"
#: crates/pdfs-gui/src/main.rs:526
#: crates/pdfs-gui/src/main.rs:544
msgid "Stop Proton Drive…"
msgstr "Arrêter Proton Drive…"
#: crates/pdfs-gui/src/main.rs:530
#: crates/pdfs-gui/src/main.rs:548
msgid "Quit"
msgstr "Quitter"