| Summary: | Handle exceptions while populating data to transmit using xmlrpc | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BitBake | Reporter: | Sujith H <sujith.h> |
| Component: | bitbake | Assignee: | Sujith H <sujith.h> |
| Status: | RESOLVED FIXED | QA Contact: | David Lopez Barriba <davidx.lopez.barriba> |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | jose.perez.carranza, poky.bs.watcher, poky.watcher, ross.burton, sjolley.yp.pm |
| Version: | 2.3 | ||
| Target Milestone: | 2.3 M1 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
While investigation it was found that variable v was having object of type v = <subprocess.Popen object at 0x7f56f4964ef0>. Fixed in bitbake efb0e47479b3526bc047112f7200087c5844bba4. |
While working for toaster, I came across an incident. A variable which was used for private use was having value as subprocess.Popen. The problem was detected in function: getAllKeysWithFlags from file: bitbake/lib/bb/cooker.py. The error shown was: ERROR: <Fault 1: "<class 'TypeError'>:cannot marshal <class '_thread.lock'> objects"> Traceback (most recent call last): File "/home/sujith/MEL/toaster-latest/poky/bitbake/lib/bb/ui/toasterui.py", line 256, in main buildinfohelper.save_build_layers_and_variables() File "/home/sujith/MEL/toaster-latest/poky/bitbake/lib/bb/ui/buildinfohelper.py", line 1151, in save_build_layers_and_variables data = self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0] File "/usr/lib/python3.4/xmlrpc/client.py", line 1098, in __call__ return self.__send(self.__name, args) File "/usr/lib/python3.4/xmlrpc/client.py", line 1437, in __request verbose=self.__verbose File "/usr/lib/python3.4/xmlrpc/client.py", line 1140, in request return self.single_request(host, handler, request_body, verbose) File "/usr/lib/python3.4/xmlrpc/client.py", line 1156, in single_request return self.parse_response(resp) File "/usr/lib/python3.4/xmlrpc/client.py", line 1327, in parse_response return u.close() File "/usr/lib/python3.4/xmlrpc/client.py", line 657, in close raise Fault(**self._stack[0]) xmlrpc.client.Fault: <Fault 1: "<class 'TypeError'>:cannot marshal <class '_thread.lock'> objects"> So if we handle the types which come from the data store as marshallable or at least if we try to have a mechanism to convert non marshallable type objects to str, then this issue could have been suppressed.