Fix crash of :debug-log-filter when --filter wasn't given

There was no `LogFilter`. The fix is to always initialize a
`LogFilter()` with `None`. as the "filter".

Fixes #2303.
This commit is contained in:
Martin Tournoij 2017-04-03 02:29:38 +01:00
parent 6c8ca30766
commit 200e439a30
No known key found for this signature in database
GPG Key ID: A6258419189EE585
4 changed files with 14 additions and 5 deletions

View File

@ -52,6 +52,7 @@ Fixed
- Crash when pressing ctrl-c while a config error is shown
- Crash when the key config isn't writable
- Crash when unbinding an unbound key in the key config
- Crash when using `:debug-log-filter` when `--filter` wasn't given on startup.
- Various rare crashes
v0.10.1

View File

@ -295,13 +295,16 @@ def debug_log_filter(filters: str):
Args:
filters: A comma separated list of logger names.
"""
if set(filters.split(',')).issubset(log.LOGGER_NAMES):
log.console_filter.names = filters.split(',')
else:
if not set(filters.split(',')).issubset(log.LOGGER_NAMES):
raise cmdexc.CommandError("filters: Invalid value {} - expected one "
"of: {}".format(filters,
', '.join(log.LOGGER_NAMES)))
if log.console_filter is None:
raise cmdexc.CommandError("No log.console_filter. Not attached "
"to a console?")
log.console_filter.names = filters.split(',')
@cmdutils.register()
@cmdutils.argument('current_win_id', win_id=True)

View File

@ -182,9 +182,10 @@ def init_log(args):
root = logging.getLogger()
global console_filter
if console is not None:
console_filter = LogFilter(None)
if args.logfilter is not None:
console_filter = LogFilter(args.logfilter.split(','))
console.addFilter(console_filter)
console_filter.names = args.logfilter.split(',')
console.addFilter(console_filter)
root.addHandler(console)
if ram is not None:
root.addHandler(ram)

View File

@ -164,3 +164,7 @@ Feature: Miscellaneous utility commands exposed to the user.
Scenario: Using debug-log-filter with invalid filter
When I run :debug-log-filter blah
Then the error "filters: Invalid value blah - expected one of: statusbar, *" should be shown
Scenario: Using debug-log-filter
When I run :debug-log-filter webview
Then no crash should happen