@@ -17,8 +17,6 @@ limitations under the License.
17
17
package deliver
18
18
19
19
import (
20
- "fmt"
21
-
22
20
"github.com/hyperledger/fabric/common/policies"
23
21
"github.com/hyperledger/fabric/orderer/common/filter"
24
22
"github.com/hyperledger/fabric/orderer/common/sigfilter"
@@ -69,19 +67,24 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
69
67
logger .Debugf ("Attempting to read seek info message" )
70
68
envelope , err := srv .Recv ()
71
69
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
+ }
73
73
return err
74
74
}
75
75
payload := & cb.Payload {}
76
76
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 )
79
81
}
80
82
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 )
85
88
}
86
89
87
90
chdr , err := utils .UnmarshalChannelHeader (payload .Header .ChannelHeader )
@@ -92,23 +95,40 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
92
95
93
96
chain , ok := ds .sm .GetChain (chdr .ChannelId )
94
97
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
+ }
95
103
return sendStatusReply (srv , cb .Status_NOT_FOUND )
96
104
}
97
105
98
106
sf := sigfilter .New (policies .ChannelReaders , chain .PolicyManager ())
99
107
result , _ := sf .Apply (envelope )
100
108
if result != filter .Forward {
109
+ if logger .IsEnabledFor (logging .WARNING ) {
110
+ logger .Warningf ("Received unauthorized deliver request for channel %s" , chdr .ChannelId )
111
+ }
101
112
return sendStatusReply (srv , cb .Status_FORBIDDEN )
102
113
}
103
114
104
115
seekInfo := & ab.SeekInfo {}
105
116
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 )
108
128
}
109
129
110
130
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 )
112
132
}
113
133
114
134
cursor , number := chain .Reader ().Iterator (seekInfo .Start )
@@ -139,7 +159,9 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
139
159
return sendStatusReply (srv , status )
140
160
}
141
161
142
- logger .Debugf ("Delivering block" )
162
+ if logger .IsEnabledFor (logging .DEBUG ) {
163
+ logger .Debugf ("Delivering block for (%p) channel: %s" , seekInfo , chdr .ChannelId )
164
+ }
143
165
if err := sendBlockReply (srv , block ); err != nil {
144
166
return err
145
167
}
@@ -152,7 +174,9 @@ func (ds *deliverServer) Handle(srv ab.AtomicBroadcast_DeliverServer) error {
152
174
if err := sendStatusReply (srv , cb .Status_SUCCESS ); err != nil {
153
175
return err
154
176
}
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
+ }
156
180
}
157
181
}
158
182
0 commit comments