Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broker startup fails when disk usage monitoring is disabled #10735

Closed
oleschoenburg opened this issue Oct 17, 2022 · 1 comment · Fixed by #10749
Closed

Broker startup fails when disk usage monitoring is disabled #10735

oleschoenburg opened this issue Oct 17, 2022 · 1 comment · Fixed by #10749
Assignees
Labels
kind/bug Categorizes an issue or PR as a bug version:8.1.3 Marks an issue as being completely or in parts released in 8.1.3 version:8.2.0-alpha1 Marks an issue as being completely or in parts released in 8.2.0-alpha1 version:8.2.0 Marks an issue as being completely or in parts released in 8.2.0

Comments

@oleschoenburg
Copy link
Member

Describe the bug

As reported by the community:

Starting a broker with disk usage monitoring disabled fails with an NPE while starting the command API.

To Reproduce

Set ZEEBE_BROKER_DATA_DISKUSAGEMONITORINGENABLED to false and start a broker

Expected behavior

Broker startup be successful, regardless of whether disk usage monitoring is enabled or not.

Log/Stacktrace

Full Stacktrace

2022-10-17 10:47:11.339 [Broker-0-Startup] [Broker-0-zb-actors-1] WARN 
      io.camunda.zeebe.broker.system - Aborting startup process due to exception during step Command API
java.lang.NullPointerException: Cannot invoke "io.camunda.zeebe.broker.system.monitoring.DiskSpaceUsageMonitor.addDiskUsageListener(io.camunda.zeebe.broker.system.monitoring.DiskSpaceUsageListener)" because the return value of "io.camunda.zeebe.broker.bootstrap.BrokerStartupContext.getDiskSpaceUsageMonitor()" is null
	at io.camunda.zeebe.broker.bootstrap.CommandApiServiceStep.lambda$startCommandApiService$2(CommandApiServiceStep.java:91) ~[zeebe-broker-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.broker.bootstrap.AbstractBrokerStartupStep.forwardExceptions(AbstractBrokerStartupStep.java:71) ~[zeebe-broker-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.broker.bootstrap.AbstractBrokerStartupStep.lambda$proceed$3(AbstractBrokerStartupStep.java:87) ~[zeebe-broker-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.future.FutureContinuationRunnable.run(FutureContinuationRunnable.java:28) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:45) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:119) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:106) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:87) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:198) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
2022-10-17 10:47:11.355 [] [main] ERROR
      io.camunda.zeebe.broker.system - Failed to start broker 0!
