Erreur Cygwin: "- bash: fork: retry: ressource temporairement indisponible"

J'ai récemment réinstallé Cygwin sur mon ordinateur afin d'avoir accès à plusieurs éléments de ligne de commande qui me manquaient. Je n'ai jamais eu de difficulté avec Cygwin, mais après cette réinstallation, un message d'erreur continue d'apparaître après (presque) chaque commande entrée. Par exemple:

-bash-4.1$ wc m1.txt
      3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) !=     child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930  4027950 74968256 m1.txt

Généralement, la commande fonctionne toujours (comme vu ci-dessus), mais pas toujours. Parfois, le message "erreur" se produit plusieurs fois de suite (le nombre initial "3" passe alors à un " 4" ou "2", notamment si je démarre une deuxième fenêtre Cygwin.

Aussi, dès que je démarre Cygwin, je reçois le message suivant avant l'invite:

      3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000)     != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$

En ce moment, je discute de savoir s'il faut désinstaller/réinstaller Cygwin à nouveau ou simplement vivre avec les messages d'erreur, mais j'étais curieux de savoir s'il pourrait y avoir un problème que je ne connais pas.

Merci pour votre aide!

57
demandé sur David C 2012-02-16 00:21:26

12 réponses

(en supposant que Cygwin est installé à C:\Cygwin):

  1. ouvrez le Gestionnaire des tâches et fermez tous les processus qui semblent liés à Cygwin.
  2. ouvrir C:\Cygwin\bin dans L'Explorateur Windows
  3. Vérifiez ce tiret.exe, de la cendre.exe, rebase.exe et rebaseall existent dans ce dossier
    • Si l'un d'entre eux est manquant, Lancez à nouveau Cygwin setup et sélectionnez les paquets dash, ash et rebase
  4. cliquez avec le bouton droit sur votre C:\Cygwin dossier, décochez lecture seule (si elle est cochée), et appuyez sur OK.
    • Lorsqu'une erreur de ne pas pouvoir changer certains fichiers apparaît, sélectionnez "Ignorer tout". Attendez que ce processus se termine.
  5. accédez à C:\Cygwin\bin dans L'Explorateur Windows
  6. cliquez avec le bouton droit sur dash.exe et cliquez sur "Exécuter en tant qu'Administrateur". Une invite de commande devrait apparaître avec rien d'autre qu'un $
  7. tapez /usr/bin/rebaseall -v, Appuyez sur Entrée et attendez la fin du processus.
    • Si vous obtenez des erreurs sur les processus Cygwin en cours d'exécution, essayez à nouveau L'Étape 1. Si encore ne fonctionne pas, Redémarrez votre ordinateur en mode sans échec et essayez à nouveau ces étapes.
    • un commentateur a noté que, selon vos paramètres, vous devrez peut-être taper cd /usr/bin && ./rebaseall -v à la place.
  8. essayez à nouveau D'ouvrir Cygwin.

Ce processus a fonctionné pour moi. J'espère que cela fonctionne pour vous les gars aussi.

Source: http://cygwin.wikia.com/wiki/Rebaseall

104
répondu Cody S 2016-02-17 17:27:16

Je voudrais ajouter ce qui suit aux réponses ci-dessus, car c'est ce que j'ai dû faire après la réinstallation de Cygwin:

Accédez au répertoire" /usr/bin " (généralement, C:\cygwin\bin) et faites un clic droit, exécutez en tant Qu'administrateur le fichier: dash.EXE Ensuite, à l'invite$, tapez ce qui suit, en appuyant sur ENTRÉE après chaque ligne:

cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v

