The saga continues…BUT (though I am hesitant to say this with any certainty)…I think I may have found an issue which could lead to a solution. Not by me, but someone who knows a lot more than me could probably use this…
It seemed like the BOM was triggering a circular reference on the items with a deeper BOM-tree. I can sort of confirm that this is likely to be the case after doing some experimenting.
If I go into the items+BOMs, and manually expand each level of the tree (the blue folder icons), then they open and show without any major issue.
If I click the “Expand All” button near top right of the screen where the red arrow in the above pic is, CPU goes wild, RAM gets eaten alive, and swap starts to climb (2nd pic below is one “instance”). Also nothing happens in terms of expanding.
This inspires us not so bright fellas
to click that button again, which triggers another thread, spiking CPU again (and still nothing happens)…etc…etc.
I am guessing that the internals of the PRO-/STE- might be using the same block of code as that “Expand All” to get the lists of items to process… which could lead to the problem I am experiencing?
For the record I don’t profess to know this to be true…I am just guessing and hoping it leads to something useful.
As an extra/final “test”, if you are in a BOM that has no subtrees…clicking the “Expand All” does not cause any CPU spike (ie. a 1 level tree does not suffer from this behaviour/misbehaviour).
The normally minimal
logs/nodesocketio.log
then has substantially more content. I could upload/include more of those if they are potentially useful.
{ Error: cannot GET /api/method/frappe.async.get_user_info?sid=d6a879fd58a5fb6f1b93d69bb9fd85af3de2b1573f56430a490a1594 (502)
at Response.toError (/home/frappe/frappe-bench/node_modules/superagent/lib/node/response.js:94:15)
at ResponseBase._setStatusProperties (/home/frappe/frappe-bench/node_modules/superagent/lib/response-base.js:123:16)
at new Response (/home/frappe/frappe-bench/node_modules/superagent/lib/node/response.js:41:8)
at Request._emitResponse (/home/frappe/frappe-bench/node_modules/superagent/lib/node/index.js:742:20)
at IncomingMessage.parser (/home/frappe/frappe-bench/node_modules/superagent/lib/node/index.js:906:38)
at emitNone (events.js:111:20)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
status: 502,
BLAH=BLAH-BLAH to save space
method: 'GET',
path: '/api/method/frappe.async.get_user_info?sid=d6a879fd58a5fb6f1b93d69bb9fd85af3de2b1573f56430a490a1594' },
accepted: false,
noContent: false,
badRequest: false,
unauthorized: false,
notAcceptable: false,
forbidden: false,
notFound: false,
type: 'text/html',
links: {},
setEncoding: [Function: bound ],
redirects: [] } }
listening on *: 9000

