xmlrpc DateTime objects can wind up in task arguments, which can be passed to callbacks. These values are not json serializable, which causes some of our hub plugins to error.
Example traceback:
raceback (most recent call last): File "/usr/lib/python2.6/site-packages/koji/plugin.py", line 191, in run_callbacks func(cbtype, *cb_args, **cb_kwargs) File "/usr/lib/koji-hub-plugins/protonmsg.py", line 164, in prep_task_state_change queue_msg(address, props, kws) File "/usr/lib/koji-hub-plugins/protonmsg.py", line 138, in queue_msg body = json.dumps(data) File "/usr/lib64/python2.6/json/__init__.py", line 230, in dumps return _default_encoder.encode(obj) File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode chunks = list(self.iterencode(o)) File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/usr/lib64/python2.6/json/encoder.py", line 306, in _iterencode for chunk in self._iterencode_list(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 204, in _iterencode_list for chunk in self._iterencode(value, markers): File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/usr/lib64/python2.6/json/encoder.py", line 317, in _iterencode for chunk in self._iterencode_default(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 323, in _iterencode_default newobj = self.default(o) File "/usr/lib64/python2.6/json/encoder.py", line 344, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: <DateTime '20160528T05:11:40' at 7f7c2256fcb0> is not JSON serializable
pr forthcoming...
I can replicate this locally by creating a wrapperRPM task.
PR #677 appears to fix the issue
Metadata Update from @julian8628: - Issue set to the milestone: 1.15
Commit c496bf99 fixes this issue
This issue has been migrated to Fedora Forge: https://forge.fedoraproject.org/koji/koji/issues/676
Please continue any further discussion there.