Fossil SCM
Add a 5 second busy timeout on the database connection.
Commit
892c460b8e3794ad969550d28312c21873b31992
Parent
426a3ba49ebb066…
1 file changed
+2
M
src/db.c
+2
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -596,10 +596,11 @@ | ||
| 596 | 596 | #endif |
| 597 | 597 | rc = sqlite3_open(zFileName, &db); |
| 598 | 598 | if( rc!=SQLITE_OK ){ |
| 599 | 599 | db_err(sqlite3_errmsg(db)); |
| 600 | 600 | } |
| 601 | + sqlite3_busy_timeout(db, 5000); | |
| 601 | 602 | sqlite3_exec(db, "BEGIN EXCLUSIVE", 0, 0, 0); |
| 602 | 603 | rc = sqlite3_exec(db, zSchema, 0, 0, 0); |
| 603 | 604 | if( rc!=SQLITE_OK ){ |
| 604 | 605 | db_err(sqlite3_errmsg(db)); |
| 605 | 606 | } |
| @@ -627,10 +628,11 @@ | ||
| 627 | 628 | if( !g.db ){ |
| 628 | 629 | int rc = sqlite3_open(zDbName, &g.db); |
| 629 | 630 | if( rc!=SQLITE_OK ){ |
| 630 | 631 | db_err(sqlite3_errmsg(g.db)); |
| 631 | 632 | } |
| 633 | + sqlite3_busy_timeout(g.db, 5000); | |
| 632 | 634 | db_connection_init(); |
| 633 | 635 | }else{ |
| 634 | 636 | db_multi_exec("ATTACH DATABASE %Q AS %s", zDbName, zLabel); |
| 635 | 637 | } |
| 636 | 638 | } |
| 637 | 639 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -596,10 +596,11 @@ | |
| 596 | #endif |
| 597 | rc = sqlite3_open(zFileName, &db); |
| 598 | if( rc!=SQLITE_OK ){ |
| 599 | db_err(sqlite3_errmsg(db)); |
| 600 | } |
| 601 | sqlite3_exec(db, "BEGIN EXCLUSIVE", 0, 0, 0); |
| 602 | rc = sqlite3_exec(db, zSchema, 0, 0, 0); |
| 603 | if( rc!=SQLITE_OK ){ |
| 604 | db_err(sqlite3_errmsg(db)); |
| 605 | } |
| @@ -627,10 +628,11 @@ | |
| 627 | if( !g.db ){ |
| 628 | int rc = sqlite3_open(zDbName, &g.db); |
| 629 | if( rc!=SQLITE_OK ){ |
| 630 | db_err(sqlite3_errmsg(g.db)); |
| 631 | } |
| 632 | db_connection_init(); |
| 633 | }else{ |
| 634 | db_multi_exec("ATTACH DATABASE %Q AS %s", zDbName, zLabel); |
| 635 | } |
| 636 | } |
| 637 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -596,10 +596,11 @@ | |
| 596 | #endif |
| 597 | rc = sqlite3_open(zFileName, &db); |
| 598 | if( rc!=SQLITE_OK ){ |
| 599 | db_err(sqlite3_errmsg(db)); |
| 600 | } |
| 601 | sqlite3_busy_timeout(db, 5000); |
| 602 | sqlite3_exec(db, "BEGIN EXCLUSIVE", 0, 0, 0); |
| 603 | rc = sqlite3_exec(db, zSchema, 0, 0, 0); |
| 604 | if( rc!=SQLITE_OK ){ |
| 605 | db_err(sqlite3_errmsg(db)); |
| 606 | } |
| @@ -627,10 +628,11 @@ | |
| 628 | if( !g.db ){ |
| 629 | int rc = sqlite3_open(zDbName, &g.db); |
| 630 | if( rc!=SQLITE_OK ){ |
| 631 | db_err(sqlite3_errmsg(g.db)); |
| 632 | } |
| 633 | sqlite3_busy_timeout(g.db, 5000); |
| 634 | db_connection_init(); |
| 635 | }else{ |
| 636 | db_multi_exec("ATTACH DATABASE %Q AS %s", zDbName, zLabel); |
| 637 | } |
| 638 | } |
| 639 |