Commit 2bed3b5
authored
Fix critical Azure VMSS zero-scale bugs (timing, race conditions, SQL) (kevoreilly#2905)
* Fix case-sensitive platform comparison in Azure VMSS
Platform comparison was case-sensitive, causing tasks to fail when
platform tag used different casing (e.g., 'Windows' vs 'windows').
Fix: Use .lower() on both sides of comparison.
File: modules/machinery/az.py
Lines: ~660
* Fix SQL NULL handling in options_not_like filter
Tasks with NULL or empty 'options' were not scheduled because
SQL 'NULL NOT LIKE x' returns NULL (not TRUE).
Fix: Import or_() and explicitly check for NULL and empty string.
File: lib/cuckoo/core/database.py
Lines: ~58 (import), ~2100 (fix)
* Fix 7 critical Azure VMSS zero-scale bugs
This commit combines 7 interdependent fixes for az.py:
1. VM provisioning timing (retry loop: 12×5s)
2. Scaling-flag race condition (add scaling_lock)
3. Import TASK_RUNNING for task counting
4. VMs deleted while tasks running (count PENDING+RUNNING)
5. Scaling flag deadlock (finally block)
6. Placeholder duplicate key (session.flush)
7. Zero-scale placeholder check (machine.reserved)
All fixes tested together in production for 2 weeks.
File: modules/machinery/az.py
Lines: Multiple locations (~26, ~96, ~444, ~641, ~687, ~1126, ~1381)1 parent a1c4c1f commit 2bed3b5
2 files changed
+184
-128
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
2097 | 2098 | | |
2098 | 2099 | | |
2099 | 2100 | | |
2100 | | - | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
2101 | 2110 | | |
2102 | 2111 | | |
2103 | 2112 | | |
| |||
0 commit comments