Ce qu'il fait est, il marque la dll comme "rebase-able", puis les rebase. Vous devez avoir des peflags.exe en plus des fichiers ci-dessus (dans les réponses précédentes). Vous devrez peut-être redémarrer windows après cela et vous devrez certainement vous assurer qu'il n'y a pas de processus ni de services appartenant à cygwin en cours d'exécution. (Utilisez le Gestionnaire des tâches, supprimez tous les processus associés, puis sous l'onglet services, recherchez tout service commençant par CYG et arrêtez-le.)

Après avoir fait cela, j'ai pu faire fonctionner cygwin sans aucune erreur sur le chargement de dll aux mauvaises adresses aka fork errors, etc.

J'espère que cela aide les autres, car c'était un douleur à trouver.

SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures 
and the rebase README file.
10
répondu Michieal 2016-04-02 12:29:31

Pour ajouter à d'autres réponses ici, nous avons rencontré le même problème mais nous n'avons pas pu exécuter la commande rebase à partir du shell ash ou dash. Cependant, lors du lancement de la commande à partir du shell cmd Windows, ce qui suit a fonctionné.

cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"

- v est d'obtenir une sortie détaillée

2
répondu timato 2016-08-01 18:57:55

, j'ai résolu ce problème en redémarrant mon ordinateur. Probablement installé une mise à jour du pilote et a continué à utiliser le sommeil au lieu de s'arrêter.

1
répondu Matt Bond 2016-09-22 07:09:50

J'ai trouvé une autre information ici : http://cygwin.com/ml/cygwin/2014-02/msg00531.html Vous devez supprimer la base de données /etc / rebase.db* et faire dans une fenêtre" ash" : peflags * - d 1 rebaseall Cela fonctionne pour moi sur 2 serveurs.

1
répondu Charly 2016-10-17 15:13:12

A rencontré le même problème lors du chargement de Cygwin avec cygiconv-2.dll forking et ne pas charger avec succès dans le terminal Cygwin, mais après avoir éteint mon AntiVirus (il était spécifiquement Ad-aware), le problème résolu, et Cygwin a fonctionné correctement.

1
répondu Christopher Snell 2017-05-22 11:56:37

Si vous utilisez Cygwin de babun, après rebaseall, essayez de lancer Cygwin en exécutant .babun\cygwin\cygwin.bat dans une invite de commande Windows ou l'Explorateur Windows.

Cela fonctionne pour moi (lors du lancement de la console par défaut de babun - mintty entraîne une erreur de fourche).

1
répondu songuke 2017-06-28 11:38:08

J'ai eu l'erreur sur win10 et j'essayais de rebaser en c: avant l'installation. ensuite, j'ai vu que le programme d'installation l'installait à la place de c:/Users/myuser donc, je faisais face à tous les fichiers de c:/Users/myuser à c:.badun et puis redémarrez plus ouvrez badun.MTD

Pas shure si cela était sage son XD maintenant dupliqué... mais ensuite, cela a fonctionné à nouveau.

0
répondu pachermann 2016-09-26 09:44:40

Rebaseing n'a pas aidé dans mon cas. En plus de ce que d'autres personnes ont suggéré, j'ai remarqué que la réduction de la longueur de la variable d'environnement PATH a résolu le problème pour moi (et pour d'autres personnes ainsi que peut être vu à partir de cette réponse).

0
répondu yugr 2018-07-26 10:55:06

Ce problème est de nature intermittente et j'ai trouvé ce problème quand le réseau est trop lent pour se connecter à une machine distante sur AWS.... J'ai un script Shell qui traverse Gitbash shell et il se connecte à L'instance AWS EC2 avec ssh..... La plupart du temps, il a fonctionné correctement mais 2 fois sur 100 fois il entre dans ce problème bash: fork: retry: Resource temporairement indisponible .... Tuer le terminal MSYS2 du Gestionnaire des tâches aide à surmonter ce problème.... Côté négatif est que vous devez exécutez les scripts depuis le début...

0
répondu Abhishek Jain 2018-09-21 10:35:22

J'ai commencé à faire face à ce problème après la mise à niveau vers windows 10. A partir de Maintenant, je ne vois pas que l'une des méthodes ci-dessus fonctionne.
Ce que je remarque, c'est que si vous démarrez cygwin avec admin right (clic droit et dites "exécuter en tant qu'administrateur"), cela fonctionne bien.
Ou vous ouvrez cmd en tant qu'administrateur, puis lancez cygwin à partir de là, puis il fonctionne bien.

-1
répondu peeyush 2016-12-07 13:22:12

Réinstallez simplement cygwin et sélectionnez TCL et activez EXPECT

-3
répondu Lacson Noel Lacky 2016-08-08 04:13:16