tower-rs / tower-http

HTTP specific Tower utilities.
675 stars 156 forks source link

trace: adds back call to classify_eos on trailers #483

Open markdingram opened 4 months ago

markdingram commented 4 months ago

Motivation

We have some tracing middleware that started as a copy of https://github.com/EmbarkStudios/server-framework/blob/main/src/middleware/trace.rs

After upgrading to tower-http 0.5.X one of the tests is failing -

https://github.com/EmbarkStudios/server-framework/blob/1bae7fe7a417443b365d2452007adfe46910037b/src/middleware/trace.rs#L205-L215

json atoms at path ".span.otel.status_code" are not equal:
    expected:
        "ERROR"
    actual:
        "OK"

Solution

Adds back call to classify_eos on trailers.

I've proven with this change the downstream tests pass once more. Notably I haven't attempted to write any tests in this repo - there was a historic desire to rewrite this middleware expessed in https://github.com/tower-rs/tower-http/issues/365 - I would be amenable to spend some time to upstream some of the tests from https://github.com/EmbarkStudios/server-framework/blob/main/src/middleware/trace.rs if considered worthwhile by the maintainers.