Files
proxmox/docs/archive/historical/BLOCKSCOUT_LOGS_SUMMARY.md
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

175 lines
5.2 KiB
Markdown

# Blockscout Logs Review Summary
**Date**: December 23, 2025
**Container**: VMID 5000 on pve2 (192.168.11.140)
**Status**: 🔴 **CRITICAL ISSUE - DATABASE MIGRATIONS NOT RUN**
---
## 🔴 Critical Issue Identified
### Root Cause
**Blockscout database is empty - no tables exist. The application crashes on startup because it cannot find required database tables.**
---
## Key Findings
### 1. Database Status
-**PostgreSQL Container**: Running and healthy
-**Database Schema**: **EMPTY** - No tables exist
-**Migration Status Table**: Does not exist (required by Blockscout)
**Evidence**:
```bash
docker exec blockscout-postgres psql -U blockscout -d blockscout -c '\dt'
# Result: Did not find any relations.
```
### 2. Blockscout Container Status
-**Container**: Running (but constantly restarting)
-**Application**: Crashes immediately on startup
-**Phoenix Endpoint**: Never starts successfully
**Container State**: `Up` but application exits with `shutdown`
### 3. Error Pattern Analysis
#### Primary Errors:
1. **`ERROR 42P01 (undefined_table) relation "migrations_status" does not exist`**
- Blockscout tries to check migration status before running migrations
- This table doesn't exist because migrations haven't run
2. **`ERROR 42P01 (undefined_table) relation "blocks" does not exist`**
- Application tries to query blocks table immediately on startup
- Table doesn't exist because schema hasn't been created
3. **`ERROR 42P01 (undefined_table) relation "transactions" does not exist`**
- Counters and background tasks try to query non-existent tables
- Causes GenServer processes to terminate
4. **`could not lookup Ecto repo Explorer.Repo because it was not started or it does not exist`**
- Application shutdown occurs before Ecto repo fully initializes
- All database queries fail
#### Application Lifecycle:
```
1. Container starts
2. Blockscout application begins initialization
3. Ecto tries to start and query database
4. Queries fail (tables don't exist)
5. GenServers terminate with errors
6. Application shuts down: "Application explorer exited: shutdown"
7. Container restarts (if restart policy is set)
```
### 4. Nginx Status
-**Nginx Service**: Running and healthy
-**Upstream Connection**: Fails (HTTP 502)
- **Error**: `recv() failed (104: Unknown error) while reading response header from upstream`
- **Cause**: Blockscout on port 4000 is not responding
**Nginx Log Pattern**:
- All requests return `502 Bad Gateway`
- Upstream (`http://127.0.0.1:4000`) not available
- Connection refused or prematurely closed
### 5. PostgreSQL Logs
-**Connection Health**: Accepting connections
-**Query Errors**: Constant stream of "relation does not exist" errors
- **Pattern**: Blockscout tries to query tables → PostgreSQL returns error → Application crashes
---
## Missing Tables
The following tables are expected but do not exist:
- `migrations_status` (critical - tracks migration state)
- `blocks`
- `transactions`
- `addresses`
- `smart_contracts`
- `token_instances`
- `token_transfers`
- `logs`
- `internal_transactions`
- `withdrawals`
- ... (and many more)
---
## Impact
1. **Blockscout Web UI**: Not accessible (HTTP 502)
2. **API Endpoints**: Not responding
3. **Indexing**: Not running (requires database schema)
4. **External Access**: `https://explorer.d-bis.org` returns 502
---
## Solution Required
### Immediate Action: Run Database Migrations
Blockscout needs to run its database migrations before it can start. The migrations create all required tables.
**Options**:
1. **Manual Migration** (Recommended):
```bash
docker exec blockscout /app/bin/blockscout eval "Explorer.Release.migrate()"
```
2. **Alternative**: Use Blockscout's built-in migration command:
```bash
docker exec blockscout /app/bin/blockscout migrate
```
3. **Check if auto-migration is enabled** in docker-compose.yml environment variables
---
## Next Steps
1. ✅ **Diagnosis Complete**: Database schema missing
2. ⏳ **Action Required**: Run database migrations
3. ⏳ **Verification**: Confirm tables are created
4. ⏳ **Test**: Verify Blockscout starts successfully
5. ⏳ **Monitor**: Check logs for successful startup
---
## Log Locations
| Component | Location | Key Issues |
|-----------|----------|------------|
| Blockscout | `docker logs blockscout` | Missing tables, application shutdown |
| PostgreSQL | `docker logs blockscout-postgres` | "relation does not exist" errors |
| Nginx Error | `/var/log/nginx/error.log` | Upstream connection failures (502) |
| Nginx Access | `/var/log/nginx/access.log` | All requests return 502 |
---
## Related Files
- `BLOCKSCOUT_LOGS_REVIEW.md` - Detailed log analysis guide
- `BLOCKSCOUT_SSL_COMPLETE_STATUS.md` - SSL setup status
- `BLOCKSCOUT_CONFIGURATION_GUIDE.md` - Configuration details
---
## Summary
**Status**: ❌ **BLOCKSCOUT NOT FUNCTIONAL**
**Root Cause**: Database migrations have not been executed. Database is empty with no schema.
**Impact**: Complete service outage - Blockscout cannot start without database tables.
**Resolution**: Run database migrations to create required schema, then restart Blockscout.
---
**Next Action**: Execute database migrations manually using Blockscout's migration command.