Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
parity
Mirrored projects
polkadot
Commits
fadde846
Unverified
Commit
fadde846
authored
Apr 05, 2021
by
asynchronous rob
Committed by
GitHub
Apr 05, 2021
Browse files
finally get unbacked candidates to descend from root span correctly (#2819)
parent
5754204d
Pipeline
#132763
failed with stages
in 30 minutes and 28 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
node/core/backing/src/lib.rs
View file @
fadde846
...
...
@@ -571,10 +571,10 @@ impl CandidateBackingJob {
Ok
(())
}
#[tracing::instrument(level
=
"trace"
,
skip(self,
paren
t_span,
sender),
fields(subsystem
=
LOG_TARGET))]
#[tracing::instrument(level
=
"trace"
,
skip(self,
roo
t_span,
sender),
fields(subsystem
=
LOG_TARGET))]
async
fn
handle_validated_candidate_command
(
&
mut
self
,
paren
t_span
:
&
jaeger
::
Span
,
roo
t_span
:
&
jaeger
::
Span
,
sender
:
&
mut
JobSender
<
impl
SubsystemSender
>
,
command
:
ValidatedCandidateCommand
,
)
->
Result
<
(),
Error
>
{
...
...
@@ -598,7 +598,7 @@ impl CandidateBackingJob {
if
let
Some
(
stmt
)
=
self
.sign_import_and_distribute_statement
(
sender
,
statement
,
paren
t_span
,
roo
t_span
,
)
.await
?
{
sender
.send_message
(
CandidateSelectionMessage
::
Seconded
(
self
.parent
,
stmt
)
.into
()
...
...
@@ -620,7 +620,7 @@ impl CandidateBackingJob {
if
!
self
.issued_statements
.contains
(
&
candidate_hash
)
{
if
res
.is_ok
()
{
let
statement
=
Statement
::
Valid
(
candidate_hash
);
self
.sign_import_and_distribute_statement
(
sender
,
statement
,
&
paren
t_span
)
.await
?
;
self
.sign_import_and_distribute_statement
(
sender
,
statement
,
&
roo
t_span
)
.await
?
;
}
self
.issued_statements
.insert
(
candidate_hash
);
}
...
...
@@ -730,10 +730,10 @@ impl CandidateBackingJob {
&
mut
self
,
sender
:
&
mut
JobSender
<
impl
SubsystemSender
>
,
statement
:
Statement
,
paren
t_span
:
&
jaeger
::
Span
,
roo
t_span
:
&
jaeger
::
Span
,
)
->
Result
<
Option
<
SignedFullStatement
>
,
Error
>
{
if
let
Some
(
signed_statement
)
=
self
.sign_statement
(
statement
)
.await
{
self
.import_statement
(
sender
,
&
signed_statement
,
paren
t_span
)
.await
?
;
self
.import_statement
(
sender
,
&
signed_statement
,
roo
t_span
)
.await
?
;
let
smsg
=
StatementDistributionMessage
::
Share
(
self
.parent
,
signed_statement
.clone
());
sender
.send_unbounded_message
(
smsg
.into
());
...
...
@@ -764,7 +764,7 @@ impl CandidateBackingJob {
&
mut
self
,
sender
:
&
mut
JobSender
<
impl
SubsystemSender
>
,
statement
:
&
SignedFullStatement
,
paren
t_span
:
&
jaeger
::
Span
,
roo
t_span
:
&
jaeger
::
Span
,
)
->
Result
<
Option
<
TableSummary
>
,
Error
>
{
tracing
::
debug!
(
target
:
LOG_TARGET
,
...
...
@@ -775,7 +775,7 @@ impl CandidateBackingJob {
let
import_statement_span
=
{
// create a span only for candidates we're already aware of.
let
candidate_hash
=
statement
.payload
()
.candidate_hash
();
self
.get_unbacked_statement_child
(
paren
t_span
,
candidate_hash
,
statement
.validator_index
())
self
.get_unbacked_statement_child
(
roo
t_span
,
candidate_hash
,
statement
.validator_index
())
};
let
stmt
=
primitive_statement_to_table
(
statement
);
...
...
@@ -865,13 +865,13 @@ impl CandidateBackingJob {
}
CandidateBackingMessage
::
Statement
(
_relay_parent
,
statement
)
=>
{
let
_timer
=
self
.metrics
.time_process_statement
();
let
span
=
root_span
.child
(
"statement"
)
let
_
span
=
root_span
.child
(
"statement"
)
.with_stage
(
jaeger
::
Stage
::
CandidateBacking
)
.with_candidate
(
statement
.payload
()
.candidate_hash
())
.with_relay_parent
(
_relay_parent
);
self
.check_statement_signature
(
&
statement
)
?
;
match
self
.maybe_validate_and_import
(
&
span
,
&
root_span
,
sender
,
statement
)
.await
{
match
self
.maybe_validate_and_import
(
&
root_span
,
sender
,
statement
)
.await
{
Err
(
Error
::
ValidationFailed
(
_
))
=>
return
Ok
(()),
Err
(
e
)
=>
return
Err
(
e
),
Ok
(())
=>
(),
...
...
@@ -952,15 +952,14 @@ impl CandidateBackingJob {
}
/// Import the statement and kick off validation work if it is a part of our assignment.
#[tracing::instrument(level
=
"trace"
,
skip(self,
parent_span,
root_span,
sender),
fields(subsystem
=
LOG_TARGET))]
#[tracing::instrument(level
=
"trace"
,
skip(self,
root_span,
sender),
fields(subsystem
=
LOG_TARGET))]
async
fn
maybe_validate_and_import
(
&
mut
self
,
parent_span
:
&
jaeger
::
Span
,
root_span
:
&
jaeger
::
Span
,
sender
:
&
mut
JobSender
<
impl
SubsystemSender
>
,
statement
:
SignedFullStatement
,
)
->
Result
<
(),
Error
>
{
if
let
Some
(
summary
)
=
self
.import_statement
(
sender
,
&
statement
,
paren
t_span
)
.await
?
{
if
let
Some
(
summary
)
=
self
.import_statement
(
sender
,
&
statement
,
roo
t_span
)
.await
?
{
if
Some
(
summary
.group_id
)
!=
self
.assignment
{
return
Ok
(())
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment