Hi,
Recently,in developing sync module, I found a very important bug in the
process of unit testing, which will seriously affect the normal operation of
the system. During the unit test of sync module, I found that when I retrieved
the next sequence folder from the multi-file directory manager, I may get an
unseuqence folder, which made me confused and began to track down the problem.
In IoTDB, sequence folders and unsequence folders are specified as user
parameters, and currently the name of the sequence folder is "sequence" and the
name of unsequence folder is “unsequence”, so there must be no overlap between
the two parameters. Therefore, I suspected that it was an abnormal publishing
of the sequence folder list and the unsequence folder list. I tracked all the
places where it was possible to use the two objects and found that it wil
returned the object directly when I require them from multi-file directory
manager. It is further found that merging the two objects acquired in Storage
Group Processor causes problems.
The problem is very simple and hidden but serious. The reason why it has
not been found is that this method of incorrectly modifying the contents of the
list is currently only used in the delete module, which is nearly unused. Now
that this problem has been solved in sync pr, I just want to share with you
here. The issue of variable publishing still needs to be paid attention to. In
addition, people interested in sync module can focus on
https://issues.apache.org/jira/browse/IOTDB-198.
Best Regards,
—————————————————
Tianan Li
School of Software, Tsinghua University
李天安
清华大学 软件学院