The worst thing about open-source communities is that they are mostly comprised of volunteers. Not only does this mean that people must self-select and the community must prune its ranks of toxic elements, but it means that the people involved in the community are there because they want to be there.
Unfortunately, people being who they are, it can be extremely easy to make someone not want to be there anymore... So far, the greater open-source community has mostly gotten along by saying those people don't deserve to be there. The more common response to vitriol is not telling the source that "you need to stop spewing poison" but telling the destination "you need to stop being hurt by poison".
It takes effort to participate in an open-source community. For that reason, we should be doing everything we can to ensure that effort is valued and continues.
Dealing with toxic people in a community is work. Hard work. Work that must be done to participate in the community. At some point, being part of the community becomes no longer worth dealing with its toxic elements. And at that point, there is no other thing to do but leave.