@@ -117,7 +117,7 @@ func (s *Session) Start(d *Router) {
117
117
go func () {
118
118
s .Conn .Encode (redis .NewErrorf ("ERR max number of clients reached" ), true )
119
119
s .CloseWithError (ErrTooManySessions )
120
- s .incrFails ( )
120
+ s .incrOpFails ( nil , nil )
121
121
s .flushOpStats (true )
122
122
}()
123
123
decrSessions ()
@@ -128,7 +128,7 @@ func (s *Session) Start(d *Router) {
128
128
go func () {
129
129
s .Conn .Encode (redis .NewErrorf ("ERR router is not online" ), true )
130
130
s .CloseWithError (ErrRouterNotOnline )
131
- s .incrFails ( )
131
+ s .incrOpFails ( nil , nil )
132
132
s .flushOpStats (true )
133
133
}()
134
134
decrSessions ()
@@ -167,8 +167,7 @@ func (s *Session) loopReader(tasks *RequestChan, d *Router) (err error) {
167
167
s .incrOpTotal ()
168
168
169
169
if tasks .Buffered () > maxPipelineLen {
170
- s .incrFails ()
171
- return ErrTooManyPipelinedRequests
170
+ return s .incrOpFails (nil , ErrTooManyPipelinedRequests )
172
171
}
173
172
174
173
start := time .Now ()
@@ -635,10 +634,6 @@ func (s *Session) incrOpTotal() {
635
634
s .stats .total .Incr ()
636
635
}
637
636
638
- func (s * Session ) incrFails () {
639
- s .stats .fails .Incr ()
640
- }
641
-
642
637
func (s * Session ) getOpStats (opstr string ) * opStats {
643
638
e := s .stats .opmap [opstr ]
644
639
if e == nil {
@@ -659,8 +654,12 @@ func (s *Session) incrOpStats(r *Request, t redis.RespType) {
659
654
}
660
655
661
656
func (s * Session ) incrOpFails (r * Request , err error ) error {
662
- e := s .getOpStats (r .OpStr )
663
- e .fails .Incr ()
657
+ if r != nil {
658
+ e := s .getOpStats (r .OpStr )
659
+ e .fails .Incr ()
660
+ } else {
661
+ s .stats .fails .Incr ()
662
+ }
664
663
return err
665
664
}
666
665
0 commit comments