1 votes

Comment déboguer Varnish qui ne démarre pas correctement ?

J'essaie d'exécuter Varnish, mais il semble qu'un processus enfant meurt au démarrage. Est-ce que quelqu'un peut me suggérer la meilleure façon de déboguer ce qui ne va pas ?

Contexte

J'ai un raspberry pi sur lequel j'ai installé Debian, qui fonctionnait bien avec varnish. Récemment, j'ai décidé d'installer Raspbian (un système d'exploitation basé sur Debian, mais optimisé pour le raspberry pi). Pour ce faire, j'ai fait une nouvelle installation et j'ai utilisé Puppet pour m'assurer que j'avais tous les mêmes paramètres que précédemment.

La seule différence substantielle entre les deux configurations à laquelle je peux penser est que Raspbian utilise une version plus récente de Debian (Wheezy) que celle que j'utilisais auparavant (Squeeze), et qu'elle est donc livrée avec Varnish 3 au lieu de 2.

Tentatives de débogage jusqu'à présent :

J'ai regardé dans /var/logs/syslog et j'ai trouvé ce qui suit :

Sep 21 22:26:28 interceptor varnishd[15056]: Platform: Linux,3.1.9+,armv6l,-smalloc,-smalloc,-hcritbit
Sep 21 22:26:28 interceptor varnishd[15056]: child (15064) Started
Sep 21 22:26:28 interceptor varnishd[15056]: Pushing vcls failed:#012CLI communication error (hdr)
Sep 21 22:26:28 interceptor varnishd[15056]: Stopping Child
Sep 21 22:26:28 interceptor varnishd[15056]: Child (15064) died signal=11
Sep 21 22:26:28 interceptor varnishd[15056]: Child (-1) said Child starts
Sep 21 22:26:28 interceptor varnishd[15056]: Child cleanup complete
Sep 21 22:26:28 interceptor varnishd[15056]: Manager got SIGINT

J'ai essayé de chercher l'erreur sur Google, mais je n'ai rien trouvé d'utile.

J'ai également lancé strace -f tout en redémarrant varnish, mais il est évident que cela a généré beaucoup de résultats et je n'étais pas sûr de ce qu'il fallait chercher. J'ai cherché le pid du processus enfant (15064), mais cela n'a pas semblé correspondre à quoi que ce soit. Le strace contenait beaucoup de lignes comme

[pid 15114] close(131072)               = -1 EBADF (Bad file descriptor)                                                                                                                                  
[pid 15114] close(131071)               = -1 EBADF (Bad file descriptor)                                                                                                                          
[pid 15114] close(131070)               = -1 EBADF (Bad file descriptor)                                                                                                                                  
[pid 15114] close(131069)               = -1 EBADF (Bad file descriptor)                                                                                                                                  
[pid 15114] close(131068)               = -1 EBADF (Bad file descriptor)                                                                                                                                  
[pid 15114] close(131067)               = -1 EBADF (Bad file descriptor)                                                                                                                                  
[pid 15114] close(131066)               = -1 EBADF (Bad file descriptor)

mais je ne sais pas si c'est normal ou si c'est le résultat de mon problème plutôt que sa cause.

Tout conseil sur la manière de procéder est le bienvenu.

3voto

Shane Madden Points 112034

La meilleure sortie en cas d'échec au démarrage est stdout/stderr - mais les scripts d'init par défaut empêchent l'affichage de cette sortie.

Essayez d'exécuter seulement varnishd -f /etc/varnish/default.vcl - cela devrait vous indiquer les erreurs de chargement de votre VCL.

2voto

Derek Mahar Points 7125

Essayez d'attacher du vernis en cours d'exécution à l'aide de quelques drapeaux très simples :

varnishd -l 8m -s file,/tmp,8m -b lo

a

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X