diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-02-01 14:52:58 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-02-01 14:52:58 +0000 |
commit | 3eba483692f6c353dd20341b9d3fea144271ba69 (patch) | |
tree | a907a9aaae8cdbeb83c6692c8bebc1ff1cc87b62 | |
parent | 151f10dbc758a8bbc15bd941bd10bfdfe4c925a2 (diff) |
* Use Berkeley DB 4.4.20.
-rw-r--r-- | externals/Makefile.am | 7 | ||||
-rw-r--r-- | externals/register.patch | 84 |
2 files changed, 3 insertions, 88 deletions
diff --git a/externals/Makefile.am b/externals/Makefile.am index 76f4c6759..2f8fc5698 100644 --- a/externals/Makefile.am +++ b/externals/Makefile.am @@ -1,17 +1,16 @@ # Berkeley DB -DB = db-4.4.16.NC +DB = db-4.4.20.NC $(DB).tar.gz: @echo "Nix requires Berkeley DB to build." - @echo "Please download version 4.4.16 from" - @echo " http://downloads.sleepycat.com/db-4.4.16.NC.tar.gz" + @echo "Please download version 4.4.20 from" + @echo " http://downloads.sleepycat.com/db-4.4.20.NC.tar.gz" @echo "and place it in the externals/ directory." false $(DB): $(DB).tar.gz gunzip < $(DB).tar.gz | tar xvf - - cd $(DB) && patch -p1 < ../register.patch have-db: $(MAKE) $(DB) diff --git a/externals/register.patch b/externals/register.patch deleted file mode 100644 index 6dae0e0d7..000000000 --- a/externals/register.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -rc db-4.4.16.NC-orig/env/env_register.c db-4.4.16.NC/env/env_register.c -*** db-4.4.16.NC-orig/env/env_register.c 2005-10-07 22:21:27.000000000 +0200 ---- db-4.4.16.NC/env/env_register.c 2005-12-08 17:16:44.000000000 +0100 -*************** -*** 217,226 **** - if (nr != PID_LEN) - goto corrupt; - -! if (FLD_ISSET( -! dbenv->verbose, DB_VERB_REGISTER) && PID_ISEMPTY(buf)) { - __db_msg(dbenv, "%02u: EMPTY", lcnt); -! continue; - } - - /* ---- 217,226 ---- - if (nr != PID_LEN) - goto corrupt; - -! if (PID_ISEMPTY(buf)) { -! if (FLD_ISSET(dbenv->verbose, DB_VERB_REGISTER)) - __db_msg(dbenv, "%02u: EMPTY", lcnt); -! continue; - } - - /* -diff -rc db-4.4.16.NC-orig/test/env012.tcl db-4.4.16.NC/test/env012.tcl -*** db-4.4.16.NC-orig/test/env012.tcl 2005-11-02 21:27:45.000000000 +0100 ---- db-4.4.16.NC/test/env012.tcl 2005-12-08 17:21:19.000000000 +0100 -*************** -*** 168,173 **** ---- 168,219 ---- - logcheckfails $testdir/env$tnum.log.p2 DB_RUNRECOVERY - logcheck $testdir/env$tnum.log.p3 - -+ # Regression test: check that recovery doesn't run if there is -+ # a "X " slot in the registry. -+ puts "\tEnv$tnum.f: Multiple processes can join with -register -recover." -+ -+ # Make sure that we have at least 2 "X " slots in the registry. -+ puts "\t\tEnv$tnum.f1: Start process 1." -+ set p1 [exec $tclsh_path $test_path/wrap.tcl envscript.tcl \ -+ $testdir/env$tnum.log.p1 \ -+ $testdir $testfile PUT $key $data RECOVER 1 &] -+ -+ puts "\t\tEnv$tnum.f2: Start process 2." -+ set p2 [exec $tclsh_path $test_path/wrap.tcl envscript.tcl \ -+ $testdir/env$tnum.log.p2 \ -+ $testdir $testfile PUT $key $data RECOVER 1 &] -+ -+ watch_procs $p1 1 120 -+ watch_procs $p2 1 120 -+ -+ logcheck $testdir/env$tnum.log.p1 -+ logcheck $testdir/env$tnum.log.p2 -+ -+ # Start a process. It should not run recovery. Under the bug -+ # we're testing for, it would, because it would get an -+ # exclusive lock on the first "X " slot. -+ puts "\t\tEnv$tnum.f3: Start process 3." -+ set p3 [exec $tclsh_path $test_path/wrap.tcl envscript.tcl \ -+ $testdir/env$tnum.log.p3 \ -+ $testdir $testfile PUT $key $data RECOVER 10 &] -+ -+ tclsleep 2 -+ -+ # Start another process. It should not run recovery either. -+ # The bug would cause it to run recovery because it would get -+ # an exclusive lock on the second "X " slot. This would -+ # cause p3 to panic. -+ puts "\t\tEnv$tnum.f4: Start process 4." -+ set p4 [exec $tclsh_path $test_path/wrap.tcl envscript.tcl \ -+ $testdir/env$tnum.log.p4 \ -+ $testdir $testfile PUT $key $data RECOVER 10 &] -+ -+ watch_procs $p3 1 120 -+ watch_procs $p4 1 120 -+ -+ # Check log files for failures. -+ logcheck $testdir/env$tnum.log.p3 -+ logcheck $testdir/env$tnum.log.p4 - } - - # Check log file and report failures with FAIL. Use this when |