Avoid Cannot schedule a task error when loading parts#70257
Conversation
|
This is an automated comment for commit 45cff04 with description of existing statuses. It's updated for the latest CI running ❌ Click here to open a full report in a separate page
Successful checks
|
| auto res = part->getDataPartStorage().readFile(file_name, getReadSettings().adjustBufferSize(file_size), file_size, std::nullopt); | ||
| auto read_settings = getReadSettings().adjustBufferSize(file_size); | ||
| /// Default read method is pread_threadpool, but there is not much point in it here. | ||
| read_settings.local_fs_method = LocalFSReadMethod::pread; |
There was a problem hiding this comment.
P.S. I did not do the same for remote_fs_method, because it does not use threadpool unless prefetch is made, which is not made here (while for local fs we use threadpool unconditionally, sadly this is inconsistent). Plus there is a known issue with remote_fs_method=read which is not fixed.
|
but the exception should be caught, am I missing something? |
|
|
|
Yes, I see, but I guess we retried this error several times until the reach the limit of retries and then terminated the server ClickHouse/src/Storages/MergeTree/MergeTreeData.cpp Lines 2163 to 2165 in 3198aaf https://s3.amazonaws.com/clickhouse-test-reports/70114/7835b66565b481c61e535d2baee362736d2b750a/stress_test__debug_/fatal_messages.txt |
|
This shouldn't be the place because we block the fault injection auto blocker = CannotAllocateThreadFaultInjector::blockFaultInjections();I'm honestly not a fan of this solution as removing this line of code will break it again. |
|
I'm also okay with adding blocker of fault injection with a |
test_storage_kafka |
Fixes https://s3.amazonaws.com/clickhouse-test-reports/70114/7835b66565b481c61e535d2baee362736d2b750a/stress_test__debug_/fatal_messages.txt
It started reproducing because of #65625
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
...
Documentation entry for user-facing changes
CI Settings (Only check the boxes if you know what you are doing):