# HG changeset patch # User Jun Wu # Date 1459731597 -3600 # Node ID 97c8da2f89f973a52a617bc6a6317a731bc5de18 # Parent 222f482930c8e3bf452f94941f44c9f758143bdf chgserver: change random state after fork Before this patch, extensions expecting a different random state per command will break since the chg request handler will inherit a same random state from the parent daemon process. This patch addresses the issue by calling random.seed() after fork. diff -r 222f482930c8 -r 97c8da2f89f9 hgext/chgserver.py --- a/hgext/chgserver.py Mon Apr 04 02:36:05 2016 +0100 +++ b/hgext/chgserver.py Mon Apr 04 01:59:57 2016 +0100 @@ -45,6 +45,7 @@ import gc import inspect import os +import random import re import struct import sys @@ -540,6 +541,9 @@ # process pass kernel "is_current_pgrp_orphaned" check so signals like # SIGTSTP, SIGTTIN, SIGTTOU are not ignored. os.setpgid(0, 0) + # change random state otherwise forked request handlers would have a + # same state inherited from parent. + random.seed() ui = self.server.ui repo = self.server.repo sv = None