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

sql/tests: TestRandomSyntaxFunctions failed [malformed key sentinel byte: bc02c4] #128757

Closed
cockroach-teamcity opened this issue Aug 11, 2024 · 3 comments · Fixed by #128935
Closed
Assignees
Labels
A-storage Relating to our storage engine (Pebble) on-disk storage. branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). O-robot Originated from a bot. T-storage Storage Team

Comments

@cockroach-teamcity
Copy link
Member

cockroach-teamcity commented Aug 11, 2024

sql/tests.TestRandomSyntaxFunctions failed with artifacts on master @ 451cdbe687b3303665bfd490af59c5df777c8909:

github.com/cockroachdb/pebble.(*scanInternalIterator).seekGE(...)
	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/scan_internal.go:1078
github.com/cockroachdb/pebble.scanInternalImpl({0x85c4580, 0xcb98c60?}, {0xc01053a820?, 0x0?, 0x0?}, {0xc01053a828?, 0xc00274c938?, 0xc00274ca28?}, 0xc018058fc8, 0xc037016998)
	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/scan_internal.go:769 +0x1bc
github.com/cockroachdb/pebble.(*DB).ScanStatistics(_, {_, _}, {_, _, _}, {_, _, _}, {0x989680})
	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/db.go:2894 +0x3cb
github.com/cockroachdb/cockroach/pkg/storage.(*Pebble).ScanStorageInternalKeys(0xc00aaff8c8?, {0xc01053a820?, 0x3?, 0x8?}, {0xc01053a828?, 0x2?, 0x8?}, 0xa?)
	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:2376 +0x6c
github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.ScanStorageInternalKeys.func1({0x114cca0?, 0xc028695338?}, 0xc006167288?)
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:184 +0x56
github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.execStoreCommand.func1({0x85c4710?, 0xc02f71b290?})
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:46 +0x25
github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr(0xc028695320, {0x85c4710, 0xc02f71b290}, {0xc01451bd10?, 0xc006167370?}, 0xc006167358)
	github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:336 +0xcb
github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.execStoreCommand({0x0?}, {0x85c4710, 0xc02f71b290}, {0x42581f?, 0x0?}, 0xc0061673b0)
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:45 +0x8a
github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.ScanStorageInternalKeys({0xc3589f0?}, {0x85c4710, 0xc02f71b290}, 0xc01290f880)
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:182 +0x86
github.com/cockroachdb/cockroach/pkg/kv/kvserver._PerStore_ScanStorageInternalKeys_Handler.func1({0x85c4710?, 0xc02f71b290?}, {0x69262a0?, 0xc01290f880?})
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/bazel-out/k8-fastbuild/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:621 +0xcb
github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.ServerInterceptor.func12({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880}, 0xc02c106ec0, 0xc01451bcf8)
	github.com/cockroachdb/cockroach/pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:116 +0x2b7
google.golang.org/grpc.getChainUnaryHandler.func1({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880})
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154 +0xb2
github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func3({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880}, 0xc02c106ec0?, 0xc01290f980)
	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:169 +0x76
google.golang.org/grpc.getChainUnaryHandler.func1({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880})
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154 +0xb2
github.com/cockroachdb/cockroach/pkg/rpc.kvAuth.unaryInterceptor({0xc002488000?, {{0x428445?}, {0x8612800?, 0xc01ce119e0?}}}, {0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880}, 0xc02c106ec0, 0xc01290f900)
	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/auth.go:95 +0x1e4
google.golang.org/grpc.getChainUnaryHandler.func1({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880})
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154 +0xb2
github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1.1({0x85c4710?, 0xc02f71b230?})
	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:136 +0x36
github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr(0xc028695320, {0x85c4710, 0xc02f71b230}, {0xc01290f8c0?, 0xc005cb1968?}, 0xc005cb1960)
	github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:336 +0xcb
github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1({0x85c4710?, 0xc02f71b230?}, {0x69262a0?, 0xc01290f880?}, 0xc02c106ec0?, 0xc01451bcf8?)
	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:134 +0x8f
google.golang.org/grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1({0x85c4710, 0xc02f71b230}, {0x69262a0, 0xc01290f880}, 0xc02c106ec0, 0x70?)
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1145 +0x85
github.com/cockroachdb/cockroach/pkg/kv/kvserver._PerStore_ScanStorageInternalKeys_Handler({0x68718e0, 0xc00abe4080}, {0x85c4710, 0xc02f71b230}, 0xc0187fc150, 0xc005744e00)
	github.com/cockroachdb/cockroach/pkg/kv/kvserver/bazel-out/k8-fastbuild/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:623 +0x143
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0221f5860, {0x861fec0, 0xc00a06b1e0}, 0xc01f9cc480, 0xc00b4121e0, 0xc41c730, 0x0)
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1335 +0xdb8
google.golang.org/grpc.(*Server).handleStream(0xc0221f5860, {0x861fec0, 0xc00a06b1e0}, 0xc01f9cc480, 0x0)
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1712 +0x9da
google.golang.org/grpc.(*Server).serveStreams.func1.1()
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:947 +0xbb
created by google.golang.org/grpc.(*Server).serveStreams.func1 in goroutine 2603396
	google.golang.org/grpc/external/org_golang_google_grpc/server.go:958 +0x136
