Modifying runaway tinc udf to trigger runaway detection only on one segment. (#2251)
We add one more udf that only allocates on one specific segment and modify the hit_vlim_crit_section test to use the new udf. The original generic UDF uses an union all which creates one extra slice on segment 0. This allowed existence of two QE processes on segment 0. The test checks if we successfully ignore runaway termination as long as we are in critical section. The critical section is a per-process state and therefore a second runaway detector on the same segment can still mark the session as runaway. This causes the session to eventually trigger a runaway cleanup after it comes out of critical section. We still don't PANIC as runaway termination successfully ignores. But, the runaway detection couldn't ignore the critical section because of per-process critical section state and this eventually produces a diff in concourse occasionally. An alternative to introducing a new UDF is to modify the test to trigger it on a different segment other than segment 0, where the extra QE process currently gets created. I am waiting someone from QO to explain why we need an extra slice on segment 0. Until then I would rather not patch the test to trigger it on a different segment without having a guarantee that in the future planner will not generate the extra slice on another segment.
Showing
想要评论请 注册 或 登录