diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2005-12-15 17:03:47 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2005-12-15 17:03:47 +0000 |
commit | 62d12a8cdb0c91043a880339a25533f016538a13 (patch) | |
tree | 02d2373440a76a9edf61c35d5089a83a1b0a6db6 /pkgs/development/libraries/db4 | |
parent | 51c111cb2e8db7edcd61774d785196c5115102cb (diff) | |
download | nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar.gz nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar.bz2 nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar.lz nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar.xz nixlib-62d12a8cdb0c91043a880339a25533f016538a13.tar.zst nixlib-62d12a8cdb0c91043a880339a25533f016538a13.zip |
* Apply the register patch.
svn path=/nixpkgs/trunk/; revision=4375
Diffstat (limited to 'pkgs/development/libraries/db4')
-rw-r--r-- | pkgs/development/libraries/db4/default.nix | 1 | ||||
-rw-r--r-- | pkgs/development/libraries/db4/register.patch | 84 |
2 files changed, 85 insertions, 0 deletions
diff --git a/pkgs/development/libraries/db4/default.nix b/pkgs/development/libraries/db4/default.nix index ab5cd1803e17..169e1e1e564d 100644 --- a/pkgs/development/libraries/db4/default.nix +++ b/pkgs/development/libraries/db4/default.nix @@ -11,4 +11,5 @@ stdenv.mkDerivation { (if cxxSupport then "--enable-cxx" else "--disable-cxx") (if cxxSupport then "--enable-compat185" else "--disable-compat185") ]; + patches = [./register.patch]; # <- should be fixed in 4.4.17 } diff --git a/pkgs/development/libraries/db4/register.patch b/pkgs/development/libraries/db4/register.patch new file mode 100644 index 000000000000..6dae0e0d7162 --- /dev/null +++ b/pkgs/development/libraries/db4/register.patch @@ -0,0 +1,84 @@ +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 |