Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-50418

Monitoring: Unexpected VirtHandlerRESTErrorsHigh and VirtControllerRESTErrorsHigh alerts firing

XMLWordPrintable

    • 0.42
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • ---
    • ---
    • Medium
    • None

      Description of problem:

      Creating around three VMs in parallel and migrating them ends up firing the alerts from the summary, although there is nothing wrong going on and the api connectivity and cluster capacity is fine, looking at the logs we see a lot of re-reconcile related to vmi status conflicting that end up with rest client errors
      
      This was discovered running openshift/origin tests from https://github.com/openshift/origin/pull/29199, with the following command:
      
      make openshift-tests && ./openshift-tests run openshift/network/virtualization --run \[sig-network\]\[OCPFeatureGate:PersistentIPsForVirtualization\]\[Feature:Layer2LiveMigration\]     

      Version-Release number of selected component (if applicable):

      4.18

      How reproducible:

      Always

      Steps to Reproduce:

      1. Create three VMs
      
      apiVersion: kubevirt.io/v1                                                      
      kind: VirtualMachine                                                            
      metadata:                                                                       
        name: {{ name }}                                                                    
      spec:                                                                           
        running: true                                                                 
        template:                                                                     
          metadata:                                                                   
            creationTimestamp: null                                                   
          spec:                                                                       
            architecture: amd64                                                       
            domain:                                                                   
              devices:                                                                
                disks:                                                                
                - disk:                                                               
                    bus: virtio                                                       
                  name: containerdisk                                                 
                - disk:                                                               
                    bus: virtio                                                       
                  name: cloudinitdisk                                                 
                interfaces:                                                           
                - binding:                                                            
                    name: passt                                                       
                  name: overlay                                                       
              machine:                                                                
                type: pc-q35-rhel9.4.0                                                
              resources:                                                              
                requests:                                                             
                  memory: 2048M                                                       
            networks:                                                                 
            - name: overlay                                                           
              pod: {}                                                                 
            terminationGracePeriodSeconds: 0                                          
            volumes:                                                                  
            - containerDisk:                                                          
                image: quay.io/kubevirt/fedora-with-test-tooling-container-disk:20241024_891122a6fc
              name: containerdisk                                                     
            - cloudInitNoCloud:                                                       
                networkData: "version: 2                                                              \nethernets:
                  \                                                             \n  eth0:
                  \                                                                \n    dhcp4:
                  true                                                         \n    dhcp6:
                  true                                                         \n"    
                userData: |-                                                          
                  #cloud-config                                                       
                  password: fedora                                                    
                  chpasswd: { expire: False }                                         
              name: cloudinitdisk                                         
      
      2. Migrate/restart them
      3. Check alarms with "oc -n openshift-monitoring exec -ti alertmanager-main-0 -c alertmanager -- amtool alert query --alertmanager.url http://localhost:9093" 

      Actual results:

      VirtHandlerRESTErrorsHigh and VirtControllerRESTErrorsHigh pops up 

      Expected results:

      No virt related alerts should pop up.

      Additional info:

      slack thread https://redhat-internal.slack.com/archives/C017V3R4M08/p1730127205218889
      
      some virt-handler logs that may trigger the alert
      
      {"component":"virt-controller","kind":"","level":"error","msg":"Updating api version annotations failed","name":"myvm","namespace":"e2e-test-network-segmentation-e2e-66qrv","pos":"vm.go:332","reason":"Operation cannot be fulfilled on virtualmachines.kubevirt.io \"myvm\": the object has been modified; please apply your changes to the latest version and try again","timestamp":"2024-10-28T07:54:16.400623Z","uid":"7041c87a-992c-49de-b004-1b2cc45d0a2c"}
      
      {"component":"virt-controller","level":"info","msg":"reenqueuing VirtualMachineInstance e2e-test-network-segmentation-e2e-jcrtj/myvm","pos":"vmi.go:253","reason":"patching of vmi conditions and activePods failed: the server rejected our request due to an error in our request","timestamp":"2024-10-28T07:54:08.183212Z"}
      
      {"component":"virt-controller","level":"info","msg":"re-enqueuing VirtualMachine e2e-test-network-segmentation-e2e-z5ps4/myvm","pos":"vm.go:299","reason":"Operation cannot be fulfilled on virtualmachines.kubevirt.io \"myvm\": StorageError: invalid object, Code: 4, Key: /kubernetes.io/kubevirt.io/virtualmachines/e2e-test-network-segmentation-e2e-z5ps4/myvm, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: 3c92fac7-510a-4a2e-99d5-18abd5455e33, UID in object meta: ","timestamp":"2024-10-28T07:54:08.671089Z"}

              sradco Shirly Radco
              ellorent Felix Enrique Llorente Pastora
              Natalie Gavrielov Natalie Gavrielov
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: