Some questions about null_transform.c (the mother of all transform plugins).
Is this, https://github.com/apache/trafficserver/blob/d9f647ca7c15d0eb4687fa59706ab246f49ece1b/example/plugins/c-api/null_transform/null_transform.c#L192 , really a reliable way to make sure all transform-related resources get cleaned up, in both success and failure cases. Seem like there would be an explicit VCONN_CLOSE event. Perhaps we should just use TXN_CLOSE to reliably do cleanup? There are 3 TSContCall() calls on the continuation returned by TSVConnWriteVIOGet(). TSContCall() does a try-lock on the continuation's mutex, and a release assert if the try-lock fails ( https://github.com/apache/trafficserver/blob/d9f647ca7c15d0eb4687fa59706ab246f49ece1b/src/traffic_server/InkAPI.cc#L4792 ). What logic prevents this release assert from being triggered?