Hello,
Here are two more bugs I found by running the regression tests
repeatedly with dsm_create() hacked to fail at random.
1. If find_or_make_matching_shared_tupledesc() fails, we leave behind
a null pointer in RecordCacheHash, so that a later lookup segfaults.
2. If we do a rescan, then ExecHashJoinReInitializeDSM() needs to
return early if there is no DSM segment, otherwise a TOC lookup raises
a bogus error.
Here are some draft patches.