]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osdc: restart read on truncate/discard 37732/head
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 20 Oct 2020 19:38:15 +0000 (12:38 -0700)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 21 Oct 2020 01:48:02 +0000 (18:48 -0700)
commitb53390031378a06980fa8e7dae074a7095307c12
treef490e002f1780c8543419e7ed4ce92ebc3842435
parente5f917aa1c2f6c473ece6667b108c325f0151da5
osdc: restart read on truncate/discard

This can be reliably reproduced by reading a large file (~500MB) on a
ceph-fuse mount and then evicting the client.

Now we see in the logs:

2020-10-21T01:46:29.679+0000 7f00beffd700 10 objectcacher.object(10000000000.00000030/head) truncate object[10000000000.00000030/head oset 0x7f00a0006b08 wr 0/0] to 0
2020-10-21T01:46:29.679+0000 7f00beffd700 10 objectcacher.object(10000000000.00000030/head) restarting reads post-truncate
...
2020-10-21T01:46:29.762+0000 7f00bffff700 20 objectcacher.object(10000000000.00000030/head) map_read error bh[ 0x7f0070004e30 1048576~3145728 0x7f008404a720 (0) v 0 error=-108] waiters = {}
2020-10-21T01:46:29.762+0000 7f00bffff700 10 objectcacher readx hit bh bh[ 0x7f0070004e30 1048576~3145728 0x7f008404a720 (0) v 0 error=-108] waiters = {}
2020-10-21T01:46:29.762+0000 7f00bffff700 10 objectcacher readx has all buffers
2020-10-21T01:46:29.762+0000 7f00bffff700 20 objectcacher readx done 0x7f007c00a9b0 -108
...
2020-10-21T01:46:29.763+0000 7f0077fff700  3 client.4497 ll_read 0x7f0080023720 202637312~131072 = -108

Fixes: https://tracker.ceph.com/issues/46434
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/osdc/ObjectCacher.cc