Bug 719595 - libodbccr symlink
Summary: libodbccr symlink
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: unixODBC
Version: 6.1
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: rc
: ---
Assignee: Tom Lane
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-07 12:41 UTC by slimeypete
Modified: 2015-05-01 18:22 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-10-21 03:58:09 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description slimeypete 2011-07-07 12:41:24 UTC
Description of problem:

When using PHP PDO ODBC I found that UnixODBC reports the following in the ODBC trace log:

 [[unixODBC][Driver Manager]Can't open cursor lib 'libodbccr' : file not found]
[ODBC][9797][1310038018.060407][SQLGetDiagRec.c][661]

I found that the way to 'fix' this was:

 root@blunt:/usr/lib64/$ ln -s libodbccr.so.2.0.0 libodbccr.so.1  

... so I presume UnixODBC is trying to link to libodbccr.so.1 instead of libodbccr.so.2 .




Version-Release number of selected component (if applicable):
x86_64
2.2.14
11.el6

How reproducible:
100%

Steps to Reproduce:
1. Create a PHP file which does this:
$odbc_pdo = new PDO("odbc:mydsn", "myuser", "mypassword");


  
Actual results:
The connection is created

Expected results:
PHP crashes out and Apache complains that the child process exited unexpectedly.

Additional info:
I presume this is applicable to more general usage of UnixODBC when cursors are being used.

Comment 2 RHEL Program Management 2011-07-07 13:07:59 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
representative.

Comment 3 Tom Lane 2011-07-08 17:50:45 UTC
I can't reproduce this given what I understand the test case to be, namely create a file test.php containing

<?php
$odbc_pdo = new PDO("odbc:mydsn", "myuser", "mypassword");
?>

and run it with "php -f test.php".  It appears to work fine for me,

Please provide a more concrete test case that assumes I know nothing at all about PHP (which is close enough to true).

Comment 4 Tom Lane 2011-10-21 03:58:09 UTC
Closing for lack of information.

Comment 5 Milan Kerslager 2015-02-17 21:01:07 UTC
I have similar problem with RHEL 7. Seems like unixODBC uses file/library locations different from what RHEL distribution contains.

Comment 6 blaeul 2015-05-01 18:22:29 UTC
I had a quite similar error message and solution on a 64-bit Debian:
Can't open cursor lib '/etc/libodbccr.so' : file not found

My solution was to execute "ln -s libodbccr.so.2 libodbccr.so" in the directory "/usr/lib/x86_64-linux-gnu".

My Debian is (according to uname -a) 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1.

After this fix I could successfully connect to a MDB Access database using PHP. The error above was thrown by the 'new PDO' line below:
  $sDriver = 'MDBTools';
  $sConnection = "odbc:Driver=$sDriver; DBQ=$sFile;";
  $db = new PDO($sConnection);


Note You need to log in before you can comment on or make changes to this bug.