Delivery Circle - January 3rd

First delivery circle of 2023 :tada: :partying_face:

Discussion topics

Reports

Quick chat on summary lines in report - how challenging would it be to add these to certain reports? Would order totals work instead? This will need further discussion and probably a separate meeting.

Memory issue #10016

Possible causes for this issue were discussed:

  • How the memory is allocated on the queries when the report is generated

  • Related to the use of procs - A language construct from Ruby. They may have circular references. A workaround could be not to use procs. Might be tough though, it’s already a part of the framework.

  • One option to address this could be to tweak the garbage collector, but we’re unsure it would help.

  • Reduce the number of active record objects. But, maybe good to find out to where the leak comes from (maybe from procs?)

Additional thoughts

The graph looks like a great approach to understand what is happening: the allocated memory (red line) remains high, although it is only needed during some spikes (blue line).

More details here.

Also, notice Heap_free_slots:
It is interesting to see that before the API call 132 immediately after 1916, and it keeps high 1406 → so it remains high after the API call

  • These issues started with the reports factoring - it introduced consistency and spin up new reports (like adding new columns, for ex.) but there are some parts of the design which could be improved: Some classes have circular dependencies in our code…

Summary - what are the next steps:

  • David found a relevant article which pins down a similar issue
  • investigating procs
  • investigating circular dependencies
  • reducing a report to very few columns: whats the minimum amount of columns which triggers the issue? Would be great to get a spec for this.

Maikel and David will team up - and this will be handed over to Mohamed once we have a more clear view.

The Board

@dcook

Working on the memory leak issue with Maikel and Mohamed.

@maikel

  • Fixed the deployment/staging servers issue :tada: Release testing is unblocked
  • Moved the train forward: plenty of code review

@abdellani

  • Got review on the new report #10175, test will be added
  • Working on shipping methods deletion #10135
  • Will await feedback from Maikel and David on the memory leak issue

@jibees

  • Plenty of reviews from Maikel to be addressed
  • Working on the column selectors #10143

@Avi

Has been sick lately - hopefully better soon - then possibly proceeding with Bye bye angular effort.

@filipefurtado

Wondering on the next big chunk:

  • adding tests to release test automation
  • Activemerchant / VCR
  • adding tests to API

Other comments on the board

  • #10132 Disk space on UK-prod: We need to keep an eye on this, it is solved for now but we need be sure we’re not having this soon. Might relate to Metabase files piling up, when connection breaks (#9161)

  • #7406 Split checkout - we’re waiting for some final designs

  • A lot of issues In Dev, @Rachel and @sigmundpetersen are on top of it, double checking if contributors are still working on these

1 Like

Thanks Filipe, great notes as always.
The article I mentioned was this one: https://scoutapm.com/blog/ruby-garbage-collection#:~:text=Avoid%20circular%20references (this links to the specific section).
I’ve also added this link in the content above.

1 Like