Bug 1362151

Summary: [libgfchangelog]: If changelogs are not available for the requested time range, no proper error message
Product: [Community] GlusterFS Reporter: Kotresh HR <khiremat>
Component: changelogAssignee: Kotresh HR <khiremat>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: avishwan, bugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: v3.10.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1364422 1365877 (view as bug list) Environment:
Last Closed: 2017-03-08 09:32:28 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: 1364422, 1365877, 1365879    

Comment 1 Vijay Bellur 2016-08-01 12:06:36 UTC
REVIEW: http://review.gluster.org/15064 (features/libgfchangelog: Log failure in gf_histroy_changelog) posted (#1) for review on master by Kotresh HR (khiremat)

Comment 2 Kotresh HR 2016-08-05 09:23:57 UTC
NOTE: The steps to reproduce mentioned in #Description is incorrect hence restating the problem description and steps to reproduce.

Description of problem:

 If changelogs are not available for the requested time range, no proper error message is displayed. It just fails. If start time is less than min changelog available time, then history changelog fails with -1 as any failure and no error message is printed. Distinguishing this error will be helpful for 
the consumers to act upon it.

For example, geo-replication upon receiving this error would fallback to
xsync. 

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

How reproducible:
Always

Steps to Reproduce: (For simplicity consider plain distribute setup)
This is not simple to reproduce. It might hit during replace brick scencarios.
1. Setup geo-rep between master and slave
2. Before geo-rep syncs all data from master to slave, replace the brick from
   master and write new data on master.
3. Now the replaced brick's min changelog available is much later than the
   stime (sync time) corresponding to this brick.
4. When geo-rep is started after replace brick, it would hit above case.


Actual results:
When start time is less than min available changelog, histor fails with -1 and error is not logged.

Expected results:
It should distinguish the above error, log it and fail.

Comment 3 Vijay Bellur 2016-08-05 11:11:53 UTC
REVIEW: http://review.gluster.org/15064 (features/libgfchangelog: Log failure in gf_histroy_changelog) posted (#2) for review on master by Kotresh HR (khiremat)

Comment 4 Vijay Bellur 2016-08-09 07:27:16 UTC
COMMIT: http://review.gluster.org/15064 committed in master by Aravinda VK (avishwan) 
------
commit 949472d7561d3bfd67d8204e433a25dbc8a596cc
Author: Kotresh HR <khiremat>
Date:   Mon Aug 1 16:59:33 2016 +0530

    features/libgfchangelog: Log failure in gf_histroy_changelog
    
    Add error logs if gf_history_changelog fails. If requested
    changelog range is not available, log the error and exit
    instead of continuing the loop and exiting in readdir
    without logging. Also fixed the duplicate MSGID number in
    'changelog-lib-messages.h'
    
    Change-Id: Icd71b89ae23b48a71380657ba5649029c32fabfd
    BUG: 1362151
    Signed-off-by: Kotresh HR <khiremat>
    Reviewed-on: http://review.gluster.org/15064
    Smoke: Gluster Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Aravinda VK <avishwan>