#1267 closed defect (duplicate)

support twistd's --profiler= and --debug options when starting a node

Reported by: davidsarah Owned by:
Priority: minor Milestone: undecided
Component: code-nodeadmin Version: 1.8.0
Keywords: performance easy profiling Cc:
Launchpad Bug:

Description (last modified by exarkun)

tahoe start and tahoe run should take a --profile option, like the twistd command, so that you don't have to run twistd directly when profiling.

twistd's --debug option might also be useful.

Change History (6)

comment:1 Changed at 2010-11-21T01:10:52Z by davidsarah

From the output of twistd --help:

  -p, --profile=         Run in profile mode, dumping results to specified file
      --profiler=        Name of the profiler to use (profile, cprofile,
                         hotshot). [default: hotshot]
[...]
  -b, --debug            run the application in the Python Debugger (implies
                         nodaemon), sending SIGUSR2 will drop into debugger

comment:2 Changed at 2010-11-21T01:26:04Z by davidsarah

  • Summary changed from support twistd's --profile option when starting a node to support twistd's --profiler= and --debug options when starting a node

Oh, it already does support the --profile option, but not overriding the profiler:

$ bin/tahoe start --help

Usage:  tahoe <command> [command options] start [options]
Options:
[...]
  -p, --profile           Run under the Python profiler, putting results in
                          'profiling_results.prof'.

src/allmydata/scripts/startstop_node.py@4765#L57:

    if opts["profile"]:
        args.extend(["--profile=profiling_results.prof", "--savestats",])

comment:3 Changed at 2010-11-24T00:09:22Z by davidsarah

According to francois in ticket:1264#comment:7, the -n or --nodaemon option to twistd is necessary in order to save profile output.

comment:4 follow-up: Changed at 2010-11-27T09:37:42Z by warner

What if we accepted a syntax like "tahoe start DIR -- ARG1 ARG2" or "tahoe start -- ARG1 ARG2", and passed all the extra ARG1/ARG2 strings into twistd.run()? I'd really like if it we had a way to pass arbitrary twistd arguments, rather than having to hand-code support for each one.

comment:5 in reply to: ↑ 4 Changed at 2011-09-26T07:18:32Z by zooko

Replying to warner:

What if we accepted a syntax like "tahoe start DIR -- ARG1 ARG2" or "tahoe start -- ARG1 ARG2", and passed all the extra ARG1/ARG2 strings into twistd.run()? I'd really like if it we had a way to pass arbitrary twistd arguments, rather than having to hand-code support for each one.

Created #1546 for this.

comment:6 Changed at 2020-01-16T20:13:51Z by exarkun

  • Description modified (diff)
  • Resolution set to duplicate
  • Status changed from new to closed

ticket:1546 would seem to completely supersede this one since it suggests allowing any options to be passed through to twistd and the profiler and debugger options fall into the set of "any options".

Not sure why this was left open or why that other ticket was created instead of this one being resolved. Resolving this one as a duplicate now.

Note: See TracTickets for help on using tickets.