策展人锁定路径名称仅包含' 0'字符(S)

时间:2014-08-14 00:38:53

标签: validation path apache-curator

我是ZooKeeper的新手,但在帮助同事调试生产问题时,我们发现了一些意外的事情。我们系统中的现有代码使用Curator InterProcessMutex。该应用会创建带路径的锁定,例如/TEST/ABC。然后代码的另一部分使用类似/TEST/ABC/[some integer]的路径创建更多锁,而整数是通过UI输入的一些对象ID。这已经工作了几个月,直到最近它突然停止工作。

我们进行了一次线程转储,发现该线程在尝试获取路径为TEST/ABC的锁时被阻止,并且每当创建路径/TEST/ABC/0000时都会发生这种情况(0的数量确实存在)没关系,只要它只包含零)。显然有些测试人员有一天决定在系统中输入一些伪造的ID,导致系统停止运行。我们已经解决了这个问题,但我很好奇是否有人可以解释为什么会出现这种情况?

问题:为什么锁定TEST/ABC/0000与锁定TEST/ABC相同? (零的数量实际上并不重要,任何内容都映射到TEST/ABC。)

1 个答案:

答案 0 :(得分:0)

有关此的策展人技术说明:https://cwiki.apache.org/confluence/display/CURATOR/TN7

给予策展人食谱的任何路径都归该食谱所有。不要将它用于其他事情。

(注意:我是策展人的主要作者)。