PacificBiosciences / FALCON

FALCON: experimental PacBio diploid assembler -- Out-of-date -- Please use a binary release: https://github.com/PacificBiosciences/FALCON_unzip/wiki/Binaries
https://github.com/PacificBiosciences/FALCON_unzip/wiki/Binaries
Other
205 stars 102 forks source link

Probable pointer issue in daligner #222

Open flowers9 opened 9 years ago

flowers9 commented 9 years ago

I've come across a data set that would consistently give me a free() error:

* Error in `daligner': free(): invalid pointer: 0x00007fc8040008c0 * Aborted (core dumped)

I tracked it down, and the pointer being freed is correct - that was the address returned by Realloc() earlier in the run (nor does it appear to be a double free). My understanding is that this means that hidden data used by the system has been corrupted (probably by an array overrun or underrun), and this is likely caused by some error with pointers earlier in the code.

Unfortunately, there's a lot of pointer usage, and I don't have the time to hunt it down. While consistent, this data set is the only time I've seen the error.

(The free was in Free_Work_Data() in align.c, so the error is probably somewhere in the align.c code, although it could possibly be in filter.c, as that was what was calling align.c. The database it was running on was about 6gb, and I'd have to check with my boss if you wanted a copy, but I can certainly do that if you want to track it down.)

pb-jchin commented 9 years ago

In one crashing case, we found making the 10000 in the line wsize = VectorEl*10000; inside align.c bigger (~20000) resolving the core dump. However, I am not sure that is a proper fix.

flowers9 commented 9 years ago

No, it doesn't really look like a proper fix. It did, however, work! Thank you very much!