Skip to content

SOLR-16542: Remove OverseerConfigSetMessageHandler; always do distributed mode#1467

Closed
vinayakphegde wants to merge 4 commits intoapache:mainfrom
vinayakphegde:SOLR_16542
Closed

SOLR-16542: Remove OverseerConfigSetMessageHandler; always do distributed mode#1467
vinayakphegde wants to merge 4 commits intoapache:mainfrom
vinayakphegde:SOLR_16542

Conversation

@vinayakphegde
Copy link
Contributor

@vinayakphegde vinayakphegde commented Mar 16, 2023

https://issues.apache.org/jira/browse/SOLR-16542

Description

remove the Overseer based processing of ConfigSets, thus always use DistributedCollectionConfigSetCommandRunner instead for ConfigSet processing

Checklist

Please review the following and check all that apply:

  • I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • I have created a Jira issue and added the issue ID to my pull request title.
  • I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
  • I have developed this patch against the main branch.
  • I have run ./gradlew check.
  • I have added tests for my changes.
  • I have added documentation for the Reference Guide

Additionally, I've updated some of the documentation to reflect these changes, but haven't made significant modifications to the overseer.doc file yet. I'll make sure to revise it once I'm confident that the changes are valid and functional.

OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, batchSessionId);

OverseerCollectionMessageHandler.Lock lock =
this.overseerCollectionMessageHandler.lockTask(message, batchSessionId);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6% of developers fix this issue

THREAD_SAFETY_VIOLATION: Unprotected write. Non-private method OverseerTaskProcessor.run() indirectly writes to field this.overseerCollectionMessageHandler.lockSession outside of synchronization.
Reporting because this access may occur on a background thread.


ℹ️ Expand to see all @sonatype-lift commands

You can reply with the following commands. For example, reply with @sonatype-lift ignoreall to leave out all findings.

Command Usage
@sonatype-lift ignore Leave out the above finding from this PR
@sonatype-lift ignoreall Leave out all the existing findings from this PR
@sonatype-lift exclude <file|issue|path|tool> Exclude specified file|issue|path|tool from Lift findings by updating your config.toml file

Note: When talking to LiftBot, you need to refresh the page to see its response.
Click here to add LiftBot to another repo.


Help us improve LIFT! (Sonatype LiftBot external survey)

Was this a good recommendation for you? Answering this survey will not impact your Lift settings.

[ 🙁 Not relevant ] - [ 😕 Won't fix ] - [ 😑 Not critical, will fix ] - [ 🙂 Critical, will fix ] - [ 😊 Critical, fixing now ]

Stats stats;
TimeSource timeSource;

public interface Lock {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps this better belongs in LockTree?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, will change

* org.apache.solr.cloud.OverseerConfigSetMessageHandler#processMessage} which does a few
* checks and calls the appropriate Config Set method.
* </ul>
* to overseer queue and instead calls this method.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The former text was useful, I'd prefer it stay to show why it does what it does (due to legacy Overseer operation).


private String thisNode;

private OverseerCollectionMessageHandler overseerCollectionMessageHandler;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest simply calling this "messageHandler" as it isn't ambiguous.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, will change that.

this.myId = myId;
this.stats = stats;
this.selector = selector;
this.overseerCollectionMessageHandler =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be closed. The test failures are related to this; threads leak from it thus it wasn't closed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, got it. Thanks

this.myId = myId;
this.stats = stats;
this.selector = selector;
this.overseerCollectionMessageHandler =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or simply messageHandler as it isn't ambiguous?

log.debug(
"{}: Get the message id: {} message: {}",
messageHandler.getName(),
this.overseerCollectionMessageHandler.getName(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

previously, this referred to simply "messageHandler"; can we keep that?

@vinayakphegde vinayakphegde marked this pull request as ready for review March 17, 2023 10:55
OverseerMessageHandler messageHandler = selector.selectOverseerMessageHandler(message);
OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, batchSessionId);

LockTree.Lock lock = this.messageHandler.lockTask(message, batchSessionId);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6% of developers fix this issue

THREAD_SAFETY_VIOLATION: Unprotected write. Non-private method OverseerTaskProcessor.run() indirectly writes to field this.messageHandler.lockSession outside of synchronization.
Reporting because this access may occur on a background thread.


ℹ️ Expand to see all @sonatype-lift commands

You can reply with the following commands. For example, reply with @sonatype-lift ignoreall to leave out all findings.

Command Usage
@sonatype-lift ignore Leave out the above finding from this PR
@sonatype-lift ignoreall Leave out all the existing findings from this PR
@sonatype-lift exclude <file|issue|path|tool> Exclude specified file|issue|path|tool from Lift findings by updating your config.toml file

Note: When talking to LiftBot, you need to refresh the page to see its response.
Click here to add LiftBot to another repo.


Help us improve LIFT! (Sonatype LiftBot external survey)

Was this a good recommendation for you? Answering this survey will not impact your Lift settings.

[ 🙁 Not relevant ] - [ 😕 Won't fix ] - [ 😑 Not critical, will fix ] - [ 🙂 Critical, will fix ] - [ 😊 Critical, fixing now ]

this.myId = myId;
this.stats = stats;
this.selector = selector;
this.messageHandler =
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6% of developers fix this issue

THREAD_SAFETY_VIOLATION: Read/Write race. Non-private method OverseerTaskProcessor(...) indirectly reads with synchronization from noggit.JSONParser.devNull.buf. Potentially races with unsynchronized write in method OverseerTaskProcessor.run().
Reporting because another access to the same memory occurs on a background thread, although this access may not.


ℹ️ Expand to see all @sonatype-lift commands

You can reply with the following commands. For example, reply with @sonatype-lift ignoreall to leave out all findings.

Command Usage
@sonatype-lift ignore Leave out the above finding from this PR
@sonatype-lift ignoreall Leave out all the existing findings from this PR
@sonatype-lift exclude <file|issue|path|tool> Exclude specified file|issue|path|tool from Lift findings by updating your config.toml file

Note: When talking to LiftBot, you need to refresh the page to see its response.
Click here to add LiftBot to another repo.


Help us improve LIFT! (Sonatype LiftBot external survey)

Was this a good recommendation for you? Answering this survey will not impact your Lift settings.

[ 🙁 Not relevant ] - [ 😕 Won't fix ] - [ 😑 Not critical, will fix ] - [ 🙂 Critical, will fix ] - [ 😊 Critical, fixing now ]

@github-actions
Copy link

This PR had no visible activity in the past 60 days, labeling it as stale. Any new activity will remove the stale label. To attract more reviewers, please tag someone or notify the dev@solr.apache.org mailing list. Thank you for your contribution!

@github-actions github-actions bot added the stale PR not updated in 60 days label Feb 16, 2024
@github-actions
Copy link

github-actions bot commented Oct 8, 2024

This PR is now closed due to 60 days of inactivity after being marked as stale. Re-opening this PR is still possible, in which case it will be marked as active again.

@github-actions github-actions bot added the closed-stale Closed after being stale for 60 days label Oct 8, 2024
@github-actions github-actions bot closed this Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

closed-stale Closed after being stale for 60 days stale PR not updated in 60 days

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants