[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #9330 [Pluggable transport]: Pluggable Transports on windows are killed with ProcessTerminate
#9330: Pluggable Transports on windows are killed with ProcessTerminate
--------------------------------------------+-------------------------------
Reporter: yawning | Owner: asn
Type: defect | Status: new
Priority: normal | Milestone:
Component: Pluggable transport | Version: Tor: unspecified
Keywords: pt, win32, pluggable transport | Parent:
Points: | Actualpoints:
--------------------------------------------+-------------------------------
The pluggable transport that I am writing needs to do cleanup on shutdown
(It write files to the pt_state directory, and use a child process).
The way that tor terminates pluggable transports under Windows currently
is via ProcessTerminate (common/util.c:tor_terminate_process), which is
the rough windows equivalent of SIGKILL (Immediate termination, no child
processes killed, no further code in the application gets executed).
In theory Tor is supposed to send SIGINT for a graceful shutdown but it
doesn't appear to be doing this on Windows (Does it do this at all?
obfsproxy doesn't appear to install a SIGINT handler to handle graceful
teardown per the PT spec), and furthermore Microsoft's documentation hints
at horrible evil happening if SIGINT is actually used
(http://msdn.microsoft.com/en-us/library/xdkz3x12%28v=vs.110%29.aspx).
Some way to properly handle graceful shutdown that works across all
platforms would be nice. Apparently the way Real Windows Apps approach
this problem is with GenerateConsoleCtrlEvent or with PostMessage, neither
which are portable.
Note: I don't do Windows development as a general rule so I may be missing
something obvious.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/9330>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs