@@ -17,8 +17,6 @@ limitations under the License.
1717package deliver
1818
1919import (
20- "fmt"
21-
2220 "github.com/hyperledger/fabric/common/policies"
2321 "github.com/hyperledger/fabric/orderer/common/filter"
2422 "github.com/hyperledger/fabric/orderer/common/sigfilter"
@@ -69,19 +67,24 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
6967 logger .Debugf ("Attempting to read seek info message" )
7068 envelope , err := srv .Recv ()
7169 if err != nil {
72- logger .Errorf ("Error reading from stream: %s" , err )
70+ if logger .IsEnabledFor (logging .WARNING ) {
71+ logger .Warningf ("Error reading from stream: %s" , err )
72+ }
7373 return err
7474 }
7575 payload := & cb.Payload {}
7676 if err = proto .Unmarshal (envelope .Payload , payload ); err != nil {
77- logger .Errorf ("Received an envelope with no payload: %s" , err )
78- return err
77+ if logger .IsEnabledFor (logging .WARNING ) {
78+ logger .Warningf ("Received an envelope with no payload: %s" , err )
79+ }
80+ return sendStatusReply (srv , cb .Status_BAD_REQUEST )
7981 }
8082
81- if payload .Header == nil /* || payload.Header.ChannelHeader == nil */ {
82- err = fmt .Errorf ("Malformed envelope received with bad header" )
83- logger .Error (err )
84- return err
83+ if payload .Header == nil {
84+ if logger .IsEnabledFor (logging .WARNING ) {
85+ logger .Warningf ("Malformed envelope received with bad header" )
86+ }
87+ return sendStatusReply (srv , cb .Status_BAD_REQUEST )
8588 }
8689
8790 chdr , err := utils .UnmarshalChannelHeader (payload .Header .ChannelHeader )
@@ -92,23 +95,40 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
9295
9396 chain , ok := ds .sm .GetChain (chdr .ChannelId )
9497 if ! ok {
98+ // Note, we log this at DEBUG because SDKs will poll waiting for channels to be created
99+ // So we would expect our log to be somewhat flooded with these
100+ if logger .IsEnabledFor (logging .DEBUG ) {
101+ logger .Debugf ("Client request for channel %s not found" , chdr .ChannelId )
102+ }
95103 return sendStatusReply (srv , cb .Status_NOT_FOUND )
96104 }
97105
98106 sf := sigfilter .New (policies .ChannelReaders , chain .PolicyManager ())
99107 result , _ := sf .Apply (envelope )
100108 if result != filter .Forward {
109+ if logger .IsEnabledFor (logging .WARNING ) {
110+ logger .Warningf ("Received unauthorized deliver request for channel %s" , chdr .ChannelId )
111+ }
101112 return sendStatusReply (srv , cb .Status_FORBIDDEN )
102113 }
103114
104115 seekInfo := & ab.SeekInfo {}
105116 if err = proto .Unmarshal (payload .Data , seekInfo ); err != nil {
106- logger .Errorf ("Received a signed deliver request with malformed seekInfo payload: %s" , err )
107- return err
117+ if logger .IsEnabledFor (logging .WARNING ) {
118+ logger .Warningf ("Received a signed deliver request with malformed seekInfo payload: %s" , err )
119+ }
120+ return sendStatusReply (srv , cb .Status_BAD_REQUEST )
121+ }
122+
123+ if seekInfo .Start == nil || seekInfo .Stop == nil {
124+ if logger .IsEnabledFor (logging .WARNING ) {
125+ logger .Warningf ("Received seekInfo message with missing start or stop %v, %v" , seekInfo .Start , seekInfo .Stop )
126+ }
127+ return sendStatusReply (srv , cb .Status_BAD_REQUEST )
108128 }
109129
110130 if logger .IsEnabledFor (logging .DEBUG ) {
111- logger .Debugf ("Received seekInfo % v for chain %s" , seekInfo , chdr .ChannelId )
131+ logger .Debugf ("Received seekInfo (%p) % v for chain %s" , seekInfo , seekInfo , chdr .ChannelId )
112132 }
113133
114134 cursor , number := chain .Reader ().Iterator (seekInfo .Start )
@@ -139,7 +159,9 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
139159 return sendStatusReply (srv , status )
140160 }
141161
142- logger .Debugf ("Delivering block" )
162+ if logger .IsEnabledFor (logging .DEBUG ) {
163+ logger .Debugf ("Delivering block for (%p) channel: %s" , seekInfo , chdr .ChannelId )
164+ }
143165 if err := sendBlockReply (srv , block ); err != nil {
144166 return err
145167 }
@@ -152,7 +174,9 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
152174 if err := sendStatusReply (srv , cb .Status_SUCCESS ); err != nil {
153175 return err
154176 }
155- logger .Debugf ("Done delivering, waiting for new SeekInfo" )
177+ if logger .IsEnabledFor (logging .DEBUG ) {
178+ logger .Debugf ("Done delivering for (%p), waiting for new SeekInfo" , seekInfo )
179+ }
156180 }
157181}
158182
0 commit comments