Drush (Drupal Shell) es una de las mejores herramientas para desarrolladores bajo Drupal (CMS), esta herramienta permite ejecutar varias instruciones a nivel de base de datos, configuraciones, generar código base para módulos entre otras prestaciones.
Al llegar Drupal 9.5 varios usuarios han experimentado problemas con drush y PHP 8.1, pensando que quiza puede ser un módulo contribuido que esta dando problemas o el mismo Drupal, pasando por muchas pruebas para determinar la causa del problema.
- Segmentation fault
- [Warning] Drush command terminated abnormally
Estos dos mensajes de error aparecen al ejecutar drush updb -y, drush cr respectivamente
Se puede examinar estos comandos con mas detalle al ejecutar
drush cr -vvv
Lo cual arroja bastante informacion sobre el estado de drush
Tambien se lo puede probar con
drush updb -y -vvv
Solución
Despues de un largo tiempo googleando y preguntando en grupos de usuarios Drupal(comunidad, whatsapp), encontramos la solución con mi amigo Aldibier y la solucion viene dada por el limite de memoria de la linea de comandos para PHP, es decir el PHP cli
Para obtener esta informacion se puede hacer uso del siguiente comando en consola
php -i | grep memory_limit
El resultado del comando anterior muestra la cantidad de memoria que esta utilizando drush al ejecutar las instrucciones, drush necesita almenos de 128Mb
Como se puede determinar que cantidad de memoria que se necesita, esto se lo puede hacer desde la misma linea de comandos con la siguiente instruccion:
php -d memory_limit=128Mb vendor/drush/drush/drush.php cr
Con esta instruccion el comando se ejecuta sin problemas, entonces a partir de esta conclusion, debemos cambiar nuestra cantidad de memoria en /etc/php/8.1/apache/php.ini, buscando dentro de este archivo la linea memory_limit
Si se da el caso en que es un hosting compartido, se debe solicitar al proveedor redimensionar la cantidad limite de memoria.
Espero que esta informacion de de utilidad.
Saludos