ODBC broken in 1.5.2

User 2032 | 8/3/2015, 1:50:07 PM

Hi guys,

ODBC works fine on 1.4.1. After upgrading to 1.5.2 I get the error below. This is caused by running a very simple selection + projection snippet. Downgrading fixes the problem.

RuntimeError Traceback (most recent call last) <ipython-input-1-9ecdb395acfe> in <module>() 1 import graphlab as gl 2 query = 'SELECT storage_itemviewaction.id, storage_itemviewaction.created, storage_itemviewaction.tracked_user_id, storage_itemviewaction.item_id, storage_itemviewaction.time_on_page FROM storage_itemviewaction' ----> 3 odbc = gl.connectodbc('dsn=mysqlprod') 4 sf = gl.SFrame.fromodbc(odbc, query) 5 sf.save('data/itemviewactionsraw')

/home/production/.virtualenvs/tailorcore/lib/python2.7/site-packages/graphlab/datastructures/DBConnection.pyc in connectodbc(connstr) 32 """ 33 db = gl.extensions.odbcconnection.unityodbcconnection() ---> 34 db.constructfromodbcconnstr(connstr) 35 mt.getmetrictracker().track('connectodbc', properties={'dbmsname':db.dbmsname,'dbmsversion':db.dbms_version}) 36 return db

/home/production/.virtualenvs/tailorcore/lib/python2.7/site-packages/graphlab/extensions.pyc in <lambda>(*args, **kwargs) 307 elif name in self.functions: 308 # is it a function? --> 309 ret = lambda *args, **kwargs: self.runclassfunction(name, args, kwargs) 310 ret.doc__ = "Name: " + name + "\nParameters: " + str(self._functions[name]) + "\n" 311 try:

/home/production/.virtualenvs/tailorcore/lib/python2.7/site-packages/graphlab/extensions.pyc in __runclassfunction(self, fnname, args, kwargs) 293 # unwrap it 294 argumentdict['function_name'] = fnname --> 295 ret = self.tkclass.get('callfunction', argumentdict) 296 ret = wrapfunctionreturn(ret) 297 return ret

graphlab/cython/cymodel.pyx in graphlab.cython.cymodel.UnityModel.get()

graphlab/cython/cymodel.pyx in graphlab.cython.cymodel.UnityModel.get()

RuntimeError: Runtime Exception. Failed to connect to ODBC driver. IM005:1:0:[unixODBC][Driver Manager]Driver's SQLAllocHandle on SQLHANDLEDBC failed


User 15 | 8/4/2015, 9:07:30 PM


Thanks for reporting this. I've reproduced it on my end and I'm currently looking in to it. This appears to be MySQL specific as my tests with other databases do not show the regression. I'll post here once I find something.


User 2032 | 8/7/2015, 2:46:32 PM

@EvanSamanas Hi Evan,

Any progress on this? This is kind of a blocker for our production deployment - I can switch versions to prepare sframes in 1.4.1 and use features from 1.5.2 manually in R&D but for deployment this is not an option.


User 15 | 8/7/2015, 5:06:17 PM

Hi Jan,

Yes, I believe I've fixed the issue. I hadn't messaged back yet because we need to coordinate a point release for this, so we don't have something for production use yet. I can, however, send you an internal build so you can verify the issue is fixed on your end. Then we can give a production release to you soon. I'll send a link to the email you used to sign up for the forum, but first I need to know: what OS are you running?


User 2032 | 8/7/2015, 5:07:42 PM

Ubuntu 14.04 LTS