Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

roachtest: backup/KMS/n3cpu4 failed #60833

Closed
cockroach-teamcity opened this issue Feb 20, 2021 · 3 comments · Fixed by #60992
Closed

roachtest: backup/KMS/n3cpu4 failed #60833

cockroach-teamcity opened this issue Feb 20, 2021 · 3 comments · Fixed by #60992
Assignees
Labels
branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked.

Comments

@cockroach-teamcity
Copy link
Member

(roachtest).backup/KMS/n3cpu4 failed on master@8b6f3c84cc256debeeb4d4055c5f0d5c9a481213:

		  | rbx    0xc000482000
		  | rcx    0x49cac3
		  | rdx    0x0
		  | rdi    0xc000482148
		  | rsi    0x80
		  | rbp    0x7fa69bffeca8
		  | rsp    0x7fa69bffec60
		  | r8     0x0
		  | r9     0x0
		  | r10    0x0
		  | r11    0x286
		  | r12    0x3
		  | r13    0xc000480300
		  | r14    0x0
		  | r15    0xc000096360
		  | rip    0x49cac1
		  | rflags 0x286
		  | cs     0x33
		  | fs     0x0
		  | gs     0x0
		  |
		  | -----
		  |
		  | SIGQUIT: quit
		  | PC=0x49cac1 m=9 sigcode=0
		  |
		  | goroutine 0 [idle]:
		  | runtime.futex(0xc000408148, 0x80, 0x0, 0x0, 0x0, 0x8cd6, 0x150f48d8, 0x20ca5350f5eb, 0x7fa69b7fdce0, 0x436c1f, ...)
		  | 	/usr/local/go/src/runtime/sys_linux_amd64.s:587 +0x21 fp=0x7fa69b7fdc68 sp=0x7fa69b7fdc60 pc=0x49cac1
		  | runtime.futexsleep(0xc000408148, 0x0, 0xffffffffffffffff)
		  | 	/usr/local/go/src/runtime/os_linux.go:45 +0x46 fp=0x7fa69b7fdcb8 sp=0x7fa69b7fdc68 pc=0x45e446
		  | runtime.notesleep(0xc000408148)
		  | 	/usr/local/go/src/runtime/lock_futex.go:159 +0x9f fp=0x7fa69b7fdcf0 sp=0x7fa69b7fdcb8 pc=0x436c1f
		  | runtime.stopm()
		  | 	/usr/local/go/src/runtime/proc.go:1924 +0xc5 fp=0x7fa69b7fdd18 sp=0x7fa69b7fdcf0 pc=0x468c65
		  | runtime.findrunnable(0xc000061000, 0x0)
		  | 	/usr/local/go/src/runtime/proc.go:2485 +0xa7f fp=0x7fa69b7fde00 sp=0x7fa69b7fdd18 pc=0x46a43f
		  | runtime.schedule()
		  | 	/usr/local/go/src/runtime/proc.go:2683 +0x2d7 fp=0x7fa69b7fde68 sp=0x7fa69b7fde00 pc=0x46b0b7
		  | runtime.park_m(0xc000224a80)
		  | 	/usr/local/go/src/runtime/proc.go:2851 +0x9d fp=0x7fa69b7fde98 sp=0x7fa69b7fde68 pc=0x46b65d
		  | runtime.mcall(0x800000)
		  |
		  | stdout:
		Wraps: (4) secondary error attachment
		  | signal: killed
		  | (1) signal: killed
		  | Error types: (1) *exec.ExitError
		Wraps: (5) context canceled
		Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *main.withCommandDetails (4) *secondary.withSecondaryError (5) *errors.errorString

More

Artifacts: /backup/KMS/n3cpu4

See this test on roachdash
powered by pkg/cmd/internal/issues

@cockroach-teamcity cockroach-teamcity added branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. labels Feb 20, 2021
@cockroach-teamcity
Copy link
Member Author

(roachtest).backup/KMS/n3cpu4 failed on master@64c4aef909f4382523cd9248341ca9f4448d841a:

		Wraps: (3) /home/agent/work/.go/src/github.com/cockroachdb/cockroach/bin/roachprod run teamcity-2699359-1613891085-01-n3cpu4:1 -- ./workload fixtures import bank --db=bank --payload-bytes=10240 --ranges=0 --csv-server http://localhost:8081 --rows=976562 --seed=1 {pgurl:1} returned
		  | stderr:
		  | <... some data truncated by circular buffer; go to artifacts for details ...>
		  | go:2851 +0x9d fp=0x7fffd8625e50 sp=0x7fffd8625e20 pc=0x46b65d
		  | runtime.mcall(0x1d979f0)
		  | 	/usr/local/go/src/runtime/asm_amd64.s:318 +0x5b fp=0x7fffd8625e60 sp=0x7fffd8625e50 pc=0x498e3b
		  |
		  | goroutine 1 [semacquire, 599 minutes]:
		  | runtime.gopark(0x3e27348, 0x626f8c0, 0xc000091912, 0x4)
		  | 	/usr/local/go/src/runtime/proc.go:306 +0xe5 fp=0xc00044b0c0 sp=0xc00044b0a0 pc=0x464f45
		  | runtime.goparkunlock(...)
		  | 	/usr/local/go/src/runtime/proc.go:312
		  | runtime.semacquire1(0xc000644370, 0x46d000, 0x1, 0x0)
		  | 	/usr/local/go/src/runtime/sema.go:144 +0x1c5 fp=0xc00044b128 sp=0xc00044b0c0 pc=0x475a65
		  | sync.runtime_Semacquire(0xc000644370)
		  | 	/usr/local/go/src/runtime/sema.go:56 +0x45 fp=0xc00044b158 sp=0xc00044b128 pc=0x496a05
		  | sync.(*WaitGroup).Wait(0xc000644368)
		  | 	/usr/local/go/src/sync/waitgroup.go:130 +0x65 fp=0xc00044b180 sp=0xc00044b158 pc=0x4a6505
		  | golang.org/x/sync/errgroup.(*Group).Wait(0xc000644360, 0x0, 0x0)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/golang.org/x/sync/errgroup/errgroup.go:40 +0x31 fp=0xc00044b198 sp=0xc00044b180 pc=0x12decd1
		  | github.com/cockroachdb/cockroach/pkg/util/ctxgroup.Group.Wait(0xc000644360, 0x4121880, 0xc00063c580, 0xc000639400, 0x21b1ad2)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/util/ctxgroup/ctxgroup.go:142 +0x57 fp=0xc00044b1d0 sp=0xc00044b198 pc=0x1497ff7
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.ImportFixture(0x41218c0, 0xc000054090, 0xc000637110, 0x40ff480, 0xc00042d800, 0x0, 0x0, 0x1, 0x1, 0x7fffd8627dff, ...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/fixture.go:411 +0x594 fp=0xc00044b4d0 sp=0xc00044b1d0 pc=0x1c85734
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.ImportDataLoader.InitialDataLoad(0x1, 0xc000ad5601, 0x7fffd8627dff, 0x15, 0x41218c0, 0xc000054090, 0xc000637110, 0x40ff480, 0xc00042d800, 0x0, ...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/fixture.go:345 +0x19f fp=0xc00044b608 sp=0xc00044b4d0 pc=0x1c84ebf
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.(*ImportDataLoader).InitialDataLoad(0xc000111ee0, 0x41218c0, 0xc000054090, 0xc000637110, 0x40ff480, 0xc00042d800, 0xc000b5f570, 0x0, 0x8)
		  | 	<autogenerated>:1 +0xa5 fp=0xc00044b678 sp=0xc00044b608 pc=0x1c8a4c5
		  | github.com/cockroachdb/cockroach/pkg/workload/workloadsql.Setup(0x41218c0, 0xc000054090, 0xc000637110, 0x40ff480, 0xc00042d800, 0x40dfd40, 0xc000111ee0, 0x0, 0x41022c0, 0xc000111ec0)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/workloadsql/workloadsql.go:39 +0x8d fp=0xc00044b818 sp=0xc00044b678 pc=0x149afed
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/cliccl.fixturesImport(0x40ff480, 0xc00042d800, 0xc000618b00, 0x1, 0x8, 0x7fffd8627dcc, 0x4, 0x7fffd8627dcc, 0x4)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/cliccl/fixtures.go:349 +0x217 fp=0xc00044b8f8 sp=0xc00044b818 pc=0x1c8cab7
		  | github.com/cockroachdb/cockroach/pkg/workload/cli.CmdHelper.func1(0xc00021b180, 0xc000618b00, 0x1, 0x8, 0xc000219a00, 0x21b1dbe)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/cli/run.go:189 +0x1de fp=0xc00044bd28 sp=0xc00044b8f8 pc=0x14a407e
		  | github.com/cockroachdb/cockroach/pkg/workload/cli.HandleErrs.func1(0xc00021b180, 0xc000618b00, 0x1, 0x8)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/cli/cli.go:73 +0x5d fp=0xc00044bda8 sp=0xc00044bd28 pc=0x14a329d
		  | github.com/spf13/cobra.(*Command).execute(0xc00021b180, 0xc000618a80, 0x8, 0x8, 0xc00021b180, 0xc000618a80)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:830 +0x2c2 fp=0xc00044be80 sp=0xc00044bda8 pc=0x146c822
		  | github.com/spf13/cobra.(*Command).ExecuteC(0xc00038c500, 0xc00038c500, 0xffffffff, 0xc0000580b8)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:914 +0x30b fp=0xc00044bf58 sp=0xc00044be80 pc=0x146d44b
		  | github.com/spf13/cobra.(*Command).Execute(...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:864
		  | main.main(
		  | stdout:
		Wraps: (4) secondary error attachment
		  | signal: killed
		  | (1) signal: killed
		  | Error types: (1) *exec.ExitError
		Wraps: (5) context canceled
		Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *main.withCommandDetails (4) *secondary.withSecondaryError (5) *errors.errorString

More

Artifacts: /backup/KMS/n3cpu4

See this test on roachdash
powered by pkg/cmd/internal/issues

@cockroach-teamcity
Copy link
Member Author

(roachtest).backup/KMS/n3cpu4 failed on master@bf9744bad5a416a4b06907f0f3dd42896f7342f3:

The test failed on branch=master, cloud=aws:
test artifacts and logs in: /home/agent/work/.go/src/github.com/cockroachdb/cockroach/artifacts/backup/KMS/n3cpu4/run_1
	test_runner.go:826: test timed out (10h0m0s)

	cluster.go:2254,backup.go:62,backup.go:100,test_runner.go:767: output in run_065950.005_n1_workload_fixtures_import_bank: /home/agent/work/.go/src/github.com/cockroachdb/cockroach/bin/roachprod run teamcity-2702229-1613977004-02-n3cpu4:1 -- ./workload fixtures import bank --db=bank --payload-bytes=10240 --ranges=0 --csv-server http://localhost:8081 --rows=976562 --seed=1 {pgurl:1} returned: context canceled
		(1) attached stack trace
		  -- stack trace:
		  | main.(*cluster).RunE
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachtest/cluster.go:2332
		  | main.(*cluster).Run
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachtest/cluster.go:2252
		  | main.registerBackup.func1
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachtest/backup.go:62
		  | main.registerBackup.func3
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachtest/backup.go:100
		  | main.(*testRunner).runTest.func2
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachtest/test_runner.go:767
		  | runtime.goexit
		  | 	/usr/local/go/src/runtime/asm_amd64.s:1374
		Wraps: (2) output in run_065950.005_n1_workload_fixtures_import_bank
		Wraps: (3) /home/agent/work/.go/src/github.com/cockroachdb/cockroach/bin/roachprod run teamcity-2702229-1613977004-02-n3cpu4:1 -- ./workload fixtures import bank --db=bank --payload-bytes=10240 --ranges=0 --csv-server http://localhost:8081 --rows=976562 --seed=1 {pgurl:1} returned
		  | stderr:
		  | I210222 06:59:50.900446 1 ccl/workloadccl/fixture.go:342  [-] 1  starting import of 1 tables
		  |
		  | stdout:
		Wraps: (4) secondary error attachment
		  | signal: killed
		  | (1) signal: killed
		  | Error types: (1) *exec.ExitError
		Wraps: (5) context canceled
		Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *main.withCommandDetails (4) *secondary.withSecondaryError (5) *errors.errorString

More

Artifacts: /backup/KMS/n3cpu4

See this test on roachdash
powered by pkg/cmd/internal/issues

nvanbenschoten added a commit to nvanbenschoten/cockroach that referenced this issue Feb 23, 2021
Fixes cockroachdb#60852.
Fixes cockroachdb#60833.
Fixes cockroachdb#58298.
Fixes cockroachdb#59428.
Fixes cockroachdb#60756.
Fixes cockroachdb#60848.
Fixes cockroachdb#60849.

In cockroachdb#60852 and related issues, we saw that the introduction of a non-nullable
`RaftCommand.ClosedTimestamp`, coupled with the `ClosedTimestampFooter` encoding
strategy we use, led to encoded `RaftCommand` protos with their ClosedTimestamp
field set twice. This is ok from a correctness perspective, at least as protobuf
is concerned, but it led to a subtle interaction where the process of passing
through sideloading (`maybeInlineSideloadedRaftCommand(maybeSideloadEntriesImpl(e))`)
would reduce the size of an encoded RaftCommand by 3 bytes (the encoded size of
an empty `hlc.Timestamp`). This was resulting in an `uncommittedSize` leak in
Raft, which was eventually stalling on its `MaxUncommittedEntriesSize` limit.

This commit fixes this issue by making `RaftCommand.ClosedTimestamp` nullable.
With the field marked as nullable, it will no longer be encoded as an empty
timestamp when unset, ensuring that when the encoded `ClosedTimestampFooter` is
appended, it contains the only instance of the `ClosedTimestamp` field.
@cockroach-teamcity
Copy link
Member Author

(roachtest).backup/KMS/n3cpu4 failed on master@5cfd7e5553a3072a1490d392390dddf968844215:

		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.ImportFixture(0x4127760, 0xc000054090, 0xc0003692b0, 0x41052e0, 0xc0003c7900, 0x0, 0x0, 0x1, 0x1, 0x7fff706dee03, ...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/fixture.go:411 +0x594 fp=0xc0005bf4d0 sp=0xc0005bf1d0 pc=0x1c89d94
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.ImportDataLoader.InitialDataLoad(0x1, 0xc00066f601, 0x7fff706dee03, 0x15, 0x4127760, 0xc000054090, 0xc0003692b0, 0x41052e0, 0xc0003c7900, 0x0, ...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/fixture.go:345 +0x19f fp=0xc0005bf608 sp=0xc0005bf4d0 pc=0x1c8951f
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl.(*ImportDataLoader).InitialDataLoad(0xc000927940, 0x4127760, 0xc000054090, 0xc0003692b0, 0x41052e0, 0xc0003c7900, 0xc000b3f570, 0x0, 0x8)
		  | 	<autogenerated>:1 +0xa5 fp=0xc0005bf678 sp=0xc0005bf608 pc=0x1c8eb25
		  | github.com/cockroachdb/cockroach/pkg/workload/workloadsql.Setup(0x4127760, 0xc000054090, 0xc0003692b0, 0x41052e0, 0xc0003c7900, 0x40e5b60, 0xc000927940, 0x0, 0x4108120, 0xc000927920)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/workloadsql/workloadsql.go:39 +0x8d fp=0xc0005bf818 sp=0xc0005bf678 pc=0x149e30d
		  | github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/cliccl.fixturesImport(0x41052e0, 0xc0003c7900, 0xc000c7cb00, 0x1, 0x8, 0x7fff706dedd0, 0x4, 0x7fff706dedd0, 0x4)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/ccl/workloadccl/cliccl/fixtures.go:349 +0x217 fp=0xc0005bf8f8 sp=0xc0005bf818 pc=0x1c91117
		  | github.com/cockroachdb/cockroach/pkg/workload/cli.CmdHelper.func1(0xc000c4cf00, 0xc000c7cb00, 0x1, 0x8, 0xc000c47a00, 0x21b6f5e)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/cli/run.go:189 +0x1de fp=0xc0005bfd28 sp=0xc0005bf8f8 pc=0x14a739e
		  | github.com/cockroachdb/cockroach/pkg/workload/cli.HandleErrs.func1(0xc000c4cf00, 0xc000c7cb00, 0x1, 0x8)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/workload/cli/cli.go:73 +0x5d fp=0xc0005bfda8 sp=0xc0005bfd28 pc=0x14a65bd
		  | github.com/spf13/cobra.(*Command).execute(0xc000c4cf00, 0xc000c7ca80, 0x8, 0x8, 0xc000c4cf00, 0xc000c7ca80)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:830 +0x2c2 fp=0xc0005bfe80 sp=0xc0005bfda8 pc=0x146fb42
		  | github.com/spf13/cobra.(*Command).ExecuteC(0xc00038c000, 0xc00038c000, 0xffffffff, 0xc0000580b8)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:914 +0x30b fp=0xc0005bff58 sp=0xc0005bfe80 pc=0x147076b
		  | github.com/spf13/cobra.(*Command).Execute(...)
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:864
		  | main.main()
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/workload/main.go:22 +0x34 fp=0xc0005bff88 sp=0xc0005bff58 pc=0x1c92c94
		  | runtime.main()
		  | 	/usr/local/go/src/runtime/proc.go:204 +0x209 fp=0xc0005bffe0 sp=0xc0005bff88 pc=0x464b49
		  | runtime.goexit()
		  | 	/usr/local/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc0005bffe8 sp=0xc0005bffe0 pc=0x49ac41
		  |
		  | goroutine 2 [force gc (idle), 3 minutes]:
		  | runtime.gopark(0x3e2c798, 0x6269360, 0x1411, 0x1)
		  | 	/usr/local/go/src/runtime/proc.go:306 +0xe5 fp=0xc00006afb0 sp=0xc00006af90 pc=0x464f45
		  | runtime.goparkunlock(...)
		  | 	/usr/local/go/src/runtime/proc.go:312
		  | runtime.forcegchelper()
		  | 	/usr/local/go/src/runtime/proc.go:255 +0xc5 fp=0xc00006afe0 sp=0xc00006afb0 pc=0x464de5
		  | runtime.goexit()
		  | 	/usr/local/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc00006afe8 sp=0xc00006afe0 pc=0x49ac41
		  | created by runtime.init.6
		  | 	/usr/local/go/src/runtime/proc.go:243 +0x35
		  |
		  | goroutine 3 [GC sweep wait]:
		  | runtime.gopark(0x3e2c798, 0x626d680, 0x140c, 0x1)
		  | 	/usr/local/go/src/runtime/proc.go:306 +0xe5 fp=0xc00006b7a8 sp=0xc00006b788 pc=0x464f45
		  |
		  | stdout:
		Wraps: (4) secondary error attachment
		  | signal: killed
		  | (1) signal: killed
		  | Error types: (1) *exec.ExitError
		Wraps: (5) context canceled
		Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *main.withCommandDetails (4) *secondary.withSecondaryError (5) *errors.errorString

More

Artifacts: /backup/KMS/n3cpu4

See this test on roachdash
powered by pkg/cmd/internal/issues

craig bot pushed a commit that referenced this issue Feb 23, 2021
60836: opt: support UPDATE with partial UNIQUE WITHOUT INDEX constraints r=mgartner a=mgartner

This commit add uniqueness checks for partial `UNIQUE WITHOUT INDEX`
constraints during `UPDATE` statements.

As partial of this change, I discovered that #60535 introduced a
regression where columns not required by uniqueness checks are not
pruned. I've left TODOs in the column pruning tests and plan on fixing
this in a follow-up PR.

There is no release note because these constraints are gated behind the
experimental_enable_unique_without_index_constraints session variable.

Release note: None

60992: kv: make RaftCommand.ClosedTimestamp nullable r=nvanbenschoten a=nvanbenschoten

Fixes #60852.
Fixes #60833.
Fixes #58298.
Fixes #59428.
Fixes #60756.
Fixes #60848.
Fixes #60849.

In #60852 and related issues, we saw that the introduction of a non-nullable `RaftCommand.ClosedTimestamp`, coupled with the `ClosedTimestampFooter` encoding strategy we use, led to encoded `RaftCommand` protos with their ClosedTimestamp field set twice. This is ok from a correctness perspective, at least as protobuf is concerned, but it led to a subtle interaction where the process of passing through sideloading (`maybeInlineSideloadedRaftCommand(maybeSideloadEntriesImpl(e))`) would reduce the size of an encoded RaftCommand by 3 bytes (the encoded size of an empty `hlc.Timestamp`). This was resulting in an `uncommittedSize` leak in Raft, which was eventually stalling on its `MaxUncommittedEntriesSize` limit.

This commit fixes this issue by making `RaftCommand.ClosedTimestamp` nullable. With the field marked as nullable, it will no longer be encoded as an empty timestamp when unset, ensuring that when the encoded `ClosedTimestampFooter` is appended, it contains the only instance of the `ClosedTimestamp` field.

cc. @cockroachdb/bulk-io 

Co-authored-by: Marcus Gartner <[email protected]>
Co-authored-by: Nathan VanBenschoten <[email protected]>
@craig craig bot closed this as completed in a2b9c19 Feb 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants