Tried connecting to a plain MySQL DB. These are the commands executed during the connection. 1. duration: 2 ms, connection-id: 1233, statement-id: 1, resultset-id: 1, message: /* mysql-connector-java-5.1.34 ( Revision: [log in to unmask] ) */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 = 'license' OR Variable_name = 'init_connect' 2. duration: 0 ms, connection-id: 1233, statement-id: 1, resultset-id: 2, message: /* mysql-connector-java-5.1.34 ( Revision: [log in to unmask] ) */SELECT @@session.auto_increment_increment 3. duration: 0 ms, connection-id: 1233, statement-id: 999, resultset-id: 0, message: SET NAMES latin1 4. duration: 0 ms, connection-id: 1233, statement-id: 999, resultset-id: 0, message: SET character_set_results = NULL 5. duration: 0 ms, connection-id: 1233, statement-id: 999, resultset-id: 0, message: SET autocommit=1 6. duration: 0 ms, connection-id: 1233, statement-id: 999, resultset-id: 0, message: SET sql_mode='STRICT_TRANS_TABLES' On Nov 17, 2014, at 12:53 PM, Jacek Becla <[log in to unmask]> wrote: > Tatiana, John > > It'd still be very useful if you'd run it again vanilla mysql, > *with no qserv in the loop* > > Jacek > > > > On 11/17/2014 12:14 PM, Tatiana Goldina wrote: >> 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 04NgISe9c) is spam: > Spam: https://canit.ipac.caltech.edu/canit/b.php?i=04NgISe9c&m=593e092d3ae1&c=s > Not spam: https://canit.ipac.caltech.edu/canit/b.php?i=04NgISe9c&m=593e092d3ae1&c=n > Forget vote: https://canit.ipac.caltech.edu/canit/b.php?i=04NgISe9c&m=593e092d3ae1&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