556a17d5bc
When two requests arrive simultanously for the same uninitialized db, the first request starts the db initialization, but the second one immediately gets the partially uninitialized registry (actually just created, so generally completely uninitialized), leading to an access error in later code (as soon as a registry object is accessed). Add a GRML (Global RegistryManager Lock) to ensure the RegistryManager *never* returns a partially initialized registry. The current implementation is simple (just lock all RegistryManager methods before they manipulate registries), but overly broad. This is an area which might be optimizable if there are perf/responsivity issues (e.g. each Registry instance could have a lock, and the RegistryManager would grab the instance's, allowing the inititlization of registry A not to block registry B from being returned in heavily concurrent uses). However this is not an issue in multiprocessing scenarios, which are being planned for the near future. So for now, being correct is probably the best idea. bzr revid: xmo@openerp.com-20110916075227-0zutzlxn2dcd94c4 |
||
---|---|---|
addons | ||
bin | ||
debian | ||
doc | ||
man | ||
openerp | ||
pixmaps | ||
python25-compat | ||
sql | ||
tools | ||
win32 | ||
.bzrignore | ||
LICENSE | ||
LICENSE.web | ||
MANIFEST.in | ||
Makefile | ||
README | ||
README.web | ||
babel.cfg | ||
gen_translations.sh | ||
npybabel.py | ||
openerp-server | ||
openerp-web.cfg | ||
openerp-web.py | ||
rpminstall_sh.txt | ||
setup.README | ||
setup.cfg | ||
setup.nsi | ||
setup.py | ||
ssl-cert.cfg |
README
About OpenERP --------------- OpenERP is a free Enterprise Resource Planning and Customer Relationship Management software. It is mainly developed to meet changing needs. The main functional features are: CRM & SRM, analytic and financial accounting, double-entry stock management, sales and purchases management, tasks automation, help desk, marketing campaign, ... and vertical modules for very specific businesses. Technical features include a distributed server, flexible workflows, an object database, dynamic GUIs, customizable reports, NET-RPC and XML-RPC interfaces, ... For more information, please visit: http://www.openerp.com