You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Matthew Sharp (Jira)" <ji...@apache.org> on 2022/12/09 20:05:00 UTC
[jira] [Created] (HIVE-26831) Random temp ID for lock enqueue and commitTxn is not guaranteed negative
Matthew Sharp created HIVE-26831:
------------------------------------
Summary: Random temp ID for lock enqueue and commitTxn is not guaranteed negative
Key: HIVE-26831
URL: https://issues.apache.org/jira/browse/HIVE-26831
Project: Hive
Issue Type: Bug
Affects Versions: 4.0.0-alpha-2, 4.0.0-alpha-1
Reporter: Matthew Sharp
HIVE-23283 mentions the goal of generating a negative number to avoid any potential conflicts, but the current random number generation is not guaranteed to produce only negative values.
From the TxnHandler class:
{code:java}
private long generateTemporaryId() {
return -1 * ThreadLocalRandom.current().nextLong();
} {code}
If the nextLong returns a negative value we will see a positive temporary ID. The odds of this conflicting may be low and with retries it may be hidden from users, but this should be fixed to ensure only negative values are returned.
Something like this may be best:
{code:java}
private long generateTemporaryId() {
return ThreadLocalRandom.current().nextLong(Long.MIN_VALUE, 0);
}{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)