numba / numba/numba-prototypes
Investigate graphviz breakage
- Dominant language
- HTML
- Stars
- 8
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
See https://github.com/numba/numba-prototypes/pull/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 . [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
```pytb
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)
:13: in
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 = . 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 . [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
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with environment.yml and reproduce the failure from tests/test_ch04_1.py. Trace the SVG conversion through utils/report.py, then inspect the graphviz dot invocation and its reported assertion failure. Done means identifying the graphviz breakage and updating the environment or related setup so the test completes without the SIGABRT.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100