Query Debugging
Endpoint errors⚓︎
Issue: Client connection timeout⚓︎
Check traefik count⚓︎
Check Traefik service count is \< 1.
Fix traefik count⚓︎
Scale Traefik via hydrolixcluster.yaml.
For more information, see Scale Profiles.
Check IP allowlist⚓︎
Check that the IP allowlist contains the requesting IP address.
Download the cluster configuration:
Fix IP allowlist⚓︎
-
Add the IP to the allowlist:
-
Add the IPs.
-
Apply the changes to your cluster:
Find more information on IP allowlists, see Configure IP Access.
Issue: Client authorization error⚓︎
Check auth required⚓︎
Check if Query endpoint authentication is enabled.
Download your cluster configuration:
In the configuration, look for enable_query_auth:
Fix auth required⚓︎
If enabled, ensure the user is using the correct username and password or bearer token. For more information, see Enable Query Authentication.
If query authentication isn't enabled, enable it.
Check TLS required⚓︎
Check if TLS is enabled.
Download your cluster configuration:
In the configuration, look for use_tls:
Fix TLS required⚓︎
If TLS is enabled, check the client is connecting using a secure TLS connection.
If TLS isn't enabled, enable it.
If using native protocol connection, secure uses port 9440 and non-secure uses port 9000.
Issue: HTTP 503 Service Temporarily Unavailable⚓︎
For more information, see Scale Profiles.
Check query head count⚓︎
Check query-head count is at a minimum of 1.
Fix query head count⚓︎
Scale query-head via hydrolixcluster.yaml:
Check query peer count⚓︎
Check query-peer count is at a minimum of 1.
Fix query peer count⚓︎
Scale query-peer via hydrolixcluster.yaml:
Pools⚓︎
For pools, check that the pool has query-peers.
Issue: Database exceptions⚓︎
For more information, see Scale Profiles.
DB::Exception: HdxStorageError: No peers available to run query in poolDB::Exception: Database '_local' doesn't existDB::NetException: Net Exception: No route to host
Issue: Database timeout⚓︎
DB::NetException: Timeout: connect timed out
Check Zookeeper is running⚓︎
Check ZooKeeper instance count is 3:
Fix Zookeeper is running⚓︎
Scale ZooKeeper with hydrolixcluster.yaml.
Issue: Database lost connection⚓︎
DB::NetException: Error: Lost connection to the database server. (version 3.x.x)>. (STD_EXCEPTION)
Check query head can reach PostgreSQL⚓︎
This error is uncommon and should only happen when a query head isn’t used for days or weeks.
Fix query head can reach PostgreSQL⚓︎
Retry the query.
If this doesn’t resolve the error, check that the PostgreSQL instance is suitably scaled. Increase CPU or memory if required.
-
Download the cluster configuration.
-
Update the scale.
-
Apply the configuration to your cluster.
Check PostgreSQL is running⚓︎
Check that PostgreSQL is running and in a healthy state.
Fix PostgreSQL is running⚓︎
Update the scale of PostgreSQL
-
Download the cluster configuration.
-
Update the scale.
-
Apply the configuration to your cluster.
If PostgreSQL is failing, even if resolved, this is a Severity 1 incident. Notify Hydrolix as soon as possible.
Syntax and user query errors⚓︎
Check project and table exist⚓︎
The table or project is unknown.
Fix project and table exist⚓︎
Specify the project and table.
Check project and table names⚓︎
If the table and/or project has a hyphen in the name. For example, my-table.my-project
Fix project and table names⚓︎
Add backticks (`) around the table and project names.
Other errors⚓︎
When a query error occurs with syntax or execution errors, the system can be overly verbose. Errors can be large and contain a lot of information. A good place to start when debugging is the first couple of lines, as they often contain the reason for the error. This example shows an unknown table and database has been requested:
Query circuit breaker errors⚓︎
Hydrolix can apply circuit breakers to a query that help protect the infrastructure from abuse. Learn more about circuit breakers.