Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue : cannot access local variable 'project_executions_total' where it is not associated with a value #89

Closed
Zwordi opened this issue Apr 12, 2024 · 5 comments
Assignees
Labels
bug Something isn't working

Comments

@Zwordi
Copy link

Zwordi commented Apr 12, 2024

Hello,

Running 2.6.5 we’re getting this traceback toward rundeck 4.11:

1.1" 200 None
rundeck-rundeck_exporter-1  | Traceback (most recent call last):
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/wsgiref/handlers.py", line 137, in run
rundeck-rundeck_exporter-1  |     self.result = application(self.environ, self.start_response)
rundeck-rundeck_exporter-1  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 128, in prometheus_app
rundeck-rundeck_exporter-1  |     status, headers, output = _bake_output(registry, accept_header, accept_encoding_header, params, disable_compression)
rundeck-rundeck_exporter-1  |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 104, in _bake_output
rundeck-rundeck_exporter-1  |     output = encoder(registry)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/openmetrics/exposition.py", line 21, in generate_latest
rundeck-rundeck_exporter-1  |     for metric in registry.collect():
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/registry.py", line 97, in collect
rundeck-rundeck_exporter-1  |     yield from collector.collect()
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 508, in collect
rundeck-rundeck_exporter-1  |     for project_execution_record_group, project_executions_total in project_execution_records:
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 619, in result_iterator
rundeck-rundeck_exporter-1  |     yield _result_or_cancel(fs.pop())
rundeck-rundeck_exporter-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 317, in _result_or_cancel
rundeck-rundeck_exporter-1  |     return fut.result(timeout)
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
rundeck-rundeck_exporter-1  |     return self.__get_result()
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
rundeck-rundeck_exporter-1  |     raise self._exception
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
rundeck-rundeck_exporter-1  |     result = self.fn(*self.args, **self.kwargs)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 309, in get_project_executions
rundeck-rundeck_exporter-1  |     return project_execution_records, project_executions_total
rundeck-rundeck_exporter-1  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  | UnboundLocalError: cannot access local variable 'project_executions_total' where it is not associated with a value
rundeck-rundeck_exporter-1  | Traceback (most recent call last):
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/wsgiref/handlers.py", line 137, in run
rundeck-rundeck_exporter-1  |     self.result = application(self.environ, self.start_response)
rundeck-rundeck_exporter-1  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 128, in prometheus_app
rundeck-rundeck_exporter-1  |     status, headers, output = _bake_output(registry, accept_header, accept_encoding_header, params, disable_compression)
rundeck-rundeck_exporter-1  |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 104, in _bake_output
rundeck-rundeck_exporter-1  |     output = encoder(registry)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/openmetrics/exposition.py", line 21, in generate_latest
rundeck-rundeck_exporter-1  |     for metric in registry.collect():
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/registry.py", line 97, in collect
rundeck-rundeck_exporter-1  |     yield from collector.collect()
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 508, in collect
rundeck-rundeck_exporter-1  |     for project_execution_record_group, project_executions_total in project_execution_records:
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 619, in result_iterator
rundeck-rundeck_exporter-1  |     yield _result_or_cancel(fs.pop())
rundeck-rundeck_exporter-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 317, in _result_or_cancel
rundeck-rundeck_exporter-1  |     return fut.result(timeout)
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
rundeck-rundeck_exporter-1  |     return self.__get_result()
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
rundeck-rundeck_exporter-1  |     raise self._exception
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
rundeck-rundeck_exporter-1  |     result = self.fn(*self.args, **self.kwargs)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 309, in get_project_executions
rundeck-rundeck_exporter-1  |     return project_execution_records, project_executions_total
rundeck-rundeck_exporter-1  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  | UnboundLocalError: cannot access local variable 'project_executions_total' where it is not associated with a value

This doesn’t prevent the exporter to run but we would like to share this situation.

Thanks

@phsmith
Copy link
Owner

phsmith commented Apr 12, 2024

Thanks for the report @Zwordi.
I've identified the problem and it will be fixed in the next release.

@phsmith phsmith self-assigned this Apr 12, 2024
@phsmith phsmith added the bug Something isn't working label Apr 12, 2024
@Zwordi
Copy link
Author

Zwordi commented Apr 18, 2024

Hi,
Great to know :)
Thanks,

@phsmith
Copy link
Owner

phsmith commented Apr 20, 2024

Hi @Zwordi,

The rundeck_exporter v2.7.0 has been released and might fix this problem.
If you get a chance, please try the new version and let me know.

@Zwordi
Copy link
Author

Zwordi commented Apr 20, 2024 via email

@Zwordi
Copy link
Author

Zwordi commented May 23, 2024

I just deployed your latest version in few VMs no more output about this issue visible.
Closing this issue.
Thanks,

@Zwordi Zwordi closed this as completed May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants