camunda / camunda-modeler

An integrated modeling solution for BPMN, DMN and Forms based on bpmn.io.
https://camunda.com/products/modeler
MIT License
1.49k stars 476 forks source link

Large DMN table crashes Modeller #2113

Open webcyberrob opened 3 years ago

webcyberrob commented 3 years ago

Describe the Bug

Camunda modeller crashes when loading a very large DMN table. I have created a large DMN table outside of modeller. The DMN table runs fine in the DMN engine. If I open the file in modeller, modeller crashes and becomes unresponsive. Windows task manager must be used to close the program.

Steps to Reproduce

Open the attached lage DMN table or equivalent

Expected Behavior

Modeller displays the DMN table and enables editing.

Environment


As discussed we'll likely show a warning / error if the user attempts to load huge DMN tables.

nikku commented 3 years ago

Thanks for your bug report. Were you able to open the table in previous Modeler releases?

webcyberrob commented 3 years ago

Hi Niko, Ive only tried on 4.6 as i created this dmn table last weekend...btw, i created it via creating the raw xml in an excel spreadsheet....i tried the excel plugin, i suspect it also fails for the same reason...

Regards

Rob

On Tue., 23 Feb. 2021, 18:55 Nico Rehwaldt, notifications@github.com wrote:

Thanks for your bug report. Were you able to open the table in previous Modeler releases?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/camunda/camunda-modeler/issues/2113#issuecomment-783984622, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYZOGE64THGCKQ2OGGFQVDTANNNZANCNFSM4YB5Y4FQ .

MaxTru commented 3 years ago

Hi @webcyberrob ,

I did some basic stress testing and found that roughly 10.000 cells per DMN Decsion Table are manageable (at least on my ordinary Laptop machine). Beyond that, dmn-js gets very unresponsive. (See this repo for reference).

Note that dmn-js does not focus such big decision tables (supporting them would also require other features such as searching, batch editing, ...).

However, dmn-js supports splitting up such huge decision logic into single large Decision Table into multiple decision tables organized inside a DRD (and this is what we advocate for) (see for example this blog post). This could potentially also help you to make the whole decision logic easier to maintain and understand. Did you evaluate this option?

webcyberrob commented 3 years ago

Hi Max,

thanks for the update... In a real world decision environment, I would typically advocate a max size of 100's of rules as these should be human managed. My edge case of 16k rules was unique in that it was system generated, and part of the decision community challenge, so not necessarily a realistic use case.

However, as it crashed the modeller, I thought Id submit a bug report for awareness. As per above, a fix would be nice to have, but its not a requirement or a priority for me...

regards

Rob

http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Virus-free. www.avg.com http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Thu, 25 Feb 2021 at 18:57, MaxTru notifications@github.com wrote:

Hi @webcyberrob https://github.com/webcyberrob ,

I did some basic stress testing and found that roughly 10.000 cells per DMN Decsion Table are manageable (at least on my ordinary Laptop machine). Beyond that, dmn-js gets very unresponsive. (See this repo https://github.com/MaxTru/dmn-js-integration for reference).

Note that dmn-js does not focus such big decision tables as of now (supporting them would also require other features such as searching, batch editing, ...).

However, dmn-js supports splitting up such huge decision logic into single large Decision Table into multiple decision tables organized inside a DRD (see for example this blog post https://camunda.com/blog/2016/12/drd-use-cases-in-camunda/). This could potentially also help you to make the whole decision logic easier to maintain and understand. Did you evaluate this option?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/camunda/camunda-modeler/issues/2113#issuecomment-785698361, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYZOGCAD4M5NUJVDQSLZJDTAX7FRANCNFSM4YB5Y4FQ .

nikku commented 3 years ago

Thanks for providing these additional details.

I'm moving this issue to our backlog. The least thing we could do is prevent the crashing, i.e. with a descriptive error message.

nguyenthlinh19s commented 1 year ago

Hi Camunda team, Is there any updated information about this issue ? We are also facing the same problem and looking for a feasible solution. Thanks

nikku commented 1 year ago

@nguyenthlinh19s What is the size of your table?

nguyenthlinh19s commented 1 year ago

@nguyenthlinh19s What is the size of your table? Hi nikku, It's around 1.5-2MB.