line |
true |
false |
branch |
310
|
0 |
0 |
unless $cluster_time and exists $cluster_time->{'clusterTime'} and ref $cluster_time->{'clusterTime'} eq 'BSON::Timestamp' |
313
|
0 |
0 |
if (not defined $self->cluster_time) { } |
|
0 |
0 |
elsif ($cluster_time->{'clusterTime'} > $self->cluster_time->{'clusterTime'}) { } |
340
|
0 |
0 |
length $self->app_name ? : |
358
|
72 |
258 |
if $self->monitoring_callback |
361
|
72 |
258 |
if $self->monitoring_callback |
369
|
47 |
283 |
if (my $set_name = $self->replica_set_name) |
370
|
2 |
45 |
if ($type eq 'Single' or $type eq 'ReplicaSetNoPrimary') { } |
|
45 |
0 |
elsif ($type eq 'Unknown') { } |
382
|
0 |
330 |
if ($type eq 'Single' and @addresses > 1) |
389
|
72 |
258 |
if $self->monitoring_callback |
398
|
72 |
258 |
if $self->monitoring_callback |
409
|
53 |
0 |
unless $type eq 'Sharded' or $type eq 'Unknown' |
418
|
0 |
0 |
if ($self->uri->check_for_changes($options)) |
421
|
0 |
0 |
if (not $new{$address}) { } |
446
|
0 |
106 |
if ($link and $link->is_connected) { } |
465
|
53 |
0 |
unless defined $op and defined $op->session |
467
|
0 |
0 |
if ($op->session->_in_transaction_state('starting', 'in_progress')) { } |
|
0 |
0 |
elsif ($op->session->_in_transaction_state('committed')) { } |
480
|
0 |
0 |
defined $op ? : |
482
|
0 |
0 |
$read_pref ? : |
483
|
0 |
0 |
$self->type eq 'Sharded' ? : |
|
0 |
0 |
$self->type eq 'Single' ? : |
488
|
0 |
0 |
if ($mode eq 'primary' and $self->current_primary and $self->next_scan_time > &MongoDB::_Topology::time()) |
491
|
0 |
0 |
if $link |
496
|
0 |
0 |
if ($link) |
500
|
0 |
0 |
if $mode eq 'primary' and $self->type eq 'ReplicaSetWithPrimary' || 1 == keys %{$self->servers;} |
505
|
0 |
0 |
$read_pref ? : |
519
|
0 |
0 |
if ($server and my $link = $self->_get_server_link($server)) { } |
534
|
53 |
0 |
$self->type eq 'Single' || $self->type eq 'Sharded' ? : |
540
|
0 |
53 |
if ($self->current_primary and $self->next_scan_time > &MongoDB::_Topology::time()) |
542
|
0 |
0 |
if $link |
547
|
0 |
0 |
if ($link) |
550
|
0 |
0 |
if $self->type eq 'ReplicaSetWithPrimary' or 1 == keys %{$self->servers;} |
581
|
0 |
1060 |
$force ? : |
590
|
1166 |
0 |
$_->type eq 'Unknown' ? : |
595
|
1060 |
106 |
unless @to_check |
597
|
0 |
106 |
if ($next = &first(sub {
$_->type eq 'RSPrimary';
}
, @to_check)) { } |
|
0 |
106 |
elsif ($next = &first(sub {
$_->type eq 'PossiblePrimary';
}
, @to_check)) { } |
|
0 |
106 |
elsif (@ordinary = grep({$_->type ne 'RSGhost' if $_->type ne 'Unknown';} @to_check)) { } |
603
|
0 |
106 |
if $_->type ne 'Unknown' |
622
|
0 |
0 |
if $self->replica_set_name |
632
|
0 |
0 |
if (defined $rtt_hash->{$addr}) |
646
|
116 |
401 |
$error ? : |
649
|
153 |
364 |
if $self->monitoring_callback |
661
|
17 |
104 |
if (0 == $self->_primaries) |
674
|
0 |
0 |
unless $MongoDB::_Topology::a->[1] <=> $MongoDB::_Topology::b->[1] |
697
|
4 |
215 |
unless defined $server_max_wire_version |
698
|
4 |
215 |
unless defined $server_min_wire_version |
700
|
3 |
216 |
if ($server_min_wire_version > $self->max_wire_version or $server_max_wire_version < $self->min_wire_version) |
706
|
137 |
82 |
if $server_max_wire_version < $min_seen |
707
|
133 |
86 |
if $server_max_wire_version > $max_seen |
722
|
15 |
140 |
defined $_->logical_session_timeout_minutes ? : |
727
|
117 |
142 |
if (defined $timeout and $timeout < 0) |
737
|
0 |
0 |
if $self->stale |
740
|
0 |
0 |
if @servers == 1 and $servers[0]->type eq 'Standalone' |
748
|
0 |
0 |
unless $self->_supports_sessions |
749
|
0 |
0 |
if $self->type eq 'Sharded' |
750
|
0 |
0 |
if $self->wire_version_ceil < 7 |
759
|
0 |
0 |
if $self->wire_version_ceil < 8 |
761
|
0 |
0 |
if $self->type ne 'Sharded' |
767
|
76 |
0 |
$read_pref ? : |
769
|
37 |
39 |
if ($max_staleness_sec > 0) |
770
|
5 |
32 |
if ($self->wire_version_floor < 5) |
776
|
3 |
29 |
if ($self->type eq 'ReplicaSetWithPrimary' || $self->type eq 'ReplicaSetNoPrimary' and $max_staleness_sec < &max(90, $self->heartbeat_frequency_sec + 10)) |
802
|
19 |
23 |
if ($read_pref->max_staleness_seconds > 0) |
804
|
1 |
17 |
unless @candidates |
809
|
27 |
13 |
unless ($read_pref->has_empty_tag_sets) |
811
|
18 |
13 |
if (my(@ts_candidates) = grep({$_->matches_tag_set($ts);} @candidates)) |
828
|
10 |
9 |
if ($self->type eq 'ReplicaSetWithPrimary') { } |
864
|
3 |
1074 |
if $read_pref |
865
|
1076 |
0 |
unless @candidates |
868
|
6 |
1070 |
$selector ? : |
878
|
6 |
0 |
unless @candidates |
881
|
0 |
6 |
$selector ? : |
889
|
18 |
0 |
unless @candidates |
892
|
0 |
17 |
$selector ? : |
899
|
0 |
18 |
if $self->current_primary |
901
|
18 |
0 |
unless @candidates |
915
|
24 |
0 |
unless @candidates |
918
|
0 |
24 |
$selector ? : |
932
|
1071 |
52 |
unless @$servers |
933
|
20 |
32 |
if @$servers == 1 |
974
|
0 |
0 |
unless $link and $link->connected |
975
|
0 |
0 |
unless $link |
978
|
0 |
0 |
if (&MongoDB::_Topology::time() - $link->last_used > $self->socket_check_interval_sec) |
979
|
0 |
0 |
if $self->_ping_server |
986
|
0 |
0 |
unless $server = $self->servers->{$address} |
990
|
0 |
0 |
unless $method |
993
|
0 |
0 |
$self->$method($read_pref, $server) ? : |
1004
|
106 |
0 |
unless (my $link = eval {
do {
'MongoDB::_Link'->new(%{$self->link_options;}, 'address', $address)->connect
}
}) |
1010
|
106 |
0 |
unless $link |
1018
|
0 |
0 |
unless my $server = $self->servers->{$address} |
1023
|
0 |
0 |
if ($self->type eq 'Single' or &first(sub {
$_ eq $server->type;
}
, 'Standalone', 'Mongos', 'RSPrimary', 'RSSecondary')) |
1027
|
0 |
0 |
unless (eval {
do {
$self->credential->authenticate($server, $link, $self->bson_codec);
1
}
}) |
1029
|
0 |
0 |
$err->$MongoDB::_Topology::_isa('MongoDB::Error') ? : |
1044
|
0 |
223 |
if ($self->current_primary and $self->current_primary->address eq $address) |
1048
|
39 |
184 |
if $self->monitoring_callback |
1077
|
0 |
53 |
if ($self->type =~ /^Replica/) { } |
1097
|
0 |
53 |
if ($self->next_scan_time < $start_time) |
1102
|
1060 |
53 |
if ($self->stale) |
1106
|
53 |
1007 |
if not $self->server_selection_try_once and $scan_ready_time > $max_time |
1111
|
1007 |
0 |
if $sleep_time > 0 |
1116
|
0 |
1060 |
unless ($self->is_compatible) |
1123
|
0 |
0 |
if ($min_wire_ver > $self->max_wire_version) { } |
1148
|
0 |
1060 |
if $server |
1153
|
0 |
1060 |
if ($self->server_selection_try_once) { } |
1155
|
0 |
0 |
if $self->last_scan_time > $start_time |
1159
|
0 |
1060 |
if $loop_end_time > $max_time |
1167
|
0 |
0 |
if ($should_perform_handshake) |
1169
|
0 |
0 |
if ($self->credential->mechanism eq 'DEFAULT') |
1173
|
0 |
0 |
if (@{$self->compressors;}) |
1177
|
0 |
0 |
if ($link->supports_clusterTime and defined $self->cluster_time) |
1187
|
0 |
0 |
if $self->monitoring_callback |
1206
|
0 |
0 |
if (my $e = $@) |
1209
|
0 |
0 |
if $self->monitoring_callback |
1211
|
0 |
0 |
if ($e->$MongoDB::_Topology::_isa('MongoDB::DatabaseError') and $e->code == 11) |
1218
|
0 |
0 |
if ($e->$MongoDB::_Topology::_isa('MongoDB::NetworkError') and $link->server and $link->server->type ne 'Unknown' and $link->server->type ne 'PossiblePrimary') |
1230
|
0 |
0 |
unless $is_master |
1232
|
0 |
0 |
if (my $cluster_time = $is_master->{'$clusterTime'}) |
1239
|
0 |
0 |
if $rtt_sec < 0 |
1241
|
0 |
0 |
if $self->monitoring_callback |
1265
|
0 |
0 |
unless +($is_master || {})->{'compression'} |
|
0 |
0 |
unless my(@supported) = @{[] unless +($is_master || {})->{'compression'};} |
1269
|
0 |
0 |
if (grep {$name eq $_;} @supported) |
1286
|
2 |
259 |
unless $self->servers->{$address} |
1288
|
146 |
113 |
if $self->monitoring_callback |
1305
|
146 |
113 |
if $self->monitoring_callback |
1313
|
126 |
355 |
if ($new_server->type eq 'Unknown') { } |
1320
|
16 |
339 |
defined $old_avg ? : |
1332
|
0 |
259 |
if ($self->links->{$address}) |
1342
|
2 |
15 |
if (not $self->servers->{$new_server->address} or $self->replica_set_name ne $new_server->set_name) |
1350
|
0 |
17 |
if ($new_server->me and lc $new_server->me ne $new_server->address) |
1356
|
1 |
16 |
unless ($self->_check_for_primary) |
1360
|
0 |
0 |
if (length $primary and $self->servers->{$primary} and $self->servers->{$primary}->type eq 'Unknown') |
1374
|
3 |
60 |
if (not length $self->replica_set_name) { } |
|
3 |
57 |
elsif ($self->replica_set_name ne $new_server->set_name) { } |
1389
|
20 |
40 |
if (defined $set_version and defined $election_id) |
1390
|
6 |
7 |
if (defined $max_election_id and defined $max_set_version and $max_set_version > $set_version || $max_set_version == $set_version && "$max_election_id" gt "$election_id") |
1410
|
14 |
8 |
if (defined $set_version and !defined($max_set_version) || $set_version > $max_set_version) |
1418
|
10 |
54 |
if ($old_primary->address ne $new_server->address) |
1444
|
1 |
9 |
if (not length $self->replica_set_name) { } |
|
2 |
7 |
elsif ($self->replica_set_name ne $new_server->set_name) { } |
1460
|
1 |
7 |
if ($new_server->me and $new_server->me ne $new_server->address) |
1467
|
2 |
0 |
if (length $primary and $self->servers->{$primary} and $self->servers->{$primary}->type eq 'Unknown') |
1487
|
41 |
12 |
if ($server_type eq 'RSPrimary') { } |
|
9 |
3 |
elsif (grep {$server_type eq $_;} 'RSSecondary', 'RSArbiter', 'RSOther') { } |
|
2 |
1 |
elsif (grep {$server_type eq $_;} 'Standalone', 'Mongos') { } |
1511
|
19 |
35 |
if ($server_type eq 'RSPrimary') { } |
|
17 |
18 |
elsif (grep {$server_type eq $_;} 'RSSecondary', 'RSArbiter', 'RSOther') { } |
|
16 |
2 |
elsif (grep {$server_type eq $_;} 'Unknown', 'Standalone', 'Mongos') { } |
1518
|
2 |
14 |
unless $server_type eq 'Unknown' |
1536
|
10 |
1 |
if (grep {$server_type eq $_;} 'Unknown', 'Mongos') { } |
1559
|
0 |
53 |
if ($server_type eq 'Mongos') |
1576
|
2 |
11 |
if ($server_type eq 'Standalone') |
1577
|
2 |
0 |
if ($self->number_of_seeds > 1) { } |
1586
|
7 |
4 |
if ($server_type eq 'Mongos') |
1591
|
3 |
1 |
if ($server_type eq 'RSPrimary') { } |
|
1 |
0 |
elsif (grep {$server_type eq $_;} 'RSSecondary', 'RSArbiter', 'RSOther') { } |