Fossil

Check-in [628d63c4]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Disable backoffice timeouts. This is a temporary measure to avoid a horrible bug in which a timeout causes the email notification sending process to exit before recording the fact that notifications have already been sent, and thus causing the same notifications to be sent again on the next backoffice cycle, and so forth over and over and over.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:628d63c4cfb32928340ba99364446b9250752447bbd2e6eb768d71f4688ee95e
User & Date: drh 2018-08-08 20:56:50
Context
2018-08-08
23:59
Go ahead and permanently remove the backoffice timeout mechanism, as it seems clear we will not have a use for it moving forward. check-in: 4db38487 user: drh tags: trunk
20:56
Disable backoffice timeouts. This is a temporary measure to avoid a horrible bug in which a timeout causes the email notification sending process to exit before recording the fact that notifications have already been sent, and thus causing the same notifications to be sent again on the next backoffice cycle, and so forth over and over and over. check-in: 628d63c4 user: drh tags: trunk
20:01
Enhance the /register page so that it also does email subscriptions if that is enabled for self-registered users. check-in: 2e308280 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/backoffice.c.

303
304
305
306
307
308
309

310
311
312
313
314
315
316
...
366
367
368
369
370
371
372
373




374
375
376
377
378
379
380
/*
** Return a process id number for the current process
*/
static sqlite3_uint64 backofficeProcessId(void){
  return (sqlite3_uint64)GETPID();
}


/*
** Set an alarm to cause the process to exit after "x" seconds.  This
** prevents any kind of bug from keeping a backoffice process running
** indefinitely.
*/
static void backofficeSigalrmHandler(int x){
  fossil_panic("backoffice timeout (%d seconds)", x);
................................................................................
    0, 0, backofficeWin32SigalrmThreadProc, FOSSIL_INT_TO_PTR(x), 0, 0
  );
#else
  signal(SIGALRM, backofficeSigalrmHandler);
  alarm(x);
#endif
}






/*
** COMMAND: test-process-id
**
** Usage: %fossil [--sleep N] PROCESS-ID ...
**
** Show the current process id, and also tell whether or not all other







>







 







<
>
>
>
>







303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
...
367
368
369
370
371
372
373

374
375
376
377
378
379
380
381
382
383
384
/*
** Return a process id number for the current process
*/
static sqlite3_uint64 backofficeProcessId(void){
  return (sqlite3_uint64)GETPID();
}

#if 0 /* Disable the backoffice timeout for now */
/*
** Set an alarm to cause the process to exit after "x" seconds.  This
** prevents any kind of bug from keeping a backoffice process running
** indefinitely.
*/
static void backofficeSigalrmHandler(int x){
  fossil_panic("backoffice timeout (%d seconds)", x);
................................................................................
    0, 0, backofficeWin32SigalrmThreadProc, FOSSIL_INT_TO_PTR(x), 0, 0
  );
#else
  signal(SIGALRM, backofficeSigalrmHandler);
  alarm(x);
#endif
}

#else  /* Real timeout (above) is disabled.  In its place is the following */
       /* stub routine */
static void backofficeTimeout(int x){ /* no-op */ }
#endif

/*
** COMMAND: test-process-id
**
** Usage: %fossil [--sleep N] PROCESS-ID ...
**
** Show the current process id, and also tell whether or not all other