[Gluster-users] [Gluster-devel] GlusterFS FUSE client hangs on rsyncing lots of file

baul jianguo roidinev at gmail.com
Mon Jan 25 07:33:41 UTC 2016


3.5.7 also hangs.only the flush op hung. Yes,off the
performance.client-io-threads ,no hang.

The hang does not relate the client kernel version.

One client statdump about flush op,any abnormal?

[global.callpool.stack.12]

uid=0

gid=0

pid=14432

unique=16336007098

lk-owner=77cb199aa36f3641

op=FLUSH

type=1

cnt=6



[global.callpool.stack.12.frame.1]

ref_count=1

translator=fuse

complete=0



[global.callpool.stack.12.frame.2]

ref_count=0

translator=datavolume-write-behind

complete=0

parent=datavolume-read-ahead

wind_from=ra_flush

wind_to=FIRST_CHILD (this)->fops->flush

unwind_to=ra_flush_cbk



[global.callpool.stack.12.frame.3]

ref_count=1

translator=datavolume-read-ahead

complete=0

parent=datavolume-open-behind

wind_from=default_flush_resume

wind_to=FIRST_CHILD(this)->fops->flush

unwind_to=default_flush_cbk



[global.callpool.stack.12.frame.4]

ref_count=1

translator=datavolume-open-behind

complete=0

parent=datavolume-io-threads

wind_from=iot_flush_wrapper

wind_to=FIRST_CHILD(this)->fops->flush

unwind_to=iot_flush_cbk



[global.callpool.stack.12.frame.5]

ref_count=1

translator=datavolume-io-threads

complete=0

parent=datavolume

wind_from=io_stats_flush

wind_to=FIRST_CHILD(this)->fops->flush

unwind_to=io_stats_flush_cbk



[global.callpool.stack.12.frame.6]

ref_count=1

translator=datavolume

complete=0

parent=fuse

wind_from=fuse_flush_resume

wind_to=xl->fops->flush

unwind_to=fuse_err_cbk



