Bug in ClientRepository?

Hi all,

I’ve been working with the Panda distributed object model and I’ve hit what appears to be a bug in ClientRepository. Either that or I have missed implementing something crucial, which is entirely possible :slight_smile:

Specifically, I am dying on what is, in my copy, line 38 of ClientRepository.py, in the handleRequestGenerates function. Specifically:

def handleRequestGenerates(self, di):
    # When new clients join the zone of an object, they need to hear
    # about it, so we send out all of our information about objects in
    # that particular zone.

    assert self.DOIDnext < self.DOIDlast
    zone = di.getUint32()
    for obj in self.doId2do.values():
        if obj.zone == zone:   # <-- this line is crashing
            id = obj.doId
            if (self.isLocalId(id)):
                self.send(obj.dclass.clientFormatGenerate(obj, id, zone, []))

It is complaining that “obj” (which will be one of the distributed objects) has no attribute ‘zone’. I’ve poked around ClientRepository and the related classes in the source tree, and it looks to me like ClientRepository sets and references said ‘zone’ attribute on a distributed object, however in other classes, I see an attribute named ‘zoneId’.

I’m still a bit fuzzy on some of the inner workings of the distributed object model, but it looks to me like these two attributes are really referring to the same thing, and should all be .zone or .zoneId. Would this be a correct assumption, or am I overlooking something?