mitsuba-renderer / drjit

Dr.Jit — A Just-In-Time-Compiler for Differentiable Rendering
BSD 3-Clause "New" or "Revised" License
593 stars 43 forks source link

Critical Dr.Jit compiler failure: jit_optix_check(): API error 7012 (OPTIX_ERROR_DISK_CACHE_DATABASE_ERROR): "Disk cache database error" in /project/ext/drjit-core/src/optix_core.cpp:70. #130

Closed n-kubiak closed 1 year ago

n-kubiak commented 1 year ago

Hi,

I keep getting this error. Previously I would see this on HPC when 2+ jobs landed on the same server (known issue) but now it also started to happen on my personal Linux machine or when a single job is running on a given HPC server. I've tried updating to the latest version of mitsuba/drjit and deleting the contents of my .drjit folder, but it didn't help. Any advice?

Critical Dr.Jit compiler failure: jit_optix_check(): API error 7012 (OPTIX_ERROR_DISK_CACHE_DATABASE_ERROR): "Disk cache database error" in /project/ext/drjit-core/src/optix_core.cpp:70.

Many thanks, NK

njroussel commented 1 year ago

Hi @n-kubiak

This is rather surprising, here's the OptiX documentation for that function call.

Nothing jumpy to mind, could you double check the function arguments to that call ? This would require inserting prints and compiling the project yourself.

n-kubiak commented 1 year ago

I've realised there is optix7cache.db in .drjit and /var/tmp/OptixCache_ - what's the difference between these?

njroussel commented 1 year ago

I don't think Dr.Jit should be using the /var/tmp location. As per the documentation, we should be relocating the cache folder. Maybe you have some other OptiX applications which are using the default cache location.

n-kubiak commented 1 year ago

I've realised the cache isn't stored on a specific machine but rather in my user space... which is accessible from any university machine I use, be it my personal Linux machine or one on the HPC cluster. So that explains the multiple access problem...

In the end, I decided not to rebuild Mitsuba from source and instead I overwrite $HOME for every experiment I run and point it towards a folder specific to a given run. A bit hacky, but it works!