Help

See also: How To Investigate a Go Test Failure (internal)

/cc @cockroachdb/sql-foundations

This test on roachdash | Improve this report!

Jira issue: CRDB-41183

@cockroach-teamcity cockroach-teamcity added branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). 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. T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) labels Aug 11, 2024
@rafiss rafiss changed the title sql/tests: TestRandomSyntaxFunctions failed sql/tests: TestRandomSyntaxFunctions failed [malformed key sentinel byte: bc02c4] Aug 13, 2024
@rafiss
Copy link
Collaborator

rafiss commented Aug 13, 2024

Requesting help from Storage to interpret this panic:

* ERROR: a panic has occurred!
* malformed key sentinel byte: bc02c4
* (1) attached stack trace
*   -- stack trace:
*   | runtime.gopanic
*   | 	GOROOT/src/runtime/panic.go:770
*   | github.com/cockroachdb/cockroach/pkg/storage.checkEngineKey
*   | 	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:417
*   | github.com/cockroachdb/cockroach/pkg/storage.EngineKeyCompare
*   | 	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:458
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSpliceForLevel
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:413
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Iterator).seekForBaseSplice
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/iterator.go:268
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Iterator).SeekGE
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/iterator.go:117
*   | github.com/cockroachdb/pebble.(*mergingIter).seekGE
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/merging_iter.go:975
*   | github.com/cockroachdb/pebble.(*mergingIter).SeekGE
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/merging_iter.go:1023
*   | github.com/cockroachdb/pebble/internal/keyspan.(*InterleavingIter).SeekGE
*   | 	github.com/cockroachdb/pebble/internal/keyspan/external/com_github_cockroachdb_pebble/internal/keyspan/interleaving_iter.go:287
*   | github.com/cockroachdb/pebble/internal/keyspan.(*InterleavingIter).SeekGE
*   | 	github.com/cockroachdb/pebble/internal/keyspan/external/com_github_cockroachdb_pebble/internal/keyspan/interleaving_iter.go:287
*   | github.com/cockroachdb/pebble.(*scanInternalIterator).seekGE
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/scan_internal.go:1078
*   | github.com/cockroachdb/pebble.scanInternalImpl
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/scan_internal.go:769
*   | github.com/cockroachdb/pebble.(*DB).ScanStatistics
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/db.go:2894
*   | github.com/cockroachdb/cockroach/pkg/storage.(*Pebble).ScanStorageInternalKeys
*   | 	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:2376
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.ScanStorageInternalKeys.func1
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:184
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.execStoreCommand.func1
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:46
*   | github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
*   | 	github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:336
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.execStoreCommand
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:45
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver.Server.ScanStorageInternalKeys
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/pkg/kv/kvserver/stores_server.go:182
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver._PerStore_ScanStorageInternalKeys_Handler.func1
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/bazel-out/k8-fastbuild/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:621
*   | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.ServerInterceptor.func12
*   | 	github.com/cockroachdb/cockroach/pkg/util/tracing/grpcinterceptor/grpc_interceptor.go:116
*   | google.golang.org/grpc.getChainUnaryHandler.func1
*   | 	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154
*   | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func3
*   | 	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:169
*   | google.golang.org/grpc.getChainUnaryHandler.func1
*   | 	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154
*   | github.com/cockroachdb/cockroach/pkg/rpc.kvAuth.unaryInterceptor
*   | 	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/auth.go:95
*   | google.golang.org/grpc.getChainUnaryHandler.func1
*   | 	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1154
*   | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1.1
*   | 	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:136
*   | github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunTaskWithErr
*   | 	github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:336
*   | github.com/cockroachdb/cockroach/pkg/rpc.NewServerEx.func1
*   | 	github.com/cockroachdb/cockroach/pkg/rpc/pkg/rpc/context.go:134
*   | google.golang.org/grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1
*   | 	google.golang.org/grpc/external/org_golang_google_grpc/server.go:1145
*   | github.com/cockroachdb/cockroach/pkg/kv/kvserver._PerStore_ScanStorageInternalKeys_Handler
*   | 	github.com/cockroachdb/cockroach/pkg/kv/kvserver/bazel-out/k8-fastbuild/bin/pkg/kv/kvserver/kvserver_go_proto_/github.com/cockroachdb/cockroach/pkg/kv/kvserver/storage_services.pb.go:623
* Wraps: (2) assertion failure
* Wraps: (3) attached stack trace
*   -- stack trace:
*   | github.com/cockroachdb/cockroach/pkg/storage.checkEngineKey
*   | 	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:417
*   | github.com/cockroachdb/cockroach/pkg/storage.EngineKeyCompare
*   | 	github.com/cockroachdb/cockroach/pkg/storage/pebble.go:458
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Skiplist).findSpliceForLevel
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/skl.go:413
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Iterator).seekForBaseSplice
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/iterator.go:268
*   | github.com/cockroachdb/pebble/internal/arenaskl.(*Iterator).SeekGE
*   | 	github.com/cockroachdb/pebble/internal/arenaskl/external/com_github_cockroachdb_pebble/internal/arenaskl/iterator.go:117
*   | github.com/cockroachdb/pebble.(*mergingIter).seekGE
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/merging_iter.go:975
*   | github.com/cockroachdb/pebble.(*mergingIter).SeekGE
*   | 	github.com/cockroachdb/pebble/external/com_github_cockroachdb_pebble/merg

