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

Fix a bug in AbortIO #13205

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

MJY-HUST
Copy link

Summary: When using asynchronous IO based on io_uring, if the io_handles of the cancelled request are not recorded when canceling the request within AbortIO, it may cause other asynchronous IO requests to be processed incorrectly, resulting in the program getting stuck.
Reproduction:
fill data:

./db_bench -db=/tmp/my_db -benchmarks="fillseqdeterministic" -key_size=32 -value_size=512 -num=5000000 -num_levels=4 -multiread_batched=true -use_direct_reads=false -adaptive_readahead=true -threads=1 -async_io=false -multiread_stride=40000 -disable_auto_compactions=true -compaction_style=1 -bloom_bits=10

read data: seek with next

./db_bench -use_existing_db=true -db=/tmp/my_db -benchmarks="seekrandom" -key_size=32 -value_size=512 -num=5000000 -batch_size=8 -multiread_batched=true -use_direct_reads=true -reads=1000 -ops_between_duration_checks=1 -readonly=true -threads=1 -cache_size=0 -async_io=true -multiread_stride=10000 -statistics -adaptive_readahead=true -bloom_bits=10 -seek_nexts=10000

Test: Successfully executed the above asynchronous query benchmark

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants