-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollbar stops sending after few days #246
Rollbar stops sending after few days #246
Comments
Hi @amiram, rollbar-java and related projects use slf4j, and a failure to send a payload will log an error through slf4j. Whether that ends up in the logs for your app will depend on what slf4j can find in your classpath at runtime, but for example for an out of the box spring-boot app, a failure to send the payload due to a connection refused would result in this, via Logback:
If you have a Logback configuration in your application, the loggers used by rollbar are under Can you add here the versions of the rollbar and spring dependencies, as well as the java version? And if possible, the versions under which things were working (what you upgraded from)? Thanks |
We discovered that lombok was adding an override for toString(). If two classes had a reference to each other, the serializer failed to serialize the object, and also it caused all other rollbar payloads to not being sent right after the first serializer error, even if they had no serializer error. Example:
|
The fact that a class cannot be serialized is out of our control, but if that causes subsequent payloads to fail as well, we need to look into it. Could you please add the versions of the rollbar dependencies you're using? Thanks |
We're using rollbar 1.7.5 |
@diegov For further clarification: We are using Spring Boot as our Java framework. We use Lombok in Java which generates an automated toString method in human readable form. When you call toString on the payload, Lombok recursively moves through all non-primitive class members and prints the values of all primitives. We were sending a class to rollbar that had a circular dependency (this is not uncommon with JPA). The toString function in this case was causing an infinite loop which led to a stack overflow. This stack overflow occurred in the async thread dedicated to sending data to rollbar. Because this is not an Exception but rather an Error, not only was it uncaught, but it also seems to have killed the thread that was sending data to rollbar. It seems as though there was only one thread responsible for this, and when it died, data stopped being sent to rollbar. For a fix, you should probably focus on handling an Error in the async thread in a way that the thread does not die. Please let us know if you need any further information from us. |
Hi @klethys Thanks very much for the detailed info. Yes, there are a few places where we catch Thanks |
We upgraded our java server recently to the recent spring libraries, and rollbar stops sending errors after few days of the server working. Nothing is found in our logs. Is there any way to log locally when rollbar fails to send?
We have other rollbar instances, not in java, that are sending as usual. We also have other java servers that are sending as usual but they are not in production and they are restarted very frequently.
The text was updated successfully, but these errors were encountered: