-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FAIL: test_graphviz_regression_tests (Graphviz on macOS with multi.dot) #233
Comments
Hmm, difficult, because the error message does not give much information. I am not even sure if the test script could not find the Graphviz executable, or that the Graphviz executable ran, but returned an error code. The preceding call to How did you install Graphviz? Using anaconda/conda/conda-forge on Windows perhaps? Otherwise maybe edit the
|
Graphviz is installed on macOS using MacPorts. |
|
|
Thanks. The JPG output file is the same as your earlier Your Graphviz crashes ( It won't be of any immediate help, but if you want to experiment some more, you can see what other
Results for me:
There is also the
However, the If you want to get rid of the crash, you may need to ask on the Graphviz issue tracker. However, I do think they are already aware that multiple graphs in a single file can cause problems:
Here is some very recent, interesting talk between Graphviz authors about if they should spend their time on preventing crashes made by pathological inputs (in general):
Also, before you report to them, you should test with their latest version. It seems there has been quite some activity there in the last few months. The DOT Language specification does not mention how many graphs a single file can contain. It does not even mention the word 'file', I think. The highest level it defines seems to be For the rest I am not immediately sure if and how we should solve this in pydot. I don't think anyone wants to hard-code which renderers/formatters to use (if that solves it even). Detecting the Graphviz crash and then somehow just ignoring the test might be a possibility, but I am not really interested in implementing it. Maybe you could just move By the way, I checked why this problem only happens with Finally, be aware that even if you get Graphviz working, there is another issue with the |
hit the same issue on my OSX bigsur system. dot -v -Tjpe:cairo:gdk multi.dot > multi_cairo_gdk.jpg is the only one that doesn't get recognized. the others like $ dot -v -Tjpe:cairo:gd multi.dot >multi-cairo-gd.jpg work ok. Here is the output of my dot -T: (pyenv_3.8) foo@denali graphs % dot -T: |
@powderluv Thanks for sharing your findings. Just a few more questions for clarity:
Maybe just the entire output of:
I am trying to pinpoint exactly which combination of graphic libraries leads to problems. We may need this when we start to discuss this issue with others, such as Graphviz or one of those graphics libraries (Cairo/Quartz/GD). That |
quartz:quartz crashes with exit code 139. Others all return 0. zsh: segmentation fault dot -v -Tjpe:quartz:quartz multi.dot > multi-quartz-quartz.jpg (pyenv_3.8) foo@denali graphs % ls -l multijpg I have attached the backtrace of the crash in dot to help debug it. |
@powderluv Sorry for the delay. Interesting stuff.
So, seeing that at the core this is a Graphviz crash on a Graphviz test, this really needs to be reported there, possibly as a comment to 1356 and/or 1377. Would you be willing to do that? I can also do it, but I do not use macOS myself, so I would just be in the middle if they have any follow-up questions. Finally, I thought about if we could do something more here at pydot while we are waiting for Graphviz. For example, disable this specific test under specific circumstances (e.g. macOS), or explicitly set a different renderer than Quartz. Because, for us, our test suite should be testing pydot, not Graphviz. However, I also do not want to change the test suite too easily. I guess it also depends on how quickly we can expect a solution from Graphviz and how well we can target such exceptions. For now, I suggest we at least keep this issue here at pydot open for such discussions. |
Thank you for digging into it. I dont think i care as much about using quartz just that the pydot test fails on a OSX Big Sur install. So if you have a way to skip those tests on OSX we should be good. We can cross post the issue with Graphviz if required to fix properly. Thanks |
Well, actually I was trying to say that I do not feel for disabling tests so easily. Only if it becomes clear Graphviz is not planning to solve this anytime soon, and then still I am not even sure if that should be a blanket disabling of the test on macOS. Maybe some macOS users are not affected by this issue at all, for example. Also, if one day the issue gets solved at Graphviz and we re-enable the test after it having been disabled for a long time, we will get complaints again from users still on older, affected Graphviz-versions. In that case, we may better start our test suite with determining what kind of Graphviz executable we are dealing with and adapt our tests based on that. So, for now, I would prefer to just suggest affected users who want to skip this test to temporarily remove
Yes, I think we can agree that that is required. Question is: Are you available to do that? Because I would prefer an affected user to take the initiative. If not you, then maybe the OP. I am available to help and chime in where necessary, of course. I can also take the lead, but then things may go a lot slower, because I am not affected myself, I do not have any access to macOS and my time is spent on other pydot-issues as well. Just let me know what you prefer. No pressure, because your help so far has been very valuable already, so thank you for that. |
This seems like this issue here: https://gitlab.com/graphviz/graphviz/-/issues/1320 I tried to build with the solution recommended at the end but ran into some compile errors. I agree this should be tracked with graphviz. Thanks for the quick responses. |
I don't know. I noticed Graphviz issue 1320 during my searches in the Graphviz bug tracker as well, but considered it a different issue, because of the very different input and very different backtrace. But maybe it is true what Stephen C. North says there:
Maybe that is true for this bug as well, so both bugs surface because of some change that Apple made in supporting libraries, like stricter checking. But does that mean that they should both be reported in the same issue there? Maybe if there is one simple solution to solve them all at once, but I don't know. Graphviz issues 1377 indicates that there is something strange going on with input files with multiple graphs in Graphviz anyway, and I am not immediately seeing that back in 1320. Anyway, wherever you choose to report (1320, 1377 or 1356), maybe at least mention the other issue numbers, so they can see for themselves if there is a connection. Thank you too, hope it goes well. |
@powderluv @rex4539 Wondering if there are any new findings on this issue? Did either of you ever find the cause of this issue? Did you ever try with Graphviz 2.42.0 or higher? Did you report it at Graphviz? Asking because another Graphviz/macOS issue was reported yesterday in #270. Also, I noticed that Graphviz PR 1310 claimed to solve Graphviz issue 1320, which I thought was maybe related to your issue. It was merged in Graphviz 2.42.0. |
The other Graphviz/macOS Big Sur issue (#270) was solved by upgrading Graphviz from 2.38.0 to the latest version 2.47.3. Can someone with macOS Big Sur and a recent version of Graphviz (>=2.42.0, but preferably the latest) try to run the pydot test suite again? And if it still fails, the output of:
|
Latest master.
The text was updated successfully, but these errors were encountered: