Go to file
Xavier Morel 3049760fe6 [FIX] race condition in ir.ui.menu leading to incomplete menus in web client
See bug, issue occurs with variable frequency when changing between
simple and extended views in a user account (non-administrator at
least): saving the user account leads to a clearing of the menu cache,
this is followed by two search/read in parallel (one to get the full
menu listing and one to get the list of applications for the home
page), which leads to ir_ui_menu.search (thus
ir_ui_menu._filter_visible_menus) being called concurrently, and this
apparently somehow wrecks havoc on some browse_record's caches
yielding to incoherent behaviors (menus which do have children in db
not having children in the browse_record, and thus being pruned from
the list of menus).

Putting a big lock around 1. clear_cache (just in case) and
2. _filter_visible_menu (to make cache-filling essentially atomic)
seems to solve the issue or at least make it disappear, ideally more
time should be spent understanding what breaks in browse_record.

A reentrant lock is needed as _filter_visible_menu may recurse when
accessing e.g. a menu's child_id (which yield a
search([parent_id=menu.id]) and thus a _filter_visible_menu)

lp bug: https://launchpad.net/bugs/920332 fixed

bzr revid: xmo@openerp.com-20120125115823-rpu03zdv14t11lp3
2012-01-25 12:58:23 +01:00
addons [FIX] on_change not working on reference fields 2012-01-25 11:08:24 +01:00
bin [REM] obsolete .po files committed by LP, begone! 2011-06-10 19:50:45 +02:00
debian [FIX] add depends on xlwt 2012-01-12 15:02:34 +01:00
doc [imp] removed identifier_prefix 2012-01-24 16:13:43 +01:00
history [IMP] Added missing vim mode lines 2011-11-22 09:58:48 +01:00
install Changed the side image in the Windows Installer 2011-12-21 15:01:41 +01:00
openerp [FIX] race condition in ir.ui.menu leading to incomplete menus in web client 2012-01-25 12:58:23 +01:00
win32 [FIX] Set the right directory in the service, set the right version 2011-12-21 18:38:33 +01:00
.bzrignore [IMP] update .bzrignore 2011-10-14 11:36:44 +02:00
LICENSE [IMP] license: renamed general license file, and included note about other applicable licenses 2010-12-08 14:33:25 +01:00
LICENSE.web openobject is dead long live to openerpweb 2011-03-02 19:56:06 +01:00
MANIFEST.in [FIX] packaging MANIFEST.in sdist includes everything 2011-10-03 19:52:06 +02:00
Makefile [FIX] revert html_template is used by other modules. commit 2012 revid:nicolas.vanhoren@openerp.com-20120118161735-2yuxisndfq92ctoi 2012-01-23 00:32:02 +01:00
README [FIX] dependencies: don't grab dateutil >= 2.0, it's the Python3 version and incompatible with P2 2011-12-06 15:58:38 +01:00
README.web [FIX] documentation update README 2011-09-06 21:20:04 +02:00
babel.cfg [imp] improved i18n to scan all files 2011-08-17 13:28:28 +02:00
gen_translations.sh [ADD] lazy translation function, to correctly translate strings in contexts evaluated before the translation db has been loaded 2011-12-16 14:00:00 +01:00
gunicorn.conf.py [MERGE] added resources (virt. memory and CPU time) limits when using gunicorn. 2012-01-20 18:20:18 +01:00
logging.json [imp] changed logging to be like server 2011-09-29 16:29:19 +02:00
npybabel.py [FIX] npybabel shebang line 2011-12-05 11:50:28 +01:00
openerp-server [MERGE] merged trunk. 2012-01-16 12:04:34 +01:00
openerp-web [IMP] Removed the openerp.addons prefix when loading modules 2012-01-16 11:43:29 +01:00
openerp-web.cfg [IMP] Improved configuration. 2011-05-13 13:42:28 +02:00
setup.cfg [IMP] redhat remove unused stuff 2011-10-06 05:14:26 +02:00
setup.nsi [FIX] setup.nsi set the right path for the nt service 2012-01-06 16:21:53 +01:00
setup.py [FIX] add depends on xlwt 2012-01-12 15:02:34 +01:00
setup_rpm.sh [IMP] directory cleanups, moved historical cruft into history 2011-09-26 02:54:44 +02:00

README

pydot - Python interface to Graphviz's Dot language
Ero Carrera (c) 2004-2007
ero@dkbza.org

This code is distributed under the MIT license.

Requirements:
-------------

pyparsing: pydot requires the pyparsing module in order to be
	able to load DOT files.

GraphViz:  is needed in order to render the graphs into any of
	the plethora of output formats supported.

Installation:
-------------

Should suffice with doing:

 python setup.py install

Needless to say, no installation is needed just to use the module. A mere:

 import pydot

should do it, provided that the directory containing the modules is on Python
module search path.