bneradt commented on PR #13838: URL: https://github.com/apache/trafficserver/pull/13838#issuecomment-6636148001
@bryancall Thanks. Rebased on master and pushed as 2daf16c211. **HTTP/3.** I ran `--log-field` over HTTP/3 with curl: two requests and one aborted request on the same connection. Two problems showed up, and both are now fixed or avoided here: - **Crash.** Every HTTP/3 connection segfaulted in `ProxySession::state_api_callout`, called from `HQSession::new_connection`. `HQSession` never set its mutex, so any global SSN_START hook crashed it, and the JA3/JA4 `--log-field` instances add one. `HQSession` now takes the connection mutex, as HTTP/1 and HTTP/2 do. This is a core change, in `Http3Session.cc`. It may be what you hit. If yours is something else, please share the repro and I'll add it. - **Leak.** HQSession never fires SSN_CLOSE, so the JA4H copies leaked. The plugin now keeps no session copies on QUIC sessions, and JA4H logs `-` over HTTP/3. The docs say so. `test_jax_fingerprint_log_field_http3` covers both cases, and it segfaults without the mutex line. With the fix, traffic_dump's manual HTTP/3 test no longer crashes either. It still fails, on the dump contents, because SSN_CLOSE never fires. **`TSLogStringUnmarshal`.** The title and description now name it as a public API fix, and so will the squash message. I added your plugin as `tests/tools/plugins/log_string_field.cc` and your test as `tests/uranium_tests/logging/test_log_string_unmarshal.py`. **Your non-blocking notes and the Copilot threads:** - **Load order.** I fixed this instead of documenting it. Every instance that shares the JA4H context now saves the copy, so load order no longer matters. The `log-field-second-instance` variant covers it. - **Export isolation.** Copies are now keyed by export registry and method. The `log-field-per-export` variant covers it. - **Freeing.** Both log-field tests count the session copies created and freed and require the counts to match. All 40 fingerprint, log and HTTP/3 urtests pass locally. -- 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]
