Skip to content

Commit 97f7d8d

Browse files
committed
added setter for debugger
1 parent 624a4d0 commit 97f7d8d

File tree

14 files changed

+155
-111
lines changed

14 files changed

+155
-111
lines changed

p2p/integrationTests/peerConnections/peerConnections_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ func createBaseArgs() libp2p.ArgsNetworkMessenger {
4646
P2pSingleSigner: &singlesig.Secp256k1Signer{},
4747
P2pKeyGenerator: keyGen,
4848
Logger: &testscommon.LoggerStub{},
49-
Debugger: &mock.DebuggerStub{},
5049
}
5150
}
5251

p2p/integrationTests/peerDisconnecting/peerDisconnecting_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ func testPeerDisconnectionWithOneAdvertiser(t *testing.T, p2pConfig config.P2PCo
7373
P2pSingleSigner: &mock.SingleSignerStub{},
7474
P2pKeyGenerator: &mock.KeyGenStub{},
7575
Logger: &testscommon.LoggerStub{},
76-
Debugger: &mock.DebuggerStub{},
7776
}
7877
// Step 1. Create advertiser
7978
advertiser, err := libp2p.NewMockMessenger(argSeeder, netw)
@@ -94,7 +93,6 @@ func testPeerDisconnectionWithOneAdvertiser(t *testing.T, p2pConfig config.P2PCo
9493
P2pSingleSigner: &mock.SingleSignerStub{},
9594
P2pKeyGenerator: &mock.KeyGenStub{},
9695
Logger: &testscommon.LoggerStub{},
97-
Debugger: &mock.DebuggerStub{},
9896
}
9997
node, errCreate := libp2p.NewMockMessenger(arg, netw)
10098
require.Nil(t, errCreate)

p2p/integrationTests/peerDisconnecting/seedersDisconnecting_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ func TestSeedersDisconnectionWith2AdvertiserAnd3Peers(t *testing.T) {
5757
P2pSingleSigner: &mock.SingleSignerStub{},
5858
P2pKeyGenerator: &mock.KeyGenStub{},
5959
Logger: &testscommon.LoggerStub{},
60-
Debugger: &mock.DebuggerStub{},
6160
}
6261
node, err := libp2p.NewMockMessenger(arg, netw)
6362
require.Nil(t, err)
@@ -134,7 +133,6 @@ func createBootstrappedSeeders(baseP2PConfig config.P2PConfig, numSeeders int, n
134133
P2pSingleSigner: &mock.SingleSignerStub{},
135134
P2pKeyGenerator: &mock.KeyGenStub{},
136135
Logger: &testscommon.LoggerStub{},
137-
Debugger: &mock.DebuggerStub{},
138136
}
139137
seeders[0], _ = libp2p.NewMockMessenger(argSeeder, netw)
140138
_ = seeders[0].Bootstrap()
@@ -154,7 +152,6 @@ func createBootstrappedSeeders(baseP2PConfig config.P2PConfig, numSeeders int, n
154152
P2pSingleSigner: &mock.SingleSignerStub{},
155153
P2pKeyGenerator: &mock.KeyGenStub{},
156154
Logger: &testscommon.LoggerStub{},
157-
Debugger: &mock.DebuggerStub{},
158155
}
159156
seeders[i], _ = libp2p.NewMockMessenger(argSeeder, netw)
160157
_ = netw.LinkAll()

p2p/integrationTests/testCommon.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ func CreateMessengerFromConfig(p2pConfig config.P2PConfig) p2p.Messenger {
143143
P2pSingleSigner: &mock.SingleSignerStub{},
144144
P2pKeyGenerator: &mock.KeyGenStub{},
145145
Logger: &testscommon.LoggerStub{},
146-
Debugger: &mock.DebuggerStub{},
147146
}
148147

149148
libP2PMes, err := libp2p.NewNetworkMessenger(arg)

p2p/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ type MessageHandler interface {
4848
BroadcastOnChannelUsingPrivateKey(channel string, topic string, buff []byte, pid core.PeerID, skBytes []byte)
4949
SendToConnectedPeer(topic string, buff []byte, peerID core.PeerID) error
5050
UnJoinAllTopics() error
51+
SetDebugger(debugger Debugger) error
5152
IsInterfaceNil() bool
5253
}
5354

p2p/libp2p/disabled/p2pDebugger.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package disabled
2+
3+
type p2pDebugger struct {
4+
}
5+
6+
// NewP2PDebugger returns a new disabled p2p debugger
7+
func NewP2PDebugger() *p2pDebugger {
8+
return &p2pDebugger{}
9+
}
10+
11+
// AddIncomingMessage does nothing as it is disabled
12+
func (debugger *p2pDebugger) AddIncomingMessage(_ string, _ uint64, _ bool) {
13+
}
14+
15+
// AddOutgoingMessage does nothing as it is disabled
16+
func (debugger *p2pDebugger) AddOutgoingMessage(_ string, _ uint64, _ bool) {
17+
}
18+
19+
// Close returns nil as it is disabled
20+
func (debugger *p2pDebugger) Close() error {
21+
return nil
22+
}
23+
24+
// IsInterfaceNil returns true if there is no value under the interface
25+
func (debugger *p2pDebugger) IsInterfaceNil() bool {
26+
return debugger == nil
27+
}

