Project

General

Profile

Actions

Bug #15034

closed

Possible inconsistent IO when using configured for multiple op threads

Added by Jason Dillaman about 8 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Low
Assignee:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When 'rbd_op_threads' is set to a value higher than 1 (defaults to 1), it's quite possible for an aio flush op to complete before a predecessor aio write/discard starts. These ops need to be tracked at the time of submission so that flush can properly account for them. Currently, the ops only start being tracked when they start executing.

Actions #1

Updated by Josh Durgin about 8 years ago

https://github.com/ceph/ceph/pull/8459 ignores this option in librbd for now.

Actions #2

Updated by Jason Dillaman almost 8 years ago

  • Status changed from New to In Progress

The PR for issue #15688 has a fix for this issue -- ops are tracked in enqueued order so now a flush command will properly wait for all preceding ops.

Actions #3

Updated by Haomai Wang almost 8 years ago

This is only possible when enabing rbd_cache?

Actions #4

Updated by Jason Dillaman almost 8 years ago

@Haomai: the issue could have happened with cache disabled as well since the flush wouldn't know to wait for a preceding write/discard.

Actions #5

Updated by Haomai Wang almost 8 years ago

does this affect hammer?

Actions #6

Updated by Jason Dillaman almost 8 years ago

PR: https://github.com/ceph/ceph/pull/9023 -- still requires re-enabling the librbd option.

Actions #7

Updated by Jason Dillaman over 6 years ago

  • Status changed from In Progress to Resolved

Remaining issues being tracked under ticket #17379

Actions

Also available in: Atom PDF