apache/cassandra · info
Stopping gossip by operator request
Error message
Stopping gossip by operator request
What it means
This is a WARN log emitted by StorageService.stopGossiping() when an operator explicitly disables gossip on a running node (typically via JMX/nodetool 'disablegossip'). It is informational: the node stops participating in cluster membership changes. Before stopping, the method refuses to proceed with IllegalStateException if the node is not yet in NORMAL status, and warns if native transport is still serving clients, since disabling gossip while serving traffic can cause consistency and routing problems.
Source
Thrown at src/java/org/apache/cassandra/service/StorageService.java:547
public void register(IEndpointLifecycleSubscriber subscriber)
{
lifecycleSubscribers.add(subscriber);
}
public void unregister(IEndpointLifecycleSubscriber subscriber)
{
lifecycleSubscribers.remove(subscriber);
}
// should only be called via JMX
public void stopGossiping()
{
if (isGossipRunning())
{
if (!isNormal() && joinRing)
throw new IllegalStateException("Unable to stop gossip because the node is not in the normal state. Try to stop the node instead.");
logger.warn("Stopping gossip by operator request");
if (isNativeTransportRunning())
{
logger.warn("Disabling gossip while native transport is still active is unsafe");
}
Gossiper.instance.stop();
}
}
// should only be called via JMX
public synchronized void startGossiping()
{
if (!isGossipRunning())
{
checkServiceAllowedToStart("gossip");
logger.warn("Starting gossip by operator request");View on GitHub (pinned to 88fd0f6a0e)
Solutions
- If the disable was intentional, no action needed; re-enable with nodetool enablegossip when done.
- If accidental, immediately run 'nodetool enablegossip' to rejoin gossip.
- Before disabling gossip, stop native transport first ('nodetool disablebinary') to avoid serving traffic while isolated.
- Verify the node is in NORMAL state first; if not, use 'nodetool stop' / full node shutdown instead.
Example fix
// before nodetool disablegossip # while node serves clients // after nodetool disablebinary nodetool disablegossip # ... maintenance ... nodetool enablegossip nodetool enablebinary
Defensive patterns
Strategy: validation
Validate before calling
boolean safeToStopGossip = storageService.isGossipRunning()
&& storageService.isNativeTransportRunning() == false; // stop binary first if true Try / catch
try { storageService.stopGossiping(); } catch (IllegalStateException e) { /* node not NORMAL; stop the node instead */ } Prevention
- Stop native transport before disabling gossip.
- Verify node status is NORMAL before toggling gossip.
- Wrap gossip toggles in maintenance runbooks, not ad-hoc JMX calls.
When it happens
Trigger: Operator invokes stopGossiping() (e.g. nodetool disablegossip or JMX stopTransports path) while isGossipRunning() is true and the node has passed the not-normal/joinRing guard.
Common situations: Ops debugging sessions where gossip is suspected of misbehaving; maintenance runbooks that disable gossip temporarily; accidental disablegossip invocations leaving a node silent in the cluster while client traffic continues.
Related errors
- Starting gossip by operator request
- Unknown broadcast_address '
- broadcast_address cannot be a wildcard address (
- Unable to stop gossip because the node is not in the normal
- Can't commit transformations when running in gossip mode. En
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/dbc0a4c0add1e42b.
Report an issue: GitHub.