Apologies if this is in the wrong "component" - there doesn't seem to be a "modules system".
I have noticed a problem when uninstalling dependent modules (the problem has existed since 5.x when module dependencies were introduced). Essentially, Drupal does not follow the order of dependencies when uninstalling, which may cause problems with heavily dependent modules.
For example, say you have two modules, module1 and module2. Module1 provides a complex API to other modules, and perhaps uses Drupal variables in some way for dependent modules. When Module2 is installed, it's module2.install->install() function calls the API of module1, which in turn (for example) places some variables into Drupal.
On uninstall, what should happen is that module2 is uninstalled first. As it does so, it's uninstall() function calls the API of module1 to remove whatever resources it has. In this example, module1 would be removing some Drupal variables to completely remove all traces of module2 on the system. After this has completed, module1 would then be uninstalled, removing it's API from the view of other modules.
This doesn't happen with Drupal 6. Instead, an apparently arbitrary order of uninstall means that module1 can be uninstalled before module2, which means that module2 has no access to module1's API, so could end up leaving resources in the system.
This problem only affects heavily dependent modules, and AFAIK, none of the core/optionals. That said, it's presumably not too complicated to fix, and has no implications for the user experience etc.
I'll look at producing a patch, but I'm deep in other stuff right now, so may not get a chance for a while. More as soon as I can...
|PASSED: [[SimpleTest]]: [MySQL] 27,453 pass(es).|
|PASSED: [[SimpleTest]]: [MySQL] 27,412 pass(es).|
|PASSED: [[SimpleTest]]: [MySQL] 24,881 pass(es).|