Skip to content
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

[tune](deps): Bump graphviz from 0.8.4 to 0.16 in /python/requirements #5

Closed

Conversation

dependabot[bot]
Copy link

@dependabot dependabot bot commented on behalf of github Jan 26, 2021

Bumps graphviz from 0.8.4 to 0.16.

Changelog

Sourced from graphviz's changelog.

Version 0.16

Add .unflatten() method to Graph, Digraph, and Source. Add standalone unflatten().

Make Source.__str__() return the .source instead of the repr() (like Graph and Digraph).

Render with dot -K<engine> ... instead of <engine> ... internally (work around upstream issue <https://gitlab.com/graphviz/graphviz/-/issues/1753>_).

Add documentation hint to archived upstream version for Windows.

Re-render most documentation graphs with Graphviz 2.44.1.

Version 0.15

Graph and Digraph instances created via the context-manager returned by subgraph() now (re)use directory, format, engine, and encoding from the parent instead of using defaults (behavioral change). Note that these attributes are only relevant when rendering the subgraph independently (i.e. as a stand-alone graph) from within the with-block, which was previously underdocumented (PR BMaxV). To reflect that the DOT language does not allow subgraph statements to specify strict (i.e. no way to override the setting of the containing graph), instances created via the context-manager are now strict=None instead of False (so they continue to render stand-alone as non-strict by default).

Drop Python 3.5 support and tag Python 3.9 support.

Add documentation link to new upstream installation procedure for Windows.

Version 0.14.2

Adapt graphviz.version() to support the Graphviz Release version entry format introduced with 2.44.2 (version() is needed to run the tests).

Version 0.14.1

Document the colon-separated node[:port[:compass]] format used for tail and head points in the edge()- and edges()-methods (PR Michał Góral).

... (truncated)

Commits
  • 54b4eec release 0.16
  • ebd2f99 duplicate notebook under old name to work around nbviewer cache invalidation
  • d58fe75 reformat link
  • 6c81671 document latest changes
  • 384457a add hint for archived graphviz-2.38.msi to workaround known issues
  • cf0146e re-render most graphs with latest Graphviz 2.44.1
  • 422adc1 workaround Graphviz 2.44.1 missing engine commands except dot under Windows
  • f97f2ab add chdir so the checked-out version is used
  • bdab503 rename notebook.ipynb to graphviz-notebook.ipynb
  • ab7e243 move default encoding definition to backend, re-order engine, format, encoding
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually

@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Feb 15, 2021

Looks like graphviz is no longer a dependency, so this is no longer needed.

@dependabot dependabot bot closed this Feb 15, 2021
@dependabot dependabot bot deleted the dependabot/pip/python/requirements/graphviz-0.16 branch February 15, 2021 21:04
edoakes pushed a commit that referenced this pull request Aug 5, 2022
We encountered SIGSEGV when running Python test `python/ray/tests/test_failure_2.py::test_list_named_actors_timeout`. The stack is:

```
#0  0x00007fffed30f393 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) ()
   from /lib64/libstdc++.so.6
#1  0x00007fffee707649 in ray::RayLog::GetLoggerName() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#2  0x00007fffee70aa90 in ray::SpdLogMessage::Flush() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#3  0x00007fffee70af28 in ray::RayLog::~RayLog() () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#4  0x00007fffee2b570d in ray::asio::testing::(anonymous namespace)::DelayManager::Init() [clone .constprop.0] ()
   from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#5  0x00007fffedd0d95a in _GLOBAL__sub_I_asio_chaos.cc () from /home/admin/dev/Arc/merge/ray/python/ray/_raylet.so
#6  0x00007ffff7fe282a in call_init.part () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff7fe2931 in _dl_init () from /lib64/ld-linux-x86-64.so.2
#8  0x00007ffff7fe674c in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff7b82e79 in _dl_catch_exception () from /lib64/libc.so.6
#10 0x00007ffff7fe5ffe in _dl_open () from /lib64/ld-linux-x86-64.so.2
#11 0x00007ffff7d5f39c in dlopen_doit () from /lib64/libdl.so.2
#12 0x00007ffff7b82e79 in _dl_catch_exception () from /lib64/libc.so.6
#13 0x00007ffff7b82f13 in _dl_catch_error () from /lib64/libc.so.6
#14 0x00007ffff7d5fb09 in _dlerror_run () from /lib64/libdl.so.2
#15 0x00007ffff7d5f42a in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#16 0x00007fffef04d330 in py_dl_open (self=<optimized out>, args=<optimized out>)
    at /tmp/python-build.20220507135524.257789/Python-3.7.11/Modules/_ctypes/callproc.c:1369
```

The root cause is that when loading `_raylet.so`, `static DelayManager _delay_manager` is initialized and `RAY_LOG(ERROR) << "RAY_testing_asio_delay_us is set to " << delay_env;` is executed. However, the static variables declared in `logging.cc` are not initialized yet (in this case, `std::string RayLog::logger_name_ = "ray_log_sink"`).

It's better not to rely on the initialization order of static variables in different compilation units because it's not guaranteed. I propose to change all `RAY_LOG`s to `std::cerr` in `DelayManager::Init()`.

The crash happens in Ant's internal codebase. Not sure why this test case passes in the community version though.

BTW, I've tried different approaches:

1. Using a static local variable in `get_delay_us` and remove the global variable. This doesn't work because `init()` needs to access the variable as well.
2. Defining the global variable as type `std::unique_ptr<DelayManager>` and initialize it in `get_delay_us`. This works but it requires a lock to be thread-safe.
edoakes pushed a commit that referenced this pull request Mar 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants