Sorry to bring this up again, but after looking into this more I think there is still an issue. As far as I can tell background jobs are executed as separate processes, so if a plugin accesses the database in such a job it won't have access to the lock of the main process, and so it can't coordinate with accesses from the main process.
Is there anything that can be done about this? The only thing I can think of are either file-based locks or changing the plugin to not use background jobs if the database has been copied and instead do everything in the foreground.
|