cubicweb #5453602 traceback when modifying a CWSourceSchemaConfig [in-progress]

When one tries to modify the 'role' or 'action' config option of a CWSourceSchemaConfig entity, a traceback occurs like:

Traceback (most recent call last):
 File "/usr/lib/python2.7/dist-packages/cubicweb/server/session.py", line 1143, in commit
   operation.handle_event('postcommit_event')
 File "/usr/lib/python2.7/dist-packages/cubicweb/server/hook.py", line 762, in handle_event
   getattr(self, event)()
 File "/usr/lib/python2.7/dist-packages/cubicweb/hooks/syncsources.py", line 188, in postcommit_event
   self.check_or_update(False)
 File "/usr/lib/python2.7/dist-packages/cubicweb/hooks/syncsources.py", line 182, in check_or_update
   source.update_schema_config(schemacfg, checkonly=checkonly)
 File "/usr/lib/python2.7/dist-packages/cubicweb/server/sources/__init__.py", line 332, in update_schema_config
   self.del_schema_config(schemacfg, checkonly)
 File "/usr/lib/python2.7/dist-packages/cubicweb/server/sources/datafeed.py", line 152, in del_schema_config
   parser.del_schema_config(schemacfg, checkonly)
 File "/usr/lib/python2.7/dist-packages/cubicweb/sobjects/cwxmlparser.py", line 178, in del_schema_config
   rules = self.source.mapping[etype][(rtype, role, action)]
KeyError: (u'version_of', u'subject', u'copy')
prioritynormal
typebug
done in<not specified>
closed by<not specified>
patch[server] rebuild the source.mapping dict on CWSourceSchemaConfig modifications (closes #5453602) [rejected]