I once found this bug, where a destructor was taking forever:
hash_set<char*> hash;
// <fill up/use hash>
while(!hash.empty()) {
free(*hash.begin());
hash.erase(hash.begin());
}
hash tables are not meant to be used like that.