[
https://issues.apache.org/jira/browse/ZOOKEEPER-4253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Damon Liu updated ZOOKEEPER-4253:
---------------------------------
Description:
App AA connects to ZooKeeper and creates a temporary path such as
/brokers/ids/10. Another APP BB also connects to ZooKeeper. At some point AA BB
and ZooKeeper are restarted, and BB allocates AA's old session
before restart:
AA connect to zookeeper ,and log in zk:
[2021-03-07 08:47:43,468] INFO [SyncThread:0] Established session
{color:#ff0000}0x10000053ef90000{color} with negotiated timeout 8000 for client
/{color:#ff0000}22.20.0.45{color}:59966
(org.apache.zookeeper.server.ZooKeeperServer)
after restart:
BB connect to zookeeper ,and log in zk:
[2021-03-07 08:58:51,351] INFO [SyncThread:0] Established session
{color:#ff0000}0x10000053ef90000{color} with negotiated timeout 30000 for
client /{color:#ff0000}22.20.0.47{color}:39360
(org.apache.zookeeper.server.ZooKeeperServer)
I understand that after a restart, ZooKeeper loads old transaction logs and
snapshot files, and old sessions and temporary paths are loaded. If BB obtains
the old session 0x10000053ef90000 at this point, the session will not expire
and the temporary path will not be deleted, causing AA to be unable to
re-register the temporary path
This is my question. I look forward to your help. Thank you very much!
was:
I have an app AA connect to zookeeper and register a temporary path such as
/brokers/ids/10,and I have another app BB also connect to zookeeper. At some
point, AA BB and ZooKeeper both restarted
before restart:
AA connect log in zk : [2021-03-07 08:47:43,468] INFO [SyncThread:0]
Established session {color:#FF0000}0x10000053ef90000{color} with negotiated
timeout 8000 for client /{color:#FF0000}22.20.0.45{color}:59966
(org.apache.zookeeper.server.ZooKeeperServer)
after restart:
BB connect log in zk:[2021-03-07 08:58:51,351] INFO [SyncThread:0] Established
session {color:#FF0000}0x10000053ef90000{color} with negotiated timeout 30000
for client /{color:#FF0000}22.20.0.47{color}:39360
(org.apache.zookeeper.server.ZooKeeperServer)
I understand that when ZooKeeper restarts, the transaction log and snapshot
files will be loaded, and the old
session({color:#FF0000}0x10000053EF90000{color}) and the temporary path will be
loaded,If App BB gets the old session {color:#FF0000}0x10000053EF90000{color},
the session will not expire, the temporary path(/brokers/ids/10) will not be
deleted, and App AA will not be able to re-register the temporary
path(/brokers/ids/10)。
That's my question,looking forward to your help. Thank you.
> I connected to ZooKeeper at different times, but I got the same session ID
> --------------------------------------------------------------------------
>
> Key: ZOOKEEPER-4253
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4253
> Project: ZooKeeper
> Issue Type: Bug
> Components: java client
> Affects Versions: 3.4.13
> Reporter: Damon Liu
> Priority: Major
> Attachments: AA.log, BB.log, zookeeper.log
>
>
> App AA connects to ZooKeeper and creates a temporary path such as
> /brokers/ids/10. Another APP BB also connects to ZooKeeper. At some point AA
> BB and ZooKeeper are restarted, and BB allocates AA's old session
> before restart:
> AA connect to zookeeper ,and log in zk:
> [2021-03-07 08:47:43,468] INFO [SyncThread:0] Established session
> {color:#ff0000}0x10000053ef90000{color} with negotiated timeout 8000 for
> client /{color:#ff0000}22.20.0.45{color}:59966
> (org.apache.zookeeper.server.ZooKeeperServer)
>
> after restart:
> BB connect to zookeeper ,and log in zk:
> [2021-03-07 08:58:51,351] INFO [SyncThread:0] Established session
> {color:#ff0000}0x10000053ef90000{color} with negotiated timeout 30000 for
> client /{color:#ff0000}22.20.0.47{color}:39360
> (org.apache.zookeeper.server.ZooKeeperServer)
>
> I understand that after a restart, ZooKeeper loads old transaction logs and
> snapshot files, and old sessions and temporary paths are loaded. If BB
> obtains the old session 0x10000053ef90000 at this point, the session will not
> expire and the temporary path will not be deleted, causing AA to be unable to
> re-register the temporary path
> This is my question. I look forward to your help. Thank you very much!
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)