Steve, It happens whether running in multiple threads or a single thread. Tim
On Wed, Feb 3, 2021 at 2:36 PM Stephen Roughley <s.d.rough...@googlemail.com> wrote: > Hi Tim, > > You mentioned the calculation is done using Java streams. Have you tried > calling #sequential() on your stream to force it to run single threaded > from the Java side? > > Steve > > On Wed, 3 Feb 2021, 12:58 Greg Landrum, <greg.land...@gmail.com> wrote: > >> Given the fun that threading is, this isn't necessarily conclusive, but I >> just created a small C++ multi-threading test for the morgan fingerprinting >> code and everything looks fine. That remains true when the code is run >> under valgrind (which is quite good at picking up the usual types of memory >> corruption that cause threading issues). >> >> -greg >> >> >> On Wed, Feb 3, 2021 at 1:36 PM Greg Landrum <greg.land...@gmail.com> >> wrote: >> >>> Hi Tim, >>> >>> I haven't seen this particular problem myself, nor have we gotten any >>> reports of crashes from the Morgan fingerprinting code. >>> Comparing the fingerprinting code itself across the 2019.09 and 2020.09 >>> branches I also don't see anything which is likely to cause problems, but >>> one never knows. >>> >>> One thing that might help to know is how you construct the molecule's >>> you're generating fingerprints for: are these from one of the RDKit file >>> parsers? Have they been sanitized? >>> >>> Another thing you might have already tried, but it's worth checking >>> anyway: can you force your web app to only run a single thread at a time? >>> That shouldn't be a problem with the morgan fingerprinting code, but it's >>> still worth the experiment. >>> >>> -greg >>> >>> >>> On Tue, Feb 2, 2021 at 7:14 PM Tim Dudgeon <tdudgeon...@gmail.com> >>> wrote: >>> >>>> Wondering if anyone had any thoughts on this core dump from Java. >>>> What other info would be useful? >>>> >>>> Tim >>>> >>>> On Tue, Jan 12, 2021 at 12:55 PM Tim Dudgeon <tdudgeon...@gmail.com> >>>> wrote: >>>> >>>>> I'm struggling to work out a stange core dump I'm getting when >>>>> calculating Morgan fingerprints from Java. This seems to happen with the >>>>> Release_2020_09 releases but not with the Release_2019_09 ones. It does >>>>> not >>>>> happen when calculating RDKit fingerprints. The exact Java code involved >>>>> is: >>>>> >>>>> RDKFuncs.MorganFingerprintMol(mol, 2); >>>>> >>>>> More precisely this is happening when running inside a Docker >>>>> container which is running the code as a Tomcat webapp, but a simple test >>>>> of running that same function inside the container directly from Java >>>>> (e.g. >>>>> not when running in tomcat) works OK and does not core dump. >>>>> Building an otherwise identical container with the Release_2019_09 >>>>> code does not core dump from Tomcat. >>>>> >>>>> The core dump looks like this: >>>>> >>>>> # A fatal error has been detected by the Java Runtime Environment: >>>>> # >>>>> # SIGSEGV (0xb) at pc=0x00007ff9edc00518, pid=1, tid=111 >>>>> # >>>>> # JRE version: OpenJDK Runtime Environment (11.0.9.1+1) (build >>>>> 11.0.9.1+1-post-Debian-1deb10u2) >>>>> # Java VM: OpenJDK 64-Bit Server VM (11.0.9.1+1-post-Debian-1deb10u2, >>>>> mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64) >>>>> # Problematic frame: >>>>> # [thread 145 also had an error] >>>>> [thread 149 also had an error] >>>>> [thread 113 also had an error] >>>>> [thread 117 also had an error] >>>>> C [libGraphMolWrap.so+0xa20518] void >>>>> RDKit::MorganFingerprints::calcFingerprint<RDKit::SparseIntVect<unsigned >>>>> int> >(RDKit::ROMol const&, unsigned int, std::vector<unsigned int, >>>>> std::allocator<unsigned int> >*, std::vector<unsigned int, >>>>> std::allocator<unsigned int> > const*, bool, bool, bool, bool, >>>>> std::map<unsigned int, std::vector<std::pair<unsigned int, unsigned int>, >>>>> std::allocator<std::pair<unsigned int, unsigned int> > >, >>>>> std::less<unsigned int>, std::allocator<std::pair<unsigned int const, >>>>> std::vector<std::pair<unsigned int, unsigned int>, >>>>> std::allocator<std::pair<unsigned int, unsigned int> > > > > >*, bool, >>>>> RDKit::SparseIntVect<unsigned int>&)+0x148 >>>>> >>>>> It's difficult to know what's wrong, but thought it might be worth >>>>> asking if anything in the Morgan fingerprint code has changed over that >>>>> timeframe? >>>>> It might be related to threading as the fingerprint generation is >>>>> being done inside Java streams. >>>>> >>>>> Tim >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>> Rdkit-discuss mailing list >>>> Rdkit-discuss@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >>>> >>> _______________________________________________ >> Rdkit-discuss mailing list >> Rdkit-discuss@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss >> >
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss