# HG changeset patch # User Jun Wu # Date 2016-04-04 00:59:57 # 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 --git a/hgext/chgserver.py b/hgext/chgserver.py --- a/hgext/chgserver.py +++ b/hgext/chgserver.py @@ -45,6 +45,7 @@ import errno import gc import inspect import os +import random import re import struct import sys @@ -540,6 +541,9 @@ class _requesthandler(SocketServer.Strea # 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