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

Reply via email to