Nous sommes arrivés aujourd'hui sur une application que nous déployons sur de nombreux serveurs. Je devais hacher certaines chaînes pour les stocker dans un magasin à clé/valeur partagée. La méthode .hash de String retourne différents entiers en fonction du serveur. Des idées pourquoi? Notez que je suis intéressé par pourquoi; pas possible de contourner les travaux.Pourquoi Ruby String.hash est-il incohérent entre les machines?
Exemple:
server1 $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
server1 $ irb
irb(main):001:0> "test".hash
=> 4146582576695053125
server2 $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
server2 $ irb
"test".hash
=> 3479379392688537032
Ces machines sont des instances EC2 avec les mêmes spécifications et construire.
Nous nous demandons si vous pouvez également afficher la valeur de 'RUBY_VERSION' dans' 'irb'. – GarlicFries
Par exemple: 'ruby-1.9.2-p290: 002> RUBY_VERSION => "1.9.2"' ' – GarlicFries
irb (principaux): 001: 0> RUBY_VERSION => "1.9.2"' pour les deux – Brad