mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2025-12-25 17:27:01 +00:00
- Fix the OnlPackageRepo lock.
The lock for the package repo has always been broken for some requests due to the nested nature of some of the calls.
This would cause the repo lock to be release prematurely in the middle of operations.
This becomes obvious once large parallel package builds are enabled.
The OnlPackageRepo class has been renamed to OnlPackageRepoLocked() and all locking has been removed.
All operations performed by the OnlPackageRepoLocked() class are now assumed to be non-concurrent.
The OnlPackageRepo class is now a wrapper around the OnlPackageRepoLocked class with acquires the lock
prior to requesting any operations. This change is transparent to the callers but ensures
that no nested locks (and premature unlocks) are performed.
- Improve the parallel makefile generation.
- Set pipefail to that targets fail even with the log tee.
- Allow packages with broken dependencies to set their stage explicitly.
- Parallel package builds require that the package cache be treated as read-only.
- Packages must specify their package prerequisites properly in their PKG file.
- In order to detect and correct this situation packages will no longer
be implicitly built as part of calls to onlpm find and link operations.
We may be able to relax this restriction once the build is tight.
- Package Cache Corruption
- If the package cache is corrupt (usually due to an aborted operation) then it we will
automatically rebuild it instead of just whining about it.