Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-1813

Concurrency hole in StatementBuffer can cause load to stop progress when queueCapacity != 0

    XMLWordPrintable

    Details

      Description

      We have seen deadlock case in StatementBuffer queues using the data loader. thompsonbry believes it may be related to a concurrency issue in the block of code below.

      	if (ft == null) {
      
      				/*
      				 * Note: Lazily initialized since reset() does not make the
      				 * StatementBuffer object invalid for further use.
      				 */
      
      				ft = new FutureTask<Void>(new DrainQueueCallable());
      
      				executor.execute(ft);
      
      			}
      
      			try {
      
      				// Blocking put.
      				queue.put(new Batch<S>(this, true/* clone */));
      				batchAddCount++;
      				
      			} catch (InterruptedException e) {
      				
      				throw new RuntimeException(e);
      				
      			}
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              beebs Brad Bebee
              Reporter:
              beebs Brad Bebee
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: