Hi Tamas, Thank you for your reply. I've packaged the data required to replicate the crash and a script which replicates the crash on my machine. It can be downloaded from https://drive.google.com/file/d/1csjRW-ftIYmJdI_LdadUCHOk9-Tz1btp/view?usp=sharing . This can be run with:
tar -xvf igraph_debug.tar.gz; cd igraph_debug; Rscript debug_igraph_crash.R Required packages are dplyr and igraph. Thanks, Luka On Thu, Jan 17, 2019 at 1:45 AM Tamas Nepusz <nta...@gmail.com> wrote: > Dear Luka, > > Unfortunately we can't really help without seeing a minimal, > reproducible example code that causes the crash. Here are some > instructions on providing such an example that we can start debugging > on our side: > > https://stackoverflow.com/a/5963610/156771 > > All the best, > Tamás > > On Tue, 15 Jan 2019 at 21:57, Luka Culibrk <luculi...@gmail.com> wrote: > > > > Dearest igraph users, > > > > I'm running into some issues with igraph in R. > > > > I've posted this same issue to Stack Overflow ( > https://stackoverflow.com/posts/54155455) and was recommeded to come here. > > > > Context: I have a path graph that I wish to contract iteratively; ie. at > each iteration, take a set of adjacent vertices in the path graph that fit > some critera, contract them together, and repeat iteratively until no > remaining vertices fit the criteria. Each path graph represents a > biological chromosome (this is biological data that I'm working with). The > path graph to contract is roughly 5,000 vertices long, and the program > iterates roughly 20 times at most per graph. Each sample case has 22 path > graphs to contract. Prototyping via Rstudio worked just fine (and still > works fine), however when running this as an Rscript it's throwing some > errors, and in a different iteration each time (ie. this seems to be > happening at random) > > > > The first time I encountered the issue, it would throw a double free > error. Again, this would occur unpredictably. I tried running on a > different machine, however this threw a different memory-related error > which I don't remember. I made a new miniconda virtual environment and > reinstalled all of the requisite R packages, including igraph and tried > again. Now I'm getting another error, here: > > ``` > > Error in head.default("2616", 1L) : length(n) == 1L is not TRUE > > Calls: write.table ... contract.vertices -> head -> head.default -> > stopifnot > > In addition: There were 28 warnings (use warnings() to see them) > > Error in contract.vertices(toy, mapping = vertices, vertex.attr.comb = > list(new_residual = "sum", : > > VECTOR_ELT() can only be applied to a 'list', not a 'double' > > Calls: write.table ... compressdata -> %>% -> eval -> eval -> > contract.vertices -> .Call > > Execution halted > > ``` > > Note that in "head.default("2616", 1L)", the number (here "2616") is > always different every time I run the code. I have no idea what is actually > calling head.default() since I don't see it anywhere in the > contract.vertices() source code that I can get using > edit(getAnywhere(contract.vertices())). I've also scoured the C source code > on github which hasn't gotten me anywhere. > > > > I'm running this on CentOS 7 machines with 1tb of memory each. > > > > Here is the double free error with a few lines of the memory dump, note > that the ```Error: length(n) == 1L is not TRUE``` is being thrown inside an > igraph function (```contract_vertices()```) rather than my script. I see > this error when I run it from a different anaconda environment that I have > for another project. > > > > ``` > > Error: length(n) == 1L is not TRUE > > In addition: There were 29 warnings (use warnings() to see them) > > *** glibc detected *** > /home/lculibrk/miniconda3/envs/lukonda/lib/R/bin/exec/R: double free or > corruption (out): 0x00007ffffb3ea4a0 *** > > ======= Backtrace: ========= > > /lib64/libc.so.6[0x3e9f275f4e] > > /lib64/libc.so.6[0x3e9f278cf0] > > > /home/lculibrk/R/x86_64-pc-linux-gnu-library/3.4/igraph/libs/igraph.so(igraph_vector_destroy+0x27)[0x7f8ccac45337] > > > /home/lculibrk/R/x86_64-pc-linux-gnu-library/3.4/igraph/libs/igraph.so(IGRAPH_FINALLY_FREE+0x63)[0x7f8ccab5b24d] > > > /home/lculibrk/R/x86_64-pc-linux-gnu-library/3.4/igraph/libs/igraph.so(R_igraph_finalizer+0xc1)[0x7f8ccac90976] > > ``` > > > > The consistent thing about the double free error above is it seems to > occur in the same memory address each time; 0x00007ffffb3ea4a0. Still, it > occurs in a different iteration each time, and on different path graphs > each time. > > > > I'm quite lost as to where exactly I can start the process of trying to > debug this issue, as I'm sure it must be on my end somewhere. > > > > Thanks for any help you might be able to provide. Let me know if I need > to clarify anything or provide more information. > > > > Best regards, > > Luka Culibrk > > > > _______________________________________________ > > igraph-help mailing list > > igraph-help@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/igraph-help > > _______________________________________________ > igraph-help mailing list > igraph-help@nongnu.org > https://lists.nongnu.org/mailman/listinfo/igraph-help >
_______________________________________________ igraph-help mailing list igraph-help@nongnu.org https://lists.nongnu.org/mailman/listinfo/igraph-help