Bug #5469
closedqemu-io: segfault when tried IO with invalid arguments
0%
Description
tested this on rhel 6.3 and rhel6.4
tried qemu-io to perform IO on the rbd image by writing in a pattern and reading it back ina different pattern, but the issue seems to be with the length used while reading.
[ubuntu@mira099 x86_64]$ sudo qemu-io qemu-io> aio_read -P 0x3 1 1 no file open, try 'help open' qemu-io> open rbd:rbd/img1 qemu-io> aio_write -P 0x2 1k 1k qemu-io> aio_read -P 0x3 1 2 offset 1 is not sector aligned qemu-io> aio_read -P 0x3 0 1 length argument 1 is not sector aligned osdc/Striper.cc: In function 'static void Striper::file_to_extents(CephContext*, const char*, ceph_file_layout*, uint64_t, uint64_t, std::map<object_t, std::vector<ObjectExtent, std::allocator<ObjectExtent> >, std::less<object_t>, std::allocator<std::pair<const object_t, std::vector<ObjectExtent, std::allocator<ObjectExtent> > > > >&, uint64_t)' thread 7f21524b6760 time 2013-06-26 18:50:36.008929 osdc/Striper.cc: 49: FAILED assert(len > 0) ceph version 0.61.4-29-gccb3dd5 (ccb3dd5ad5533ca4e9b656b4e3df31025a5f2017) 1: (Striper::file_to_extents(CephContext*, char const*, ceph_file_layout*, unsigned long, unsigned long, std::map<object_t, std::vector<ObjectExtent, std::allocator<ObjectExtent> >, std::less<object_t>, std::allocator<std::pair<object_t const, std::vector<ObjectExtent, std::allocator<ObjectExtent> > > > >&, unsigned long)+0x1403) [0x7f2151363c73] 2: (librbd::aio_read(librbd::ImageCtx*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > const&, char*, ceph::buffer::list*, librbd::AioCompletion*)+0x2a5) [0x7f215132d5d5] 3: (librbd::aio_read(librbd::ImageCtx*, unsigned long, unsigned long, char*, ceph::buffer::list*, librbd::AioCompletion*)+0xa2) [0x7f215132e1c2] 4: (()+0x35e9e) [0x7f2152507e9e] 5: (()+0x36020) [0x7f2152508020] 6: (()+0x12fd5) [0x7f21524e4fd5] 7: (()+0x13c02) [0x7f21524e5c02] NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this. terminate called after throwing an instance of 'ceph::FailedAssertion'
Updated by Bram Pieters over 10 years ago
I'm having a simular issue atm:
char device redirected to /dev/pts/2
xen be: qdisk-768: error: unknown operation (255)
xen be: qdisk-832: error: unknown operation (255)
osdc/Striper.cc: In function 'static void Striper::file_to_extents(CephContext*, const char*, ceph_file_layout*, uint64_t, uint64_t, uint64_t, std::map<object_t, std::vector<ObjectExtent> >&, uint64_t)' thread 7f8adcdd1900 time 2013-11-15 13:42:36.834329
osdc/Striper.cc: 50: FAILED assert(len > 0)
ceph version 0.70 (e3bb0656d92e74ead0342ae696039a51170fe941)
1: (Striper::file_to_extents(CephContext*, char const*, ceph_file_layout*, unsigned long, unsigned long, unsigned long, std::map<object_t, std::vector<ObjectExtent, std::allocator<ObjectExtent> >, std::less<object_t>, std::allocator<std::pair<object_t const, std::vector<ObjectExtent, std::allocator<ObjectExtent> > > > >&, unsigned long)+0x1a5c) [0x7f8adc1a1c1c]
2: (librbd::aio_read(librbd::ImageCtx*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > const&, char*, ceph::buffer::list*, librbd::AioCompletion*)+0x15d) [0x7f8adc16b0cd]
3: (librbd::aio_read(librbd::ImageCtx*, unsigned long, unsigned long, char*, ceph::buffer::list*, librbd::AioCompletion*)+0x84) [0x7f8adc16bac4]
4: (()+0xa9f72) [0x7f8adcf99f72]
5: (()+0xaa120) [0x7f8adcf9a120]
6: (()+0x8a54e) [0x7f8adcf7a54e]
7: (()+0x90f4e) [0x7f8adcf80f4e]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
terminate called after throwing an instance of 'ceph::FailedAssertion'
Updated by Tamilarasi muthamizhan over 10 years ago
- Priority changed from Normal to High
Updated by Pawel Stefanski about 10 years ago
we've got the same assertion failure today on 0.67.3. It's rare and random.
osdc/Striper.cc: In function 'static void Striper::file_to_extents(CephContext*, const char*, ceph_file_layout*, uint64_t, uint64_t, uint64_t, std::map<object_t, std::vector<ObjectExtent> >&, uint64_t)' thread 7f8f0affd700 time 2014-03-2
0 17:00:27.883733
osdc/Striper.cc: 50: FAILED assert(len > 0)
ceph version 0.67.3 (408cd61584c72c0d97b774b3d8f95c6b1b06341a)
1: (Striper::file_to_extents(CephContext*, char const*, ceph_file_layout*, unsigned long, unsigned long, unsigned long, std::map<object_t, std::vector<ObjectExtent, std::allocator<ObjectExtent> >, std::less<object_t>, std::allocator<std
::pair<object_t const, std::vector<ObjectExtent, std::allocator<ObjectExtent> > > > >&, unsigned long)+0xa38) [0xd1f7d8]
2: (librbd::aio_read(librbd::ImageCtx*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > const&, char*, ceph::buffer::list*, librbd::AioCompletion*)+0x1e8) [0xf04e58]
3: (librbd::read(librbd::ImageCtx*, std::vector<std::pair<unsigned long, unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > const&, char*, ceph::buffer::list*)+0xcb) [0xf055eb]
4: (librbd::read(librbd::ImageCtx*, unsigned long, unsigned long, char*)+0x103) [0xf058c3]
5: (rbd::object::read(unsigned long, unsigned long, char*) const+0x4c) [0x917f68]
6: ./trinity-hypervisor() [0x88ba1b]
7: (std::function<long ()>::operator()() const+0x26) [0xa3f816]
8: (trinity::io_thread::worker_function()+0x1d5) [0xa40357]
9: (std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void (trinity::io_thread::*)()> (trinity::io_thread*)> ()> >::_M_run()+0x3d) [0xa3f40d]
10: (execute_native_thread_routine()+0x20) [0x1034930]
11: (()+0x8ec6) [0x7f8f1df4bec6]
12: (clone()+0x6d) [0x7f8f1d78b9cd]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Updated by Josh Durgin about 10 years ago
- Status changed from New to Fix Under Review
Updated by Sage Weil about 10 years ago
- Status changed from Fix Under Review to Resolved