Bug #65509 | "strfill" function missing from ODBC Connector | ||
---|---|---|---|
Submitted: | 4 Jun 2012 12:46 | Modified: | 7 Jun 2012 14:09 |
Reporter: | Chris Curvey | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | Connector / ODBC | Severity: | S1 (Critical) |
Version: | 5.1.11 | OS: | Linux (Ubuntu 12.04) |
Assigned to: | Bogdan Degtyariov | CPU Architecture: | Any |
[4 Jun 2012 12:46]
Chris Curvey
[7 Jun 2012 11:57]
Bogdan Degtyariov
Chris, strfill is one of the functions exported by MySQL Client library among many others used in Connector/ODBC. By default the ODBC driver is linked against libmysqlclient_r.a static library, so all used client functions bodies are embedded into the driver file. Getting such error only possible if you built the driver yourself and linked it to the shared version of libmysqlclient_r.so. If the path to it is not in $LD_LIBRARY_PATH you can have all sorts of errors. You can check this by using the following command: ldd libmyodbc5.so | grep libmysqlclient So, the solution is re-linking the driver once again. Before doing so you should remove libmysqlclient*.so files in MySQL lib directory.
[7 Jun 2012 12:40]
Chris Curvey
No luck. I didn't build the driver myself (at least, I don't think I did), I just pulled the source to find that missing function. I don't seem to have a libmyodbc5.so, but I do have a libmyodbc.so. (And my program complains about it missing if ldd reports: chris@mu:/usr/lib/x86_64-linux-gnu/odbc$ !ldd ldd libmyodbc.so | grep libmysqlclient libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007fe71886c000)
[7 Jun 2012 13:19]
Bogdan Degtyariov
Chris, ldd reports that it does require libmysqlclient.so.18, which is not supposed to be with any of our released binaries. Not everyone wants to install client programs, so the driver should be as much independent as possible. Also, the library name libmyodbc.so instead of libmyodbc5.so does not look as something from the officially released distributions. Which package did you use to install it? Was that mysql-connector-odbc-5.1.11-linux-glibc2.3-x86-32bit.tar.gz ? Or you have got it as Ubuntu package?
[7 Jun 2012 13:46]
Chris Curvey
Thanks again. I'm learning a lot. Could this be a problem with the packaging in the Ubuntu or Debian world, and not an issue with the MySQL packages? Searching for issues related to this: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661422 (although I don't really understand what happened there) I suppose I will report this to Ubuntu and let them tell me if I should kick it upstream to Debian.
[7 Jun 2012 14:09]
Bogdan Degtyariov
Chris, This is obviously the packaging/building problem in Ubuntu. MySQL driver is not supposed to load mysql client shared library at all. Only the static linking can make sure the ODBC driver works properly because it depends on the particular implementations of client functions and header declarations. The bug reference you gave just says about the possibility of using MySQL 5.5 client library for MySQL ODBC driver 5.1. Surely, that whole problem occurred because the driver binary depended on libmysqlclient.so. I am setting "Not a bug" status to this report.