@@ -932,7 +932,7 @@ func (qjm *XController) ScheduleNext() {
932
932
// the appwrapper from being added in syncjob
933
933
defer qjm .schedulingAWAtomicSet (nil )
934
934
935
- scheduleNextRetrier := retrier .New (retrier .ExponentialBackoff (10 , 100 * time .Millisecond ), & EtcdErrorClassifier {})
935
+ scheduleNextRetrier := retrier .New (retrier .ExponentialBackoff (1 , 100 * time .Millisecond ), & EtcdErrorClassifier {})
936
936
scheduleNextRetrier .SetJitter (0.05 )
937
937
// Retry the execution
938
938
err = scheduleNextRetrier .Run (func () error {
@@ -1018,7 +1018,8 @@ func (qjm *XController) ScheduleNext() {
1018
1018
retryErr = qjm .updateStatusInEtcd (ctx , qj , "ScheduleNext - setHOL" )
1019
1019
if retryErr != nil {
1020
1020
if apierrors .IsConflict (retryErr ) {
1021
- klog .Warningf ("[ScheduleNext] Conflict error detected when updating status in etcd for app wrapper '%s/%s, status = %+v. Retrying update." , qj .Namespace , qj .Name , qj .Status )
1021
+ klog .Warningf ("[ScheduleNext] Conflict error detected when updating status in etcd for app wrapper '%s/%s, status = %+v this may be due to appwrapper deletion." , qj .Namespace , qj .Name , qj .Status )
1022
+ return nil
1022
1023
} else {
1023
1024
klog .Errorf ("[ScheduleNext] Failed to updated status in etcd for app wrapper '%s/%s', status = %+v, err=%v" , qj .Namespace , qj .Name , qj .Status , retryErr )
1024
1025
}
@@ -1068,6 +1069,8 @@ func (qjm *XController) ScheduleNext() {
1068
1069
}
1069
1070
return retryErr
1070
1071
}
1072
+ //Remove stale copy
1073
+ qjm .eventQueue .Delete (qj )
1071
1074
if err00 := qjm .eventQueue .Add (qj ); err00 != nil { // unsuccessful add to eventQueue, add back to activeQ
1072
1075
klog .Errorf ("[ScheduleNext] [Dispatcher Mode] Fail to add %s to eventQueue, activeQ.Add_toSchedulingQueue &qj=%p Version=%s Status=%+v err=%#v" , qj .Name , qj , qj .ResourceVersion , qj .Status , err )
1073
1076
qjm .qjqueue .MoveToActiveQueueIfExists (qj )
@@ -1224,6 +1227,8 @@ func (qjm *XController) ScheduleNext() {
1224
1227
}
1225
1228
tempAW .DeepCopyInto (qj )
1226
1229
// add to eventQueue for dispatching to Etcd
1230
+ // Remove stale copy
1231
+ qjm .eventQueue .Delete (qj )
1227
1232
if err00 := qjm .eventQueue .Add (qj ); err00 != nil { // unsuccessful add to eventQueue, add back to activeQ
1228
1233
klog .Errorf ("[ScheduleNext] [Agent Mode] Failed to add '%s/%s' to eventQueue, activeQ.Add_toSchedulingQueue &qj=%p Version=%s Status=%+v err=%#v" , qj .Namespace ,
1229
1234
qj .Name , qj , qj .ResourceVersion , qj .Status , err )
@@ -1587,7 +1592,11 @@ func (cc *XController) deleteQueueJob(obj interface{}) {
1587
1592
accessor .SetDeletionTimestamp (& current_ts )
1588
1593
}
1589
1594
klog .V (3 ).Infof ("[Informer-deleteQJ] %s enqueue deletion, deletion ts = %v" , qj .Name , qj .GetDeletionTimestamp ())
1590
- cc .enqueue (qj )
1595
+ //Remove stale copy
1596
+ cc .eventQueue .Delete (qj )
1597
+ cc .qjqueue .Delete (qj )
1598
+ //Add fresh copy
1599
+ cc .eventQueue .Add (qj )
1591
1600
}
1592
1601
1593
1602
func (cc * XController ) enqueue (obj interface {}) error {
@@ -2146,6 +2155,7 @@ func (cc *XController) Cleanup(ctx context.Context, appwrapper *arbv1.AppWrapper
2146
2155
}
2147
2156
func (cc * XController ) getAppWrapper (namespace string , name string , caller string ) (* arbv1.AppWrapper , error ) {
2148
2157
klog .V (5 ).Infof ("[getAppWrapper] getting a copy of '%s/%s' when called by '%s'." , namespace , name , caller )
2158
+
2149
2159
apiCacheAWJob , err := cc .appWrapperLister .AppWrappers (namespace ).Get (name )
2150
2160
if err != nil {
2151
2161
if ! apierrors .IsNotFound (err ) {
0 commit comments