Async Upsert Apparent Threadlock



On top of the “put doesn’t put” issue below:

The application reads a large file (~10 million lines) to get keys to work with and upserts one at a time asynchronously. Every run, it stops at some random point with no error message, no exception, nothing. Just stops.

3.1.3 client works for about 1 or 2 million records and then randomly stops.
3.1.4 client stops much sooner.

MaxCommandsAction is set to BLOCK. Setting it to ACCEPT allows it to continue until it runs out of connections. Setting it to REJECT causes it to exit hard after max number of threads is launched.

Putting a max number of threads blocker ahead of the AsyncClient.put doesn’t help in either case (count the running threads, decrementing when they’re done, integer with a simple lock around modification).

Any insight?

Tom Shulruff
Senior Software Engineer
4INFO, Inc.


See my reply on your other thread regarding deadlocks and asyncTaskThreadPool.