p2p/libp2p/export_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/libp2p/go-libp2p/core/peer"
1111
"github.com/multiversx/mx-chain-communication-go/p2p"
1212
"github.com/multiversx/mx-chain-communication-go/p2p/config"
13+
"github.com/multiversx/mx-chain-communication-go/p2p/libp2p/disabled"
1314
"github.com/multiversx/mx-chain-core-go/core"
1415
"github.com/multiversx/mx-chain-storage-go/types"
1516
"github.com/whyrusleeping/timecache"
@@ -240,7 +241,7 @@ func NewMessagesHandlerWithNoRoutine(args ArgMessagesHandler) *messagesHandler {
240241
marshaller: args.Marshaller,
241242
connMonitor: args.ConnMonitor,
242243
peersRatingHandler: args.PeersRatingHandler,
243-
debugger: args.Debugger,
244+
debugger: disabled.NewP2PDebugger(),
244245
syncTimer: args.SyncTimer,
245246
peerID: args.PeerID,
246247
processors: make(map[string]TopicProcessor),

p2p/libp2p/goroutines/goroutines_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ func TestDisconnectWillCloseGoRoutines(t *testing.T) {
118118
P2pSingleSigner: &singlesig.Secp256k1Signer{},
119119
P2pKeyGenerator: keyGen,
120120
Logger: &testscommon.LoggerStub{},
121-
Debugger: &mock.DebuggerStub{},
122121
}
123122
args.P2pPrivateKey, _ = keyGen.GeneratePair()
124123

p2p/libp2p/issues_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ func createMessenger() p2p.Messenger {
3939
P2pSingleSigner: &mock.SingleSignerStub{},
4040
P2pKeyGenerator: &mock.KeyGenStub{},
4141
Logger: &testscommon.LoggerStub{},
42-
Debugger: &mock.DebuggerStub{},
4342
}
4443

4544
libP2PMes, err := libp2p.NewNetworkMessenger(args)

p2p/libp2p/messagesHandler.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/libp2p/go-libp2p/core/peer"
1515
"github.com/multiversx/mx-chain-communication-go/p2p"
1616
"github.com/multiversx/mx-chain-communication-go/p2p/data"
17+
"github.com/multiversx/mx-chain-communication-go/p2p/libp2p/disabled"
1718
"github.com/multiversx/mx-chain-core-go/core"
1819
"github.com/multiversx/mx-chain-core-go/core/check"
1920
)
@@ -34,7 +35,6 @@ type ArgMessagesHandler struct {
3435
Marshaller p2p.Marshaller
3536
ConnMonitor ConnectionMonitor
3637
PeersRatingHandler p2p.PeersRatingHandler
37-
Debugger p2p.Debugger
3838
SyncTimer p2p.SyncTimer
3939
PeerID core.PeerID
4040
NetworkType p2p.NetworkType
@@ -52,6 +52,7 @@ type messagesHandler struct {
5252
connMonitor ConnectionMonitor
5353
peersRatingHandler p2p.PeersRatingHandler
5454
debugger p2p.Debugger
55+
mutDebugger sync.RWMutex
5556
syncTimer p2p.SyncTimer
5657
peerID core.PeerID
5758
networkType p2p.NetworkType
@@ -81,7 +82,7 @@ func NewMessagesHandler(args ArgMessagesHandler) (*messagesHandler, error) {
8182
marshaller: args.Marshaller,
8283
connMonitor: args.ConnMonitor,
8384
peersRatingHandler: args.PeersRatingHandler,
84-
debugger: args.Debugger,
85+
debugger: disabled.NewP2PDebugger(),
8586
syncTimer: args.SyncTimer,
8687
peerID: args.PeerID,
8788
processors: make(map[string]TopicProcessor),
@@ -123,9 +124,6 @@ func checkArgMessagesHandler(args ArgMessagesHandler) error {
123124
if check.IfNil(args.PeersRatingHandler) {
124125
return p2p.ErrNilPeersRatingHandler
125126
}
126-
if check.IfNil(args.Debugger) {
127-
return p2p.ErrNilDebugger
128-
}
129127
if check.IfNil(args.SyncTimer) {
130128
return p2p.ErrNilSyncTimer
131129
}
@@ -443,6 +441,9 @@ func (handler *messagesHandler) validateMessageByTimestamp(msg p2p.MessageP2P) e
443441
}
444442

445443
func (handler *messagesHandler) processDebugMessage(topic string, fromConnectedPeer core.PeerID, size uint64, isRejected bool) {
444+
handler.mutDebugger.RLock()
445+
defer handler.mutDebugger.RUnlock()
446+
446447
if fromConnectedPeer == handler.peerID {
447448
handler.debugger.AddOutgoingMessage(topic, size, isRejected)
448449
} else {
@@ -508,7 +509,9 @@ func (handler *messagesHandler) SendToConnectedPeer(topic string, buff []byte, p
508509
}
509510

510511
err = handler.directSender.Send(topic, buffToSend, peerID)
512+
handler.mutDebugger.RLock()
511513
handler.debugger.AddOutgoingMessage(topic, uint64(len(buffToSend)), err != nil)
514+
handler.mutDebugger.RUnlock()
512515

513516
return err
514517
}
@@ -575,7 +578,9 @@ func (handler *messagesHandler) ProcessReceivedMessage(message p2p.MessageP2P, f
575578
}
576579
}
577580

581+
handler.mutDebugger.RLock()
578582
handler.debugger.AddIncomingMessage(msg.Topic(), uint64(len(msg.Data())), !messageOk)
583+
handler.mutDebugger.RUnlock()
579584

580585
if messageOk {
581586
handler.increaseRatingIfNeeded(msg, fromConnectedPeer)
@@ -690,6 +695,19 @@ func (handler *messagesHandler) UnJoinAllTopics() error {
690695
return errFound
691696
}
692697

698+
// SetDebugger sets the debugger
699+
func (handler *messagesHandler) SetDebugger(debugger p2p.Debugger) error {
700+
if check.IfNil(debugger) {
701+
return p2p.ErrNilDebugger
702+
}
703+
704+
handler.mutDebugger.Lock()
705+
handler.debugger = debugger
706+
handler.mutDebugger.Unlock()
707+
708+
return nil
709+
}
710+
693711
// Close closes the messages handler
694712
func (handler *messagesHandler) Close() error {
695713
handler.cancelFunc()
@@ -705,7 +723,9 @@ func (handler *messagesHandler) Close() error {
705723
}
706724

707725
handler.log.Debug("closing messages handler's debugger...")
726+
handler.mutDebugger.Lock()
708727
errDebugger := handler.debugger.Close()
728+
handler.mutDebugger.Unlock()
709729
if errDebugger != nil {
710730
err = errDebugger
711731
handler.log.Warn("messagesHandler.Close",

0 commit comments

Comments
 (0)