Closed nkaretnikov closed 9 months ago
Alternatively, it might be possible to report the status as part of the initial call when a build is created. That would be best, since it's less racy, but not sure if it's possible.
Clicking on the Create button
-> api_post_specification
-> register_environment
-> create_build
.
In create_build
, DB operations are done, then an async task is launched. Because the task is async and might be in the Queued state, we don't block and return the build id.
So the solution here might be catching errors in the the task and updating build state to Failed.
Status update: in review, will be fixed as part of https://github.com/conda-incubator/conda-store/pull/653/commits (Set status to FAILED in build_conda_environment)
Describe the bug
'a' * 255
OSError: [Errno 36] File name too long: '/home/nkaretnikov/.conda-store/storage/logs/804c728fbcd3f510b399fc7b1e12de61061008766f8d0b6815542305ded59906-20231106-180635-533958-1-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.log'
(This is with a local backend with uses the FS. With a different backend, the error might be different, but the problem is the same - we need to communicate errors.)
Expected behavior
An error is shown in the UI. I think the solution here is to check some API after N seconds, but only if the package is in the Building status (this will avoid a race condition where multiple things are Queued). If the API fails, mark the whole build as Failed, too.
What happens instead is that UI keeps spinning in the Builds state.
How to Reproduce the problem?
See above.
Output
No response
Versions and dependencies used.
server: 0760fa2b386bc207936df89f52b4df83f61e8af8 ui: 646c5834562f159f94de8033345240ccde08331b
Anything else?
No response