{"issue":{"state":"open","pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"user":{"avatar_url":"https://secure.gravatar.com/avatar/9cb725091bb2c32fdc168281e7dda9af?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"9cb725091bb2c32fdc168281e7dda9af","url":"https://api.github.com/users/ricard33","login":"ricard33","id":1162576},"milestone":null,"assignee":null,"labels":[],"updated_at":"2011-11-01T14:43:37Z","comments":2,"closed_at":null,"url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/130","body":"Since change id \"de19b674\" from mitsuhiko (on 2011-07-05 \"Added an ugly way to shutdown the Werkzeug server\"), this error is displayed on each request using Werkzeug deguger on Django (django + django_extensions + werkzeug).\r\n\r\nFull traceback :\r\n\r\n\r\n----------------------------------------\r\nException happened during processing of request from ('127.0.0.1', 49331)\r\nTraceback (most recent call last):\r\n  File \"C:\\Python27\\lib\\SocketServer.py\", line 284, in _handle_request_noblock\r\n    self.process_request(request, client_address)\r\n  File \"C:\\Python27\\lib\\SocketServer.py\", line 310, in process_request\r\n    self.finish_request(request, client_address)\r\n  File \"C:\\Python27\\lib\\SocketServer.py\", line 323, in finish_request\r\n    self.RequestHandlerClass(request, client_address, self)\r\n  File \"C:\\Python27\\lib\\SocketServer.py\", line 639, in __init__\r\n    self.handle()\r\n  File \"C:\\Python27\\lib\\site-packages\\werkzeug\\serving.py\", line 188, in handle\r\n    self.initiate_shutdown()\r\n  File \"C:\\Python27\\lib\\site-packages\\werkzeug\\serving.py\", line 197, in initiate_shutdown\r\n    os.kill(os.getpid(), signal.SIGKILL)\r\nAttributeError: 'module' object has no attribute 'SIGKILL'\r\n----------------------------------------\r\n","html_url":"https://github.com/mitsuhiko/werkzeug/issues/130","title":"[Win32] AttributeError: 'module' object has no attribute 'SIGKILL'","number":130,"id":2097386,"created_at":"2011-10-31T14:23:03Z"},"action":"created","comment":{"user":{"avatar_url":"https://secure.gravatar.com/avatar/079c333e0f2e730f8121352e28d5ad4c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"079c333e0f2e730f8121352e28d5ad4c","url":"https://api.github.com/users/sergedomk","login":"sergedomk","id":684386},"updated_at":"2011-11-01T14:43:37Z","url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/comments/2591043","body":"I haven't looked at the code, but if I'm reading ricard33's post right. I think the issue is that the signal module he's using on Win32 does not contain the SIGKILL constant. The Python signal module documentation states that not all signal constants are supported by all OSs and are not included in the module for that OS if not supported.\r\n\r\nI did a little web search and it appears that the lack of SIGKILL support might be the case for Win32 in general and not just an issue of an older version of the signal module.\r\n\r\nThat said, my understanding of the nature of signal handling on Win32 is that they all terminate unconditionally. I.e. a SIGTERM on Win32 is equivalent to a SIGKILL on Linux.\r\n\r\nA change to raise the SIGTERM if SIGKILL is not defined might be sufficient to resolve this issue. At least until a \"pretty\" way of shutting down the server is created.","id":2591043,"created_at":"2011-11-01T14:43:37Z"}}