Why is the exec command output exceeding `65536` truncated when `exec.Cmd.Stdout` and `cmd.Stderr` point to the same `bytes.Buffer`?

Why is the exec command output exceeding 65536 truncated when exec.Cmd.Stdout and cmd.Stderr point to the same bytes.Buffer like below?

package main

import (
	"bytes"
	"encoding/json"
	"os"
	"os/exec"

	"k8s.io/klog/v2"
)

func main() {
	klog.Infof("==============1==================")
	args := []string{"bucket", "stats"}

	execCmd := exec.Command("radosgw-admin", args...)
	f, err := os.Create("xxxx")
	if err != nil {
		panic(err)
	}
	execCmd.Stdout = f

	err = execCmd.Run()
	if err != nil {
		panic(err)
	}
	f.Close()

	bs, err := os.ReadFile("xxxx")
	if err != nil {
		panic(err)
	}
	klog.Infof("exec.Command(radosgw-admin bucket stats), length: %d", len(bs))

	klog.Infof("==============2==================")
	execCmd = exec.Command("radosgw-admin", args...)
	var b bytes.Buffer
	execCmd.Stdout = &b

	err = execCmd.Run()
	if err != nil {
		panic(err)
	}
	klog.Infof("exec.Command(radosgw-admin bucket stats), length: %d", b.Len())

	klog.Infof("==============3==================")
	execCmd = exec.Command("radosgw-admin", args...)
	var b2 bytes.Buffer
	execCmd.Stdout = &b2
	execCmd.Stderr = &b2   // <== here

	err = execCmd.Run()
	if err != nil {
		panic(err)
	}
	klog.Infof("exec.Command(radosgw-admin bucket stats), length: %d", b2.Len())

	klog.Infof("==============4==================")
	execCmd = exec.Command("radosgw-admin", args...)
	f, err = os.Create("yyyy")
	if err != nil {
		panic(err)
	}
	execCmd.Stdout = f
	execCmd.Stderr = f

	err = execCmd.Run()
	if err != nil {
		panic(err)
	}
	f.Close()

	bs2, err := os.ReadFile("yyyy")
	if err != nil {
		panic(err)
	}
	klog.Infof("exec.Command(radosgw-admin bucket stats), length: %d", len(bs2))
	
	klog.Infof("==============5==================")
	execCmd = exec.Command("radosgw-admin", args...)
	var b3 bytes.Buffer
	var b4 bytes.Buffer
	execCmd.Stdout = &b3
	execCmd.Stderr = &b4

	err = execCmd.Run()
	if err != nil {
		panic(err)
	}
	klog.Infof("exec.Command(radosgw-admin bucket stats), length: %d, err: %d", b3.Len(), b4.Len())
}

The output:

root@node01:/# ./test 
I1207 10:53:47.150299   57435 test.go:36] ==============1==================
I1207 10:53:48.800277   57435 test.go:56] exec.Command(radosgw-admin bucket stats), length: 404237
I1207 10:53:48.803742   57435 test.go:64] ==============2==================
I1207 10:53:50.421419   57435 test.go:73] exec.Command(radosgw-admin bucket stats), length: 404237
I1207 10:53:50.421446   57435 test.go:76] ==============3==================
I1207 10:53:52.537304   57435 test.go:86] exec.Command(radosgw-admin bucket stats), length: 65536
I1207 10:53:52.537343   57435 test.go:89] ==============4==================
I1207 10:53:55.030006   57435 test.go:108] exec.Command(radosgw-admin bucket stats), length: 404237
I1207 10:53:55.035473   57435 test.go:115] ==============5==================
I1207 10:53:58.429107   57435 test.go:126] exec.Command(radosgw-admin bucket stats), length: 404237, err: 0
root@node01:/# radosgw-admin bucket stats | wc -c
404237