[Python-Dev] Looking for a Windows bsddb fan

Tim Peters tim.one@comcast.net
Thu, 23 Jan 2003 20:08:58 -0500


This is a multi-part message in MIME format.

--Boundary_(ID_Sk7bWSjv58rsTKm5OLz6Fw)
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 7BIT

Barry said I should switch Python 2.3 on Windows to using Sleepycat 4.1.25.
A patch for doing so is attached.  The full test_bsddb3 looks like a
disaster then, and I don't have time to dig into it:

C:\Code\python\PCbuild>python ../lib/test/regrtest.py -v -u  bsddb
test_bsddb3
test_bsddb3
test01_associateWithDB (bsddb.test.test_associate.AssociateHashTestCase)
    ... ERROR
test02_associateAfterDB (bsddb.test.test_associate.AssociateHashTestCase)
    ... ERROR
test01_associateWithDB (bsddb.test.test_associate.AssociateBTreeTestCase)
    ... ERROR
test02_associateAfterDB (bsddb.test.test_associate.AssociateBTreeTestCase)
    ... ERROR
test01_associateWithDB (bsddb.test.test_associate.AssociateRecnoTestCase)
    ... ERROR
test02_associateAfterDB (bsddb.test.test_associate.AssociateRecnoTestCase)
    ... ERROR
test01_associateWithDB
(bsddb.test.test_associate.ShelveAssociateHashTestCase)
    ... ERROR

etc.

It's been running a long time, and unittest doesn't show what's wrong before
it's all done (and it's not done yet, so no clue here).  Maybe it's shallow.
Plain test_bsddb passes.

Later:

Ran 182 tests in 588.640s

FAILED (errors=22)
test test_bsddb3 failed -- errors occurred; run in verbose mode for details
1 test failed:
    test_bsddb3


All the errors are of this form (this is the last one):

======================================================================
ERROR: test01_basics (bsddb.test.test_dbshelve.EnvThreadHashShelveTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\CODE\PYTHON\lib\bsddb\test\test_dbshelve.py", line 70,
    in test01_basics
    self.do_open()
  File "C:\CODE\PYTHON\lib\bsddb\test\test_dbshelve.py", line 233, in
    do_open
    self.env.open(homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE)
DBAgainError: (11, 'Resource temporarily unavailable -- unable to join
 the environment')


Huh?  Win98SE, in case that's a clue.

--Boundary_(ID_Sk7bWSjv58rsTKm5OLz6Fw)
Content-type: text/plain; name=patch.txt
Content-transfer-encoding: 7BIT
Content-disposition: attachment; filename=patch.txt

Index: _bsddb.dsp
===================================================================
RCS file: /cvsroot/python/python/dist/src/PCbuild/_bsddb.dsp,v
retrieving revision 1.2
diff -c -r1.2 _bsddb.dsp
*** _bsddb.dsp	23 Nov 2002 18:48:06 -0000	1.2
--- _bsddb.dsp	24 Jan 2003 01:03:38 -0000
***************
*** 44,50 ****
  # PROP Target_Dir ""
  F90=df.exe
  # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
  # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
  # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
  # ADD BASE RSC /l 0x409 /d "NDEBUG"
--- 44,50 ----
  # PROP Target_Dir ""
  F90=df.exe
  # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
  # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
  # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
  # ADD BASE RSC /l 0x409 /d "NDEBUG"
***************
*** 54,60 ****
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd"
  # SUBTRACT LINK32 /pdb:none
  
  !ELSEIF  "$(CFG)" == "_bsddb - Win32 Debug"
--- 54,60 ----
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd"
  # SUBTRACT LINK32 /pdb:none
  
  !ELSEIF  "$(CFG)" == "_bsddb - Win32 Debug"
***************
*** 72,78 ****
  # PROP Target_Dir ""
  F90=df.exe
  # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
  # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
  # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
  # ADD BASE RSC /l 0x409 /d "_DEBUG"
--- 72,78 ----
  # PROP Target_Dir ""
  F90=df.exe
  # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c
  # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
  # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
  # ADD BASE RSC /l 0x409 /d "_DEBUG"
***************
*** 82,88 ****
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept
  # SUBTRACT LINK32 /pdb:none
  
  !ENDIF 
--- 82,88 ----
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept
  # SUBTRACT LINK32 /pdb:none
  
  !ENDIF 
Index: readme.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/PCbuild/readme.txt,v
retrieving revision 1.38
diff -c -r1.38 readme.txt
*** readme.txt	30 Dec 2002 00:40:40 -0000	1.38
--- readme.txt	24 Jan 2003 01:03:38 -0000
***************
*** 163,192 ****
  
  
  _bsddb
!     XXX The Sleepycat release we use will probably change before
!     XXX 2.3a1.
!     Go to Sleepycat's patches page:
!         http://www.sleepycat.com/update/index.html
!     and download
!         4.0.14.zip
!     from the download page.  The file name is db-4.0.14.zip.  Unpack into
!         dist\db-4.0.14
! 
!     Apply the patch file bsddb_patch.txt in this (PCbuild) directory
!     against the file
!         dist\db-4.0.14\db\db_reclaim.c
! 
!     Go to
!         http://www.sleepycat.com/docs/ref/build_win/intro.html
!     and follow the instructions for building the Sleepycat software.
!     Build the Release version.
!     NOTE:  The instructions are for a later release of the software,
!     so use your imagination.  Berkeley_DB.dsw in this release was
!     also pre-MSVC6, so you'll be prompted to upgrade the format (say
!     yes, of course).  Choose configuration "db_buildall - Win32 Release",
!     and build db_buildall.exe.
  
!     XXX We're actually linking against Release_static\libdb40s.lib.
      XXX This yields the following warnings:
  """
  Compiling...
--- 163,185 ----
  
  
  _bsddb
!     Go to Sleepycat's download page:
!         http://www.sleepycat.com/download/
  
!     and download version 4.1.25.  The file name is db-4.1.25.NC.zip.
!     XXX with or without strong cryptography?  I picked "without".
! 
!     Unpack into
!         dist\db-4.1.25
! 
!     Open
!         dist\db-4.1.25\docs\index.html
! 
!     and follow the Windows instructions for building the Sleepycat
!     software.  Build the Release version ("build_all -- Win32 Release").
!     Note that Berkeley_DB.dsw is in the build_win32 subdirectory.
! 
!     XXX We're actually linking against Release_static\libdb41s.lib.
      XXX This yields the following warnings:
  """
  Compiling...
***************
*** 201,206 ****
--- 194,200 ----
  """
      XXX This isn't encouraging, but I don't know what to do about it.
  
+     To run extensive tests, pass "-u bsddb" to regrtest.py.
  
  _ssl
      Python wrapper for the secure sockets library.

--Boundary_(ID_Sk7bWSjv58rsTKm5OLz6Fw)--