test/osd: Fix event loop context violations in test fixtures
Refactored test fixture code to properly execute object context operations within event loop context, fixing ceph_assert(osd != -1) failures. Key changes: - Split functions calling get_object_context() into implementation and wrapper functions that schedule work on the primary OSD via event loop - Added accessor functions (set_object_context, clear_object_contexts) to encapsulate per-OSD object_contexts map access - Fixed lambda capture bug in PGBackendTestFixture::update_osdmap() - Refactored run_parallel_recovery_and_verify_callbacks() to execute within proper event loop context All object context operations now execute within the correct OSD context, with get_object_context() as the single point querying the current OSD. Added test ZeroSizeObjectWithAttributesRecovery to verify recovery of zero-size objects with attributes after primary failover, ensuring attributes are properly recovered on the failed shard. Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com> Assisted-by: IBM-Bob:Claude-Sonnet # Conflicts: # src/test/osd/ECPeeringTestFixture.cc
A
Alex Ainscow committed
bcc26ce6f26a49a6a809a35c687660cc37cf7e1b
Parent: 7163b73