yeah... maybe?  I think the code is sort of accidentally correct enough:

here's the method in question:

```
      def retrieve_connection_pool(klass)
        class_to_pool[klass.name] ||= begin
          until pool = pool_for(klass)
            klass = klass.superclass
            break unless klass <= Base
          end

          class_to_pool[klass.name] = pool
        end
      end
```

`pool_for(klass)` returns nil, and then  `klass = Struct#superclass`, which fails the `klass <= Base` check, so we return nil.  Does that sound like the logic flow you were seeing?  I think you're right that in our case we either have a pool for `klass.name` or we don't.   I'm a little bit concerned about the logic involving `if ancestor_pool = pool_from_any_process_for(owner)` -- we should maybe see what happens when we fork() and try to re-use the connection...