Bug 1221025
Summary: | Glusterd crashes after enabling quota limit on a distrep volume. | ||||||
---|---|---|---|---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | Triveni Rao <trao> | ||||
Component: | quota | Assignee: | Satish Mohan <smohan> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | |||||
Severity: | urgent | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | mainline | CC: | akhakhar, ashah, bugs, kaushal, sashinde, smohan | ||||
Target Milestone: | --- | Keywords: | Regression, TestBlocker | ||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | glusterfs-3.8rc2 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | |||||||
: | 1224152 (view as bug list) | Environment: | |||||
Last Closed: | 2016-06-16 13:00:40 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 1224152 | ||||||
Attachments: |
|
Description
Triveni Rao
2015-05-13 07:26:01 UTC
Triveni, could you provide the core files for this? Created attachment 1024977 [details]
core file attached
bt for for this bug (gdb) bt #0 0x00007f56a2177625 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007f56a2178e05 in abort () at abort.c:92 #2 0x00007f56a21b5537 in __libc_message (do_abort=2, fmt=0x7f56a229c5ef "*** %s ***: %s terminated\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:198 #3 0x00007f56a2247527 in __fortify_fail (msg=0x7f56a229c595 "buffer overflow detected") at fortify_fail.c:32 #4 0x00007f56a2245410 in __chk_fail () at chk_fail.c:29 #5 0x00007f56a22458e2 in __read_chk (fd=<value optimized out>, buf=<value optimized out>, nbytes=<value optimized out>, buflen=<value optimized out>) at read_chk.c:31 #6 0x00007f56982599de in read (volinfo=0x7f56900077b0, path=0x7f5680001720 "/", gfid_str=0x7f5680001440 "00000000-0000-0000-0000-", '0' <repeats 11 times>, "1", opcode=3, op_errstr=0x7f568c404ab0) at /usr/include/bits/unistd.h:43 #7 glusterd_store_quota_config (volinfo=0x7f56900077b0, path=0x7f5680001720 "/", gfid_str=0x7f5680001440 "00000000-0000-0000-0000-", '0' <repeats 11 times>, "1", opcode=3, op_errstr=0x7f568c404ab0) at glusterd-quota.c:872 #8 0x00007f569825a9f8 in glusterd_quota_limit_usage (volinfo=0x7f56900077b0, dict=0x7f56a0d8fb14, opcode=3, op_errstr=0x7f568c404ab0) at glusterd-quota.c:1077 #9 0x00007f569825bbdf in glusterd_op_quota (dict=0x7f56a0d8fb14, op_errstr=0x7f568c404ab0, rsp_dict=0x7f56a0d8fc2c) at glusterd-quota.c:1329 #10 0x00007f5698210c83 in glusterd_op_commit_perform (op=GD_OP_QUOTA, dict=0x7f56a0d8fb14, op_errstr=0x7f568c404ab0, rsp_dict=0x7f56a0d8fc2c) at glusterd-op-sm.c:5116 #11 0x00007f5698280aa8 in gd_commit_op_phase (op=GD_OP_QUOTA, op_ctx=0x7f56a0d8d6fc, req_dict=0x7f56a0d8fb14, op_errstr=0x7f568c404ab0, txn_opinfo=0x7f568c404a20) at glusterd-syncop.c:1337 #12 0x00007f5698283f2d in gd_sync_task_begin (op_ctx=0x7f56a0d8d6fc, req=0x1f978cc) at glusterd-syncop.c:1826 #13 0x00007f569828411b in glusterd_op_begin_synctask (req=0x1f978cc, op=<value optimized out>, dict=0x7f56a0d8d6fc) at glusterd-syncop.c:1883 #14 0x00007f5698259682 in __glusterd_handle_quota (req=0x1f978cc) at glusterd-quota.c:171 #15 0x00007f56981e8c7f in glusterd_big_locked_handler (req=0x1f978cc, actor_fn=0x7f5698259380 <__glusterd_handle_quota>) at glusterd-handler.c:83 #16 0x00007f56a35925c2 in synctask_wrap (old_task=<value optimized out>) at syncop.c:375 #17 0x00007f56a21888f0 in ?? () from /lib64/libc-2.12.so #18 0x0000000000000000 in ?? () int glusterd_store_quota_config (glusterd_volinfo_t *volinfo, char *path, char *gfid_str, int opcode, char **op_errstr) { int ret = -1; int fd = -1; int conf_fd = -1; size_t entry_sz = 139264; ssize_t bytes_read = 0; size_t bytes_to_write = 0; unsigned char buf[131072] = {0,}; uuid_t gfid = {0,}; xlator_t *this = NULL; gf_boolean_t found = _gf_false; gf_boolean_t modified = _gf_false; gf_boolean_t is_file_empty = _gf_false; gf_boolean_t is_first_read = _gf_true; glusterd_conf_t *conf = NULL; float version = 0.0f; char type = 0; .............. .......... bytes_read = read (conf_fd, (void*)&buf, entry_sz); the crash was happening in read call because of buf size < entry_sz REVIEW: http://review.gluster.org/10766 (quota/glusterd: on read call number of byte read should equal to buffer length) posted (#1) for review on master by Gaurav Kumar Garg (ggarg) REVIEW: http://review.gluster.org/10767 (quota/glusterd: on read call number of byte read should equal to buffer length) posted (#1) for review on release-3.7 by Gaurav Kumar Garg (ggarg) Saw a similar crash while running BVT on 3.7beta2 build Backtrace of the core: (gdb) bt #0 0x0000003d4de32625 in raise () from /lib64/libc.so.6 #1 0x0000003d4de33e05 in abort () from /lib64/libc.so.6 #2 0x0000003d4de70537 in __libc_message () from /lib64/libc.so.6 #3 0x0000003d4df02697 in __fortify_fail () from /lib64/libc.so.6 #4 0x0000003d4df00580 in __chk_fail () from /lib64/libc.so.6 #5 0x0000003d4df00a52 in __read_chk () from /lib64/libc.so.6 #6 0x00007f51b02e09de in glusterd_store_quota_config () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #7 0x00007f51b02e19f8 in glusterd_quota_limit_usage () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #8 0x00007f51b02e2bdf in glusterd_op_quota () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #9 0x00007f51b0297c83 in glusterd_op_commit_perform () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #10 0x00007f51b0307aa8 in gd_commit_op_phase () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #11 0x00007f51b030af2d in gd_sync_task_begin () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #12 0x00007f51b030b11b in glusterd_op_begin_synctask () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #13 0x00007f51b02e0682 in __glusterd_handle_quota () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #14 0x00007f51b026fc7f in glusterd_big_locked_handler () from /usr/lib64/glusterfs/3.7.0beta2/xlator/mgmt/glusterd.so #15 0x0000003d4fa655c2 in synctask_wrap () from /usr/lib64/libglusterfs.so.0 #16 0x0000003d4de438f0 in ?? () from /lib64/libc.so.6 #17 0x0000000000000000 in ?? () sosreport and core is available at : http://rhsqe-repo.lab.eng.blr.redhat.com/sosreports/1221025/ This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report. glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/ [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user |