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

李天安
清华大学 软件学院

Reply via email to