haveged仮想マシンでエントロピーをより速く補充するためにインストールします。
を生成するのに十分なエントロピーがない可能性がありますが、そこUUIDから ランダム性が簡単に失われます。特に仮想マシンでは。したがって、仮想マシンは文字通り、よりランダム性が可能になるのを待っています。新しい種類のエントロピーを収集することで、そのランダム性をすばやく補充するのに役立ちます。SecureRandomjRubyhaveged
インストール中...
ダウンロード: http://www.issihosts.com/haveged/downloads.html
Mint や Ubuntu などの Debian ライクな Linux フレーバーでは、次のようにします。
sudo apt-get install haveged
SecureRandomこれは、以下の既知の問題jRubyです...
過去にもこの問題があり、strace問題を特定するために使用する必要がありました。このファイルに注目してください。これは、質問で言及した行の直前にロードされたものです ... internals/uuid.rb:
require "securerandom"
module Celluloid
module Internals
# Clearly Ruby doesn't have enough UUID libraries
# This one aims to be fast and simple with good support for multiple threads
# If there's a better UUID library I can use with similar multithreaded
# performance, I certainly wouldn't mind using a gem for this!
module UUID
values = SecureRandom.hex(9).match(/(.{8})(.{4})(.{3})(.{3})/)
PREFIX = "#{values[1]}-#{values[2]}-4#{values[3]}-8#{values[4]}".freeze
#de ...
end
end
end
9コードの接頭辞として使用できる16進数の文字列を生成するため、これは問題のあるコードでしたUUID... using SecureRandom.
その後、Celluloid::Internals::UUID.generateメソッドを介してそれを使用します。しかし、ロード時に、Celluloid::Internals::UUIDモジュールは次のような問題があったSecureRandom... を必要とする操作を実行します。jRuby