Closed sgalpha01 closed 1 year ago
I will try to reproduce the error, can you paste here the exact command line you used and the yaml files you are using in the call? That can save me a lot of time. :)
Yeah sure :)
cwl-tes --debug --tes http://192.168.49.2:31567 --remote-storage-url ftp://ftp/home/tesk ../cwl-example-workflows/hashsplitter-workflow.cwl ../cwl-example-workflows/hashsplitter-test.yml
Check this repo for YAML files.
I managed to reproduce the problem. I am still looking for the cause. For the moment I just know that the problem is while calling ".gson.toJson"
The text of the exception comes from here:
I'm not sure whatever I comment now would be of any help. I have attached a screenshot, please check that. It displays 6 commits. Except for the first one, after none of the commits I was able to package the api using mvn package
. They were throwing some errors. The top one was built successfully, but after this commit only, the 500
error was introduced. So, maybe somewhere in these 6 commits, you can try to revert or change something to get it working. I know it will be a dirty fix, but this was all I can think of now.
This change was done due to a very very old Kubernetes library. We were running v1, when the oldest supported version is v11. We are talking about years of differences.
So revert is not an option. I was not able to work in this since Wednesday, I hope today to be able to fix this today.
No, reverting is not an option. I just mentioned those commits so that it will be easier for you to target the source of the error. For testing the changes I made in cwl-wes
, I just replaced the line
Optional.ofNullable(resources).map(TesResources::getRamGb).ifPresent(ramGb -> container.getResources().putRequestsItem(RESOURCE_MEM_KEY, new QuantityFormatter().parse(ramGb.toString() + RESOURCE_MEM_UNIT)));
which is present here: https://github.com/elixir-cloud-aai/tesk-api/blob/master/src/main/java/uk/ac/ebi/tsc/tesk/k8s/convert/TesKubernetesConverter.java#L154 with
Optional.ofNullable(resources).map(TesResources::getRamGb).ifPresent(ramGb -> container.getResources().putRequestsItem(RESOURCE_MEM_KEY, new QuantityFormatter().parse((ramGb>0.004 ? String.format("%.3f", ramGb) : "0.004") + RESOURCE_MEM_UNIT)));
which is the part of legacy code. I've made this change locally, and it bypasses the error. I do realise that this is not a solution.
This is very useful. The problem might be that the value generated now has too many decimals?
I will check an hybrid of both codes and see
Yes! reducing the number of decimals solved the problem. I will clean up and commit in new branch
Addressed in #43
Python Version:
3.8.13
I was using
cwl-tes
to submit a task to TESK. The task which I used can be found here. The TESK api was deployed locally inminikube
and was built using the current source code from the Github repository.The error which is thrown in
cwl-tes
commandline is:The URL refers to my local TESK deployment.
I'm sharing the exact error from the API side:
The entire logs can be found here.