-
Notifications
You must be signed in to change notification settings - Fork 24
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
MAP built with App SDK v0.6 fails when running on MONAI Deploy Express #147
Comments
mdl-wm | 2023-10-31 09:18:13.2528|20001|ERROR|Monai.Deploy.Storage.MinIO.MinIoStorageService|MessageId=860e66da-f16b-4ceb-8db5-580a43ec03ee, ApplicationId=4c9072a1-35f5-4d85-847d-dafca22244a8, CorrelationId=15d68444-fa6e-4c17-8fa8-e4318ca0ead7, RecievedTime=10/31/2023 09:18:13 System.Collections.Generic.Dictionary Is this error related to the bug |
@SameerShanbhogue did you build your app using MONAI Deploy App SDK 0.5 or 0.6? If 0.6, then it is likely to be related. Thanks. |
The log entry has the telltale sign that @SameerShanbhogue indeed built and tested the MAP with App SDK v0.6. |
I have a fix coming soon! |
@SameerShanbhogue Please try https://github.com/Project-MONAI/monai-deploy/releases/tag/monai-deploy-express-v0.5.0 and let me know if that works for you! Thanks! |
As @mocsharp mentioned, the fix is known, and pull request already reviewed and merged. Please try MD Express v0.5.0 as mentioned above. As for workaround with earlier version of MD Express, there is no good ones if the MAP (App SDK v0.6) is built with no-root user, because the Task Manager (and the Docker plugin), when run in container as root, will dynamically create a folder on the host FS to use as the output folder for the MAP container, and the dynamically created folder would not have "Write" permission for other users. If you build the MAP with container user be root, then it would work. However, the Packager in v0.6 has a little issue where it does not fall back if GUID 0 in the container already exists, and would fail; this issue has also been addressed, but to be released in v1.0. |
MD Express v0.5.0 with Liver Tumor 2.0 workflow definition works !! |
Observed:
Configured a workflow to run an example map built with MONAI Deploy App SDK v0.6, e.g.,
ghcr.io/mmelqin/monai_ai_livertumor_seg_app_no_stl-x64-workstation-dgpu-linux-amd64:2.0
, but workflow instance failed with "no output"Expected:
MD Express should support the MAPs built with App SDK v0.6 and after; these MAPs are built differently than those with MONAI Deploy App SDK v0.5.x, and have additional requirements on the permission on the host folders (which are to be mapped as MAP output"
Preliminary Analysis:
Root cause is in the
writer
permission, or the lack thereof, on the output folder in the host file system.Workaround attempted but did not working due to TM/Docker behavior:
MD Express TaskManager container itself maps host volume to its internal folder, and also uses them for MAP input and output, so tried to first create the host folder with the logged-on user's security context, e.g.
mkdir -p .md/mdtm
. However, when the TaskManager creates further sub-folder for a triggered task, the folder is created as owned byroot
, without sufficient permission for the MAP to write output to.Step to reproduce:
Create an workflow definition as below (note, the attributes starting with
env_
do not matter as the actual values are all correct and the MAP has default env vars. However, different error happened, see Additional Info)Download the MD Express,
docker compose up
Register the workflow, per instruction on MD Express Readme
Upload the a CT abdomen series, per MD Express Readme
Send the series to DICOM device destination, monai-deploy
Examine the console output of
docker compose
Additional Info:
Used a config that replaces all monai with holoscan, but encountered a different error.
This one is because that in the
docker-compose.yml
file, the TaskManager container itself has the volume mapping set to its own/var/lib/monai/
, so the workflow def cannot use"temp_storage_container_path": "/var/lib/holoscan/"
So, stick with
"temp_storage_container_path": "/var/lib/monai/"
, and change it in the following config, to avoid this other binding error.But got a different error from task manager on binding the volumes
The text was updated successfully, but these errors were encountered: