mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
Merge pull request #15240 from ClickHouse/fix-random-seed
Fix strange code
This commit is contained in:
commit
2566478349
@ -4,6 +4,7 @@
|
|||||||
#include <Common/Exception.h>
|
#include <Common/Exception.h>
|
||||||
#include <Common/randomSeed.h>
|
#include <Common/randomSeed.h>
|
||||||
#include <Common/SipHash.h>
|
#include <Common/SipHash.h>
|
||||||
|
#include <common/getThreadId.h>
|
||||||
#include <common/types.h>
|
#include <common/types.h>
|
||||||
|
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ namespace DB
|
|||||||
DB::UInt64 randomSeed()
|
DB::UInt64 randomSeed()
|
||||||
{
|
{
|
||||||
struct timespec times;
|
struct timespec times;
|
||||||
if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, ×))
|
if (clock_gettime(CLOCK_MONOTONIC, ×))
|
||||||
DB::throwFromErrno("Cannot clock_gettime.", DB::ErrorCodes::CANNOT_CLOCK_GETTIME);
|
DB::throwFromErrno("Cannot clock_gettime.", DB::ErrorCodes::CANNOT_CLOCK_GETTIME);
|
||||||
|
|
||||||
/// Not cryptographically secure as time, pid and stack address can be predictable.
|
/// Not cryptographically secure as time, pid and stack address can be predictable.
|
||||||
@ -27,7 +28,7 @@ DB::UInt64 randomSeed()
|
|||||||
SipHash hash;
|
SipHash hash;
|
||||||
hash.update(times.tv_nsec);
|
hash.update(times.tv_nsec);
|
||||||
hash.update(times.tv_sec);
|
hash.update(times.tv_sec);
|
||||||
hash.update(getpid());
|
hash.update(getThreadId());
|
||||||
hash.update(×);
|
hash.update(×);
|
||||||
return hash.get64();
|
return hash.get64();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user