[
https://issues.apache.org/jira/browse/KUDU-1847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15837447#comment-15837447
]
zhangsong commented on KUDU-1847:
---------------------------------
the timeline is :
0 raft-config is l1-f1-f2
1 one peer shiping follower (f2) lost its network connection with other nodes
.
2 leader l1 remove f2 from the raft-config and commit it
3 after a kudu-tserver node serving l1 and f2 all crashed
4 f2 start successfullly after kudu-tserver restart.
5 l1 failed starting due to "Failed to open rowset RowSet(65780): Not found:
Can't find block:
0000000318394411
"
6 finally there is only one follower left for this tablet.
So this should not be bug, instead we need a tool to recover/reset tablet in
this scenario when only one follower alive.
> kudu-tserver should remove itself from raft-peer-config when met tablet
> corruption
> ----------------------------------------------------------------------------------
>
> Key: KUDU-1847
> URL: https://issues.apache.org/jira/browse/KUDU-1847
> Project: Kudu
> Issue Type: Bug
> Components: cfile, consensus
> Affects Versions: 1.0.0
> Reporter: zhangsong
> Priority: Critical
>
> problem found:
> Today one of my tables became unwritable. From kudu-master , i found there
> is only one "FOLLOWER" left in raft-config of a tablet.
> After searching kudu-tserver.LOG i found error logs like this
> "I0124 03:29:16.000665 17144 raft_consensus.cc:380] T
> 8870bca7167f46c88099fb3236477530 P 1fa77467172b4ed7ba1a0a10e3dd67f8 [term
> 173317 FOLLOWER]: Starting election with config: opid_index: 572616 local:
> false peers { permanent_uuid: "69947ffe22e245afb579287073c58dc2" member_type:
> VOTER last_known_addr { host: "peer_ip" port: 7050 } } peers {
> permanent_uuid: "1fa77467172b4ed7ba1a0a10e3dd67f8" member_type: VOTER
> last_known_addr { host: "localhost" port: 7050 } }
> I0124 03:29:16.001211 17144 leader_election.cc:223] T
> 8870bca7167f46c88099fb3236477530 P 1fa77467172b4ed7ba1a0a10e3dd67f8
> [CANDIDATE]: Term 173317 election: Requesting vote from peer
> 69947ffe22e245afb579287073c58dc2
> W0124 03:29:16.001549 15548 leader_election.cc:281] T
> 8870bca7167f46c88099fb3236477530 P 1fa77467172b4ed7ba1a0a10e3dd67f8
> [CANDIDATE]: Term 173317 election: Tablet error from VoteRequest() call to
> peer 69947ffe22e245afb579287073c58dc2: Illegal state: Tablet not RUNNING:
> FAILED: Not found: Can't find block: 0000000318394411
> I0124 03:29:16.001845 15548 leader_election.cc:248] T
> 8870bca7167f46c88099fb3236477530 P 1fa77467172b4ed7ba1a0a10e3dd67f8
> [CANDIDATE]: Term 173317 election: Election decided. Result: candidate lost.
> "
> This logs indicate that the current follower(f1) of the tablet start leader
> election( after election timeout ), and found tablet on another follower(f2)
> is not running (corruption) . So the election failed.
> at the end only one follower of the tablet is alive.
> I also found the tablet of f2 has been corrupted for a several days.
> Hence i think this is a bug that we lack logic to remove a peer from
> RaftConfig when the tablet's data of the peer is corrupted.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)