Bartosz Rempuszewski created SOLR-12262:
-------------------------------------------

             Summary: ReplicationHandler returns invalid/outdated backup status
                 Key: SOLR-12262
                 URL: https://issues.apache.org/jira/browse/SOLR-12262
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: Backup/Restore
    Affects Versions: 6.4
            Reporter: Bartosz Rempuszewski


It can be easily observed when backup size is big (I tested it with 1GB backup).
I encountered it on 6.4 but quick look at the code shows that 7.x is affected 
as well.

How to reproduce:
1) start solr, create core and index some data 
2) call /replication?command=backup
3) call (multiple times) /replication?command=details
For some time "backup" will be missing in the response (because backup is in 
progress) then it will report "success" and other properties
4) call /replication?command=backup again
5) call (multiple times) replication?command=details 
For some time old "backup" status will be returned: with status "success" 
(misleading!) -  there is no indication that backup is in progress.

The only way to detect if backup is really done (workaround):
 1) store value of  startTime/snapshotCompletedAt
 2) call /replication?command=backup
 3) call /replication?command=details and check if 
startTime/snapshotCompletedAt is different

Root cause of the problem: snapShootDetails field of 
org.apache.solr.handler.ReplicationHandler is being returned by 
getReplicationDetails.
This fields is updated by org.apache.solr.handler.SnapShooter::createSnapAssync 
when the backup is done. If "details" is called after backup start but before 
it ends - outdated value will be returned.

Possible fix:
snapShootDetails  should be updated before calling 
SnapShooter::createSnapAssync:
1) quick and dirty: set snapShootDetails  to null (quite ugly it will be 
consistent with first call to "backup" command)
2) Extend "backup" (add properties) - store previous backup (or last 
successful) status as field in "backup" and update other fields before 
createSnapAssync is called (update startTime, set status to "In Progress", 
remove snapshotCompletedAt, snapshotName, fileCount)

 







--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to