bazelbuild / bazel-buildfarm

Bazel remote caching and execution service
https://bazel.build
Apache License 2.0
635 stars 199 forks source link

if redisUri is empty, java.lang.NullPointerException error occurred #1746

Closed DarkMatterV closed 3 weeks ago

DarkMatterV commented 1 month ago

buildfarm version:v2.9.0

I use redisNodes param and not set redisUri in config.yml, for example:

type: SHARD
redisPassword:
redisNodes:
  - "redis://xxx.xxx.xxx.xxx:6379"
  - "redis://xxx.xxx.xxx.xxx:6379"

or

type: SHARD
redisUri:
redisPassword:
redisNodes:
  - "redis://xxx.xxx.xxx.xxx:6379"
  - "redis://xxx.xxx.xxx.xxx:6379"

there's gonna be mistakes, error log is

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "this.input" is null
        at java.base/java.net.URI$Parser.parse(URI.java:3165)
        at java.base/java.net.URI.<init>(URI.java:623)
        at java.base/java.net.URI.create(URI.java:904)
        at build.buildfarm.common.config.Backplane.getRedisPassword(Backplane.java:81)
        at build.buildfarm.common.config.Backplane.toString(Backplane.java:14)
        at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453)
        at build.buildfarm.common.config.BuildfarmConfigs.toString(BuildfarmConfigs.java:27)
        at build.buildfarm.common.config.BuildfarmConfigs.loadConfigs(BuildfarmConfigs.java:61)
        at build.buildfarm.common.config.BuildfarmConfigs.loadServerConfigs(BuildfarmConfigs.java:70)
        at build.buildfarm.server.BuildFarmServer.main(BuildFarmServer.java:251)

so, i have to add redisUri value, even though it's not going to be used

type: SHARD
redisUri:  "redis://localhost:6379"
redisPassword:
redisNodes:
  - "redis://xxx.xxx.xxx.xxx:6379"
  - "redis://xxx.xxx.xxx.xxx:6379"
jasonschroeder-sfdc commented 3 weeks ago

Fixed in https://github.com/bazelbuild/bazel-buildfarm/pull/1735 , sorry about that!