libodbc triggers ltdl abort when Setup64 is set but empty

Bug #362603 reported by Dennis Prochko
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
unixodbc (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

Binary package hint: unixodbc

When trying to configure any previously added datasource, the ODBCConfig program fails with the following text in the console:

$ ODBCConfig
ODBCConfig: libltdl/ltdl.c:1178: try_dlopen: Assertion `filename && *filename' failed.
Aborted

How to reproduce it: start ODBCConfig, select any data source from the "User DSN" or "System DSN" tab, click on the "Configure..." button. The program crashes.

Expected behaviour: the data source edit dialog should appear.

P.S.

$ lsb_release -rd
Description: Ubuntu 9.04
Release: 9.04

$ apt-cache policy unixodbc
unixodbc:
  Installed: 2.2.11-16build3
  Candidate: 2.2.11-16build3
  Version table:
 *** 2.2.11-16build3 0
        500 http://ru.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

$ apt-cache policy postgresql
postgresql:
  Installed: 8.3.7-1
  Candidate: 8.3.7-1
  Version table:
 *** 8.3.7-1 0
        500 http://ru.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

Revision history for this message
Chuck Short (zulcss) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. Please answer these questions:
1. Is this reproducible?
2. If so, what specific steps should we take to recreate this bug? Be as detailed as possible.
This will help us to find and resolve the problem.

Changed in unixodbc (Ubuntu):
status: New → Incomplete
Revision history for this message
Dennis Prochko (wolfsoft) wrote :

Thank you for interesting of this bug!

I've doing some experiments and here are the results:

This is not reproduced on clean installation of Ubuntu Karmic i386. The package version is same, the steps are same, but works as expected. But, on my Ubuntu Jaunty (x86_64) it is 100% reproducible. The differences are the CPU and configuration file. I have found that my ODBC configuration file is the source of this bug.

== part of /etc/odbcinst.ini file ==
[Text File]
Description = Text File ODBC driver
Driver = /usr/lib/odbc/libodbctxt.so
Driver64 =
Setup = /usr/lib/odbc/libodbctxtS.so
Setup64 =
UsageCount = 1
CPTimeout =
CPReuse =
== end of part ==

When Setup64 parameter is missing, the ODBCConfig crushes as I have described above. When Setup64 is equal to Setup parameter - all fine - dialog appears.

So, with this configuration file ODBCConfig works as expected:

== part of /etc/odbcinst.ini file ==
[Text File]
Description = Text File ODBC driver
Driver = /usr/lib/odbc/libodbctxt.so
Driver64 = /usr/lib/odbc/libodbctxt.so
Setup = /usr/lib/odbc/libodbctxtS.so
Setup64 = /usr/lib/odbc/libodbctxtS.so
UsageCount = 1
CPTimeout =
CPReuse =
== end of part ==

It will be great to fix the bug. IMHO, the program should show message box with error message on invalid or incomplete parameters, but shouldn't crash. Good luck with bugfixing and thank you again.

Changed in unixodbc (Ubuntu):
status: Incomplete → Confirmed
status: Confirmed → In Progress
status: In Progress → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote :

Note that this occurs specifically because of the use of an *empty* Setup64 line. If you don't configure a 'Setup64' setting at all, unixodbc already falls back to 'Setup' correctly.

You're right that UnixODBC should do something more sensible to avoid triggering the library assertion.

Changed in unixodbc (Ubuntu):
importance: Undecided → Low
summary: - ODBCConfig fails on configure existing data source
+ libodbc triggers ltdl abort when Setup64 is set but empty
Revision history for this message
Steve Langasek (vorlon) wrote :

The latest version of unixodbc-bin in trusty no longer aborts in this case; instead it prints an error message:

  Could not find Setup property for (MySQL) in system information

I think we can consider this resolved.

Changed in unixodbc (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.