classification
Title: sqlite3.dll cannot be relocated
Type: Stage:
Components: Windows Versions: Python 2.5
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: christian.heimes, ghaering, loewis, mark, tcdelaney
Priority: normal Keywords:

Created on 2007-06-07 23:15 by tcdelaney, last changed 2008-07-20 11:23 by georg.brandl. This issue is now closed.

Messages (7)
msg32252 - (view) Author: Tim Delaney (tcdelaney) Date: 2007-06-07 23:15
From Josh Ritter:

A number of our Windows customers have an issue with the sqlite3
module included with Python 2.5.1

We've tracked the problem down to the sqlite3.dll included with the
Python 2.5.1 distribition.  It is stripped and thus cannot be relocated.
This causes the following exception on computers where something is
already loaded into the address the sqlite3.dll wants to use:

File "sqlite3\__init__.pyc", line 24, in <module>
File "sqlite3\dbapi2.pyc", line 27, in <module>
ImportError: DLL load failed: Invalid access to memory location.

I downloaded the latest sqlite3.dll from http://www.sqlite.org and
this fixes the problem.  (This dll isn't stripped)
msg32253 - (view) Author: Gerhard Häring (ghaering) * (Python committer) Date: 2007-06-08 08:13
Unfortunately, I don't know where the problem originates. Either the SQLite 3.3.4 DLL that was originally imported into Python was stripped and current ones aren't. Or somewhere in the Python win32 build process DLLs are stripped.

Maybe we should just update the SQLite3.DLL to a current one in the Python 2.5 branch. Due to their extensive regression tests new ones should generally be better than old ones. And the current SQLite DLL is too old for some cases (SQLAlchemy refuses to work with it because it's too old and buggy, for example).
msg32254 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2007-06-08 17:49
I don't understand the problem, either. There is no "strip" operation on Windows that could cause this problem; relocation information is always present and cannot be removed under normal circumstances. So I think the problem is elsewhere.

If Josh Ritter could report what precisely he did to determine that the 2.5-shipped version was "stripped" and the sqlite.org version isn't, that would be helpful.

According to http://support.microsoft.com/kb/q196069/
the error 998 of LoadLibrary indicates ERROR_NOACCESS if an access violation occurred, 
so that might be a possible cause. To analyze this further, one would have to run
the application under a debugger.
msg59799 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2008-01-12 05:21
Tim, please help us to track the bug down. I'm going to close the bug in
two weeks (2008-01-26) unless you respond.
msg59803 - (view) Author: Tim Delaney (tcdelaney) Date: 2008-01-12 06:31
I've got no further details on this bug - I've never encountered it myself.
msg66491 - (view) Author: Mark Summerfield (mark) * Date: 2008-05-09 21:38
Unfortunately, this bug appears to affect Py30a5 too (at least on Win XP
Home):

Python 3.0a5 (py3k:62932M, May  9 2008, 16:23:11) [MSC v.1500 32 bit
(Intel)] on win32

IDLE 3.0a5      
>>> import sqlite3
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import sqlite3
  File "c:\Python30\lib\sqlite3\__init__.py", line 24, in <module>
    from sqlite3.dbapi2 import *
  File "c:\Python30\lib\sqlite3\dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: DLL load failed: The specified module could not be found.
msg66501 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2008-05-09 23:12
> Unfortunately, this bug appears to affect Py30a5 too (at least on Win XP
> Home):

I'm somewhat skeptical that this is the same bug, though. Much more
likely related to switching to VS 2008 (and I'm skeptical that we
can resolve all VS 2008 issues before the release of 3.1).

Regards,
Martin
History
Date User Action Args
2008-07-20 11:23:24georg.brandlsetstatus: pending -> closed
2008-05-09 23:12:45loewissetmessages: + msg66501
2008-05-09 21:38:45marksetnosy: + mark
messages: + msg66491
2008-01-12 06:31:15tcdelaneysetmessages: + msg59803
2008-01-12 05:21:17christian.heimessetstatus: open -> pending
nosy: + christian.heimes
messages: + msg59799
2007-06-07 23:15:11tcdelaneycreate