Comments (2)
Hi @jotacoro !
Thank you for pointing out that because it's not an intended behavior. 🙂
The Context
The current state of the plugins (the list of known plugins) is stored in the persistence engine after each Sync. In the first versions of OwlPlug, the plugin state is updated once ALL plugins are scanned. So plugin state displayed is always "complete".
When a plugin is synced using Native Discovery, OwlPlug loads the plugin like a DAW to extract metadata. During this operation, a crash in the plugin can lead to a crash of the host (which is the entire OwlPlug app)
So when the app crashes, it's hard to understand which plugin is involved in the crash. To overcome this, now when we run a Sync, the previous state is cleared and updated on the fly during the sync progress. This way, when we restart the app after a crash we can see exactly where the previous scan stops and identify the problematic plugin.
I've implemented a sandbox to scan plugins in a sub-process and avoid crashes (#27). I'm still gathering feedback to enable this feature by default (#138). By using sub-processing there are sometimes issues with antivirus and OS security options.
Fix options / Workaround
It's not a major issue, but i agree, it's a bit strange when it happens. Here some possible ways to handle the problem:
- Create some sort of versioning in the persistence context, to always display "complete" version of the plugin state. Seems too complicated regarding the added value.
- When we open the export window, we use the plugin state active at that time but we don't re-fetch anything from the persistence. We won't avoid "incomplete" data but at least, things will not change between the switch from JSON to CSV. I think it's the best option
- Add a warning message when a scan run in the background
- Do nothing
from owlplug.
Hi @DropSnorz , thanks for the detailed context here.
If I have an opinion here, I'll go with a mix between the second option and maybe block the UI journeys while synchronizing plugins. An example could be the exposed in the description of the issue, i.e. blocking the Sync and Export buttons while synchronizing.
I know that this could be seen as more "restrictive" but what do you think?
Regards,
from owlplug.
Related Issues (20)
- MacOS - Cant run project from source / how did you manage to delete files without read & write permission HOT 12
- Support multiple type of archives on remote sources HOT 1
- MacOS 13 - "OwlPlug is damaged and can't be opened" is back! HOT 8
- Number of additional directories is not updated HOT 2
- After synchronizing plugins for the first time, plugin finder is not closed HOT 2
- OwlPlug crashed when syncing plugins [macOS] HOT 3
- Offer Flatpak/Appimage package HOT 13
- Display file statistics in the directory content HOT 2
- Scan just the headers? HOT 1
- LV2 plugin dll displayed as VST on windows if LV2 option is disabled HOT 2
- DAW Project Support: Ableton Live HOT 2
- DAW Project Support: Pro Tools HOT 2
- DAW Project Support: Logic Pro
- DAW Project Support: Studio One HOT 1
- DAW Project Support: Cubase HOT 2
- DAW Project Support: Reaper HOT 2
- Update JarLauncher path after Springboot 3.2 update HOT 1
- Settings and plugin list is not preserved after updating the app HOT 1
- Add Appstream metainfo file for AppImageHub distribution
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from owlplug.