Nous exécutons des travailleurs Ruby sur un grand nombre de machines à l'aide de Resque. De temps en temps, nous voyons des failles de segmentation dans nos processus de travail Resque. Il est difficile de les déboguer, car ils sont assez rares, et nous devons exécuter des dizaines de milliers de tâches réparties pour provoquer un crash.Capture des backtraces de défaillances de segmentation à partir de Ruby et Resque sous Linux
Idéalement, nous aimerions capturer les backtraces et les fichiers core après chaque crash, et les télécharger automatiquement sur un serveur central. En d'autres termes, nous cherchons quelque chose comme "Bug Buddy" de Gnome, mais complètement automatisé et capable d'attraper les fautes lorsque l'interpréteur Ruby vide le noyau. (Des produits similaires basés sur l'interface graphique incluent MacOS X Crash Reporter, Windows Error Reporting, KDE Dr. Konqi et Mozilla's Breakpad.) Nous avons besoin de quelque chose qui fonctionne sur un serveur sans tête et sans surveillance.)
Jusqu'à présent, l'option la plus prometteuse semble être l'Apport d'Ubuntu, qui peut intercepter les plantages dans les processus du serveur et les enregistrer sur le disque. Apport télécharge normalement des plantages sur le Launchpad d'Ubuntu, mais il est également livré avec une bibliothèque Python.
Est-ce que quelqu'un a des recommandations ou une expérience de première main en utilisant ces bibliothèques? Je demande ici plutôt que sur Server Fault parce que les solutions sont susceptibles d'impliquer des changements de programmation ou de code.
Avez-vous la possibilité d'essayer autre chose que Resque, comme RabbitMQ? –
Bonjour. Avez-vous trouvé un outil pour le résoudre et capturer les erreurs de segmentation? –