Hoy lo encontramos en una aplicación que estamos implementando en muchos servidores. Estaba almacenando algunas cadenas para almacenarlas en un almacén de claves/valores compartidos. El método .hash de String está devolviendo enteros diferentes según el servidor. ¿Alguna idea de por qué? Tenga en cuenta que estoy interesado en por qué; no es posible evitarlo.¿Por qué Ruby String.hash no es uniforme en todas las máquinas?
Ejemplo:
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
Estas máquinas son instancias de EC2 con las mismas especificaciones y construir.
Nos preguntamos si también puede mostrar el valor de 'RUBY_VERSION' dentro de' irb'. – GarlicFries
Por ejemplo: 'ruby-1.9.2-p290: 002> RUBY_VERSION => "1.9.2"' ' – GarlicFries
IRB (principales): 001: 0> RUBY_VERSION => "1.9.2"' para ambos – Brad