You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
A clear and concise description of what the bug is.
TaskCat fails with max recursion depth error when using a trailing comma on the final element of a JSON format array in a YAML template. The CloudFormation service and cfn-lint can both handle this.
[ERROR ] : TemplateURL parsing error: maximum recursion depth exceeded while calling a Python object
[WARN ] : Failed to discover path for {'Fn::Sub': ['https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/util/copy.scripts.yaml', {'S3Region': {'Fn::If': ['UsingDefaultBucket', {'Ref': 'AWS::Region'}, {'Ref': 'QSS3BucketRegion'}]}, 'S3Bucket': {'Fn::If': ['UsingDefaultBucket', {'Fn::Sub': '${QSS3BucketName}-${AWS::Region}'}, {'Ref': 'QSS3BucketName'}]}}]}, path None does not exist
Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized
To Reproduce
Steps to reproduce the behavior:
Are you testing a QuickStart or Custom template? QuickStart
Are you using a profile, an instance role or access keys to run taskcat? profile
Is your AWS environment configured via aws configure? yes
Expected behavior
A clear and concise description of what you expected to happen.
TaskCat should be able to handle trailing commas in JSON format array in a YAML template like CloudFormation and cfn-lint.
Screenshots
If applicable, add screenshots to help explain your problem.
version 0.9.35
[DEBUG ] : Traceback:
Traceback (most recent call last):
File "[redacted]/taskcat/_cfn/template.py", line 111, in _template_url_to_path
current_template_path=self.template_path, template_url=template_url
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 410, in template_url_to_path
child_template_paths = self.flatten_template_url(template_url)
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 347, in flatten_template_url
url_list = self._flatten_template_controller(template_url)
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 333, in _flatten_template_controller
template_url_string
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 310, in evaluate_string
template_url_temp, depth=(depth + 1)
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 310, in evaluate_string
template_url_temp, depth=(depth + 1)
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 310, in evaluate_string
template_url_temp, depth=(depth + 1)
[Previous line repeated 4 more times]
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 300, in evaluate_string
parts[0]
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 259, in evaluate_expression_controller
results = self.evaluate_fn_sub(expression)
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 165, in evaluate_fn_sub
values = self.values_to_dict("(" + values + ")")
File "[redacted]/taskcat/_cfn/stack_url_helper.py", line 149, in values_to_dict
values_dict = json.loads(values_dict_string)
File "/usr/lib64/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
RecursionError: maximum recursion depth exceeded while calling a Python object
[ERROR ] : TemplateURL parsing error: maximum recursion depth exceeded while calling a Python object
[WARN ] : Failed to discover path for {'Fn::Sub': ['https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/dataflow/topology/topology.dataflow.ingestion.template.yaml', {'S3Region': {'Fn::If': ['UsingDefaultBucket', {'Ref': 'AWS::Region'}, {'Ref': 'QSS3BucketRegion'}]}, 'S3Bucket': {'Fn::If': ['UsingDefaultBucket', {'Fn::Sub': '${QSS3BucketName}-${AWS::Region}'}, {'Ref': 'QSS3BucketName'}]}}]}, path None does not exist
Fatal Python error: Cannot recover from stack overflow.
**Version (Please make sure you are running the latest version of taskcat)
Taskcat Version (ex: [2018.817.210357]) 0.9.35
Note: Python Version (python3 required) 3.7
To find versions: Via taskcat: taskcat -V Via pip3: pip3 show taskcat
Note: both version should match
To update taskcat run: for docker : docker pull taskcat/taskcat for pip3: pip3 install --upgrade taskcat
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
Describe the bug
A clear and concise description of what the bug is.
TaskCat fails with max recursion depth error when using a trailing comma on the final element of a JSON format array in a YAML template. The CloudFormation service and cfn-lint can both handle this.
To Reproduce
Steps to reproduce the behavior:
aws configure
? yesExpected behavior
A clear and concise description of what you expected to happen.
TaskCat should be able to handle trailing commas in JSON format array in a YAML template like CloudFormation and cfn-lint.
Screenshots
If applicable, add screenshots to help explain your problem.
**Version (Please make sure you are running the latest version of taskcat)
Note: Python Version (python3 required) 3.7
To find versions:
Via taskcat:
taskcat -V
Via pip3:
pip3 show taskcat
Note: both version should match
To update taskcat run:
for docker :
docker pull taskcat/taskcat
for pip3:
pip3 install --upgrade taskcat
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: