ebremer commented on issue #1646:
URL: https://github.com/apache/jena/issues/1646#issuecomment-1333776785
I was able to fix this last night. The "do the business" was sending a list
of resources and object values from the ResultSet to a ThreadPoolExecutor to
process over 64 cores. Whereas, the individual threads kept mostly to
themselves, each was adding the results back to the original Model as follows:
```
m.enterCriticalSection(Lock.WRITE);
m.add(z);
m.leaveCriticalSection();
```
The code work for thousands of large graphs, but for one, kept throwing the
same above error. I was able to fix the issue by buffering up all of the
threads and then calling engine.prestartAllCoreThreads() after the
```
rs.forEachRemaining(qs->{
do the business *
});
```
loop was done. ResultSet rs = qe.execSelect().materialise(); looks like it
would have solved the issue too so I will have to give it a try. Thanks!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]