Dear twisted users,
I think I have found some surprising behavior in perspective broker. I define a subclass of pb.RemoteCache which has a method managed by a descriptor. The descriptor keeps track of the instances it manages in a set.
When the RemoteCache is first received by the client, it accesses the descriptor-ified method inside setCopyableState. At that time the RemoteCache's id is a certain value X. Then later when the RemoteCache is notified of a change by the server side Cacheable, it again accesses the descriptor-ified method, but at this time it's id is Y, and Y!=X.
I attach to this post a simple working example which displays the behavior described above. To run, first run server.py and then run client.py. You will see a little bit of output, the most important part being
===
Client received RemoteCache: id=45952496