Bug 1001489 - Quota-build3: CLI crash while running "quota list" command
Quota-build3: CLI crash while running "quota list" command
Status: CLOSED ERRATA
Product: Red Hat Gluster Storage
Classification: Red Hat
Component: glusterfs (Show other bugs)
2.1
Unspecified Unspecified
high Severity high
: ---
: ---
Assigned To: krishnan parthasarathi
shylesh
: ZStream
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-08-27 03:16 EDT by shylesh
Modified: 2015-11-03 18:05 EST (History)
6 users (show)

See Also:
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 10:34:07 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description shylesh 2013-08-27 03:16:45 EDT
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
Comment 4 shylesh 2013-10-09 06:59:16 EDT
Verified on 3.4.0.34rhs-1.el6rhs.x86_64
Comment 6 errata-xmlrpc 2013-11-27 10:34:07 EST
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

Note You need to log in before you can comment on or make changes to this bug.