GATB / pyGATB

Python3 wrapper for GATB-Core.
GNU Affero General Public License v3.0
11 stars 3 forks source link

core dumped Graph module #5

Closed WesDe closed 6 years ago

WesDe commented 6 years ago

Hello,

I was running setup.py and an error raised in test_graph.py, any advices ? Below the result from setup.py :

~/pyGATB/build$ python3 setup.py test running pytest Searching for pytest Best match: pytest 3.5.0 Processing pytest-3.5.0-py3.5.egg

Using /home/jeanjean/pyGATB/build/.eggs/pytest-3.5.0-py3.5.egg Searching for py>=1.5.0 Best match: py 1.5.3 Processing py-1.5.3-py3.5.egg

Using /home/jeanjean/pyGATB/build/.eggs/py-1.5.3-py3.5.egg Searching for pluggy<0.7,>=0.5 Best match: pluggy 0.6.0 Processing pluggy-0.6.0-py3.5.egg

Using /home/jeanjean/pyGATB/build/.eggs/pluggy-0.6.0-py3.5.egg Searching for more-itertools>=4.0.0 Best match: more-itertools 4.1.0 Processing more_itertools-4.1.0-py3.5.egg

Using /home/jeanjean/pyGATB/build/.eggs/more_itertools-4.1.0-py3.5.egg Searching for attrs>=17.4.0 Best match: attrs 17.4.0 Processing attrs-17.4.0-py3.5.egg

Using /home/jeanjean/pyGATB/build/.eggs/attrs-17.4.0-py3.5.egg running egg_info creating pyGATB.egg-info writing pyGATB.egg-info/PKG-INFO writing dependency_links to pyGATB.egg-info/dependency_links.txt writing top-level names to pyGATB.egg-info/top_level.txt writing requirements to pyGATB.egg-info/requires.txt writing manifest file 'pyGATB.egg-info/SOURCES.txt' reading manifest file 'pyGATB.egg-info/SOURCES.txt' writing manifest file 'pyGATB.egg-info/SOURCES.txt' running build_ext ============================== test session starts ===================== platform linux -- Python 3.5.2, pytest-3.5.0, py-1.5.3, pluggy-0.6.0 rootdir: /home/jeanjean/pyGATB/build, inifile: setup.cfg collected 17 items

src/tests/test_bank.py ....... [ 41%] src/tests/test_graph.py .Aborted (core dumped)

Then trying to load h5 in ipython to test Graph module i got the same error :

Python 3.5.2 (default, Nov 23 2017, 16:37:01) Type 'copyright', 'credits' or 'license' for more information IPython 6.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from gatb import Graph In [2]: graph=Graph('-in ../thirdparty/gatb-core/gatb-core/test/db/celegans_reads.h5') Input is h5 or _gatb/ (we assume that kmer counting has already been done), we will complete it into a graph if necessary. terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted (core dumped)

Piezoid commented 6 years ago

Have you tried on another machine ? What is the output of ulimit -a ?

I think GATB allocates large memory pool when instantiating a graph, regardless of the size of the kmer set. Since it's virtual memory, over-allocating is usually not a problem, unless the environment restricts it.

WesDe commented 6 years ago

I will try on another machine (not a VM). The output of unlimit -a is : ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 115333 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 115333 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

Thanks for the hints !

Piezoid commented 6 years ago

I'm closing this since it's a GATB related issue. (It's comfirmed that dbgh5 is hitting the same bug).