Premium support for our pure JavaScript UI components


Post by pincherhgz »

the memory leak on changing resource allocation (moving tasks) which was solved in July theis year again happens in version 5.5.2. The code that was changed the last time is in SchedulerProResourceMixin, method

  • calculateAllocation()

lines that changed the last time to correct the problem

      if (this.eventRangesCalendar) {
          this.resource?.getProject().clearCombinationsWith(this.eventRangesCalendar)
      }
      const eventRangesCalendar = this.eventRangesCalendar = new bryntum.gantt.ResourceAllocationEventRangeCalendar({ intervals : eventRanges })

all the steps to reproduce the issue have been done together with Nickolay the last time


Post by nickolay »

Hello, please provide access to your system again and the detailed steps how to reproduce the problem.


Post by nickolay »

Also, iirc, your application loads several Bryntum bundles on the page - please try loading only 1 Gantt bundle and see if that fixes the issue?


Post by pincherhgz »

it looks like that the mix of modules caused the problem, we'll continue to investigate more details


Post by nickolay »

Thanks for the update, please keep us posted.


Post by pincherhgz »

investigating more situations we found out that adding a single dependency manually increases the unreleased heap by around 80 MByte, see attached performance logging (you should see the action that we did in the recording). There is nearly no code from us involved, just handlers for

  beforeDependencyCreateDrag(eventObject) {
      // Only allow dependency drag if selected and milestone or (PD)
      return ssusFbeforeDependencyCreateDrag(eventObject);
  },
  beforeDependencyCreateFinalize(eventObject) {
      // Only allow dependency drop if selected and (PD)
      return ssusFbeforeDependencyCreateFinalize(eventObject);
  },
  afterDependencyCreateDrop(eventObject) {
      // after finishing dependency create
      return ssusFafterDependencyCreateDrop(eventObject);
  },
  dependencyValidationStart(eventObject) {
      // after finishing dependency create
      return ssusFdependencyValidationStart(eventObject);
  },
  dependencyValidationComplete(eventObject) {
      // after finishing dependency create
      return ssusFdependencyValidationComplete(eventObject);
  },

which are just returning true/false and record which dependency was added

Attachments
Trace-singleDependency.json
(11.62 MiB) Downloaded 25 times

Post by mats »

Hello, please provide access to your system again and the detailed steps how to reproduce the problem.


Post by pincherhgz »

in the attached pdf you find:

  • access data to our system
  • description and walk through for problem 1, add dependency
  • description and walk through for problem 2, move task

by the way, is there a way to reduce the memory needed for the data itself (currently our raw data have a size of around 20 MByte which leads to around 500 MByte in the Bryntum stores)

Attachments
memory-leak_20230913.pdf
(1.13 MiB) Downloaded 28 times

Post by alex.l »

Hi,

I see an error while data loading and no component shown. Could you please verify on your end?

Attachments
Screenshot 2023-09-18 at 12.28.56.png
Screenshot 2023-09-18 at 12.28.56.png (669.25 KiB) Viewed 389 times

All the best,
Alex


Post by pincherhgz »

As already communicated we have no idea why this happens from time to time, you have to retry loading until it shows up


Post Reply