On Thu, 13 Apr 2000, Andrew M. Kuchling wrote:
So, presumably neither HAVE_FTELLO nor HAVE_FTELL64 are defined, so it uses the old ftell(). What's the right system call for FreeBSD? Looking at the man pages for 4.0 at freebsd.org, it's ftello(). So, is HAVE_FTELLO defined? If it isn't, then find out why; if it is, then there's some other bug in Python's tell() code.
I may persue your suggestions at some point, but I just tried running Zope on a version of the Data.fs truncated to about 700K under 2G. It still hasn't finished trying to load (I'm about to kill it) after half an hour, and it periodically is dumping the following traceback to the screen (-D mode): ------------- Traceback (innermost last): File "/usr/local/zope/Zope-2.1.2-src/z2.py", line 436, in ? exec "import "+MODULE in {} File "<string>", line 1, in ? File "/usr/local/zope/Zope-2.1.2-src/lib/python/Zope/__init__.py", line 109, in ? DB=ZODB.FileStorage.FileStorage(Globals.BobobaseName) File "/usr/local/zope/Zope-2.1.2-src/lib/python/ZODB/FileStorage.py", line 301, in __init__ self._pos, self._oid, tid = read_index( File "/usr/local/zope/Zope-2.1.2-src/lib/python/ZODB/FileStorage.py", line 1267, in read_index if tl+pos+8 > file_size or status=='c': OverflowError: integer addition ------------- So either Python or Zope has some more serious problems with the 2G limit than just what tell is returning. So unless you tell me I'm doing something stupid that is causing this <grin>, for the moment I'm going to punt and just recover all the data I can out of an even more truncated Data.fs. --RDM