java.util.concurrent.ExecutionException: Startup failed in the following steps: [Command API]. See suppressed exceptions for details.
	at io.camunda.zeebe.scheduler.future.CompletableActorFuture.get(CompletableActorFuture.java:142) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.future.CompletableActorFuture.get(CompletableActorFuture.java:109) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.FutureUtil.join(FutureUtil.java:21) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.future.CompletableActorFuture.join(CompletableActorFuture.java:198) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.broker.Broker.internalStart(Broker.java:101) ~[zeebe-broker-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.util.LogUtil.doWithMDC(LogUtil.java:23) ~[zeebe-util-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.broker.Broker.start(Broker.java:83) ~[zeebe-broker-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.broker.StandaloneBroker.run(StandaloneBroker.java:92) ~[camunda-zeebe-8.1.0.jar:8.1.0]
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) ~[spring-boot-2.7.4.jar:2.7.4]
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:755) ~[spring-boot-2.7.4.jar:2.7.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.7.4.jar:2.7.4]
	at io.camunda.zeebe.broker.StandaloneBroker.main(StandaloneBroker.java:82) ~[camunda-zeebe-8.1.0.jar:8.1.0]
Caused by: io.camunda.zeebe.scheduler.startup.StartupProcessException: Startup failed in the following steps: [Command API]. See suppressed exceptions for details.
	at io.camunda.zeebe.scheduler.startup.StartupProcess.aggregateExceptionsSynchronized(StartupProcess.java:282) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.startup.StartupProcess.completeStartupFutureExceptionallySynchronized(StartupProcess.java:183) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.startup.StartupProcess.lambda$proceedWithStartupSynchronized$3(StartupProcess.java:167) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.future.FutureContinuationRunnable.run(FutureContinuationRunnable.java:33) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:45) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:119) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:106) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:87) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:198) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	Suppressed: io.camunda.zeebe.scheduler.startup.StartupProcessStepException: Bootstrap step Command API failed
		at io.camunda.zeebe.scheduler.startup.StartupProcess.completeStartupFutureExceptionallySynchronized(StartupProcess.java:185) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.startup.StartupProcess.lambda$proceedWithStartupSynchronized$3(StartupProcess.java:167) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.future.FutureContinuationRunnable.run(FutureContinuationRunnable.java:33) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorJob.invoke(ActorJob.java:94) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorJob.execute(ActorJob.java:45) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorTask.execute(ActorTask.java:119) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorThread.executeCurrentTask(ActorThread.java:106) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorThread.doWork(ActorThread.java:87) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.ActorThread.run(ActorThread.java:198) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
	Caused by: java.lang.NullPointerException: Cannot invoke "io.camunda.zeebe.broker.system.monitoring.DiskSpaceUsageMonitor.addDiskUsageListener(io.camunda.zeebe.broker.system.monitoring.DiskSpaceUsageListener)" because the return value of "io.camunda.zeebe.broker.bootstrap.BrokerStartupContext.getDiskSpaceUsageMonitor()" is null
		at io.camunda.zeebe.broker.bootstrap.CommandApiServiceStep.lambda$startCommandApiService$2(CommandApiServiceStep.java:91) ~[zeebe-broker-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.broker.bootstrap.AbstractBrokerStartupStep.forwardExceptions(AbstractBrokerStartupStep.java:71) ~[zeebe-broker-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.broker.bootstrap.AbstractBrokerStartupStep.lambda$proceed$3(AbstractBrokerStartupStep.java:87) ~[zeebe-broker-8.1.0.jar:8.1.0]
		at io.camunda.zeebe.scheduler.future.FutureContinuationRunnable.run(FutureContinuationRunnable.java:28) ~[zeebe-scheduler-8.1.0.jar:8.1.0]
		... 6 more```

</p>
</details>

**Environment:**
- OS: <!-- [e.g. Linux] -->
- Zeebe Version: 8.1.0
- Configuration: `ZEEBE_BROKER_DATA_DISKUSAGEMONITORINGENABLED=false`
@oleschoenburg oleschoenburg added the kind/bug Categorizes an issue or PR as a bug label Oct 17, 2022
@oleschoenburg
Copy link
Member Author

Looks like there could be more components that would fail if disk usage monitoring is enabled so just adding a null check to the command api step is not enough.

@oleschoenburg oleschoenburg self-assigned this Oct 18, 2022
zeebe-bors-camunda bot added a commit that referenced this issue Oct 18, 2022
10751: [Backport stable/8.1] fix: don't fail on startup if disk usage monitor is disabled r=oleschoenburg a=backport-action

# Description
Backport of #10749 to `stable/8.1`.

relates to #10735

Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com>
@korthout korthout added version:8.2.0-alpha1 Marks an issue as being completely or in parts released in 8.2.0-alpha1 version:8.1.3 Marks an issue as being completely or in parts released in 8.1.3 labels Nov 1, 2022
@npepinpe npepinpe added the version:8.2.0 Marks an issue as being completely or in parts released in 8.2.0 label Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes an issue or PR as a bug version:8.1.3 Marks an issue as being completely or in parts released in 8.1.3 version:8.2.0-alpha1 Marks an issue as being completely or in parts released in 8.2.0-alpha1 version:8.2.0 Marks an issue as being completely or in parts released in 8.2.0
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants