agesys-dev team mailing list archive
-
agesys-dev team
-
Mailing list archive
-
Message #00006
[Bug 533223] Re: cryptic failure when using gcc python with icc mysql
** Changed in: oursql
Importance: Undecided => Wishlist
** Changed in: oursql
Status: New => Won't Fix
--
cryptic failure when using gcc python with icc mysql
https://bugs.launchpad.net/bugs/533223
You received this bug notification because you are a member of Agesys
Team, which is subscribed to oursql.
Status in oursql python bindings for mysql: Won't Fix
Bug description:
When using oursql, if it is compiled with the mysql_configure binary from the icc distribution of MySQL and with the gcc version of python, it will display cryptic errors when importing pertaining to missing symbols etc. This is not something a python developer is required to understand, and is therefore a very serious problem.
Furthermore, it will not fail compilation (no errors or warnings shown), hiding the problem.
Suggested fixes:
1. Put the below text in the "http://packages.python.org/oursql/install.html" document, right before the paragraph starting with "On Windows, setup.py will try":
If, while importing oursql, you are getting messages about missing symbols, this might mean python (and by extension oursql) are compiled with the GNU Compiler gcc, while MySQL is compiled with the Intel compiler icc. This is usually the case if you use the version of Python that comes with your system and the MySQL binaries that are offered on MySQL's website. One fix is to use your distribution's version of libmysqlclient-dev or - generally - a version compiled with gcc; this will supply a version of mysql_configure. Another option is to use a version of MySQL that is compiled with gcc, for example the one supplied by your distribution.
1b. Alternatively put this paragraph in a troubleshooting section of the oursql manual, and link to it from the place right before the text "On Windows, setup.py will try" by using this text:
Bear in mind there might be problems if [MySQL and Python use incompatible ABIs].
Where [] denotes the link.
2. Fail compilation or setup.py if the ABIs are incompatible
3. Catch the error that happens when importing and replace it with a cue that will direct the user to the documentation described above, such as:
Error. Your MySQL seems to be using a different ABI than oursql. Please see the installation section of the manual.