coin-or / coin-or/python-mip

Segmentation fault when adding lazy constaints to CBC

Abierto
#175 2 comentarios 0 reacciones 0 asignados Ver en GitHub
bug cbc reproducible
Lenguaje dominante
Linear Programming
Estrellas
600
Forks
108
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Describe the bug**
I create a small MIP model, using CBC. I also create a `ConstrsGenerator` and add it via `model.lazy_constrs_generator`.
When I call `model.optimize()`, Python crashes with a segmentation faul.

**To Reproduce**
See [script and output in gist](https://gist.github.com/rschwarz/7ed3135a19d7ecd24307d6f56e475732).

**Desktop (please complete the following information):**
- Operating System, version: Linux t440p 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
- Python version: CPython 3.7.3
- Python-MIP version (we recommend you to test with the latest version): 1.13.0

**Additional context**
I believe that the `generate_constrs` method of the `ConstrsGenerator` is not even called. Also, when adding it via `model.cuts_generator`, there is no crash (but it's also never called?).

Maybe this has to do with the *limited preprocessing* in CBC that the documentation hints at?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza ejecutando el script y la salida del gist enlazado con Python-MIP 1.13.0 y CBC; después, sigue model.optimize() a través de las rutas lazy_constrs_generator y cuts_generator. Comprueba si se alcanza ConstrsGenerator.generate_constrs; el trabajo estará terminado cuando la optimización ya no termine con segfaults y el generador configurado se invoque como se espera.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.