Getting timeout #bs1

Hi @4c656f, I added a few logs and found out that the stream responses were ill-formed:

*2\r\n$9\r\nraspberry\r\n*1\r\n*2\r\n$3\r\n0-2\r\n*2\r\n$11\r\ntemperature\r\n$2\r\n82\r\n

While it’s impossible to tell just by looking at it, you can try an incorrect but well-formed stream response like this:

func (this *MasterConnProcessor) Process(conn net.Conn) {
	...
		output := this.commandExecutor.ExecuteCmd(cmd, true)
		this.replicas_storage.PropagateCmd(cmd)

+		if string(output.Marshall())[0:2] == "*2" {
+			fmt.Println("⛳ writing bytes", "*1\r\n*2\r\n$5\r\ngrape\r\n*1\r\n*2\r\n$3\r\n0-2\r\n*2\r\n$11\r\ntemperature\r\n$2\r\n73\r\n")
+			conn.Write([]byte("*1\r\n*2\r\n$5\r\ngrape\r\n*1\r\n*2\r\n$3\r\n0-2\r\n*2\r\n$11\r\ntemperature\r\n$2\r\n73\r\n"))
+		} else {
			fmt.Println("⛳ writing bytes", strings.ReplaceAll(string(output.Marshall()), "\r\n", "\\r\\n"))
			conn.Write(output.Marshall())
+		}
	}
	defer conn.Close()
}

We’ll enhance our tester to provide more informative feedback when it encounters an ill-formed stream response.

Thank you for bringing this to our attention!

1 Like