root@prasad-autotest-2:/usr/local/autotest/client# cat 0001-Do-not-pickle-SoftwareManager.patch >From 72fd2c3a81bf60dffd71bcffbc31e8fcaa205dd1 Mon Sep 17 00:00:00 2001 From: Prasad Joshi <[email protected]> Date: Sat, 21 Jul 2012 01:59:19 +0530 Subject: [PATCH] Do not pickle SoftwareManager
The sleeptest on remote CentOS machine resulted in following traceback
15:45:31 ERROR| JOB ERROR: Unhandled TypeError: can't pickle file objects
Traceback (most recent call last):
File "/tmp/sysinfo/autoserv-KCmM2V/job.py", line 1165, in step_engine
execfile(self.control, global_control_vars, global_control_vars)
File "/tmp/sysinfo/autoserv-KCmM2V/control.autoserv", line 13, in <module>
pickle.dump(job.sysinfo, open(sysinfo_pickle, 'w'))
File "/usr/lib64/python2.6/pickle.py", line 1362, in dump
Pickler(file, protocol).dump(obj)
File "/usr/lib64/python2.6/pickle.py", line 224, in dump
self.save(obj)
File "/usr/lib64/python2.6/pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "/usr/lib64/python2.6/pickle.py", line 419, in save_reduce
...
...
...
...
File "/usr/lib64/python2.6/pickle.py", line 306, in save
rv = reduce(self.proto)
File "/usr/lib64/python2.6/copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle file objects
Marking SoftwareManager as not to pickle solve the problem.
Signed-off-by: Abhay Chavan <[email protected]>
Signed-off-by: Rajshree Thorat <[email protected]>
Signed-off-by: Prasad Joshi <[email protected]>
---
client/base_sysinfo.py | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/client/base_sysinfo.py b/client/base_sysinfo.py
index 8aef38a..9029c77 100644
--- a/client/base_sysinfo.py
+++ b/client/base_sysinfo.py
@@ -192,6 +192,10 @@ class base_sysinfo(object):
log_in_keyval=True))
self.sm = software_manager.SoftwareManager()
+ def __getstate__(self):
+ ret = dict(self.__dict__)
+ ret["sm"] = None
+ return ret
def serialize(self):
return {"boot": self.boot_loggables, "test": self.test_loggables}
--
1.7.5.4
0001-Do-not-pickle-SoftwareManager.patch
Description: Binary data
_______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
