test_mm_domain_limits fails intermittently due to unhandled memory resource limit error (errorCode 535)
- Lenguaje dominante
- Java
- Estrellas
- 3.1k
- Forks
- 1.4k
- Merge medio
- 6 d 19 h
- PR fusionados (30 d)
- 32
Descripción
### problem
While working on PR #13490, I noticed the Simulator CI / test job intermittently fails on test_mm_domain_limits (test_03_delete_vm).
The test calls deployVirtualMachine, which fails with CloudStack API errorCode 535: "Maximum amount of resources of Type = 'memory' ... is exceeded". Because the VM was never created, the test then attempts to delete a VM that doesn't exist, causing test_03_delete_vm to fail.
The test does not currently handle this resource-limit API error as a valid/expected outcome.
### versions
Apache CloudStack version: main branch (4.23.0.0-SNAPSHOT)
Environment: GitHub Actions Simulator CI (advanced zone), simulator hypervisor — not a real deployment
### The steps to reproduce the bug
1. Run the Simulator CI test suite including component/test_mm_domain_limits.py
2. Observe test_03_delete_vm
3. deployVirtualMachine fails with errorCode 535 (memory limit exceeded)
4. Test then attempts to delete a VM that was never created, causing a failure
Can also be reproduced locally with:
nosetests-3.4 --with-marvin --marvin-config=setup/dev/advdualzone.cfg test/integration/component/test_mm_domain_limits.py:test_03_delete_vm -s -a tags=advanced
### What to do about it?
Update test_03_delete_vm in test/integration/component/test_mm_domain_limits.py to treat the CloudStack API errorCode 535 (memory resource limit exceeded) as an expected outcome, and only attempt VM deletion if creation succeeded. Example:
try:
vm = VirtualMachine.create(self.apiclient, ...)
vm_created = True
except CloudstackAPIException as ex:
if "errorCode: 535" in str(ex) or "Maximum amount of resources of Type = 'memory'" in str(ex):
vm_created = False
else:
raise
if vm_created:
vm.delete(self.apiclient)
Alternatively, the domain/project memory limit could be raised in test setup if VM creation is expected to succeed in this test.
Guía de contribución
Línea de trabajo
Comienza con test/integration/component/test_mm_domain_limits.py e inspecciona test_03_delete_vm; después, ejecuta el comando nosetests focalizado contra la configuración avanzada del simulador. Verifica que errorCode 535 se trate como un resultado esperado, que los errores inesperados de la API sigan provocando un fallo y que la eliminación solo se intente cuando la creación de la VM tenga éxito.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- testing
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Tranquilo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 78/100