华为云FusionInsight Phoenix开源问题之--pool closed

举报
wangchao316 发表于 2021/10/29 15:13:01 2021/10/29
【摘要】 Phoenix开源问题贡献社区

问题现象

删除数据时,报Pool closed, not attempting to write to the index!。导致写索引表失败,将索引表状态变为disable。之后的入库也会失败。

问题影响

索引表disable后,针对该表的数据入库都会失败。

问题原因

Region split时,会关闭父region,此时会调用stop方法,将cp中资源和状态进行关闭,修改。但是当split失败后,需要回滚,此时回滚并没有重置cp中已经关闭的资源和状态位。

当下一次删除操作进行时,需要判断cp的状态是不是stop,如果是stop会抛出异常。如下图所示。

问题解决

在region重新打开的时候,给已经关闭的资源和状态位重新初始化。

由于region在close的时候,会调用CoprocessorHost.shutdown方法,然后将state = Coprocessor.State.STOPPING改成了stop。回滚的时候没有将状态置为 ACTIVE。当region再次关闭的时候,会判断state是否等于active,如果不等于,会跳过cp的stop操作。因此需要实现Indexder中的postclose方法,让其region下线的时候close cp。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。