[tor-bugs] #32103 [Core Tor/Tor]: Subsystem "thread_cleanup" is never called

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Oct 16 02:55:29 UTC 2019


#32103: Subsystem "thread_cleanup" is never called
--------------------+------------------------------
 Reporter:  opara   |          Owner:  (none)
     Type:  defect  |         Status:  new
 Priority:  Medium  |      Component:  Core Tor/Tor
  Version:          |       Severity:  Normal
 Keywords:          |  Actual Points:
Parent ID:          |         Points:
 Reviewer:          |        Sponsor:
--------------------+------------------------------
 Subsystems implement the interface of `struct subsys_fns_t`, with one of
 the optional function pointers being `void (*thread_cleanup)(void)`. This
 `thread_cleanup` function is called for all subsystems by the subsystem
 manager function `void subsystems_thread_cleanup(void)`, but the
 `subsystems_thread_cleanup` function is never called anywhere in the code.

 At the moment, the only subsystem to implement the `thread_cleanup`
 interface is the crypto subsystem, which uses `thread_cleanup` for freeing
 the threadlocal `crypto_fast_rng_t`, as well as freeing the threadlocal
 error queue on old versions of OpenSSL. As far as I can tell, this is
 never run.

 I think that the `subsystems_thread_cleanup` function should be run
 somewhere in the code, but it's not clear to me how this
 `subsystems_thread_cleanup` is expected to be used. It seems like there
 should also be `subsystems_thread_init` and `thread_init` functions as
 well for initializing threadlocal variables. Right now the crypto
 subsystem does an
 [https://github.com/torproject/tor/blob/dfe7f004df46edaab0b23e260218d3c6d422d5fe/src/lib/crypt_ops/crypto_rand_fast.c#L382
 "initialize on first use" singleton pattern], but it might be useful to
 add this initialization interface function so that subsystems have the
 option of initializing all of their threadlocals in one place.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/32103>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list