Complex workflow for procurement causes pydot error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Odoo Server (MOVED TO GITHUB) |
Fix Released
|
Medium
|
OpenERP's Framework R&D | |
| 5.0 |
Invalid
|
Medium
|
Unassigned |
Bug Description
I'm running OpenERP version 5.0.1 on Ubuntu 8.10.
I select a procurement order in the desktop client and from the Plugins menu, I choose Execute a plugin. I double click Print Workflow (Complex). I quickly get a blank page. When I check the server output, I see this:
[2009-07-28 11:59:01,045] [31m[
[2009-07-28 11:59:01,047] [31m[
[2009-07-28 11:59:01,047] [31m[
[2009-07-28 11:59:01,047] [31m[
[2009-07-28 11:59:01,048] [31m[
[2009-07-28 11:59:01,048] [31m[
I've tried several procurement orders in different states, and they all cause the same error. I've tried the basic Print Workflow, and it works. I've tried the complex workflow on a production order, and it works.
Related branches
- OpenERP Core Team: Pending requested 2018-05-09
-
Diff: 525549 lines (+338109/-2276) (has conflicts)150 files modifieddebian/changelog (+9/-0)
debian/po/ar.po (+41/-0)
debian/po/bg.po.OTHER (+42/-0)
debian/po/ca.po.OTHER (+43/-0)
debian/po/cs.po.OTHER (+41/-0)
debian/po/da.po (+42/-0)
debian/po/de.po.OTHER (+42/-0)
debian/po/el.po.OTHER (+42/-0)
debian/po/en_GB.po.OTHER (+42/-0)
debian/po/es.po.OTHER (+43/-0)
debian/po/es_CL.po.OTHER (+42/-0)
debian/po/es_EC.po.OTHER (+42/-0)
debian/po/fa.po.OTHER (+41/-0)
debian/po/fi.po.OTHER (+41/-0)
debian/po/fr.po.OTHER (+41/-0)
debian/po/gl.po.OTHER (+41/-0)
debian/po/he.po.OTHER (+39/-0)
debian/po/hr.po.OTHER (+42/-0)
debian/po/hu.po.OTHER (+42/-0)
debian/po/is.po (+41/-0)
debian/po/it.po.OTHER (+41/-0)
debian/po/ja.po.OTHER (+39/-0)
debian/po/ko.po.OTHER (+40/-0)
debian/po/lv.po.OTHER (+39/-0)
debian/po/mk.po (+42/-0)
debian/po/mn.po.OTHER (+41/-0)
debian/po/nb.po.OTHER (+41/-0)
debian/po/nl.po.OTHER (+42/-0)
debian/po/pl.po.OTHER (+41/-0)
debian/po/pt.po.OTHER (+41/-0)
debian/po/pt_BR.po.OTHER (+42/-0)
debian/po/ro.po.OTHER (+41/-0)
debian/po/ru.po.OTHER (+42/-0)
debian/po/sk.po.OTHER (+42/-0)
debian/po/sl.po (+41/-0)
debian/po/sq.po.OTHER (+42/-0)
debian/po/sr.po.OTHER (+41/-0)
debian/po/sv.po.OTHER (+41/-0)
debian/po/tr.po.OTHER (+41/-0)
debian/po/uk.po.OTHER (+42/-0)
debian/po/vi.po.OTHER (+42/-0)
debian/po/zh_CN.po.OTHER (+38/-0)
debian/po/zh_TW.po.OTHER (+40/-0)
history/Changelog (+619/-0)
openerp/addons/base/base_data.xml (+626/-0)
openerp/addons/base/i18n/ab.po (+9239/-0)
openerp/addons/base/i18n/af.po (+1614/-21)
openerp/addons/base/i18n/am.po (+1705/-20)
openerp/addons/base/i18n/ar.po (+5333/-88)
openerp/addons/base/i18n/bg.po (+1583/-18)
openerp/addons/base/i18n/bn.po (+9239/-0)
openerp/addons/base/i18n/bs.po (+4580/-91)
openerp/addons/base/i18n/ca.po (+1635/-18)
openerp/addons/base/i18n/cs.po (+3166/-40)
openerp/addons/base/i18n/da.po (+3006/-47)
openerp/addons/base/i18n/de.po (+3215/-49)
openerp/addons/base/i18n/el.po (+1565/-18)
openerp/addons/base/i18n/en_GB.po (+2725/-30)
openerp/addons/base/i18n/es.po (+1776/-19)
openerp/addons/base/i18n/es_AR.po (+6236/-119)
openerp/addons/base/i18n/es_BO.po (+9239/-0)
openerp/addons/base/i18n/es_CL.po (+2062/-27)
openerp/addons/base/i18n/es_CR.po (+9597/-0)
openerp/addons/base/i18n/es_DO.po (+9487/-0)
openerp/addons/base/i18n/es_EC.po (+1678/-18)
openerp/addons/base/i18n/es_HN.po (+9295/-0)
openerp/addons/base/i18n/es_MX.po (+9246/-0)
openerp/addons/base/i18n/es_PA.po (+9295/-0)
openerp/addons/base/i18n/es_PE.po (+9239/-0)
openerp/addons/base/i18n/es_VE.po (+9251/-0)
openerp/addons/base/i18n/et.po (+2156/-29)
openerp/addons/base/i18n/eu.po (+1550/-18)
openerp/addons/base/i18n/fa.po (+3255/-65)
openerp/addons/base/i18n/fa_AF.po (+1550/-18)
openerp/addons/base/i18n/fi.po (+2186/-28)
openerp/addons/base/i18n/fr.po (+2078/-26)
openerp/addons/base/i18n/fr_CA.po (+9248/-0)
openerp/addons/base/i18n/gl.po (+2583/-37)
openerp/addons/base/i18n/gu.po (+9292/-0)
openerp/addons/base/i18n/he.po (+2211/-32)
openerp/addons/base/i18n/hi.po (+9239/-0)
openerp/addons/base/i18n/hr.po (+1946/-23)
openerp/addons/base/i18n/hu.po (+4826/-40)
openerp/addons/base/i18n/hy.po (+2685/-33)
openerp/addons/base/i18n/id.po (+1624/-20)
openerp/addons/base/i18n/is.po (+2573/-28)
openerp/addons/base/i18n/it.po (+1692/-22)
openerp/addons/base/i18n/ja.po (+5598/-101)
openerp/addons/base/i18n/ka.po (+9505/-0)
openerp/addons/base/i18n/kab.po (+9300/-0)
openerp/addons/base/i18n/kk.po (+9239/-0)
openerp/addons/base/i18n/ko.po (+5358/-98)
openerp/addons/base/i18n/lt.po (+2721/-47)
openerp/addons/base/i18n/lv.po (+2192/-30)
openerp/addons/base/i18n/mk.po (+4789/-83)
openerp/addons/base/i18n/mn.po (+2681/-38)
openerp/addons/base/i18n/nb.po (+1869/-9)
openerp/addons/base/i18n/nl.po (+2324/-30)
openerp/addons/base/i18n/nl_BE.po (+1554/-18)
openerp/addons/base/i18n/pl.po (+3247/-37)
openerp/addons/base/i18n/pt.po (+4373/-74)
openerp/addons/base/i18n/pt_BR.po (+2728/-33)
openerp/addons/base/i18n/ro.po (+5276/-71)
openerp/addons/base/i18n/ru.po (+1699/-18)
openerp/addons/base/i18n/sk.po (+1599/-18)
openerp/addons/base/i18n/sl.po (+4980/-100)
openerp/addons/base/i18n/sq.po (+1550/-18)
openerp/addons/base/i18n/sr.po (+1570/-18)
openerp/addons/base/i18n/sr@latin.po (+5821/-114)
openerp/addons/base/i18n/sv.po (+1908/-25)
openerp/addons/base/i18n/ta.po (+9295/-0)
openerp/addons/base/i18n/th.po (+3948/-67)
openerp/addons/base/i18n/tlh.po (+2209/-19)
openerp/addons/base/i18n/tr.po (+2519/-35)
openerp/addons/base/i18n/uk.po (+1630/-21)
openerp/addons/base/i18n/ur.po.OTHER (+9239/-0)
openerp/addons/base/i18n/vi.po (+2458/-43)
openerp/addons/base/i18n/zh_CN.po (+1903/-22)
openerp/addons/base/i18n/zh_HK.po (+9239/-0)
openerp/addons/base/i18n/zh_TW.po (+2239/-25)
openerp/addons/base/ir/ir_actions.py (+5/-0)
openerp/addons/base/ir/ir_filters.py (+7/-0)
openerp/addons/base/ir/ir_model.py (+17/-0)
openerp/addons/base/ir/ir_rule.py (+18/-0)
openerp/addons/base/ir/ir_values.py (+136/-0)
openerp/addons/base/publisher_warranty/publisher_warranty.py.OTHER (+362/-0)
openerp/addons/base/report/corporate_sxw_header.xml (+20/-2)
openerp/addons/base/res/res_config.py (+35/-0)
openerp/addons/base/res/res_currency.py (+32/-1)
openerp/addons/base/res/res_log.py.OTHER (+96/-0)
openerp/addons/base/res/res_partner.py (+217/-0)
openerp/addons/base/res/res_partner_report_address.xml (+14/-0)
openerp/addons/base/res/res_partner_view.xml (+5/-0)
openerp/addons/base/res/res_users.py (+56/-1)
openerp/addons/base/tests/test_osv_expression.yml (+17/-0)
openerp/modules/loading.py (+13/-0)
openerp/osv/expression.py (+121/-0)
openerp/osv/fields.py (+69/-0)
openerp/osv/orm.py (+797/-16)
openerp/osv/osv.py (+394/-0)
openerp/release.py (+6/-0)
openerp/report/interface.py (+8/-0)
openerp/report/printscreen/ps_list.py (+11/-0)
openerp/report/render/rml2pdf/trml2pdf.py (+20/-0)
openerp/report/report_sxw.py (+10/-0)
openerp/sql_db.py (+17/-0)
openerp/tools/convert.py (+18/-0)
openerp/tools/misc.py (+251/-1)
openerp/tools/safe_eval.py (+18/-1)
openerp/tools/translate.py (+73/-0)
tags: | added: workflow |
Error occurs with 8.10, not 8.04.
Changed in openobject-addons: | |
status: | New → Confirmed |
affects: | openobject-addons → openobject-server |
Don Kirkby (donkirkby) wrote : | #3 |
I have python-pydot 1.0.2-1.
Changed in openobject-server: | |
assignee: | nobody → gpa(tiny) (gpa-openerp) |
status: | Confirmed → In Progress |
Changed in openobject-server: | |
assignee: | gpa(tiny) (gpa-openerp) → nobody |
status: | In Progress → Confirmed |
importance: | Undecided → Critical |
Changed in openobject-server: | |
importance: | Critical → Medium |
Olivier Dony (Odoo) (odo-openerp) wrote : | #4 |
Reproduced on Ubtuntu 9.04 and 9.10 as well, both with Python 2.5 and 2.6, with pydot 1.0.2.
See the Graphviz bug reports, that do not seem to be getting any attention:
- http://
- http://
FWIW, line number in mincross.c differs in my trace:
File "/home/
ps_string = graph.create(
File "/var/lib/
status, stderr_output) )
InvocationExce
mrshelly (mrshelly) wrote : | #5 |
I found the code of tools/misc.py
@function def exec_command_
return os.popen2(cmd, 'b')
and I found the follow code in addons/
input, output = tools.exec_
self.result = output.read()
@ python manual says: 1st parameter is stdout, 2nd parameter is stdin.
Is it a bug?
and I try test.py @WinXP v5.0.6
import os
cmd = r'ps2pdf.bat - -'
(output, input) = os.popen2(cmd, 'b')
fp = file('test.ps', 'r')
fpContent = ''.join(
fp.close()
input.write(
input.close()
result = output.read()
output.close()
print result
I catch a exception:
Traceback (most recent call last):
File "test.py", line 10, in <module>
input.
IOError: [Errno 9] Bad file descriptor
and what's the value of input after the assignation ?
thanks
dot test.dot -Tpng test.png
stephane@mbp:~$ dot test.dot -Tpng test.png -v
Activated plugin library: libgvplugin_
Using textlayout: textlayout:cairo
Activated plugin library: libgvplugin_
Using layout: dot:dot_layout
Using render: cairo:cairo
Using device: png:cairo:cairo
The plugin configuration file:
/usr/lib/
was successfully loaded.
render : cairo dot fig gd map ps svg tk vml vrml xdot
layout : circo dot fdp neato nop nop1 nop2 twopi
textlayout : textlayout
device : canon cmap cmapx cmapx_np dia dot eps fig gd gd2 gif hpgl imap imap_np ismap jpe jpeg jpg mif mp pcl pdf pic plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml vtx wbmp xdot xlib
loadimage : (lib) gd gd2 gif jpe jpeg jpg png ps svg
fontname: "Times-Roman" resolved to: (ps) "DejaVu Sans 15.9990234375"
network simplex: 6 nodes 8 edges 0 iter 0.00 sec
network simplex: 11 nodes 15 edges 0 iter 0.00 sec
network simplex: 7 nodes 14 edges 0 iter 0.00 sec
network simplex: 14 nodes 19 edges 1 iter 0.00 sec
network simplex: 23 nodes 39 edges 5 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 2029 best_cross 2029
mincross: pass 0 iter 1 trying 1 cur_cross 6007 best_cross 2029
mincross: pass 0 iter 2 trying 2 cur_cross 7020 best_cross 2029
mincross: pass 0 iter 3 trying 3 cur_cross 8012 best_cross 2029
mincross: pass 1 iter 0 trying 0 cur_cross 12031 best_cross 2029
mincross: pass 1 iter 1 trying 1 cur_cross 5009 best_cross 2029
mincross: pass 1 iter 2 trying 2 cur_cross 7016 best_cross 2029
mincross: pass 1 iter 3 trying 3 cur_cross 5008 best_cross 2029
mincross: pass 2 iter 0 trying 0 cur_cross 2029 best_cross 2029
mincross: pass 2 iter 1 trying 1 cur_cross 6007 best_cross 2029
mincross: pass 2 iter 2 trying 2 cur_cross 7020 best_cross 2029
mincross: pass 2 iter 3 trying 3 cur_cross 8012 best_cross 2029
mincross: pass 2 iter 4 trying 4 cur_cross 7012 best_cross 2029
mincross: pass 2 iter 5 trying 5 cur_cross 3016 best_cross 2029
mincross: pass 2 iter 6 trying 6 cur_cross 9016 best_cross 2029
mincross: pass 2 iter 7 trying 7 cur_cross 5009 best_cross 2029
mincross: pass 2 iter 8 trying 8 cur_cross 1002013 best_cross 2029
merge2: graph G, rank 9 has only 8 < 9 nodes
merge2: graph G, rank 10 has only 8 < 9 nodes
merge2: graph G, rank 11 has only 9 < 11 nodes
merge2: graph G, rank 12 has only 9 < 11 nodes
merge2: graph G, rank 13 has only 10 < 16 nodes
merge2: graph G, rank 14 has only 9 < 15 nodes
merge2: graph G, rank 15 has only 9 < 22 nodes
merge2: graph G, rank 16 has only 9 < 21 nodes
merge2: graph G, rank 17 has only 9 < 34 nodes
merge2: graph G, rank 18 has only 9 < 29 nodes
merge2: graph G, rank 19 has only 9 < 37 nodes
merge2: graph G, rank 20 has only 9 < 21 nodes
merge2: graph G, rank 21 has only 10 < 23 nodes
merge2: graph G, rank 22 has only 10 < 21 nodes
merge2: graph G, rank 23 has only 11 < 22 nodes
merge2: graph G, rank 24 has only 11 < 17 nodes
merge2: graph G, rank 25 has only 11 < 19 nodes
merge2: graph G, rank 26 has only 10 < 19 nodes
merge2: graph G, rank 27 has only 10 < 22 nodes
merge2: graph G, rank 28 has only 9 < 13 nodes
merge2: graph G, rank 29 has only 13 < 15 nodes
merge2: gra...
Duplicate of itself.
Olivier Dony (Odoo) (odo-openerp) wrote : | #9 |
Maybe this link could help understand the issue: https:/
Changed in openobject-server: | |
assignee: | nobody → OpenERP's Framework R&D (openerp-dev-framework) |
Vo Minh Thu (thu) wrote : | #10 |
A fix is available in the branch https:/
It will be merged in trunk soon.
As Olivier pointed out, the problem was indeed that we rendered subflows multiple times (as graphviz clusters, and inside different other clusters) when they occured multiple times. The fix renders completely each sublow only once and create a green node specifying the name of the sublfow when it would be otherwise repeated.
Changed in openobject-server: | |
status: | Confirmed → Fix Committed |
Vo Minh Thu (thu) wrote : | #11 |
The correct link for the previous comment is https:/
Vo Minh Thu (thu) wrote : | #12 |
The fix to correct this behavior has been merged in trunk at revision 3361.
Changed in openobject-server: | |
status: | Fix Committed → Fix Released |
Hello Don,
We checked on several computers, but did not get such an error.But yes, its a blank page.
Which pydot version do you use? We use 0.9.10-2.
Thanks.