replSetStepDown 有效,但 EOF 错误返回到我的 Ruby mongo 驱动程序

replSetStepDown works, but an EOF error is returned to my Ruby mongo driver

我正在通过我的 Ruby mongo driver, v. 2.6.2.

与我的 MongoDB ReplicaSet 交互
@mongo_client = Mongo::Client.new(@uri, connect: :replica_set).use("admin")

当我想启动故障转移时,我运行这个命令

begin
  failover = @mongo_client.command(
    {
      replSetStepDown:            60,
      secondaryCatchUpPeriodSecs: 10,
      force:                      false
    }
  )
  Rails.logger.error "failover: #{failover}"
rescue Mongo::Error::SocketError => e
  Rails.logger.error "error: #{e.to_s.inspect}"
end

命令有效,故障转移发生。但是出现了异常,这就是为什么我必须拯救它:

error: EOFError: end of file reached

当我传递无效参数时,我确实得到了正确的响应,例如:

failover: Mongo::Error::OperationFailure (stepdown period must be longer than secondaryCatchUpPeriodSecs (2)):

所以只有在成功启动时才会引发异常。

知道如何获得正确的响应而不是异常吗?

error: EOFError: end of file reached

这是 4.2 之前的服务器中的预期行为,这些服务器在关闭时关闭所有连接。 4.2+ 服务器没有。

Any idea how to get a proper response, rather than an exception?

使用 4.2+ 服务器。