MCPcopy Create free account
hub / github.com/cortexproject/cortex / isConsistent

Function isConsistent

pkg/scheduler/queue/user_queues_test.go:520–562  ·  view source on GitHub ↗
(uq *queues)

Source from the content-addressed store, hash-verified

518}
519
520func isConsistent(uq *queues) error {
521 if len(uq.sortedQueriers) != len(uq.queriers) {
522 return fmt.Errorf("inconsistent number of sorted queriers and querier connections")
523 }
524
525 uc := 0
526 for ix, u := range uq.users {
527 q := uq.userQueues[u]
528 if u != "" && q == nil {
529 return fmt.Errorf("user %s doesn't have queue", u)
530 }
531 if u == "" && q != nil {
532 return fmt.Errorf("user %s shouldn't have queue", u)
533 }
534 if u == "" {
535 continue
536 }
537
538 uc++
539
540 if q.index != ix {
541 return fmt.Errorf("invalid user's index, expected=%d, got=%d", ix, q.index)
542 }
543
544 if q.maxQueriers == 0 && q.queriers != nil {
545 return fmt.Errorf("user %s has queriers, but maxQueriers=0", u)
546 }
547
548 if q.maxQueriers > 0 && len(uq.sortedQueriers) <= q.maxQueriers && q.queriers != nil {
549 return fmt.Errorf("user %s has queriers set despite not enough queriers available", u)
550 }
551
552 if q.maxQueriers > 0 && len(uq.sortedQueriers) > q.maxQueriers && len(q.queriers) != q.maxQueriers {
553 return fmt.Errorf("user %s has incorrect number of queriers, expected=%d, got=%d", u, len(q.queriers), q.maxQueriers)
554 }
555 }
556
557 if uc != len(uq.userQueues) {
558 return fmt.Errorf("inconsistent number of users list and user queues")
559 }
560
561 return nil
562}
563
564// getUsersByQuerier returns the list of users handled by the provided querierID.
565func getUsersByQuerier(queues *queues, querierID string) []string {

Calls

no outgoing calls

Tested by

no test coverage detected