copy_from callback may cause ObjectContextRef leak
step 1: C_Copyfrom.finishi() call pg.lock()
step 2: process_copy_chunk erase the cop from copy_ops at the end
step 3: C_Copyfrom.finishi() call pg.lock()
step 4: before deconstruct the C_Copyfrom(and the cop).
step 1: pg.on_change.
step 2: cancel_copy_ops is not effective because cop had erased
step 3: object_contexts.clear() will leaks
setp 1: on flushed, assert false on object_contexts.empty()
it is really rare but possible..
- Status changed from New to Fix Under Review
- Pull request ID set to 27084
- Status changed from Fix Under Review to Pending Backport
- Backport set to nautilus, mimic, luminous
- Copied to Backport #38972: mimic: copy_from callback may cause ObjectContextRef leak added
- Copied to Backport #38973: nautilus: copy_from callback may cause ObjectContextRef leak added
- Backport changed from nautilus, mimic, luminous to nautilus, mimic
- Status changed from Pending Backport to Resolved
The code this is changing (struct C_CopyChunk) does not exist in luminous, so I removed the luminous backport.
Also available in: Atom