Opened 22 months ago

Last modified 3 months ago

#23043 new defect

leekspin's except/error code handling in generator.py is strange

Reported by: Samdney Owned by:
Priority: Low Milestone:
Component: Circumvention/BridgeDB Version:
Severity: Minor Keywords: leekspin
Cc: Actual Points:
Parent ID: #23333 Points: 0.5
Reviewer: Sponsor:

Description

In /leekspin/generator.py you have in "def createRelayOrBridgeDescriptors(...)"

Code highlighting:

def createRelayOrBridgeDescriptors(count, bridge=True, **kwargs):
  ...
  try:
    ...
  except KeyboardInterrupt as keyint:
    logging.warn("Received keyboard interrupt.")
    logging.warn("Stopping descriptor creation and exiting.")
    code = 1515
  finally:
    ...
    logging.info("Done.")
    code = 0
    sys.exit(code)

The same in a similiar way also in "def createHiddenServiceDescriptors(...)"

I think your way of handling the code-variable isn't right. If you have an Keyboard exception if follows: code = 1515. But the "try ... except ... finally" - block always "finally" execute the code within the finally block. So it will always exit with code = 0, sys.exit(0)!

In generally, the execution of (some) parts of the finally block after an keyboard interruption makes no sense for me.

(I haven't found time to examinate the full source code until now. Hence, for the case that all has a good reason, please ignore me :)

Child Tickets

Change History (4)

comment:1 Changed 21 months ago by Samdney

Parent ID: #23333

comment:2 Changed 4 months ago by gaba

Owner: isis deleted
Sponsor: Sponsor19
Status: newassigned

comment:3 Changed 4 months ago by gaba

Points: 0.5

comment:4 Changed 3 months ago by arma

Sponsor: Sponsor19
Status: assignednew

disconnecting the ticket from sponsor19

we might want to abandon leekspin (or rather, acknowledge that we've already abandoned it) and close all of its tickets. but that can be a separate decision.

Note: See TracTickets for help on using tickets.