saimayithri opened a new pull request, #13362:
URL: https://github.com/apache/trafficserver/pull/13362
Refs: #13358
## Summary
`Http2CommonSession::state_complete_frame_read()` schedules
`HTTP2_SESSION_EVENT_REENABLE` on the thread currently holding the session
mutex.
That thread can differ from the underlying `NetVConnection` owner thread.
When the re-enable handler later processes frames or releases streams, it can
reach `UnixNetVConnection` queue operations from the wrong thread and trigger
the NetHandler lock assertion described in #13358.
This change schedules the re-enable event on the session `NetVConnection`'s
owner thread instead.
## Changes
At both HTTP/2 re-enable scheduling sites:
- Keeps the existing continuation, delay, event type, and `VIO` unchanged.
- Uses `get_netvc()->thread` as the scheduling target instead of
`get_mutex()->thread_holding`.
- Asserts that the session has an associated `NetVConnection` before
scheduling.
## Validation
- Built successfully with:
cmake --build build-dev -j4
- Ran:
ctest --test-dir build-dev -j4
## Scope
This PR addresses the HTTP/2 re-enable path from #13358 only. The separate
HTTP/1.1 cache-write teardown path remains under investigation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]