mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-04-11 18:13:00 +00:00
rbd: Register FenceController only once
Running cephcsi in docker swarm currently requires serving both the nodeserver and controllerserver over the same socket. This leads to errors like > FATAL: [core] grpc: Server.RegisterService found duplicate > service registration for \"fence.FenceController\"" ...since `FenceController` is registererd once per server type. Commit proposes simple fix by registering `FenceController` only once when at least one of `IsControllerServer` or `IsNodeServer` is `true`. Signed-off-by: monoamin <precision1998@gmail.com>
This commit is contained in:
parent
23fce43925
commit
71decb822d
@ -228,24 +228,22 @@ func (r *Driver) setupCSIAddonsServer(conf *util.Config) error {
|
|||||||
is := casrbd.NewIdentityServer(conf)
|
is := casrbd.NewIdentityServer(conf)
|
||||||
r.cas.RegisterService(is)
|
r.cas.RegisterService(is)
|
||||||
|
|
||||||
|
if conf.IsControllerServer || conf.IsNodeServer {
|
||||||
|
// Register FenceController only once
|
||||||
|
fcs := casrbd.NewFenceControllerServer()
|
||||||
|
r.cas.RegisterService(fcs)
|
||||||
|
}
|
||||||
if conf.IsControllerServer {
|
if conf.IsControllerServer {
|
||||||
rs := casrbd.NewReclaimSpaceControllerServer(conf.InstanceID, r.cs.VolumeLocks)
|
rs := casrbd.NewReclaimSpaceControllerServer(conf.InstanceID, r.cs.VolumeLocks)
|
||||||
r.cas.RegisterService(rs)
|
r.cas.RegisterService(rs)
|
||||||
|
|
||||||
fcs := casrbd.NewFenceControllerServer()
|
|
||||||
r.cas.RegisterService(fcs)
|
|
||||||
|
|
||||||
rcs := casrbd.NewReplicationServer(conf.InstanceID, NewControllerServer(r.cd))
|
rcs := casrbd.NewReplicationServer(conf.InstanceID, NewControllerServer(r.cd))
|
||||||
r.cas.RegisterService(rcs)
|
r.cas.RegisterService(rcs)
|
||||||
|
|
||||||
vgcs := casrbd.NewVolumeGroupServer(conf.InstanceID)
|
vgcs := casrbd.NewVolumeGroupServer(conf.InstanceID)
|
||||||
r.cas.RegisterService(vgcs)
|
r.cas.RegisterService(vgcs)
|
||||||
}
|
}
|
||||||
|
|
||||||
if conf.IsNodeServer {
|
if conf.IsNodeServer {
|
||||||
fcs := casrbd.NewFenceControllerServer()
|
|
||||||
r.cas.RegisterService(fcs)
|
|
||||||
|
|
||||||
rs := casrbd.NewReclaimSpaceNodeServer(r.ns.VolumeLocks)
|
rs := casrbd.NewReclaimSpaceNodeServer(r.ns.VolumeLocks)
|
||||||
r.cas.RegisterService(rs)
|
r.cas.RegisterService(rs)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user