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

Reply via email to