| | @@ -184,10 +184,11 @@ |
| 184 | 184 | void backoffice_run(void){ |
| 185 | 185 | Lease x; |
| 186 | 186 | sqlite3_uint64 tmNow; |
| 187 | 187 | sqlite3_uint64 idSelf; |
| 188 | 188 | int lastWarning = 0; |
| 189 | + int warningDelay = 30; |
| 189 | 190 | |
| 190 | 191 | if( g.db==0 ){ |
| 191 | 192 | fossil_panic("database not open for backoffice processing"); |
| 192 | 193 | } |
| 193 | 194 | if( db_transaction_nesting_depth()!=0 ){ |
| | @@ -230,15 +231,16 @@ |
| 230 | 231 | backofficeWriteLease(&x); |
| 231 | 232 | db_end_transaction(0); |
| 232 | 233 | if( x.tmCurrent >= tmNow ){ |
| 233 | 234 | sqlite3_sleep(1000*(x.tmCurrent - tmNow + 1)); |
| 234 | 235 | }else{ |
| 235 | | - if( lastWarning+30 < tmNow ){ |
| 236 | + if( lastWarning+warningDelay < tmNow ){ |
| 236 | 237 | fossil_warning( |
| 237 | 238 | "backoffice process %lld still running after %d seconds", |
| 238 | 239 | x.idCurrent, (int)(BKOFCE_LEASE_TIME + tmNow - x.tmCurrent)); |
| 239 | 240 | lastWarning = tmNow; |
| 241 | + warningDelay *= 2; |
| 240 | 242 | } |
| 241 | 243 | sqlite3_sleep(1000); |
| 242 | 244 | } |
| 243 | 245 | } |
| 244 | 246 | return; |
| 245 | 247 | |