If I shadow a display somewhere, then shadow again back to original display, I have created a loop... which creates havoc with the nested loop clipboard code:
Maximum recursion depth exceeded
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 451, in expire_delayed_region
self.may_send_delayed()
File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 506, in may_send_delayed
self.do_send_delayed_region()
File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 513, in do_send_delayed_region
self.send_delayed_regions(*delayed)
File "/usr/lib64/python2.7/site-packages/xpra/server/window_source.py", line 552, in send_delayed_regions
log.error("send_delayed_regions: error processing region %s: %s", damage, e, exc_info=True)
File "/usr/lib64/python2.7/site-packages/xpra/log.py", line 34, in <lambda>
self.log(level, msg, *args, **kwargs))
File "/usr/lib64/python2.7/site-packages/xpra/log.py", line 30, in log
self.logger.log(level, msg, *args, **kwargs)
File "/usr/lib64/python2.7/logging/__init__.py", line 1218, in log
self._log(level, msg, args, **kwargs)
File "/usr/lib64/python2.7/logging/__init__.py", line 1264, in _log
fn, lno, func = self.findCaller()
File "/usr/lib64/python2.7/logging/__init__.py", line 1225, in findCaller
f = currentframe()
RuntimeError: maximum recursion depth exceeded
We should detect when the nesting level gets high, and disable the clipboard.
Preferably, we would also have a way to avoid getting in that situation in first place.
Issue migrated from trac ticket # 452
component: core | priority: major | resolution: fixed
2013-11-05 08:23:17: totaam created the issue