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

bluestore, NVMeDevice: use task' own lock for (random) read #14094

Merged
merged 1 commit into from Mar 23, 2017

Conversation

Projects
None yet
5 participants
@optimistyzy
Contributor

optimistyzy commented Mar 23, 2017

The reason is that ioc may be reaped in _aio_thread function
with the following statements:
for (auto &&it : registered_devices)
it->reap_ioc();

So if we still use ioc's lock for (random) read, it will cause
core dump.

Signed-off-by: optimistyzy optimistyzy@gmail.com

bluestore, NVMeDevice: use task' own lock for (random) read
The reason is that ioc may be reaped in _aio_thread function
with  the following statements:
for (auto &&it : registered_devices)
          it->reap_ioc();

So if we still use ioc's lock for (random) read, it will cause
core dump.

Signed-off-by: optimistyzy <optimistyzy@gmail.com>
@optimistyzy

This comment has been minimized.

Show comment
Hide comment
@optimistyzy

optimistyzy Mar 23, 2017

Contributor

@yuyuyu101, this patch can solve the core dump of read. @liuhongtong helped the testing.

Contributor

optimistyzy commented Mar 23, 2017

@yuyuyu101, this patch can solve the core dump of read. @liuhongtong helped the testing.

@liuhongtong

This comment has been minimized.

Show comment
Hide comment
@liuhongtong

liuhongtong Mar 23, 2017

I have tested almost 16 hours, no crash.

liuhongtong commented Mar 23, 2017

I have tested almost 16 hours, no crash.

@yuyuyu101 yuyuyu101 merged commit 93de4c6 into ceph:master Mar 23, 2017

3 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodifed Submodules submodules for project are unmodified
Details
default Build finished.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment