Plainbox crash: AttributeError: 'NoneType' object has no attribute 'replace'

Bug #1519008 reported by Kyle Fazzari
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
PlainBox (Toolkit)
Invalid
Critical
Maciej Kisielewski

Bug Description

Running a fresh install of Wily and trying to run the Snapcraft tests, I get a plainbox crash:

$ ./runtests.sh
.............................cp --preserve=all -R src /tmp/tmpv3fkra23/parts/copy/install/dst
.cp --preserve=all -R src /tmp/tmpebf4at70/parts/copy/install/dir/dst
...........................................................................................................
----------------------------------------------------------------------
Ran 137 tests in 3.248s

OK
~/src/snapcraft/integration-tests ~/src/snapcraft
===============================[ Analyzing Jobs ]===============================
=============================[ Session Statistics ]=============================
This session is about 0.00% complete
Estimated duration cannot be determined for automated jobs.
Estimated duration cannot be determined for manual jobs.
Size of the desired job list: 37
Size of the effective execution plan: 37
===========================[ Running Selected Jobs ]============================
--------------[ Running job 1 / 37. Estimated time left: unknown ]--------------
-----------------------[ snapcraft/normal/list-plugins ]------------------------
ID: 2015.com.canonical.snapcraft::snapcraft/normal/list-plugins
Category: 2013.com.canonical.plainbox::uncategorised
CRITICAL plainbox.crashes: Executable 'plainbox' invoked with Namespace(color=None, command=<plainbox.impl.commands.cmd_run.RunCommand object at 0x7f8eaa290940>, debug_console=False, debug_interrupt=False, dont_suppress_output=False, dry_run=False, exclude_pattern_list=[], include_pattern_list=[], log_level=None, non_interactive=False, output_file=<_io.BufferedWriter name='/tmp/tmp.XkxAm9j4oU/result.json'>, output_format='json', output_options='', pdb=False, test_plan='2015.com.canonical.snapcraft::normal', trace=[], transport=None, transport_options=None, transport_where=None, whitelist=[]) has crashed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 560, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 556, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/cmd_run.py", line 44, in invoked
    self.provider_loader, self.config_loader, ns, ns.color).run()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 356, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 410, in do_normal_sequence
    self.run_all_selected_jobs()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 740, in run_all_selected_jobs
    self.run_single_job(job)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 746, in run_single_job
    self.run_single_job_with_ui(job, self.get_ui_for_job(job))
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 765, in run_single_job_with_ui
    job, job_state, ui)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 825, in _run_single_job_with_ui_loop
    job, job_state, self.config, ui
  File "/usr/lib/python3/dist-packages/plainbox/impl/runner.py", line 420, in run_job
    func_name = "run_{}_job".format(job.plugin.replace('-', '_'))
AttributeError: 'NoneType' object has no attribute 'replace'
Traceback (most recent call last):
  File "/usr/bin/plainbox", line 9, in <module>
    load_entry_point('plainbox==0.22.2', 'console_scripts', 'plainbox')()
  File "/usr/lib/python3/dist-packages/plainbox/impl/box.py", line 123, in main
    raise SystemExit(PlainBoxTool().main(argv))
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 324, in main
    return self.dispatch_and_catch_exceptions(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 560, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 556, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/cmd_run.py", line 44, in invoked
    self.provider_loader, self.config_loader, ns, ns.color).run()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 356, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 410, in do_normal_sequence
    self.run_all_selected_jobs()
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 740, in run_all_selected_jobs
    self.run_single_job(job)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 746, in run_single_job
    self.run_single_job_with_ui(job, self.get_ui_for_job(job))
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 765, in run_single_job_with_ui
    job, job_state, ui)
  File "/usr/lib/python3/dist-packages/plainbox/impl/commands/inv_run.py", line 825, in _run_single_job_with_ui_loop
    job, job_state, self.config, ui
  File "/usr/lib/python3/dist-packages/plainbox/impl/runner.py", line 420, in run_job
    func_name = "run_{}_job".format(job.plugin.replace('-', '_'))
AttributeError: 'NoneType' object has no attribute 'replace'

Zygmunt Krynicki (zyga)
Changed in plainbox:
importance: Undecided → Critical
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

a plugin set to None, sounds like the simple flag does not set the plugin to shell.

Changed in plainbox:
assignee: nobody → Maciej Kisielewski (kissiel)
Revision history for this message
Maciej Kisielewski (kissiel) wrote :

I found that 'simple' flag was introduced by f24291076191090f0741754aada052b02e5f8764 (bzr r.4022)
Plainbox used by Kyle was 0.22.2 which is waaaaay older.

Running validation on the provider would yield 'missing plugin' error, failing validation.

Changed in plainbox:
status: New → In Progress
status: In Progress → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.