[Bug] failed assertion "mp != nullptr" in CMemoryPoolManager.cpp::Destroy (gporca/libgpos)
- Dominant language
- C
- Stars
- 1.4k
- Forks
- 247
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 39
Description
### Cloudberry Database version
_No response_
### What happened
in log file (dbfast2) of a recent pg_upgrade failure (https://github.com/cloudberrydb/cloudberrydb/actions/runs/6744120555/job/18339332696), many `GPOS_ASSERT` failure pops up, indicating parameter `CMemoryPool *mp` of `CMemoryPoolManager::Destroy` is `nullptr` when it shouldn't. this needs further investigation.
log files can be downloaded at https://github.com/cloudberrydb/cloudberrydb/suites/17879327237/artifacts/1027090491.
### What you think should happen instead
personally I suppose this is benign.
### How to reproduce
I think it occurred on machine several times. but I don't find a reliable way to reproduce.
### Operating System
ci
### Anything else
_No response_
### Are you willing to submit PR?
- [ ] Yes, I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://cloudberrydb.org/community/coc).
Contributor guide
Research direction
Start by downloading the linked CI log artifacts and inspect the GPOS_ASSERT failures for CMemoryPoolManager::Destroy in gporca/libgpos and CMemoryPoolManager.cpp. Trace why the CMemoryPool *mp parameter is nullptr during pg_upgrade, determine whether the assertion is benign, and establish a reliable reproduction or document why none is available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, postgresql
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100