We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
The virsh_list_all parser is raising ValueError exceptions in production
The VirshListAll parser is throwing a large number of the exception ValueError("Line containing 'Id,Name,State' was not found in table",) in production.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `insights/parsers/virsh_list_all.py`
Content:
```
1 """VirshListAll - command ``virsh --readonly list --all``
2 =========================================================
3 
4 This module provides VM status using output of command ``virsh --readonly list --all``.
5 """
6 from collections import namedtuple
7 
8 from insights.specs import Specs
9 from .. import CommandParser, parser
10 from . import parse_fixed_table, keyword_search
11 
12 
13 @parser(Specs.virsh_list_all)
14 class VirshListAll(CommandParser):
15     """Parsing output of ``virsh --readonly list --all``.
16 
17     Typical output of ``virsh --readonly list --all`` command is::
18 
19         Id    Name                           State
20         ----------------------------------------------------
21         2     rhel7.4                        running
22         4     rhel7.0                        paused
23         -     centos6.8-router               shut off
24         -     cfme-5.7.13                    shut off
25         -     cfme-rhos-5.9.0.15             shut off
26         -     fedora-24-kernel               shut off
27         -     fedora-saio_fedoraSaio         shut off
28         -     fedora24-misc                  shut off
29         -     freebsd11.0                    shut off
30         -     guixSD                         shut off
31         -     miq-gap-1                      shut off
32         -     rhel7.2                        shut off
33         -     RHOSP10                        shut off
34 
35 
36     Examples:
37 
38         >>> len(output.search(state='shut off')) == 11
39         True
40         >>> len(output.search(id=None)) == 11
41         True
42         >>> len(output.search(id=2)) == 1
43         True
44         >>> output.search(name='rhel7.4') == [{'state': 'running', 'id': 2, 'name': 'rhel7.4'}]
45         True
46         >>> output.get_vm_state('rhel7.0') == 'paused'
47         True
48         >>> output.get_vm_state('rhel9.0') is None
49         True
50         >>> 'cfme' in output
51         False
52         >>> 'cfme-5.7.13' in output
53         True
54 
55     Attributes:
56         fields (list): List of ``KeyValue`` namedtupules for each line
57                        in the command.
58 
59         cols (list): List id key value pair derived from the command.
60 
61         keywords (list): keywords present in the command, each
62                         keyword is converted to lowercase.
63 
64     """
65     keyvalue = namedtuple('KeyValue',
66                           ['name', 'state', 'id', 'name_lower'])
67     """namedtuple: Represent name value pair as a namedtuple with case."""
68     def _cleanup(self):
69         for col in self.cols:
70             if col['id'] == '-':
71                 col['id'] = None
72             else:
73                 col['id'] = (lambda x: int(x) if x.isdigit() else x)(col['id'])
74 
75     def parse_content(self, content):
76         self.fields = []
77         self.cols = []
78         self.keywords = []
79         if not content:
80             return
81 
82         self.cols = parse_fixed_table(content,
83                                       heading_ignore=['Id', 'Name', 'State'],
84                                       header_substitute=[('Id', 'id'), ('Name', 'name'), ('State', 'state')])[1:]  # noqa
85         self._cleanup()
86 
87         for item in self.cols:
88             self.fields.append(self.keyvalue(item['name'], item['state'], item['id'], item['name'].lower()))  # noqa
89         self.keywords = [name.name_lower for name in self.fields]
90 
91     def __contains__(self, keyword):
92         return keyword.lower() in self.keywords
93 
94     def __iter__(self):
95         return iter(self.fields)
96 
97     def search(self, **kw):
98         '''Search item based on key value pair.
99 
100         Example:
101 
102             >>> len(output.search(state='shut off')) == 11
103             True
104             >>> len(output.search(id=None)) == 11
105             True
106             >>> len(output.search(id=2)) == 1
107             True
108         '''
109         return keyword_search(self.cols, **kw)
110 
111     def get_vm_state(self, vmname):
112         '''Get VM state associated with vmname
113 
114         Typical output is ``virsh --readonly list --all`` command::
115 
116              Id    Name                           State
117             ----------------------------------------------------
118              2     rhel7.4                        running
119              4     rhel7.0                        paused
120 
121 
122         Example:
123 
124             >>> output.get_vm_state('rhel7.0')
125             'paused'
126 
127         Args:
128 
129             vmname (str): A key. For ex. ``rhel7.0``.
130 
131         Returns:
132 
133             str: State of VM. Returns None if, ``vmname`` does not exist.
134         '''
135         if vmname.lower() in self.keywords:
136             return self.search(name=vmname)[0]['state']
137         return None
138
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/insights/parsers/virsh_list_all.py b/insights/parsers/virsh_list_all.py
--- a/insights/parsers/virsh_list_all.py
+++ b/insights/parsers/virsh_list_all.py
@@ -76,6 +76,10 @@
         self.fields = []
         self.cols = []
         self.keywords = []
+        # Check and remove any error message, or empty lines. This to
+        # prevent any ValueError exceptions when parse_fixed_table is
+        # called below.
+        content = [l for l in content if not l.startswith("error: ") and l != ""]
         if not content:
             return

{"golden_diff": "diff --git a/insights/parsers/virsh_list_all.py b/insights/parsers/virsh_list_all.py\n--- a/insights/parsers/virsh_list_all.py\n+++ b/insights/parsers/virsh_list_all.py\n@@ -76,6 +76,10 @@\n         self.fields = []\n         self.cols = []\n         self.keywords = []\n+        # Check and remove any error message, or empty lines. This to\n+        # prevent any ValueError exceptions when parse_fixed_table is\n+        # called below.\n+        content = [l for l in content if not l.startswith(\"error: \") and l != \"\"]\n         if not content:\n             return\n", "issue": "The virsh_list_all parser is raising ValueError exceptions in production\nThe VirshListAll parser is throwing a large number of the exception ValueError(\"Line containing 'Id,Name,State' was not found in table\",) in production.\n", "before_files": [{"content": "\"\"\"VirshListAll - command ``virsh --readonly list --all``\n=========================================================\n\nThis module provides VM status using output of command ``virsh --readonly list --all``.\n\"\"\"\nfrom collections import namedtuple\n\nfrom insights.specs import Specs\nfrom .. import CommandParser, parser\nfrom . import parse_fixed_table, keyword_search\n\n\n@parser(Specs.virsh_list_all)\nclass VirshListAll(CommandParser):\n    \"\"\"Parsing output of ``virsh --readonly list --all``.\n\n    Typical output of ``virsh --readonly list --all`` command is::\n\n        Id    Name                           State\n        ----------------------------------------------------\n        2     rhel7.4                        running\n        4     rhel7.0                        paused\n        -     centos6.8-router               shut off\n        -     cfme-5.7.13                    shut off\n        -     cfme-rhos-5.9.0.15             shut off\n        -     fedora-24-kernel               shut off\n        -     fedora-saio_fedoraSaio         shut off\n        -     fedora24-misc                  shut off\n        -     freebsd11.0                    shut off\n        -     guixSD                         shut off\n        -     miq-gap-1                      shut off\n        -     rhel7.2                        shut off\n        -     RHOSP10                        shut off\n\n\n    Examples:\n\n        >>> len(output.search(state='shut off')) == 11\n        True\n        >>> len(output.search(id=None)) == 11\n        True\n        >>> len(output.search(id=2)) == 1\n        True\n        >>> output.search(name='rhel7.4') == [{'state': 'running', 'id': 2, 'name': 'rhel7.4'}]\n        True\n        >>> output.get_vm_state('rhel7.0') == 'paused'\n        True\n        >>> output.get_vm_state('rhel9.0') is None\n        True\n        >>> 'cfme' in output\n        False\n        >>> 'cfme-5.7.13' in output\n        True\n\n    Attributes:\n        fields (list): List of ``KeyValue`` namedtupules for each line\n                       in the command.\n\n        cols (list): List id key value pair derived from the command.\n\n        keywords (list): keywords present in the command, each\n                        keyword is converted to lowercase.\n\n    \"\"\"\n    keyvalue = namedtuple('KeyValue',\n                          ['name', 'state', 'id', 'name_lower'])\n    \"\"\"namedtuple: Represent name value pair as a namedtuple with case.\"\"\"\n    def _cleanup(self):\n        for col in self.cols:\n            if col['id'] == '-':\n                col['id'] = None\n            else:\n                col['id'] = (lambda x: int(x) if x.isdigit() else x)(col['id'])\n\n    def parse_content(self, content):\n        self.fields = []\n        self.cols = []\n        self.keywords = []\n        if not content:\n            return\n\n        self.cols = parse_fixed_table(content,\n                                      heading_ignore=['Id', 'Name', 'State'],\n                                      header_substitute=[('Id', 'id'), ('Name', 'name'), ('State', 'state')])[1:]  # noqa\n        self._cleanup()\n\n        for item in self.cols:\n            self.fields.append(self.keyvalue(item['name'], item['state'], item['id'], item['name'].lower()))  # noqa\n        self.keywords = [name.name_lower for name in self.fields]\n\n    def __contains__(self, keyword):\n        return keyword.lower() in self.keywords\n\n    def __iter__(self):\n        return iter(self.fields)\n\n    def search(self, **kw):\n        '''Search item based on key value pair.\n\n        Example:\n\n            >>> len(output.search(state='shut off')) == 11\n            True\n            >>> len(output.search(id=None)) == 11\n            True\n            >>> len(output.search(id=2)) == 1\n            True\n        '''\n        return keyword_search(self.cols, **kw)\n\n    def get_vm_state(self, vmname):\n        '''Get VM state associated with vmname\n\n        Typical output is ``virsh --readonly list --all`` command::\n\n             Id    Name                           State\n            ----------------------------------------------------\n             2     rhel7.4                        running\n             4     rhel7.0                        paused\n\n\n        Example:\n\n            >>> output.get_vm_state('rhel7.0')\n            'paused'\n\n        Args:\n\n            vmname (str): A key. For ex. ``rhel7.0``.\n\n        Returns:\n\n            str: State of VM. Returns None if, ``vmname`` does not exist.\n        '''\n        if vmname.lower() in self.keywords:\n            return self.search(name=vmname)[0]['state']\n        return None\n", "path": "insights/parsers/virsh_list_all.py"}], "after_files": [{"content": "\"\"\"VirshListAll - command ``virsh --readonly list --all``\n=========================================================\n\nThis module provides VM status using output of command ``virsh --readonly list --all``.\n\"\"\"\nfrom collections import namedtuple\n\nfrom insights.specs import Specs\nfrom .. import CommandParser, parser\nfrom . import parse_fixed_table, keyword_search\n\n\n@parser(Specs.virsh_list_all)\nclass VirshListAll(CommandParser):\n    \"\"\"Parsing output of ``virsh --readonly list --all``.\n\n    Typical output of ``virsh --readonly list --all`` command is::\n\n        Id    Name                           State\n        ----------------------------------------------------\n        2     rhel7.4                        running\n        4     rhel7.0                        paused\n        -     centos6.8-router               shut off\n        -     cfme-5.7.13                    shut off\n        -     cfme-rhos-5.9.0.15             shut off\n        -     fedora-24-kernel               shut off\n        -     fedora-saio_fedoraSaio         shut off\n        -     fedora24-misc                  shut off\n        -     freebsd11.0                    shut off\n        -     guixSD                         shut off\n        -     miq-gap-1                      shut off\n        -     rhel7.2                        shut off\n        -     RHOSP10                        shut off\n\n\n    Examples:\n\n        >>> len(output.search(state='shut off')) == 11\n        True\n        >>> len(output.search(id=None)) == 11\n        True\n        >>> len(output.search(id=2)) == 1\n        True\n        >>> output.search(name='rhel7.4') == [{'state': 'running', 'id': 2, 'name': 'rhel7.4'}]\n        True\n        >>> output.get_vm_state('rhel7.0') == 'paused'\n        True\n        >>> output.get_vm_state('rhel9.0') is None\n        True\n        >>> 'cfme' in output\n        False\n        >>> 'cfme-5.7.13' in output\n        True\n\n    Attributes:\n        fields (list): List of ``KeyValue`` namedtupules for each line\n                       in the command.\n\n        cols (list): List id key value pair derived from the command.\n\n        keywords (list): keywords present in the command, each\n                        keyword is converted to lowercase.\n\n    \"\"\"\n    keyvalue = namedtuple('KeyValue',\n                          ['name', 'state', 'id', 'name_lower'])\n    \"\"\"namedtuple: Represent name value pair as a namedtuple with case.\"\"\"\n    def _cleanup(self):\n        for col in self.cols:\n            if col['id'] == '-':\n                col['id'] = None\n            else:\n                col['id'] = (lambda x: int(x) if x.isdigit() else x)(col['id'])\n\n    def parse_content(self, content):\n        self.fields = []\n        self.cols = []\n        self.keywords = []\n        # Check and remove any error message, or empty lines. This to\n        # prevent any ValueError exceptions when parse_fixed_table is\n        # called below.\n        content = [l for l in content if not l.startswith(\"error: \") and l != \"\"]\n        if not content:\n            return\n\n        self.cols = parse_fixed_table(content,\n                                      heading_ignore=['Id', 'Name', 'State'],\n                                      header_substitute=[('Id', 'id'), ('Name', 'name'), ('State', 'state')])[1:]  # noqa\n        self._cleanup()\n\n        for item in self.cols:\n            self.fields.append(self.keyvalue(item['name'], item['state'], item['id'], item['name'].lower()))  # noqa\n        self.keywords = [name.name_lower for name in self.fields]\n\n    def __contains__(self, keyword):\n        return keyword.lower() in self.keywords\n\n    def __iter__(self):\n        return iter(self.fields)\n\n    def search(self, **kw):\n        '''Search item based on key value pair.\n\n        Example:\n\n            >>> len(output.search(state='shut off')) == 11\n            True\n            >>> len(output.search(id=None)) == 11\n            True\n            >>> len(output.search(id=2)) == 1\n            True\n        '''\n        return keyword_search(self.cols, **kw)\n\n    def get_vm_state(self, vmname):\n        '''Get VM state associated with vmname\n\n        Typical output is ``virsh --readonly list --all`` command::\n\n             Id    Name                           State\n            ----------------------------------------------------\n             2     rhel7.4                        running\n             4     rhel7.0                        paused\n\n\n        Example:\n\n            >>> output.get_vm_state('rhel7.0')\n            'paused'\n\n        Args:\n\n            vmname (str): A key. For ex. ``rhel7.0``.\n\n        Returns:\n\n            str: State of VM. Returns None if, ``vmname`` does not exist.\n        '''\n        if vmname.lower() in self.keywords:\n            return self.search(name=vmname)[0]['state']\n        return None\n", "path": "insights/parsers/virsh_list_all.py"}]}