* Use Berkeley DB 4.4.20.
This commit is contained in:
parent
151f10dbc7
commit
3eba483692
2 changed files with 3 additions and 88 deletions
7
externals/Makefile.am
vendored
7
externals/Makefile.am
vendored
|
@ -1,17 +1,16 @@
|
||||||
# Berkeley DB
|
# Berkeley DB
|
||||||
|
|
||||||
DB = db-4.4.16.NC
|
DB = db-4.4.20.NC
|
||||||
|
|
||||||
$(DB).tar.gz:
|
$(DB).tar.gz:
|
||||||
@echo "Nix requires Berkeley DB to build."
|
@echo "Nix requires Berkeley DB to build."
|
||||||
@echo "Please download version 4.4.16 from"
|
@echo "Please download version 4.4.20 from"
|
||||||
@echo " http://downloads.sleepycat.com/db-4.4.16.NC.tar.gz"
|
@echo " http://downloads.sleepycat.com/db-4.4.20.NC.tar.gz"
|
||||||
@echo "and place it in the externals/ directory."
|
@echo "and place it in the externals/ directory."
|
||||||
false
|
false
|
||||||
|
|
||||||
$(DB): $(DB).tar.gz
|
$(DB): $(DB).tar.gz
|
||||||
gunzip < $(DB).tar.gz | tar xvf -
|
gunzip < $(DB).tar.gz | tar xvf -
|
||||||
cd $(DB) && patch -p1 < ../register.patch
|
|
||||||
|
|
||||||
have-db:
|
have-db:
|
||||||
$(MAKE) $(DB)
|
$(MAKE) $(DB)
|
||||||
|
|
84
externals/register.patch
vendored
84
externals/register.patch
vendored
|
@ -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
|
|
Loading…
Reference in a new issue