Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a test to check that a checkpointer releases its locks before returning, even if it has been prevented by a conflicting lock from checkpointing the database. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | wal |
Files: | files | file ages | folders |
SHA1: |
be44349d2b790fb470fcc9fb6a12e8b1 |
User & Date: | dan 2010-04-27 18:43:17.000 |
Original Comment: | Add a test to check that a checkpointer releases its locks before returning, even if it has been prevented by a conflicting lock from checkpointing the database. Add a test to check that a checkpointer releases its locks before returning, even if it has been prevented by a conflicting lock from checkpointing the database. |
Context
2010-04-27
| ||
18:49 | Merge two "wal" leaves. (check-in: 8c2d43babd user: dan tags: wal) | |
18:43 | Add a test to check that a checkpointer releases its locks before returning, even if it has been prevented by a conflicting lock from checkpointing the database. (check-in: be44349d2b user: dan tags: wal) | |
14:37 | Fix a problem with identifying a corrupt database in WAL mode. (check-in: c8658da446 user: dan tags: wal) | |
Changes
Changes to test/wal.test.
︙ | ︙ | |||
661 662 663 664 665 666 667 668 669 670 671 672 673 674 | } {} do_test wal-10.$tn.33 { execsql { SELECT * FROM t1 ; COMMIT } } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18} do_test wal-10.$tn.34 { execsql { SELECT * FROM t1 } } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22} catch { db close } catch { code2 { db2 close } } catch { code3 { db3 close } } catch { close $::code2_chan } catch { close $::code3_chan } } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 | } {} do_test wal-10.$tn.33 { execsql { SELECT * FROM t1 ; COMMIT } } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18} do_test wal-10.$tn.34 { execsql { SELECT * FROM t1 } } {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22} # Test that if a checkpointer cannot obtain the required locks, it # releases all locks before returning a busy error. # do_test wal-10.$tn.35 { execsql { DELETE FROM t1; INSERT INTO t1 VALUES('a', 'b'); INSERT INTO t1 VALUES('c', 'd'); } sql2 { BEGIN; SELECT * FROM t1; } } {a b c d} proc busyhandler x { return 1 } db busy busyhandler do_test wal-10.$tn.36 { catchsql { PRAGMA checkpoint } } {1 {database is locked}} do_test wal-10.$tn.36 { sql3 { INSERT INTO t1 VALUES('e', 'f') } sql2 { SELECT * FROM t1 } } {a b c d} do_test wal-10.$tn.37 { sql2 COMMIT execsql { PRAGMA checkpoint } } {} catch { db close } catch { code2 { db2 close } } catch { code3 { db3 close } } catch { close $::code2_chan } catch { close $::code3_chan } } |
︙ | ︙ |