I'd recommend running your program through valgrind first to see if something pops out immediately. -- Jason Dillaman ----- Original Message ----- > From: "min fang" <louisfang2013@xxxxxxxxx> > To: ceph-users@xxxxxxxxxxxxxx > Sent: Saturday, October 31, 2015 10:43:22 PM > Subject: Re: segmentation fault when using librbd interface > this segmentation fault should happen in rbd_read function, I can see code > call this function, and then get segmentation fault, which means rbd_read > has not been completed successfully when segmentation fault happened. > 2015-11-01 10:34 GMT+08:00 min fang < louisfang2013@xxxxxxxxx > : > > Hi,my code get Segmentation fault when using librbd to do sync read IO. > > From > > the trace, I can say there are several read IOs get successfully, but the > > last read IO (2015-10-31 08:56:34.804383) can not be returned and my code > > got segmentation fault. I used rbd_read interface and malloc a buffer for > > read data buffer. > > > Anybody can help this? Thanks. > > > 2015-10-31 08:56:34.750411 7f04bcbdc7c0 20 librbd: read 0x17896d0 off = 0 > > len > > = 4096 > > > 2015-10-31 08:56:34.750436 7f04bcbdc7c0 20 librbd: aio_read 0x17896d0 > > completion 0x1799440 [0,4096] > > > 2015-10-31 08:56:34.750442 7f04bcbdc7c0 20 librbd: ictx_check 0x17896d0 > > > 2015-10-31 08:56:34.750451 7f04bcbdc7c0 20 librbd::AsyncOperation: > > 0x1799570 > > start_op > > > 2015-10-31 08:56:34.750453 7f04bcbdc7c0 20 librbd: oid > > rb.0.8597.2ae8944a.000000000000 0~4096 from [0,4096] > > > 2015-10-31 08:56:34.750457 7f04bcbdc7c0 10 librbd::ImageCtx: > > prune_parent_extents image overlap 0, object overlap 0 from image extents > > [] > > > 2015-10-31 08:56:34.750462 7f04bcbdc7c0 20 librbd::AioRequest: send > > 0x1799c60 > > rb.0.8597.2ae8944a.000000000000 0~4096 > > > 2015-10-31 08:56:34.750498 7f04bcbdc7c0 1 -- 192.168.90.240:0/1006544 --> > > 192.168.90.253:6801/2041 -- osd_op(client.34253.0:92 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 0~4096] 2.7cf90552 > > ack+read+known_if_redirected e30) v5 -- ?+0 0x179b890 con 0x17877b0 > > > 2015-10-31 08:56:34.750526 7f04bcbdc7c0 20 librbd::AioCompletion: > > AioCompletion::finish_adding_requests 0x1799440 pending 1 > > > 2015-10-31 08:56:34.780308 7f04b0bb5700 1 -- 192.168.90.240:0/1006544 <== > > osd.0 192.168.90.253:6801/2041 5 ==== osd_op_reply(92 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 0~4096] v0'0 uv8 ondisk = 0) > > v6 > > ==== 198+0+4120 (3153096351 0 1287205638) 0x7f0494001ce0 con 0x17877b0 > > > 2015-10-31 08:56:34.780408 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x1799c60 rb.0.8597.2ae8944a.000000000000 0~4096 r = 0 > > > 2015-10-31 08:56:34.780418 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x1799c60 READ_FLAT > > > 2015-10-31 08:56:34.780420 7f04b14b7700 20 librbd::AioRequest: complete > > 0x1799c60 > > > 2015-10-31 08:56:34.780421 7f04b14b7700 10 librbd::AioCompletion: > > C_AioRead::finish() 0x1793710 r = 0 > > > 2015-10-31 08:56:34.780422 7f04b14b7700 10 librbd::AioCompletion: got > > {0=4096} for [0,4096] bl 4096 > > > 2015-10-31 08:56:34.780432 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::complete_request() 0x1799440 complete_cb=0x7f04ba2b1240 > > pending 1 > > > 2015-10-31 08:56:34.780434 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() 0x1799440 rval 4096 read_buf 0x179a5e0 read_bl 0 > > > 2015-10-31 08:56:34.780440 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() copied resulting 4096 bytes to 0x179a5e0 > > > 2015-10-31 08:56:34.780442 7f04b14b7700 20 librbd::AsyncOperation: > > 0x1799570 > > finish_op > > > 2015-10-31 08:56:34.780766 7f04bcbdc7c0 20 librbd: read 0x17896d0 off = > > 4096 > > len = 4096 > > > 2015-10-31 08:56:34.780778 7f04bcbdc7c0 20 librbd: aio_read 0x17896d0 > > completion 0x1799440 [4096,4096] > > > 2015-10-31 08:56:34.780781 7f04bcbdc7c0 20 librbd: ictx_check 0x17896d0 > > > 2015-10-31 08:56:34.780786 7f04bcbdc7c0 20 librbd::AsyncOperation: > > 0x1799570 > > start_op > > > 2015-10-31 08:56:34.780788 7f04bcbdc7c0 20 librbd: oid > > rb.0.8597.2ae8944a.000000000000 4096~4096 from [0,4096] > > > 2015-10-31 08:56:34.780790 7f04bcbdc7c0 10 librbd::ImageCtx: > > prune_parent_extents image overlap 0, object overlap 0 from image extents > > [] > > > 2015-10-31 08:56:34.780793 7f04bcbdc7c0 20 librbd::AioRequest: send > > 0x179bcc0 > > rb.0.8597.2ae8944a.000000000000 4096~4096 > > > 2015-10-31 08:56:34.780813 7f04bcbdc7c0 1 -- 192.168.90.240:0/1006544 --> > > 192.168.90.253:6801/2041 -- osd_op(client.34253.0:93 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 4096~4096] 2.7cf90552 > > ack+read+known_if_redirected e30) v5 -- ?+0 0x179b5f0 con 0x17877b0 > > > 2015-10-31 08:56:34.780833 7f04bcbdc7c0 20 librbd::AioCompletion: > > AioCompletion::finish_adding_requests 0x1799440 pending 1 > > > 2015-10-31 08:56:34.800847 7f04b0bb5700 1 -- 192.168.90.240:0/1006544 <== > > osd.0 192.168.90.253:6801/2041 6 ==== osd_op_reply(93 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 4096~4096] v0'0 uv8 ondisk = > > 0) > > v6 ==== 198+0+4120 (2253638743 0 3057087703) 0x7f0494001ce0 con 0x17877b0 > > > 2015-10-31 08:56:34.800947 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x179bcc0 rb.0.8597.2ae8944a.000000000000 4096~4096 r = 0 > > > 2015-10-31 08:56:34.800956 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x179bcc0 READ_FLAT > > > 2015-10-31 08:56:34.800957 7f04b14b7700 20 librbd::AioRequest: complete > > 0x179bcc0 > > > 2015-10-31 08:56:34.800958 7f04b14b7700 10 librbd::AioCompletion: > > C_AioRead::finish() 0x1796c90 r = 0 > > > 2015-10-31 08:56:34.800959 7f04b14b7700 10 librbd::AioCompletion: got > > {4096=4096} for [0,4096] bl 4096 > > > 2015-10-31 08:56:34.800963 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::complete_request() 0x1799440 complete_cb=0x7f04ba2b1240 > > pending 1 > > > 2015-10-31 08:56:34.800965 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() 0x1799440 rval 4096 read_buf 0x179a5e0 read_bl 0 > > > 2015-10-31 08:56:34.800969 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() copied resulting 4096 bytes to 0x179a5e0 > > > 2015-10-31 08:56:34.800971 7f04b14b7700 20 librbd::AsyncOperation: > > 0x1799570 > > finish_op > > > 2015-10-31 08:56:34.801281 7f04bcbdc7c0 20 librbd: read 0x17896d0 off = > > 12288 > > len = 4096 > > > 2015-10-31 08:56:34.801292 7f04bcbdc7c0 20 librbd: aio_read 0x17896d0 > > completion 0x1799440 [12288,4096] > > > 2015-10-31 08:56:34.801295 7f04bcbdc7c0 20 librbd: ictx_check 0x17896d0 > > > 2015-10-31 08:56:34.801300 7f04bcbdc7c0 20 librbd::AsyncOperation: > > 0x1799570 > > start_op > > > 2015-10-31 08:56:34.801301 7f04bcbdc7c0 20 librbd: oid > > rb.0.8597.2ae8944a.000000000000 12288~4096 from [0,4096] > > > 2015-10-31 08:56:34.801304 7f04bcbdc7c0 10 librbd::ImageCtx: > > prune_parent_extents image overlap 0, object overlap 0 from image extents > > [] > > > 2015-10-31 08:56:34.801306 7f04bcbdc7c0 20 librbd::AioRequest: send > > 0x179bcc0 > > rb.0.8597.2ae8944a.000000000000 12288~4096 > > > 2015-10-31 08:56:34.801323 7f04bcbdc7c0 1 -- 192.168.90.240:0/1006544 --> > > 192.168.90.253:6801/2041 -- osd_op(client.34253.0:94 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 12288~4096] 2.7cf90552 > > ack+read+known_if_redirected e30) v5 -- ?+0 0x179b5f0 con 0x17877b0 > > > 2015-10-31 08:56:34.801342 7f04bcbdc7c0 20 librbd::AioCompletion: > > AioCompletion::finish_adding_requests 0x1799440 pending 1 > > > 2015-10-31 08:56:34.802176 7f04b0bb5700 1 -- 192.168.90.240:0/1006544 <== > > osd.0 192.168.90.253:6801/2041 7 ==== osd_op_reply(94 > > rb.0.8597.2ae8944a.000000000000 [sparse-read 12288~4096] v0'0 uv8 ondisk = > > 0) v6 ==== 198+0+4120 (4245981639 0 251894080) 0x7f0494001ce0 con 0x17877b0 > > > 2015-10-31 08:56:34.802218 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x179bcc0 rb.0.8597.2ae8944a.000000000000 12288~4096 r = 0 > > > 2015-10-31 08:56:34.802225 7f04b14b7700 20 librbd::AioRequest: > > should_complete 0x179bcc0 READ_FLAT > > > 2015-10-31 08:56:34.802231 7f04b14b7700 20 librbd::AioRequest: complete > > 0x179bcc0 > > > 2015-10-31 08:56:34.802232 7f04b14b7700 10 librbd::AioCompletion: > > C_AioRead::finish() 0x1793710 r = 0 > > > 2015-10-31 08:56:34.802233 7f04b14b7700 10 librbd::AioCompletion: got > > {12288=4096} for [0,4096] bl 4096 > > > 2015-10-31 08:56:34.802237 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::complete_request() 0x1799440 complete_cb=0x7f04ba2b1240 > > pending 1 > > > 2015-10-31 08:56:34.802239 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() 0x1799440 rval 4096 read_buf 0x179a5e0 read_bl 0 > > > 2015-10-31 08:56:34.802243 7f04b14b7700 20 librbd::AioCompletion: > > AioCompletion::finalize() copied resulting 4096 bytes to 0x179a5e0 > > > 2015-10-31 08:56:34.802245 7f04b14b7700 20 librbd::AsyncOperation: > > 0x1799570 > > finish_op > > > 2015-10-31 08:56:34.804372 7f04bcbdc7c0 20 librbd: read 0x17896d0 off = > > 1073676288 len = 4096 > > > 2015-10-31 08:56:34.804383 7f04bcbdc7c0 20 librbd: aio_read 0x17896d0 > > completion 0x177c390 [1073676288,4096]2015-10-31 09:00:46.602936 > > 7f98ad11d7c0 1 -- :/0 messenger.start > > _______________________________________________ > ceph-users mailing list > ceph-users@xxxxxxxxxxxxxx > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com