-
Recno databases lock the root during any write, so nested tests will hang.
*** test/recd006.tcl.orig Sat Jan 16 20:56:02 1999
--- test/recd006.tcl Sat Jan 16 20:56:02 1999
***************
*** 3,15 ****
# Copyright (c) 1996, 1997, 1998
# Sleepycat Software. All rights reserved.
#
! # @(#)recd006.tcl 8.2 (Sleepycat) 1/2/99
#
# Recovery Test 6.
# Test nested transactions.
proc recd006 { method {select 0} } {
global kvals
set method [convert_method $method]
puts "Recd006: $method nested transactions"
# Get global declarations since tcl doesn't support
--- 3,19 ----
# Copyright (c) 1996, 1997, 1998
# Sleepycat Software. All rights reserved.
#
! # @(#)recd006.tcl 8.3 (Sleepycat) 1/16/99
#
# Recovery Test 6.
# Test nested transactions.
proc recd006 { method {select 0} } {
global kvals
set method [convert_method $method]
+ if { [string compare $method DB_RECNO] == 0 } {
+ puts "Recd006 skipping for method RECNO"
+ return
+ }
puts "Recd006: $method nested transactions"
# Get global declarations since tcl doesn't support
-
Locks waiting on an aborted lock were not correctly promoted at the time
of the abort.
*** lock/lock.c.orig Fri Jan 15 10:33:56 1999
--- lock/lock.c Fri Jan 22 15:23:13 1999
***************
*** 609,614 ****
--- 609,620 ----
LOCK_LOCKREGION(lt);
if (newl-^gt;status != DB_LSTAT_PENDING) {
+ /*
+ * If this lock errored due to a deadlock, then
+ * we have waiters that require promotion.
+ */
+ if (newl-^gt;status == DB_LSTAT_ABORTED)
+ (void)__lock_promote(lt, sh_obj);
/* Return to free list. */
__lock_checklocker(lt, newl, 0);
SH_TAILQ_INSERT_HEAD(&lrp-^gt;free_locks, newl, links,