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: failover/chaos/read-only failed #106681

Closed
cockroach-teamcity opened this issue Jul 12, 2023 · 6 comments
Closed

roachtest: failover/chaos/read-only failed #106681

cockroach-teamcity opened this issue Jul 12, 2023 · 6 comments
Assignees
Labels
A-testing Testing tools and infrastructure branch-release-23.1 Used to mark GA and release blockers, technical advisories, and bugs for 23.1 C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot.
Milestone

Comments

@cockroach-teamcity
Copy link
Member

cockroach-teamcity commented Jul 12, 2023

roachtest.failover/chaos/read-only failed with artifacts on release-23.1 @ 57c94bfe124fd08b948caa257acd3cb1e7cf1667:

(assertions.go:262).Fail: 
	Error Trace:	github.com/cockroachdb/cockroach/pkg/cmd/roachtest/tests/failover.go:1434
	            				github.com/cockroachdb/cockroach/pkg/cmd/roachtest/tests/failover.go:318
	            				main/pkg/cmd/roachtest/monitor.go:105
	            				golang.org/x/sync/errgroup/external/org_golang_x_sync/errgroup/errgroup.go:75
	            				GOROOT/src/runtime/asm_amd64.s:1594
	Error:      	Received unexpected error:
	            	pq: setting updated but timed out waiting to read new value
	Test:       	failover/chaos/read-only
(require.go:1264).NoError: FailNow called
(monitor.go:137).Wait: monitor failure: monitor task failed: t.Fatal() was called
(cluster.go:2249).Run: cluster.RunE: context canceled
(cluster.go:2249).Run: cluster.RunE: context canceled
(cluster.go:2249).Run: cluster.RunE: context canceled
(cluster.go:2249).Run: cluster.RunE: context canceled
test artifacts and logs in: /artifacts/failover/chaos/read-only/run_1

Parameters: ROACHTEST_arch=amd64 , ROACHTEST_cloud=gce , ROACHTEST_cpu=2 , ROACHTEST_encrypted=false , ROACHTEST_fs=ext4 , ROACHTEST_localSSD=false , ROACHTEST_ssd=0

Help

See: roachtest README

See: How To Investigate (internal)

Same failure on other branches

/cc @cockroachdb/kv-triage

This test on roachdash | Improve this report!

Jira issue: CRDB-29675

Epic CRDB-27234

@cockroach-teamcity cockroach-teamcity added branch-release-23.1 Used to mark GA and release blockers, technical advisories, and bugs for 23.1 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. T-kv KV Team labels Jul 12, 2023
@cockroach-teamcity cockroach-teamcity added this to the 23.1 milestone Jul 12, 2023
@shralex shralex added A-testing Testing tools and infrastructure and removed T-kv KV Team labels Jul 12, 2023
@shralex
Copy link
Contributor

shralex commented Jul 12, 2023

@renatolabs if Test Eng isn't the right place for this, please let me know

@renatolabs
Copy link
Contributor

The error is:

pq: setting updated but timed out waiting to read new value

which happens when the cluster setting is not propagated within the expected timeout (10s):

// waitForSettingUpdate makes the SET CLUSTER SETTING statement wait
// until the value has propagated and is visible to the current SQL
// session.
func waitForSettingUpdate(

This all makes it look like this is a test flake -- there are situations in which doing the cluster setting update as the test is doing is not guaranteed to succeed. In that case, the test owners (kv) would be in the best position to fix this, as the authors of the test.

If you believe this to be an infrastructure flake for some reason, do let me know and provide more info, please.

@andrewbaptist
Copy link
Collaborator

@erikgrinaker I'll take a look at this tomorrow. It appears that we are trying to set a cluster setting while the system is only partially available. This isn't guaranteed to succeed in these chaos tests since the necessary range may either be unavailable or needs to wait until a failover has occurred. Since we only wait 10 seconds it is possible this doesn't happen fast enough.

@erikgrinaker erikgrinaker added C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. and removed release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. labels Jul 17, 2023
@erikgrinaker erikgrinaker added T-kv-replication and removed T-kv KV Team labels Jul 17, 2023
@blathers-crl
Copy link

blathers-crl bot commented Jul 17, 2023

cc @cockroachdb/replication

@erikgrinaker
Copy link
Contributor

Makes sense. I submitted a fix in #106893.

craig bot pushed a commit that referenced this issue Jul 20, 2023
106893: failover: re-enable disk stall detector in `diskStallFailer.Ready` r=erikgrinaker a=erikgrinaker

`pauseFailer` needs to disable the disk stall detector to avoid false positives. However, it attempted to re-enable it via cluster setting during recovery. If a system range is unavailable during recovery (typically in chaos tests with concurrent failures), this can error out.

This patch instead (re-)enables the disk stall detector during `diskStallFailer.Ready`.

Touches #106681.
Touches #106752.

Epic: none
Release note: None

Co-authored-by: Erik Grinaker <[email protected]>
@erikgrinaker
Copy link
Contributor

Resolved by #107251.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testing Testing tools and infrastructure branch-release-23.1 Used to mark GA and release blockers, technical advisories, and bugs for 23.1 C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot.
Projects
None yet
Development

No branches or pull requests

5 participants