Résoudre un échec d'erpc worker

Repérez le début du message affiché par erpc worker, et faites ce qu'indique sa ligne.
Cette page décrit ERPC CLI v0.1.0-rc.4, une préversion.

Messages d'erreur et que faire

Les échecs du worker utilisent les codes et les statuts de sortie d'erpc : voir Erreurs et codes de sortie.
Message (son début)PourquoiQue faire
<app> cannot start without <SETTING>run.requires nomme un paramètre que rien ne définiterpc worker secret put <SETTING>, définissez-le dans [vars], ou déployez avec la ligne qui le définit (--grpc, --unlimited)
your key was added but does not get inL'agent SSH n'a pas signé : 1Password est verrouillé, ou sa demande n'a pas été autoriséeDéverrouillez 1Password, autorisez la demande, et relancez la même commande. Elle se poursuit
1Password could not …: authorization timeout1Password a demandé un accord et personne n'a réponduAutorisez la demande dans 1Password, puis relancez la commande
<NAME> is empty; nothing was keptsecret put a lu une entrée standard vide : le shell n'est pas un terminalLancez-la dans un terminal, ou transmettez la valeur par un pipe
the keystore is locked, and nobody is at a terminal …Une commande sans terminal a besoin du keystore, et aucun déverrouillage n'est conservéerpc worker secret unlock dans un terminal, puis relancez la commande
nothing is kept under keystore:… on this machineLa valeur a été conservée dans le keystore d'une autre machineerpc worker secret put <NAME> --replace ici ; pour la clé, apportez tout le répertoire keystore de cette machine et sa phrase de passe
release <id> failed: …; the server went back to <previous>La nouvelle release n'a pas passé son contrôle de santéConsultez erpc worker logs. La release précédente tourne toujours
… is locked: the trading key has not been handed overLe serveur a redémarré, l'agent a échoué ou a été tué et systemd l'a relancé, ou stop --lockerpc worker start
port <n> is taken: …Un autre worker maintenu en exécution a le même port du contrôle de santé, ou un autre programme écoute sur ce portDonnez à l'application un port qui lui est propre dans erpc.toml, puis redéployez
release <id> runs, and its WAF did not come up: …Le WAF n'a pas commencé à écouter. Le plus souvent, un autre programme occupe waf.porterpc worker logs --waf, puis libérez le port ou changez waf.port, et redéployez. L'application tourne en attendant
waf.<key> … (de check, deploy)Une clé [waf] sort de ses bornes, ou waf.port est inférieur à 1024 ou identique à celui de run.port, de SSH ou du contrôle de santéCorrigez erpc.toml. erpc worker check liste tous les problèmes d'un coup
the WAF's port <port> was not opened to … (de firewall allow, deny, sync)La modification laisserait entrer quelqu'un de nouveau sous des règles WAF que le serveur n'applique pas encoreerpc worker deploy : il met en place les nouvelles règles, puis ouvre le port
<kind> line <id> did not become active in <n> minutesLa ligne est toujours en cours de mise en placeRedéployez pour attendre davantage
OUT_OF_STOCKAucun serveur de ce forfait n'est disponible dans cette régionDéployez avec --region <another>
the start may or may not have gone through: …La requête est partie et aucune réponse n'est revenue, ou la réponse était un 5xx, 408 ou 429Relancez la même commande : elle envoie la même requête
this purchase, or another of the account's, is still being made …La première requête est toujours en cours, ou un autre achat du compte détient son verrouRelancez la même commande sous peu : elle envoie la même requête
… changed in 1Password since this command read itUne autre machine a écrit l'élément d'inventaire entre-tempsRelancez la commande
the shared RPC takes none of the account's API keys from this machine (<n> tried) (de secret put --from-account, erpc rpc call, erpc webhook run)Chacune des clés du compte a été refusée depuis cette machine : les clés sont arrivées à échéance, le compte n'a pas de forfait RPC partagé actif, ou les clés sont limitées à d'autres adresses, comme celle d'un serveurL'ERPC Web Dashboard affiche la date de fin d'une clé et le forfait, et crée une nouvelle clé. Pour une clé limitée à l'adresse du serveur : erpc worker secret put ERPC_API_KEY, saisie ou transmise par un pipe
shared: … HTTP 401 (bench)Le RPC partagé a refusé la clé : pas de forfait RPC partagé actif, ou une mauvaise cléVérifiez le forfait dans le tableau de bord, ou définissez ERPC_API_KEY
shared: … HTTP 429 (bench)La limite de débit du forfaitUtilisez --interval 150 ou plus

Un achat qu'erpc ne peut pas consigner

Lorsqu'un serveur ou une ligne a pu être démarré par une requête antérieure qu'erpc n'a pas pu consigner, examinez les serveurs et les lignes de votre compte dans le tableau de bord. Reprenez un serveur avec erpc worker deploy --vps <ID>, ou mettez fin à ce dont vous ne voulez pas. Retirez ensuite à la main l'entrée de [env.<name>.starting] dans erpc.toml : erpc n'a aucune option qui la supprime, et tant que ce n'est pas fait, la même commande envoie la même requête.

Si le serveur a pu être compromis

  1. Exécutez d'abord erpc worker backup off, pour révoquer la clé d'accès de sauvegarde du serveur. off n'annule pas ce que le serveur a déjà lu.
  2. Transférez les fonds hors de sa clé de trading, et remplacez ses secrets.
  3. Reconstruisez le serveur depuis l'ERPC Web Dashboard, et redéployez.
Si la reconstruction a changé la clé d'hôte SSH du serveur, erpc refuse le serveur tant que vous n'avez pas mis à jour la clé épinglée. Un déploiement remet le code en place, pas l'état de l'application, que seule une sauvegarde peut restaurer (Sauvegarder l'état de l'application).

Ce qu'erpc ne fait jamais

  • Mettre une clé, un secret, ou une URL qui en contient un, sur une ligne de commande.
  • Écrire une clé de trading ou un secret d'application dans un fichier, à une exception près : son keystore sur votre machine, où chacun est chiffré sous votre phrase de passe. Sur un serveur, erpc worker backup on laisse les propres clés de sauvegarde du serveur dans un fichier réservé à root.
  • Démarrer quoi que ce soit sans afficher son prix.
  • Laisser un serveur ouvert : le pare-feu est en vigueur avant le premier démarrage de l'application.
  • Joindre un serveur dont la clé d'hôte ne correspond pas à la clé épinglée.
Le guide du worker liste tous les messages, y compris ceux du WAF.