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:
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