Resultset never retrieved

Hi! How are you guys doing?

So here’s the thing: I’m new to metabase and I did download the jar and launched it on an EC2 instance. It works like a charm, no problem there, but when I run “”“heavy”"" queries, metabase stops responding or crashes. The “”“heavy”""" queries are less than 1M rows and like 30 columns. The few times it doesn’t freeze I get: “Packet for query is too large (4858668 > 4194304).
You can change this value on the server by setting the max_allowed_packet’ variable.”. I know the database is alive and working like a charm since I’d tested and other queries work perfectly (The database and the EC2 are on the same zone, so there shouldn’t be much latency between them).

Any ideas on why I’m experiencing this error?

Edit:
I just run the query again with a “;” at the end and i got “GC overhead limit exceeded”, I don’t know if this is relevant to the problem.

Edit 2:
Now I get “ResultSet is from UPDATE. No Data.” This is quite confusing…

Btw the query is “SELECT * FROM job;” (obviously not an update)

Hi @jfrojo
Which version of Metabase? How much RAM? What datasource are you connecting to?
If you run the query directly against your database, do you also get the problem there?
Do you have any blob or text columns in that table, you’re querying?

Hi @flamber, the metabase version is: 0.31.2 (the last stable version).
We run an othe batch process on the same EC2 instance wich takes up to 4Gb of ram (not running simultaneously right now), so I guess the ram is abobe 4Gb.
The datasource is a MySQL (I don’t have access to the database version)
And when Executed on other platforms/software like periscope (indirectly) or DataGrip (directly agains to the database) the query works as expected.
There are no blob fields but there are some varchar fields on the table job.

@jfrojo

Okay, I’ve never seen those errors before - specially not ResultSet is from UPDATE. No Data., which seems very, very strange, since Metabase doesn’t allow modifications to the datasources.

I think you have to dig into the Metabase log and see if anything hints at the problem there.

@flamber On the log I got some prety nasty catched java exceptions (the console log which is the only one that I got). Any hints on what Should I look for?

@jfrojo
When you run the query, then everything that generates warnings/errors are interesting, so it sounds like that’s almost everything.
Also make sure to check your MySQL log - maybe it’s set to log the actual queries, so you can verify it’s the same you input in Metabase.

So after some digging I found out that maybe the metabase database is the root problem, so I want to run com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied; you need (at least one of) the SUPER privilege(s) for this operation’’, but I get ‘com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied; you need (at least one of) the SUPER privilege(s) for this operation’. Any Ideas on how to change this property for the metabase’s database?

@jfrojo

Okay, so you’re also using the same database (MySQL) for the internal Metabase data?

You need a lot more privileges for the internal database, since it has to be able to create tables, modify data and so on.
As for datasources, you need only read-access (and able to use SET ... for defining the session timezone/etc)

You should be able to see some error in your MySQL log - from that error, I cannot see what command needs higher privileges.

The thing is that metabase did create this database on it’s own. It’s called: metabase.db.vm.db, but I’m just shoting blind here since there’s not much about this problem, so I do not have permissions over this database.

@jfrojo
That’s the default internal database, which is H2 - and it’s not recommended to use that database in production.
https://www.metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres

So now I’m getting confused and don’t understand what your problem is.

From what I can understand; you have setup Metabase with the default H2 internal database and then you’ve connected to a MySQL datasource, which is generating errors - both some memory stuff and ResultSet is from UPDATE - is that correct?

What do you see in the MySQL log?

I don’t have the MySQL log since the DevOp went to his home earlier, and I thought the default database was MySQL not H2. So the problem is no there and it’s on the MySQL (datasource). And yes I did get multiple errors from the same query pointed out earlier (Which IMHO is quite strange).

I guess I’ll have to wait for tomorrow to get my hands on the log to see what’s going on…