Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mybee
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
mybee
Commits
63939b18
Unverified
Commit
63939b18
authored
Jun 19, 2020
by
acud
Committed by
GitHub
Jun 19, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pusher, pushsync: more info on error (#342)
parent
ab196a3a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
22 deletions
+22
-22
puller.go
pkg/puller/puller.go
+11
-11
pushsync.go
pkg/pushsync/pushsync.go
+11
-11
No files found.
pkg/puller/puller.go
View file @
63939b18
...
...
@@ -325,14 +325,14 @@ func (p *Puller) syncPeer(ctx context.Context, peer swarm.Address, po, d uint8)
}
func
(
p
*
Puller
)
histSyncWorker
(
ctx
context
.
Context
,
peer
swarm
.
Address
,
bin
uint8
,
cur
uint64
)
{
p
.
logger
.
Debug
f
(
"histSyncWorker starting, peer %s bin %d cursor %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"histSyncWorker starting, peer %s bin %d cursor %d"
,
peer
,
bin
,
cur
)
for
{
select
{
case
<-
p
.
quit
:
p
.
logger
.
Debug
f
(
"histSyncWorker quitting on shutdown. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"histSyncWorker quitting on shutdown. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
return
case
<-
ctx
.
Done
()
:
p
.
logger
.
Debug
f
(
"histSyncWorker context cancelled. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"histSyncWorker context cancelled. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
return
default
:
}
...
...
@@ -347,38 +347,38 @@ func (p *Puller) histSyncWorker(ctx context.Context, peer swarm.Address, bin uin
continue
}
if
s
>
cur
{
p
.
logger
.
Debug
f
(
"histSyncWorker finished syncing bin %d, cursor %d"
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"histSyncWorker finished syncing bin %d, cursor %d"
,
bin
,
cur
)
return
}
top
,
err
:=
p
.
syncer
.
SyncInterval
(
ctx
,
peer
,
bin
,
s
,
cur
)
if
err
!=
nil
{
p
.
logger
.
Debug
f
(
"histSyncWorker error syncing interval. peer %s, bin %d, cursor %d, err %v"
,
peer
.
String
(),
bin
,
cur
,
err
)
p
.
logger
.
Error
f
(
"histSyncWorker error syncing interval. peer %s, bin %d, cursor %d, err %v"
,
peer
.
String
(),
bin
,
cur
,
err
)
return
}
err
=
p
.
addPeerInterval
(
peer
,
bin
,
s
,
top
)
if
err
!=
nil
{
p
.
logger
.
Debug
f
(
"error persisting interval for peer, quitting"
)
p
.
logger
.
Error
f
(
"error persisting interval for peer, quitting"
)
return
}
}
}
func
(
p
*
Puller
)
liveSyncWorker
(
ctx
context
.
Context
,
peer
swarm
.
Address
,
bin
uint8
,
cur
uint64
)
{
p
.
logger
.
Debug
f
(
"liveSyncWorker starting, peer %s bin %d cursor %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"liveSyncWorker starting, peer %s bin %d cursor %d"
,
peer
,
bin
,
cur
)
from
:=
cur
+
1
for
{
select
{
case
<-
p
.
quit
:
p
.
logger
.
Debug
f
(
"liveSyncWorker quit on shutdown. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"liveSyncWorker quit on shutdown. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
return
case
<-
ctx
.
Done
()
:
p
.
logger
.
Debug
f
(
"liveSyncWorker context cancelled. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
p
.
logger
.
Trace
f
(
"liveSyncWorker context cancelled. peer %s bin %d cur %d"
,
peer
,
bin
,
cur
)
return
default
:
}
top
,
err
:=
p
.
syncer
.
SyncInterval
(
ctx
,
peer
,
bin
,
from
,
math
.
MaxUint64
)
if
err
!=
nil
{
p
.
logger
.
Debug
f
(
"liveSyncWorker exit on sync error. peer %s bin %d from %d err %v"
,
peer
,
bin
,
from
,
err
)
p
.
logger
.
Error
f
(
"liveSyncWorker exit on sync error. peer %s bin %d from %d err %v"
,
peer
,
bin
,
from
,
err
)
return
}
if
top
==
0
{
...
...
@@ -386,7 +386,7 @@ func (p *Puller) liveSyncWorker(ctx context.Context, peer swarm.Address, bin uin
}
err
=
p
.
addPeerInterval
(
peer
,
bin
,
from
,
top
)
if
err
!=
nil
{
p
.
logger
.
Debug
f
(
"liveSyncWorker exit on add peer interval. peer %s bin %d from %d err %v"
,
peer
,
bin
,
from
,
err
)
p
.
logger
.
Error
f
(
"liveSyncWorker exit on add peer interval. peer %s bin %d from %d err %v"
,
peer
,
bin
,
from
,
err
)
return
}
from
=
top
+
1
...
...
pkg/pushsync/pushsync.go
View file @
63939b18
...
...
@@ -83,7 +83,7 @@ func (ps *PushSync) handler(ctx context.Context, p p2p.Peer, stream p2p.Stream)
// Get the delivery
chunk
,
err
:=
ps
.
getChunkDelivery
(
r
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"chunk delivery
: %w"
,
err
)
return
fmt
.
Errorf
(
"chunk delivery
from peer %s: %w"
,
p
.
Address
.
String
()
,
err
)
}
// Select the closest peer to forward the chunk
...
...
@@ -103,7 +103,7 @@ func (ps *PushSync) handler(ctx context.Context, p p2p.Peer, stream p2p.Stream)
receipt
:=
&
pb
.
Receipt
{
Address
:
chunk
.
Address
()
.
Bytes
()}
err
=
ps
.
sendReceipt
(
w
,
receipt
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"send receipt
: %w"
,
err
)
return
fmt
.
Errorf
(
"send receipt
to peer %s: %w"
,
p
.
Address
.
String
()
,
err
)
}
return
nil
}
...
...
@@ -129,33 +129,33 @@ func (ps *PushSync) handler(ctx context.Context, p p2p.Peer, stream p2p.Stream)
// Forward chunk to closest peer
streamer
,
err
:=
ps
.
streamer
.
NewStream
(
ctx
,
peer
,
nil
,
protocolName
,
protocolVersion
,
streamName
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"new stream
: %w"
,
err
)
return
fmt
.
Errorf
(
"new stream
peer %s: %w"
,
peer
.
String
()
,
err
)
}
defer
streamer
.
Close
()
wc
,
rc
:=
protobuf
.
NewWriterAndReader
(
streamer
)
if
err
:=
ps
.
sendChunkDelivery
(
wc
,
chunk
);
err
!=
nil
{
return
fmt
.
Errorf
(
"forward chunk
: %w"
,
err
)
return
fmt
.
Errorf
(
"forward chunk
to peer %s: %w"
,
peer
.
String
()
,
err
)
}
receiptRTTTimer
:=
time
.
Now
()
receipt
,
err
:=
ps
.
receiveReceipt
(
rc
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"receive receipt
: %w"
,
err
)
return
fmt
.
Errorf
(
"receive receipt
from peer %s: %w"
,
peer
.
String
()
,
err
)
}
ps
.
metrics
.
ReceiptRTT
.
Observe
(
time
.
Since
(
receiptRTTTimer
)
.
Seconds
())
// Check if the receipt is valid
if
!
chunk
.
Address
()
.
Equal
(
swarm
.
NewAddress
(
receipt
.
Address
))
{
ps
.
metrics
.
InvalidReceiptReceived
.
Inc
()
return
errors
.
New
(
"invalid receipt"
)
return
fmt
.
Errorf
(
"invalid receipt from peer %s"
,
peer
.
String
()
)
}
// pass back the received receipt in the previously received stream
err
=
ps
.
sendReceipt
(
w
,
&
receipt
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"send receipt
: %w"
,
err
)
return
fmt
.
Errorf
(
"send receipt
to peer %s: %w"
,
peer
.
String
()
,
err
)
}
ps
.
metrics
.
ReceiptsSentCounter
.
Inc
()
...
...
@@ -225,26 +225,26 @@ func (ps *PushSync) PushChunkToClosest(ctx context.Context, ch swarm.Chunk) (*Re
streamer
,
err
:=
ps
.
streamer
.
NewStream
(
ctx
,
peer
,
nil
,
protocolName
,
protocolVersion
,
streamName
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"new stream
: %w"
,
err
)
return
nil
,
fmt
.
Errorf
(
"new stream
for peer %s: %w"
,
peer
.
String
()
,
err
)
}
defer
streamer
.
Close
()
w
,
r
:=
protobuf
.
NewWriterAndReader
(
streamer
)
if
err
:=
ps
.
sendChunkDelivery
(
w
,
ch
);
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"chunk deliver
: %w"
,
err
)
return
nil
,
fmt
.
Errorf
(
"chunk deliver
to peer %s: %w"
,
peer
.
String
()
,
err
)
}
receiptRTTTimer
:=
time
.
Now
()
receipt
,
err
:=
ps
.
receiveReceipt
(
r
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"receive receipt
: %w"
,
err
)
return
nil
,
fmt
.
Errorf
(
"receive receipt
from peer %s: %w"
,
peer
.
String
()
,
err
)
}
ps
.
metrics
.
ReceiptRTT
.
Observe
(
time
.
Since
(
receiptRTTTimer
)
.
Seconds
())
// Check if the receipt is valid
if
!
ch
.
Address
()
.
Equal
(
swarm
.
NewAddress
(
receipt
.
Address
))
{
ps
.
metrics
.
InvalidReceiptReceived
.
Inc
()
return
nil
,
errors
.
New
(
"invalid receipt"
)
return
nil
,
fmt
.
Errorf
(
"invalid receipt. peer %s"
,
peer
.
String
()
)
}
rec
:=
&
Receipt
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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