# Troubleshooting This guide covers common issues you may encounter when using Minitrino and their solutions. ## Quick Diagnostics Before diving into specific issues, try these general diagnostic steps: **Run with verbose output:** ```sh minitrino -v --log-level DEBUG ``` **Check Docker status:** ```sh docker info docker ps -a ``` **Check Minitrino version:** ```sh minitrino version ``` **View container logs:** ```sh docker logs minitrino-default docker logs ``` ______________________________________________________________________ ## Common Issues and Solutions ### Port Conflicts **Symptom:** Error message indicating port already in use, or services fail to start. **Detection:** ```sh # Check if a port is in use lsof -i :8080 # or netstat -an | grep 8080 ``` **Solution:** Override default ports using environment variables: ```sh # Override a single port minitrino -v -e __PORT_MINITRINO=8081 provision # Override multiple ports minitrino -v \ -e __PORT_MINITRINO=8081 \ -e __PORT_POSTGRES=5433 \ provision -m postgres ``` **Available Port Variables:** All port variables follow the pattern `__PORT_`. See the [environment variables documentation](environment-variables-and-config.md#port-variables) for the complete list: - `__PORT_MINITRINO` (default: 8080) - `__PORT_MINITRINO_TLS` (default: 8443) - `__PORT_POSTGRES` (default: 5432) - `__PORT_MYSQL` (default: 3306) - `__PORT_MINIO` (default: 9000) - And more... ______________________________________________________________________ ### Docker Out of Memory (OOM) Errors **Symptom:** Container exits unexpectedly with status 137, or Docker logs show "OOMKilled". **Detection:** ```sh # Check if container was OOM killed docker inspect minitrino-default | grep OOMKilled # View container exit code docker ps -a --filter name=minitrino ``` **Solution:** Increase Docker's memory allocation: **Docker Desktop (Mac/Windows):** 1. Docker Desktop → Settings → Resources 1. Increase Memory to 8GB+ (recommended for multiple modules) 1. Click "Apply & Restart" **Linux:** Docker uses host memory directly. Check available memory: ```sh free -h ``` For problematic containers, you may need to reduce JVM heap: ```sh minitrino -v -e JVM_CONFIG='-Xmx2G' provision ``` **Trino JVM Memory Settings:** Default JVM settings in `jvm.config` may be too high. Override with: ```sh minitrino -v -e JVM_CONFIG=$'-Xmx4G\n-Xms2G' provision ``` ______________________________________________________________________ ### Module Version Incompatibility **Symptom:** Module fails to start, or configuration errors appear in logs. **Detection:** Check module version requirements: ```sh minitrino modules -m --json | jq '..versions' ``` **Cause:** Some modules have version constraints (e.g., `spooling-protocol` requires Trino 466+). **Solution:** 1. **Check module compatibility:** ```sh # View your current Trino/Starburst version minitrino version # Check module's version requirements cat ~/.minitrino/lib/modules///metadata.json ``` 1. **Use a compatible version:** ```sh minitrino -v -e CLUSTER_VER=476 provision -m ``` 1. **Override module configuration** (advanced): Edit the module's YAML or properties files in `~/.minitrino/lib/modules///`. ______________________________________________________________________ ### ARM64 Mac Issues (Apple Silicon) **Symptom:** Container fails to start with "exec format error" or platform mismatch warnings. **Affected Modules:** - `sqlserver` - SQL Server requires x86_64 emulation - `db2` - Db2 requires x86_64 emulation - Some Java-based modules may have ARM64 compatibility issues **Detection:** ```sh # Check your architecture uname -m # Should show "arm64" on Apple Silicon # Check Docker platform support docker info | grep -i architecture ``` **Solutions:** **1. Enable Rosetta 2 Emulation (Recommended):** - Docker Desktop → Settings → General - Enable "Use Virtualization Framework" - Enable "VirtioFS" file sharing - Restart Docker Desktop **2. Force x86_64 Platform:** Set platform environment variable: ```sh export DOCKER_DEFAULT_PLATFORM=linux/amd64 minitrino -v provision -m db2 ``` **3. Use Alternative Modules:** - Instead of `sqlserver`, consider `postgres` or `mysql` - Instead of `db2`, consider `postgres` or other OSS databases ______________________________________________________________________ ### Container Startup Failures **Symptom:** Container starts but immediately exits, or never reaches "healthy" state. **Diagnosis Steps:** 1. **Check container logs:** ```sh # View logs for the coordinator docker logs minitrino-default # View logs for a specific module service docker logs # Follow logs in real-time docker logs -f minitrino-default ``` 1. **Check container status:** ```sh # View all containers minitrino resources --container # Inspect container details docker inspect minitrino-default ``` 1. **Check health check status:** ```sh docker inspect minitrino-default | jq '.[0].State.Health' ``` **Common Causes:** - **Configuration errors:** Check `/etc/trino/` or `/etc/starburst/` config files - **Bootstrap script failures:** Check bootstrap logs in container - **Port conflicts:** See [Port Conflicts](#port-conflicts) section - **Memory issues:** See [Docker OOM](#docker-out-of-memory-oom-errors) section - **Missing dependencies:** Check module's `dependentModules` in metadata.json **Log Locations Inside Container:** ```sh docker exec -it minitrino-default bash # Trino/Starburst logs cat /data/trino/var/log/server.log cat /data/starburst/var/log/server.log # Bootstrap script logs (if bootstrap failed) ls /tmp/minitrino/bootstrap/ ``` **Note:** Log paths are based on Trino's default behavior where logs are written to `${node.data-dir}/var/log/server.log`. You can also view logs using `docker logs minitrino-default`. ______________________________________________________________________ ### Bootstrap Script Failures **Symptom:** Container starts but module functionality doesn't work, or provisioning hangs during bootstrap. **Detection:** ```sh # Check container logs for bootstrap execution docker logs minitrino-default 2>&1 | grep -i bootstrap # Look for "PRE START BOOTSTRAPS COMPLETED" and "POST START BOOTSTRAPS COMPLETED" docker logs minitrino-default 2>&1 | grep "BOOTSTRAP" ``` **Common Causes:** 1. **Script syntax errors:** Check bootstrap script for bash errors 1. **External service unavailable:** Bootstrap may wait for services (e.g., Elasticsearch, databases) 1. **Permission issues:** Bootstrap runs as root initially, then ownership changes 1. **Network issues:** Bootstrap may need to download resources **Debugging:** 1. **Check bootstrap script exists:** ```sh docker exec minitrino-default ls -la /mnt/bootstrap/ ``` 1. **Manually run bootstrap:** ```sh docker exec -it minitrino-default bash bash -x /tmp/minitrino/bootstrap//