BVT can't get cluster deployment info before starting OpenStack installation: 'File "/usr/lib/python2.7/site-packages/ply/lex.py", line 253, in input c = s[:1] TypeError: unhashable type'

Bug #1569778 reported by Artem Panchenko on 2016-04-13
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Critical
Bulat Gaifullin
Mitaka
Critical
Bulat Gaifullin

Bug Description

BVT can't download cluster deployment info before starting OpenStack installation:

http://paste.openstack.org/show/493906/

Detailed bug description:

Test gets 500 error from API, here is an error from Nailgun logs:

2016-04-13 03:41:27.994 ERROR [7f4a67960880] (base) Unexpected exception occured
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nailgun/api/v1/handlers/base.py", line 285, in content_json
    resp = func(cls, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/nailgun/api/v1/handlers/orchestrator.py", line 86, in GET
    return self._serialize(cluster, nodes)
  File "/usr/lib/python2.7/site-packages/nailgun/api/v1/handlers/orchestrator.py", line 158, in _serialize
    graph, cluster, nodes, ignore_customized=True)
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/deployment_serializers.py", line 884, in serialize
    cluster, nodes, ignore_customized
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/deployment_serializers.py", line 875, in _invoke_serializer
    cluster, nodes, ignore_customized=ignore_customized
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/deployment_serializers.py", line 119, in serialize
    self.set_tasks(serialized_nodes)
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/deployment_serializers.py", line 336, in set_tasks
    node['tasks'] = self.task_graph.deploy_task_serialize(node)
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/orchestrator_graph.py", line 475, in deploy_task_serialize
    if not serializer.should_execute():
  File "/usr/lib/python2.7/site-packages/nailgun/orchestrator/tasks_serializer.py", line 68, in should_execute
    strict=False).evaluate()
  File "/usr/lib/python2.7/site-packages/nailgun/expression/__init__.py", line 24, in __init__
    self.compiled_expression = parse(self)
  File "/usr/lib/python2.7/site-packages/nailgun/expression/expression_parser.py", line 151, in parse
    return parser.parse(expression.expression_text, lexer=lexer)
  File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 265, in parse
    return self.parseopt_notrack(input,lexer,debug,tracking,tokenfunc)
  File "/usr/lib/python2.7/site-packages/ply/yacc.py", line 889, in parseopt_notrack
    lexer.input(input)
  File "/usr/lib/python2.7/site-packages/ply/lex.py", line 253, in input
    c = s[:1]
TypeError: unhashable type

Steps to reproduce:

1. Run system tests with bvt_2 group

Expected results:

test passed

Actual result:

test fail before starting deplyment with error: 'Internal Server Error code 500 [unhashable type]'

Reproducibility:

always

Workaround:

no workaround

Impact:

BVT permanently fail

Changed in fuel:
importance: High → Critical
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Igor Kalnitsky (ikalnitsky)
status: New → Confirmed
Ihor Kalnytskyi (ikalnytskyi) wrote :

The endpoint:

   /api/clusters/1/orchestrator/deployment/defaults/

calls legacy graph resolver, the one that doesn't know how to deal with YAQL-based expressions. We need to fix that endpoint to use different resolvers (serializers) depending on task types.

Changed in fuel:
status: Confirmed → Triaged
assignee: Igor Kalnitsky (ikalnitsky) → Bulat Gaifullin (bgaifullin)
Changed in fuel:
status: Triaged → In Progress

Reviewed: https://review.openstack.org/305084
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=87fe57d055488cd3adcfa2f105f0ab6aba8518e7
Submitter: Jenkins
Branch: master

commit 87fe57d055488cd3adcfa2f105f0ab6aba8518e7
Author: Bulat Gaifullin <email address hidden>
Date: Wed Apr 13 13:15:28 2016 +0300

    Fixed OrchestratorInfo handlers for LCM

    The LCM serializers should be used for all releases
    that are LCM ready.
    Also the plugin hooks was removed in LCM and
    the hooks can not be retrieved. The tasks graph API
    can be used to get information about tasks from plugins.

    DocImpact
    Closes-Bug: 1569778

    Change-Id: I037f79c5b4f51dd40bf05d7a00bde9a38c4b4454

Changed in fuel:
status: In Progress → Fix Committed

Reviewed: https://review.openstack.org/305447
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=3523ba6092addab55b5dc27d5c7ab95cbf6fec09
Submitter: Jenkins
Branch: stable/mitaka

commit 3523ba6092addab55b5dc27d5c7ab95cbf6fec09
Author: Bulat Gaifullin <email address hidden>
Date: Wed Apr 13 13:15:28 2016 +0300

    Fixed OrchestratorInfo handlers for LCM

    The LCM serializers should be used for all releases
    that are LCM ready.
    Also the plugin hooks was removed in LCM and
    the hooks can not be retrieved. The tasks graph API
    can be used to get information about tasks from plugins.

    DocImpact
    Closes-Bug: 1569778

    Change-Id: I037f79c5b4f51dd40bf05d7a00bde9a38c4b4454
    (cherry picked from commit 87fe57d055488cd3adcfa2f105f0ab6aba8518e7)

Fix verified on MOS 9.0 #201, all MOS-related deployments passed.

Changed in fuel:
status: Fix Committed → Fix Released
tags: added: release-notes
Olena Logvinova (ologvinova) wrote :

Reviewed: https://review.fuel-infra.org/21464
Submitter: Evgeny Konstantinov <email address hidden>
Branch: master

Commit: 46f43d7dcb24b32d37a4224542854746791ba39c
Author: Olena Logvinova <email address hidden>
Date: Wed Jun 1 13:16:08 2016

[RN 9.0] Fixed bug description 1569778

This patch adds the following fixed bug
description to the RN 9.0 page:

https://bugs.launchpad.net/fuel/+bug/1569778

Change-Id: I024754aded938428dcfc5a062d3e0a5335dc52a9
Closes-Bug: #1570235

The RN is published at https://docs.mirantis.com/openstack/fuel/fuel-master/release-notes.html#mirantis-openstack-components-resolved-issues.

tags: added: release-notes-done
removed: release-notes
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers