I've been very lucky to have had some great mentors in my life – and didn't know it at the time. That's the funny thing about mentors – they're measured by the historical influence they had on you – the things you remember, repeat and recount years later.
They're not actually teaching you about a particular topic per se, they're teaching you a love for a particular topic and you may not know it at the time.
A mentor is not a role model. People are fallible in their personal lives, and like politicians, we're wont to dismiss their influence by their behavior. But that's not how mentoring works. A mentor shares a common bond on a topic – a shared belief in what that topic means to you both – a common bond in an idea greater than you both.
We tend to look at software mentoring as a special case of mentoring, but I don't think it is. If you can recount the fabric of a conversation years later – minus the technology – then that individual spoke to you in a language (a meta-language if you will) about contexts both bigger than the topic and the two of you.
I've been fortunate to have had both musical and business mentors and even one who was both. I didn't particularly like him at the time, but years later I've come to acknowledge his important influence in shaping my own approaches. Others I relished at the time and couldn't get enough of their input – usually on topics completely outside our common daily routines.
So it begs the question… Should a mentor – if they are to have lasting influence – actually limit discourse to the topic at hand? Or should they be trying to teach you something else?