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

[24.1] Fix loading very old workflows with data inputs #18876

Merged

Commits on Sep 23, 2024

  1. Fix loading very old worflows with data inputs

    Fixes
    https://sentry.galaxyproject.org/share/issue/d1cad9f916e8466f844ea3b49f52afcb/:
    ```
    AttributeError: 'NoneType' object has no attribute 'get'
      File "galaxy/web/framework/middleware/error.py", line 167, in __call__
        app_iter = self.application(environ, sr_checker)
      File "galaxy/web/framework/middleware/statsd.py", line 29, in __call__
        req = self.application(environ, start_response)
      File "/cvmfs/main.galaxyproject.org/venv/lib/python3.11/site-packages/paste/httpexceptions.py", line 635, in __call__
        return self.application(environ, start_response)
      File "galaxy/web/framework/base.py", line 176, in __call__
        return self.handle_request(request_id, path_info, environ, start_response)
      File "galaxy/web/framework/base.py", line 271, in handle_request
        body = method(trans, **kwargs)
      File "galaxy/web/framework/decorators.py", line 74, in call_and_format
        rval = func(self, trans, *args, **kwargs)
      File "galaxy/webapps/galaxy/controllers/workflow.py", line 263, in load_workflow
        return workflow_contents_manager.workflow_to_dict(trans, stored, style="editor", version=version)
      File "galaxy/managers/workflows.py", line 926, in workflow_to_dict
        wf_dict = self._workflow_to_dict_editor(trans, stored, workflow)
      File "galaxy/managers/workflows.py", line 1239, in _workflow_to_dict_editor
        self.__set_default_label(step, module, step.tool_inputs)
      File "galaxy/managers/workflows.py", line 1958, in __set_default_label
        default_label = new_state.get("name")
    ```
    and
    https://sentry.galaxyproject.org/share/issue/92e8f30a288341e7b219e2c7c91390da/:
    ```
    AttributeError: 'NoneType' object has no attribute 'get'
      File "starlette/applications.py", line 123, in __call__
        await self.middleware_stack(scope, receive, send)
      File "starlette/middleware/errors.py", line 186, in __call__
        raise exc
      File "starlette/middleware/errors.py", line 164, in __call__
        await self.app(scope, receive, _send)
      File "starlette_context/middleware/raw_middleware.py", line 92, in __call__
        await self.app(scope, receive, send_wrapper)
      File "starlette/middleware/base.py", line 189, in __call__
        with collapse_excgroups():
      File "contextlib.py", line 155, in __exit__
        self.gen.throw(typ, value, traceback)
      File "starlette/_utils.py", line 93, in collapse_excgroups
        raise exc
      File "starlette/middleware/base.py", line 191, in __call__
        response = await self.dispatch_func(request, call_next)
      File "galaxy/webapps/galaxy/fast_app.py", line 109, in add_x_frame_options
        response = await call_next(request)
      File "starlette/middleware/base.py", line 165, in call_next
        raise app_exc
      File "starlette/middleware/base.py", line 151, in coro
        await self.app(scope, receive_or_disconnect, send_no_error)
      File "starlette/middleware/exceptions.py", line 65, in __call__
        await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
      File "starlette/_exception_handler.py", line 64, in wrapped_app
        raise exc
      File "starlette/_exception_handler.py", line 53, in wrapped_app
        await app(scope, receive, sender)
      File "starlette/routing.py", line 756, in __call__
        await self.middleware_stack(scope, receive, send)
      File "starlette/routing.py", line 776, in app
        await route.handle(scope, receive, send)
      File "starlette/routing.py", line 297, in handle
        await self.app(scope, receive, send)
      File "starlette/routing.py", line 77, in app
        await wrap_app_handling_exceptions(app, request)(scope, receive, send)
      File "starlette/_exception_handler.py", line 64, in wrapped_app
        raise exc
      File "starlette/_exception_handler.py", line 53, in wrapped_app
        await app(scope, receive, sender)
      File "starlette/routing.py", line 72, in app
        response = await func(request)
      File "fastapi/routing.py", line 278, in app
        raw_response = await run_endpoint_function(
      File "fastapi/routing.py", line 193, in run_endpoint_function
        return await run_in_threadpool(dependant.call, **values)
      File "starlette/concurrency.py", line 42, in run_in_threadpool
        return await anyio.to_thread.run_sync(func, *args)
      File "anyio/to_thread.py", line 56, in run_sync
        return await get_async_backend().run_sync_in_worker_thread(
      File "anyio/_backends/_asyncio.py", line 2144, in run_sync_in_worker_thread
        return await future
      File "anyio/_backends/_asyncio.py", line 851, in run
        result = context.run(func, *args)
      File "galaxy/webapps/galaxy/api/workflows.py", line 1159, in show_workflow
        return self.service.show_workflow(trans, workflow_id, instance, legacy, version)
      File "galaxy/webapps/galaxy/services/workflows.py", line 243, in show_workflow
        **self._workflow_contents_manager.workflow_to_dict(trans, stored_workflow, style=style, version=version)
      File "galaxy/managers/workflows.py", line 930, in workflow_to_dict
        wf_dict = self._workflow_to_dict_instance(trans, stored, workflow=workflow, legacy=False)
      File "galaxy/managers/workflows.py", line 1663, in _workflow_to_dict_instance
        step_label = step.label or step.tool_inputs.get("name")
    ```
    This is for https://usegalaxy.org/workflows/export?id=ea97d3a23e6d38e6
    mvdbeek committed Sep 23, 2024
    Configuration menu
    Copy the full SHA
    af3af5a View commit details
    Browse the repository at this point in the history