Closed juli-alvarez closed 3 years ago
thanks @juli-alvarez This makes a lot of sense and would be a far better way of doing. I assume you tried the solution above and it worked. Would you like to submit a PR to change the *.flux file?
Hi @jnioche! Glad you like the approach. Yes, we have the crawler running for the past 24hs and everything is working as expected, no exception, no workers dying and grafana dashboards looking good as well. Sure, I will create the PR with the changes in the flux file.
Not that I don't want to do it myself: I really want you to take full credit for it ;-)
@jnioche Done! Thanks Julien 🥇
Fixed in #910
We have been using stormcrawler with elasticsearch under huge load using parallelism across multiple workers for some time without any issues. After we upgraded the version from 1.18 to 2.1 (storm 1.2.3 to 2.2.0 as well) we started getting ConcurrentModificationException from kryo for Metadata class.
We did some research and found that the root cause of the issue was that the Metadata object was being mutated after it was emitted. Also we were able to identify that the issue disappeared whenever we removed the status_metrics bolt from the topology. That made sense because the metadata emitted by the spout was modified later in the default stream and was also emitted to the status metrics bolt.
We propose a solution that is connecting the status metrics bolt to the system using the tick stream. That's because the mentioned bolt only uses the tick tuple to perform kind of a cron job. This way we avoid passing the real tuple that is not used at all with the metadata that was causing the issue.
es-crawler.flux
BTW, I'm working with @matiascrespof and @jcruzmartini.
Thanks!