May 18, 2010 23:45:06:256 (freenet.support.PooledExecutor$MyThread,
<noname>(244), ERROR): Caught java.lang.AssertionError:
plugins.Library.util.exec.TaskInProgressException running job
freenet.support.PooledExecutor$Job at 1aa0208d
java.lang.AssertionError: plugins.Library.util.exec.TaskInProgressException
at
plugins.Library.index.ProtoIndexComponentSerialiser$BTreePacker.preprocessPullBins(ProtoIndexComponentSerialiser.java:421)
at plugins.Library.io.serial.Packer.pull(Packer.java:473)
at
plugins.Library.util.SkeletonTreeMap.inflate(SkeletonTreeMap.java:261)
at
plugins.Library.index.ProtoIndex$getTermEntriesHandler.run(ProtoIndex.java:210)
at
freenet.support.PooledExecutor$MyThread.realRun(PooledExecutor.java:227)
at freenet.support.io.NativeThread.run(NativeThread.java:101)
plugins.Library.util.exec.TaskInProgressException
at
plugins.Library.io.serial.ProgressTracker.addPullProgress(ProgressTracker.java:165)
at
plugins.Library.index.ProtoIndexComponentSerialiser$BTreePacker.preprocessPullBins(ProtoIndexComponentSerialiser.java:416)
at plugins.Library.io.serial.Packer.pull(Packer.java:473)
at
plugins.Library.util.SkeletonTreeMap.inflate(SkeletonTreeMap.java:261)
at
plugins.Library.index.ProtoIndex$getTermEntriesHandler.run(ProtoIndex.java:210)
at
freenet.support.PooledExecutor$MyThread.realRun(PooledExecutor.java:227)
at freenet.support.io.NativeThread.run(NativeThread.java:101)
Is it possible that the two words being searched for are both in the same bin?
If so, is this to be expected? Why is getting a TaskInProgressException here so
exceptional as to warrant an AssertionError? Can we just ignore it and carry on?
Relevant functions:
@Override protected void preprocessPullBins(Map<K, PullTask<V>>
tasks, Collection<PullTask<Map<K, V>>> bintasks) {
for (Map.Entry<K, PullTask<V>> en: tasks.entrySet()) {
try {
BaseCompositeProgress p =
tracker.addPullProgress(en.getValue());
p.setSubProgress(ProgressTracker.makePullProgressIterable(subsrl.getTracker(),
bintasks));
p.setEstimate(ProgressParts.TOTAL_FINALIZED);
p.setSubject("Pulling root container
for " + en.getKey());
} catch (TaskInProgressException e) {
throw new AssertionError(e);
}
}
}
/**
** Creates a new pull progress and keeps track of it. If there is
already a
** progress for the metadata, throws {@link TaskInProgressException}.
This
** ensures that the object returned from this method has not been seen
by
** any other threads.
**
** @throws TaskInProgressException
*/
public P addPullProgress(PullTask<T> task) throws
TaskInProgressException {
synchronized (pullProgress) {
P p = pullProgress.get(task);
if (p != null) { throw new TaskInProgressException(p); }
pullProgress.put(task, p = newProgress());
/*if (pullWaiters.contains(task)) {
pullProgress.notifyAll();
}*/
return p;
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20100519/5e3a719e/attachment.pgp>