JuliaPy / JuliaPy/PyCall.jl

Thread Safety of PyCall with ibm db package

Abierto
#974 1 comentario 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
1.5k
Forks
186
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I'm having an issue using threads with PyCall. I'm using [IBM's db2 python](https://pypi.org/project/ibm-db/#api) package trying to execute queries on multiple threads and it will crash 99% of the time (race condition?). Serial code always works. I've tried using Threads, Dagger, and Distributed and all have the same issue. I [read that disabling faulthandler](https://discourse.julialang.org/t/help-with-pycall-related-segfault/55998/2) might fix it but I think I'm properly disabling it and it still occurs for me? Any help is appreciated.

Example with `@spawn` crashing:
![image](https://user-images.githubusercontent.com/56286587/158026534-59ed21ca-c47c-466e-ab23-73c49c5508b8.png)

Minimalist example showing it crashing:
![image](https://user-images.githubusercontent.com/56286587/158027553-e0fa5f26-d157-44ef-a377-3dd5149302ba.png)

![image](https://user-images.githubusercontent.com/56286587/158027549-df58dc01-d191-4b88-9eff-cec4a630fd6c.png)

Guía de contribución

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

Línea de trabajo

Empieza reproduciendo el fallo con el IBM db2 Python package enlazado mediante los ejemplos mínimos multihilo; después, compáralo con la ejecución serie y con la configuración de faulthandler intentada. El trabajo estará terminado cuando se haya identificado si el fallo está en PyCall, en el Python package o en la interacción entre hilos, y se haya documentado una solución o workaround confirmado.

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

Evaluación

Stack tecnológico
julia, python
Área
backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.