cwlviewer icon indicating copy to clipboard operation
cwlviewer copied to clipboard

error messages should state version of cwltool being used

Open mr-c opened this issue 7 years ago • 15 comments

Example: https://view.commonwl.org/workflows/github.com/MG-RAST/amplicon/blob/735a989b6923e9207baace2702be4554d70c92d7/CWL/Workflows/tap.euk.workflow.cwl

mr-c avatar Aug 29 '17 13:08 mr-c

@stain I think error message is already showing the version of cwltool being used according to the implementation but it doesn't work. Am i correct ? https://github.com/common-workflow-language/cwlviewer/blob/bce46b15884d3710b3aa68860ca3dbdc0261bb20/src/main/resources/templates/loading.html#L53

ThilinaManamgoda avatar Feb 07 '18 01:02 ThilinaManamgoda

Correct, the version is still not being shown

https://view.commonwl.org/workflows/github.com/common-workflow-language/cwl-v1.2/blob/main/tests/timelimit2-wf.cwl#

mr-c avatar Mar 16 '21 15:03 mr-c

@mr-c:matrix.org and @tetron about issue #172, Over the weekend I was able to reproduce the error and made some efforts to discover why exactly the version doesn't display on error. So first of all I inspected the client side of the code and went further into Workflow controller, workflow service and finally down to the QueuedWorkflow class.

So far I think I traced the problem down to QueuedWorkflow class where I found out that the value of the cwltoolVersion is set to an empty string. Although I tried putting in a random value as the version and tried logging out the value of the version when that endpoint is called, but it still returns empty.

Although, I just created a toString() method on the QueuedWorkflow class and tried to log out the value of queued when the method below is called QueuedWorkflow queued = queuedWorkflowRepository.findByRetrievedFrom(githubInfo); and I found out that findByRetrievedFrom() returns the cwltoolVersion as an empty String. So I think the problem is probably from the database but I'm still looking

oceenachi avatar Apr 12 '21 09:04 oceenachi

And I've looked at the database as well and the version of cwl tool is an empty string as well

oceenachi avatar Apr 12 '21 11:04 oceenachi

Here is a sample of the db schema

{
        "_id" : ObjectId("6071db9d08813b0001578a1a"),
        "_class" : "org.commonwl.view.workflow.QueuedWorkflow",
        "tempRepresentation" : {
                "_id" : null,
                "retrievedFrom" : {
                        "repoUrl" : "https://github.com/common-workflow-language/cwl-v1.2.git",
                        "branch" : "main",
                        "path" : "tests/timelimit2-wf.cwl"
                },
                "retrievedOn" : ISODate("2021-04-10T17:08:45.801Z"),
                "lastCommit" : "ea9f8634e41824ac3f81c3dde698d5f0eef54f1b",
                "label" : "timelimit2-wf.cwl",
                "inputs" : {
                        "i" : {
                                "type" : "string?",
                                "sourceID" : [ ]
                        }
                },
                "outputs" : {
                        "o" : {
                                "type" : "string?",
                                "sourceID" : [
                                        "step2"
                                ]
                        }
                },
                "steps" : {
                        "step2" : {
                                "run" : "",
                                "sources" : {
                                        "i" : {
                                                "sourceID" : [
                                                        "step1"
                                                ]
                                        }
                                }
                        },
                        "step1" : {
                                "run" : "",
                                "sources" : {
                                        "i" : {
                                                "sourceID" : [
                                                        "i"
                                                ]
                                        }
                                }
                        }
                },
                "cwltoolVersion" : "1.0.20180525185854",
                "visualisationDot" : "digraph workflow {\n  graph [\n    bgcolor = \"#eeeeee\"\n    color = \"black\"\n    fontsize = \"10\"\n    labeljust = \"left\"\n    clusterrank = \"local\"\n    ranksep = \"0.22\"\n    nodesep = \"0.05\"\n  ]\n  node [\n    fontname = \"Helvetica\"\n    fontsize = \"10\"\n    fontcolor = \"black\"\n    shape = \"record\"\n    height = \"0\"\n    width = \"0\"\n    color = \"black\"\n    fillcolor = \"lightgoldenrodyellow\"\n    style = \"filled\"\n  ];\n  edge [\n    fontname=\"Helvetica\"\n    fontsize=\"8\"\n    fontcolor=\"black\"\n    color=\"black\"\n    arrowsize=\"0.7\"\n  ];\n  subgraph cluster_inputs {\n    rank = \"same\";\n    style = \"dashed\";\n    label = \"Workflow Inputs\";\n    \"i\" [fillcolor=\"#94DDF4\"];\n  }\n  subgraph cluster_outputs {\n    rank = \"same\";\n    style = \"dashed\";\n    label = \"Workflow Outputs\";\n    \"o\" [fillcolor=\"#94DDF4\"];\n  }\n  \"step2\";\n  \"step1\";\n  \"step2\" -> \"o\";\n  \"step1\" -> \"step2\";\n  \"i\" -> \"step1\";\n\n  // Invisible links to force outputs to be at lowest rank\n  \"step2\" -> \"o\" [style=invis];\n  \"step1\" -> \"o\" [style=invis];\n}\n",
                "permaLinkBase" : "https://w3id.org/cwl/view"
        },
        "cwltoolStatus" : "ERROR",
        "cwltoolVersion" : "",
        "message" : "Whoops! Cwltool ran successfully, but an unexpected error occurred in CWLViewer!\nHelp us by reporting it on Gitter or a Github issue\n"
}

So the version exists and has valid value at first but the actual value returned to the db is an empty string

oceenachi avatar Apr 12 '21 13:04 oceenachi

@oceenachi Are you able to run the application connected to a debugger?

mr-c avatar Apr 12 '21 13:04 mr-c

No I didn't connect to a debugger. I was actually logging out the values at some points

oceenachi avatar Apr 12 '21 13:04 oceenachi

No I didn't connect to a debugger. I was actually logging out the values at some points

oceenachi avatar Apr 12 '21 13:04 oceenachi

@oceenachi I think getting a debugger connected will be vital to making progress on this issue

Maybe https://www.jetbrains.com/help/idea/run-and-debug-a-spring-boot-application-using-docker-compose.html or similar will help

mr-c avatar Apr 12 '21 14:04 mr-c

Okay. I'll look at it

oceenachi avatar Apr 12 '21 14:04 oceenachi

Hi @mr-c I've been having this error trying to create the remote debug config. Cannot retrieve debug connection: Debug mode is not supported for 'Docker-compose: cwlviewer. Although I'm still looking into it but would appreciate help on it

oceenachi avatar Apr 13 '21 08:04 oceenachi

@oceenachi Okay, I've made a new issue about documenting how to debug when using docker compose; can you document your setup over at https://github.com/common-workflow-language/cwlviewer/issues/319 ?

mr-c avatar Apr 13 '21 09:04 mr-c

Alright I will do that.  💃

oceenachi avatar Apr 13 '21 09:04 oceenachi

@mr-c this debugging docs will be restricted to this application right?

oceenachi avatar Apr 13 '21 11:04 oceenachi

@oceenachi Yes

mr-c avatar Apr 13 '21 14:04 mr-c