OHDSI / ArachneExecutionEngine

Arachne Execution Engine is a component used to execute remote SQL or R code. It is used by both Arachne Data Node as well as WebAPI
8 stars 7 forks source link

AD20-16: Adding possibility to execute submitted R analysis in Docker container #366

Closed hernaldourbina closed 8 months ago

hernaldourbina commented 9 months ago

AD20-16: Adding possibility to execute submitted R analysis in Docker container

dmitrys-odysseus commented 9 months ago

Important: Please update README to include a sample request to perform docker execution that can be easily copy-pasted for testing.

dmitrys-odysseus commented 9 months ago

Defect: Missing timeout handling

dmitrys-odysseus commented 9 months ago

Defect: The current implementation doesn't pull an image missing locally, failing with

com.github.dockerjava.api.exception.NotFoundException: Status 404: {"message":"No such image: ..."}
dmitrys-odysseus commented 9 months ago

When testing locally, even if image is already pulled manually, I get the following error:

2023-12-19 15:40:20.783  INFO 1 --- [tream-545061082] c.o.a.e.s.impl.AnalysisServiceImpl       : Failed to collect CDM metadata for analysis id=47. {}

java.io.FileNotFoundException: /tmp/1703000419602-0/cdm_version.txt (No such file or directory)
    at java.io.FileOutputStream.open0(Native Method) ~[na:1.8.0_392]
    at java.io.FileOutputStream.open(FileOutputStream.java:270) ~[na:1.8.0_392]
...
    at com.odysseusinc.arachne.executionengine.service.impl.CdmMetadataServiceImpl.writeCDMVersionFile(CdmMetadataServiceImpl.java:180) ~[c5e3bba5-5ecf-4de8-a75b-6fdf96b825c7/:na]
    at com.odysseusinc.arachne.executionengine.service.impl.CdmMetadataServiceImpl.extractMetadata(CdmMetadataServiceImpl.java:162) ~[c5e3bba5-5ecf-4de8-a75b-6fdf96b825c7/:na]

I'm not sure whether this is issue with my local testing or code.

hernaldourbina commented 9 months ago

Important: Please update README to include a sample request to perform docker execution that can be easily copy-pasted for testing.

I have updated the README in order to provide guidance for testing this implementation locally. In addition, I have addressed and answered the additional review comments. Thanks for the feedback. Thanks for the feedback.