One bug found by Specula:
EpollFile::add_interest assumes a stale entry left after close will be replaced by a later insert, but the key is (raw fd, descriptor pointer). When the raw fd number is reused for a new descriptor, the pointer changes, so the stale entry remains and each add inserts another dead interest. This is a reproduced resource-retention bug, not a wrong-event-delivery bug.
See the report for more details.
One bug found by Specula:
EpollFile::add_interest assumes a stale entry left after close will be replaced by a later insert, but the key is (raw fd, descriptor pointer). When the raw fd number is reused for a new descriptor, the pointer changes, so the stale entry remains and each add inserts another dead interest. This is a reproduced resource-retention bug, not a wrong-event-delivery bug.
See the report for more details.