You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This isn't really a bug in sentry-rust and is definitely user error, but I wanted to open an issue in case someone else runs into the same problem.
The problem
I followed the docs to setup sentry-tower with tower-http. The docs have a great example of binding both layers using tower::ServiceBuilder.
The problem is, I am using Axum, which applies layers in the opposite order. I naively copied the Sentry example without re-ordering the layers, like this:
let app = Router::new().route("/",get(handler)).layer(sentry_tower::NewSentryLayer::<Request>::new_from_top()).layer(sentry_tower::SentryHttpLayer::with_transaction())
Once deployed the server started leaking memory and crashing every 2 days with an OOM error.
Solution
I realized my mistake and re-ordered the middleware, using a ServiceBuilder like Axum suggests:
let app = Router::new().route("/",get(handler)).layer(ServiceBuilder::new()
sentry_tower::NewSentryLayer::<Request>::new_from_top()
sentry_tower::SentryHttpLayer::with_transaction())
That seems to have fixed the leak. I haven't run a heap profile, but I am guessing it's because we are also using the tracing integration with breadcrumbs and traces and those weren't being disposed of properly.
Suggestions
Again this was user error, so feel free to close this issue. Perhaps the docs could be updated with an additional warning for Axum users?
The text was updated successfully, but these errors were encountered:
Hello,
This isn't really a bug in sentry-rust and is definitely user error, but I wanted to open an issue in case someone else runs into the same problem.
The problem
I followed the docs to setup
sentry-tower
withtower-http
. The docs have a great example of binding both layers usingtower::ServiceBuilder
.The problem is, I am using Axum, which applies layers in the opposite order. I naively copied the Sentry example without re-ordering the layers, like this:
Once deployed the server started leaking memory and crashing every 2 days with an OOM error.
Solution
I realized my mistake and re-ordered the middleware, using a
ServiceBuilder
like Axum suggests:That seems to have fixed the leak. I haven't run a heap profile, but I am guessing it's because we are also using the tracing integration with breadcrumbs and traces and those weren't being disposed of properly.
Suggestions
Again this was user error, so feel free to close this issue. Perhaps the docs could be updated with an additional warning for Axum users?
The text was updated successfully, but these errors were encountered: