Hello,
I wanted to report that I had this morning a similar issue on another server
where a few PHP-FPM processes get blocked on different GlusterFS volume mounted
through a FUSE mount. This GlusterFS volume has no quota enabled so it might
not be quota related after all.
Here would be the Linux kernel stack trace:
[Sun Sep 2 06:47:47 2018] INFO: task php5-fpm:25880 blocked for more than 120
seconds.
[Sun Sep 2 06:47:47 2018] Not tainted 3.16.0-4-amd64 #1
[Sun Sep 2 06:47:47 2018] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[Sun Sep 2 06:47:47 2018] php5-fpm D ffff88017ee12f40 0 25880
1 0x00000004
[Sun Sep 2 06:47:47 2018] ffff880101688b60 0000000000000282 0000000000012f40
ffff880059ca3fd8
[Sun Sep 2 06:47:47 2018] 0000000000012f40 ffff880101688b60 ffff8801093b51b0
ffff8801067ec800
[Sun Sep 2 06:47:47 2018] ffff880059ca3cc0 ffff8801093b5290 ffff8801093b51b0
ffff880059ca3e80
[Sun Sep 2 06:47:47 2018] Call Trace:
[Sun Sep 2 06:47:47 2018] [<ffffffffa00cd50d>] ?
__fuse_request_send+0xbd/0x270 [fuse]
[Sun Sep 2 06:47:47 2018] [<ffffffff810a9610>] ?
prepare_to_wait_event+0xf0/0xf0
[Sun Sep 2 06:47:47 2018] [<ffffffffa00d6990>] ? fuse_send_write+0xd0/0x100
[fuse]
[Sun Sep 2 06:47:47 2018] [<ffffffffa00d82af>] ?
fuse_perform_write+0x26f/0x4b0 [fuse]
[Sun Sep 2 06:47:47 2018] [<ffffffffa00d86cd>] ?
fuse_file_write_iter+0x1dd/0x2b0 [fuse]
[Sun Sep 2 06:47:47 2018] [<ffffffff811aa7f4>] ? new_sync_write+0x74/0xa0
[Sun Sep 2 06:47:47 2018] [<ffffffff811aaf32>] ? vfs_write+0xb2/0x1f0
[Sun Sep 2 06:47:47 2018] [<ffffffff811aadfd>] ? vfs_read+0xed/0x170
[Sun Sep 2 06:47:47 2018] [<ffffffff811aba72>] ? SyS_write+0x42/0xa0
[Sun Sep 2 06:47:47 2018] [<ffffffff811aaa8e>] ? SyS_lseek+0x7e/0xa0
[Sun Sep 2 06:47:47 2018] [<ffffffff8151a48d>] ?
system_call_fast_compare_end+0x10/0x15
Did anyone already have time to have a look at the statedump file I sent around
3 weeks ago?
I never saw this type of problems in the past and it started to appear since I
upgraded to GluterFS 3.12.12.
Best regards,
Mabi
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On August 15, 2018 9:21 AM, mabi <m...@protonmail.ch> wrote:
> Great, you will then find attached here the statedump of the client using the
> FUSE glusterfs mount right after two processes have blocked.
>
> Two notes here regarding the "path=" in this statedump file:
> - I have renamed all the "path=" which has the problematic directory as
> "path=PROBLEMATIC_DIRECTORY_HERE
> - All the other "path=" I have renamed them to "path=REMOVED_FOR_PRIVACY".
>
> Note also that funnily enough the number of "path=" for that problematic
> directory sums up to exactly 5000 entries. Coincidence or hint to the problem
> maybe?
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On August 15, 2018 5:21 AM, Raghavendra Gowdappa <rgowd...@redhat.com> wrote:
>
>> On Tue, Aug 14, 2018 at 7:23 PM, mabi <m...@protonmail.ch> wrote:
>>
>>> Bad news: the process blocked happened again this time with another
>>> directory of another user which is NOT over his quota but which also has
>>> quota enabled.
>>>
>>> The symptoms on the Linux side are the same:
>>>
>>> [Tue Aug 14 15:30:33 2018] INFO: task php5-fpm:14773 blocked for more than
>>> 120 seconds.
>>> [Tue Aug 14 15:30:33 2018] Not tainted 3.16.0-4-amd64 #1
>>> [Tue Aug 14 15:30:33 2018] "echo 0 >
>>> /proc/sys/kernel/hung_task_timeout_secs" disables this message.
>>> [Tue Aug 14 15:30:33 2018] php5-fpm D ffff8801fea13200 0 14773
>>> 729 0x00000000
>>> [Tue Aug 14 15:30:33 2018] ffff880100bbe0d0 0000000000000282
>>> 0000000000013200 ffff880129bcffd8
>>> [Tue Aug 14 15:30:33 2018] 0000000000013200 ffff880100bbe0d0
>>> ffff880153ed0d68 ffff880129bcfee0
>>> [Tue Aug 14 15:30:33 2018] ffff880153ed0d6c ffff880100bbe0d0
>>> 00000000ffffffff ffff880153ed0d70
>>> [Tue Aug 14 15:30:33 2018] Call Trace:
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff81522935>] ?
>>> schedule_preempt_disabled+0x25/0x70
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff815243d3>] ?
>>> __mutex_lock_slowpath+0xd3/0x1d0
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff811d7a93>] ? write_inode_now+0x93/0xc0
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff815244eb>] ? mutex_lock+0x1b/0x2a
>>> [Tue Aug 14 15:30:33 2018] [<ffffffffa00df69f>] ? fuse_flush+0x8f/0x1e0
>>> [fuse]
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff811af393>] ? vfs_read+0x93/0x170
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff811ad14a>] ? filp_close+0x2a/0x70
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff811ad1af>] ? SyS_close+0x1f/0x50
>>> [Tue Aug 14 15:30:33 2018] [<ffffffff81525d0d>] ?
>>> system_call_fast_compare_end+0x10/0x15
>>>
>>> and if I check this process it has state "D" which is "D = uninterruptible
>>> sleep".
>>>
>>> Now I also managed to take a statedump file as recommended but I see in its
>>> content under the "[io-cache.inode]" a "path=" which I would need to remove
>>> as it contains filenames for privacy reasons. Can I remove every "path="
>>> line and still send you the statedump file for analysis?
>>
>> Yes. Removing path is fine and statedumps will still be useful for debugging
>> the issue.
>>
>>> Thank you.
>>>
>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>> On August 14, 2018 10:48 AM, Nithya Balachandran <nbala...@redhat.com>
>>> wrote:
>>>
>>>> Thanks for letting us know. Sanoj, can you take a look at this?
>>>>
>>>> Thanks.
>>>> Nithya
>>>>
>>>> On 14 August 2018 at 13:58, mabi <m...@protonmail.ch> wrote:
>>>>
>>>>> As you mentioned after creating the /var/run/gluster directory I got a
>>>>> statedump file in there.
>>>>>
>>>>> As a workaround I have now removed the quota for this specific directory
>>>>> and as it is a production server I can currently not "play" with it by
>>>>> adding the quota back and having the same problem as it requires me to
>>>>> reboot the server with downtime...
>>>>>
>>>>> But I can confirm that by removing the quota from that directory, the
>>>>> problem is gone (no more blocking processes such as "ls") so there must
>>>>> be an issue or bug with the quota part of gluster.
>>>>>
>>>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>>> On August 10, 2018 4:19 PM, Nithya Balachandran <nbala...@redhat.com>
>>>>> wrote:
>>>>>
>>>>>> On 9 August 2018 at 19:54, mabi <m...@protonmail.ch> wrote:
>>>>>>
>>>>>>> Thanks for the documentation. On my client using FUSE mount I found the
>>>>>>> PID by using ps (output below):
>>>>>>>
>>>>>>> root 456 1 4 14:17 ? 00:05:15 /usr/sbin/glusterfs
>>>>>>> --volfile-server=gfs1a --volfile-id=myvol-private /mnt/myvol-private
>>>>>>>
>>>>>>> Then I ran the following command
>>>>>>>
>>>>>>> sudo kill -USR1 456
>>>>>>>
>>>>>>> but now I can't find where the files are stored. Are these supposed to
>>>>>>> be stored on the client directly? I checked /var/run/gluster and
>>>>>>> /var/log/gluster but could not see anything and /var/log/gluster does
>>>>>>> not even exist on the client.
>>>>>>
>>>>>> They are usually created in /var/run/gluster. You will need to create
>>>>>> the directory on the client if it does not exist.
>>>>>>
>>>>>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>>>>> On August 9, 2018 3:59 PM, Raghavendra Gowdappa <rgowd...@redhat.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> On Thu, Aug 9, 2018 at 6:47 PM, mabi <m...@protonmail.ch> wrote:
>>>>>>>>
>>>>>>>>> Hi Nithya,
>>>>>>>>>
>>>>>>>>> Thanks for the fast answer. Here the additional info:
>>>>>>>>>
>>>>>>>>> 1. gluster volume info
>>>>>>>>>
>>>>>>>>> Volume Name: myvol-private
>>>>>>>>> Type: Replicate
>>>>>>>>> Volume ID: e7a40a1b-45c9-4d3c-bb19-0c59b4eceec5
>>>>>>>>> Status: Started
>>>>>>>>> Snapshot Count: 0
>>>>>>>>> Number of Bricks: 1 x (2 + 1) = 3
>>>>>>>>> Transport-type: tcp
>>>>>>>>> Bricks:
>>>>>>>>> Brick1: gfs1a:/data/myvol-private/brick
>>>>>>>>> Brick2: gfs1b:/data/myvol-private/brick
>>>>>>>>> Brick3: gfs1c:/srv/glusterfs/myvol-private/brick (arbiter)
>>>>>>>>> Options Reconfigured:
>>>>>>>>> features.default-soft-limit: 95%
>>>>>>>>> transport.address-family: inet
>>>>>>>>> features.quota-deem-statfs: on
>>>>>>>>> features.inode-quota: on
>>>>>>>>> features.quota: on
>>>>>>>>> nfs.disable: on
>>>>>>>>> performance.readdir-ahead: on
>>>>>>>>> client.event-threads: 4
>>>>>>>>> server.event-threads: 4
>>>>>>>>> auth.allow: 192.168.100.92
>>>>>>>>>
>>>>>>>>> 2. Sorry I have no clue how to take a "statedump" of a process on
>>>>>>>>> Linux. Which command should I use for that? and which process would
>>>>>>>>> you like, the blocked process (for example "ls")?
>>>>>>>>
>>>>>>>> Statedumps are gluster specific. Please refer to
>>>>>>>> https://docs.gluster.org/en/v3/Troubleshooting/statedump/ for
>>>>>>>> instructions.
>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> M.
>>>>>>>>>
>>>>>>>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>>>>>>> On August 9, 2018 3:10 PM, Nithya Balachandran <nbala...@redhat.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Please provide the following:
>>>>>>>>>>
>>>>>>>>>> - gluster volume info
>>>>>>>>>> - statedump of the fuse process when it hangs
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Nithya
>>>>>>>>>>
>>>>>>>>>> On 9 August 2018 at 18:24, mabi <m...@protonmail.ch> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> I recently upgraded my GlusterFS replica 2+1 (aribter) to version
>>>>>>>>>>> 3.12.12 and now I see a weird behaviour on my client (using FUSE
>>>>>>>>>>> mount) where I have processes (PHP 5.6 FPM) trying to access a
>>>>>>>>>>> specific directory and then the process blocks. I can't kill the
>>>>>>>>>>> process either, not even with kill -9. I need to reboot the machine
>>>>>>>>>>> in order to get rid of these blocked processes.
>>>>>>>>>>>
>>>>>>>>>>> This directory has one particularity compared to the other
>>>>>>>>>>> directories it is that it has reached it's quota soft-limit as you
>>>>>>>>>>> can see here in the output of gluster volume quota list:
>>>>>>>>>>>
>>>>>>>>>>> Path Hard-limit Soft-limit
>>>>>>>>>>> Used Available Soft-limit exceeded? Hard-limit exceeded?
>>>>>>>>>>> -------------------------------------------------------------------------------------------------------------------------------
>>>>>>>>>>> /directory 100.0GB 80%(80.0GB)
>>>>>>>>>>> 90.5GB 9.5GB Yes No
>>>>>>>>>>>
>>>>>>>>>>> That does not mean that it is the quota's fault but it might be a
>>>>>>>>>>> hint where to start looking for... And by the way can someone
>>>>>>>>>>> explain me what the soft-limit does? or does it not do anything
>>>>>>>>>>> special?
>>>>>>>>>>>
>>>>>>>>>>> Here is an the linux stack of a blocking process on that directory
>>>>>>>>>>> which happened with a simple "ls -la":
>>>>>>>>>>>
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] INFO: task ls:2272 blocked for more than
>>>>>>>>>>> 120 seconds.
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] Not tainted 3.16.0-4-amd64 #1
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] "echo 0 >
>>>>>>>>>>> /proc/sys/kernel/hung_task_timeout_secs" disables this message.
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] ls D ffff88017ef93200 0
>>>>>>>>>>> 2272 2268 0x00000004
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] ffff88017653f490 0000000000000286
>>>>>>>>>>> 0000000000013200 ffff880174d7bfd8
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] 0000000000013200 ffff88017653f490
>>>>>>>>>>> ffff8800eeb3d5f0 ffff8800fefac800
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] ffff880174d7bbe0 ffff8800eeb3d6d0
>>>>>>>>>>> ffff8800fefac800 ffff8800ffe1e1c0
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] Call Trace:
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffffa00dc50d>] ?
>>>>>>>>>>> __fuse_request_send+0xbd/0x270 [fuse]
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff810abce0>] ?
>>>>>>>>>>> prepare_to_wait_event+0xf0/0xf0
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffffa00e0791>] ?
>>>>>>>>>>> fuse_dentry_revalidate+0x181/0x300 [fuse]
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811b944e>] ?
>>>>>>>>>>> lookup_fast+0x25e/0x2b0
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811bacc5>] ?
>>>>>>>>>>> path_lookupat+0x155/0x780
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff81195715>] ?
>>>>>>>>>>> kmem_cache_alloc+0x75/0x480
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffffa00dfca9>] ?
>>>>>>>>>>> fuse_getxattr+0xe9/0x150 [fuse]
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811bb316>] ?
>>>>>>>>>>> filename_lookup+0x26/0xc0
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811bf594>] ?
>>>>>>>>>>> user_path_at_empty+0x54/0x90
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff81193e08>] ?
>>>>>>>>>>> kmem_cache_free+0xd8/0x210
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811bf59f>] ?
>>>>>>>>>>> user_path_at_empty+0x5f/0x90
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811b3d46>] ?
>>>>>>>>>>> vfs_fstatat+0x46/0x90
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811b421d>] ?
>>>>>>>>>>> SYSC_newlstat+0x1d/0x40
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff811d34b8>] ?
>>>>>>>>>>> SyS_lgetxattr+0x58/0x80
>>>>>>>>>>> [Thu Aug 9 14:21:07 2018] [<ffffffff81525d0d>] ?
>>>>>>>>>>> system_call_fast_compare_end+0x10/0x15
>>>>>>>>>>>
>>>>>>>>>>> My 3 gluster nodes are all Debian 9 and my client Debian 8.
>>>>>>>>>>>
>>>>>>>>>>> Let me know if you need more information.
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>> Mabi
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Gluster-users mailing list
>>>>>>>>>>> Gluster-users@gluster.org
>>>>>>>>>>> https://lists.gluster.org/mailman/listinfo/gluster-users
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Gluster-users mailing list
>>>>>>>>> Gluster-users@gluster.org
>>>>>>>>> https://lists.gluster.org/mailman/listinfo/gluster-users
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Gluster-users mailing list
>>>>>>> Gluster-users@gluster.org
>>>>>>> https://lists.gluster.org/mailman/listinfo/gluster-users
>>>
>>> _______________________________________________
>>> Gluster-users mailing list
>>> Gluster-users@gluster.org
>>> https://lists.gluster.org/mailman/listinfo/gluster-users
_______________________________________________
Gluster-users mailing list
Gluster-users@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-users