Skip to content

Investigate graphviz breakage #39

@sklam

Description

@sklam

See #37

The environment.yml requires a post-install fix to reinstall graphviz.

The error is:

E           graphviz.backend.execute.CalledProcessError: Command '[PosixPath('dot'), '-Kdot', '-Tsvg']' died with <Signals.SIGABRT: 6>. [stderr: b'Error: segment [(270.89, 357.85),(265.24,361.05)] does not intersect box ll=(265,319),ur=(343,361)\nAssertion failed: (0), function boxIntersectf, file compound.c, line 67.\n']
full traceback
tests/test_ch04_1.py:7:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/autotests.py:33: in autotest_notebook
    exec_with_linecache(code, synthetic_filename, ns, ns)
tests/autotests.py:118: in exec_with_linecache
    exec(compiled_code, globals_dict, locals_dict)
<ch04_1_typeinfer_ifelse_main_block_6>:13: in <module>
    cres = _ch03_compiler_pipeline(
utils/pipeline.py:235: in __call__
    result = func(**filtered_kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^
ch03_egraph_program_rewrites.py:61: in egraph_saturation
    pipeline_report.append("EGraph Saturated", egraph)
utils/report.py:237: in append
    content = egraph_to_svg(content)
              ^^^^^^^^^^^^^^^^^^^^^^
utils/report.py:36: in egraph_to_svg
    svg_raw = content.pipe(format="svg", quiet=True)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
temp_env/lib/python3.12/site-packages/graphviz/piping.py:104: in pipe
    return self._pipe_legacy(format,
temp_env/lib/python3.12/site-packages/graphviz/_tools.py:185: in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
temp_env/lib/python3.12/site-packages/graphviz/piping.py:121: in _pipe_legacy
    return self._pipe_future(format,
temp_env/lib/python3.12/site-packages/graphviz/piping.py:161: in _pipe_future
    return self._pipe_lines(*args, input_encoding=self.encoding, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
temp_env/lib/python3.12/site-packages/graphviz/backend/piping.py:161: in pipe_lines
    proc = execute.run_check(cmd, capture_output=True, quiet=quiet, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

cmd = [PosixPath('dot'), '-Kdot', '-Tsvg'], input_lines = <generator object pipe_lines.<locals>.<genexpr> at 0x1245549e0>
encoding = None, quiet = True, kwargs = {'startupinfo': None, 'stderr': -1, 'stdout': -1}
proc = CompletedProcess(args=[PosixPath('dot'), '-Kdot', '-Tsvg'], returncode=-6, stdout=b'', stderr=b'Error: segment [(270.8...t intersect box ll=(265,319),ur=(343,361)\nAssertion failed: (0), function boxIntersectf, file compound.c, line 67.\n')

    def run_check(cmd: typing.Sequence[typing.Union[os.PathLike, str]], *,
                  input_lines: typing.Optional[BytesOrStrIterator] = None,
                  encoding: typing.Optional[str] = None,
                  quiet: bool = False,
                  **kwargs) -> subprocess.CompletedProcess:
        """Run the command described by ``cmd``
            with ``check=True`` and return its completed process.

        Raises:
            CalledProcessError: if the returncode of the subprocess is non-zero.
        """
        log.debug('run %r', cmd)
        if not kwargs.pop('check', True):  # pragma: no cover
            raise NotImplementedError('check must be True or omited')

        if encoding is not None:
            kwargs['encoding'] = encoding

        kwargs.setdefault('startupinfo', _compat.get_startupinfo())

        try:
            if input_lines is not None:
                assert kwargs.get('input') is None
                assert iter(input_lines) is input_lines
                if kwargs.pop('capture_output'):
                    kwargs['stdout'] = kwargs['stderr'] = subprocess.PIPE
                proc = _run_input_lines(cmd, input_lines, kwargs=kwargs)
            else:
                proc = subprocess.run(cmd, **kwargs)
        except OSError as e:
            if e.errno == errno.ENOENT:
                raise ExecutableNotFound(cmd) from e
            raise

        if not quiet and proc.stderr:
            _write_stderr(proc.stderr)

        try:
            proc.check_returncode()
        except subprocess.CalledProcessError as e:
>           raise CalledProcessError(*e.args)
E           graphviz.backend.execute.CalledProcessError: Command '[PosixPath('dot'), '-Kdot', '-Tsvg']' died with <Signals.SIGABRT: 6>. [stderr: b'Error: segment [(270.89, 357.85),(265.24,361.05)] does not intersect box ll=(265,319),ur=(343,361)\nAssertion failed: (0), function boxIntersectf, file compound.c, line 67.\n']

temp_env/lib/python3.12/site-packages/graphviz/backend/execute.py:90: CalledProcessError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions