Jeff Huang created LUCENE-5286:
----------------------------------
Summary: data races in
org.apache.lucene.queryParser.QueryParserTokenManager
Key: LUCENE-5286
URL: https://issues.apache.org/jira/browse/LUCENE-5286
Project: Lucene - Core
Issue Type: Bug
Components: core/queryparser
Affects Versions: 3.6.2
Reporter: Jeff Huang
Hi,
We ran a dynamic detector on Lucene and found quite a number of races in
org.apache.lucene.queryParser.QueryParserTokenManager when an instance of this
class is shared by multiple threads. Almost all field variables of this class
are racey, e.g., curChar, curLexState jjnewStateCnt jjmatchedPos jjmatchedKind.
For example, methods "jjMoveStringLiteralDfa0_3" and "getNextToken" can be
executed by different threads at the same time with no synchronization. The
read and write to "curChar" at lines 65 and 1174 may corrupt the parser.
63 private int More jjMoveStringLiteralDfa0_3()
64 {
65 switch(curChar)
66 {
1164public Token More getNextToken()
1165{
1166 Token matchedToken;
1167 int curPos = 0;
1168
1169 EOFLoop :
1170 for (;;)
1171 {
1172 try
1173 {
1174 curChar = input_stream.BeginToken();
1175 }
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]