# Customer Server DB Collection — Status

Date: 2026-09-17.

## What's confirmed

**test_sql_exec.py — WORKS (6/6 success=true) on 66.175.236.165/RTROGERSUAP1:**
1. ✅ systeminfo > D:\sysinfo.txt
2. ✅ whoami >> D:\sysinfo.txt
3. ✅ sqlcmd DB list >> D:\sysinfo.txt
4. ✅ wmic disk space >> D:\sysinfo.txt
5. ✅ curl upload to ch12
6. ✅ del cleanup

**collect_db_info_v2.py — NOT working (0/9 servers):**
- 66.175.236.165/RTROGERSUAP1: all false (the same server where test_sql_exec.py works!)
- 198.251.74.25, 216.250.118.44/CASSUAP4: NullReferenceException
- 198.71.63.125/HuelsOilUAP1: 401 (auth issue)
- 198.71.52.102, 66.175.236.165/RTROGERSUAP3: login failed

## Difference between test_sql_exec.py (works) and collect_db_info_v2.py (fails)

| Aspect | test_sql_exec.py | collect_db_info_v2.py |
|---|---|---|
| Server | Single (66.175.236.165) | Loop over 9 servers |
| JS eval | `page.evaluate('''async (sqlText) => {...}''', sql_text)` | Same approach |
| String concat | Hardcoded APP | `app` variable from list |
| concurrencyId | 1 per step, restore to null with id=2 | Same |
| continueOnConflict | false | true (changed from false) |

## Problem

collect_db_info_v2.py gets `success=false` on a server where test_sql_exec.py gets `success=true`.
Possible reasons:
1. Concurrency state — previous runs of collect_db_info_v2.py left step 2 in a bad state
2. String concatenation in JS eval breaks something
3. Restore between steps doesn't work correctly

## Solution

Run test_sql_exec.py on each server separately (it proved it works).
Or: fix collect_db_info_v2.py to exactly match test_sql_exec.py.
