-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfind_lost_commit.pl
More file actions
executable file
·38 lines (31 loc) · 895 Bytes
/
Copy pathfind_lost_commit.pl
File metadata and controls
executable file
·38 lines (31 loc) · 895 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/perl
use strict;
my %op;
my $line = 0;
while (<>) {
#print "$line: $_";
$line++;
#osd3 do_op MOSDOp(client0.933 oid 100000000000008 0x84b4480) in pg[pginfo(4020000000d v 5662/0 e 2/1) r=0 active (0,5662]]
if (my ($from, $opno, $oid, $op) = /do_op MOSDOp\((\S+) op (\d+) oid (\d+) (\w+)\)/) {
# print "$op\n";
if ($opno == 2 || $opno == 11 || $opno == 12 || $opno == 14 || $opno == 15) {
$op{$op} = $from;
}
}
# commits
#osd1 op_modify_commit on op MOSDOp(client1.289 oid 100000100000002 0x51a2f788)
if (my ($op) = /op_modify_commit.* (\w+)\)/) {
delete $op{$op};
}
#osd4 rep_modify_commit on op MOSDOp(osd3.289 oid 100000000000008 0x84b0980)
if (my ($op) = /rep_modify_commit.* (\w+)\)/) {
delete $op{$op};
}
# forwarded?
if (my ($op) = /sending (\w+) to osd/) {
delete $op{$op};
}
}
for my $op (keys %op) {
print "---- lost op $op $op{$op}\n";
}