diff --git a/Lib/http/server.py b/Lib/http/server.py index 2d74b95586c..fa204fbc15e 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -1164,8 +1164,9 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler): while select.select([self.rfile], [], [], 0)[0]: if not self.rfile.read(1): break - if sts: - self.log_error("CGI script exit status %#x", sts) + exitcode = os.waitstatus_to_exitcode(sts) + if exitcode: + self.log_error(f"CGI script exit code {exitcode}") return # Child try: diff --git a/Misc/NEWS.d/next/Library/2020-04-02-01-13-28.bpo-40094.AeZ34K.rst b/Misc/NEWS.d/next/Library/2020-04-02-01-13-28.bpo-40094.AeZ34K.rst new file mode 100644 index 00000000000..ba13d3cdf4a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-04-02-01-13-28.bpo-40094.AeZ34K.rst @@ -0,0 +1,3 @@ +CGIHTTPRequestHandler of http.server now logs the CGI script exit code, +rather than the CGI script exit status of os.waitpid(). For example, if the +script is killed by signal 11, it now logs: "CGI script exit code -11."