I tried setting dumpQueriesOnException=true. Here is the query that produces the mysql.general_log in the previous email: Connection to LSST DB1 failed java.sql.SQLException: Qserv error: 'ParseException:ANTLR parse error:unexpected token: /:' Query being executed when exception was thrown: /* mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} ) */SHOW VARIABLES WHERE Variable_name ='language' OR Variable_name = 'net_write_timeout' OR Variable_name = 'interactive_timeout' OR Variable_name = 'wait_timeout' OR Variable_name = 'character_set_client' OR Variable_name = 'character_set_connection' OR Variable_name = 'character_set' OR Variable_name = 'character_set_server' OR Variable_name = 'tx_isolation' OR Variable_name = 'transaction_isolation' OR Variable_name = 'character_set_results' OR Variable_name = 'timezone' OR Variable_name = 'time_zone' OR Variable_name = 'system_time_zone' OR Variable_name = 'lower_case_table_names' OR Variable_name = 'max_allowed_packet' OR Variable_name = 'net_buffer_length' OR Variable_name = 'sql_mode' OR Variable_name = 'query_cache_type' OR Variable_name = 'query_cache_size' OR Variable_name = 'init_connect' On Nov 17, 2014, at 11:53 AM, Tatiana Goldina <[log in to unmask]> wrote: > >> select * from mysql.general_log > > > | 2014-11-17 11:39:54 | qsmaster[qsmaster] @ localhost [] | 26 | 0 | Connect | qsmaster@localhost on qservResult | > | 2014-11-17 11:39:54 | qsmaster[qsmaster] @ localhost [] | 26 | 0 | Query | set autocommit=0 | > | 2014-11-17 11:39:54 | qsmaster[qsmaster] @ localhost [] | 26 | 0 | Query | CREATE TABLE IF NOT EXISTS qservResult.message_28666954 (chunkId INT, code SMALLINT, message CHAR(255), timeStamp FLOAT) ENGINE=MEMORY;LOCK TABLES qservResult.message_28666954 WRITE | > | 2014-11-17 11:39:54 | qsmaster[qsmaster] @ localhost [] | 26 | 0 | Query | UNLOCK TABLES | > | 2014-11-17 11:39:54 | qsmaster[qsmaster] @ localhost [] | 26 | 0 | Quit > > > On Nov 14, 2014, at 11:29 PM, Jacek Becla <[log in to unmask]> wrote: > >> Tatiana, John >> >> Can you do the following: >> >> a) turn on general query log for mysqld by adding >> >> general_log=1 >> log-output=TABLE >> >> to /etc/my.cnf under [mysqld] >> and restarting mysql >> >> b) re-run whatever you are typically running that >> is having problems via qserv (have it talk to >> the mysqld with general log enabled) >> >> c) send us the output from >> select * from mysql.general_log >> >> I will try to re-play it on my local qserv instance >> to reproduce things. >> >> Thanks, >> Jacek >> >> >> >> On 11/14/2014 09:01 PM, Jacek Becla wrote: >>> Nope! It is not the "set" query. I run it by hand, >>> and I got: >>> >>> >>> SET @@session.autocommit = 1; >>> >>> +------------------------------------------+ >>> | no-field-name | >>> +------------------------------------------+ >>> | Ignoring meaningless command (in Qserv). | >>> +------------------------------------------+ >>> >>> and after that Qserv was happily running. >>> >>> --- >>> >>> I don't know how deeply you depend on the query >>> that Tatiana mentioned earlier: >>> >>> >>> show columns from DeepSource from LSST; >>> >>> Because that query will consistently fail right now >>> with something like: >>> >>> ERROR 4110 (Proxy): Qserv error: 'ParseException:ANTLR parse >>> error:unexpected token: show:' >>> >>> we are not supporting "show columns" commands. >>> >>> We are working on code that will make implementing this >>> command easier. Adding support for this is in a quick >>> and dirty way right now would be non-trivial. >>> >>> So, Tatiana / Trey, let us know if you can get away >>> without "show columns" queries in the near term. >>> >>> Jacek >>> >>> >>> >>> >>> >>> On 11/12/2014 02:55 PM, Daniel L. Wang wrote: >>>> Hi John, >>>> >>>> I'm betting that the problem occurs here: >>>> >>>> -> 1291 self._execute_query("SET @@session.autocommit = >>>> {0}".format(switch)) >>>> >>>> "SET..." is not supported right now. >>>> >>>> Qserv doesn't really handle much other than SELECT statements. For the >>>> longest time, we were focused on handling those well. Though they aren't >>>> perfect, we think qserv handles them well enough to support some >>>> practical usage now. One area that has gotten very little attention is >>>> in supporting things other than SQL SELECT queries. There is some >>>> short-circuit code that handles the few extra commands that the >>>> command-line "mysql" binary sends without user intervention, because >>>> that's what we test with. >>>> >>>> I think in this case, the best idea might be to save the proxy logs from >>>> connecting with the JDBC driver and with the mysql-connector. None of us >>>> (AFAIK) have tested with those, but we could see putting in some more >>>> short-circuit code to triage the "extracurricular" queries they send (we >>>> can put in some semi-reasonable canned responses), and that could very >>>> well get things working. We haven't set aside any space in our Nov >>>> sprint to work on this, but we might be able to squeeze it in, deferring >>>> existing tickets (Jacek will have to decide). >>>> >>>> In the meantime, you might be able to workaround this by calling the >>>> mysql binary in a shell process and then processing the output. In >>>> python, this wouldn't be too bad, and I might claim that the code is >>>> only incrementally more complex than using the API, and the performance >>>> (in practice) is mostly indistinguishable for, say, up to 10k or 100k >>>> result rows. >>>> >>>> FYI, qserv internally uses mysqldb when connecting to mysqld through >>>> Python, and the raw mysql C-API when connecting with C++. >>>> >>>> Hope this helps, >>>> -Daniel >>>> >>>> >>>> On 11/11/2014 08:27 PM, John Rector wrote: >>>>> Hi Daniel, >>>>> >>>>> This is a follow-up on my earlier note about trouble accessing Qserv >>>>> with JDBC. I tried a python module as well. (Results are not in the >>>>> logs I sent you, but I can send them if it's helpful.) >>>>> >>>>> ~> pip list | grep mysql >>>>> *mysql-connector-python (2.0.2)* >>>>> >>>>> It worked when I tried to connect to a standard MySQL db, but not when >>>>> I tried to connect to qserv. Immediately following the failure, I cut >>>>> and pasted the qserv connection values I had used into a /mysql/ >>>>> command in the same terminal session. That connect to the LSST db. >>>>> Below is the output from the Python connection attempt. >>>>> >>>>> BTW: is there a preferred Python module to use with qserv? I have a >>>>> few, but tried only one tonight—the one from the MySQL site. One more >>>>> question, has anyone tried to fill a Pandas data frame directly from a >>>>> qserv query? >>>>> >>>>> My ipython session: >>>>> >>>>> In [1]: *import mysql.connector* >>>>> >>>>> In [2]:*cnx = mysql.connector.connect(user='qsmaster', >>>>> host='lsst-db1.ipac.caltech.edu <http://lsst-db1.ipac.caltech.edu>', >>>>> database='LSST', port=4040)* >>>>> >>>>> --------------------------------------------------------------------------- >>>>> >>>>> InternalError Traceback (most recent call >>>>> last) >>>>> <ipython-input-2-15e0754e8f3a> in <module>() >>>>> ----> 1 cnx = mysql.connector.connect(user='qsmaster', >>>>> host='lsst-db1.ipac.caltech.edu <http://lsst-db1.ipac.caltech.edu>', >>>>> database='LSST', port=4040) >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/__init__.pyc >>>>> >>>>> in connect(*args, **kwargs) >>>>> 157 >>>>> 158 # Regular connection >>>>> --> 159 return MySQLConnection(*args, **kwargs) >>>>> 160 Connect = connect # pylint: disable=C0103 >>>>> 161 >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/connection.pyc >>>>> >>>>> in __init__(self, *args, **kwargs) >>>>> 127 >>>>> 128 if len(kwargs) > 0: >>>>> --> 129 self.connect(**kwargs) >>>>> 130 >>>>> 131 def _get_self(self): >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/connection.pyc >>>>> >>>>> in connect(self, **kwargs) >>>>> 453 self.disconnect() >>>>> 454 self._open_connection() >>>>> --> 455 self._post_connection() >>>>> 456 >>>>> 457 def shutdown(self): >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/connection.pyc >>>>> >>>>> in _post_connection(self) >>>>> 433 """ >>>>> 434 self.set_charset_collation(self._charset_id) >>>>> --> 435 self.autocommit = self._autocommit >>>>> 436 if self._time_zone: >>>>> 437 self.time_zone = self._time_zone >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/connection.pyc >>>>> >>>>> in set_autocommit(self, value) >>>>> 1289 """Toggle autocommit""" >>>>> 1290 switch = 'ON' if value else 'OFF' >>>>> -> 1291 self._execute_query("SET @@session.autocommit = >>>>> {0}".format(switch)) >>>>> 1292 self._autocommit = value >>>>> 1293 >>>>> >>>>> /Users/johnrector/anaconda/lib/python2.7/site-packages/mysql/connector/connection.pyc >>>>> >>>>> in _execute_query(self, query) >>>>> 1495 """ >>>>> 1496 if self._unread_result is True: >>>>> -> 1497 raise errors.InternalError("Unread result found.") >>>>> 1498 >>>>> 1499 self.cmd_query(query) >>>>> >>>>> InternalError: Unread result found. >>>>> >>>>> ______________________________ >>>>> John Rector >>>>> IPAC, California Institute of Technology >>>>> MS 100-22 >>>>> 770 S. Wilson Ave. >>>>> Pasadena, CA 91125 >>>>> USA >>>>> Tel: (626) 395—8577 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> Use REPLY-ALL to reply to list >>>> >>>> To unsubscribe from the QSERV-L list, click the following link: >>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1 >>>> >>> >> >> >> >> -- >> BEGIN-ANTISPAM-VOTING-LINKS >> ------------------------------------------------------ >> >> Teach CanIt if this mail (ID 04NfHvOH3) is spam: >> Spam: https://canit.ipac.caltech.edu/canit/b.php?i=04NfHvOH3&m=f032d505f023&c=s >> Not spam: https://canit.ipac.caltech.edu/canit/b.php?i=04NfHvOH3&m=f032d505f023&c=n >> Forget vote: https://canit.ipac.caltech.edu/canit/b.php?i=04NfHvOH3&m=f032d505f023&c=f >> ------------------------------------------------------ >> END-ANTISPAM-VOTING-LINKS >> > ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the QSERV-L list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1