• P
    Cleanup dispatch and teardown interconnect once portal failure detected · bc563630
    Pengzhou Tang 提交于
    Formerly, GPDB do dispatch/interconnect cleanup on executor level
    which means once an error occurs within executor, it will be catched and
    dispatch/interconnect will be cleaned. The problem is if an error occurs
    after an executor started but before the executor run, dispatch/interconnect
    has no chance to be cleaned up. A problem is that outbound UDP interconnect
    packets still think the interconnect is active and will access the
    memory that has been freed.
    
    This commit add a few cleanup points on portal level, a higher call level
    than executor to cover more cases shown as above. mppExecutorCleanup() is
    reentrant, so it's ok to do double check on both level.
    bc563630
pquery.c 52.1 KB