[ 
https://issues.apache.org/jira/browse/SOLR-17895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18127308#comment-18127308
 ] 

Amrit Sarkar commented on SOLR-17895:
-------------------------------------

Reproduced on a single node with the Overseer disabled: after creating and 
deleting a few collections, all their {{Locks}} dirs were still under 
{{/distributedapi/collectionlocks}}.

PR: https://github.com/apache/solr/pull/5161

What it does:
* lock dirs are now {{CONTAINER}} znodes, as suggested above, so ZooKeeper 
removes them once empty
* the lock is created first and the dir chain only rebuilt on {{NoNode}}, at 
most 3 attempts, which covers the race Paul mentioned
* DELETE collection removes that collection's empty lock dirs after releasing 
its lock, which cleans up the persistent dirs left by older versions

Old persistent dirs of collections deleted before upgrading, deleted indirectly 
(routed aliases, REINDEXCOLLECTION), or of deleted configsets stay. That's a 
one-time leftover, they're safe to delete by hand while no collection commands 
are running.

I kept it on {{SolrZkClient}} rather than Curator's 
{{creatingParentContainersIfNeeded}}, happy to switch if that's preferred.


> Persistent ZNodes are leaked when running Solr Cloud with distributed 
> collection commands
> -----------------------------------------------------------------------------------------
>
>                 Key: SOLR-17895
>                 URL: https://issues.apache.org/jira/browse/SOLR-17895
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 9.0, 10.0
>            Reporter: Paul McArthur
>            Priority: Minor
>
> When a collection command is executed in distributed mode 
> (DistributedCollectionCommandRunner), an ephemeral ZNode is created to lock 
> the collection, shard or replica that prevents other commands from executing 
> concurrently and potentially conflicting with each other.
>  
> The ephemeral nodes are created in a tree structure under 
> {_}*distributedapi/collectionlocks*{_}, with persistent znodes created for
> collName
> collName/Locks
> collName/_shard
> collName/_shard/Locks
> collName/_shard/_replica
>  
> These nodes are never deleted from ZooKeeper, even when the collection is 
> deleted, and can therefore accrue over time. 
> In our specific case, we have accumulated many thousands of these nodes over 
> a few months. While there appears to be no direct impact on performance, 
> these nodes should nonetheless be removed when they are no longer required.
>    



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to