Bug 1733970 - Glusterfind pre command fails after files are modified from mount point
Summary: Glusterfind pre command fails after files are modified from mount point
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: glusterfind
Version: rhgs-3.5
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: RHGS 3.5.0
Assignee: hari gowtham
QA Contact: Vinayak Papnoi
URL:
Whiteboard:
Depends On:
Blocks: 1696809
TreeView+ depends on / blocked
 
Reported: 2019-07-29 11:15 UTC by Vinayak Papnoi
Modified: 2019-10-30 12:22 UTC (History)
6 users (show)

Fixed In Version: glusterfs-6.0-14
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-10-30 12:22:31 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2019:3249 0 None None None 2019-10-30 12:22:54 UTC

Description Vinayak Papnoi 2019-07-29 11:15:18 UTC
Description of problem:
-----------------------

After creating files from mount point and performing glusterfind pre followed by post, if the contents of the files are modified then the next glusterfind pre fails with the following errors:

# glusterfind pre alpha-sess alpha /tmp/alpha-mod.txt
10.70.35.65 - pre failed; stdout (including remote stderr):
Connection to 10.70.35.65 closed.

stderr:
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

10.70.35.80 - pre failed; stdout (including remote stderr):
Connection to 10.70.35.80 closed.

stderr:
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

10.70.35.82 - pre failed; stdout (including remote stderr):
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

stderr:

10.70.35.236 - pre failed; stdout (including remote stderr):
Connection to 10.70.35.236 closed.

stderr:
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

10.70.35.35 - pre failed; stdout (including remote stderr):
Connection to 10.70.35.35 closed.

stderr:
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

10.70.35.220 - pre failed; stdout (including remote stderr):
Connection to 10.70.35.220 closed.

stderr:
Traceback (most recent call last):
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 421, in <module>
    actual_end = changelog_crawl(args.brick, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 355, in changelog_crawl
    return get_changes(brick, working_dir, log_file, start, end, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 318, in get_changes
    gfid_to_path_using_pgfid(brick, changelog_data, args)
  File "/usr/libexec/glusterfs/glusterfind/changelog.py", line 167, in gfid_to_path_using_pgfid
    subdirs_crawl=False)
  File "/usr/libexec/glusterfs/glusterfind/utils.py", line 77, in find
    callback_func(full_path, filter_result, is_dir)
TypeError: output_callback() takes exactly 2 arguments (3 given)

Generated output file /tmp/alpha-mod.txt

# cat /tmp/alpha-mod.txt
#


The outfile gets generated but it is empty (no files get listed).


Version-Release number of selected component (if applicable):
-------------------------------------------------------------

glusterfs-6.0-9.el7rhgs.x86_64


How reproducible:
-----------------

2/2


Steps to Reproduce:
-------------------

1. Create a volume, FUSE mount it and create a glusterfind session for it
2. Create some files from the mount point using 'touch'
3. Perform glusterfind pre followed by glusterfind post
4. Modify the contents of the file
  # echo "test" > testfile
5. Perform glusterfind pre


Actual results:
---------------

Glusterfind pre fails with the error mentioned in the description. The outfile gets generated but it does not contain any of the files that were modified.


Expected results:
-----------------

Glusterfind pre should pass and the modified files must be listed in the outfile with the tag MODIFY.


Additional info:

Comment 22 errata-xmlrpc 2019-10-30 12:22:31 UTC
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.

https://access.redhat.com/errata/RHEA-2019:3249


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