Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Heap corruption when printing, if importing pytorch *before* julia

Abierto
#499 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

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

Línea de trabajo

Reproduce el ejemplo mínimo en macOS con los dos órdenes de importación y, después, empieza en julia/core.py alrededor de Julia.eval, _call y check_exception. Sigue el error EEXIST de pipe_open notificado y compara el comportamiento cuando PyTorch se importa primero; se considera terminado cuando el ejemplo ya no corrompe el heap ni se aborta.

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

Descripción

I have no idea what this very strange issue comes from. It could be a combination of my specific torch version (tested 1.11-1.13, still occurs), specific operating system (macOS), specific python version (3.8.9) combined with my specific julia version (1.7.2).

Here's a minimal example:

import torch
from julia import Pkg
Pkg.add("StatsBase")

The output is:

Python(61891,0x100598580) malloc: *** error for object 0xffffffff00000000: pointer being freed was not allocated
Python(61891,0x100598580) malloc: *** set a breakpoint in malloc_error_break to debug

signal (6): Abort trap: 6
in expression starting at none:0
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 11431809 (Pool: 11423282; Big: 8527); GC: 14
[1]    61891 abort      ~/venvs/main/bin/ipython

However, I can make this go away with:

from julia import Pkg
import torch
Pkg.add("StatsBase")

This works fine.

I see this more helpful error when I run this code in a debugger:

File ~/venvs/main/lib/python3.8/site-packages/julia/core.py:621, in Julia.eval(self, src)
    619 if src is None:
    620     return None
--> 621 ans = self._call(src)
    622 if not ans:
    623     return None

File ~/venvs/main/lib/python3.8/site-packages/julia/core.py:549, in Julia._call(self, src)
    547 # logger.debug("_call(%s)", src)
    548 ans = self.api.jl_eval_string(src.encode('utf-8'))
--> 549 self.check_exception(src)
    551 return ans

File ~/venvs/main/lib/python3.8/site-packages/julia/core.py:603, in Julia.check_exception(self, src)
    601 else:
    602     exception = sprint(showerror, self._as_pyobj(res))
--> 603 raise JuliaError(u'Exception \'{}\' occurred while calling julia code:\n{}'
    604                  .format(exception, src))

JuliaError: Exception 'IOError: pipe_open: file already exists (EEXIST)' occurred while calling julia code:

So it seems like perhaps pytorch is taking over one of the pipes for printing from Python?

Lenguaje dominante
Python
Estrellas
893
Forks
101
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaPy/pyjulia

Todos los issues de JuliaPy/pyjulia

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.