cygwin: cómo solucionar fallos de horquilla

0

Sé que ya hay mucha información sobre esto, pero no he podido encontrar una solución. Tal vez alguien que sepa más sobre cómo funciona cygwin pueda ayudar.

Tuve cygwin trabajando durante varios meses sin problema hasta el miércoles. El miércoles, mientras experimentaba, lo ejecuté accidentalmente. eval "exit 1". Cygwin inmediatamente porque imprime errores de horquilla, como este:

      0 [main] -bash 10632 fork: child 11748 - died waiting for dll loading, errno 11
-bash: fork: retry: Resource temporarily unavailable

Ahora recibo estos errores de bifurcación cada vez que trato de obtener mi fuente .bash_profile archivo, que he vinculado aquí , incluso cuando inicio la terminal por primera vez. El único archivo que se obtiene de ese que también provoca el error es git-completion.bash, pero eliminar ese archivo no impide source .bash_profile de tener errores.

Reinicié mi computadora, actualicé cygwin y ejecuté un rebase completo, y todavía estoy recibiendo ese error. Parece probable que al ejecutar ese comando maté accidentalmente algo que no debería haber hecho, pero no tengo idea de lo que podría ser. ¿Algunas ideas?

No estoy ejecutando ningún BLODA. Estoy ejecutando 64 bit cygwin en Windows 7.

ewok
fuente
El mejor lugar para recibir asistencia es la lista de correo de cygwin. Siga la pauta cygwin.com/problems.html .No podemos gestionar adecuadamente el problema aquí.
matzeri

Respuestas:

1

Las fallas de horquilla en cygwin nunca son 100% posibles de eliminar - ver Preguntas frecuentes sobre Cygwin: ¿Cómo soluciono las fallas de la horquilla?

Citando el sitio cygwin:

¿Cómo soluciono fallos de fork ()?

Desafortunadamente, Windows no usa el modelo de proceso fork / exec   La creación se encuentra en sistemas operativos similares a UNIX, por lo que es difícil para Cygwin   Implementar un fork () confiable y correcto, que puede llevar a error.   mensajes como:

  • no se puede reasignar a la misma dirección que el padre
  • no podría asignar montón
  • murió esperando la carga dll
  • niño -1 - murió esperando a longjmp
  • antes de la inicialización
  • STATUS_ACCESS_VIOLATION
  • Recurso temporalmente no disponible

Soluciones potenciales para los errores anteriores:

  • Reinicie cualquier proceso que esté intentando (y falla) usar fork (). A veces, Windows configura un entorno de proceso que es aún más   hostil al tenedor () de lo habitual.
  • Asegúrese de que ha eliminado (no solo desactivado) todo el software en el BLODA .
  • Cambie de Cygwin de 32 bits a Cygwin de 64 bits, si su SO y CPU lo admiten. Con el espacio de dirección más grande, la horquilla () es menos probable que falle.
  • Intente establecer la variable de entorno CYGWIN en "detect_bloda", que habilita algunas   depuración adicional, que puede indicar qué otro software está causando el   problema.

En mi experiencia, cuanto más tiempo esté funcionando y funcionando su máquina Windows, más posibilidades tendrá de una falla de la horquilla. Supongo que la fragmentación de la memoria con el tiempo puede dificultar que Cygwin lo haga.

He notado que agregar más RAM puede ayudar también.

He tenido un éxito razonable al programar reinicios de máquinas cygwin.

Dicho esto, lo más efectivo ha sido usar 64bit cygwin en lugar de 32bit y estar preparado para reemplazar totalmente a cygwin y ser generoso al otorgar exclusiones de antivirus explícitas a sus carpetas de instalación de cygwin.

IanNorton
fuente