This is codes I run: class TopicManager(SyncManager): pass Server side: m = TopicManager(address=('', 50000), authkey='12345') s = m.get_server() s.serve_forever() client side: m = TopicManager(address=('eng-g9-018', 50000), authkey='12345') m.connect() When I use Python2.7.5, m.connect() can connect to server. But when I use Python2.7.13, m.connect() throws out AuthenticationError "digest sent was rejected" Searched and multiprocessing.current_process().authkey = "12345" doesn't help.
The docstring for the class points out that the `multiprocessing.Manager()` function creates started instances of the SyncManager class. You should probably follow that advice, it calls start() for you.
I can't reproduce the failure with 2.7.13 but I do encounter the same failure just now, much same as yours, 2.7.5 and 2.7.13. I'd like to describe my situation. I have one client process started by 2.7.13(I build it from source) and one server process started by the system Python 2.7.5. I then get the same error as yours, failing at connect() and the authkey doesn't matter. The reason I find is that the system Python is patched by the OS vendor, changing the default MD5 algorithm to SHA256. So they can't communicate. Patching the source or syncing the version works for me.