2011-03-26 3 views
1

L'autre nuit, j'ai tenté de convaincre Hudson de lancer une instance EC2. Tout fonctionnait bien et dandy jusqu'à ce matin quand j'ai créé une AMI basée sur ce que j'avais créé. Faire cela a également créé un instantané de mon disque. Après cela, j'ai réalisé que mon serveur Jenkins n'était pas en cours d'exécution. Effectivement, en regardant mon instance ssh, j'avais été déconnecté. Donc, je relogué et ai essayé de commencer les choses en cours d'exécution Jenkins server et voici ce que je suis une erreur:Problèmes de démarrage de Jenkins

/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1064:in `escape': can't convert Pathname to String (TypeError) 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1064:in `block in loaded_path?' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `each' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `find' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `loaded_path?' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/httparty-0.6.1/lib/httparty.rb:10:in `<top (required)>' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins/api.rb:1:in `<top (required)>' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:3:in `<module:Jenkins>' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:1:in `<top (required)>' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/bin/jenkins:4:in `<top (required)>' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in `load' 
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in `<main>' 

Je n'utilise un walkthrough pour obtenir cette configuration, et ont fait référence revenir pour voir si manqué quelque chose, mais c'est assez simple. J'ai aussi cherché Google pour le can't convert Pathname to String sans aucune chance. Honnêtement, je n'ai aucune idée de l'endroit où commencer même à regarder dans celui-ci. Est-ce un problème Ruby? Des rails? Jenkins?

Je le mettrai à jour si je trouve d'autres informations utiles.

EDIT Je dois aussi ajouter que je suis allé dans l'espace de travail du projet que j'avais bâtiment Jenkins et a pu démarrer juste bien. Pour cette raison, je ne pense pas que ce soit un problème Ruby.

EDIT 2 Ok, donc je décidé de prendre EC2 hors de l'équation et mis mon propre serveur avec Ubuntu 10.10. Même configuration, tout fonctionnait bien, puis j'ai redémarré, et maintenant je reçois cette erreur à nouveau. Maintenant, je suis confiant que c'est une simple erreur stupide parce que je suis un nouveau membre d'Ubuntu, mais je suis sûr que quelqu'un d'autre a déjà rencontré ça.

+0

P.S. Il est ridicule à quelle vitesse les scrappeurs de SO touchent de nouveaux messages et google les récupère. Après avoir posté ceci j'ai continué ma recherche et ai trouvé un lien avec ce qui a ressemblé à plus d'information ... c'était une éraflure de celui-ci, mais sur un emplacement différent. –

Répondre

1

longue histoire sh ort, la solution était d'installer Jenkins comme apt-get au lieu d'utiliser le Gem. Il semble que cela se résume à un problème où Jenkins regardait la mauvaise version de Ruby.

Cette URL est ce qui finalement m'a lancé sur le chemin pour résoudre ce problème: http://www.ygamretuta.com/2011/03/ruby-installing-ramaze-working-around-cant-convert-pathname-to-string-error/

Je dois aussi ajouter que même si les réponses que Kelvin a donné peut-être me eu l'occasion de l'erreur, ne sont des solutions idéales au problème .

1

Pour une solution rapide, essayez de réduire les rubygems à moins de 1,6. On dirait que les développeurs de rubygems ont introduit du code pour éviter de charger un fichier plus d'une fois.

Si vous êtes intéressé, voici le code incriminé (de https://github.com/rubygems/rubygems.git à rev dcfba4e1de4c7388425eb5de5066cb5aa9bea6e6):

def self.loaded_path? path 
    # TODO: ruby needs a feature to let us query what's loaded in 1.8 and 1.9 
    $LOADED_FEATURES.find { |s| 
    s =~ /(^|\/)#{Regexp.escape path}#{Regexp.union(*Gem.suffixes)}$/ 
    } 
end 

Si vous ne parvenez pas à rétrograder, une solution moins idéale consiste à modifier rubygems.rb si

Regexp.escape path 

devient

Regexp.escape path.to_s 
Questions connexes