test_mm_domain_limits fails intermittently due to unhandled memory resource limit error (errorCode 535)
- Linguagem predominante
- Java
- Estrelas
- 3.1k
- Forks
- 1.4k
- Merge médio
- 6d 19h
- PRs com merge (30d)
- 32
Descrição
### 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.
Guia de contribuição
Direção de pesquisa
Comece com test/integration/component/test_mm_domain_limits.py e inspecione test_03_delete_vm; em seguida, execute o comando nosetests focado com a configuração avançada do simulador. Verifique se errorCode 535 é tratado como um resultado esperado, se erros inesperados da API ainda causam falha e se a exclusão é tentada somente quando a criação da VM é bem-sucedida.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- testing
- Tipo de issue
- Bug
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Pouca atividade
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 78/100