@rafiss rafiss added T-storage Storage Team and removed T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) labels Aug 13, 2024
@blathers-crl blathers-crl bot added the A-storage Relating to our storage engine (Pebble) on-disk storage. label Aug 13, 2024
@itsbilal itsbilal moved this from Incoming to Tests (failures, skipped, flakes) in [Deprecated] Storage Aug 13, 2024
@jbowens
Copy link
Collaborator

jbowens commented Aug 13, 2024

@rafiss do you know: does this test produce random byte slices for the arguments? I think I just need to update the scan_storage_internal_keys builtin to validate the arguments are well-formed engine keys. I'll work on putting up a PR shortly.

@rafiss
Copy link
Collaborator

rafiss commented Aug 13, 2024

Thanks for explaining; makes sense. Yeah, it makes random bytes here:

args = append(args, r.GenerateRandomArg(&typ))

Another option would be to exclude scan_storage_internal_keys from this test, which can be done a few lines above that.

@rafiss rafiss removed the release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. label Aug 13, 2024
jbowens added a commit to jbowens/cockroach that referenced this issue Aug 13, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. We want to continue to accept these keys as
engine keys (rather than encoding them within the builtin), because we may want
to pass local keyspans.

Epic: none
Fix cockroachdb#128757.
Release note: none
jbowens added a commit to jbowens/cockroach that referenced this issue Aug 14, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. We want to continue to accept these keys as
engine keys (rather than encoding them within the builtin), because we may want
to pass local keyspans.

Epic: none
Fix cockroachdb#128757.
Release note: none
jbowens added a commit to jbowens/cockroach that referenced this issue Aug 14, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. These built-ins now attempt to decode and
validate the keys as engine keys. If they validate, it uses them as-is.
Otherwise it encodes them as version-less keys.

Epic: none
Fix cockroachdb#128757.
Release note: none
craig bot pushed a commit that referenced this issue Aug 14, 2024
128935: sql/sem/builtins: validate engine keys in storage builtins r=RaduBerinde a=jbowens

Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. These built-ins now attempt to decode and
validate the keys as engine keys. If they validate, it uses them as-is.
Otherwise it encodes them as version-less keys.

Epic: none
Fix #128757.
Release note: none

128984: raft: consult StoreLiveness when handling MsgFortify r=nvanbenschoten a=arulajmani

Previously, we were always rejecting fortification requests. This patch correctly returns a fortification response by including the leader's supported store liveness epcoh in the MsgFortifyLeaderResp if the follower supports the leader in its StoreLiveness fabric.

Closes #125261

Release note: None

Co-authored-by: Jackson Owens <[email protected]>
Co-authored-by: Arul Ajmani <[email protected]>
@craig craig bot closed this as completed in 4cdf0b9 Aug 14, 2024
@github-project-automation github-project-automation bot moved this from Tests (failures, skipped, flakes) to Done in [Deprecated] Storage Aug 14, 2024
blathers-crl bot pushed a commit that referenced this issue Sep 18, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. These built-ins now attempt to decode and
validate the keys as engine keys. If they validate, it uses them as-is.
Otherwise it encodes them as version-less keys.

Epic: none
Fix #128757.
Release note: none
jbowens added a commit to jbowens/cockroach that referenced this issue Sep 18, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. These built-ins now attempt to decode and
validate the keys as engine keys. If they validate, it uses them as-is.
Otherwise it encodes them as version-less keys.

Epic: none
Fix cockroachdb#128757.
Release note: none
RaduBerinde pushed a commit to RaduBerinde/cockroach that referenced this issue Oct 1, 2024
Ensure that the user-provided engine keys are valid before using them to seek,
in storage's SQL builtins.  The Comparer will now panic if there's an attempt
to compare using an invalid key. These built-ins now attempt to decode and
validate the keys as engine keys. If they validate, it uses them as-is.
Otherwise it encodes them as version-less keys.

Epic: none
Fix cockroachdb#128757.
Release note: none
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-storage Relating to our storage engine (Pebble) on-disk storage. branch-master Failures and bugs on the master branch. C-test-failure Broken test (automatically or manually discovered). O-robot Originated from a bot. T-storage Storage Team
Projects
No open projects
Status: Done
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants