| Summary: | Quota-build3: CLI crash while running "quota list" command | ||
|---|---|---|---|
| Product: | Red Hat Gluster Storage | Reporter: | shylesh <shmohan> |
| Component: | glusterfs | Assignee: | krishnan parthasarathi <kparthas> |
| Status: | CLOSED ERRATA | QA Contact: | shylesh <shmohan> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 2.1 | CC: | grajaiya, kparthas, nsathyan, rhs-bugs, surs, vbellur |
| Target Milestone: | --- | Keywords: | ZStream |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | glusterfs-3.4.0.34rhs | Doc Type: | Bug Fix |
| Doc Text: |
Previously, when volume quota list command was executed on a quota enabled volume, with quota limits configured on directories, the CLI may crash. Now, in this update, CLI doesn't crash when volume quota list command is issued on the same volume.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-11-27 15:34:07 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: | |
Verified on 3.4.0.34rhs-1.el6rhs.x86_64 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-1769.html |
Description of problem: While running "quota list" command on a volume , CLI crashed with SEGFAULT Version-Release number of selected component (if applicable): [root@gqac022 tmp]# rpm -qa| grep gluster glusterfs-libs-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-api-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-devel-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-geo-replication-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-api-devel-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-rdma-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-debuginfo-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-fuse-3.4.0.20rhsquota5-1.el6rhs.x86_64 glusterfs-server-3.4.0.20rhsquota5-1.el6rhs.x86_64 How reproducible: Not consistent Steps to Reproduce: 1.Created a 4 brick distribute volume ran the following series of commands 1404 gluster v quota qtest limit-usage / 1GB 1405 ll 1406 gluster v quota qtest list 1407 ls 1408 touch 1 1409 mv 2 1410 ls 1411 mv 1 2 1412 ll 1413 ls 1414 mkdir test 1415 ls 1416 gluster v quota qtest limit-usage ./test 500MB 1417 gluster v quota qtest limit-usage test 500MB 1418 gluster v quota qtest limit-usage /test 500MB 1419 gluster v quota qtest list 1420 gluster v quota qtest limit-usage /test 900MB 1421 gluster v quota qtest list 1422 gluster v quota qtest limit-usage /test 300MB 1423 gluster v quota qtest list 1424 cd test 1425 ls 1426 for i in {1..100}; do dd if=/dev/urandom of=$i bs=5M count=1; done 1427 du -sh . 1428 ls 1429 cd .. 1430 ls 1431 cp -R test new 1432 cp -R test new1 1433 cp -R test new2 1434 cp -R test new3 1435 du -sh . 1436 gluster v quota qtest list 1437 cp -R test / 1438 cp -R /test ./from-root 1439 cp -R /test new4 1440 cp -R test new4 1441 du -sh . 1442 cp -R new3 new4 1443 ls 1444 du -sh 2 1445 dd if=/dev/urandom of=2 bs=1M count=1 1446 ls 1447 rm -rf * 1448 gluster v quota qtest list 1449 ls 1450 mkdir test 1451 gluster v quota qtest limit-usage /test 300MB 1452 ls 1453 rm test 1454 rm -rf test 1455 gluster v quota qtest limit-usage /test 300MB 1456 touch test 1457 gluster v quota qtest limit-usage /test 300MB 1458 ls 1459 file test 1460 rm test 1461 gluster v quota qtest limit-usage / 2GBMB 1462 gluster v quota qtest limit-usage / 2GB 1463 gluster v quota qtest list CLI crashed with "segmentation fault" [root@gqac023 quota]# gluster v info Volume Name: qtest Type: Distribute Volume ID: d13096d5-2ed4-4ed1-a3b1-f4e9d46761e7 Status: Started Number of Bricks: 4 Transport-type: tcp Bricks: Brick1: gqac022.sbu.lab.eng.bos.redhat.com:/home/q1 Brick2: gqac023.sbu.lab.eng.bos.redhat.com:/home/q2 Brick3: gqac024.sbu.lab.eng.bos.redhat.com:/home/q3 Brick4: gqac025.sbu.lab.eng.bos.redhat.com:/home/q4 Options Reconfigured: features.quota: on bt === Core was generated by `gluster v quota qtest list'. Program terminated with signal 11, Segmentation fault. #0 print_quota_list_from_quotad (frame=0xe8ddd4, rsp_dict=0x0) at cli-rpc-ops.c:2473 2473 gd_rsp_dict = local->dict; Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6_4.2.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.10.3-10.el6_4.4.x86_64 libcom_err-1.41.12-14.el6_4.2.x86_64 libselinux-2.0.94-5.3.el6_4.1.x86_64 libxml2-2.7.6-12.el6_4.1.x86_64 ncurses-libs-5.7-3.20090208.el6.x86_64 openssl-1.0.0-27.el6_4.2.x86_64 readline-6.0-4.el6.x86_64 zlib-1.2.3-29.el6.x86_64 (gdb) bt #0 print_quota_list_from_quotad (frame=0xe8ddd4, rsp_dict=0x0) at cli-rpc-ops.c:2473 #1 0x000000000041c09e in cli_quotad_getlimit_cbk (req=<value optimized out>, iov=<value optimized out>, count=<value optimized out>, myframe=0xe8ddd4) at cli-rpc-ops.c:2592 #2 0x00007f3ac809af35 in rpc_clnt_handle_reply (clnt=0xec43b0, pollin=0xece680) at rpc-clnt.c:771 #3 0x00007f3ac809bf38 in rpc_clnt_notify (trans=<value optimized out>, mydata=0xec43e0, event=<value optimized out>, data=<value optimized out>) at rpc-clnt.c:896 #4 0x00007f3ac8097838 in rpc_transport_notify (this=<value optimized out>, event=<value optimized out>, data=<value optimized out>) at rpc-transport.c:499 #5 0x00007f3ac71bcbe6 in socket_event_poll_in (this=0xecd920) at socket.c:2119 #6 0x00007f3ac71be4fd in socket_event_handler (fd=<value optimized out>, idx=<value optimized out>, data=0xecd920, poll_in=1, poll_out=0, poll_err=0) at socket.c:2231 #7 0x00007f3ac8516eb7 in event_dispatch_epoll_handler (event_pool=0xe8beb0) at event-epoll.c:384 #8 event_dispatch_epoll (event_pool=0xe8beb0) at event-epoll.c:445 #9 0x00000000004093ce in main (argc=<value optimized out>, argv=<value optimized out>) at cli.c:665 (gdb) bt full #0 print_quota_list_from_quotad (frame=0xe8ddd4, rsp_dict=0x0) at cli-rpc-ops.c:2473 used_space = 0 avail = 0 limit = 0x0 used_str = 0x0 avail_str = 0x0 percent_str = '\000' <repeats 19 times> hl_str = 0x0 sl_final = 0x0 path = 0x0 default_sl = 0x0 ret = -1 gd_rsp_dict = 0x0 existing_limits = <value optimized out> __FUNCTION__ = "print_quota_list_from_quotad" #1 0x000000000041c09e in cli_quotad_getlimit_cbk (req=<value optimized out>, iov=<value optimized out>, count=<value optimized out>, myframe=0xe8ddd4) at cli-rpc-ops.c:2592 rsp = {op_ret = 0, op_errno = 2, op_errstr = 0xecfb70 "", dict = {dict_len = 0, dict_val = 0x0}} ret = 16 dict = 0x0 frame = 0xe8ddd4 __FUNCTION__ = "cli_quotad_getlimit_cbk" #2 0x00007f3ac809af35 in rpc_clnt_handle_reply (clnt=0xec43b0, pollin=0xece680) at rpc-clnt.c:771 conn = 0xec43e0 saved_frame = 0xecd16c ret = 0 req = 0xec451c xid = 2 __FUNCTION__ = "rpc_clnt_handle_reply" #3 0x00007f3ac809bf38 in rpc_clnt_notify (trans=<value optimized out>, mydata=0xec43e0, event=<value optimized out>, data=<value optimized out>) at rpc-clnt.c:896 conn = 0xec43e0 clnt = 0xec43b0 ret = -1 req_info = 0x0 pollin = <value optimized out> tv = {tv_sec = 0, tv_usec = <value optimized out>} #4 0x00007f3ac8097838 in rpc_transport_notify (this=<value optimized out>, event=<value optimized out>, data=<value optimized out>) ---Type <return> to continue, or q <return> to quit--- at rpc-transport.c:499 ret = -1 __FUNCTION__ = "rpc_transport_notify" #5 0x00007f3ac71bcbe6 in socket_event_poll_in (this=0xecd920) at socket.c:2119 ret = <value optimized out> pollin = 0xece680 #6 0x00007f3ac71be4fd in socket_event_handler (fd=<value optimized out>, idx=<value optimized out>, data=0xecd920, poll_in=1, poll_out=0, poll_err=0) at socket.c:2231 this = 0xecd920 priv = 0xece450 ret = 0 __FUNCTION__ = "socket_event_handler" #7 0x00007f3ac8516eb7 in event_dispatch_epoll_handler (event_pool=0xe8beb0) at event-epoll.c:384 data = <value optimized out> idx = <value optimized out> ret = -1 event_data = 0xed0b04 handler = <value optimized out> #8 event_dispatch_epoll (event_pool=0xe8beb0) at event-epoll.c:445 events = 0xed0b00 i = <value optimized out> ret = -1 __FUNCTION__ = "event_dispatch_epoll" #9 0x00000000004093ce in main (argc=<value optimized out>, argv=<value optimized out>) at cli.c:665 state = {argc = 4, argv = 0x7fff95dd8160, debug = 0 '\000', ctx = 0xe70010, tree = {state = 0x7fff95dd7f70, root = {tree = 0x7fff95dd7f90, word = 0x0, filler = 0, match = 0, cbkfn = 0, desc = 0x0, pattern = 0x0, nextwords_cnt = 8, nextwords = 0xed0220}}, input = 139890412594944, prompt = 0x0, rl_enabled = 0, rl_async = 0, rl_processing = 0, matches = 0x0, matchesp = 0x0, remote_host = 0x431510 "localhost", remote_port = 0, mode = 0, await_connected = 120, log_file = 0x0, log_level = 4294967295} ret = 0 ctx = 0xe70010