Project

General

Profile

Actions

Bug #42495

closed

ENOENT on just-created object

Added by Sage Weil over 4 years ago. Updated over 4 years ago.

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

0%

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

Description

   -35> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) queue_transactions ch 0x562aede4d4a0 meta
   -34> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _txc_create osr 0x562aeeb98500 = 0x562aeeaba300 seq 1
   -33> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 15 bluestore(bluestore.test_temp_dir) _create_collection meta bits 0
   -32> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _create_collection meta bits 0 = 0
   -31> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir).collection(meta 0x562aede4d4a0) get_onode oid #-1:83698d05:::fiemap_object:head# key 0x7f7fffffffffffffff83698d05216669'emap_object!='0xfffffffffffffffeffffffffffffffff'o'
   -30> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir).collection(meta 0x562aede4d4a0)  r -2 v.len 0
   -29> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 15 bluestore(bluestore.test_temp_dir) _touch meta #-1:83698d05:::fiemap_object:head#
   -28> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _assign_nid 1
   -27> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _touch meta #-1:83698d05:::fiemap_object:head# = 0
   -26> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 15 bluestore(bluestore.test_temp_dir) _truncate meta #-1:83698d05:::fiemap_object:head# 0x186a0
   -25> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 15 bluestore(bluestore.test_temp_dir) _do_truncate meta #-1:83698d05:::fiemap_object:head# 0x186a0
   -24> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _truncate meta #-1:83698d05:::fiemap_object:head# 0x186a0 = 0
   -23> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _txc_calc_cost 0x562aeeaba300 cost 670352 (1 ios * 670000 + 352 bytes)
   -22> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _txc_write_nodes txc 0x562aeeaba300 onodes 0x562aede72f00 shared_blobs 
   -21> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore.extentmap(0x562aede73008) update #-1:83698d05:::fiemap_object:head#
   -20> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore.extentmap(0x562aede73008) update  inline shard 2 bytes from 0 extents
   -19> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _record_onode onode #-1:83698d05:::fiemap_object:head# is 30 (22 bytes onode + 2 bytes spanning blobs + 6 bytes inline extents)
   -18> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _txc_finalize_kv txc 0x562aeeaba300 allocated 0x[] released 0x[]

returns to caller. some other stuff happens,
   -17> 2019-10-25T07:56:57.166+0000 7fc87b4f2700  5 prioritycache tune_memory target: 4294967296 mapped: 18292736 unmapped: 65994752 heap: 84287488 old mem: 134217728 new mem: 2833868543
   -16> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _txc_state_proc txc 0x562aeeaba300 prepare
   -15> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir) _txc_finish_io 0x562aeeaba300
   -14> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 10 bluestore(bluestore.test_temp_dir) _txc_state_proc txc 0x562aeeaba300 io_done
   -13> 2019-10-25T07:56:57.166+0000 7fc8736e8700 20 bluestore(bluestore.test_temp_dir) _kv_sync_thread wake
   -12> 2019-10-25T07:56:57.166+0000 7fc8736e8700 20 bluestore(bluestore.test_temp_dir) _kv_sync_thread committing 1 submitting 1 deferred done 0 stable 0

and then the caller tries another operation on fiemap_object,
   -11> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir).collection(meta 0x562aede4d4a0) get_onode oid #-1:83698d05:::fiemap_object:head# key 0x7f7fffffffffffffff83698d05216669'emap_object!='0xfffffffffffffffeffffffffffffffff'o'
   -10> 2019-10-25T07:56:57.166+0000 7fc891b6fd40 20 bluestore(bluestore.test_temp_dir).collection(meta 0x562aede4d4a0)  r -2 v.len 0
...
     0> 2019-10-25T07:56:57.171+0000 7fc891b6fd40 -1 *** Caught signal (Aborted) **
 in thread 7fc891b6fd40 thread_name:ceph_test_objec

 ceph version 15.0.0-6444-g7c42079 (7c420790fe0da8bcfca0bd14632a10583d2cbd3e) octopus (dev)
 1: (()+0xf5d0) [0x7fc8917695d0]
 2: (gsignal()+0x37) [0x7fc88558f2c7]
 3: (abort()+0x148) [0x7fc8855909b8]
 4: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7fc885e9e7d5]
 5: (()+0x5e746) [0x7fc885e9c746]
 6: (()+0x5e773) [0x7fc885e9c773]
 7: (()+0x5e993) [0x7fc885e9c993]
 8: (std::enable_if<denc_traits<std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >, void>::supported&&(!denc_traits<std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >, void>::need_contiguous), void>::type ceph::decode<std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >, denc_traits<std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >, void> >(std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >&, ceph::buffer::v14_2_0::list::iterator_impl<true>&)+0x328) [0x562aeb1b5848]
 9: (StoreTest_FiemapEmpty_Test::TestBody()+0x3e3) [0x562aeb123d43]
 10: (void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)+0x87) [0x562aeb41af97]

and the object is not there (causing the test to crash).

/a/sage-2019-10-25_05:04:47-rados-wip-sage2-testing-2019-10-24-1944-distro-basic-smithi/4442768

Actions #1

Updated by Sage Weil over 4 years ago

This other failed test in the same run was also a bad ENOENT (seen by ceph-objectstore-tool fuse), but no logs to go with it :(

/a/sage-2019-10-25_05:04:47-rados-wip-sage2-testing-2019-10-24-1944-distro-basic-smithi/4443292

Actions #2

Updated by Igor Fedotov over 4 years ago

I'm getting a bit different failure report when running ceph_test_objectstore against upstream/master:

[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from ObjectStore/StoreTest
[ RUN ] ObjectStore/StoreTest.FiemapEmpty/2
unknown file: Failure
C++ exception with description "buffer::end_of_buffer" thrown in the test body.

rm -r bluestore.test_temp_dir

[ FAILED ] ObjectStore/StoreTest.FiemapEmpty/2, where GetParam() = "bluestore" (1349 ms)
[----------] 1 test from ObjectStore/StoreTest (1349 ms total)

[----------] Global test environment tear-down
[========] 1 test from 1 test suite ran. (1349 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] ObjectStore/StoreTest.FiemapEmpty/2, where GetParam() = "bluestore"

1 FAILED TEST

Looks like a regression caused by separate onode cache pinned list: https://github.com/ceph/ceph/pull/30964
ObjectStore/StoreTest.FiemapEmpty/2 works fine before this PR...

Actions #3

Updated by Sage Weil over 4 years ago

This seems to be easy to reproduce:

/a/sage-2019-10-26_16:12:32-rados-wip-sage2-testing-2019-10-25-1224-distro-basic-smithi/4447981

Actions #4

Updated by Kefu Chai over 4 years ago

  • Status changed from 12 to Resolved
Actions #5

Updated by Josh Durgin over 4 years ago

  • Pull request ID set to 31778
Actions

Also available in: Atom PDF