Opened 7 years ago
Last modified 7 years ago
#11960 new Bugs
boost::transitive_closure dies on small graph with only 100,000 vertices
| Reported by: | Owned by: | Jeremiah Willcock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | graph |
| Version: | Boost 1.58.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Here's a trivial program that dies with a SIGKILL inside of boost::transitive_closure. I suspect it tries to allocate an absurd amount of memory.
Attachments (1)
Change History (3)
by , 7 years ago
comment:1 by , 7 years ago
I traced it to transitive_closure.hpp:178,
std::vector<std::vector<cg_vertex> > successors(CG_vec.size(),
std::vector<cg_vertex>
(chains.size(), inf));
Both vec.size() and chains.size() are 100,000 and sizeof(inf) is 8 so that's .. 76 terabytes? There must be a more space efficient way to implement this algorithm?
comment:2 by , 7 years ago
| Component: | None → graph |
|---|---|
| Owner: | set to |
Note:
See TracTickets
for help on using tickets.

cpp source code to reproduce bug