cockroachdb / cockroachdb/cockroach
copy: investigate failures between vectorized encoder and concurrent ALTER PRIMARY KEY
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
When working on #148549, we extended `TestLargeCopy` with running a concurrent ALTER PRIMARY KEY. The test would then occasionally fail with scary errors like
```
panic: invalid header size: 4
(1) attached stack trace
-- stack trace:
| runtime.gopanic
| GOROOT/src/runtime/panic.go:783
| [...repeated from below...]
Wraps: (2) attached stack trace
-- stack trace:
| github.com/cockroachdb/cockroach/pkg/roachpb.Value.VerifyHeader
| pkg/roachpb/data.go:383
| github.com/cockroachdb/cockroach/pkg/kv.marshalValue
| pkg/kv/util.go:47
| github.com/cockroachdb/cockroach/pkg/kv.(*Batch).put
| pkg/kv/batch.go:437
| github.com/cockroachdb/cockroach/pkg/kv.(*Batch).Put
| pkg/kv/batch.go:466
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).constructMergeBatch
| pkg/sql/backfill/mvcc_index_merger.go:599
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).merge.func1.1
| pkg/sql/backfill/mvcc_index_merger.go:480
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).Txn.func1
| pkg/sql/internal.go:1965
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).txn.func4
| pkg/sql/internal.go:2052
| github.com/cockroachdb/cockroach/pkg/kv.(*Txn).exec
| pkg/kv/txn.go:1144
| github.com/cockroachdb/cockroach/pkg/kv.runTxn
| pkg/kv/db.go:1101
| github.com/cockroachdb/cockroach/pkg/kv.(*DB).TxnWithAdmissionControl
| pkg/kv/db.go:1064
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).txn.func2
| pkg/sql/internal.go:2025
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).txn
| pkg/sql/internal.go:2039
| github.com/cockroachdb/cockroach/pkg/sql.(*InternalDB).Txn
| pkg/sql/internal.go:1966
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).merge.func1
| pkg/sql/backfill/mvcc_index_merger.go:418
| github.com/cockroachdb/cockroach/pkg/sql/backfill.retryWithReducedBatchWhenAutoRetryLimitExceeded
| pkg/sql/backfill/mvcc_index_merger.go:719
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).merge
| pkg/sql/backfill/mvcc_index_merger.go:416
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).Run.func5
| pkg/sql/backfill/mvcc_index_merger.go:226
| github.com/cockroachdb/cockroach/pkg/sql/backfill.(*IndexBackfillMerger).Run.Group.GoCtx.func8
| pkg/util/ctxgroup/ctxgroup.go:200
| golang.org/x/sync/errgroup.(*Group).Go.func1
| external/org_golang_x_sync/errgroup/errgroup.go:93
| runtime.goexit
| src/runtime/asm_amd64.s:1693
```
so we chose to disable the vectorized encoder if `ForcePut` is found on any of the indexes. We should investigate what the problem is.
Jira issue: CRDB-56409
Contributor guide
Assessment
This issue has not been assessed yet.