On Mon, Nov 5, 2012 at 3:29 PM, William Slacum <[email protected]> wrote: > At one point, Keith had warned me against kicking off threads inside a scan > session. Is it possible we could have a discussion on the implications of > this?
I think this is a slightly different issue. The iterator is not kicking off other threads. The iterator does not seem to be safe to use when there are concurrent scans using it on a single tablet server. There are two other static fields that seem suspicious, indexColfSet and docColfSet. Keith > > > On Mon, Nov 5, 2012 at 11:30 AM, Billie Rinaldi <[email protected]> wrote: >> >> On Mon, Nov 5, 2012 at 11:24 AM, Sukant Hajra <[email protected]> >> wrote: >>> >>> We noticed that IndexedDocIterator.java has the following private static >>> fields: >>> >>> private static Text indexColf = DEFAULT_INDEX_COLF; >>> private static Text docColf = DEFAULT_DOC_COLF; >>> >>> The init method, which sets these is synchronized. Still, though, this >>> synchronization doesn't seem enough to allow different runs of the >>> iterator to >>> use different values for indexColf and docColf. One run will set the >>> "Colf" >>> variables one way atomically in the synchronized init method. . . and >>> another >>> run and immediately interleave in alternate "Colf" settings, which breaks >>> the >>> original iterator run. >>> >>> For now, we're not touching the indexColf and docColf, just leaving it as >>> the >>> defaults. >>> >>> We're not blocked by this. We're just curious if there's a bug in this >>> design. >>> Also, if it's not a defect, we're interested in learning what system >>> invariant >>> of iterator execution makes this not a problem. >> >> >> Sounds like a bug. Feel free to open a ticket! >> >> Billie >> >> >>> >>> >>> Thanks, >>> Sukant >> >> >