On Sun, Jan 24, 2016 at 5:35 AM, Oleksandr Natalenko
<oleksandr at natalenko.name> wrote:
> With "performance.client-io-threads" set to "off" no hangs occurred in 3
> rsync/rm rounds. Could that be some fuse-bridge lock race? Will bring that
> option to "on" back again and try to get full statedump.
>
> On четвер, 21 січня 2016 р. 14:54:47 EET Raghavendra G wrote:
>> On Thu, Jan 21, 2016 at 10:49 AM, Pranith Kumar Karampuri <
>>
>> pkarampu at redhat.com> wrote:
>> > On 01/18/2016 02:28 PM, Oleksandr Natalenko wrote:
>> >> XFS. Server side works OK, I'm able to mount volume again. Brick is 30%
>> >> full.
>> >
>> > Oleksandr,
>> >
>> >       Will it be possible to get the statedump of the client, bricks
>> >
>> > output next time it happens?
>> >
>> > https://github.com/gluster/glusterfs/blob/master/doc/debugging/statedump.m
>> > d#how-to-generate-statedump
>> We also need to dump inode information. To do that you've to add "all=yes"
>> to /var/run/gluster/glusterdump.options before you issue commands to get
>> statedump.
>>
>> > Pranith
>> >
>> >> On понеділок, 18 січня 2016 р. 15:07:18 EET baul jianguo wrote:
>> >>> What is your brick file system? and the glusterfsd process and all
>> >>> thread status?
>> >>> I met same issue when client app such as rsync stay in D status,and
>> >>> the brick process and relate thread also be in the D status.
>> >>> And the brick dev disk util is 100% .
>> >>>
>> >>> On Sun, Jan 17, 2016 at 6:13 AM, Oleksandr Natalenko
>> >>>
>> >>> <oleksandr at natalenko.name> wrote:
>> >>>> Wrong assumption, rsync hung again.
>> >>>>
>> >>>> On субота, 16 січня 2016 р. 22:53:04 EET Oleksandr Natalenko wrote:
>> >>>>> One possible reason:
>> >>>>>
>> >>>>> cluster.lookup-optimize: on
>> >>>>> cluster.readdir-optimize: on
>> >>>>>
>> >>>>> I've disabled both optimizations, and at least as of now rsync still
>> >>>>> does
>> >>>>> its job with no issues. I would like to find out what option causes
>> >>>>> such
>> >>>>> a
>> >>>>> behavior and why. Will test more.
>> >>>>>
>> >>>>> On пʼятниця, 15 січня 2016 р. 16:09:51 EET Oleksandr Natalenko wrote:
>> >>>>>> Another observation: if rsyncing is resumed after hang, rsync itself
>> >>>>>> hangs a lot faster because it does stat of already copied files. So,
>> >>>>>> the
>> >>>>>> reason may be not writing itself, but massive stat on GlusterFS
>> >>>>>> volume
>> >>>>>> as well.
>> >>>>>>
>> >>>>>> 15.01.2016 09:40, Oleksandr Natalenko написав:
>> >>>>>>> While doing rsync over millions of files from ordinary partition to
>> >>>>>>> GlusterFS volume, just after approx. first 2 million rsync hang
>> >>>>>>> happens, and the following info appears in dmesg:
>> >>>>>>>
>> >>>>>>> ===
>> >>>>>>> [17075038.924481] INFO: task rsync:10310 blocked for more than 120
>> >>>>>>> seconds.
>> >>>>>>> [17075038.931948] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> >>>>>>> disables this message.
>> >>>>>>> [17075038.940748] rsync           D ffff88207fc13680     0 10310
>> >>>>>>> 10309 0x00000080
>> >>>>>>> [17075038.940752]  ffff8809c578be18 0000000000000086
>> >>>>>>> ffff8809c578bfd8
>> >>>>>>> 0000000000013680
>> >>>>>>> [17075038.940756]  ffff8809c578bfd8 0000000000013680
>> >>>>>>> ffff880310cbe660
>> >>>>>>> ffff881159d16a30
>> >>>>>>> [17075038.940759]  ffff881e3aa25800 ffff8809c578be48
>> >>>>>>> ffff881159d16b10
>> >>>>>>> ffff88087d553980
>> >>>>>>> [17075038.940762] Call Trace:
>> >>>>>>> [17075038.940770]  [<ffffffff8160a1d9>] schedule+0x29/0x70
>> >>>>>>> [17075038.940797]  [<ffffffffa023a53d>]
>> >>>>>>> __fuse_request_send+0x13d/0x2c0
>> >>>>>>> [fuse]
>> >>>>>>> [17075038.940801]  [<ffffffffa023db30>] ?
>> >>>>>>> fuse_get_req_nofail_nopages+0xc0/0x1e0 [fuse]
>> >>>>>>> [17075038.940805]  [<ffffffff81098350>] ? wake_up_bit+0x30/0x30
>> >>>>>>> [17075038.940809]  [<ffffffffa023a6d2>] fuse_request_send+0x12/0x20
>> >>>>>>> [fuse]
>> >>>>>>> [17075038.940813]  [<ffffffffa024382f>] fuse_flush+0xff/0x150 [fuse]
>> >>>>>>> [17075038.940817]  [<ffffffff811c45c4>] filp_close+0x34/0x80
>> >>>>>>> [17075038.940821]  [<ffffffff811e4ed8>] __close_fd+0x78/0xa0
>> >>>>>>> [17075038.940824]  [<ffffffff811c6103>] SyS_close+0x23/0x50
>> >>>>>>> [17075038.940828]  [<ffffffff81614de9>]
>> >>>>>>> system_call_fastpath+0x16/0x1b
>> >>>>>>> ===
>> >>>>>>>
>> >>>>>>> rsync blocks in D state, and to kill it, I have to do umount --lazy
>> >>>>>>> on
>> >>>>>>> GlusterFS mountpoint, and then kill corresponding client glusterfs
>> >>>>>>> process. Then rsync exits.
>> >>>>>>>
>> >>>>>>> Here is GlusterFS volume info:
>> >>>>>>>
>> >>>>>>> ===
>> >>>>>>> Volume Name: asterisk_records
>> >>>>>>> Type: Distributed-Replicate
>> >>>>>>> Volume ID: dc1fe561-fa3a-4f2e-8330-ec7e52c75ba4
>> >>>>>>> Status: Started
>> >>>>>>> Number of Bricks: 3 x 2 = 6
>> >>>>>>> Transport-type: tcp
>> >>>>>>> Bricks:
>> >>>>>>> Brick1:
>> >>>>>>> server1:/bricks/10_megaraid_0_3_9_x_0_4_3_hdd_r1_nolvm_hdd_storage_0
>> >>>>>>> 1
>> >>>>>>> /as
>> >>>>>>> te
>> >>>>>>> risk/records Brick2:
>> >>>>>>> server2:/bricks/10_megaraid_8_5_14_x_8_6_16_hdd_r1_nolvm_hdd_storage
>> >>>>>>> _
>> >>>>>>> 01/
>> >>>>>>> as
>> >>>>>>> terisk/records Brick3:
>> >>>>>>> server1:/bricks/11_megaraid_0_5_4_x_0_6_5_hdd_r1_nolvm_hdd_storage_0
>> >>>>>>> 2
>> >>>>>>> /as
>> >>>>>>> te
>> >>>>>>> risk/records Brick4:
>> >>>>>>> server2:/bricks/11_megaraid_8_7_15_x_8_8_20_hdd_r1_nolvm_hdd_storage
>> >>>>>>> _
>> >>>>>>> 02/
>> >>>>>>> as
>> >>>>>>> terisk/records Brick5:
>> >>>>>>> server1:/bricks/12_megaraid_0_7_6_x_0_13_14_hdd_r1_nolvm_hdd_storage
>> >>>>>>> _
>> >>>>>>> 03/
>> >>>>>>> as
>> >>>>>>> terisk/records Brick6:
>> >>>>>>> server2:/bricks/12_megaraid_8_9_19_x_8_13_24_hdd_r1_nolvm_hdd_storag
>> >>>>>>> e
>> >>>>>>> _03
>> >>>>>>> /a
>> >>>>>>> sterisk/records Options Reconfigured:
>> >>>>>>> cluster.lookup-optimize: on
>> >>>>>>> cluster.readdir-optimize: on
>> >>>>>>> client.event-threads: 2
>> >>>>>>> network.inode-lru-limit: 4096
>> >>>>>>> server.event-threads: 4
>> >>>>>>> performance.client-io-threads: on
>> >>>>>>> storage.linux-aio: on
>> >>>>>>> performance.write-behind-window-size: 4194304
>> >>>>>>> performance.stat-prefetch: on
>> >>>>>>> performance.quick-read: on
>> >>>>>>> performance.read-ahead: on
>> >>>>>>> performance.flush-behind: on
>> >>>>>>> performance.write-behind: on
>> >>>>>>> performance.io-thread-count: 2
>> >>>>>>> performance.cache-max-file-size: 1048576
>> >>>>>>> performance.cache-size: 33554432
>> >>>>>>> features.cache-invalidation: on
>> >>>>>>> performance.readdir-ahead: on
>> >>>>>>> ===
>> >>>>>>>
>> >>>>>>> The issue reproduces each time I rsync such an amount of files.
>> >>>>>>>
>> >>>>>>> How could I debug this issue better?
>> >>>>>>> _______________________________________________
>> >>>>>>> Gluster-users mailing list
>> >>>>>>> Gluster-users at gluster.org
>> >>>>>>> http://www.gluster.org/mailman/listinfo/gluster-users
>> >>>>>>
>> >>>>>> _______________________________________________
>> >>>>>> Gluster-devel mailing list
>> >>>>>> Gluster-devel at gluster.org
>> >>>>>> http://www.gluster.org/mailman/listinfo/gluster-devel
>> >>>>>
>> >>>>> _______________________________________________
>> >>>>> Gluster-devel mailing list
>> >>>>> Gluster-devel at gluster.org
>> >>>>> http://www.gluster.org/mailman/listinfo/gluster-devel
>> >>>>
>> >>>> _______________________________________________
>> >>>> Gluster-devel mailing list
>> >>>> Gluster-devel at gluster.org
>> >>>> http://www.gluster.org/mailman/listinfo/gluster-devel
>> >>
>> >> _______________________________________________
>> >> Gluster-users mailing list
>> >> Gluster-users at gluster.org
>> >> http://www.gluster.org/mailman/listinfo/gluster-users
>> >
>> > _______________________________________________
>> > Gluster-devel mailing list
>> > Gluster-devel at gluster.org
>> > http://www.gluster.org/mailman/listinfo/gluster-devel
>
>


More information about the Gluster-users mailing list