Fossil SCM
Make sure the backoffice has all file descriptors closed before it starts.
Commit
15f85cfdaaf9918e3df60f8b15b56f978486467e5516c84b2e245e6a8be6c339
Parent
988cf44ded4856e…
1 file changed
+2
+2
| --- src/backoffice.c | ||
| +++ src/backoffice.c | ||
| @@ -644,11 +644,13 @@ | ||
| 644 | 644 | GETPID(), (int)pid); |
| 645 | 645 | return; |
| 646 | 646 | } |
| 647 | 647 | if( pid==0 ){ |
| 648 | 648 | /* This is the child of a successful fork(). Run backoffice. */ |
| 649 | + int i; | |
| 649 | 650 | setsid(); |
| 651 | + for(i=3; close(i)==0 || i<10; i++){} | |
| 650 | 652 | db_open_repository(backofficeDb); |
| 651 | 653 | backofficeDb = "x"; |
| 652 | 654 | backoffice_thread(); |
| 653 | 655 | db_close(1); |
| 654 | 656 | backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID()); |
| 655 | 657 |
| --- src/backoffice.c | |
| +++ src/backoffice.c | |
| @@ -644,11 +644,13 @@ | |
| 644 | GETPID(), (int)pid); |
| 645 | return; |
| 646 | } |
| 647 | if( pid==0 ){ |
| 648 | /* This is the child of a successful fork(). Run backoffice. */ |
| 649 | setsid(); |
| 650 | db_open_repository(backofficeDb); |
| 651 | backofficeDb = "x"; |
| 652 | backoffice_thread(); |
| 653 | db_close(1); |
| 654 | backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID()); |
| 655 |
| --- src/backoffice.c | |
| +++ src/backoffice.c | |
| @@ -644,11 +644,13 @@ | |
| 644 | GETPID(), (int)pid); |
| 645 | return; |
| 646 | } |
| 647 | if( pid==0 ){ |
| 648 | /* This is the child of a successful fork(). Run backoffice. */ |
| 649 | int i; |
| 650 | setsid(); |
| 651 | for(i=3; close(i)==0 || i<10; i++){} |
| 652 | db_open_repository(backofficeDb); |
| 653 | backofficeDb = "x"; |
| 654 | backoffice_thread(); |
| 655 | db_close(1); |
| 656 | backofficeTrace("/***** Backoffice Child %d exits *****/\n", GETPID()); |
| 657 |